Skip to content

v0.7.0-alpha

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Jun 02:43
f9d2d2e

[0.7.0-alpha] - 2026-06-06

Adds support for Basic4GL Compiler Library runtime compilation functions, updates language support to Basic4GL 2.6.4, adds VM Viewer for advanced debugging, and a handful of new settings and functions.

All sample programs from the original Basic4GL should now be supported 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉

Added:


  • All original sample programs should now be supported; please report any issues here: https://github.com/NateIsStalling/Basic4GLj/issues
  • Implemented compiler library for runtime compilation of Basic4GL code
  • Updated compiler to support Basic4GL 2.6.4 syntax and functions
  • Updated project settings look and feel
  • Added Program Arguments in project settings for commandline input
  • Added JVM Settings in project settings for advanced debugging
  • Added View Virtual Machine debugging option
  • Added support to embed assets with exported programs
  • Added progress status for exporting programs
  • Added Fullscreen support for running programs
  • Added gluLookAt support
  • Added missing VK key codes
  • Added support for accessing files in AppData folder; creates "Basic4GL" folder in AppData
  • Added support to pause program with Pause key while debugging
  • Added support for function/sub pointers
  • Added GetFunctionByName routine

GetFunctionByName Sample

Added GetFunctionByName routine to lookup function/subroutine at runtime by name.

This is mainly useful for extracting function pointers from runtime compiled code.

dim a, b
a = Comp("sub t(): printr 1: end sub")
b = Comp("sub t(): printr 2: end sub")
dim c as sub(), d as sub()
c = GetFunctionByName("t", a)
d = GetFunctionByName("t", b)
c()    ' Will print 1
d()    ' Will print 2

Function/Sub Pointer Sample

Now with function/sub pointers you can take the address of a function/sub, assign it to a variable, pass it to another function, or call it.

sub Apply(fn as function(x))
	dim i
	for i = 1 to 10
		printr fn(i)
	next
end sub

function Twice(n)
	return n * 2
end function

function Squared(n)
	return n * n
end function

printr "Twice": Apply(&Twice)
printr "Squared": Apply(&Squared)

Fixed Issues:


  • #40 Fixed misc. issues with Mouse and Keyboard input for sample programs
  • #67 Fixed glCallLists support
  • #69 Fixed issues with file IO functions

Full Changelog: v0.6.0-alpha...v0.7.0-alpha