Re: GSOC 2016: FastParse library

Haoyi Li <[email protected]> Mon, 11 Apr 2016 21:28:59 +0800
Newsgroups gmane.comp.lang.scala
Message-ID <CALruUQKMr=oXSSDOS_BK+P-o-CBAeoCyR3odrfZghw7kb5U5oQ@mail.gmail.com>
Thanks Vladimir! I will take a look when I have some time...

On Mon, Apr 11, 2016 at 9:14 PM, Vladimir Polushin <[email protected]>
wrote:

> Hello!
>
> I've just created pull-request that moved my repository into FastParse. I
> made a new module cssparse and added several basic tests along with test
> for PrettyPrinter and tests of large css files from bootstrap and primer
> <https://github.com/primer/primer>.
>
> вторник, 5 апреля 2016 г., 13:12:32 UTC+3 пользователь Haoyi Li написал:
>>
>> Yep, that looks good!
>>
>> The next step would be broadening the parser to accept more test input:
>> 1-2 more large-ish css files from 3rd party projects like Bootstrap or
>> JQuery UI. After that works, put together a simple test suite and send a
>> pull request to include your CSS parser and tests as a sample parser in the
>> FastParse repo.
>>
>> On Thu, Mar 31, 2016 at 11:50 PM, Vladimir Polushin <[email protected]>
>> wrote:
>>
>>> Hello!
>>>
>>> I wrote simple PrettyPrinter
>>> <https://github.com/vovapolu/CssParser/blob/master/src/main/scala/cssparser/PrettyPrinter.scala>
>>> for my AST tree, so now it can parse this <http://pastebin.com/7EHUyu52> into
>>> this <http://pastebin.com/2wqfh6ev> . Is it okay for the task?
>>> (Sorry for the long answer, I had an important assignment at the
>>> university)
>>>
>>> пятница, 25 марта 2016 г., 17:33:24 UTC+3 пользователь Haoyi Li написал:
>>>>
>>>> No worries about local cuts, we can discuss that more when GSOC starts
>>>> if we get a slot =)
>>>>
>>>> With regard to the CSS parser, the original goal still stands:
>>>>
>>>> """
>>>> Lastly, w.r.t. the CSS parser, the end goal would be to have your
>>>> parser be complete enough to parse
>>>>
>>>>    -
>>>>    https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
>>>>
>>>> into an AST, which can then be used to pretty-print it the same way
>>>> this does:
>>>>
>>>>    - http://www.dirtymarkup.com/
>>>>
>>>> Along with 1-2 more test CSS files of your choosing from other
>>>> well-known open source projects. After that, send a PR and we'll merge the
>>>> parser along with tests into the FastParse codebase.
>>>>
>>>> Note that you don't need to do this now - the proposal is probably more
>>>> urgent since it's due on the 25th of March - but this should happen by
>>>> mid-April when the student acceptance decisions are due.
>>>>
>>>> Note that this is a non-trivial amount of work, and I can't guarantee
>>>> you a spot on GSOC even if you do it (that's up to the kind mercies of
>>>> Google and the Scala org) but it will no doubt leave you proficient working
>>>> with this library and writing parsers.
>>>> """
>>>>
>>>> Can your CSS parser parse bootstrap.min.css into one big AST, and
>>>> serialize it out again pretty-printed? If not, that's what to make it do
>>>> next =) After that the next step would be contributing it to the FastParse
>>>> repo as a bundled parser/example
>>>>
>>>>
>>>> On Fri, Mar 25, 2016 at 8:18 PM, Vladimir Polushin <[email protected]>
>>>> wrote:
>>>>
>>>>> Haoyi, hello!
>>>>>
>>>>> In my proposal you have written about "local" cuts, but I don't
>>>>> cleary understand this case. Can you give me some example?
>>>>>
>>>>> And I will continue to work on CSS Parser, what should I do next in
>>>>> it?
>>>>>
>>>>> понедельник, 21 марта 2016 г., 22:56:54 UTC+3 пользователь Vladimir
>>>>> Polushin написал:
>>>>>
>>>>>> Hello! I've just shared the proposal
>>>>>>  https://docs.google.com/document/d/1DebYhXZ3wRfT6yPjv3tIEtacvmUKo25zhr-unJjjNhc/edit?usp=sharing
>>>>>> <https://docs.google.com/document/d/1DebYhXZ3wRfT6yPjv3tIEtacvmUKo25zhr-unJjjNhc/edit?usp=sharing> .
>>>>>> Could you review it and give me some feedback?
>>>>>>
>>>>>> четверг, 17 марта 2016 г., 17:59:28 UTC+3 пользователь Haoyi Li
>>>>>> написал:
>>>>>>>
>>>>>>> Lastly, w.r.t. the CSS parser, the end goal would be to have your
>>>>>>> parser be complete enough to parse
>>>>>>>
>>>>>>>    -
>>>>>>>    https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.cs
>>>>>>>
>>>>>>> into an AST, which can then be used to pretty-print it the same way
>>>>>>> this does:
>>>>>>>
>>>>>>>    - http://www.dirtymarkup.com/
>>>>>>>
>>>>>>> Along with 1-2 more test CSS files of your choosing from other
>>>>>>> well-known open source projects. After that, send a PR and we'll merge the
>>>>>>> parser along with tests into the FastParse codebase.
>>>>>>>
>>>>>>> Note that you don't need to do this now - the proposal is probably
>>>>>>> more urgent since it's due on the 25th of March - but this should happen by
>>>>>>> mid-April when the student acceptance decisions are due.
>>>>>>>
>>>>>>> Note that this is a non-trivial amount of work, and I can't
>>>>>>> guarantee you a spot on GSOC even if you do it (that's up to the kind
>>>>>>> mercies of Google and the Scala org) but it will no doubt leave you
>>>>>>> proficient working with this library and writing parsers.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Mar 17, 2016 at 10:37 PM, Haoyi Li <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> All three cases are more or less the same idea: you will need to
>>>>>>>> make FastParse generic enough to work with non String/Char data.
>>>>>>>>
>>>>>>>> Yes, you should dig into the code a bit and come up with some ideas
>>>>>>>> of how you would implement it. It's likely our plan will change if/when you
>>>>>>>> get accepted an GSOC starts, since we would have more time to go deeper
>>>>>>>> into things. Nevertheless, the exercise of putting together the proposal
>>>>>>>> will be valuable
>>>>>>>>
>>>>>>>> On Thu, Mar 17, 2016 at 12:07 AM, Vladimir Polushin <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Great :) Then I will start to write a proposal. And I would like
>>>>>>>>> to clarify about this: If I understand correctly, there are 3 main cases in
>>>>>>>>> idea, and in proposal I should describe how I will implement they with some
>>>>>>>>> rough plan?
>>>>>>>>>
>>>>>>>>> среда, 16 марта 2016 г., 16:02:06 UTC+3 пользователь Haoyi Li
>>>>>>>>> написал:
>>>>>>>>>>
>>>>>>>>>> That's a good start. A lot more work would go into that if we
>>>>>>>>>> want to get that into the main repo (and I do). If you've already put
>>>>>>>>>> together a proposal we can discuss how to take it further, if not you
>>>>>>>>>> probably should put together a proposal before the March 25th deadline and
>>>>>>>>>> we can keep working on it after.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Mar 16, 2016 at 7:25 PM, Vladimir Polushin <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> I wrote basic version of CSS parser
>>>>>>>>>>> https://github.com/vovapolu/CssParser . According to
>>>>>>>>>>> https://www.w3.org/TR/css-syntax-3/ it only breaks css into
>>>>>>>>>>> simple elements like words and delimiters and it also can handle blocks in
>>>>>>>>>>> brackets. Now I am planning to add more tests and to try to implement some
>>>>>>>>>>> complex structures (selectors, other rules) in parser, but I think it will
>>>>>>>>>>> be pretty hard given all these rules and requirements.
>>>>>>>>>>>
>>>>>>>>>>> вторник, 15 марта 2016 г., 6:05:14 UTC+3 пользователь Haoyi Li
>>>>>>>>>>> написал:
>>>>>>>>>>>>
>>>>>>>>>>>> A CSS parser would serve the purpose as well and could
>>>>>>>>>>>> plausibly be useful. I think a Smalltalk parser would be a bit obscure I
>>>>>>>>>>>> don't think it would serve well: people won't be familiar enough to use it
>>>>>>>>>>>> as an example, nor would they find it useful in real life for parsing their
>>>>>>>>>>>> smalltalk code (since they won't have any)
>>>>>>>>>>>>
>>>>>>>>>>>> I'm not totally convinced that a CSS parser would be simpler
>>>>>>>>>>>> than a Markdown parser though. The CSS3 Grammar:
>>>>>>>>>>>>
>>>>>>>>>>>>    - https://www.w3.org/TR/css-syntax-3/
>>>>>>>>>>>>
>>>>>>>>>>>> Certainly looks awfully complicated!
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Mar 15, 2016 at 10:55 AM, Naftoli Gugenheim <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Have you seen CommonMark (http://commonmark.org/)?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, Mar 14, 2016 at 6:59 PM Vladimir Polushin <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hello!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Several days ago I started to write markdown parser, but now
>>>>>>>>>>>>>> this task seems to me very hard to implement. I tried to google grammars of
>>>>>>>>>>>>>> markdown or some specification, but markdown literally doesn't have any
>>>>>>>>>>>>>> standard and any grammar I found is quite large and complicated for the
>>>>>>>>>>>>>> first experience with library. So may I write CSS or Smalltalk parser
>>>>>>>>>>>>>> first? They have clear and concise grammars, which won't cause difficulties
>>>>>>>>>>>>>> in the implemenation.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> пятница, 11 марта 2016 г., 7:24:06 UTC+3 пользователь Haoyi
>>>>>>>>>>>>>> Li написал:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hello! I wrote FastParse.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> A good first contribution to FastParse would probably be
>>>>>>>>>>>>>>> some kind of example parser. The project already has Scala, Python, JSON
>>>>>>>>>>>>>>> and XML parsers, but it would be nice to add to the collection.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> For example, a FastParse based Markdown parser would both
>>>>>>>>>>>>>>> very useful as well as serve to introduce you to the FastParse library and
>>>>>>>>>>>>>>> build you up to a reasonably high level of expertise. You would gain a much
>>>>>>>>>>>>>>> deeper understanding of its behavior and internals, the "why"s of the
>>>>>>>>>>>>>>> library, and be in a much better position to contribute significantly.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Fri, Mar 11, 2016 at 3:59 AM, Vladimir Polushin <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hello!
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I am a third-year undergraduate Computer Science student at
>>>>>>>>>>>>>>>> the Moscow State University. I've been working with scala for a year and
>>>>>>>>>>>>>>>> now I want to start contributing to the Scala community. I looked thought
>>>>>>>>>>>>>>>> the list of ideas for GSOC, and I liked The FastParse library. I've already
>>>>>>>>>>>>>>>> used Scala Parser Combinators and I have a basic knowledge about formal
>>>>>>>>>>>>>>>> grammars and compilers. So where can I start? Should I fix some bug in that
>>>>>>>>>>>>>>>> repository first?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>>>>>> Google Groups "scala-language" group.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails
>>>>>>>>>>>>>>>> from it, send an email to [email protected]
>>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>>>> Google Groups "scala-language" group.
>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>>> Google Groups "scala-language" group.
>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>> Google Groups "scala-language" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "scala-language" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "scala-language" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "scala-language" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "scala-language" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.