Greg Shah's activity
From 03/23/2026 to 04/21/2026
04/21/2026
- 02:40 PM Build and Source Control Feature #4645 (Closed): Migrate Ant build logic into Gradle and use the standard Java plugin
- 01:28 PM Conversion Tools Feature #1757: update ANTLR to latest version
- ANTLR3 supports @LL(k)@. But it is old and not supported and doesn't have ATN support.
There is this interesting ... - 10:23 AM Conversion Tools Feature #1757: update ANTLR to latest version
- Paula Păstrăguș wrote:
> Also, there is an optimized fork of ANTLR4 available here: https://github.com/tunnelvisionl... - 10:22 AM Conversion Tools Feature #1757: update ANTLR to latest version
- I'm not surprised. Consider how truly awful that result is. The content we are parsing in the @.df@ is trivial. Th...
- 08:12 AM Conversion Tools Feature #1757: update ANTLR to latest version
- We have a big decision to make.
It is not clear to me that ANTLR4 is the best choice. It has been optimized to ... - 08:11 AM Conversion Tools Feature #10804: create replacement AST implementation for use with ANTLR 4
- We have a big decision to make.
It is not clear to me that ANTLR4 is the best choice. It has been optimized to ... - 07:22 AM Conversion Tools Feature #10804: create replacement AST implementation for use with ANTLR 4
- The supposed advantage of @ALL(*)@ is wasted on us. They designed it to trade runtime performance for a more simple ...
04/20/2026
- 06:16 AM Database Feature #4369: implement stateless FWD server clustering
- I'm OK with a STOP condition.
- 06:15 AM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Sergey Ivanovskiy wrote:
> Greg Shah wrote:
> > Code Review Task branch 9709e Revision 16517
> >
> > The changes...
04/17/2026
- 04:38 PM Documentation Support #9709 (Internal Test): Needed: Basic example of configuring separate client and server
- Code Review Task branch 9709e Revision 16517
The changes are good.
What testing has been done to ensure this is... - 04:15 PM Conversion Tools 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. - 01:09 PM Conversion Tools 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@):...
- 01:04 PM Conversion Tools 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:...
- 09:38 AM Conversion Tools 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.
- 09:36 AM Conversion Tools 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... - 09:13 AM Conversion Tools 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...
- 08:23 AM Conversion Tools 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 ...
- 08:22 AM Conversion Tools Feature #10804: create replacement AST implementation for use with ANTLR 4
- Can we disable it?
- 08:02 AM Conversion Tools 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...
- 08:01 AM Conversion Tools 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... - 07:59 AM Conversion Tools 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...
- 07:37 AM Conversion Tools 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.
04/16/2026
- 11:42 AM Conversion Tools 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,...
- 10:54 AM Database Bug #11379: implement "live" metadata tables in persistent database
- > will we have a server hierarchy (tree, star)?
> all nodes equals and a 1-to-1 communication between all servers?
...
04/15/2026
- 08:36 AM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Code Review Task Branch 9709e Revisions 16515 and 16516, Part 1
The name changes are fine. I'm still thinking thr... - 06:33 AM User Interface Bug #11326: Reduce memory consumption of FWD clients
- BTW, the memory referenced by a @memptr@ is allocated off-heap while that variable is in scope on the call stack.
- 05:34 AM Conversion Tools 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.... - 05:15 AM Conversion Tools 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...
04/14/2026
- 09:56 AM Conversion Tools 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...
- 07:44 AM Conversion Tools 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... - 07:31 AM Database Bug #11347: IGNORE_FIELDS_ERROR is thrown in RAQ, extend rereadfields support
- 11301c was merged to trunk in rev 16514 to solve an immediate issue.
See #11301-165 for a set of concerns that rem... - 07:13 AM User Interface Bug #11326: Reduce memory consumption of FWD clients
- This is a great result! I've been wanting to move to a method handle approach for some time now (see #6819-7 and fol...
04/09/2026
- 01:44 PM Runtime Infrastructure Feature #11371: full server-side support of FWD clients
- OK, go ahead with the REST API.
- 10:13 AM Runtime Infrastructure Feature #11371: full server-side support of FWD clients
- I would generally prefer that. But I want to make sure that we plan for the most likely usage scenario. How would i...
04/08/2026
- 01:49 PM Database Bug #11161: fail gracefully when the database connection can not be established
- Instead of @PersistenceException@, shouldn't we be using a @StopConditionException@ (e.g. a legacy-compatible conditi...
- 11:42 AM TRPL Feature #3211: implement multi-threaded pattern engine and rework the ConversionDriver to leverag...
- What was the issue?
- 11:26 AM Runtime Infrastructure Bug #2994: use static code analysis to scan p2j source for security vulnerabilities (Java, Javasc...
- In addition to running static code analysis, we should extend this analysis to use the latest AI LLMs to perform vuln...
- 11:24 AM Build and Source Control Feature #11367: create separate jars and dependency folder for FWD server
- This is the same idea as#11362, but for the FWD server.
- 11:24 AM Build and Source Control Feature #11367 (New): create separate jars and dependency folder for FWD server
- 08:42 AM Build and Source Control Feature #11362: create separate jars and dependency folder for FWD client
- Let's call it @fwd-client.jar@ and we should also discuss if we should add version numbering into the jar name.
I ... - 08:33 AM User Interface Bug #11326: Reduce memory consumption of FWD clients
- > In FWD, for AWT fonts, we have the @KERNING@ disabled.
> After a discussion with Alex, the conclusion is that FWD ... - 08:25 AM Runtime Infrastructure Bug #11271: server-side streams and files with frames/redirected terminal
- Constantin Asofiei wrote:
> Greg Shah wrote:
> > > I think we need to plan for server-side redirected terminal (and...
04/07/2026
- 02:37 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- OK
- 02:00 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- I'd even be OK with all of these values in @broker@ because they can't be passed as @client@ normally (only the broke...
- 01:58 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Sergey Ivanovskiy wrote:
> I should fix @client@ -> @broker@ for the first two parameters:
> [...]
> because these... - 01:58 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Sergey Ivanovskiy wrote:
> Greg Shah wrote:
> > Sergey Ivanovskiy wrote:
> > > I used @clientConfig@ or @webClient... - 01:02 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Sergey Ivanovskiy wrote:
> I used @clientConfig@ or @webClient@ because the same values are defined in the directory... - 01:01 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- > Users of the broker should be added to the directory settings for the given broker accounts list:
I thought this... - 12:52 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Sergey Ivanovskiy wrote:
> Now I rolled back to old values @client:web@, where it was changed and the current client... - 10:50 AM Conversion Tools 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...
- 08:31 AM Conversion Tools 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@ ... - 07:39 AM TRPL Feature #3211: implement multi-threaded pattern engine and rework the ConversionDriver to leverag...
- Octavian Adrian Gavril wrote:
> Greg Shah wrote:
> > > temp-table name suffixes (and their associated filenames/ref... - 07:15 AM TRPL Feature #3211: implement multi-threaded pattern engine and rework the ConversionDriver to leverag...
- > temp-table name suffixes (and their associated filenames/references) have changed.
Is this stable (just a one ti...
04/06/2026
- 08:00 AM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Using @clientConfig:<cat>:<key>@ or @webClient:<cat>:<key>@ in this case does not make sense since we already expose ...
04/03/2026
- 03:52 PM User Interface Feature #11352: implement web client support for mobile optimizations and enhancements
- See #11349-5 for a detailed list of items which need to be implemented.
- 08:05 AM User Interface Feature #11352: implement web client support for mobile optimizations and enhancements
- In #11349 and #11350, we are doing the minimum to ensure the existing web client works on mobile.
In this task, th... - 07:49 AM User Interface Feature #11352 (New): implement web client support for mobile optimizations and enhancements
- 03:52 PM User Interface Feature #11349: ensure that the web client works on iOS devices (both iPad and iPhone)
- Several of these areas would be things I'd expect to defer to #11352. This task is just to do the minimum to allow t...
- 07:36 AM User Interface Feature #11349: ensure that the web client works on iOS devices (both iPad and iPhone)
- One very likely issue is that our avoidance of the DOM/HTML controls means that the mobile keyboard support probably ...
- 06:28 AM User Interface Feature #11349: ensure that the web client works on iOS devices (both iPad and iPhone)
- The purpose of this task is to test the FWD web client on iOS devices and fix blocking issues that stop users from us...
- 06:26 AM User Interface Feature #11349 (New): ensure that the web client works on iOS devices (both iPad and iPhone)
- 03:44 PM Conversion Tools Feature #3883 (Pending): eclipse plug for developing 4GL code using FWD including editing, syntax...
- 12:06 PM Conversion Tools 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...
- 03:44 PM Conversion Tools 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.
- 12:04 PM Conversion Tools Feature #6319: IntelliJ plugin
- My assessment is that it does not make sense to invest in an IntelliJ plugin. Their direction is closed/proprietary ...
- 12:05 PM Conversion Tools Feature #11355: VSCode extension
- Implement a fully featured VSCOde extension that supports the full lifecycle of BOTH 4GL and Java development using F...
- 11:55 AM Conversion Tools Feature #11355 (New): VSCode extension
- 11:21 AM Conversion Tools Bug #6629: incremental conversion for OpenClient proxy programs
- Constantin: Is there any additional testing needed or can this merge?
- 11:20 AM Conversion Tools Bug #4867 (Closed): Incremental conversion: change detection algorithm ignores .hints and .ext-hi...
- 11:11 AM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Code Review Task Branch 9709e Revisions 16486 through 16492
The overall code changes seem fine. My primary concer... - 08:21 AM User Interface Feature #11354: implement native mobile client
- The idea is to implement a true mobile client for FWD.
On Android, it has support for Java so we could potentially... - 08:15 AM User Interface Feature #11354 (New): implement native mobile client
- 08:14 AM User Interface Feature #11353: implement support for deployment of the web client as a mobile application using ...
- Using frameworks like capacitor and/or apache cordova, web applications can be compiled and packaged as a mobile appl...
- 08:09 AM User Interface Feature #11353 (New): implement support for deployment of the web client as a mobile application ...
- 08:00 AM User Interface Feature #11351: implement 4GL language and runtime enhancements for layout strategies (responsive...
- Another approach would be to have different widget drawing implementations for different form factors. For example, ...
- 07:59 AM User Interface Feature #11351: implement 4GL language and runtime enhancements for layout strategies (responsive...
- We should consider that form factors with certain input limitations may require layout differences to work properly. ...
- 07:56 AM User Interface Feature #11351: implement 4GL language and runtime enhancements for layout strategies (responsive...
- Although my idea is to define explicit strategies that the developer would specify, I can also imagine that there are...
- 07:29 AM User Interface Feature #11351: implement 4GL language and runtime enhancements for layout strategies (responsive...
- A "layout strategy" is the concept of defining a mapping of named layouts (e.g. single column, double column...) and ...
- 07:22 AM User Interface Feature #11351 (New): implement 4GL language and runtime enhancements for layout strategies (resp...
- 07:36 AM User Interface Feature #11350: ensure that the web client works on Android devices (both tablet and phone)
- One very likely issue is that our avoidance of the DOM/HTML controls means that the mobile keyboard support probably ...
- 06:30 AM User Interface Feature #11350: ensure that the web client works on Android devices (both tablet and phone)
- The purpose of this task is to test the FWD web client on Android devices and fix blocking issues that stop users fro...
- 06:29 AM User Interface Feature #11350 (New): ensure that the web client works on Android devices (both tablet and phone)
- 06:02 AM Runtime Infrastructure Bug #11348 (New): require all sessions that authenticate via certificate to use a secure transport
04/02/2026
- 09:00 AM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- Sergey Ivanovskiy wrote:
> Hynek, thank you for the review! Did you use automatic helpers for this review? Recently,...
03/31/2026
- 03:13 PM Runtime Infrastructure Bug #11271: server-side streams and files with frames/redirected terminal
- > I think we need to plan for server-side redirected terminal (and thus frames) rather sooner than later; I think for...
03/30/2026
- 10:02 AM Deployment Bug #11329: Stateless FWD server clustering setup questions
- For clustering, we should not be working with H2. PostgreSQL would be the proper target, even for Hotel GUI.
- 07:23 AM Deployment Bug #11329: Stateless FWD server clustering setup questions
- That makes sense. Please work with Roger to use/enhance our standard images as needed.
03/25/2026
- 01:31 PM Base Language Bug #5651: conditions raised from a finally block
- Very good work!
- 10:13 AM Runtime Infrastructure Bug #11327: implement size limited "chunking" for bulk data transfer between client and server
- As documented in #5776-4, there are use cases where we do bulk data transfer between client and server using a @byte[...
- 10:08 AM Runtime Infrastructure Bug #11327 (Internal Test): implement size limited "chunking" for bulk data transfer between clie...
- 09:11 AM User Interface Bug #10915 (Internal Test): ugly dialogs
- OK, so what testing is needed to make sure this is safe?
- 06:07 AM User Interface Bug #10915: ugly dialogs
- Hynek: Please review.
- 09:09 AM Runtime Infrastructure Bug #11271: server-side streams and files with frames/redirected terminal
- >> Code Review Task Branch 11271a Revision 16469
>
> Sorry, the branch to review is 11271b rev 16492 as of now.
... - 07:06 AM Runtime Infrastructure Bug #11271: server-side streams and files with frames/redirected terminal
- Is the testcase from #11271-7 a common pattern? Should we just complete the implementation of a server-side headless...
- 07:04 AM Runtime Infrastructure Bug #11271: server-side streams and files with frames/redirected terminal
- Code Review Task Branch 11271a Revision 16469
1. Let's find a different name than @IStream@ for the interface. I ... - 06:18 AM Runtime Infrastructure Bug #11271: server-side streams and files with frames/redirected terminal
- Hynek: Please review this with urgency.
I will review it shortly. - 06:26 AM TRPL Feature #3211: implement multi-threaded pattern engine and rework the ConversionDriver to leverag...
- Octavian Adrian Gavril wrote:
> Another thing. @!unFormedFrames.isEmpty@ check from @frame_generator_pre.xml>rule-se... - 06:25 AM TRPL Feature #3211: implement multi-threaded pattern engine and rework the ConversionDriver to leverag...
- > But, if we have a @DEFINE_FRAME@ having a @WITH@ frame clause (that doesn't mention the frame name because it's a f...
03/24/2026
- 11:56 AM TRPL Feature #3211: implement multi-threaded pattern engine and rework the ConversionDriver to leverag...
- Some UI language statements which can define a frame can be specified without a frame name. Actually, all of the fra...
03/23/2026
- 12:39 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- > What is about 9709d where cross-site secure cookies with partition attribute CHIPS (Cookies Having Independent Part...
- 09:41 AM Documentation Support #9709: Needed: Basic example of configuring separate client and server
- > Greg, please inspect @ConfigItem@ for defined bootstrap options. This class should define all configuration paramet...
Also available in: Atom