Liberty BASIC v4.04 release notes

  • Added support for both Windows Vista and Windows 7!

  • Fixed the FUNCTION statement so it will allow more than one space between the keyword FUNCTION and the name of the function:
  function   thisDidntUsedToWork(a)

  • Fixed the SUB statement so that it won't allow duplicate parameter names, like so:
  sub testName x0, x0

  • Tweaked the debugger so it takes fewer clicks to step through an INPUT statement.

  • Tightened up syntax checking on the IF/THEN statement so that two or more colons in a row after THEN is a syntax error

  • Added a StartupDir$ variable which is handy particularly when using Vista because the startup folder and user data folder aren't always the same.

  • Added the ability to specify two macros when creating entries in the External Programs window under the Setup menu.
    You can use either $USERDATA or $STARTUP.
    For example the preconfigured error.log entry looks like:
  notepad.exe $USERDATAerror.log

  • Fixed a problem creating the backup folder when the user changes it.

  • A popup error notice was sometimes appearing when a program would run all the way through in the debugger.

  • Tweaked Freeform to work with LB v4.04.

  • Modified Liberty BASIC to place program and data files in the user data folder instead of inside the application folder when running under Vista.

  • Changed the name of lbasic400.ini to lbasic404.ini.

  • Changed the error message that can appear when creating an application
    from "Problem creating application..."
    to a more helpful "Problem creating application... If a file cannot be found, launch Liberty BASIC from the Start menu and try again."

  • Fixed. Using the debugger could sometimes result in a "hasMainWindow not understood" error.

  • Added STEP to the list of keywords recognized by the syntax colorer.

  • Fixed the tooltip for the release notes toolbar button to read 'Release Notes, Alt-H+R'

  • Fixed a problem with the selection of items in the Lesson Browser's outline list.

  • Fixed a problem where the compiler was not catching undefined constant names when used in a CALLDLL statement as a parameter.

  • Fixed a bug where the compiler would sometimes fail with an error "syntaxError: not understood"

  • Tighten up the detection of bad syntax.
    Here is an example of a line that blows up in v4.03 but which is properly flagged as a compile error in v4.04:
  for x = 1 to n%

  • Fixed an issue where sometimes deployed applications would fail with index outside collection bounds errors when a user defined SUB or FUNCTION called another user defined SUB or FUNCTION.

  • Changed the terminology when closing a program from "Terminate..." to "Close program..."

  • Closed a loophole in the type checking for functions in expressions.
    The following compiles in v4.03 but not in v4.04.
  print instr(3, "4")

  • Fixed a bug where values in scientific notation having a negative exponent were not getting parsed successfully in the eval() and eval$() functions.
    The following fails in v4.03 for example:
  print eval("3e-7")

  • Converted the help files to HTML format