Versions

 Bach220   16 Feb 04

  • Classes much improved. Instances may now be placed in a sequence without losing their identity, so constructs like seq[idx].memb work
  • ‘method tags’ allow the specifying the class that a method is bound to. EX:
    method :Point:origin()
  • Two new operators  && and &&= perform an append.
  • New operator !! may be used in place of clone()
  • Functions that return a sequence may now be indexed.
  • printf style functions now understand a new format specifier %V to convert an object into a standardized string representation.
  • A string statement outputs its string to stdout (for CGI)
  • Both string statements and literal strings can evaluate embedded Bach expressions.
  • Negative indexes may be used to reference from the ens of a sequence.
  • Two new scope modifiers, public and  private replace the old  global which is now a synonym for  public .
  • Variables default  to  private ;  defs and classes default to public .
     

Bach215    25 Dec 03

  • New built-in function _is_() checks if sequence is instance of class.
  • semicolon (‘;’) starts a line comment.
  • Bugfix -- class members which are sequences now initialize to an empty string instead of zero.
  • Better remainder() algorithm (I think).
  • coroutine removed -- defs and methods become coroutines if yield is used.

Bach214    15 Dec 03

  • Classes containing multiple copies of another class now work properly.
  • Indexing a member now works  (class.member[n])
  • Class members are now typechecked
  • Sequence elements may be accessed as class instances with a new bit of syntax:
    pointlist[3]:Point.x
  • type has been renamed to vartype (‘type’ is too useful to the user).
  • A library math.b has been split off from bach.b.
  • Added built-in functions abs(), min_max(), and mean().
  • Added statistics fcts variance(), absdev(), stddev(), skew() and kurtosis().
  • Error printout highlights the error line number.

    .