ChangesFor4_0b2

Change Log

Euphoria 4.0b2

Fixed Tracked Bugs

  • bug #2836273 Pre-processor now runs executable files in addition to .ex scripts and .so/.dll shared libraries.
  • bug #2819321 Safer memory copying is now down in backend code.
  • bug #2823480 Expanded the standard C Data types.
  • bug #2840490 BIND now uses eu.cfg and -C switch.
  • bug #2842859 Incorrect targets for LHS_SUBS and LHS_SUBS1
  • bug #2842629 Ifs and whiles shoudn't leak any more
  • bug #2836214 t_net_http test is passing now.
  • bug #2845070 Fixed memory leak in translated RETURNF ops.
  • bug #2845077 Fixed translator memory leaks
  • bug #2845572 Binder deals correctly with deleted/undefined symbols
  • bug #2845322 FUNC blocks are converted to use PROC. FUNC is not an opcode, and the block structure uses opcodes.
  • bug #2845075 Fixed translated LHS_SUBS1_COPY op
  • bug #2843059 creole.e: The first leading new line is removed from block-style tags and from <eucode> blocks.
  • bug #2836211 Added -m32 to gcc targets so that euc properly builds programs on 64bit systems.
  • bug #2842929 Unit tests no longer use 'google'. Instead they use 'example.com'
  • bug #2837802 Removed references to DOS from bin/ programs.
  • bug #2837839 Now classes URL's that begin with a '/' as a relative external link.
  • bug #2841330 http.e: Default User Agent header is now OpenEuphoria.
  • bug #2842520 The not-used checking now distinguishes between "not used" and "assigned but not used".
  • bug #2844738 typo in compile.e

Fixed Non-Tracked Bugs

  • is_exported to only export truly exported routines
  • http.e to include v4 get.e instead of v3 get.e
  • message #127 call. Now displays the relevant data as a character rather than as an integer.
  • version generation for Jam builds
  • broken build. For loop temps were being handled incorrectly.
  • exit_block in execute.e: a cleanup in the middle of exiting would disrupt looping through the variables in the block.
  • Fixed tail recursion to work again. Changes to temp handling had prevented the parser from recognizing tail recursion opportunities.
  • LHS_SUBS1 doesn't use the extra copied target, but it is backpatched to make LHS_SUBS1_COPY, which does, so we need to add it. This results in an extra (harmless) DEREF_TEMP for LHS_SUBS1.
  • ex, exw and exu were changed to eui in the demo/ directory.
  • text.e: Fixed format.e(). Now correctly handles format codes that reference non-existing arguments.
  • text.e: Fixed bug in format(). Now correctly uses the '+' format code.
  • console.e: Fixed display(). Now correctly avoids outputting a new line when last argument is a zero.
  • Temp handling may have been faulty for BIND mode
  • Fixed disassembly for LHS_SUBS and LHS_SUBS1 to show that the last operand is unused
  • Fix crash in extra cleanup code that was meant to help find memory leaks.
  • Most memory leaks have been fixed. Maybe still some in the translator
  • Fixed some opcode definitions in shift.e
  • JAM: Fixed EuDoc rule to use PATH_EUI_EXE
  • Creole: Fixed the situation in which </eucode> is the last tag in the input text.
  • Fixed gnu install target to create include/std/net dir
  • Interpreter backend no longer sees undefined variables (remnants of forward references)
  • Fixed -silent in buildsys. Now if prevents messages going to stdout.
  • il.e: Fixed. Now shows correct executable name for the backend program.
  • makefiles: The eub program is now also dependant on il.e. Both .wat and .gnu now have same list of dependancies to build eub.
  • ed.ex: Now works again with a DOS-less Eu4.
  • Fixed up old raw-string syntax in demo programs
  • Fixed bindu naming

Documentation fixes and changes

  • yask_id typo.
  • [[::remove_from,]] link
  • errant bracket rendered as a missing image
  • removed a few extra tilde~ since eudoc nolonger WikiWords by defaultfix an <eucode. and ASCIZ typo
  • markup --**** to --**, move toc below description.
  • incorrect links in the main tabs.
  • c_proc See Also c_proc and c_func too, untilde TicTacToe
  • various typo/markup errors causing unknown routines & constants
  • remove some blank lines to fix a few of the undocumeted allocate* routines replace the allocate_string doc comments closer to allocate_string
  • replace_all appeared as undocumented
  • preprocessor_if/undocumented free_code, delete & Microsoft's Memory Protection Constants
  • syntax error at map put
  • bad doc link (euinc.conf -> eu.cfg)
  • Updated description of example programs.
  • Updated 'example' programs. Included a "hello, world" example, and expanded existing one.
  • Made the section on escaped text characters its own section. console.e: Renamed 'show()' to 'display()'.
  • Clarified some of the predefined words, e.g EUC, EUI, EUB, ...
  • Updated doc template with QuickLinks fixed (already deployed on the web, just not committed)
  • Corrected docs for create()

Improvements

  • Improved performance in demo program: news.ex
  • Added testing of parsing a mysql:// URL
  • Wrapped task_yield() in ifdef not EUC_DLL
  • CTags support code to allow CTags to read Euphoria code producing a valid CTags file
  • Crimson editor syntax file
  • CodeLite syntax file
  • MicroEmacs syntax file
  • Joe syntax file
  • HippoEdit syntax files
  • Vim syntax files
  • Added maybe_any_key() to wget.ex
  • Added parse_querystring()
  • Added optional parameter to parse() that will put a parsed query string map into the QUERY_STRING location of the returned value
  • Added accessor enum's for the result of parse()
  • Added a URL parse method
  • os.e: Added new function get_pid(), which returns the PID of the current process.
  • Added net/url.e for encode/decode and later URL parsing routines
  • Added back in code to set the default user agent as OpenEuphoria & long version string.
  • Added maybe_any_key that only prompts when in a GUI.
  • Now closes source files as soon as end-of-file reached rather than when the application terminates.
  • error.e: Closes the current source file before pausing the application just prior to abort() call.
  • now checks socket status before entering recieve() , now has task_yield() , now uses Content-Length header if present to avoid entering recieve() , added error msgs on 2 socket errors
  • Updated send_to to allow address:port type connection string.
  • UDP functions now tested and working.
  • UDP client and server example added to the demos directory.
  • Added send_to and receive_from UDP functions. posting of a previewed message.
  • WINDOWS is now defined in addition to DOSFAMILY.
  • Added "/usr/local/share/euphoria" path for finding key files on UNIX platforms
  • minor code cleanup in console.e to avoid warning messages
  • Initial OpenWatcom bundling
  • Added test for FUNC blocks (t_block.e) to address bug 2845322
  • Added Cache-Control no-cache to t_net_http.e get_url() test so that testing behind something that may be caching responses doesn't break the test the Euphoria side of things, but it was a server issue. However, I have formatted this code correctly and made use of the new method of supplying post data.
  • Removed RETURNT derefs from interpreter to fix bug 2843987
  • Optimized the parsing of temps
  • Added EPROFILE option to Makefile.gnu
  • Changed the file identifier of the preprocessor from _post to .pp. This way, you can ignore *.pp.*, or rm -f *.pp.*. This did not work previously because of DOS.
  • Added -cflags and -lflags to euc. Closes request #2843074
  • io.e: Enhanced writef(), writefln() so they can handle both the traditional argument order and the alternate argument order. One can now code
writef(STDERR, "Err#[] - []", {errno, errtext})  
-- or -- 
writefln("Err#[] - []", {errno, errtext}, STDERR) 
  • io.e: New routines. writef() and writefln(). Writes formatted text using format() to a file.
  • text.e: Added binary digit output to format().
  • Added missing global qualifier in version 3 machine.e
  • performance tweaks for translator. Uses (almost) fixed size for code generation stack instead of dynamically resizing it during every expression parse. Recoded some indirect routine calls (using routine_id) to direct calls.
  • error.e: Clarified the code for Warning()
  • inline.e: Changed the internal naming scheme for inlined vars to improve reading the generated source and disassembly report. Also, now hashes the generated names rather than sticking them all into the first hash bucket.
  • msgtext.e: Changed the text of some messages from "local variable" to "module variable".
  • parser.e: Removed commented out code that is not going to be reinstalled. Function parameters are now longer always flagged as "WRITTEN".
  • symtab.e: Modified the hashing algorithm to reduce the hash clashes.
  • dis.e: Added some stats in the .hash output file to help assess the hashing algorithm.
  • Reworked temps in the interpreter. Simplified somewhat, in that instances where they weren't Ref()'d were removed.
  • Added 3 temp opcodes: REF_TEMP, DEREF_TEMP, NOVALUE_TEMP for dealing with cleaning up temps. They are no longer DeRef()'d en masse at the end of a routine
  • console.e: get_screen_char() can now return the attribute as a {foreground, background} set of colors.
  • console.e: Added attr_to_colors() and colors_to_attr() conversion functions.
  • Updated install target of GNU makefile to remove DOS and deal with include/std/win32 correctly
  • Added two new fields to video_config() output. Lines and Columns for current screen size.
  • Removed some more references to DJGPP
  • Moved sound() to win32/sounds.e
  • Updated syntax documentation
  • Changed -verbose in buildsys. Without verbose you get simple progress messages and with verbose you get extended extended progress messages.
  • Added -verbose parameter to euc. Used -verbose due to the existing -silent flag (keep things in sync). -silent removes all output. -verbose increases output beyond normal.
  • JAM: Changed building to call eui -i include ec.ex instead of euc directly. This causes it to use the project translator and project includes.
  • JAM: Changed EUI_EXE and friends to be the eui, euc, ... that is found in the current path, not in the current project.
  • JAM: Added OUR_EUI_EXE and friends that is the eui, euc, ... that is in the current project, not the current path.
  • Remove more DOS references from demo programs.
  • machine.e: Added 'sound()' procedure. Only works for Windows so far.
  • example.ex : Reflect the changes made to the example in the docs.
  • allsorts.ex: Change the measurement method to make it take the same time regardless of the platform it is actually run on. It now counts, per sort algorithm, the number of completed sort operations it can do in one second.
  • Formatted manual template
  • JAM: Added install target for eu.lib/.a
  • JAM: Added demo/Jamfile which builds a useful tool called bench
  • JAM: Added basic install targets (executables only). Execute with: jam install
  • JAM: Added EuWinMain to the build commands of the Jamrules
  • JAM: Added building of: eub, eubw and euiw
  • configure, Makefile.gnu now respect PREFIX for install/uninstall
  • Added eub to install/uninstall targets
  • Removed dos items from install/uninstall targets
  • Default install prefix now /usr/local instead of /usr
  • pretty.e: Renamed an internal function from 'show()' to 'esc_char()'. Uses switch now too.
  • text.e: Updated 'format()' so that the args parameter now defaults to {}.
  • Converted bind/bound/shrouded programs to message database usage.
  • eub: Fixed handling of command line processing when missing .IL file or a wrong file name supplied.
  • Further clarification of Raw String syntax documentation.
  • Changed all $1 $2 $3 to simply be $@ on unix wrapper scripts. There were a few "copy/paste" bugs found, i.e. $1 $2 $3 %4 %5 %6 ...
  • unittests add a crash handler that adds a failed test result upon crash unless CRASH is defined
  • eutest.ex defines CRASH for t_c_* style tests
  • change extended strings description to triple double quote and backtick.
  • Merged build script changes that were made in the 4.0b1 branch into trunk.

Search



Quick Links

User menu

Not signed in.

Misc Menu