-
Notifications
You must be signed in to change notification settings - Fork 62
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
Fix C++ port behavior divergence with reference implementation #136
Comments
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
I found a bug. When running tests using So, I decided that the problem was in some implicit dependency of test scenarios. I switched Expr MostSimpleSetup and TypicalSetup test cases and got test failure. This is because of caching |
But disabling the cache will certainly make everything slower. The must be a difference in behavior of the cache in both TS and C++. |
I did some more research. What I found. The problem is that cache How is that possible while procedures In Based on this fact, I can say that current C++ port behavior is correct relatively to @mike-lischke, I propose to drop cache at If I could design a library differently, I would make everything as immutable as possible to avoid such bugs with caches and also improve performance by building data structures with higher level of specialization for a task. I don't see the advantage of having mutable Also, I would like to say that this behavior of |
That will take some time for me to analyze and understand. Currently I have no bandwidth to dive deep into the c3 algorithm again. |
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Signed-off-by: vityaman <vityaman.dev@yandex.ru>
Description
During rewriting test scenarios from
TypeScript
toC++
there was explored a behavior divergence inC++
port.Also after adding GitHub Workflow for
Java
also failing test was detected.Examples of that
[Java, C++]
,candidates.tokens[ExprLexer::VAR]
returns[]
instead of[ExprLexer::ID, ExprLexer::EQUAL]
: 83d73ad[C++]
, underfilled idexpressionStack on TEST(CPP14Parser, RealCppFile)Related issues and MRs
The text was updated successfully, but these errors were encountered: