Overview
Here is an update on HN5's development progress since its development language was switched to Free Pascal.
From now on, early each month I'll do a brief update on HN5's status.
The short term goal is to implement the HN core language and load HN4 & 3 projects.
Once it can load these projects then can simply write projects in HN4 and import them, so don't yet need the Editor & Creator to be working.
Progress
* All the major modules are in place and started filling in code for non-API areas
where API areas are Windows and their controls etc.
* Tracking system working
- every unfinished procedure/function/event when called writes its name once to a log file.
* All strings are UTF8 so can work with languages other than English, eg Russian, Japanese etc.
* Main module and app initialisation plus Splash Window.
* File system and paths now changed to Linux type, will actually be better for OS X & Windows
- will still be backwards compatible with HN4, 3 projects etc.
* Compiler globals - variables mainly done - working on objects and some procedures/functions.
* The two compiler initialisation modules for keywords and functions now done -
currently there are 684 keywords and 628 functions in HN Studio's language.
* Compiler main module
- Pass 1 & 2 now done.
- Pass 3 is the most complex and so working through this.
- Pass 4 fairly trivial but still to do.
* RuntimeGlobals - variables mainly done - working on objects and some procedures/functions.
* RuntimeEngine - variables mainly done - working on objects
This is the most complex yet interesting part of HN.
* Runtime window(card window) started.
* Creator Window, Toolbar and Mode Switcher started
* Editor window & Editor code started.
* SaveLoadGlobals - now focussing on LoadProject and its required objects.
Development Tools
Using Free Pascal and Code Typhon on Lubuntu for main development.
Using ProjectLibre to keep track of everything
- currently ove 3400 procedures/functions/events.
- later need to add another couple of hundred from HAC.
Aims
This month to get the LoadProject routines working so it can read in a project from HN 4 & 3.