routine or constant name search

9.1 Version 4.1.0 Date TBD

9.2 Bug Fixes

  • ticket:665 Fixed to load socket routines from its DLL only when needed.
  • ticket:744 Detect duplicate case values in a switch statement and throw an error at compile or parse time
  • OS X bug fixes:
    • Callbacks function again, including on 64bit platforms
    • Memory maps function
  • Fix std/net/http.e that caused malformed HTTP GET requests
  • Updated demo/news.ex with up-to-date URLs for some news web sites.
  • Fix std/net/http.e so it can handle cases where the Content-Length header is not present
  • Fix std/sequence.e so store() will correctly handle the one-element index case - it was duplicating the entire sequence before.
  • ticket:710 Updated tokenizer and syntax coloring to be able to preserve state between lines. The euphoria trace screen and ed.ex now properly colorize multiline strings and comments.
  • tokenize_string had an infinite loop if the string ended with a single or double quote and a backslash
  • euphoria/tokenizer.e does not add a leading zero to floating point numbers without one when string_numbers is set
  • fixed detection of hex string tokens in tokenize_string
  • tokenizing better respects the value of stop_on_error parameter for tokenize_string
  • ticket:884 32-bit translator crash when translating a 64-bit target
  • ticket:886 system_exec with quotes on Windows failed due to quotes being removed
  • ticket:887 EDS: crash if create_table and clear_table init_records parameter was less than MAX_INDEX

9.3 Enhancements

  • Euphoria can be built natively as a 64-bit programming language.
  • Added 8-byte memory access: poke8, peek8s, peek8u
  • eucoverage also outputs a file "big_routines.html" that shows covered routines from all files sorted by descending routine size
  • Added poke_pointer and peek_pointer
  • New sizeof built-in for determining size of certain data types.
  • ticket:631 Scientific parsing code moved from the euphoria source directory and into the standard library. Routines in std/get.e now return the proper precision data based on the native platform (32 or 64 bits).
  • Users can write their own debuggers and use them instead of the built in trace debugger.
  • gcc builds now include -fPIC (position independent code) runtime libraries for translating euphoria code into shared objects.
  • -lib-pic switch for translator to specify the PIC runtime library to be used
  • ticket:166 get_integer{16,32} will return -1 on EOF.
  • Added deprecate keyword
  • Architecture ifdefs (X86, X86_64, ARM, BITS32, BITS64, LONG32, LONG64)
  • -arch option for translator for cross translating
  • -cc-prefix option for translator
  • Can assign to multiple variables with one statement using sequence semantics.
  • Use ? to stand in for default parameters.
  • eudis now tabulates counts of forward references
  • Added poke_long, peek_longu and peek_longs
  • ticket:735 The number of lines to be used in ctrace.out by trace(3) can be configured using -trace-lines n command line switch. See Command line switches for more information.
  • ticket:782 When downloading http content, std/net/http.e will yield to other tasks
  • t_integer32 type for checking to see if an object is an integer based on 32-bit Euphoria's definition
  • Improved identification of routine_id() targets by the translator
  • Smaller translated DLLs are produced by improved identification of routines that need to be exported
  • Eutest now has an eubin option for specifying all binaries in a single option.
  • Eutest has a retest option for retesting all tests that had previously failed.
  • Front end optimizations to reduce parsing time
  • Added dynamic library uninitialization to reduce memory leaks if a euphoria translated .dll or .so is unloaded
  • ticket:838 Eutest now reports the date of the Interpreter, and when the test was completed.
  • Much faster and simpler implementation of maps in std/map.e inspired by the implementation of python's dictionary object. Some functions and parameters have been deprecated (such as any distinction between small and large maps), as they no longer make sense for the new implementation.
  • ticket:532 extra-cflags and extra-lflags for translator (thanks to Ira Hill)
  • lock_file on Windows now supports LOCK_SHARED and LOCK_EXCLUSIVE
  • tokenize_file uses io:BINARY_MODE by default instead of io:TEXT_MODE, which improves performance on large files with Windows style newlines
  • ticket:883 Improved error messages on subscript / slice errors
  • ed.ex renamed edx.ex