CHANGES in Release 5.0 of the Mjølner System

Contents

The following describes the most notable new features and bug fixes in release 5.0 of the Mjølner System, compared to the last official release, r4.1.

New features in r5.0

General new features

Elimination of version numbers in paths
There are no longer version numbers in the paths to libraries. This menas much easier upgrade to new releases, since no version numbers have to be changed. E.g. betaenv is now refered as ~beta/basiclib/betaenv.
Support for string-literal concatenation
String literals, e.g. 'Hello, World!' can now be written as multiple string literals with whitespace between them e.g.
'Hello, '
'World!' -> putline
which will make Hello, World! print out. This will allow long string literals to be written en a more readable fashing in the source code
Notice that this removes the old feature of using double ticks ('') in a string literal when a single tick is wanted in the output. Use backslash-tick (\') instead.
Implementation of MainPart SLOTs
MainPart SLOTs are now fully implemented. This means that the following is now possible:
foobar.bet
ORIGIN ...
BODY 'foo'
...
foo: bar<<SLOT foo:MainPart>>
...

foo.bet
ORIGIN 'foobar'
-- foo: MainPart --
(# ... #)
Preliminary COM support
Microsoft COM technology is now partly supported by BETA. See library comlib. Notice that these features are currently not documented.
New basic patterns
The following basic patterns have been introduced

int8
signed 8-bit integer
int8u
unsigned 8-bit integer
int16
signed 16-bit integer
int16u
unsigned 8-bit integers (replaces pattern shortInt)
int32
signed 32-bit integer (identical to pattern integer)
int32u
unsigned 32-bit integer
int64
signed 64-bit integer
int64u
unsigned 64-bit integer

For the 64 bit integers, limitations exists on their possible usage. See [MIA 90-02].

16-bit characters
Support has been added for 16-bit characters. The library basiclib/wtext.bet defines patterns wstream and wtext that are 16-bit versions of stream and text.
Operations supporting conversion between stream/text and wstream/wtext are available. In future version, wstream and wtext will replace stream/text. Currently most of the Mjølner system is still based on stream/text.
Documentation in HTML
The documentation of the Mjølner System is now primarily in HTML, which in more convenient online than the PDF format used in previous releases. The page you are currently watching is part of this documentation. The main entry to this documentation can be found by clicking here. The latest version of this documentation may always be found at
http://www.mjolner.com/mjolner-system/documentation/

Tool specific new features

Mjolner tool
A new tool called mjolner integrates the previously stand alone tools sif (source browser and editor), freja (CASE tool), frigg (interface builder), beta (compiler), and valhalla (debugger). Among the mentioned, only the compiler is kept as a stand alone tool.
Valhalla
Valhalla is now integrated into the mjolner tool. This means that the long-wanted edit-run-debug-edit-rerun... cycle is now possible.
A new feature in the valhalla part of mjolner is dynamic evaluators, which allows you to open a code editor in the context of an object view, type in a BETA pattern, get the pattern compiled in the context of the object being displayed, and finally running the code. This allows for unlimited inspection of objects and their surroundings without learning another query-language, and also for modification of objects before continuing the program being debugged.
freja tool
Freja, which is now integrated in the mjolner tool, is now available on all platforms.

Library specific new features

OpenGL library
Using guienv/openGL one can now program OpenGL programs in BETA.
guienv
A number of useful features have been added, most of them to the utils directory.
comlib library
A new library with preliminary support for Microsoft COM in BETA.
bifrost
Support for zooming of BifrostCanvas added.

Platform specific new features

PC specific news

Elimination of SDK environment variable
The user no longer have to do a lot of manual setup of e.g. SDK environment variable.
Borland no longer supported
Using the tools from Borland as SDK is no longer supported in the Mjølner System. Use the Microsoft or GNU SDKs instead.
GNU implementation completed
The Mjølner System using the GNU SDK is now comparable with the version using Microsoft as SDK.
valhalla now works under Windows 95
The previous version of valhalla failed to continue after having hit a breakpoint when running under Win95. This error has been fixed.
Execution scripts eliminated
Most of the scripts for invoking the compiler etc. in %BETALIB%\bin has been eliminated. Instead the EXE files are invoked directly. The EXE files are placed in %BETALIB%\bin\<target>, where <target> is one of nti_ms or nti_gnu, depending on whether the Microsoft or GNU SDK is used.
Argument expansion
Arguments given on the command line are now expanded in a UNIX like manner. See pattern Argument in betaenv.

UNIX specific news

SUN SPARC Solaris 2.6 and 2.7
BETA now works under Solaris 2.6 and 2.7
GCC 2.8
BETA now works with gcc 2.8 produced files (specifically on linux).
linux libc5.0
BETA now works with libc5.0 on linux.
linux RedHat 6.0
BETA now works with RedHat 6.0 on linux.
HP-UX 10
BETA now works on HPPA Risc 1.1 or later machines running HP-UX 10.

Macintosh specific news


Behind the scenes

The following is a far from complete list of the bug fixes, significant reimplementations etc., that are included in release 5.0. These are not immediately visible to the user, but should show themselves in the form of better behaviour of the BETA programs.
Serious memory leak eliminated
 
Garbage collection for old objects completely rewritten
 
container libraries partly reimplemented
 
Persistence completely reimplemented
The low-level parts of persistentstore have been completely reimplemented, yielding a performance boost, since linearization objects graphs is now linear in the size of the graph, where it was previously quadratic.

CHANGES in Release 5.0 of the Mjølner System
© Mjølner Informatics