Skip to content

Releases: koder77/l1vm

L1VM - 3.6.3

Choose a tag to compare

@koder77 koder77 released this 19 Jun 20:49

L1VM (3.6.3)
Bugfixes in some modules. Marked return stpush for the new linter function tool.

-- Stefan Pietzonke info@midnight-coding.de Wed 3 June 2026 22:40 +020

L1VM (3.6.2)
Added "linter-autogen": l1vm-cfunc and l1vm-func.
With these tools a linter header file with the function definitions can be created.
Here is an example:

// (func args nanoid_create int64)
// (return args nanoid_create none)
// (func args nanoid_create_custom int64 int64 int64)
// (return args nanoid_create_custom none)

See the README file!

NetBSD install scripts update to use pkgin with "-4" IP version 4 flag.

-- Stefan Pietzonke info@midnight-coding.de Mon 25 May 2026 20:48 +020

L1VM (3.6.1)
Compiler: memory leak fixed.

-- Stefan Pietzonke info@midnight-coding.de Sat 16 May 2026 18:09 +020

L1VM - 3.6.0

Choose a tag to compare

@koder77 koder77 released this 13 May 16:34

L1VM (3.6.0)
VM: experimental "main-sched.c" virtual CPU task scheduler added.
See prog: "hello-sched.l1com".

I fixed a bug in the L1VM scheduler POSIX threading code start position.
NOTE: you can't start new POSIX threads in the L1VM scheduler VM.
I try to fix this, but it can take some time.

-- Stefan Pietzonke info@midnight-coding.de Tue 07 April 2026 17:46 +020

L1VM - 3.5.4

Choose a tag to compare

@koder77 koder77 released this 01 Jan 19:35

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

Choose a tag to compare

@koder77 koder77 released this 17 Aug 12:03

Example programs updates.

L1VM - 3.5.1

Choose a tag to compare

@koder77 koder77 released this 07 Aug 18:40

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

Choose a tag to compare

@koder77 koder77 released this 18 May 10:11

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

Choose a tag to compare

@koder77 koder77 released this 28 Mar 20:25

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

Choose a tag to compare

@koder77 koder77 released this 23 Feb 10:23

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

Choose a tag to compare

@koder77 koder77 released this 16 Feb 16:30
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

Choose a tag to compare

@koder77 koder77 released this 24 May 15:19

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!