|
- July 2001
- Released gbeta 0.9
- June 2001
- Switched to version 0.9, preparing new release.
- May 2001
- Added a lot of static pattern stuff (instructions, code generation
with these instructions, options to control it, support in static
analysis).
- April 2001
- Started introducing static patterns in the analysis. A static
pattern describes a complete pattern which is known already at
compile time. Working with static patterns at run-time is the
first step that must be taken in order to avoid performing
(expensive!) pattern merge operations at run-time.
- April 2001
- Totally reorganized the treatment of options, to make it easier to
keep options and documentation/help/usage synchronized. In the
new approach, each option is one object, and that object handles
everything related to that particular option, including printing
usage info and detecting whether a given command line argument is
a usage of that option.
- March 2001
- Segregated run-time steps into "internal" and "final" ones, thereby
making the construction and execution of run-time paths much
clearer (and removing a couple of un-discovered bugs).
- February 2001
- Switched over to using the new meta-programming system from
Mjolner. This new version of MPS supports mapping from abstract
syntax tree node to from/to-char-pos in the source code. This
means that there is no need to use the special, patched, version
of MPS that adds this functionality, thus getting rid of an old
inconvenience.
- January 2001
- Adding support for saving static info to disk
(option -s).
- September 2000
- Started working through the entire static analysis, expressing
types in a different way. The difference is that the fixed
attribute and the exactType attribute of types are
removed and a new staticallyKnown attribute added. The
most important difference is that the types in the new approach
will never describe anything but patterns, and they will
never describe another number of patterns than exactly
one. With the old approach, a type could describe an object, and
it could sometimes describe two entities - and that simply got too
messy over time.
- September 2000
- Introduced programs into when statements, thereby
compiling them all the way down to byte code, such that they can
be expressed in disk file byte code format.
- September 2000
- Added level indications to tmp stack instructions, thus
taking a first step towards a register based virtual machine (as
opposed to the current model which is stack oriented).
- July 2000
- Started working on the disk file format for byte code. The file
based byte codes will be a printed version of the byte codes which
are stored in the abstract syntax trees today. To be able to do
this we must compile a few constructs down to a lower level than
they are in the abstract syntax trees, because the disk file byte
codes must contain complete information about the program
being executed: It is no longer possible to take a quick look at
the abstract syntax and/or the static info in order to execute a
byte code.
- Spring 2000
- Worked on compiled object creation (it used to be based on
closures but it will now use byte code). This is the last part
of the language that still needs to be translated into byte code,
all other parts are already being translated.
- February 2000
- Released gbeta 0.81. It should have been "0.8.1", but
it's hardly worth the trouble to change that after the
announcement has been made.
- January 2000
- Ported gbeta to the new release of the Mjolner BETA System.
Implemented an eval primitive; this is an experiment, and
there is no commitment that the language gbeta must support
eval.
- Autumn 1999
- Defended PhD thesis, started as an assistant prof. at the Univ. of
Aalborg, Denmark (not much time for implementation..)
- July 25, 1999
- Released gbeta version 0.8
- June 15, 1999
- Delivered final version of my PhD thesis which is basically
about gbeta; the thesis will be made available on this
site. It is the most comprehensive source of information
about gbeta so far.
- Spring 1999
- Implemented various parts of gbeta which had been conceived
and designed during 1998 and 1999; e.g., lower bounds on
virtuals, disownment markers, enhancements in the fragment
system, and a better semantics for final bindings.
- Summer and autumn 1998
- Finally found a plausible design for a byte-code based model
of execution, and implemented it.
- Spring 1998
- Implemented more and more of the language,
changing the semantics in a few cases where the
earlier choices turned out to be ill-defined; also
wrote some papers which were revised lots of times
and were accepted at conferences and/or became parts
of the PhD thesis at a later stage.
- December 20, 1997
- Improved navigation on this web-site, added
"not-yet-ready" markers a few places, fixed some typos.
- December 18, 1997
- The gbeta web-site is fairly complete. Announced on some
news groups, with the release of gbeta version 0.5.
- November 28, 1997
- Everything here is new
| |