Yazoo Changelog

What's new in Yazoo 1.5.1

Aug 2, 2013
  • Bugs fixed:
  • conflicts with variables defined in user.zoo (in sort.sortpart(), copy.copy_one() and run.run_template())
  • 1 mod 0 caused a crash -- fixed
  • Improvements:
  • input() now returns the string to the enclosing expression

New in Yazoo 1.5 (Nov 7, 2012)

  • Bugs fixed:
  • problems defining proxy members while resizing the array; e.g. proxy_array[+1] @::
  • { }
  • 'return q' now works when 'q' is void
  • a problem where large unsigned integers would print as '0'
  • go() could get stuck inside array elements
  • read_string() (and ReadTable()) couldn't read exponents with plus signs (e.g.
  • 1e+1)
  • problems reading and writing numbers close to the double-precision underflow limit
  • a problem with ReadTable() when trying to resize lists
  • a problem with ReadTable() when a two-dimensional table has only a single element
  • a problem using SaveTable() with null tables
  • a copy() crash when the first argument was primitive and the second argument was
  • composite
  • a problem with go() that crept in when the # operator was introduced
  • occasional crash when start.zoo tried to flag an error
  • a warning message under some compilers (extrnl.c)
  • SaveTable() now makes sure to de-alias tables if it's called improperly
  • an error in SaveTable() when passed a non-composite 'table'
  • an error flagged at the wrong location
  • an awkwardly-flagged error when the calculator tried to print a self-referencing
  • object
  • Improvements:
  • removed the 'this.' prefix when defining variables. This will cause
  • problems in procedures that define variables with the same name as global variables!
  • a = @b now works when b is void. This means that 'trap(x)' is no longer
  • the way to detect void members; use 'if x == @nothing' instead.
  • added an 'underflow' runtime warning code
  • added cat() to user.zoo
  • added Save() which tries all directory paths (it is analogous to Load())
  • SaveTable() now tries all directory paths
  • added ls() which prints out variables in current directory
  • added compile_and_do_in() to user.zoo
  • added round() which works to nearest integer

New in Yazoo 1.4 (Jul 18, 2011)

  • Bugs fixed:
  • improved run()'s case-sensitive handling of filenames when run.CleanUp is set
  • to true
  • erroneous error message when exiting or returning from user.zoo
  • bugs in ReadTable() involving resizing of tables
  • problems in error messages from ReadTable()
  • Improvements:
  • added # operator to replace RunCode(), RunConstructor()
  • added ';' as an alternate symbol for 'code'
  • calculator defaults to 'on'
  • add lowercase()/uppercase() functions to user.zoo
  • added error codes to ReadTable()

New in Yazoo 1.3.1 (Nov 29, 2010)

  • Bugs fixed:
  • an occasional crash upon defining members
  • start.zoo would try to print unprintable characters in compiler-generated errors
  • Improvements:
  • wired up the calculator to sprint()
  • added an ans (answer) variable

New in Yazoo 1.3.0.1 (Oct 2, 2010)

  • Fixed a bug in run() from Yazoo 1.3

New in Yazoo 1.3 (Sep 29, 2010)

  • Bugs fixed:
  • a potentially fatal problem of neglecting the null character at the end of start.zoo or other starting script
  • load() and save() were carelessly using ASCII mode rather than binary, which caused problems on PCs
  • two more memory leaks & one referencing error (potential 3rd mem. leak)
  • the calculator didn't work in the previous version
  • multiple bugs involving [^..], [+..], +[..], =! or function calls to the left of a define/equate-at/etc. operator
  • problems where the [+..] / +[..] operators would append to hidden members
  • crashes involving size-0 proxy arrays
  • problems w/ the calculator printing registers (masked by earlier calc. problem, but this problem in previous versions as well)
  • a problem that caused slow resizing of large arrays
  • disassemble() printed the wrong variable names on 64-bit machines
  • resize() now allows a void final argument
  • an awkward disassembled error when the user types "return my_array[a, b]" from the command prompt
  • command-prompt crash after returning multiple indices of an array
  • a problem flagging errors on lines beginning with |**|-style comments
  • disassemble() crashed when given null scripts
  • Improvements:
  • configured Yazoo so it can be embedded in/invoked by C code; also run recursively from within Yazoo
  • upon rerunning a script, run() first deletes the members it defined last time: no more trap(remove ..) needed
  • added go()/pwd for changing/viewing the command prompt's workspace variable
  • added reference comparison operators: '== @' and '/= @'
  • added a proxy-define operator: '#::'
  • made load() faster and more memory-efficient
  • strings print '\D\n' as a single end-of-line
  • run() can return the result of a script's return statement
  • added sum(), mean() functions to user.zoo
  • added char(), C_string() functions to user.zoo
  • transform() now allows the user to tailor the search path of transformed code
  • throw() can tailor the location of the thrown error and throw warnings as well
  • run() will allow warnings in the script to appear at the command line (assuming no intervening trap() after the warning)
  • disassemble() can skip over expressions in compiled bytecode
  • replaced RunHobbish() with a more functional do_in() routine in user.zoo
  • added RunCode() in user.zoo; RunConstructor() is now a special case of this routine
  • consistently reading bytecode as slongs
  • now properly using the NULL pointer rather than 0 in the C code
  • improved some error messages
  • Miscellaneous:
  • changed the bytecode words for the array-insertion operators ([+..], +[..]) and delete
  • eliminated CheckType() from user.zoo -"trap(a = @b)" is usually better
  • eliminated exists() from user.zoo -"exists("a")" was largely redundant with "trap(a)"

New in Yazoo 1.2 (Jan 22, 2010)

  • Bugs fixed:
  • immediate crash on systems having 64-bit addressing
  • some annoying g++ compile-time warnings
  • problems with compiling multiple consecutive '&'s on otherwise blank lines
  • an oddity with compiling double-comment markers '||'
  • Improvements:
  • replaced R_ulong with R_slong; ** backwards-compatibility issues **
  • commented the code
  • improved the formatting (replaced tabs with spaces)

New in Yazoo 1.1 (Dec 14, 2009)

  • Bugs fixed:
  • incorrectly-flagged error messages in almost any script with inlined constants
  • the append-code operator ':' didn't work properly in certain contexts, e.g. within a code-substitution operator
  • forced-equate didn't copy array elements in the right order when multiple indices were given explicitly (e.g. a[*] =! ..., ... = b[1, 2])
  • numerical issues when printing numbers at the edge of double-precision resolution
  • incorrectly-flagged error messages following endif, endf or endw
  • wrong member names in member-not-found errors from files run by user.zoo
  • the first number returned by random() wasn't entirely random
  • copy() didn't check for self-references
  • an error in SaveTable() when the second dimension of a table was sized to zero
  • sort() threw an unnecessary error for length-0 lists
  • misreading of the null comment '|***|' with an odd number of '*'s
  • Improvements:
  • search paths of new {} definitions now always go through the script that defined it, NOT necessarily the enclosing script ***
  • added resize() to user.zoo
  • added min(), max() functions to user.zoo
  • sort() now sorts lists as well as tables
  • new() accepts different source variables for type and data
  • copy() returns an error code
  • better argument checking for SaveTable()

New in Yazoo 1.0.2 (Jan 15, 2009)

  • more memory leaks, including a big one (removed string variables didn't deallocate the strings)

New in Yazoo 1.0.1 (Dec 18, 2008)

  • Bugs fixed:
  • a problem with passing single indices of arrays to functions
  • problems running code in the initialization of size-0 arrays
  • a superfluous error message with nested run() calls
  • a problem with sort() when handed size-0 lists
  • checking C memory routines against NULL pointer rather than 0
  • plugged some memory leaks (incl. one big one)
  • Improvements:
  • more memory-error checking
  • allow more ways of deleting array indices
  • small help file improvements

New in Yazoo 1.0 (Nov 10, 2008)

  • Bugs fixed:
  • crashes upon defining variables within a function return variable or register
  • 'return' didn't prevent subsequent codes from executing
  • order of operations inconsistencies
  • crash when applying