Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 11:16 25 Apr 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : MMB4L: MMBasic for Linux version 0.5.0

Author Message
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3839
Posted: 10:14pm 02 Feb 2023
Copy link to clipboard 
Print this post

Previous MMB4L alpha release thread

Well it's here, and I'm not sure it was worth waiting for since most of what is new has happened internally, or is the addition of more unit and integration tests.

Download: https://github.com/thwill1000/mmb4l/releases/tag/0.5.0
README: https://github.com/thwill1000/mmb4l/blob/0.5.0/README.md

ChangeLog
---------

Version 0.5.0 - 3-Feb-2023:
 - Changed to semantic versioning scheme.
   Note that MMB4L is still versioned independently of Geoff and Peter's
   "mainline" MMBasic platforms.
       - MM.INFO(VERSION) will return the integer 5000000 for this release,
         divide by 10000000 to get float equivalent, e.g. 0.5
       - MM.INFO(VERSION MAJOR) will return major version, 0 for this release.
       - MM.INFO(VERSION MINOR) will return minor version, 5 for this release.
       - MM.INFO(VERSION MICRO) will return minor/patch version, 0 for this
         release.
       - MM.INFO(VERSION BUILD) will return the build number, 0 for this
         release and only included for use in some theoretical future.
 - Added "automatic path completion" to the MMBasic prompt.
       - Pressing TAB will attempt to complete (as far as can be unambiguously
         determined) a filename that the user is typing at the prompt, or sound
         the console bell if no completion is possible.
 - Added MM.INFO(CALLDEPTH) to return the current function/subroutine call
   depth.
       - 0 when at the global level, i.e. not in a function/subroutine.
       - Primarily for debugging purposes, though a possible production
         use-case would be to allow a program to "bail out" if recursion gets
         too deep.
 - Added MM.INFO(PID) to get the process ID of the MM4L process.
 - Added MM.INFO(CPUTIME) to get the value (in nanoseconds) of the CPU timer
   for the MMB4L process.
 - Changed function, label, subroutine and variable lookup to use hashmap.
       - Depending on the problem this might be expected to produce a 3-5%
         improvement in performance.
 - Changed syntax of RUN command to:
       RUN [file$] [, cmdline$]
   Both file$ and cmdline$ can now be string expressions instead of
   the legacy behaviour where the command line argument was "not processed" by
   MMBasic and was copied verbatim into the MM.CMDLINE$ of the new program.
       - This change means that cmdline$ can now be constructed from other
         variables and functions instead of having to be hardcoded, or
         finessed by using EXECUTE to construct the RUN statement.
       - If the text following the comma contains an unquoted minus sign then
         for backward compatibility MMB4L trys to use the legacy behaviour,
         but this does not work for all possible legacy command lines.
   Note that the behaviour of the * command is unchanged; expressions in any
   command line provided via * are not evaluated by MMB4L, e.g.
       *foo a$ + b$
   is equivalent to:
       RUN "foo", "a$ + b$"
 - Changed RUN file$ so that it is not necessary for file$ to have a ".bas"
   extension.
       - If file$ does not exist then will try appending the extensions
         ".bas", ".BAS" and ".Bas" in turn.
 - Changed #INCLUDE "<file>" so that it is not necessary for <file> to have
   a ".inc" extension.
       - If <file> does not exist then will try appending the extension
         ".inc", ".INC" and ".Inc" in turn.
 - Changed XMODEM to improve read/write performance.
       - It now reads/writes 128 characters at a time instead of 1.
 - Changed MMBasic prompt so that you can access the history with the up
   and down cursors even after you start typing a command.
 - Changed some error messages to be clearer and/or more specific.
 - Changed "mmbasic.syntax.nanorc" to improve syntax highlighting of comments.
       - Even so it is still not 100% correct.
 - Fixed bug where relative #INCLUDE files could not be found when running
   a symbolic link to an MMBasic file.
       - The path to the #INCLUDE files was incorrectly being resolved relative
         to the parent of the symbolic link instead of the parent of the target
         file.
 - Fixed several bugs with identifiers allowing / being limited to 32
   characters (not including variable/function type suffix).
 - Fixed bug with GOSUB/RETURN corrupting the interpreter state when using
   ON ERROR SKIP.
 - Fixed bug where function returns corrupted the interpreter state when using
   ON ERROR SKIP.
 - Fixed bug where an "Internal fault" error would be reported immediately if
   the console/tty dimensions could not be determined when displaying the
   MMBasic prompt.
       - This can be a transient problem so MMB4L now retries for 1 second
         before reporting a "Cannot determine terminal size" error.
 - Fixed bug in OPTION LIST for F<num> function key options whose values
   contained carriage-return character.


Best wishes,

Tom
Edited 2023-02-03 08:15 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3654
Posted: 11:36pm 02 Feb 2023
Copy link to clipboard 
Print this post

Looks like good progress :)

John
Edited 2023-02-03 09:36 by JohnS
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3013
Posted: 01:20am 03 Feb 2023
Copy link to clipboard 
Print this post

Thanks for this. A ton of work.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024