Skip to content

Releases: koder77/l1vm

L1VM - 3.5.4

01 Jan 19:35

Choose a tag to compare

L1VM (3.5.4)
VM: Added function epoch ms interrupt: get the time after UNIX epoch in ms.

VM: Added gps module to read GPS from the gpsd server.
See "lib/gps.l1com" example.

NEW: The linter has now a "strict" flag. With it set the result variables must end by a uppercase "R" ending.
They are not alowed as function arguments. See "linter/math-inc-strict.l1com".

Added VM/string: "string_format_num" function to print strings formatted: 1,000,000.12345.

-- Stefan Pietzonke info@midnight-coding.de Sun 27 December 2025 18:26 +010

L1VM - 3.5.2

17 Aug 12:03

Choose a tag to compare

Example programs updates.

L1VM - 3.5.1

07 Aug 18:40

Choose a tag to compare

L1VM (3.5.1)
Compiler: NEW flag -savecode to put the Brackets code line into the assembly output.

VM: modules: I added support for Bluetooth BLE with the SimpleBLE library.
Note: If you use the SimpleBLE library commercially, then you have to pay a license!

I did check the Bluetooth BLE read and write functions. They both are working!
NEW: support for NetBSD and also MidnightBSD.

-- Stefan Pietzonke info@midnight-coding.de Thu 07 August 2025 20:37 +020

L1VM (3.5.0)
Compiler, assembler MAXLINELEN fixes.
AsmJIT compiler finally updated to the current GitHub version.

NEW: SDL 3.0 module: gfx primitives like lines, pixel and GUI are working.
I added camera support. See in "prog/sdl" example.

-- Stefan Pietzonke info@midnight-coding.de Sat 31 May 2025 17:54 +020

L1VM - 3.4.2

18 May 10:11

Choose a tag to compare

L1VM (3.4.2)
In settings header LOW RAM limits changed.
The compiler needs then only 11 MiB to compile.
Compiler fixes.

NEW: now in Brackets code a new flag "(linter)" can be set to make sure the code was "linted"!

NEW: added contracts into the compiler. Now "preconditions" and "postconditions" can be set in a function.
See example "prog/lint/math-inc.l1com"!

-- Stefan Pietzonke info@midnight-coding.de Thu 08 May 2025 18:12 +020

L1VM (3.4.1)
Added new string-unicode module for unicode support.
See lib/string-unicode.l1com example.

-- Stefan Pietzonke info@midnight-coding.de Sat 05 Apr 2025 23:42 +010

L1VM - 3.4.0

28 Mar 20:25

Choose a tag to compare

L1VM (3.4.0)
Changed the -pack bzip2 bytecode compression to bzip3, which generates more compact files.

-- Stefan Pietzonke info@midnight-coding.de Sat 22 Mar 2025 21:38 +010

L1VM (3.3.8)
Preprocesso: show line number in macro errors.
Preprocessor: second pass removed. Now error messages show the right line numbers!

VM: added two new interrupts to switch memory bounds check on push/pull opcodes:

(:memory_bounds_off !)
(:memory_bounds_on !)

If it is switched off then the execution speed can increase a lot.
But the overflow checking is disabled for push/pull opcodes!

Added "unsafe" and "unsafe-end" code blocks.
Inside a unsafe block the memory bounds checking can set on/off.
See example "prog/little-vm.l1com".

Added variable prefixes:

(\num\x * \num\y \num\z :=)

So here is the prefix: \num\
All variables must have the same prefix like the target variable \num\z.
So here \num\ is a special type all variables in the math expression must have.
See "prog/type.l1com".

-- Stefan Pietzonke info@midnight-coding.de Sat 08 Mar 2025 12:57 +010

L1VM - 3.3.7

23 Feb 10:23

Choose a tag to compare

L1VM (3.3.7)
VM/MPFR module Windows and macOS build scripts: memory bounds added.

-- Stefan Pietzonke info@midnight-coding.de Fri 21 Feb 2025 32:00 +010

L1VM - 3.3.6

16 Feb 16:30

Choose a tag to compare

Added "repair multi spaces" function to compiler.
It fixes the two or more spaces problem between tokens.

    (set  string  13 hello   "Hello world!")

will be changed to:

(set string 13 hello "Hello world!")

   For the other changes see ChangeLog!

L1VM - 3.1.5

24 May 15:19

Choose a tag to compare

L1VM (3.1.5)
Compiler: added := as assign operator for expressions too.
So you now should use := as the assign operator for new programs.
The old way of using = still works. This is backwards compatible
and older programs still compile.

-- Stefan Pietzonke info@midnight-coding.de Tue 21 May 2024 15:57 +020

For older changes see ChangeLog!

L1VM - 3.1.0

27 Apr 22:03

Choose a tag to compare

L1VM (3.1.0)
NEW: linter now checks if function arguments are in right order at "stpop" call.

-- Stefan Pietzonke info@midnight-coding.de Wed 24 Apr 2024 21:14 +020

L1VM (3.0.10)
NEW: preprocessor reuse alredy set defines bugfixes.

-- Stefan Pietzonke info@midnight-coding.de Sat 06 Apr 2024 22:00 +020

L1VM - 3.0.0

01 Feb 21:08

Choose a tag to compare

L1VM (3.0.0)
NEW: now math expressions can be written like this in Brackets:

{i = xd + yd}

The () brackets are not longer needed for this, to work.
The old way was:

{i = (xd + yd)}

-- Stefan Pietzonke jay-t@gmx.net Thur 1 Feb 2024 21:18 +0100

L1VM (2.9.0)
Added "return" to compiler. See "prog/return.l1com".

-- Stefan Pietzonke jay-t@gmx.net Thur 1 Feb 2024 15:54 +0100

L1VM (2.8.8)
NEW: Added "tab" to SDL multiline string gadget. With the "tab" key you can insert spaces to "wrap" to the next input line.
See program "lib/sdl-lib-test.l1com".

-- Stefan Pietzonke jay-t@gmx.net Sun 28 Jan 2024 20:05 +0100