9.20 Version 2.3 Beta January 15, 2002

This release updates the Euphoria Interpreter, the Euphoria To C Translator, and the Interpreter Source Code product, for all platforms.

  • You can now override a Euphoria built-in routine with your own variable or namespace identifier of the same name. Previously this was only allowed for user-defined routines. Besides giving programmers more freedom, it will allow RDS to add new built-in routines in the future without breaking existing code.
  • The warning about having multiple global symbols with the same name in different source files has been removed. It was felt to be unnecessary since you'll be asked to supply a namespace identifier if you actually make an ambiguous reference to a global symbol.
  • You can now have a trailing \ (or Linux /) on the end of all directory names in EUINC, and you can have blanks in the directory name.
  • To eliminate confusion, the binder/shrouder will now delete the output file if a fatal error occurs during the bind or shroud.
  • Numerous improvements and corrections were made to the documentation. Thanks to Igor Kachan.
  • Old, pre-ANSI function definitions in the interpreter source code, have been updated to ANSI-style, which is more compatible with C++.
  • bug fixed : With DJGPP C, when compiling code produced by the Translator, or compiling the Interpreter source code, there was a memory allocation bug that could waste a bit of time, or, in rare cases, cause a crash.
  • bug fixed : On Windows, using the Interpreter, or a Translated program, you were sometimes required to hit Enter twice to exit from a console window. Thanks to Tone Skoda.
  • bug fixed: The Euphoria dir() function, as implemented for Lcc or Borland, did not handle directories properly when they had extra attributes set, such as READ_ONLY. Thanks to Euman, who encountered the problem, and then showed how to fix the Interpreter source code for dir().
  • bug fixed: You can now declare a namespace identifier with the same name as a built-in function, without causing a lot of errors. Thanks to Martin Stachon (although he recommended a different solution).
  • bug fixed - Binder: Support for the new EUINC environment variable has now been added to the binder. Thanks to Ross Boyd.
  • bug fixed - Binder: Appending resource files to a bound .exe didn't work correctly when bind -clear was used. Thanks to Wolfgang Fritz.
  • bug fixed - Binder: When using the binder interactively, you would get a "variable not initialized" error when trying to substitute a different Windows icon. Thanks to Tony Steward.
  • bug fixed - Binder: In some cases the keyword "constant" would be dropped from the shrouded output, when the previous line of input had a constant declaration ending in ']'. Thanks to Ross Boyd.
  • bug fixed - Binder: When a general expression, (not just a string in quotes), was used as the argument to routine_id(), local routines that were potentially the target of that expression, might have their names changed (unless -clear was used), thus causing routine_id() to return -1 at run-time. Global routines were ok.
  • bug fixed - Binder: The binder/shrouder kept going even though an include file was missing. Thanks to Ross Boyd.
  • bug fixed - Linux Binder: The Linux search path bug for bound executables, supposedly fixed by the 2.3 alpha release, wasn't fixed properly. Fixed now. Thanks to Kenneth Rhodes.
  • bug fixed - Linux Binder: bindu -clear and shroud -clear with a file containing DOS/Windows-style \r\n line terminators gave you errors "illegal character" when your shrouded program was run, and "not bound correctly" when your bound file was run.
  • bug fixed - Interpreter Source: The link command for building the DOS interpreter with WATCOM C, listed a non-existent .obj file.