Hi Enugene, > I'd prefer to use Shift because it's fast, it's nice Java etc
Yes sure, but it seems that Shift doesn't support tolerant parser which is very required for a JS editor. See https://github.com/shapesecurity/shift-java/issues/93 Regard's Angelo 2016-03-11 17:34 GMT+01:00 Eugene Melekhov <e...@mail.ru>: > Gorkem, > > Thanks for prompt reply. I read your post about benchmarking with > pleasure. I've never heard about Shift parser and it > looks very promising. I took a quick glimpse at sources and imho they are > really smart, neat and "clean" :-). Great job. > > BTW, they implemented location info, so the only missing part is error > recovery / tolerant parsing. Speaking of which, > it seems that with their two-phase parser recovery is only required at > syntax level. "Semantic/Early errors" are > handled separately, which on the one hand probably makes recovery easier > to implement and on the other hand gives client > some freedom to use second pass only if needed, and speed of course... > > I ran your benchmarks (w/o node. I didn't want to bother with configuring > node benchmark properly on my Windows box). > Below are my results: > > # Run complete. Total time: 01:26:54 > > Benchmark Mode Cnt Score Error Units > AcornWithJ2V8.testAngular125 thrpt 200 10,176 ? 0,045 ops/s > AcornWithJ2V8.testJQM142 thrpt 200 7,755 ? 0,023 ops/s > AcornWithNashorn.testAngular125 thrpt 200 11,398 ? 0,310 ops/s > AcornWithNashorn.testJQM142 thrpt 200 8,793 ? 0,257 ops/s > EsprimaWithJ2V8.testAngular125 thrpt 200 11,393 ? 0,135 ops/s > EsprimaWithJ2V8.testJQM142 thrpt 200 9,432 ? 0,029 ops/s > EsprimaWithNashorn.testAngular125 thrpt 200 15,459 ? 0,130 ops/s > EsprimaWithNashorn.testJQM142 thrpt 200 15,223 ? 0,110 ops/s > NashornParser.testAngular125 thrpt 200 41,306 ? 0,208 ops/s > NashornParser.testJQM142 thrpt 200 37,744 ? 0,104 ops/s > ShiftJava.testAngular125 thrpt 200 74,734 ? 0,203 ops/s > ShiftJava.testJQM142 thrpt 200 76,934 ? 0,413 ops/s > > As you might notice I've added NashornParser (native JVM) test (sample > borrowed from Nashorn sources). And it performs > quite well, not as good as Shift, but not bad. > > So, according to the benchmarks Esprima with Nashorn and Nashorn "native > JVM" parser are good options, but in the long > run I'd prefer to use Shift because it's fast, it's nice Java etc. It > might worth trying to add error recovery to it if > it's not that hard.... > > I've managed to obtain, compile, run/test latest code that you've > mentioned; I have more or less normal working > configuration and can do something useful. So, what would you suggest to > look at? Some small/relatively easy task that > would allow me to get acquainted with code and bring some value? I thought > that something like unit tests for particular > parser/ast related parts would be a good start. What do you think? > > Thanks. > > > Hi Eugene, > > > Yes, help is definitely is definitely needed and appreciated. > > > There is an ongoing work around JavaScript parser and you can see the > > latest code at https://git.eclipse.org/r/#/c/67469/ > > At this time we are trying to introduce the esprima parser by running it > > with nashorn. We will > > be using the parser to generate what is known as DOM AST or external AST > > and retire the old/internal AST that is tightly > > couple to the current parser. > > > We did consider several options for a replacement parser [1]. I have > > also looked at mending the JDT compiler based parser. > > Even though it is possible to fix the current parser as you have said > > with a few good alternates around I do not think > > the effort is worth it. > > > I am aware of the JEP 236, and we are architecting the new parser in > > such a way that we can replace it relatively painless > > in the future. The replacement can easily be Nashorn’s parser provided > > that it supports the latest Ecmascript specification. > > > Please let me know if you have any further questions. I also recommend > > reading our recently revamped contributing wiki [2]. > > > [1] > > > http://www.gorkem-ercan.com/2015/11/benchmarking-javascript-parsers-for.html > > [2] https://wiki.eclipse.org/JSDT/Development > > — > > Gorkem > > > > On 10 Mar 2016, at 2:51, Eugene Melekhov wrote: > > >> Hi all, > >> > >> I'd like to help JSDT and I believe that Compiler/Parser is one of the > >> places that needs change. Does anyone works on > >> it? Are there any new implementation ideas? > >> > >> I see that at the moment it's based on the JDT compiler code base and > >> thus depends on jikes parser generator. Even > >> though using generator is OK in general it seems to me that > >> maintaining and developing such parser is harder then > >> maintaining just hand-written one; especially when up-to-date > >> open-source JS parsers are available at the moment. > >> > >> I looked at the Nashorn sources and they are quite clean, readable and > >> maintainable, though I don't have any performance > >> comparison results. There is no Nashorn's public parser API yet, but > >> JEP 236 addresses this issue and it will be > >> available in Java 9. > >> > >> What do you think of using Nashorn parser in JSDT? > >> > >> Thanks. > >> > >> -- > >> Eugene Melekhov > >> > >> _______________________________________________ > >> wtp-dev mailing list > >> wtp-dev@eclipse.org > >> To change your delivery options, retrieve your password, or > >> unsubscribe from this list, visit > >> https://dev.eclipse.org/mailman/listinfo/wtp-dev > > _______________________________________________ > > wtp-dev mailing list > > wtp-dev@eclipse.org > > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > > https://dev.eclipse.org/mailman/listinfo/wtp-dev > > > > -- > Eugene Melekhov > > _______________________________________________ > wtp-dev mailing list > wtp-dev@eclipse.org > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/wtp-dev >
_______________________________________________ wtp-dev mailing list wtp-dev@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/wtp-dev