Gambas Documentation - /doc/release/3.5.1

# Gambas 3.5.1

- What's new

- ChangeLog

- Compilation and installation

## What's new

This releases mainly tries to fix the packager, but there are some bug fixes too, and new features related to that bug fixes.

## ChangeLog

    [DEVELOPMENT ENVIRONMENT]
    * BUG: Fix project browser cursor management when the focus is on the
      filter field.
    * BUG: Fix form editor control highlighting when the hovered control is a
      ScrollView.
    * BUG: Packager now use the current Gambas major & minor version as minimum
      version for component dependencies.
    * BUG: Follow Ubuntu package naming convention.
    * BUG: Some fixes in GUI metapackage creation for Debian/Ubuntu.
    * BUG: Automatic completion of identifiers now correctly shows the known
      classes.
    * BUG: Correctly display optional values in signatures.
    * NEW: The system information dialog now displays the Gambas version.
    * NEW: The 'gb.desktop.gnome' component is now visible and explicitely
      checkable.
    * NEW: If a project uses gb.gui, then the packager will create two extra
      packages: one for Qt4 support, the other for GTK+ support.
    * NEW: Support for package version number.
    * NEW: Update Gambas font.
    * NEW: Display help for third-party components.
    * NEW: Add Afrikaans to the language list.

    [INTERPRETER]
    * BUG: Don't detach a process that returns an error otherwise the Kill
      event is lost.
    * BUG: Correctly check that there is a current enumeration if the Enum
      class methods and properties.
    * BUG: The [] operator is now correctly overridden in classes inheriting an
      array class or Collection.
    * BUG: VarPtr() correctly works on method arguments.
    * BUG: Fix the CLOSE instruction when dealing with a string stream.
    * BUG: Prevent crashes at exit by releasing array classes first.
    * NEW: Support for the GB_PATH environment variable, that gives the Gambas
      interpreter path if set.
    * NEW: Enum.Stopped is a new property that returns if the current
      enumeration  has been stopped.
    * NEW: OPEN STRING is a new instruction that allows to use a string as a
      stream. Writing to it appends the written data to the end of the string
      at the moment.
    * NEW: Closing a string stream returns the data written to the stream as a
      new string.
    * NEW: Make WRITE behave the same way as READ on a memory stream. I.e. it
      writes a null-terminated "C" string, as READ was reading a null-terminated
      "C" string.

    [COMPILER]
    * NEW: New OPEN STRING instruction.
    * NEW: OPEN MEMORY and OPEN PIPE are synonymous of the MEMORY and PIPE
      instructions alone.

    [GB.DESKTOP.GNOME]
    * NEW: Make this component visible to the IDE.

    [GB.EVAL]
    * NEW: Highlight the new OPEN STRING instruction correctly.

    [GB.FORM]
    * BUG: DirChooser.ShowPreview used FDirChooser.GetPreview which does not
      exist. The correct symbol is FDirChooser.GetShowPreview.
    * NEW: FileChooser now has support for uncompressing 'zip' files, provided
      that the 'zip' utility is installed on the system.

    [GB.GUI]
    * NEW: If one GUI component fails to load, try the other one.
    * NEW: Abort if no GUI component is found.
    * NEW: Define the GB_GUI environment variable with the GUI component
      actually loaded.

    [GB.GUI.OPENGL]
    * NEW: Always load the OpenGL support component associated with what lies
      in the GB_GUI environment variable.

    [GB.SDL]
    * NEW: Rename the default SDL font file as "_default.ttf" to prevent
      packaging conflicts.
    * NEW: Use the Gambas monospace font as SDL default font now.

    [GB.WEB]
    * BUG: JSON.Encode() correctly encodes ASCII control characters.
    * NEW: JSON.Decode() now takes an extra optional argument indicating that
      keys having a null value are taken into account inside objects.
    * NEW: JSONCollection is a new class that represents a JSON object whose
      some keys are associated with a 'null' value.

## Compilation and installation

Read the instructions there.

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

Enjoy it !

### See also

- Gambas 3.5.0