Gambas Documentation - /doc/release/3.5.0

# Gambas 3.5.0

- What's new

  - Development environment

  - Interpreter & compiler

  - Components

- ChangeLog

- Compatibility

- Compilation and installation

## What's new

This new release fixes more than 240 bugs and adds more than 270 new features (yes, the same numbers as in Gambas 3.4).

Note that many of these bugs have already been backported to the 3.4.x versions.

Here is a summary of the main changes:

### Development environment

- The menu editor has been fixed.

- A new image editor is provided.

- The database editor now can remember an arbitrary number of SQL requests for each connection.

- Subversion support has been fixed.

- If the IDE raises an unexpected Gambas error, all modified files are automatically saved before quitting.

- Web application can be debugged by the IDE through the embedded http server component gb.httpd.

### Interpreter & compiler

- Application.Priority is a new property that allows to define the scheduling priority of the current process (or task).

- MATCH is a new operator that automatically load the gb.pcre component to implement PCRE pattern matching.

- Global error handler support. See Application.

- ARM support has been fixed, and Gambas should be reliable now on that architecture.

- New `.[xxx]` and `!xxx` syntax that can be used inside a WITH...END WITH structure as array accessor shortcuts.

### Components

- gb.clipper is a new component based on the Clipper library.

- gb.openssl is a new component to wrap cryptographic functions of libcrypto from the OpenSSL project.

- FileProperties is a new control that displays the properties of a specific file or directory.

- ImageView is a new control that allows to view an image inside a scrolled view, at different zoom levels.

- SliderBox is a new control that displays a Slider and a SpinBox, both being synchronized.

- Horizontal toolbars now can grow vertically if there is not enough space for toolbar elements.

- gb.gmp is a new component based on the Gnu Multiple Precision Arithmetic Library that implements BigInt and Rational numbers.

- The gb.image component has new methods to apply balance effects to an image.

- gb.media now is based on GStreamer 1.0. The MediaPlayer control now can take a screenshot of the current video frame.

- gb.openal is a new component based on the OpenAL 3D audio library.

- gb.opengl.sge is new component that implements a simple OpenGL game engine based on the MD2 format.

- gb.xml.rpc is now far more reliable.

## ChangeLog

    [CONFIGURATION]
    * BUG: Uninstall should honor XDG_UTILS variable during 'make uninstall'.
      This fix building in ArchLinux.
    * NEW: The TRUNK_VERSION macro is now defined to the overall SVN repository
      revision if Gambas is compiled from inside a repository. The value is
      detected by the Makefiles and passed as a command line definition to gcc.
    * NEW: The trunk version is now put in the 'config.h' file of the /main
      source directory. No compilation flag is used anymore.
    * NEW: All Gambas executables return the trunk revision number when they
      are called with the '-V' option.
    * NEW: The trunk version is now generated at compilation time through
      custom rules and a generated include in the Makefile.am file.
    * NEW: Components can have a new state: "Deprecated".
    * NEW: Update copyright year to 2013.
    * NEW: Update the README file, and add a copy of the wiki installation
      instructions in the INSTALL.html file.

    [DEVELOPMENT ENVIRONMENT]
    * BUG: Selecting two different libraries with the same name is not possible
      anymore.
    * BUG: Correctly raise an error when opening a void form file.
    * BUG: Do not crash when checking for completion in text editor.
    * BUG: Icon selection dialog filter works correctly again.
    * BUG: An arrangement icon has been forgotten.
    * BUG: Fix Undo/Redo of newly created controls having a Text property.
    * BUG: If the master of the form editor selection is removed, select a new
      master in the renaming selection if possible. Otherwise, the selection is
      not in a coherent state, which makes undo/redo crash.
    * BUG: If the desktop password wallet is not available, do not crash
      anymore, but display an error message instead.
    * BUG: Subversion support now correctly handles project directories that
      have symbolic links in it.
    * BUG: The '.lang' directory should be correctly put under version control
      when a project become translatable.
    * BUG: Correctly save profiling preferences when closing the project
      property dialog.
    * BUG: Do not crash if a file cannot be associated with any mime type.
    * BUG: Fix the frame position when dragging a control from the toolbar to
      a container.
    * BUG: Fix the local variable view when they are displayed in columns.
    * BUG: CSV Import: Take the charset into account when displaying the file
      preview.
    * BUG: Don't automatically hide the console tab when displaying the
      database editor.
    * BUG: Detect structure definition help comments.
    * BUG: New menu are translatable by default.
    * BUG: Fix menu editor.
    * BUG: Use "dpkg-buildpackage -d -rfakeroot" instead of
      "fakeroot dpkg-buildpackage -d". It seems that the first one sometimes
      does not work for unknown reasons.
    * BUG: Some file path automatic completion fixes.
    * BUG: The Backspace key now works correctly with autocompletion of project
      paths (i.e. strings beginning with "./").
    * BUG: Don't crash in the project version control dialog if storing
      passwords is not possible on the current desktop.
    * BUG: Always use "svn --force" when deleting a file in a project under
      version control.
    * BUG: Automatically unfold procedures while doing a text search.
      Consequently, search & replace now works correctly when procedures are
      folded.
    * BUG: Do not crash if examples are not installed.
    * BUG: Fix language environment when running subversion.
    * BUG: Add the missing component descriptions.
    * BUG: Use the "title font" for form editor and image editor toolbars.
    * BUG: Fix a typo in tips french translation.
    * NEW: The subversion dialog is not closed automatically anymore when
      hitting ENTER.
    * NEW: Search result list now displays the procedure name.
    * NEW: System information now tells libcurl version.
    * NEW: Add translations for details of the E_CHILD error message.
    * NEW: The 'Project -> Refresh' menu entry now reloads the symbol
      information of all components and libraries used by the project.
    * NEW: Display a warning at project loading when some libraries are missing.
    * NEW: Allow a component to have a requirement on the XML implementation
      feature (i.e. 'gb.xml' or 'gb.libxml').
    * NEW: Added "lxterminal" to the list of xterminal options
    * NEW: "Compress all" and "Uncompress all" action on project sub-
      directories.
    * NEW: If the IDE throws an uncatched error, try to save all modified files
      before aborting.
    * NEW: Highlight the background of special methods in the code editor
      procedure list.
    * NEW: Update czech translation.
    * NEW: When installing the Gambas font, don't use the deprecated
      '~/.fonts.conf' file anymore.
    * NEW: The file information dialog now allows to revert it individually (if
      the project is managed by subversion).
    * NEW: The project file properties dialog is now based on the new
      FileProperties control.
    * NEW: Project statistics came back in the file property dialog.
    * NEW: Add a file properties view in the CSV import dialog.
    * NEW: New design of the system information dialog.
    * NEW: The system information dialog searches for more libraries.
    * NEW: Add a filter to the component tab of the project property dialog.
    * NEW: When the 'gb.web' component is selected, a new option is available
      in the project property dialog: "Run in an embedded HTTP server".
    * NEW: Add a menu item in the "Debug" menu to define in one click if an
      embedded HTTP server must be used.
    * NEW: The 'gb.httpd' component can be checked explicitely.
    * NEW: New image editor.
    * NEW: Hitting "[" just after a "." now hides the automatic completion.
      This is for the new ".[xxx]" syntax.
    * NEW: Allow more possible shortcuts in menu editor.
    * NEW: Menu items can be non-translatable.
    * NEW: Add Islandic language.
    * NEW: Name some unnamed components.
    * NEW: Automatic completion of icon paths (i.e. strings beginning with
      "icon:/").
    * NEW: Complete the french translation.
    * NEW: Javascript compressor: between "// &lt;verbatim>" and "// &lt;/verbatim>"
      comments, no symbol is compressed.
    * NEW: If a variable beginning with "$" is unknown, it is now declared as a
      private global variable, not a local variable.
    * NEW: The file creation dialog now can create javascript files.
    * NEW: Database connection editor: SQL request now can be stored with the
      connection.
    * NEW: Database editor: Support for metadata in field and index
      definitions. Metadata are enabled if the corresponding check-box is
      checked in the connection properties dialog.
    * NEW: Database editor: Some redesign of the sql queries editor.
    * NEW: Use 'script' icon for javascript files.
    * NEW: Autocomplete INHERITS keyword with classes.
    * NEW: Locking a form does not hide the "event" menu anymore. But it shows
      the existing event handlers only.
    * NEW: Update error messages translation.
    * NEW: Add a new background image.

    [WIKI CGI SCRIPT]
    * BUG: Fix an english mistake without altering the translations.
    * BUG: Correctly handle boolean constants.
    * BUG: Fix the "search" link.
    * NEW: The indexes are more compact now.

    [WEBSITE MAKER]
    * BUG: Translations came back.

    [EXAMPLES]
    * BUG: Fix PdfPresentation example.
    * BUG: Lighttable: Correct renaming of files if ScrollView is expanded
    * BUG: GSLSpline: Remove deprecated Painted property from Form definition.
    * BUG: Fractal: commit a missing new file.
    * BUG: MapView: Temporaly disable map effects because they are too
      unstable.
    * BUG: Fix Wizard example.
    * NEW: Add 'Pong' in the Games section.
    * NEW: Pong: Make ball fly faster with every paddle hit.
    * NEW: Update czech translation.
    * NEW: Pong: Use gb.ncurses improvements
    * NEW: Invaders: New example for gb.ncurses showing some variant of Space
      Invaders. Most internal code is right, only the surface needs polishing.
    * NEW: Use the new HttpClient Progress event and its properties in the
      HttpGet networking example.
    * NEW: The Fractal example now uses eight background tasks to draw the
      fractal.
    * NEW: MediaPlayer: Add a button to display the contents of the first video
      device (/dev/video0).
    * NEW: MediaPlayer: Display error messages in the interface.
    * NEW: The MediaPlayer example now has a panel to configure the image
      balance.
    * NEW: MediaPlayer: Allow to choose the video device.
    * NEW: Md2Model: New gb.sge example. Draw a lot of models (up to about
      240000 vertices, the maximum I can draw in 1/50th second on my Core i5
      @ 3.4 GHz).
    * NEW: MediaPlayer: Add a button to take a screen-shot of the current video
      frame.
    * OPT: Lighttable: Allow double-click on DirChooser

    [INTERPRETER]
    * BUG: GB.Stream.SetBytesRead() now increments the internal number of read
      bytes, so that the 'Line Input' buffer is taken into account.
    * BUG: When the parent of an observer is detected invalid while raising an
      event, detach the observer and not the observed object!
    * BUG: When the default date format associated with the current locale is
      not a numeric one, use the American format. It was done for 'en_PH'
      locale.
    * BUG: Don't flush the process output at process end if the process stream
      has already been closed.
    * BUG: Correctly free things then something bad happens while starting a
      child process.
    * BUG: Fix a memory leak when trying to run a non-existant program with
      EXEC or SHELL.
    * BUG: Void string constants work correctly now.
    * BUG: Don't wait for a stream to be ready for reading if the stream has no
      underlying file descriptor.
    * BUG: Correctly handle functions with a variable number of arguments when
      an array conversion occurs during argument parsing.
    * BUG: The debugger now correctly displays and modifies arguments of
      functions having a variable number of arguments.
    * BUG: Don't crash when calling a dynamic _call special method in a static
      context. Raise an error instead.
    * BUG: In File.Load(), workaround virtual files (like those located in
      '/sys') whose official size is not their real size.
    * BUG: A stream redirected through the 'Begin' method checks that stream is
      ready for writing only when the 'Send' method is called. Between the
      'Begin' and 'Send' calls, the PRINT and WRITE instructions will always
      succeed.
    * BUG: GB.NextEnum() does not return stopped enumerations anymore.
    * BUG: UnBase64() works correctly now. It does not add extra null bytes
      anymore.
    * BUG: Process management is now reliable against processes killed and
      started during process event handlers.
    * BUG: Disable read watch when reading a stream fails for any reason: i/o
      error, end-of-file...
    * BUG: Do not stop watching when reading up to a specified number of bytes.
    * BUG: Fix a possible false error when using LINE INPUT on non-blocking
      streams.
    * BUG: Class reimplementation of Abs() now can return an object or a
      floating-point number.
    * BUG: Fix a crash when an error is raised while the startup class is not
      ready.
    * BUG: Fix alignment of structure declarations for ARM architecture.
    * BUG: Time() with one argument correctly converts it to a date.
    * NEW: Enumeration objects are immediately freed when the enumeration is
      stopped.
    * NEW: A new interpreter API that allows a component to tell that its
      custom stream data is immediately available.
    * NEW: GB.Stream.Eof() is a new API that returns if there is something to
      read on a stream, by taking the 'Line Input' internal buffer into
      account.
    * NEW: Defining the PWD environment variable in a SHELL or EXEC instruction
      changes the working directory of the child process.
    * NEW: If the program name of EXEC is an absolute path, immediately raise
      an error if it does not exist.
    * NEW: Clean up allocation macros.
    * NEW: Clean up object referencement macros.
    * NEW: --version also prints the SVN revision number when gbx3 was compiled
      from a SVN repository.
    * NEW: If a static public method named Application_Error() is defined in
      the startup class, then this method will be called when an unhandled
      error is thrown, just before the program is aborted.
    * NEW: GB.OnErrorBegin() and GB.OnErrorEnd() are two new APIs that allow to
      register cleanup routines that are called when an error is raised between
      the GB.OnErrorBegin() call and the GB.OnErrorEnd() call.
    * NEW: MATCH is a new operator that automatically load the gb.pcre
      component to implement PCRE pattern matching. The syntax is the same as
      the LIKE operator.
    * NEW: GB.ReturnSingle() is a new API that allows to return a Single from a
      method or property implementation routine.
    * NEW: The option '-H' is assumed if the project depends on the 'gb.httpd'
      component explicitly.
    * NEW: Process.Ignore is a new boolean property that tells the interpreter
      to not wait for the process end. If the interpreter exits, that process
      is then automatically killed.
    * NEW: Support for inequality operators in the operator interface.
    * NEW: The Sgn() function can be implemented by the operator interface.
    * NEW: GB.System.Debug() is a new API that allows to know if the
      interpreter is run in debugging mode.
    * NEW: Updated Spanish translation.
    * NEW: Application.Priority is a new property that allows to define the
      scheduling priority of the current process (or task). See it as an
      interface to the nice() system call.
    * NEW: Date() and Time() now takes the milliseconds as an extra optional
      argument.
    * NEW: Date() and Time() now always check the range validity of their
      arguments.
    * NEW: Allow some error messages to be untranslatable by using a void macro
      named '$(...)' around the string.

    [COMPILER]
    * BUG: Functions now can have up to 65536 byte-code operations instead of
      32768.
    * BUG: Now a FOR loop with no loop variable correctly raises a syntax
      error.
    * BUG: Correctly handle public string constants larger than 255 characters.
    * BUG: Generate correct information files for components having string
      constants with newline inside.
    * BUG: Correctly raise a syntax error if the FOR EACH variable is not
      immediately followed by the IN keyword.
    * NEW: Support for the Parent property of WebPage.
    * NEW: WebPage markups attributes can use the &lt;%...%> syntax.
    * NEW: Add a new MATCH operator.
    * NEW: The ".[xxx]" syntax now can be used inside a WITH &lt;object> ...
      END WITH control structure. It is a synonymous for "&lt;object>[xxx]".
    * NEW: Implement the "!xxx" syntax for the WITH ... END WITH control
      structure.

    [ARCHIVER]
    * BUG: Be able to create the executable file if /tmp and the target
      directory are not on the same device.

    [INFORMER]
    * BUG: The value of  Float constants is now correctly dumped in *.info
      files.
    * BUG: Write boolean constants in information files as "T" and "", not
      "True" and "False". It breaks things.

    [GB.ARGS]
    * NEW: Update Czech translation.

    [GB.CAIRO]
    * BUG: Cairo.ImagePattern() now internally keeps a reference to the source
      image so that the image data is not unexpectedly freed before the
      pattern.

    [GB.CLIPPER]
    * NEW: This a new component based on the "Clipper" library.
    * NEW: Polygon is a new class that represents a polygon. It can be
      automatically converted to and from PointF[].

    [GB.COMPLEX]
    * BUG: Abs() on a Complex returns a Float.
    * NEW: Implement the same Complex.ToString() method as in gb.gsl.

    [GB.COMPRESS.BZLIB2]
    * BUG: Fix stream implementation.

    [GB.COMPRESS.ZLIB]
    * BUG: Fix the stream implementation.

    [GB.DATA]
    * BUG: Fix difficult-to-spot List.Take() bugs due to difficulties with the
      former internal data structures. The class now survives all my test cases
      (without misbehavior under valgrind).
    * BUG: List.Take() never raises "Out of bounds" anymore if the list is empty
      because that's an inappropriate error for a *circular* list. It raises an
      error if an attempt is made to Take() an invalid Current which includes
      the case that the List is empty.
    * BUG: Fix possible bugs when updating an invalid Current.
    * BUG: Really erase old elements instead of just marking them as Null to
      prevent (potential) information leaks.
    * BUG: Remove inclusion of c_avltree.h which is not yet versioned.
    * BUG: List: Fix two false positive compiler warnings on some systems.
    * BUG: AvlTree: Don't forward-declare a typedef. It bothers some compilers.
    * BUG: Also update Key from AvlTree_get().
    * BUG: Invalidate the enumerators in AvlTree.Clear()
    * NEW: Fix memory leaks from Circular cleanup.
    * NEW: Expose List.Current as a virtual object representing the current list
      element which has Append() and Prepend() methods to manipulate the list
      not only around its head. This breaks backwards compatibility.
    * NEW: List.Value is what List.Current has meant formerly.
    * NEW: Add List.Current.Index and List.Index which are an absolute index of
      the current element into the list. These are guaranteed to be in bounds of
      [-List.Count; List.Count - 1]. Note that each non-negative index has an
      associated negative equivalent and vice versa. They work like the indices
      given to List._get().
    * NEW: Add a List.AutoNormalize property which instructs the list to
      automatically make indices (like resulting from a calculation) fit into
      the List bounds preserving the sign of the given index. This effectively
      prevents any "Out of bounds" errors.
    * NEW: Add List.MoveTo() to point Current to an index.
    * NEW: List.Current.Is{First,Last,Valid} can be used to determine if Current
      is the first or last element of the list or if it is valid, respectively.
    * NEW: Update copyright years.
    * NEW: Have a stripped-down version of gb_common_string_temp.h to provide
      STRING_compare() without producing compilation problems.
    * NEW: AvlTree is a new Collection-like class implementing a balanced
      binary search tree. It does _not_ utilise hashing in order to maintain
      an order of the literal key strings given by the user (For Each thus
      traverses from smallest to greatest key).
    * NEW: Carry in a stripped-down version of Bob Jenkins' lookup3 hash
      algorithm from the Public Domain. It was a last-minute decision to not use
      it in AvlTree to maintain the literal key order.
    * NEW: Mark component as stable
    * OPT: Shrink internal data structures and adjust algorithms likely
      improving performance (noticably for the 'random' case of my stress test -
      the 'best' case is almost on a par with Variant[] now).
    * OPT: Current and the enumerators (internally) carry list global indices
      (LGI) which can be used as anchor points together with List.Count to speed
      up traversals (always taking the shortest way through the list).
    * OPT: Remove workaround code related to an enumerator bug fixed in #5749.

    [GB.DB]
    * BUG: Using a database URL in the Connection constructor works now.
    * BUG: Fix a possible memory corruption in blob management.

    [GB.DB.FORM]
    * NEW: Update Czech translation.
    * NEW: The DataView control can edit blob fields now.
    * NEW: DataControl can handle blob fields now.
    * NEW: Highlight the byte under the mouse in blob editor.
    * NEW: DataCheckBox is a new data control that displays a checkbox for a
      boolean database field.
    * NEW: DataControl does not change the background of mandatory field and
      the font of primary key fields anymore.
    * NEW: DataControl.Control is a new property that returns the underlying
      control used for editing the field data.

    [GB.DB.ODBC]
    * NEW: Retrieve row count just after running the query.

    [GB.DB.SQLITE3]
    * BUG: Handle SQLITE_BUSY error for all requests, even SELECT queries.
    * BUG: VARYING CHARACTER() is taken as a text type now, not a boolean.
    * NEW: Connection.Timeout is now the maximum duration of request retries
      when the database is busy. By default, this is 120 seconds.

    [GB.DEBUG]
    * BUG: The debugger now correctly displays and modifies arguments of
      functions having a variable number of arguments.
    * NEW: The debugger tells the IDE when its prompt is the first one.

    [GB.DESKTOP]
    * BUG: Desktop.SendMail() does not quote the "-" character in e-mail
      addresses anymore.
    * BUG: Fix the dependencies of the component project.
    * BUG: Replace internal call XKeycodeToKeysym() with XkbKeycodeToKeysym()
      This fixes the deprecation warning at compilation.
    * BUG: Fix a possible crash when searching a mimetype from the file
      extension.
    * BUG: Correctly use the XDG data directories in DesktopFile and
      DesktopMime classes.
    * BUG: Correctly search mime icons in DesktopMime.GetIcon().
    * NEW: Try to use gnome keyring on XFCE.
    * NEW: Desktop.DataDir is a new property that returns the directory where
      the application must store its user-specific data.
    * NEW: Desktop.ConfigDir is a new property that returns the directory where
      the application must store its user-specific configuration.
    * NEW: Desktop.CacheDir is a new property that returns the directory where
      the application must store its user-specific cached data.
    * NEW: Desktop.RuntimeDir is a new property that returns the directory
      where the application must store its temporary runtime files.
    * NEW: DesktopMime.GetIcon() now can stretch installed icons to the
      requested size.
    * NEW: DesktopFile.Run() method now returns the created process object.
    * NEW: Desktop.Passwords.Enabled is a new property that returns if storing
      passwords is possible on the current desktop.

    [GB.DRAW]
    * BUG: Fix a stupid typo. The PointF class now works correctly!
    * BUG: The PaintMatrix class is now really autonomous. It can be used
      without a current drawing device.
    * NEW: Remove geometry classes and put them in the gb.geom component.
    * NEW: PaintMatrix.Copy() is a new method that copies a matrix.
    * NEW: PaintMatrix.Map() is a new method that applies a matrix to a point
      and returns the result.

    [GB.EVAL.HIGHLIGHT]
    * BUG: In HTML highlighting, highlighting inside &lt;script> and &lt;style>
      markups works correctly now.
    * BUG: Some fixes in HTML highlighting.
    * BUG: JavaScript: Fix regular expression highlighting.
    * NEW: HTML highlighting has be rewritten. &lt;%...%> markups are taken into
      account inside &lt;style> and &lt;script> markups.
    * NEW: Add 'transition' to the CSS keywords.

    [GB.FORM]
    * BUG: Regular expressions of a file filter are splitted by the ";"
      character only now. Not the comma anymore.
    * BUG: Setting the TabPanel.Border property now correctly refreshes its
      layout.
    * BUG: The directory contents size task does not abort anymore when
      accessing an unreadable files or directory. It now ignore them.
    * BUG: Balloon: Fix the bubble drawing routine.
    * BUG: Add the 'linux' and 'gnu' icon in the stock icon list.
    * BUG: DirChooser should not crash anymore when it cannot access a
      bookmark.
    * BUG: Fix a possible infinite loop in TabBar layout management.
    * BUG: ButtonBox border is now drawn correctly with QtCurve.
    * BUG: The status of FileChooser and DirChooser toolbar icons is correctly
      initialized now.
    * BUG: Reading the FileChooser.ShowPreview property does not crash anymore.
    * NEW: FileView: The IconView grid size takes the icon size into account
      automatically now.
    * NEW: Add text fields to enter the time in the calendar popup. Add an
      apply button too.
    * NEW: FileView and DirView now display hidden files lightly, and symbolic
      links in italic.
    * NEW: File properties dialog in FileChooser and DirChooser.
    * NEW: Update czech translation.
    * NEW: FileProperties is a new control that displays the properties of a
      specific file or directory. It automatically computes the size of
      directory contents through a background task.
    * NEW: The stock icon map now can declare specific icons for specific
      widget themes.
    * NEW: Add a detailed view toggle button to the FileChooser and DirChooser
      controls.
    * NEW: When errors are raised while browsing the contents of a directory,
      the file properties dialog display them in a new tab.
    * NEW: The file properties dialog has an automatic preview tab for image
      files.
    * NEW: ButtonBox.Pos is a new property that returns the cursor position of
      its inner TextBox.
    * NEW: The GB_STOCK_DEBUG environment variable must be used now instead of
      the GB_STOCK variable.
    * NEW: ImageView is a new control that allows to view an image inside a
      scrolled view, at different zoom levels.
    * NEW: SliderBox is a new control that displays a Slider and a SpinBox,
      both being synchronized.
    * NEW: The SidePanel transparent handle is now smaller when the SidePanel
      is hidden.
    * NEW: FileChooser: Add a tool button for displaying file properties.
    * NEW: LCDLabel.Value is a new property that is a synonymous of the Text
      property for numerical values.
    * NEW: DateChooser[].Text is now taken into account. It is displayed as a
      tooltip when the mouse cursor hovers the associated date.

    [GB.FORM.DIALOG]
    * NEW: Update czech translation.

    [GB.FORM.MDI]
    * BUG: ToolBar: Expander and separators are correctly visible again.
    * NEW: Update Czech translation.
    * NEW: Horizontal toolbar layout has been redesigned. Now they grow
      vertically if there is not enough place for all toolbar elements.
      Vertical toolbars are not done yet.

    [GB.FORM.STOCK]
    * NEW: Default icons for some mime types.
    * NEW: Fix the 'tools' icon for elementary icon theme.

    [GB.GEOM]
    * NEW: New hidden component that implements all geometry classes: Point,
      PointF, Rect and RectF.

    [GB.GMP]
    * NEW: New component based on the Gnu Multiple Precision Arithmetic
      Library. It implements BigInt and Rational numbers.

    [GB.GSL]
    * BUG: Fix duplicate symbols issues when compiling on OSX.
    * BUG: Fix Gsl.Frexp.
    * BUG: Fix Gsl function signatures.
    * BUG: Fix the Vector.ToString() declaration.
    * BUG: Abs() on a Complex returns a Float.
    * NEW: Remove useless functions from the Gsl class.
    * NEW: Remove Gsl.Fcmpb and rename Gsl.Fcmpi as Gsl.Fcmp.

    [GB.GTK]
    * BUG: Scrollbar and Slider correctly raise their Change event when their
      Value property is set manually.
    * BUG: The Window.Controls property does not return invalid controls
      anymore.
    * BUG: Fix the naming of controls. The rule is the following: by default, a
      control takes the name of its event handler prefix. If it has no such
      prefix, it takes a unique name made from an incremental integer. But the
      automatic instance of Form is named from its class name.
    * BUG: Menu click event is now triggered the same way as in gb.qt4.
    * BUG: Control.HasFocus() works correctly now.
    * BUG: Modal windows cannot be shrunk less then their initial size
      anymore.
    * BUG: Menus work correctly again.
    * BUG: Remove deprecated call to gb_type_init().
    * BUG: Drawing text alignment is taken into account when the width or
      height is specified, not only when both are. Now, the drawing text
      methods behave like in gb.qt4.
    * BUG: Take the Invert property into account in vertical arrangements.
    * BUG: TrayIcon now uses the Gambas 3 logo as default icon.
    * BUG: Support for Ubuntu scrollbar overlays.
    * BUG: Fix the name of new modifier key constants.
    * BUG: Use the deprecated GDK key constants, otherwise the component does
      not compile with old GTK+ libraries.
    * BUG: Remove some remaining GDK_KEY_* constant so that it compiles on old
      GTK+ libraries.
    * BUG: Fix broken popup and modal dialog management.
    * BUG: Patch Style properties and methods for 'oxygen-gtk' widget theme.
    * BUG: Calling TrayIcon.Delete now correctly updates the internal number of
      visible tray icons.
    * BUG: Fix Enabled property behaviour by just renaming a method. There is
      something weird I didn't understood. :-/
    * BUG: Dialog.SaveFile() now uses the Dialog.Path property the same way as
      the gb.form.dialog component.
    * BUG: Fix popup menu management for imbricated popups.
    * BUG: Non-resizable modal forms are really not resizable now.
    * NEW: Key.Shift, Key.Alt, Key.Ctrl and Key.Meta now always returns the
      actual state of the corresponding modifier.
    * NEW: Key.ShiftKey, Key.AltKey, Key.CtrlKey and Key.MetaKey are four new
      constants that are returned by Key.Code when the corresponding key is
      pressed or released.
    * NEW: Implementation of the new PaintMatrix design.
    * NEW: Visible trayicons prevent the event loop from stopping.
    * NEW: Printer.Default is a new property that returns the name of the
      default printer.
    * NEW: Printer.List is a new property that returns the list of the names of
      all available printers.

    [GB.GUI.BASE]
    * BUG: GridView: Don't hide selection when setting the Mode property with
      its current value.
    * BUG: The default ColumnView sorting now correctly takes the column into
      account.
    * BUG: Renaming an IconView item now correctly works if the IconView is
      sorted.
    * BUG: Draw.FillStyle has been implemented.
    * BUG: Fix IconView item text ellipsization routine.
    * BUG: Draw.Picture() and Draw.Image() source arguments now work correctly.
    * NEW: Common renaming routine for TextView, ListView, ColumnView and
      IconView.
    * NEW: IconView.Renaming is a new property that returns if an item is being
      renamed.
    * NEW: FileChooser and DirChooser now can rename or delete files.
    * NEW: IconView, TreeView, ListView and ColumnView items now have a
      RichText property.
    * NEW: Typing keys inside an IconView should not crash anymore.
    * NEW: Add void constructors to HSplit and VSplit for the documentation.
    * NEW: HSplit and VSplit have a new Border property that defines if the
      splitter separator is visible or not.
    * NEW: HSplit and VSplit now take the Spacing property into account.
    * OPT: IconView items refresh is delayed if the IconView is locked.

    [GB.HTTPD]
    * BUG: The CGI "SCRIPT_NAME" variable is set to "/".
    * BUG: Many fixes in CGI handling if the project is in debugging mode.
    * NEW: Reset locale to "C" before running the http server.
    * NEW: The default CGI time out is now 10 minutes.
    * NEW: Behave accurately when run in debugging mode : only one CGI script
      at a time is allowed.
    * NEW: When run in debugging mode, there is no CGI timeout.
    * NEW: Replace "thttpd" strings by "gb.httpd".
    * NEW: Simplify the default HTML error page.
    * NEW: If the GB_HTTPD_DEBUG environment variable is set to "1", then all
      HTTP server debugging messages are printed to the standard error.
      Otherwise, nothing is printed.

    [GB.IMAGE]
    * BUG: Image.Copy() now checks its arguments better, so that it never
      generates images with garbage inside.
    * BUG: Image.Fuzzy() argument cannot be greater than 254.
    * NEW: Image.Pixels is a new property that allows to return the image
      pixels as an integer array, and to set the image pixels from an integer
      array.
    * NEW: New balance methods: Image.Brightness, Image.Contrast, Image.Gamma,
      Image.Hue, Image.Saturation, Image.Lightness.
    * NEW: Image.BeginBalance() and Image.EndBalance() are two new methods that
      allow to group calls to the previous methods, so that all the balances
      are done in one shot.
    * NEW: Color.Distance() is a new method that returns the RGBA distance
      between two colors as a floating point value between 0.0 and 1.0.
    * OPT: Internal routines for color space conversion between HSV and RGB
      have been optimized.

    [GB.IMAGE.IO]
    * BUG: Remove deprecated call to gb_type_init(). This call is deprecated
      since glib 2.36.
    * BUG: Loading an image sometimes raised false errors. This has been fixed.
    * NEW: Image.Stretch() is a new method that allows to stretch an image
      without having to use a full GUI component.

    [GB.JIT]
    * BUG: Fix compilation error.
    * BUG: Fix configure with llvm 3.3
    * BUG: Use another header file for configure step that is available from
      v3.1 to v3.3+, so proper include path is chosen.
    * BUG: Fix building with llvm 3.3. It should still build with llvm-3.2 (not
      tested).
    * BUG: Try to restore building of component with llvm 3.1.

    [GB.LOGGING]
    * NEW: New component to provide an easy logging interface.

    [GB.MAP]
    * BUG: Many change in the zoom effect. I hope it is good
    * BUG: correct detection of the mouse in the Viewer controls
    * BUG: Now the property AllowEffect really stop effect
    * BUG: The property ShowControls is now visible in the property windows
    * BUG: Shape stroke is correctly drawed
    * BUG: Some little corrections
    * NEW: Now shapes are usables, you can use, point, multipoints,
      polylines, and polygons.
      Data Position are defined in lat/lon value.
      ex: Map["MyShape"].AddPoint(MapPoint(lat,lon))
    * NEW: _MapShape.Color is a property to define the shape color on the layer
    * NEW: A new static layer in the MapView give user control. It have just
      the zoom control for now. It can be disabled with the property
      ShowControls.
    * NEW: A new property Bounds in Map Class give the lat/lon coord at the
      limits of the drawed map.
    * NEW: Now shapes are stored directly in the ShapeLayer. It act like a
      collection. ex: Map!Shape.AddPoint("Home", MapPoint(0.05, 45))
      You can access to it with Map!Shape!Home.Data
    * NEW: ShapeItem.Data become _ShapeItem.Points
    * NEW: A new function refresh in _ShapeLayer allow to update the Shapes box
      and center value when points value have been changed.
    * NEW: Now you can define a different point image for each Shape of
      type Point
    * NEW: a new function Grab allow to get an image of a given zone at the
      given size and at the better zoom level.
      ex: PictureBox1.Picture = $Map.Grab($Map!MyShape!zone1.Bounds,
      PictureBox1.Width, PictureBox1.Height, 0).Picture
    * NEW: Map Class have an event Draw()
    * NEW: Map have a property Loading that allow to control if the layers have
      finished to get theire datas
    * NEW: I've replaced the _ShapeItem box (RectF) by Bounds (MapBounds)
    * NEW: Now ShapeItem have a property Color so each shape on a layer can have its
      own color
    * NEW: Add a Max property to ShapeLayer
    * NEW: Begin the support for Web Map Server.
    * NEW: Grab Function return an image of the given bounds, with
      the given with and height, with the given margin arround. If
      the zoom is not defined then the better rendering zoom is used.
    * NEW: In MapView, there is two new function PixelToMapPointRel
      and MapPointToPixel that convert the mouse pos in MapPoint
      and the opposite.
    * NEW: In _MapTile, a new function SetCoockieFile allow to
      define the cookie file shared by all the httpsockets.
      It's usefull for using with some server that query a session.
    * NEW: In _MapTile, WMSProjection allow to define the server projection
    * NEW: In _MapTile, WMSARgs is a collection that allow to define the
      static args for the server (build the url)
      It miss the bbox order.
    * OPT: Improve the slide inertia

    [GB.MEDIA]
    * BUG: The MediaPlayer.Input property is actually read-only.
    * BUG: Remove a debugging message.
    * BUG: Do not crash while receiving a message associated with a GStreamer
      plugin unknown to Gambas.
    * BUG: Hide warnings when reading a GStreamer date/time value.
    * BUG: MediaPlayer.ConnectionSpeed will not crash anymore.
    * BUG: Correctly handle GStreamer dates with year but no month and no day.
    * NEW: Use GStreamer 1.0 instead of GStreamer 0.10 that is now deprecated.
    * NEW: gb.media now depends on gb.image.
    * NEW: MediaPlayer.Video.Image is a new property that returns a screenshot
      of the current video frame.
    * NEW: MediaPlayer.Balance is a new property that allows to configure the
      image brightness, contrast, hue, saturation... It actually returns a
      virtual array of balance "channels", each one having a minimum value, a
      maximum value, a current value and a name.
    * NEW: Support for properties that are enumerations. Use them like string
      properties that can only take some specific values.
    * NEW: GStreamer element not created explicitely are now managed through
      the MediaControl class.
    * NEW: MediaFilter is a new MediaControl that implements the 'capsfilter'
      element. It has a Filter property that understands the same syntax as the
      'gst-launch' GStreamer tool.
    * NEW: MediaContaienr.Children is a new virtual property that allows to
      enumerate its children elements.

    [GB.NCURSES]
    * BUG: Input: Comment all NoDelay related stuff out
    * BUG: Window: PrintCenter() handles empty lines now
    * BUG: The signature of Screen.Resize() allows arguments now
    * NEW: Pair: Allocate all pairs at initialisation and inhibit any change to
      them. Array accessors can be used to get the pair number for a given
      fore-/background combination
    * NEW: Window: Rewrite the Window class
    * NEW: Remove the Insert() method
    * NEW: Remove .Window.Attrs' Color property
    * NEW: BorderFrame is an optional argument to the constructor (default True)
      to specify if there shall be a border frame around the window setting the
      border apart from the content
    * NEW: Ask() returns the choice number to ease translation
    * NEW: Ask() supports a default choice in upper case
    * NEW: Make Read event work
    * NEW: Screen: Rewrite it mostly (is a static class again)
    * NEW: Remove Read event
    * NEW: Make Resize event work
    * NEW: Rename .Cols and .Lines to .Width resp. .Height
    * NEW: Declare gb.ncurses "Unfinished"
    * NEW: Allow to apply attributes and colours to a particular
      Window.Print{,Center}()
    * NEW: Change Window.Attributes into a bitmask (Integer)
    * NEW: .Window.Attrs isn't anymore. The Attr static class now provides
      OR-able constants to assign to Window.Attributes. .Char.Attrs, however,
      remains a virtual object to manage attributes on a per character basis
    * NEW: Provide Window.Pair to set the colour pair for all *subsequent*
      writes, as opposed to Foreground and Background which set the colours
      of all that is and will be
    * NEW: Omitting the optional 'Attr' and 'Pair' parameters to Window.Print()
      now indicates to use the window settings instead of no attributes and
      default colour
    * OPT: Tidy up sources
    * OPT: Window: Use werase() instead of wclear() to clear

    [GB.NET]
    * BUG: Socket connection is not blocking anymore, like it was in Gambas 2.
    * BUG: Fix DnsClient defaut event declaration.
    * BUG: Socket: Reinitialize the timeout each time the blocking mode
      changes.
    * BUG: SocketServer: Reinitialize the timeout each time the blocking mode
      changes.

    [GB.NET.CURL]
    * BUG: HttpClient: Allows null data when using the Post() or Put() method.
    * BUG: Don't crash if FtpClient.Exec() gets a void array as commands array.
    * BUG: Don't crash when FtpClient.Exec() gets an array with empty strings
    * BUG: The handle of a curl object is now -1 (i.e. it is not available).
    * BUG: The data received by a curl object is immediately available to the
      READ instruction.
    * BUG: Initialize the HTTP data buffers before filling them.
    * BUG: Don't try to raise the Read event again and again if there is no
      event handler for that event.
    * BUG: FtpClient and HttpClient Progress event work as expected now.
    * BUG: FtpClient: Define the file size explicitely when uploading.
    * BUG: Try to make gb.net.curl compile with old versions of libcurl.
    * NEW: The FtpClient or HttpClient Read event is now called as long as
      there is something to read *and* the event handler actually read at least
      one byte.
    * NEW: HttpClient.PostFile() is a new method that sends a POST request,
      taking the data from a file and not from a string.
    * NEW: New Progress event raised while the FtpClient and HttpClient are
      downloading or uploading some data.
    * NEW: FtpClient and HttpClient have four new read-only properties to get
      information on uploading and downloading progress: Downloaded, Uploaded,
    	TotalDownloaded and TotalUploaded.
    * NEW: Curl.SSL.VerifyPeer and Curl.SSL.VerifyHost are two new properties
      that allow to define the corresponding options of a CURL connection.
    * NEW: FtpClient.NoEPSV is a new property that prevents the use of EPSV. In
      other words, the FtpClient will always use PASV.

    [GB.NET.POP3]
    * NEW: Update czech translation.
    * NEW: Pop3Client has a new Remove() method to delete a message from its
      index. Pop3Client.Remove(n) is just a synonymous for
      Pop3Client[n].Delete.

    [GB.NET.SMTP]
    * BUG: Don't send an extra blank line in the first part.
    * BUG: Fix a memory leak when specifying the mimetype charset.
    * BUG: Quote the space character at the beginning of a line when sending
      quoted-printable data.
    * NEW: SmtpClient.Add() now uses a void name if its third argument is
      specified and is a void string.
    * NEW: SmtpClient.Body is a new property that allows to define the text
      body of the mail. That body is sent as the first part, with 'text/plain'
      datatype and UTF-8 charset.

    [GB.OPENAL]
    * NEW: New component for the OpenAL 3D audio library.

    [GB.OPENGL]
    * NEW: Added some new constants.
    * BUG: Fix a possible crash in GL.GenTextures(). I guess that bug will have
      to be fixed in other equivalent routines.

    [GB.OPENGL.SGE]
    * NEW: Experimental component with simple game engine based on MD2 format.

    [GB.OPENSSL]
    * NEW: New component to wrap cryptographic functions of libcrypto from the
      OpenSSL project.

    [GB.OPTION]
    * NEW: This component is now deprecated.

    [GB.PCRE]
    * BUG: Accurate error management and error messages.
    * BUG: Try to not use new libpcre error constants.
    * BUG: Make gb.pcre compile with old versions of libpcre.
    * BUG: Fix two cases of memory leaks with CREGEXP->code: (re)compilation of
      a (new) pattern and object destruction.
    * NEW: The number of matches is not limited to 66 anymore. The internal
      buffer is automatically increased as needed, so the number of matches
      should be limited by the memory only.
    * NEW: RegExp.Error is a new property that returns the last error code
      returned by the libpcre library.
    * NEW: Introduce the static RegExp.Check() method which works like the
      constructor but immediately returns a boolean whether the pattern could
      be applied to the subject - handy for one-line string validation.
    * NEW: Rename RegExp.Check as RegExp.Match. Factorize its code a little
      bit.
    * NEW: Create an API interface for allowing other components to use PCRE
      regular expressions.
    * NEW: RegExp.Replace() replace matched patterns by another string. The
      '&N' pattern in the replace string allows the N-th submatch to be
      inserted.
    * NEW: RegExp.Submatches property has been deprecated. Its properties now
      directly apply to the RegExp class: RegExp.Count and RegExp[...].

    [GB.QT.WEBKIT]
    * BUG: Creating a WebElement should not crash anymore.

    [GB.QT4]
    * BUG: Fix a possible crash in the previous TextArea modification.
    * BUG: The Window.Controls property does not return invalid controls
      anymore.
    * BUG: Paint.Image() works correctly with temporary images now.
    * BUG: Fix the naming of controls. The rule is the following: by default, a
      control takes the name of its event handler prefix. If it has no such
      prefix, it takes a unique name made from an incremental integer. But the
      automatic instance of Form is named from its class name.
    * BUG: ShowModal() now honors the initial window state (full screen,
      maximized...)
    * BUG: Sunken and raised borders are now drawn correctly with styles like
      CleanLooks that incorrectly take the current painter brush into account.
    * BUG: Take the Invert property into account in vertical arrangements.
    * BUG: Paint.RichText() now takes the vertical alignment into account
      correctly.
    * BUG: TrayIcon now uses the Gambas 3 logo as default icon.
    * BUG: Fix focus style routine for QtCurve.
    * BUG: Rewrite the Container.FindChild() method because the QT4 method
      excludes children outside of its geometry, and because that geometry may
      be not yet computed.
    * BUG: Make gb.qt4 compiles on ARM again.
    * BUG: Dialog.SaveFile() now uses the Dialog.Path property the same way as
      the gb.form.dialog component.
    * NEW: TextArea inner margin is now two pixels when there is a border, and
      zero pixels when there is no border.
    * NEW: TrayIcon now supports ARGB visuals - i.e. icons are really
      transparent now.
    * NEW: Key.Shift, Key.Alt, Key.Ctrl and Key.Meta now always returns the
      actual state of the corresponding modifier.
    * NEW: Key.ShiftKey, Key.AltKey, Key.CtrlKey and Key.MetaKey are four new
      constants that are returned by Key.Code when the corresponding key is
      pressed or released.
    * NEW: Implementation of the new PaintMatrix design.
    * NEW: Automatically define menu item shortcuts when a popup menu is shown.
    * NEW: Visible trayicons prevent the eventloop from stopping.
    * NEW: Printer.Default is a new property that returns the name of the
      default printer.
    * NEW: Printer.List is a new property that returns the list of the names of
      all available printers.

    [GB.QT4.EXT]
    * NEW: The Editor.LineOffset property has been renamed as
      Editor.LineNumberOffset.
    * NEW: Editor: jumping to the next procedure from the current one now goes
      to the end of the file.
    * NEW: If nothing is selected, SHIFT+TAB unindent the current line.

    [GB.QT4.OPENGL]
    * BUG: The OpenGL clear color is now taken into account when clearing the
      area before calling the Draw event handler.
    * BUG: Don't use GL_LIGHTING if it is not defined. It seems to be the case
      with OpenGL ES.

    [GB.REPORT]
    * NEW: Update czech translation.
    * NEW: Now ReportBrush have public method to make a ReportBrush more easily.
      Color, Image, LinearGradient, RadialGradient.

    [GB.V4L]
    * NEW: This component is now deprecated.

    [GB.WEB]
    * BUG: The Session timeout is correctly computed now.
    * BUG: Request.Post.Contents is correctly updated if the content type is
      'application/x-www-form-urlencoded'.
    * BUG: The Request.Fields property now can be read without reading the
      value of a request field first.
    * BUG: Once the session is saved, mark it as not modified.
    * NEW: WebPage.Parent property returns the parent webpage that includes the
      current webpage with the &lt;&lt;...>> markup.
    * NEW: When Request.Debug is set, only the first 4K of a POST request is
      stored in the Request.Contents property.
    * OPT: Use the gb.compress component to compress responses instead of
      running an external 'gzip' process.

    [GB.XML]
    * BUG: The XML parser does not complain anymore when encountering a PI.
    * BUG: Error positions now start from 1 instead of 0.
    * BUG: XmlTextNode now behaves correctly if a null string or zero length is
      given to its constructor.
    * BUG: The XmlNode.Serialize method does not crash anymore if nothing has
      been serialized.
    * BUG: The XmlNode.Serialize method now correctly handles the &quot; (")
      serialization.
    * BUG: The XmlNode.Serialize() method does not crashes anymore if a null
      string is given.
    * BUG: Forgot some files while uploading the last revision.
    * BUG: Fixed HTML5 Doctype handling.
    * BUG: The "Extra root element" error is not thrown on HTML documents
      anymore.
    * BUG: The GetChildrenByAttributeValue() method still checks the child
      nodes even if the given node is not an element.
    * BUG: The XmlExplorer.ReadFlags._get() method now returns a valid value if
      the flag ID is out of bounds.
    * BUG: Fixes a few memory leaks when freeing an XmlExplorer
    * BUG: Fixes a crash when creating Attributes without values
    * BUG: The XmlExplorer.Node property does not raises a Null Object error
      when reaching the end of the document.
    * BUG: XmlReader now raises an appropriate error if an lt sign is inside a
      tag.
    * BUG: XmlWriter now correctly normalizes attribute values
    * BUG: The XML DOM parser doesn't go beyond the string limits when looking
      for an XML prolog anymore.
    * NEW: Added a new gb.xml Component API.
    * NEW: The XMLElement.AppendFromText() method can now take the &1, &2 etc.
      Subst-like patterns.
    * NEW: All the methods based on the parser can choose from the XML and the
      HTML parser (if loaded), depending  on the document's (or parent
      document's) type.
    * NEW: Add a new XMLNode.Deserialize() method.
    * OPT: Check if an element is self-closed only once when getting its string
      representation.
    * OPT: Does not memchr() anymore to determine if the text representation of
      an element is self-closed, allowing to improve XmlNode.ToString() (and
      similar) performance.
    * OPT: The XmlNode.Serialize() now allocates a new string only if there are
      differences between the original one and the escaped one, allowing to
      improve XmlNode.ToString() (and similar) performance.
    * OPT: Renamed, reorganized and cleaned up the code.
    * OPT: Removed the ugly cross-including sources to communicate with the
      subcomponents, which now use the XML Component Interface.
    * OPT: Remove all the unneeded includes.
    * OPT: The XML serializer does not check if the elements are self-closed
      according to HTML specifications anymore. This is done only in the new
      HTML serializer.
    * OPT: The XmlExplorer.Open() method now directly calls the XmlDocument
      constructor instead of using an intermediate buffer.

    [GB.XML.HTML]
    * BUG: HtmlDocument now correctly sends its Doctype while getting its
      string representation.
    * BUG: The XmlElement.GetChildById() method is now correctly implemented.
    * BUG: Does not crash anymore if the id or class properties does not exist
      when reading them.
    * BUG: Loading an HTML document from a file while instanciating it
      correctly works now.
    * BUG: Using the class or id CSS selector in a filter on an element that
      doesn't have these does not crashes anymore.
    * BUG: The HTML tag closing is now case-unsensitive.
    * BUG: Forgot to Implement the HtmlDocument.GetElementsByClassName()
      method.
    * BUG: Fixed self-closed elements handling.
    * BUG: Searching elements by CSS filter works correctly now.
    * NEW: Added a new gb.xml.html Component API.
    * NEW: Added a new (X)HTML parser, more flexible than the XML one,
      and automatically used with the HtmlDocument class.
    * NEW: Generated HTML Documents now automatically use the new meta/charset
      element if the document is HTML5, and the old meta/content-type element
      only if the document is not HTML5.
    * NEW: A closing tag that doesn't close any open tag, is now silently
      ignored.
    * NEW: Malformed tags' contents are now silently ignored.

    [GB.XML.RPC]
    * BUG: The component should compile correctly again.
    * BUG: The XmlRPCClient.Method property's return value is now coherent.
    * BUG: Try to fix the RpcServer class.
    * BUG: Fixes of the miniServer class from issue 449.
    * BUG: Fixed that RpcClient could hang in sync mode, issue 450.
    * BUG: miniServer would give an out-of-bound if content-length is wrong.
    * NEW: HTTP/1.1 100-Continue support in miniServer (specially for
      OpenRemote).

    [GB.XML.XSLT]
    * NEW: Now the gb.xml Component API is used.

## Compatibility

All Gambas 3.x versions will be backward-compatible, i.e. a program written in Gambas 3.x version will be able to run unchanged with any Gambas 3.y version, provided that y > x.

But the contrary is false! a program written with a specific Gambas 3.x version will not run with an older version.

## Compilation and installation

Read the instructions there.

If everything was fine, type "gambas3" to run the development environment.

Enjoy it !

### See also

- Gambas 3.4.0