This uses [lalrpop]( https://github.com/lalrpop/lalrpop ) under the hood I believe, which is a pretty awesome parser generator library for Rust.
Seems overkill for a language whose grammar is LL(1)?
31–40 of 53 posts
This uses [lalrpop]( https://github.com/lalrpop/lalrpop ) under the hood I believe, which is a pretty awesome parser generator library for Rust.
Seems overkill for a language whose grammar is LL(1)?
Earlier quoted context omitted.
Jython and IronPython don't have a GIL so you can see the effect there (it's not as bad as I thought it would be)
OK, I'll bite: how? They need some form of locking around Python objects accessed from multiple threads, since Python has no ownership model. Do they add a lock around each individual object?
Earlier quoted context omitted.
I suspect an interpreter that "solves" the GIL problem will break tons of modules that currently only work in concurrent contexts because the GIL exists.
Jython and IronPython don't have a GIL so you can see the effect there (it's not as bad as I thought it would be)
This uses [lalrpop]( https://github.com/lalrpop/lalrpop ) under the hood I believe, which is a pretty awesome parser generator library for Rust.
Nice, long go the days (20 yrs ago) i had to make a JS transpiler with lex+yacc. The pain
Earlier quoted context omitted.
OK, I'll bite: how? They need some form of locking around Python objects accessed from multiple threads, since Python has no ownership model. Do they add a lock around each individual object?
> They need some form of locking around Python objects accessed from multiple threads, since Python has no ownership model. "Ownership models" are not a given. C++ has no "ownership model" and it doesn't lock around objects. Multi-threading users are just given the synchronization primitives and are expected to manage their own solutions. The same is true in Python: https://docs.python.org/3/library/threading.html#lo…
The GIL isn't some halting problem level thing. As you allude to, Python could definitely decide to go multithreaded and add in the requisite locks. They haven't.
I really wish that the PSF would
* Make a spec
* Break out the stdlib into a portable library, and by portable, something that can be shared across PyPy, Graal, Jython, etc.
* ??? yes
This uses [lalrpop]( https://github.com/lalrpop/lalrpop ) under the hood I believe, which is a pretty awesome parser generator library for Rust.
> LALRPOP in fact uses LR(1) by default (though you can opt for LALR(1)), and really I hope to eventually move to something general that can handle all CFGs (like GLL, GLR, LL(*), etc). Seems overkill for a language whose grammar is LL(1)?