-------------------------------------------------------------------------------
 gambas2-1.9.15 - 29 Jul 2005
-------------------------------------------------------------------------------

CONFIGURATION

* BUG: The "fish jail" :-) patch was entirely applied.
* BUG: Look in /opt/qt* when searching for QT libraries.

DEVELOPMENT ENVIRONMENT

* NEW: Support for containers written in Gambas.
* BUG: Fixed startup position when you add a control inside a TabStrip in the
  form editor.

COMPILER

* BUG: You can declare an event taking no parameters without having to
  write void braces.
* BUG: A symbol used as event, constant, or property can now be used as
  a class name.
* BUG: The name of events declared in classes written in Gambas are now
  internally prefixed with a colon, like nativ classes ones.
* NEW: You can now use affectation in a WITH statement, i.e. you can
  write 'WITH Something = Expression ... END WITH'.

INTERPRETER

* NEW: GB.CurrentComponent() is a new API that returns the name of the
  current component. This is used for implementing a picture cache
  different for each component.
* NEW: Object.SetProperty can now set the value of static properties.
* BUG: Stream.ByteOrder is really an integer property.
* NEW: Stat is not a virtual class anymore.
* WARNING: Stat.LastUpdate was renamed to Stat.LastModified.
* NEW: Dir() and RDir() now take an optional third argument, that indicates
  if we want directories or files or both while browsing.
* BUG: The List class was removed. Cry if you don't find it useless.
* BUG: The _call special method management was fixed.
* NEW: A new routine Comp(), that compares two strings and returns the result
  as an integer: +1 if the first string is greater than the second, -1 if
	the second string is greater than the first, and 0 if the two strings are
	equal.
* NEW: A new interpreter hook, named HOOK_LANG, that is called at startup
  and each time System.Language is redefined.
* NEW: A new property, System.RightToLeft, that returns if the current
  system language is right-to-left written.
* NEW: Now the interpreter looks in ~/.gambas/lib/gambas2 to load components,
  if it cannot find them in the gambas system directory (/usr/lib/gambas2 by
  default).

QT COMPONENT

* NEW: UserContainer control, to help implementing Container controls in
  Gambas.
* NEW: Support for containers written in Gambas.
* NEW: ListView, IconView, TreeView and ColumnView have now a Compare event
  that is raised for comparing elements. You can now sort ColumnView columns
  as you need.
* NEW: Label has now an AutoResize property. When this property is set, the
  label automatically resized to fit its text height.
* WARNING: Splitter has moved from extension component to standard component.
* WARNING: Controls written in Gambas were moved to the new gb.form
  component.
* NEW: An experimental Stock class that returns standard icons.
* BUG: Container arrangement now regards right-to-left written languages.
* BUG: Dialog size grip now regards right-to-left written languages.

QT EXTENSION COMPONENT

* NEW: Editor control, that aims at replacing the GambasEditor control. It
  can share its text with other editors, display number lines. It will
  support custom highlighting routine in the future. There is an experimental
  'gambas2-with-editor' project for those who want to see it in action.

FORM COMPONENT

* NEW: All controls written in Gambas were moved from the QT component to
  this component.
* NEW: FileChooser, a file selector control that is not finished yet.

GAMBAS EDITOR COMPONENT

* BUG: Some fixes in undo/redo management.
* WARNING: This component is now deprecated, and will be replaced by the
  new Editor control as soon as possible.

DATABASE COMPONENT

* NEW: New property Result.Max that returns Result.Count - 1.
* BUG: Result.Fields.Find() now returns FALSE if a field does not exist, and
  do not raise an error anymore.

GTK+ COMPONENT

* Updated.


-------------------------------------------------------------------------------
 gambas2-1.9.14 - 29 Jul 2005
-------------------------------------------------------------------------------

CONFIGURATION

* BUG: Finally applied the "fish jail" :-) patch of Dirk Mueller to the
  symbolic link creation.
* BUG: Components directory including a gambas part are now correctly
  packaged.

DEVELOPMENT ENVIRONMENT

* New font and color dialogs in the property sheet.
* The welcome, about and tips dialog now use the system colors.
* Symbols including an underscore are not displayed anymore in the
  completion list.

COMPILER

* BUG: events from gambas classes are now internally prefixed with a colon,
  as the events from native classes.
* The bytecode version is now written in each compiled class.

INTERPRETER

* BUG: Now a native class can have a static property that returns a usable
  virtual class.
* If the bytecode version of a compiled class is different from the bytecode
  version of the interpreter, then an error is raised.
* BUG: Many fixes in the gambas archive management. Now everything should
  work as expected :-)
* The Boolean[] array class was implemented.
* Object.GetProperty() now can return the value of static properties.
* BUG: Classes located in gambas archives are now freed with the global
  classes when the interpreter ends.
* BUG: Format$(0, "+#") now works correctly.
* A new property, Application.Dir, that returns the application startup
  working directory at startup. Note that the current working directory
  is modified by the interpreter.
* BUG: Hex$() and Bin$() now correctly display negative values.

QT COMPONENT

* Eight new properties in Color class that returns system colors.
* A new array operator in Color class to split a color in its Red, Green,
  Blue, Alpha or Hue, Saturation, Value parts.
* BUG: Some fixes in the arrangement algorithm of containers.
* BUG: The DrawingArea draws its border correctly again.
* A new property, Font.Scalable, that returns if a font is freely scalable.
* A new property, Font.Grade, that represents a predefined font size
  proportional to the default application font. Range from -9 to +9.
* A new control, UserControl, that acts as a parent class for implementing
  user controls directly in Gambas.
* A new method, ScrollView.EnsureVisible, that ensures that a specified
  area of the ScrollView is visible.
* A new property, TextArea.ScrollBar, to choose the display policy of the
  scrollbars.
* A new class, TrayIcons, for enumerating all TrayIcon controls.
* New properties in the TrayIcon class: Tag, ScreenX, ScreenY, Width and
  Height.
* BUG: TrayIcon now catches Enter and Leave events.
* BUG: The Design property now works with controls written in Gambas.
* BUG: Some fixes in Open event trigerring of embedded forms.
* Three new controls made with Gambas: FontChooser, ColorChooser and
  CustomListBox.

DATABASE COMPONENT

* A new method, CConnection.Subst(), that converts gambas values into
  the underlying database SQL syntax, and substitutes them in a query
  string.
* BUG: Result can manage tables whose primary keys are not the first fields
  of the table.
* BUG: Result enumeration are deletion-safe now.
* BUG: You can use variant values with functions that use substitution.

GTK+ COMPONENT

* Updated.

SDL COMPONENT

* Updated.

OPENGL COMPONENT

* Updated.


-------------------------------------------------------------------------------
 gambas2-1.9.13 - 24 Jul 2005
-------------------------------------------------------------------------------

* $(ROOT) was replaced by $(DESTDIR) in the configuration script.
* Components information files are now created by each component source
  directory.
* autoconf was duped so that source package archive use symbolic links.
* Use more symbolic links, so that source package is reduced.
* Components can have a gambas part. Just add a gambas project inside the
  'src' sub-directory, having the same name as the component.

DEVELOPMENT ENVIRONMENT

* Now control coordinates are stored as a multiple of Desktop.Scale in the
  form files. This way, the size of the dialogs is proportional to the system
  font. THIS IS EXPERIMENTAL! BE CAREFUL WITH YOUR PROJECTS!
* The grid size is always set to Desktop.Scale.

DATABASE MANAGER

* The project was synchronized with the stable version one.

EXAMPLES

* BUG: Some examples were fixed because of the recent changes in some
  property names.

COMPILER

* BUG: Object[] can be used normally now.
* Extern functions can be public now.
* _next can be implemented.
* A clearer error message when the parser gets an unexpected pattern.
* You can now initialize *every* variable with *any* expression.
* BUG: You cannot embed TRY statements anymore.
* A new instruction, ERROR, that prints an error message on the
  standard error ouput.
* A new instruction, DEBUG. It is a PRINT that sends its data to the
  standard error output, prints where the message comes from, and that
  is not compiled when debugging information is disabled.

INTERPRETER

* New API GB.RealFileName(): It does the same thing as GB.FileName() except
  that if the file is located inside the project executable, then a
  temporary copy is made, and the path to this copy is returned. Use it when
  you can't read data from memory with GB.LoadFile().
* Now FOR EACH uses internal iterators. A container class can now fix its
  currently used iterators when deleting its elements. This avoids crashing
  the interpreter as before.
* A new class, Enum, that represents internal iterators.
* BUG: Collection now check all its iterators when deleting its elements.
* Components written in gambas and executables are now read by using mmap().
* GB.LoadFile() now uses mmap() if possible, so that loading resources from
  the executable is faster.
* BUG: All Array indexes are converted to integers now, not just the first
  one.
* Split() escape string parameter behavior has changed. Now it just one
  escape character only. If the escape string has two characters, then the
  first is the starting escape character and the second the ending one.
* File.Dir(), File.Ext(), File.Name() and File.BaseName() all take a new
  optional parameter. If it is used, then instead of returning their
  corresponding path part, they replace it with the new parameter.
  For example, File.Name("/home/benoit", "gambas") returns "/home/gambas".
* If the interpreter stops just after a non catched error, it does not print
  memory warning messages anymore.
* A new function, Week, that returns the week number from a date.
* A new function, DFree(), the returns the space available on a device.
* A new property, List.Max, that returns List.Count - 1.
* BUG: Milliseconds are not stripped anymore in dates, and is correctly
  managed when converting from/to a string.
* BUG: _call() method should work in any case now.
* BUG: IsPunct() now returns FALSE for non-ascii characters.
* BUG: Bits functions now correctly handle Long datatype.
* BUG: Changing System.Language should not crashes the interpreter anymore.

INFORMER

* Now the informer can extract information from components made in gambas.

QT COMPONENT

* A new property, Desktop.Scale, that returns half the height of the default
  system font.
* Two new methods, Control.MoveScaled() and Control.ResizeScaled() that
  multiply their arguments by Desktop.Scale and pass them to respectively
  Control.Move() and Control.Resize().
* Font does not have its own resolution anymore. It always keep the screen
  resolution.
* The TrayIcon control was implemented. Just put it on a form, and you
  get a little cute icon in the system tray. Thanks Daniel! :-)
* BUG: Draw.Image() now works on devices having a mask.
* DrawingArea paint events were optimized.
* BUG: Embedded windows now internally create an hidden menu bar to store
  its menus.
* BUG: Some fixes in the management of Mask and Picture properties.

DATABASE COMPONENT

* BUG: When you create a record with DB.Create(), the fields take their
  default value now.
* BUG: The milliseconds part of date fields is correctly handled now, and
  the value of date fields is correctly returned!

GTK+ COMPONENT

* Updated.

SDL COMPONENT

* Updated.

OPENGL COMPONENT

* New component made by Laurent Carlier.


--------------------------------------------------------------------------------------
 gambas2-1.9.12 - 14 Jul 2005
--------------------------------------------------------------------------------------

* BE CAREFUL: THE BYTE CODE HAS BEEN MODIFIED AGAIN, SO YOUR PROJECTS MUST BE
  *ENTIRELY* RECOMPILED!
* There is a new component, gb.crypt, that allows to use the crypt() glib function.

DATABASE MANAGER

* BUG: Errors during table creation or modification are now correctly handled.
* BUG: Fields names are now case unsensitive in the table edition window.
* BUG: Deleting fields that are used in an index is not allowed anymore.
* BUG: Deleting fields in the index tableview now works as expected.

EXAMPLES

* BUG: In the Notepad example, the 'modified' flag now displays correctly in the
  window title.

COMPILER

* BUG: Fixed some parsing errors.
* BUG: You can use event, label and property names in a class context now.
* Now the DIM keyword is mandatory when declaring local variables.
* BUG: You can effectively instanciate objects with any expression at
  local variable declaration.

INTERPRETER

* BUG: Format$() has been fixed, and re-fixed again.
* Split() now gets a new optional boolean parameter to tell him to remove void
  elements from the returned array.
* New methods to test character type: IsAscii, IsLetter, IsLower, IsUpper, IsDigit,
  IsHexa, IsSpace, IsBlank, IsPunct.
* The stream argument of Eof() and Lof() is now optional. If it is not specified,
  then the standard input is used.
* BUG: You should be able to retry any code that just raised an error in the
  debugger without crashing now.
* BUG: Fixed a problem in the optimization of function calls.
* BUG: Fixed the Round() function. Now Round(0.5) should returns 1 and not 0
  anymore.
* BUG: The comparison functions should work correctly now. 10 * (10 > 0) returns
  -10 again :-)
* BUG: Array contents can be written to any stream now, not just files.

QT COMPONENT

* A new property, Application.Embedder, that allows you to embed the next opened
  window in an external window whose X11 handle is specified there.
* The State property of the Window class has been replaced by three new properties:
  Minimized, Maximized and FullScreen. These properties are completely independant.
* A new property, Window.Picture, that stores the window mask.
* The Mask property now is boolean, and just tells if the Picture property must be
  used to mask the window.
* A new control, Embedder, that allows to embed top-level windows of external
  applications.
* Each window now has X11 window manager class set to the project name, and X11
  window manager role set to its class name.
* BUG: Unminimizing windows now always give them the focus.
* BUG: Fix a potential crash is menu management.
* BUG: If a modal window is already displayed, calling Show() on another window calls
  ShowModal() instead.

SDL COMPONENT

* SDL component has been updated.

MYSQL DRIVER

* BUG: Creating indexes on text fields with no size limit is not case sensitive
  anymore.


--------------------------------------------------------------------------------------
 gambas2-1.9.11 - 06 Jul 2005
--------------------------------------------------------------------------------------

* BE CAREFUL: THE BYTE CODE HAS BEEN MODIFIED, SO YOUR PROJECTS MUST BE *ENTIRELY*
  RECOMPILED!
* A new video capture component named 'gb.v4l' made by Daniel Campos. It is based
  on Video4Linux.
* The CGI Gambas program that manages the new documentation is distributed with the
  source so that people can translate it.

COMPILER

* You can instanciate objects at variable declaration with any expression now.
* Functions can take a variable number of arguments now.
* You can use the '_unknown' special method now.
* A new syntax 'IF ... AND IF ...'. The second test is not done if the first is false.
* A new syntax 'IF ... OR IF ...'. The second test is not done if the first is true.
* A new syntax 'CASE ... TO ...', to test the match to an interval of values.
* New C-style assignment operators: +=, -=, *=, /=, \=, &=, &/=.
* The DIRECT keyword has been removed. Now use 'OPEN ... FOR INPUT | OUTPUT' to open
  a file in buffered mode and 'OPEN ... FOR READ | WRITE' to open a file in direct
  mode.
* The BIG and LITTLE keywords have been removed. Now use the new ByteOrder property
  of the Stream class.
* A new syntax for EXEC or SHELL: 'EXEC|SHELL ... TO aString' executes the command,
  waits for its termination, and returns the process output to the specified string.
  The syntax defined in 1.9.10 has been removed.
* WAIT is not implicite anymore in the EXEC or SHELL command.
* Now ambiguous expressions are detected, and raise an error.
* A new operator '==', to compare strings by ignoring their case.

INTERPRETER

* System.Home was definitely replaced by User.Home.
* System.User was definitely replaced by User.Name.
* The class ".Stream" has been renamed as "Stream".
* A new class, Param, to get extra arguments, and information about a call to
  the _unknown method.
* A new property, Stream.ByteOrder, to set the byte order of a stream.
* A new property, User.Id, returns the user id of the current process.
* Application.Args is now enumerable.
* Formatting currency is possible now, by specifying gb.Currency (or gb.International
  to use the international currency symbol) as second argument of Format$().
* New mathematical functions: Exp2, Exp10, Log2, Cbr, Expm, Logm, Atan2, Ang, Hyp, Mag.
* New conversion functions: DConv$(), for converting from system charset to desktop
  charset, and SConv$() for doing the contrary.
* New date functions: DateAdd() and DateDiff(). They were backported from the vb
  component and the syntax was modified.
* A new function, RDir(), to read the contents of a directory recursively.
* A new storage class, List.
* BUG: getting the resting output of a closed process stream does not crash anymore.
* INPUT FROM DEFAULT and OUTPUT TO DEFAULT now automatically restore the last
  redirected stream.
* Adding or substracting little integers is now optimized: about 5 times faster.
* Calling functions with a fixed number of arguments, without needing to convert the
  arguments is optimized: about 4 times faster.
* BUG: Sgn() now always returns an integer.
* Temporary directories are now only readable to the process user.

QT COMPONENT

* BUG: Fix memory leak in string conversion to UTF-8.
* A new drawing method, Draw.Zoom, for drawing a zoomed version of an image.
* SpinBox control has been moved to the main component.

EDITOR COMPONENT

* BUG: Display strings whose length is greater than 255 characters correctly now.
* BUG: Fix rewrite algorithm when dealing with UTF-8 character in some cases.
* Parsing errors are underlined now.

GTK+ COMPONENT

* GTK+ component has been updated.

SDL COMPONENT

* SDL component has been updated.

CURL COMPONENT

* BUG: Some fixes to compile with gcc 4.x.



--------------------------------------------------------------------------------------
 gambas2-1.9.10 - 24 Jun 2005
--------------------------------------------------------------------------------------

* The component summary displayed by ./configure is now accurate.

COMPILER

* New instructions INPUT FROM and OUTPUT TO. These instructions redirect the default
  input and output stream.
* New syntax for OPEN: 'File = OPEN ...' instead of 'OPEN ... AS #File'

INTERPRETER

* Support for standard streams redirection.
* Now EXEC and SHELL return the process output as a string if the FOR keyword is not
  used. Otherwise, the process object is returned.
* Now child processes termination is detected via an internal pipe filled by the
  SIGCHLD signal handler.
* Dates can be implicitely converted to booleans or null now.
* Temp$() now can take the name of the temporary file as an optional argument.

EDITOR COMPONENT

* BUG: the editor width is updated when a line is highlighted.

QT COMPONENT

* The GUI layout is reversed when the current language is arabic or farsi.

GTK+ COMPONENT

* GTK+ component was updated.

CLANLIB COMPONENT

* Configuration files were fixed.

SDL COMPONENT

* SDL component was updated.


--------------------------------------------------------------------------------------
 gambas2-1.9.9 - 02 Jun 2005
--------------------------------------------------------------------------------------

* Czech translation made by Peter Cernoch.
* The *.info and *.list files are now generated one by one.

COMPILER

* BUG: You can use TRY after a one-line IF ... THEN construct.

INTERPRETER

* BUG: Raising events now works for class whose parent already has events.
* BUG: Calling native functions cannot badly free the return value anymore.
* BUG: The library specified in EXTERN now separate the version number from the
  library name with a colon.
* The API GB.Call() now returns a pointer to the value returned by the called
  Gambas function.
* Application.Env can be enumerated now.
* A new static class, User, to return information about the user that runs the
  process.
* New functions for external shared libraries support: Alloc(), Free(), Realloc().
* BUG: Reading from a non-buffered stream is now fixed.
* Now streams that are not real files always use ioctl() to know how many
  bytes can be read from them. So Lof() should always return a useful value now.
* BUG: The debugger now can display class constants.

DEVELOMENT ENVIRONMENT

* BUG: Constants are now displayed in automatic completion.
* BUG: IDE does not ignore files with executable bit set anymore.

DATABASE COMPONENT

* BUG: You can use string constants inside requests now.

EVALUATOR COMPONENT

* BUG: Syntax highlighting now works with lines including non-ASCII characters.

QT COMPONENT

* Dialog.OpenFile now takes an optional argument to let the user choose more than one
  file.
* Dialog.Paths is a new property that returns the files selected by the user.

GTK+ COMPONENT

* Updated.

NETWORKING COMPONENT

* Updated.

CLANLIB COMPONENT

* New component. Not usable yet.


--------------------------------------------------------------------------------------
 gambas2-1.9.8 - 09 May 2005
--------------------------------------------------------------------------------------

* The source files are now uploaded to the SourceForge FTP servers.

COMPILER

* BUG: Numbers with signs are correctly compiled again.
* A new keyword, LIBRARY, to tell the compiler the default library name that it
  should use with EXTERN declarations.
* Now The IN keyword is optional with EXTERN declarations, if LIBRARY was used
  before.
* You can add EXEC <real name> at the end of an EXTERN declaration, to specify
  the name of the extern function in the shared library, when it is different
  from the name used by Gambas.


--------------------------------------------------------------------------------------
 gambas2-1.9.7 - 04 May 2005
--------------------------------------------------------------------------------------

* Symbolic link to gambas IDE does not have the '.gambas' extension anymore.
* 'gbi' was rewritten so that it can take a component name as argument, and
  create the information files only for this component.

COMPILER

* Support for declaring functions in extern shared libraries. The syntax is:
  EXTERN <function name>(args...) IN <library name>
* New datatype named 'Pointer' that is a synonymous for 'Integer'.

INTERPRETER

* BUG: OPEN ... DIRECT now correctly works.
* BUG: Opening a file with CREATE flag now always implies READ flag.
* BUG: SEEK and READ now always work on files opened in DIRECT mode.
* Support for calling functions in extern shared libraries.
* If the startup class declares a plublic method named 'Application_Read', then
  the standard input is watched by the event loop.
* New subroutines, Alloc(), Free() and Realloc() for allocating and freeing
  memory fragments.
* A new subroutine, StrPtr(), that returns the null-terminated string located
  at the specified address.
* You can use READ and WRITE to read from or write to memory, by using an integer
  as stream. The interpreter should raise an error and not crash if you supply
  an invalid memory address.
* Now, if you use FOR INPUT/OUTPUT instead of FOR READ/WRITE with the EXEC or
  SHELL instruction, the executed process is plugged to a pseudo-terminal. This
  way, you can easily pilot a program that needs to be run in a terminal.
* BUG: '_call' special method management has been fixed.

DEVELOPMENT ENVIRONMENT

* Support for the Pointer datatype.

QT COMPONENT

* BUG: I finally got rid of the spurious warning generated by the TableView control.

DATABASE COMPONENT

* BUG: Result methods now always return an error when the result is not available.
* BUG: Now tables whose primary key fields are not necessarily the first ones work.
* BUG: The PostgreSQL driver has been fixed. Now it works for any version greater
  or equal than 7.3.
* Now deleted records are removed from the Result object.


--------------------------------------------------------------------------------------
 gambas2-1.9.6 - 21 Apr 2005
--------------------------------------------------------------------------------------

* WARNING! The bytecode has changed. You must entirely recompile your projects.
* Now components disabled by libraries and includes detection are not compiled
  anymore.
* A new configure flag, '--disable-qt-translation', prevents the qt component for
  using qt translation files, in the hope of helping to solve the 'freeze' problem
  with distributions like SuSE.

COMPILER

* Support for Long and Single datatypes.
* The syntax of EXEC, SHELL and RAISE has changed. They do not use the AS keyword
  anymore, but the assignment syntax:
    hProcess = EXEC ...
    hProcess = SHELL ...
    bCancel = RAISE ...
  The OPEN instruction may follow the same way in the future.

INTERPRETER

* Two new datatypes: Long, a 64 bits integer, and Single, a 4 bytes floating point
  number.
* Two new array classes: Long[] and Single[].
* Support for files larger than 2 GB. Now Lof() and Seek() return a 64-bits Long
  value.
* Two new keywords, LOCK and UNLOCK, to lock and unlock opened files.
  Just type LOCK #hFile or UNLOCK #hFile.
* The Stat() function now returns an object of the class 'Stat', not 'File' anymore.
* BUG: Fixed a possible crash when freeing classes at program end.
* BUG: Some fixes in the management of components written in Gambas.
* BUG: The Seek() function should work now.
* BUG: A file descriptor leak was fixed in an internal function used by the
  Settings class.

DEVELOPMENT ENVIRONMENT

* Support for Long and Single datatypes.
* BUG: Menu editor works again.

DATABASE MANAGER

* The ODBC driver is supported.

DATABASE COMPONENT

* The ODBC driver was updated.

NETWORK COMPONENT

* BUG: The DTR and RTS properties of the SerialPort class were fixed.
* The CURL component was updated.

EVALUATOR COMPONENT

* BUG: Fixed a possible crash when analyzing lines with syntax errors.


--------------------------------------------------------------------------------------
 gambas2-1.9.5 - 31 Mar 2005
--------------------------------------------------------------------------------------

* Components can be disabled from the top configure script now.
* Examples and help files have their own package.
* a new component, gb.form, that just included an example of component for testing
  purpose.
* A summary of disabled components is printed at end of configure.
* DONT_USE_LTDL is disabled by default when compiling on cygwin.

COMPILER

* Some optimization in case unsensitive comparison.
* BUG: '.info' files should be correctly generated now.
* Support for multi-dimensional dynamic arrays.

INTERPRETER

* Arrays classes are now multi-dimensional. The dimensions are declared with
  the following special syntax:  DIM aArray AS NEW Float[5, 6, ...]
  The arrays can have up to eight dimensions. A multi-dimensional array cannot
  be resized at run-time.
* Array.Dim returns the number of dimensions.
* Array.Bounds[...] returns the size of one dimension.
* Array.Sort() now always returns the array itself, so that you can write:
  FOR EACH sFile IN Dir(Path).Sort()
* BUG: Some fixes in Collection class when dealing with null keys.

ARCHIVER

* Gambas executables have now the '.gambas' extension.

DEVELOPMENT ENVIRONMENT

* Some little fixes to allow using controls of components written in Gambas.
* If a component requires another component, then it will be stored after in the
  .project file.
* Project names including a dot are allowed now.
* BUG: Menus are correctly managed by the IDE with the GTK+ component now.

DATABASE COMPONENT

* ODBC driver was updated.
* Connection now is a virtual control.

QT COMPONENT

* MovieBox has been moved to the main component, as it is in the GTK+ component.

KDE COMPONENT

* The following QT datatypes are managed as DCOP function return type:
  QMap<QCString, QString>, QMap<QString, QString>, QMap<QCString, DCOPRef>,
  QMap<QString, DCOPRef>. They are unmarshalled to a Gambas collection.


--------------------------------------------------------------------------------------
 gambas2-1.9.4 - 23 Feb 2005
--------------------------------------------------------------------------------------

* Source package has been completely reorganized. Almost each component has its
  own source sub-package independent from the others.
* Components can be written in Gambas. But there is no support for that in the
  development environment yet.
* $(pkglib) and $(pkgdata) variables are replaced by $(gblib) and $(gbdata) in
  all 'Makefile.am' files.
* Components library files are not prefixed with 'lib.' anymore.

INTERPRETER

* Support for loading components written in Gambas.
* Each component can have a translation file.
* Classes written in Gambas can be exported (i.e global) and auto-creatable.
* The native class Settings has been replaced by the gb.settings component, written
  in Gambas.
* The support for the old USE instruction has been definitely removed.
* The FIFO opened by a debugged process are not closed at end anymore. I don't know
  why but it was taking a very long time.
* Temporary files (and translation files) are now stored in '/tmp/gambas.$UID/$PID/',
  and are all deleted when the process terminates.
* BUG: _put and _get special methods now work correctly for classes written in
  Gambas.
* BUG: The File.Perm.* properties now work correctly.
* BUG: Subst() now works correctly when there is a single '&' character in the
  pattern string.

COMPILER

* A new keyword, EXPORT, to tell that a class is exported, i.e. global. In a
  component, only exported class are visible to the outside.
* CREATE tells that a class is auto-creatable, i.e. that using the class like a
  object automagically creates an hidden instance.
* When a project has exported class, the compiler automatically generates a '.list'
  file containing the list of exported classes, and a '.info' file that describes
  these exported classes. The format of these file is the same as those generated
  by the 'gbi' tool for native components.
* Support for _put and _get methods.

INFORMER

* The 'gbi' does not take the '-a' option anymore. It always generates information
  files for all native components.

DATABASE COMPONENT

* BUG: Some fixes in the postgresql driver for PostgreSQL version greater than 7.4.
* ODBC driver was updated.

DEBUG COMPONENT

* The SIGPIPE signal is ignored now during a debugging session.

EVALUATOR COMPONENT

* BUG: many fixes in highlighting and rewriting process.

QT COMPONENT

* BUG: The Tabstrip.Tab property now really returns a tab virtual object, and
  not an integer anymore.
* BUG: The DrawingArea control does not crash anymore when it is cached and its
  width and height are zero.
* BUG: Settings GridView.Item.Picture property now correctly refresh the GridView.

GTK COMPONENT

* Updated.

SDL COMPONENT

* Updated.

SETTINGS COMPONENT

* This component replaces the old native Settings class that was built-in in the
  interpreter. Note that configuration files are now stored under ~/.config/gambas
  and that their format has changed to the Windows INI file format.


--------------------------------------------------------------------------------------
 gambas2-1.9.3 - 07 Feb 2005
--------------------------------------------------------------------------------------

* libxml and libxslt use pkg-config to detect their installation path.
* Detection using 'pkg-config' can be overrided by --with-*-includes and
  --with-*-libraries configure options.

DEVELOPMENT ENVIRONMENT

* BUG: newly created or deleted controls are correctly displayed in the
  auto-completion list now.
* Pressing ENTER when the autocompletion is displayed does not insert a new line
  anymore.

COMPILER

* A new keyword, SUPER.

INTERPRETER

* BUG: Virtual dispatching now works correctly.
* A new keyword, SUPER, to call a method or a property of the inherited class.
* BUG: gb.Sunday constant is zero, not seven anymore.
* BUG: Mathemathic functions now raise an error instead of returning a non-finite
  number.

EXPRESSION EVALUATOR COMPONENT

* Syntax highlighting is done by this component now.

DATABASE COMPONENT

* ODBC driver updated.
* SQLite driver updated.

QT COMPONENT

* BUG: Qt dialogs are now translated!
* BUG: No memory leak anymore when using user-defined cursors.
* BUG: Setting Dialog.Font to NULL does not crash the interpreter anymore.

GAMBAS EDITOR COMPONENT

* Syntax highlighting is done by the gb.eval component now.
* Code lines are rewritten after being edited.

GTK COMPONENT

* Updated.

PCRE COMPONENT

* Updated.

SDL COMPONENT

* Updated.


--------------------------------------------------------------------------------------
 gambas2-1.9.2 - 12 Jan 2005
--------------------------------------------------------------------------------------

* BUG: Fix forgotten version suffixes in configuration and source files.
* Some fixes to help compile on non-Linux architectures.

DEVELOPMENT ENVIRONMENT

* BUG: Don't crash when INHERITS is used by mistake.
* BUG: Don't display void folders opened in the project treeview.
* BUG: Never open autocompletion inside a comment.

COMPILER

* BUG: Using INHERITS twice now raises an error message.

SDL COMPONENT

* Updated.

GTK COMPONENT

* Updated.

PCRE COMPONENT

* Updated.


--------------------------------------------------------------------------------------
 gambas2-1.9.1 - 09 Jan 2005
--------------------------------------------------------------------------------------

* New experimental detection of target operating system. This may break some
  compilation on other systems than mine. Please report problems!
* Detection of shared libraries extension on MacOS X.
* Use of pkg-config to detect some libraries.
* Executables and packages are suffixed with the major version number.

INTERPRETER

* A new API, GB.Application.Startup, that returns the name of the startup class
  for components that need it.
* A new property, System.Version, that returns the Gambas major version number.
* BUG: The [] operator has been fixed for Byte and Short arrays.
* Now virtual dispatching is used. If you call a method on a object, the method of
  the true object class is called, and not the method of the class of the variable
  owning the object reference.

DATABASE COMPONENT

* New VERY ;-) experimental driver for ODBC, made by Andrea Bortolan.

QT COMPONENT

* BUG: Changing the width of all rows or the height of all columns now works correctly.
* BUG: TextBox.Pos does not crash anymore if the position is out of bounds.
* BUG: TextBox.Select.All() now works.

SDL COMPONENT

* A new component, gb.sdl.image, made by Laurent Carlier.

GTK COMPONENT

* New component made by Daniel Campos.

PCRE COMPONENT

* New component made by Rob Kudla.

