Community
Participate
Working Groups
Lots to do...these are only a few suggestions... We generate Java enums for EGL enumerations, so the runtime should use enums for all enumerations. For example, EDictionary's order should be an OrderingKind. System enums like OrderingKind should be pre-generated, included in the runtime, and the generator should know not to generate it if it's used in a .egl file. Get rid of RunUnit, Runtime, Loader. Have no RunUnit at all, for SE use statics (MyLib.getInstance()) and for EE store things in the request scope...take JEE/EJB/LWI things out of classes like StartupInfo. Replace SysLibJni with something that doesn't require JNI.
Also, don't pass the Executable to all the operation methods. Only pass in what's needed.
I've removed ExecutableBase.ezeProgram and stopped passing an Executable to methods that don't need it.
I'm moving this out to Future since I8 has ended. This is really too big for just one work item. It should be broken into several pieces. I started thinking about using static values for libraries and other resources that have been stored in a RunUnit in RBD. These include file handles and many other things. Tim wanted no RunUnit object, just static storage. I can envision part of how that'll work in JSE. For example, we can use singletons for libraries. But with no central repository like a RunUnit it's hard to unload them: sure we can null out the singleton, but we cache the instance in each program that uses the library, how do we clear them? And on the JEE side, Tim wanted store stuff in the request. But I've heard it's a bad idea to store large amounts of data in a session or request.
Made JEE and JSE RunUnit classes, and a Runtime class to manage them. For EE each Thread has its own RunUnit, and for SE there's one RunUnit per JVM. I also removed more leftovers from RBD and things that support features not in EDT 0.7.