
                              CHANGES

1.21.01
- Removed all __store and __load methods in builtin classes.

1.21
- Better error reporting.
- Now File.temp returns an Array instead of File.
- Renamed module HtmlSyntax to html.
- Now pragma html must not be followed by with.
- Added html.tag to register tag handlers.
- Now all HTML attributes are uppercased.
- Moved Kata/Cache to standard module Cache.
- Fixed bug in StringDup.
- Added more debugging stuffs in Gc.
- Added use xxx for yyy to (temporarily?) solve __package documentation problem.
- Optimized Tokenizer to use static objects for resident modules.
- Added experimental Utf8 module.

1.20.03 Beta
- Added the with-in syntax.
- Implemented __call.
- Allow "as" ":" "=" "->" as alias of "in" within for x in y.
  Thus whatever makes more sense/readable to the programmer.
- Now assert is a keyword.
- Now __quit__ is called for both EExit and EEAssert.
- Now eval changes EAssert to EProgram and EExit to EQuit.
- Now termination signal is EQuit instead of EExit. Only __exit__ generates EExit.
- Now module __init is automatically called, just like __destroy.
- Now verbose (-o) prints module message init and exit messages.
- Fixed field name mday to day of Time.Tm.
- Rewritten the Store module.
- Added Stream.readv and Stream.writev.
- Removed modules: Flow, Task, Context, Lock, Counter, Log, Pattern.
- Added the -S option to run as daemon (forks).
- Now throw can take expressions.
- Moved Utf8 back into core.
- Changed the SQL argument of all Db module handle methods.
- Moved back the Valid module to C.
- Added (_ a b c) syntax to mean a _ b _ c.
- Added (. a b c) syntax to mean print (a b c).
- Added (\ a b c) syntax to mean print (a b c) HTML escaped.
- Added builtin function __errmsg__.
- Added HTML syntax into Qu directly.
- Fixed bug in PC_PARAM.
- Added PC_PRINT.
- Now a statement with a single literal prints.
- Fixed method__eq: should only be the same if it is the same object.
- Added experimental __interface methods.
- Added the --- tag and __args decorators.
- Now the Db module is included in the standard distribution.
- Included the Kata framework.

1.20.02 Beta
- Fixed links in /doc/tutorial/structure and added a few things.
- Added a few things in doc/tutorial/validator.
- Added C and Python to Pretty.
- Trashed String.item and String.slice. We can use the [,] operator.
- Enhanced String.parseform a bit.
- Enhanced Int/Long/etc. new to accept Buffer
- Added the standard Log module.
- Fixed bug in Queue.
- Fixed bug in RecordNew. Items were not initialized.
- Fixed bug in Uri and changed Uri.split to return an URI record.
- Added syntax catch a, b, c -> var.
- Enhanced File.istype and File.isdir.
- Enhanced Time.value.
- Removed the Job module.
- Fixed bug in Set.__clear.
- Fixed bug in ClassSetSuper.
- Added some Web modules.
- Added Dict.add.
- Added Buffer.head and Buffer.tail.
- Fixed the Socket and Ssl module.
- Fixed bug in InterpLock.
- WARNING: now no autodetect deadlocks -> faster thread.
- Cond does not need a Mutex.
- Added HttpServer.

1.20.01 Beta
- Added the String.__rem method.
- Added the String.title and Buffer.title methods.
- Enhanced use statement syntax to say foo.bar.baz.
- Added Sub.change.
- Added some tutorials.
- Fixed integer incremental in enum.
- Fixed printing of Ast line number.
- Fixed __unsafe.
- Fixed String.indent and Buffer.indent.
- Added methods: Sub.argc, Sub.isclosure.
- Added methods: Frame.__string, Frame.__print, Frame.__true.
- Fixed calling class method via reference -> interp.c (CALL).
- Added methods: Var.isprivate, Var.isreadonly.
- Fixed _class_check_attr that missed checking for abstract attributes
  not overrided by real subclass.
- Enhances NumberScan.
- Added Big and Rational literal syntax.
- Now Big exponent is D or d.
- Fixed ensure for class properties.
- Added the standard Pretty module.
- Added methods: Dict.collect, Tokenizer.listkey, Tokenizer, listop.
- Added methods: String.item, String.slice.
- Enhanced switch case statements .
- Changed case ? to mean a boolean test.
- Added methods: String.startswith, String.endswith.
- Added the -C option: more compile-time checks.
- Added compile-time check: setting read-only/constant property.
- Disallowed the use of mixin classes as validators.
- Allowed the use of variables as validators.
- Added the Sys.sysdelay function.
- Fixed access of private class constants.
- Implemented module finalization __destroy.
- Enhanced enum, now built by Reduce.
- Enhanced use try Foo or Missing.Foo.
- First step into simplifying the whole symbol access affair.
- Added the standard Extern module.
- Allowed comment in between backtick strings. No limit know.
- Changed all Sys validators signature to return Boolean.
- Enhanced super to work with class methods.
- Now __auto and __mixin are exclusive.
- Now __auto and __abstract are exclusive.
- All documentations now use the stylesheet file: doc/doc.css.
- Added a number of tutorials.
- Removed all experimental operators.
- Added File.agecmp.
- Added support for Delegation.
- Implemented Auto Property Call.
- Redefined some formats in Doc.
- Added Sys.sysparseformat.
- Fixed module Context.
- Redefined String.startwith and String.endwith in case of Dict.
- Fixed slow Dict.__del.
- Added the standard module Bits.
- Rewritten all manuals except builtins.

1.10 Stable
- Changed struct TBig to use long instead of int.
- Fixed Compile.c to allow compiling multithread queue.
- Fixed a bug in Stream.readln.
- Added the Job standard module.
- Renamed str.division into str.__idiv.
- Fixed Lightning.c to work with PPC.
- Made frblk_s (Frame.h) more efficient. Less on field.
- Added the syslen builtin function.
- Implemented __set and __get in AttrInstSet/AttrInstGet.
- Fixed Socket.eof argument number bug.
- Fixed Stream.read to read length as requested.
- Added Frame.run.
- Fixed bug in sysinput.
- Rewrite Buffer to implement a flat buffer.
- Added the Flow and Task standard modules.
- Added the Encode standard modules Md5, Base64, Quopri.
- Did some minor changes in Uri.
- Added experimental 'alias' and selective super attribute. See demo/alias.qu.
- Changed all XxxIsa to XxxIs.
- Added the yield a, b, c syntax.
- Fixed __trace__.
- Added the until statement modifier syntax.
- Renamed str.ident to str.toident.
- Fixed bug in File.list which did not set a default value to filter.
- Modified ObjValidate so that it accepts a Bool from functions.
- Text is gone. Removed everything related to Text.
- Now Str becomes String. Str is gone.
- Added currying facility to Method.
- Experimental Var.type to dynamically set a validator to global variables.
- Added experimental currying syntax: @foo (1, 2)
- Added __push to Sub and Method
- Container is now the parent class of Array, Dict, Set and Queue.
- Added EArgValue to distinguish it from EValue.
- Major method cleanup, renaming, and editing.
- Added the standard module Dump.
- Fixed bug in Queue._rotate.
- Renamed Mod to Module.
- Renamed Obj to Object.
- Renamed Iter to Iterator.
- Renamed Bool to Boolean.
- Renamed Node to Ast.
- Renamed Ptr to Pointer.
- Experimental Container scope-level protection.
- Added the => operator for currying.
- Moved iswhole, iseven, frac, ceil, floor, etc. from Math to builtin.
- Fixed Big.ceil & floor.
- Finally removed all C interfaces to program level methods/functions.
- Added __readonly and __readwrite tags for Var.
- Added Stream.read8 read16, etc.
- Added String.contains.
- Fixed String/Buffer.index/rindex case-insensitive.
- Made into standard modules: Transaction, Pattern, Curses, Readline.

1.09 Beta-5
- Added weak references (the Weak class)
- Fixed bug in Mod.c (__tree -> __ast)


1.09 Beta-4
- Fixed bluetooth header in Net.c.
- Fixed stuffs where sizeof (long long) == sizeof (long).
- Fixed Lightning.
- Lightning is now a standard module.
- Fixed a bug in Emit.c.
- Builder: now must specifically say [: to build a Dict.
- Added Iter.seq and Iter.nest.
- Now there is no need to say use Ligthning, i.e. -O implies this.
- Added some convenient Thread methods.
- Added Thread.__setitem/__getitem to store/get thread specific data.
- Fixed VarEnumEx to use STRUCT_ID_xxx in the switch block.


1.09 Beta-3
- Added the Sys.nameof function.
- Now use a uniform value GC_MAX_ITEMS instead of ArrayMAXCAP, SetMAXCAP, etc.
- Fixed a bug in Code.c + Obj.c for validators.
- Cleaned up the C API documentation.
- Cleaned up and updated some manuals.


1.09 Beta-2
- Fixed a bug in interp.c which causes finally blocks not entered when there
  is no exception. Also fixed QuLightning module.
- Added a new standard module: Config.
- Redefined backtick quoted strings syntax -> auto combine consecutive strings.
- Added the Token module.
- Fixed switch for multiple case values with the operator other than ==.
- Fixed Str.quote.
- Fixed _compile_errmsg for long lines.
- Fixed SubEndDecl -> did not check for NULL in list.
- Rewritten Queue and Buffer and made them builtin classes.
- Added the POP instruction -> the >>> operator.
- Added search methods to File and fixed a few Str->String argument types.
- Fixed Mod.c __doc -> __docdict and Doc.qm
- Fixed Emit.c -> optimizing final Obj attributes should not be done for __inst.
- Renamed __cancel__ to __clear__ and added __trash__.
- Fixed Tokenizer.c `text` did not restore the line number.
- Added the standard Os module and signal handlers in sig.c.
- Fixed documentation bugs in Doc.qm, had to hack final Obj.__ident.
- Made Valid a standard module.
- Now "use Foo or nil" where Foo does not exist will create const Foo = nil.
- Removed the hash bugtrap in Str.c. Crap!
- Renamed Str.repchr to Str.translate.
- WARNING! foo (a: 2, b: "blah) is no longer supported.
- Added a couple of stuffs in Text.c.
- Made Regex a standard module. Still POSIX though.
- Fixed a bug in Code.c: sub foo (x: Str = Str.SPACE) gave a compile error.
- Added experimental dotted var Foo.Bar.baz.
- Fixed sub Foo.Bar.baz to allow 2 dots
- Added the Ptr class (snatched from the Dlib module).
- Finally moved "intern.h" to "qu.h". Now there is no "intern.h".
- Now enum may contain any literal, not just Int.
- Fixed class inheritance, now ClassEndDecl performs a final check after
  ClassSetSuper and ClassSetMixin.
- Changed some ArgXXX macros. ArgCOUNT particularly sucks.
- Fixed __BlockingCheckSignal - it allocated memory while blocking.
- Stream is finally implemented. Most File methods are now inherited from
  Stream and work more reliably.
- Now Stream supports __getitem, __setitem, __getslice, __setslice.
- Rewritten the Net module completely for more low-level interfaces.
- Now Socket is a Stream.
- Edited the Time module to make it a bit better.
- Started to implement __load and __store since now we have Stream.
- Fixed some issues with ObjIsa -> ObjInstOf.
- Fixed type compatibility issues -> ObjCompatType.
- Renamed __implementation to __mixin and related methods in Class.c.
- Removed __optimize (SubOPTIMIZE). Now its all or nothing.
- Removed the -c command line option. Now there is only -O.
- Added "of" to type syntax, e.g. var x = Array of String.
- Now Dlib, Ptr, and Proc are offically builtin classes.
- The old Dlib.Cfunc class is now burried in Dlib.c and activated only
  when actually used.
- Extended sub Foo.Bar when Foo is a module.
- Experimental: allow any method as validator, a Bool returned value is
  interpreted as failure. See ObjValidType and ObjValidate.
- __assignable is gone. Now all Sub are assignable and can be called
  with the "=" operator as long as they accept one argument.
- PC_EVAL is gone. Now eval is a builtin function in Sys.
- Moved Sys min, max, etc. to Math.
- Changed Sys: verbose to __verbose__.
- Got rid of __disableprint__ and __enableprint__ now that we have null.
- Added the builtin __mixin class Container.
- Now all builtin container classes uses Container.
- Accelerators must no longer be set by classes individually.
  They must use ClassMethod and call ClassEndDecl after declaration is complete.
- Added Ruby style block syntax.
- Added optional ":" to sub syntaxes. See doc/grammar.txt.
- Reorganized Sys.c and renamed a few thing.
- Formalized all C types so they are pronounced the same everywhere.
- Extended Str.count to accept Regex.
- Added Str.match -> Regex.match or File.match.
- Reorganize Arg macros. Now they are more consistent.
- Now REQUIRE's first argument is the exception class.
  It reads better and easier to edit.
- int64 is gone. It's too ambiguous.
- Reorganized Array, Dict, Set and Queue to mix with Container.
- Finally added '''utf-8''' syntax. Should have done this earlier.
- Edited Text.c. Changed field name num to width. Also the method names.
- Changed arguments to 'eval' with string for better read.
- Edited Str.__iand, etc. to match Container.
- Made Number.context into a Str.
- Added the instructions AUTOATTREX and AUTOATTREX2 to deal with assignable
  methods, i.e. foo.bar &= 1


1.09 Beta
- Fixed printf so that '%f' works for integers.
  Also '%c' and '%s' will automatically call the __str method.
- Fixed a bug in _tokenizer_getnumber which erroneously skips 1234x.
- Fixed a bug in Emit.c _emit_if related to EMIT_OPTIMIZE_VGET.
- Implemented the Big class. Finally!
- Added the Inf class.
- Added the Rational number class and the _/ operator.
- Now all Number classes use a global context.
- Added support for long double.
- Fixed versions of the packages.
- Rewrote the Dlib module.
- Renamed modulo to rem. All of them!
- Added the %= operator.
- Added the __idiv and __format methods.
- Added experimental syntax: $ means self dot.
- Rewrote all Number objects.
- Now Integer / Integer is exact. It may return a Rational.
- Rewrote the Math module.
- Added the integer division (quotient) \ operator.
- Changed the line continuation \ to ... (triple dot).
- Added the >>> operator and the __pop method
- Added experimental decimal operators -+- --- -/- etc.
- Added experimental absolute operators |<=>| |<| |<=| etc.
- Added the "unless" block
- Added experimental dotted sub Foo.bar
- Made infp, infn, and null keywords just like true and false.
- Added some builtin Sys functions.
- Added the "are" and "are not" keywords.
- Added the "expr while expr" and "expr for x in expr" syntax.
- Added array/dict/set builder, e.g. a = {for i in 1, 10: i}
- Changed a couple of names in Sys __memory__ etc.
- Fixed a bug in Mod.__usepath.


1.08 Beta
- Added the >>= and <<= operators.
- Changed TComplex. The use of complex_s was too slow.
- Fixed IntScan, 0000... now is okay.
- Improved memory allocator mem.c.
- Improved GC. obj->gc_prev and obj->gc_next are gone. This makes
  this version incompatible with older versions.
- Removed the -m option. It's no longer necessary.
- A few more optimizations have been done. LL & LX binary instructions.
- Improved attr.c to better suit the memory allocator model and to
  prepare for attribute lookup by index.
- Now lexical can be typed via local, e.g. local x:Int = 10
- Finally merged gc and mem. mem.c is now gone.
- GcFree is gone. Now class free functions do not have to call it
  because it is done automatically by the GC.
- Added "use foo or nil" syntax to ignore if the module does not exist.
  This is useful for modules such as Lightning. If it exists, use it,
  if not, just ignore.
- Added the "of" keyword as in a = [1, 2, 3] of Int
  It is an operator that calls the __of method.
- Major rewrite of attribute stuffs and mucho improvements.
- Removed the -u option. Frame reuse is no longer an improvement.
  Now frames might use the C stack.
- UNSAFE now generates a PC_UNSAFE instruction. This relieves the interpreter
  from checking the UNSAFE flag for each single call.
- Rewritten QuLightning. Now can generate SubEXTERN.
- Now Sub->type and Sub->ltype work for SubEXTERN as well.


1.07 Beta
- Now all lexical Var objects are freed before run-time.
- Added more compile error messages.
- Fixed a bug in Inlines.h Sys_getattr should call Sys_getattrx not itself.
- Added static sub variable.
- Added ArrayMAXCAP, SetMAXCAP, DictMAXCAP.
- Added the :: operator.
- Improved self attribute lookup: PC_GETATTRSELF, PC_SETATTRSELF.
- Reversed the default value of the -m  and -l option.
- Experimental support for simple direct tail recursion: PC_TAIL.


1.06 Beta
- Rewrote the interpreter to use GNU's computed goto.
- Added gcc -O3 option to optimize everything.
- Added the -u option to immediately free non-generator frames.
- Now empty body in loops produces something to avoid deadlock.
- Implemented JIT using GNU Lightning.
- Inverted the -l option, i.e. default does not generate line number.
- Removed the C style "for" syntax.
- Improved the "for each" syntax.
- Added the for x in (from, to, step) syntax.
- Fixed a bug in _long_basic_pow.
- Minor cleanup. All demos and installers passed the test with DEBUG and
  GcReclaim after each statement.
- Added the optional \ for 'return' expression on the next line.
- Added the 'pragma' keyword.
- Added suppor for indentation style.
  And so ensure with a dot is no longer supported.
- Added the "if" and "unless" statement modifier.
- Added class validators.
- Changed a number of keywords: final -> __final, etc.
- Modified class, sub, and var syntax. Now they are more consistent.
- Fixed bug in _reduce_if.
- Added Obj methods: cmp, eq, like, le, lt, ge, gt for strict comparissons.


1.05 Beta
- Rewrote Code.c, Interp.c. This is practically a new engine.
  It is (very) slightly more efficient.
- Codex.c is gone. A hook is provided for an external module.
- Fixed a Frame bug. Iterator and switch values should never have
  been stored on the stack. It could make the stack overflow.
- Disassociated Thread and Frame. No more Frame->prev and Thread->frame.
  Now frame stack is managed by Interp.c. Just for the sake of microthreads
  and coroutines.
- Fixed GcThreadDie bug. Should be called before giving up interpreter lock.
- Now ThreadSelf() is mostly gone and replaced by ThreadCurrent. A lot
  of functions are now called with one less argument.
- Fixed the "as" operator, Sys_as.
- Added the exit handler __quit__.
- Added the __keyboard__ handler.
- Added the ++ and -- operators.
- ... on to the next version


1.04 Beta
- Fixed a serious bug in ClassInit. The four primary modules had Class->free
  point to Gc_Free. Darn!
- Fixed another bug in Code.c, the XARGSIZE macro.
- Fixed another bug in Sub.c calling with 4 arguments.
- Added new features to Dlib to accept pointers and void return value, also
  the "method" method so that calling functions are more convenient.
- Added the builtin function "event" to post an interpreter event.
- Added the Real class as the parent class of Integer and Decimal.
  Read about Number in math. I wonder if we should provide all types.
- Got rid of the PLAN file. I simply cant handle it by myself.
  I'll try to make a better TODO instead. But later with that.
- Added the "xxx.use" file mechanism in Mod.c for C modules to automatically
  load other C modules.
- Changed the 'enum' syntax. Now it makes more sense and produce a better
  documentation entry.
- Changed Record behavior: __cmp, __eq and __like.
- Added the experimental var Foo:Int syntax, i.e. the 'ensuref' field of TVar
  may be a Class or ensure Sub.
- Added the experimental sub foo (a:Int, b:String).
- Changed the casting convention. Now "foo.__toInt" is written "foo as Int"
  and "SomeClass (1, 2, 3)" means "SomeClass.new (1, 2, 3)".
- Now the "is" operator works for Record, e.g. foo is Person yield true if
  foo is a Record of Struct Person.
- Modified Record (and consequently InterpRunFrame) so that MyRecord.fieldname
  works.
- Fixed more bugs in Code.c.
- Allowing the use of enum as field type in a struct.
- Rewritten all documentation, now classes are in separate files.
- Now it's possible to constraint an Array with a Struct.
- Rewritten some methods of container objects to conform with lvalue operators
  e.g. array << 2 no longer modifies the array.
- Trashed the auto-fill feature of Array.__setitem.
- Make Buffer and Queue external modules. Duh! what took me so long?
- Renamed a couple of builtin functions so they stand out better, __buffer__,
  __cancel__, __collect__. __trace__, __verbose__, __warning__, __remark__,
  __abort__, __exit__.
- Added the 'as' operator.
- All __toXXX methods are gone. They are replaced by the __as method which is
  called by the 'as' operator.
- The method __toBool is renamed to __true.
- The method __toStr is renamed to __str.
- The keyword "record" is gone.
- Reorganized exception classes. Again!
- Added the Function class as parent of Sub and Method.
- Removed builtin pack and unpack. No more of this old stuff!
- Consequently removed the Store module. Will replace with a new one.
- Added the Stream builtin class.
- Now you can set the linebreak marker for File.
- Rewritten the Net module.
- Rewritten the Math module.
- Rewritten the Valid module.
- Did a major cleaning up.
- Changed syntax "var static x" to "var class x final".
  Longer but more consistent and less confusing.
- Added validators.
- Added "end" to syntax, i.e. end sub, end if, etc.
- More flexible const syntax, now accepts ref.
- Added the Qu module.
- Got rid of the debug block. Was a bad idea.
- Added the global constant __debug__.
- Added __implementation__ class (similar with Java's interface).
- Created Install.qm and the whole module install/remove stuffs.
- Now most modules live outside Qu.
- Fixed a bug in File.write. Forgot to check for a String.
- Include and rewrite the Store and Transaction modules.
- Added some methods of builtin classes to support the Store module.
- ... on to the next version


1.03 Beta
- Fixed bug in Code.c PC_MULTICAT.
- Fixed another stupid bug in lib/Uri.c.
- Fixed another bug in InterpRunFrame (leave: throw first then EStop)
- Fixed bug in file_read, arg spec l:b should be i:b
- Fixed bug in Code.c PC_YIELD, stupid 0 should be 1. Darn it!
- Added the builtin class Number, Integer, Decimal, Long, Complex.
  And so Int performance dropped a bit, but it's worth it.
- Added the builtin Big class but not yet implemented.
- Added the builtin class Method.
- Added the syntax @foo.bar to allow easy reference to module attributes.
- Added the instance method Dict.any and Dict.pop.
- Added standard attributes __toLong and __toBig.
- Modified most builtin class methods from private to public.
- Modified Generator.qm and Container.qm.
- Added the method Mod.__ref.
- Removed Var.value and added Var.getvalue and Var.setvalue.
- Allowing the "use" statement anywhere in module level.
  Because __test__ might need it.
- Allowing @foo.bar to make reference to non-lexical variables.
- Added automatic prefix in ensure exception message (Class.c).
- Added EEnsure exception for ensure methods.
- Added the keyword __generator__ to force a Sub to be a generator without yield.
- Added experimental keywords __swap__ and __frame__.
- Changed InterpRunFrame and TFrame to better support continuation. No more
  frame info on C stack. See demo/coro.qu.
- Moved lexer number scanner to the appropriate classes.
- Modified lexer to allow complex number syntax, e.g. 1 + 2.3j
- Removed Str.scale.
- Removed the Tokenizer module, probably temporary.
- Rewrote the Math module to support all numeric classes.
- Removed jmploop in InterpRunFrame because it may cause multithreaded programs
  to never give-up CPU to other threads.
- Removed all shortcuts to Int methods in InterpRunFrame.
  When things are fixed, we might put them back.
- Fixed numerous arithmetic bugs in Int, Long, etc. to account for Long.
  The / and % operators are now defined as an integral part i.e. divmod.
  Now you dont loose bits.
- Now all bitwise operations do not include signs.
  Should have done this right at the beginning!
- All function argument macros now require an error message.
- Did a massive reorganizing of THROW and family.
  Now a trace will reveal exceptions thrown by C functions as well.
- Added the String class as base class of Str and Text.
- Finally the __hash method goes to script level.
- Added the experimental Dlib module to access dynamic library from scripts.
- Added "toxic-awareness". See doc/DEVEL.txt for this.
- Finally separated Obj and Class. Now Obj is in Obj.c and Class is in Class.c
  (as they supposed to be in the first place).
- Removed the abstract flag from the Obj class and deleted the builtin 'object'
  function. To create Obj instances we know say Obj.new (some_dict).
- The lexer now rejects identifiers more than 64 characters long.
- Inherited attributes are now not implanted in class->attrs.
  We just record class->mixin and class->sup. We'll figure out a way to
  speed things up later, if necessary.
- Removed the historical File module. Now the File class is in Sys.
  Not as efficient but more consistent. History over!
- Removed the Info module. No longer need it.
- Edited some of the libraries that required Info.
- Trashed the builtin function 'sizeof'.
- Removed builtin functions 'storable', 'load' and 'store'.
  Just call the methods directly instead, __storable, __load, __store.
- Removed the builtin function 'method'. Now all have the __method method
  from the Obj class. x.__method (foo) should be as efficient as method (x, foo)
  since it is optimized by the Code.c.
- Removed the builtin function 'strlen'. It was wrong in the first place since
  the result might not fit in an Int.
- Trashed EArg exceptions and EType. Now use EValue instead.
- Reorganized exceptions.
- Added the Readline module and automate the builtin 'input' function to use it
  if loaded.
- Moved the builtin functions cat, asc and chr to Str.
- Enhanced the Curses module. Still need some work though.
- Made the first attempt to File.c to account for future large file support.
  Probably fixed a few bugs on the way.
- Did a massive editing of all Integer classes.
  The Integer translators in Number.c should make life much easier.
- Finally replaced Lex with an object oriented Tokenizer class.
  The performance drop is tiny so I think this was a good decision.
- And on to the next version ...


1.02 Beta
- Fixed an annoying bug in interp.c. Some binops did not check for error.
  PC_LSHIFT called Sys_lt instead of Sys_lshift. I cant believe I missed this!
- Fixed ObjIsa (the "is" operator) to return true if x is Obj.
  Thus now Struct can accept Obj to specify a field that may contain any object.
- Added a README file in all lib directories.
- Added lib/pattern/Observe and lib/pattern/Collection modules.
- Changed Thread.new so that thread start function may be a method.
- Tagged the Task.qm module as experimental.
  I should have done this in the first place!
- Finally removed the signal watchdog in sig.c. This is just the first step.
  The next step would be to figure out a good overall implementation.
- Fixed bug in Net.c (mistyped the stupid right parentheses in _host_getaddr).
- Changed Net.c, Buffer.c, File.c read/write to share common arguments.
- Fixed bug in Mod.c for use __package__.
- Made printfln etc. atomic.
- Changed the Job module to use the Job class.


1.01 Beta
- Added a new instruction PC_MULTICAT to optimize a _ b _ c.
- Fixed an annoying bug in interp.c that causes the installer to crash.
- Fixed a couple of bugs in interp.c, forgot to SAVE_MARK.
- Added builtin classes Struct and Record. Removed the Struct module.
- Added the keyword struct to create constant Struct at compile time.
- Added the keyword record to create Records, a syntax sugar of Record.new.
- Fixed a bug in lib/Uri.c which previously assumed a nil terminated string.
