General

Profile

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
Greg Shah
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 ...
Greg Shah
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...
Greg Shah
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... Greg Shah
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 ...
Greg Shah
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 ...
Greg Shah
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 ... Greg Shah

04/20/2026

06:16 AM Database Feature #4369: implement stateless FWD server clustering
I'm OK with a STOP condition. Greg Shah
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...
Greg Shah

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...
Greg Shah
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.
Greg Shah
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@):... Greg Shah
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:... Greg Shah
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. Greg Shah
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...
Greg Shah
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... Greg Shah
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 ... Greg Shah
08:22 AM Conversion Tools Feature #10804: create replacement AST implementation for use with ANTLR 4
Can we disable it? Greg Shah
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... Greg Shah
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...
Greg Shah
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... Greg Shah
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. Greg Shah

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,... Greg Shah
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?
...
Greg Shah

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...
Greg Shah
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. Greg Shah
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....
Greg Shah
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... Greg Shah

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... Greg Shah
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...
Greg Shah
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...
Greg Shah
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... Greg Shah

04/09/2026

01:44 PM Runtime Infrastructure Feature #11371: full server-side support of FWD clients
OK, go ahead with the REST API. Greg Shah
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... Greg Shah

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... Greg Shah
11:42 AM TRPL Feature #3211: implement multi-threaded pattern engine and rework the ConversionDriver to leverag...
What was the issue? Greg Shah
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... Greg Shah
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. Greg Shah
11:24 AM Build and Source Control Feature #11367 (New): create separate jars and dependency folder for FWD server
Greg Shah
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 ...
Greg Shah
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 ...
Greg Shah
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...
Greg Shah

04/07/2026

02:37 PM Documentation Support #9709: Needed: Basic example of configuring separate client and server
OK Greg Shah
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... Greg Shah
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...
Greg Shah
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...
Greg Shah
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...
Greg Shah
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...
Greg Shah
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...
Greg Shah
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... Greg Shah
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@ ...
Greg Shah
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...
Greg Shah
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...
Greg Shah

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 ... Greg Shah

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. Greg Shah
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...
Greg Shah
07:49 AM User Interface Feature #11352 (New): implement web client support for mobile optimizations and enhancements
Greg Shah
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... Greg Shah
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 ... Greg Shah
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... Greg Shah
06:26 AM User Interface Feature #11349 (New): ensure that the web client works on iOS devices (both iPad and iPhone)
Greg Shah
03:44 PM Conversion Tools Feature #3883 (Pending): eclipse plug for developing 4GL code using FWD including editing, syntax...
Greg Shah
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... Greg Shah
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. Greg Shah
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 ... Greg Shah
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... Greg Shah
11:55 AM Conversion Tools Feature #11355 (New): VSCode extension
Greg Shah
11:21 AM Conversion Tools Bug #6629: incremental conversion for OpenClient proxy programs
Constantin: Is there any additional testing needed or can this merge? Greg Shah
11:20 AM Conversion Tools Bug #4867 (Closed): Incremental conversion: change detection algorithm ignores .hints and .ext-hi...
Greg Shah
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...
Greg Shah
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...
Greg Shah
08:15 AM User Interface Feature #11354 (New): implement native mobile client
Greg Shah
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... Greg Shah
08:09 AM User Interface Feature #11353 (New): implement support for deployment of the web client as a mobile application ...
Greg Shah
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, ... Greg Shah
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. ... Greg Shah
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... Greg Shah
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 ... Greg Shah
07:22 AM User Interface Feature #11351 (New): implement 4GL language and runtime enhancements for layout strategies (resp...
Greg Shah
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 ... Greg Shah
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... Greg Shah
06:29 AM User Interface Feature #11350 (New): ensure that the web client works on Android devices (both tablet and phone)
Greg Shah
06:02 AM Runtime Infrastructure Bug #11348 (New): require all sessions that authenticate via certificate to use a secure transport
Greg Shah

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,...
Greg Shah

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... Greg Shah

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. Greg Shah
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. Greg Shah

03/25/2026

01:31 PM Base Language Bug #5651: conditions raised from a finally block
Very good work! Greg Shah
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[... Greg Shah
10:08 AM Runtime Infrastructure Bug #11327 (Internal Test): implement size limited "chunking" for bulk data transfer between clie...
Greg Shah
09:11 AM User Interface Bug #10915 (Internal Test): ugly dialogs
OK, so what testing is needed to make sure this is safe? Greg Shah
06:07 AM User Interface Bug #10915: ugly dialogs
Hynek: Please review. Greg Shah
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.
...
Greg Shah
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... Greg Shah
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 ...
Greg Shah
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.
Greg Shah
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...
Greg Shah
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... Greg Shah

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... Greg Shah

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... Greg Shah
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... Greg Shah
 

Also available in: Atom