-
-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some kind of regression between 0.9.7 and 0.10. #88
Comments
I am experiencing the same issue. Unfortunately, development on this project seems to have died off a little :/ |
I had the same issue and found the cause. The characters starting off overlapping keywords are missing from the LUT for the regex. Seems to be a werid codegen bug. |
Project seems mostly abandoned by original author at this point. Last commit was made nearly a year ago. |
Yeah I am probably going to fix this myself the question is whether the author would still be willing to approve pull requests or let someone else take over the project. Otherwise I just have to fork this Project |
@DSPOM2 It's a shame this library isn't being more actively developed. I'd love it if you opened a PR for this either way just so the community can build on your work in the meantime. |
@DSPOM2 I'm happy to accept PRs. Logos is in the back of my head, but it's also quite daunting since I reckon I might have to rewrite large parts of the derive part to make sure the compilation explosion that I've been trying to fix in #71 doesn't happen. I have some idea how to do it, but I'd need to probably sink good two weeks into it. I tend to jump between projects and sink time into one thing at a time when I can, a year of a hiatus does not make a project dead :). |
@maciejhirsz I'm glad to hear the project isn't abandoned, and I empathize with jumping between projects and viscerally understand how daunting it can be to have to sink several weeks into a rewrite to get something working right. |
@alexschrod 0.10.0-rc3 landed on crates, could you please check if the issue persists? Edit: Given the number of bugs the refactored |
I don't appear to have the power to re-open, but I could always open a new issue or comment in this one. In any case, I no longer have the project I was working on 6 months ago ready at hand, so unfortunately, I can't easily test this any better than anyone else, sorry. |
@alexschrod Thanks for checking 🙇♂️. |
To be specific, I'm getting this issue with 7a31ef3, but not with efc666d. (The ones in-between causes me compilation errors, so it's hard to say which of them introduced the code that leads to this problem.)
This is my configuration:
Token type
Sufficient amount of document causing lexing issues in 0.10
Relevant part of token stream on 0.9.7
Relevant part of token stream on 0.10
As you can see, in 0.9.7, I get a single
Identifier
token with the value "corruption" from 819..830, while in 0.10, I get twoIdentifier
tokens, one with the value "c" from 819..820, and one with the value "orruption" from 820..830.This is obviously a bug; the lexer should do as in 0.9.7 and consume the whole identifier at once, not divide it like it does in 0.10.
By chance, after experimenting trying to figure out what differentiated identifiers that stayed whole from those that got divided like this before submitting this issue, I discovered that the cause is when an identifier has a two-or-more character overlap with any of the keywords in the
Type
token. "corruption" gets, well, corrupted, because of the "color," and if you change "burntOverlay" to "borntOverlay," (overlaps with "bool") you get the same behavior there. It seems like a partial match from one token doesn't get correctly dealt with when another token matches fully later. By removing/commenting out theType
token, the behavior ceases.The text was updated successfully, but these errors were encountered: