Project

General

Profile

Activity

From 03/19/2026 to 04/17/2026

04/17/2026

04:15 PM Feature #7318 (Internal Test): prevent abend during conversion in case of failures when processin...
Code Review Task Branch 7318a Revisions 16522 and 16523
I'm OK with the changes.
Greg Shah
04:16 AM Feature #7318 (Review): prevent abend during conversion in case of failures when processing TRPL ...
I addressed the concern about disabling the feature where errors do not stop the conversion from running, but only re... Dănuț Filimon
01:09 PM Feature #10804: create replacement AST implementation for use with ANTLR 4
I think we need more helper methods (outside of the parser) to reduce code like this (from @func_return@):... Greg Shah
01:04 PM Feature #10804: create replacement AST implementation for use with ANTLR 4
Hmmm. We can't use the @r=.@ approach for cases like this. The new code:... Greg Shah
11:06 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
You should now be able to see the latest version of @ProgressParser.g4@, along with the other grammars. Please note t... Paula Păstrăguș
10:53 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I committed my test project as rev *16494* (is based on 16493 + 10804a changes). Paula Păstrăguș
10:37 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I did some additional debugging, and I'm starting to think this may not actually be an ANTLR4 issue, but rather a pro... Paula Păstrăguș
09:38 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I especially would like to understand how they compare to the ANTLR2 @LL(k)@ approach. Greg Shah
09:38 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I'll take care of it once the article has been read. Paula Păstrăguș
09:36 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
> * *SLL* is fast but context insensitive and it may fail on complex grammars
> * *LL* is a bit slower, but accurate...
Greg Shah
09:29 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Let me create a short grammar to see if this is clearly an antlr4 bug or not. (I'm referring to tokens fetching) Paula Păstrăguș
09:26 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Based on the documentation:
* *SLL* is fast but context insensitive and it may fail on complex grammars
* *LL* is a...
Paula Păstrăguș
09:13 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Please provide a summary description of each of these prediction types. Also, what is the behavior of setting this v... Greg Shah
09:06 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Here's an article about @adaptive LL(*)@: https://www.antlr.org/papers/allstar-techreport.pdf I'll look into it. Paula Păstrăguș
09:02 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Neither prediction mode solved the token fetching issue after I reverted my fix. But let me surprise you even more: m... Paula Păstrăguș
08:32 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
However, I don't think adaptivePredict itself can be avoided. What we may be able to change instead is the prediction... Paula Păstrăguș
08:25 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
yes..
Here are the prediction modes: LL, LL_EXACT_AMBIG_DETECTION and SLL
Paula Păstrăguș
08:23 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Logically, it is an incorrect result, right? Besides being stupid it is broken. Not being able to exit the loop is ... Greg Shah
08:23 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I think by using @parser.getInterpreter().setPredictionMode(...)@, but I need to see what are the available predictio... Paula Păstrăguș
08:22 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Can we disable it? Greg Shah
08:15 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Greg Shah wrote:
> I don't understand how @adaptivePredict()@ can be so stupid. From the original @progress.g@, that...
Paula Păstrăguș
08:07 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
my testing project is based on trunk *16493* + 10804 changes. What if I overwrite the current version of 10804a with ... Paula Păstrăguș
08:02 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Before going further, I think you should come up with a solution for the symbol problem. That is crucial for the par... Greg Shah
08:01 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Paula Păstrăguș wrote:
> Would @ProgressParser.g4@ be sufficient? I do have a some additional changes as well, but t...
Greg Shah
07:59 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I don't understand how @adaptivePredict()@ can be so stupid. From the original @progress.g@, that loop can *only matc... Greg Shah
07:42 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
If you want to test the parser I think I can upload my testing project on devsrv, tmp directory. Paula Păstrăguș
07:40 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Would @ProgressParser.g4@ be sufficient? I do have a some additional changes as well, but those are currently in a tr... Paula Păstrăguș
07:37 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Please check in all your changes, even if everything is broken. I can't see any of your parser work. Greg Shah
05:28 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
PS: My goal is to get the @fwd-embedded-driver@ converted correctly. I've made progress up to line @139@ so far, wher... Paula Păstrăguș
05:26 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Current failing testcase:... Paula Păstrăguș
03:48 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I think I found the root cause! 🥳 Let me break it down for you.
The flow for a DEFINE statement currently looks li...
Paula Păstrăguș
03:13 AM Bug #11381 (Review): trunk no longer generates OpenClient proxies either via conversion or Genera...
Constantin, there are a few additional changes to review in @rules@ and @src/com/goldencode/artifacts/ArtifactWorker.... Dănuț Filimon
03:12 AM Bug #11381: trunk no longer generates OpenClient proxies either via conversion or GenerateLegacyP...
Committed *11381a/16522*. Committed the patch from #11381-6.
About the change from @src/com/goldencode/p2j/convert...
Dănuț Filimon

04/16/2026

11:42 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
You should debug into @adaptivePredict()@ in that broken case and see why it goes wrong. It is best to know why now,... Greg Shah
10:15 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I commented out the problematic adaptivePredict, and it seems to resolve the issue of fetching tokens on and on. I'll... Paula Păstrăguș
09:16 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Regarding the repeated token fetching triggered from @def_var_stmt@, and more specifically around @as_clause@, my cur... Paula Păstrăguș
09:08 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I installed an ANTLR4 plugin for IntelliJ IDEA, and it provides some useful metrics. For example, it shows the effect... Paula Păstrăguș
10:12 AM Bug #11381: trunk no longer generates OpenClient proxies either via conversion or GenerateLegacyP...
Constantin, I posted this patch based on what you posted and the remaining problem from #11381-5. The proxies are gen... Dănuț Filimon
09:02 AM Bug #11381: trunk no longer generates OpenClient proxies either via conversion or GenerateLegacyP...
Constantin Asofiei wrote:
> Danut, see attached patch, it solves the case where the program is in a abl/ sub-folder ...
Dănuț Filimon
08:59 AM Bug #11381: trunk no longer generates OpenClient proxies either via conversion or GenerateLegacyP...
Danut, see attached patch, it solves the case where the program is in a abl/ sub-folder (resolved via PROPATH) - plea... Constantin Asofiei
05:50 AM Bug #11381 (WIP): trunk no longer generates OpenClient proxies either via conversion or GenerateL...
I updated https://proj.goldencode.com/projects/regression/wiki/Open_Regressions_in_FWD_v4#section-3 Dănuț Filimon
05:47 AM Bug #11381: trunk no longer generates OpenClient proxies either via conversion or GenerateLegacyP...
Trunk no longer generates OpenClient proxies from .xpxg files, either via conversion or GenerateLegacyProxyOpenClient... Constantin Asofiei
05:46 AM Bug #11381 (Test): trunk no longer generates OpenClient proxies either via conversion or Generate...
Constantin Asofiei

04/15/2026

10:06 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
The getTokens method is *not* the culprit here. I did some debugging with a very simple testcase like:... Paula Păstrăguș
05:39 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I'll investigate this next and try to confirm whether the lexer is actually tokenizing ahead to the end of file, or w... Paula Păstrăguș
05:34 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
> Here's the code:
If it is lexing all the way to the end of the file independently of the parser, that is not OK....
Greg Shah
05:26 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Here's the code:... Paula Păstrăguș
05:25 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
The measurement is about token stream buffering, not actual ANTLR prediction depth.. I'll see how can I measure how m... Paula Păstrăguș
05:15 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
In ANTLR2 we introduced a very explicit @k@ value that limited the number of tokens of lookahead. In the lexer it wa... Greg Shah
05:09 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
The tests above were done with @BufferedTokenStream@. One possible direction would be to try @UnbufferedTokenStream@,... Paula Păstrăguș
03:40 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I checked to see how many buffered tokens antlr4 tend to gather, here are some results:
* tested for the failing t...
Paula Păstrăguș

04/14/2026

09:56 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
> My suggestion was not to shift everything to symbols, but rather to ensure that the lexer emits the correct token f... Greg Shah
08:22 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I’ll also do some additional research to see what can be done specifically for this test case. I haven’t committed th... Paula Păstrăguș
08:12 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Another aspect worth mentioning is related to the testing phase. If we move toward emitting tokens differently in the... Paula Păstrăguș
08:04 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Greg Shah wrote:
> Yes, it is a systemic issue with the 4GL language design itself. This is not something we can co...
Paula Păstrăguș
07:44 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Yes, it is a systemic issue with the 4GL language design itself. This is not something we can control.
> The more...
Greg Shah
07:11 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
In the ANTLR2 version, this kind of situation was handled by mutating the token type inside the parser rule. That app... Paula Păstrăguș
02:16 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Current failing test:... Paula Păstrăguș

04/08/2026

02:27 AM Bug #6629: incremental conversion for OpenClient proxy programs
Artur Școlnic wrote:
> Runtime testing on the customer project can be done only with the custom branch patched with ...
Dănuț Filimon
02:24 AM Bug #6629: incremental conversion for OpenClient proxy programs
Runtime testing on the customer project can be done only with the custom branch patched with the changes from 6629a. ... Artur Școlnic

04/07/2026

10:50 AM Feature #7178: move the buffer scoping calculations to parse time
I don't want us to spend too much time trying to use obscure 4GL preprocessor usage patterns. We don't have to gener... Greg Shah
09:46 AM Feature #7178: move the buffer scoping calculations to parse time
Started validating some of the tests I generated only to find most of them being actually wrong when the syntax got c... Dănuț Filimon
08:55 AM Bug #6629: incremental conversion for OpenClient proxy programs
Committed *6629a/16513*. Incremental conversion fixed the remaining files and the project compiled.
Testing went w...
Dănuț Filimon
06:50 AM Bug #6629: incremental conversion for OpenClient proxy programs
Dănuț Filimon wrote:
> There are a few parameters which are not initialized properly, in @SupportService.resolveServ...
Dănuț Filimon
06:36 AM Bug #6629: incremental conversion for OpenClient proxy programs
There are a few parameters which are not initialized properly, in @SupportService.resolveService() there should be a ... Dănuț Filimon
03:41 AM Bug #6629: incremental conversion for OpenClient proxy programs
Only two files failed conversion, the error is:... Dănuț Filimon
08:34 AM Feature #9638: resolve OO dependencies during parsing using annotations in already converted classes
Greg Shah wrote:
> @OpenEdge.Core.Collections.Stack@
> @Progress.Lang.Enum@
> @Progress.Lang.SysError@
>
> * @O...
Octavian Adrian Gavril
08:31 AM Feature #9638: resolve OO dependencies during parsing using annotations in already converted classes
@OpenEdge.Core.Collections.Stack@ becomes @com.goldencode.p2j.oo.core.collections.LegacyStack@
@Progress.Lang.Enum@ ...
Greg Shah
08:23 AM Feature #9638: resolve OO dependencies during parsing using annotations in already converted classes
About builtin classes, how are the legacy class names mapped to the actual builtin implementation? For example: @Open... Octavian Adrian Gavril

04/06/2026

09:10 AM Feature #7178: move the buffer scoping calculations to parse time
Let's see, small update. I've made tests for the following scenarios:
* all cases mentioned in #7178-2 were made int...
Dănuț Filimon
06:41 AM Bug #6629: incremental conversion for OpenClient proxy programs
Dănuț Filimon wrote:
> Rebased 6629a to latest trunk/16505, the branch is now at revision 16512.
Please do conversi...
Constantin Asofiei
06:40 AM Bug #6629: incremental conversion for OpenClient proxy programs
Rebased 6629a to latest trunk/16505, the branch is now at revision 16512. Dănuț Filimon
06:33 AM Bug #6629: incremental conversion for OpenClient proxy programs
*6629a/16460* is available, I will be rebasing the branch now. Dănuț Filimon
06:31 AM Bug #6629: incremental conversion for OpenClient proxy programs
Dănuț Filimon wrote:
> Constantin Asofiei wrote:
> > Otherwise, you mention @wrong path being looked up for rest@ -...
Constantin Asofiei
06:15 AM Bug #6629: incremental conversion for OpenClient proxy programs
Constantin Asofiei wrote:
> Otherwise, you mention @wrong path being looked up for rest@ - where is this fix?
It ...
Dănuț Filimon
06:14 AM Bug #6629: incremental conversion for OpenClient proxy programs
Please rebase and:
* remove @WebHandlerConfig@ - I think I forgot to delete it via #11213
* @JavaPatternWorker@ - h...
Constantin Asofiei
05:52 AM Bug #6629: incremental conversion for OpenClient proxy programs
Dănuț Filimon wrote:
> Tested a customer application and there's an issue with:
> [...] The @expected_file.p@ can't...
Dănuț Filimon
04:25 AM Bug #6629: incremental conversion for OpenClient proxy programs
Tested a customer application and there's an issue with:... Dănuț Filimon

04/03/2026

03:44 PM Feature #3883 (Pending): eclipse plug for developing 4GL code using FWD including editing, syntax...
Greg Shah
12:06 PM Feature #3883: eclipse plug for developing 4GL code using FWD including editing, syntax checks, r...
We will focus time on #11355 and that delivery should also work in Theia. Regardless of that point, the delivery wil... Greg Shah
03:44 PM Feature #6319 (Rejected): IntelliJ plugin
We can revisit this decision in the future but for now I want to be clear that this is not being worked. Greg Shah
02:51 PM Feature #6319: IntelliJ plugin
Greg, I share your concerns. IntelliJ is indeed a superior Java IDE - the debugger alone is light years ahead of VSCo... Hynek Cihlar
12:04 PM Feature #6319: IntelliJ plugin
My assessment is that it does not make sense to invest in an IntelliJ plugin. Their direction is closed/proprietary ... Greg Shah
12:05 PM Feature #11355: VSCode extension
Implement a fully featured VSCOde extension that supports the full lifecycle of BOTH 4GL and Java development using F... Greg Shah
11:55 AM Feature #11355 (New): VSCode extension
Greg Shah
11:21 AM Bug #6629: incremental conversion for OpenClient proxy programs
Constantin: Is there any additional testing needed or can this merge? Greg Shah
11:20 AM Bug #4867 (Closed): Incremental conversion: change detection algorithm ignores .hints and .ext-hi...
Greg Shah

04/01/2026

10:49 AM Feature #9638: resolve OO dependencies during parsing using annotations in already converted classes
Rebased branch *9638a* with *trunk/16495*. I had fix a post-rebase error. The new revision is *16500*. Octavian Adrian Gavril
08:07 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
I finally managed to get a version of trunk that compiles. Now I'm trying to figure out why the transform driver is t... Paula Păstrăguș
08:02 AM Feature #7178: move the buffer scoping calculations to parse time
Constantin, I've improved the tests and made the following procedure:... Dănuț Filimon
04:52 AM Feature #7178: move the buffer scoping calculations to parse time
Thank you for the list Constantin, I will look into a way to automate creating those tests. Although I do not see it ... Dănuț Filimon

03/31/2026

10:14 AM Feature #7178: move the buffer scoping calculations to parse time
Danut, this is a list of main issues (but not the only issues) which should be covered by the tests. Ideally we can ... Constantin Asofiei
09:36 AM Feature #7178: move the buffer scoping calculations to parse time
Dănuț Filimon wrote:
> I created unit tests, but I can easily extract everything into a set of separate procedures.
...
Constantin Asofiei
09:35 AM Feature #7178: move the buffer scoping calculations to parse time
Constantin Asofiei wrote:
> Dănuț Filimon wrote:
> > Because of the issue with the VM database, Constantin told me ...
Dănuț Filimon
09:30 AM Feature #7178: move the buffer scoping calculations to parse time
Dănuț Filimon wrote:
> Because of the issue with the VM database, Constantin told me to use the Procedure Editor. Ho...
Constantin Asofiei
09:25 AM Feature #7178: move the buffer scoping calculations to parse time
Because of the issue with the VM database, Constantin told me to use the Procedure Editor. However, it seems I need a... Dănuț Filimon

03/30/2026

09:33 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Ah, one more thing worth mentioning: I haven't tackled the lexer-side parser surgery yet, but I did find some equival... Paula Păstrăguș
09:26 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Just a quick update: I managed to get the Progress Parser class close to compile, but there are still quite a few inc... Paula Păstrăguș
03:02 AM Feature #7178: move the buffer scoping calculations to parse time
A bit of a summary update on the current tests:
* Added a few tests based on #7178-9 tasks where I could extract a f...
Dănuț Filimon

03/20/2026

07:52 AM Feature #11317 (New): Implementing multi-threaded parsing
Octavian Adrian Gavril
05:42 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
OK, that would be a good result. The final exam will be if @ProgressTransformDriver@ works properly. Greg Shah
05:04 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
@setChannel(Token.HIDDEN_CHANNEL)@ likely does everything needed: the tokens aren't discarded, they're simply routed ... Paula Păstrăguș
05:00 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Used this grammar to see what happens when we hide a token in antlr4 using @setChannel(Token.HIDDEN_CHANNEL)@:
<pr...
Paula Păstrăguș
04:57 AM Feature #7178: move the buffer scoping calculations to parse time
There are buffer scoping tests available in the testcases project, /tests/persistence/buffer_scoping/. A quick scan o... Dănuț Filimon

03/19/2026

11:51 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
> Will be enough to set the channel to @HIDDEN_CHANNEL@ for the old @hide()@ method?
I doubt it.
Here is the co...
Greg Shah
10:22 AM Feature #10804: create replacement AST implementation for use with ANTLR 4
Will be enough to set the channel to @HIDDEN_CHANNEL@ for the old @hide()@ method?
Note to myself: investigate whe...
Paula Păstrăguș
 

Also available in: Atom