Re: GSOC 2016: FastParse library
Haoyi Li <[email protected]> Tue, 22 Mar 2016 08:44:26 +0800
| Newsgroups | gmane.comp.lang.scala |
|---|---|
| Message-ID | <CALruUQLHTmfcKOQ9=XqTZOYnP_o-Cbz9RFfi+9myVLSmHfv31w@mail.gmail.com> |
We definitely code that can be re-used, e.g scodec-bits is a plausible input. Nevertheless, it's not obvious that re-using things like the parser-combinator framework would be a good idea. I'm inclined to have a mostly-clean-room fastparse implementation that we can compare and contrast, rather than just wrapping scodec. If the fastparse implementation is better we've won, if it's worse we've learned something. If we just wrap scodec, there's really zero potential upside or downside and people might as well just use scodec itself, which works perfectly fine. On Tue, Mar 22, 2016 at 4:19 AM, Naftoli Gugenheim <[email protected]> wrote: > I wonder if there's some code reuse that you could or should get from > scodec. > > On Mon, Mar 21, 2016, 3:56 PM Vladimir Polushin <[email protected]> > wrote: > >> 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.