Gambas 3 Changelog

New in version 3.6.2

November 17th, 2014
  • DEVELOPMENT ENVIRONMENT:
  • NEW: Improve Cygwin System Information awareness.
  • BUG: Control properties containing a database table name can be modified again.
  • GB.DATA:
  • BUG: Don't use forward typedefs as some compilers don't seem to understand them.
  • BUG: Silence false positive compiler warnings.
  • GB.DB.MYSQL:
  • BUG: Try to reconnect to a lost database server when listing existing databases and the fields of a table.
  • GB.FORM:
  • NEW: The SliderBox is now in the same change group as Slider.
  • GB.GTK:
  • BUG: Fix an uninitialized variable.
  • BUG: Fix warning with Slider or SpinBox when setting a minimum value equal to the maximum value, or the contrary.
  • GB.GTK3:
  • BUG: Fix an uninitialized variable.
  • BUG: Fix warning with Slider or SpinBox when setting a minimum value equal to the maximum value, or the contrary.
  • BUG: Paint.Reset() now works as expected on non-cached DrawingArea.
  • GB.GUI.AREA:
  • BUG: TreeView renaming works now if the renamed item is not visible.
  • GB.MEDIA.FORM:
  • BUG: MediaView: The Control property has been renamed as ShowControl.
  • GB.QT4:
  • BUG: The Menu.Checked property now returns the correct value for non-radio menu items.
  • BUG: TextBox: Workaround a Qt4 weird behaviour that sometimes lose the selection. Same workaround for editable ComboBox.
  • BUG: Fix a compilation warning.

New in version 3.5.2 (January 22nd, 2014)

  • DEVELOPMENT ENVIRONMENT:
  • BUG: Report editor: Now the report borders are shown correctly in the editor.
  • BUG: The property help WebView now uses the same default font size (80%) than the help window.
  • BUG: Fix HTML compression so that everything is not put on the same line.
  • BUG: Subversion: Support for Subversion >= 1.8.
  • BUG: Subversion: Automatically remove the ".lang/.pot" file from version control, as it is a generated file, and as its conflicts cannot be resolved.
  • BUG: Subversion: Fix the Subversion conflict management.
  • BUG: Subversion: Raise the svn commands timeout to 30 seconds: some commits can take a long time.
  • BUG: File property dialog: The 'Revert' button is correctly hidden now.
  • BUG: Menu editor: The last menu can be move up now.
  • BUG: Menu editor: Fix the highlight of the current menu.
  • BUG: Menu editor: Fix the menu search box.
  • BUG: Project tree: The popup menu should be accurate with extern files now.
  • BUG: Project tree: Fix popup menu when clicking on the "Data" project tree folder.
  • BUG: Form editor: Correctly hide and show toolbar entries according to the current state (debugging, read-only...).
  • BUG: Form editor: Formatting toolbar buttons act on the entire form if nothing is selected now.
  • BUG: Don't set the focus to the console if it is hidden.
  • BUG: Packager: Fix *.deb package description.
  • BUG: Image editor: Don't left the editor in an inconsistent state after a paste has been done.
  • INTERPRETER:
  • BUG: String.InStr() does not crash anymore if the string pattern is void. It returns 0 instead (like InStr).
  • BUG: Don't crash if an unknown option is passed with the '-g' option.
  • BUG: Fix the LIKE operator whth "{...}" patterns.
  • BUG: Fix a crash when using CStr() on an object having a conversion function.
  • BUG: Be virtual even the first time when calling the [] operator.
  • COMPILER:
  • BUG: Fix compilation of NOT LIKE, NOT BEGINS and NOT ENDS operators when they are not alone in an expression.
  • GB.DB:
  • BUG: Don't crash anymore when releasing database objects.
  • BUG: The automatic Blob to String conversion does not lead to a crash anymore.
  • GB.DB.FORM:
  • BUG: DataCheckBox correctly defines its internal TriState property depending on whether its database field is mandatory or not.
  • BUG: Editable DataBrowser and DataView do not create a spurious extra line anymore.
  • GB.DB.SQLITE3:
  • BUG: Fix specific implementation of sqlite3_exec. Prevent some crashes and make database creation work again (among other things).
  • BUG: Correctly handle requests returning only one table name inside field names.
  • GB.DRAW:
  • BUG: Correctly initialize the Paint class when calling Paint.Begin() on an already opened drawing device.
  • GB.FORM:
  • BUG: FileProperties: Do not crash anymore if the directory size calculation task returns rubbish.
  • BUG: FileProperties: The icon of the FileProperties control now correctly adapts its size.
  • BUG: FileChooser: The Paths property now returns the selected path in single mode and not a void array anymore.
  • GB.FORM.DIALOG:
  • BUG: Dialog.Open() in multiple mode works now. [GB.FORM.MDI]
  • BUG: Raise an error if the Toolbar.Configure() method is called whereas the toolbar Key property is not defined.
  • BUG: Toolbar configuration dialog: the toolbar elements with a short text are correctly displayed now.
  • GB.GSL:
  • BUG: Polynomial: Create a new void polymonial does not lead to a crash anymore.
  • GB.GTK:
  • BUG: The RTL layout is correctly initialized at startup.
  • BUG: Embedder.Embed() does not take two arguments.
  • BUG: Imbrication of popup menu click events works correctly now and does not crash anymore.
  • BUG: The Window.Picture property now should work correctly.
  • BUG: Correctly update background and foreground of multi-container controls.
  • BUG: Font.Grade maximum value is now +24, as expected by the font selector.
  • BUG: Fix memory leak when loading images without alpha channel.
  • BUG: GlArea control now can take the focus.
  • GB.GUI.BASE:
  • BUG: Clicking on GridView/ColumnView headers now should work correctly again.
  • GB.NET.POP3:
  • BUG: Error messages must not be translatable.
  • GB.OPENGL:
  • BUG: GL.GetString() now raises an error if the glGetString() function fails.
  • GB.OPENGL.SGE:
  • BUG: Don't crash if a model has only one frame.
  • GB.PCRE:
  • BUG: RegExp.Replace(): Explicitly use 0 if optional arguments are missing
  • BUG: Don't call GB.ReturnNewString() if a match returns a null string.
  • BUG: Use GB.ReturnVoidString() instead of GB.ReturnNull().
  • GB.QT4:
  • BUG: Imbrication of popup menu click events works correctly now and does not crash anymore.
  • BUG: Correctly update background and foreground of multi-container controls.
  • BUG: Font.Grade maximum value is now +24, as expected by the font selector.
  • BUG: Foreground and background colors now work as expected on ComboBox and SpinBox controls.
  • GB.SDL:
  • BUG: Restore fill pattern to solid after a Draw.Rect() or a Draw.Ellipse(), otherwise Draw.Image() draws nothing!
  • GB.XML:
  • BUG: XMLElement.AppendFromText() now behaves correctly if no extra arguments are given.
  • BUG: XMLElement.FromText() now correctly catches parsing exceptions.
  • BUG: The Boolean parameter 'Indent' of XMLDocument.ToString() is now correctly interpreted.
  • BUG: Serializing a comment that is a direct child of a document with indentation enabled does not crash anymore.
  • BUG: The Document.All property is now correctly declared as an XMLNode[]
  • GB.XML.HTML:
  • BUG: Serializing a comment that is a direct child of a document with indentation enabled does not crash anymore.
  • GB.XML.RPC:
  • BUG: miniServer would give an out-of-bound with multiple parallel requests.
  • BUG: miniServer could crash on an invalid request.
  • GB.WEB:
  • BUG: CGI.Error() now correctly sends an UTF-8 HTML page.

New in version 3.5.1 (November 30th, 2013)

  • 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.

New in version 3.5.0 (October 30th, 2013)

  • The IDE has a new advanced image editor.
  • The IDE can debug web applications, thanks to the embedded HTTP server component gb.httpd.
  • ARM support has been fixed.
  • A new MATCH instruction that matches regular expressions by implicitly using the gb.pcre component.
  • Global error handler support.
  • 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.
  • gb.gmp is a new component based on the Gnu Multiple Precision Arithmetic Library that implements big integers and big rational numbers.
  • 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.

New in version 3.0 (January 4th, 2012)

  • The special mathematical functions of glibc are correctly detected and used now.
  • Floating point numbers should be printed in a better way.
  • French, Czech and Catalan translations were updated.
  • And two security holes were closed:
  • String hashing algorithm has been randomized. See that document for the details.
  • In the IDE, you cannot get the project version by running a program (what a stupid idea!). Now you get it from a text file located in a parent directory of the project.

New in version 2.23.1 (May 27th, 2011)

  • [DEVELOPMENT ENVIRONMENT]:
  • NEW: Support for Lithuanian language.
  • NEW: Swedish translation updated.
  • [INTERPRETER]:
  • BUG: The GB.ToZeroString() API now correctly handles zero length strings.
  • [ARCHIVER]:
  • BUG: Ignore "core", "vgcore.*" and "callgrind.*" files when making an executable.
  • [GB.V4L]:
  • BUG: Make gb.v4l compile with recent kernels.

New in version 2.23.0 (April 5th, 2011)

  • A new Romanian translation was added and the Czech and Swedish translations were updated.
  • A memory leak that lead to a crash in enumeration management was fixed.
  • Many bugs in TextBox, TextArea, SpinBox, Menu, GridView, ListBox, and ComboBox controls in the GTK+ component were fixed.
  • The Control.MoveScaled method has been fixed.
  • Table existence is correctly checked in the ODBC component.
  • SQLite integer primary keys are better detected.

New in version 2.22.0 (November 24th, 2010)

  • Configuration:
  • BUG: Detect x86_64 architecture better.
  • BUG: Compile correctly on Ubuntu 10.10.
  • NEW: Add AC_PROG_LIBTOOL in root configure.ac file.
  • NEW: Check for missing mathematical function directly instead of relying on operating system detection.
  • NEW: Remove useless install-sh links.
  • Development Environment:
  • BUG: A "=" character was missing in the menu file generated by the Debian/Ubuntu packager.
  • NEW: Don't save the Url in the project file if it is equal to the default URL http://www.endoftheinternet.com
  • NEW: Greek translation updated by Demosthenes Koptsis.
  • Database Manager:
  • NEW: Greek translation updated by Demosthenes Koptsis.
  • Interpreter
  • BUG: Extern functions now can handle up to 16 pointer or string arguments.
  • BUG: Do not use stack contents as return value.
  • BUG: The return value of extern functions returning a 'char *' is now correctly converted to a constant String.
  • BUG: The == operator works correctly now.
  • BUG: Fix two incorrect optional function declarations.
  • Compiler:
  • BUG: Remove some useless tests.
  • Archiver:
  • BUG: Files having the ".gambas" extension are now excluded from executable archives. That prevents a possible endless growing generated file.
  • Development Enviroment:
  • NEW: Spanish translation updated.
  • GB.DB.POSTGRESQL:
  • BUG: Correctly ignore fields deleted with the "DROP COLUMN" command.
  • GB.FORM:
  • BUG: Make arrow keys navigation work better with read-only cells in TableView control.
  • NEW: DateChooser uses Sunday as first day of the week when the current language is 'C' or 'en_US'.
  • GB.GTK:
  • BUG: Fix duplicate Click event in CheckBox control.
  • BUG: Correctly handle tristate Checkbox controls.
  • BUG: Fix the behaviour of ComboBox when setting the List and the ReadOnly property, and the order used for saving ComboBox properties in the *.form file.
  • BUG: Popup menus now work correctly on tray icons in all cases.
  • BUG: Make TabStrip behave like in gb.qt when inserting a new tab.
  • BUG: TabStrip now uses its own window, so that it is not partially visible when covering other widgets.
  • BUG: ColumnView, TreeView and ListView are correctly refreshed when an item icon is changed.
  • BUG: Read-only ComboBox controls do not lost focus events anymore.
  • BUG: Correctly free menu tags.
  • BUG: Fix possible crashes in three utility routines.
  • BUG: Fix a crash in GridView.Rows[].Text property.
  • BUG: Fix a infinite recursion in drag and drop management when draging TextBox or TextArea contents inside the same application.
  • BUG: Reparenting a top-level window does not show hidden children controls anymore.
  • BUG: Rich-text string management has been fixed. The ampersand character, the "&", ">" and "

New in version 2.16.0 (September 10th, 2009)

  • This release compiles with libtool 2.x on recent Ubuntu versions.
  • Ctrl+PageUp and Ctrl+PageDown now switch between tabs in the IDE.
  • Shortcuts are correctly saved in all cases in the IDE menu editor.
  • The READ instruction has been fixed on 64-bit systems.
  • gb.pdf now compiles with recent Poppler versions.

New in version 2.13.1 (May 27th, 2009)

  • Configuration
  • NEW: Switch to version 2.13.1.
  • Interpreter
  • NEW: Some forgotten FreeBSD patch.
  • GB.DB.SQLITE2
  • BUG: Fix building with gcc 4.4.0.
  • GB.GTK
  • BUG: Do not use gtk_adjustment_get_step_increment() if the GTK+ version is not at least 2.14.
  • GB.NET.CURL
  • BUG: A asynchronous transfer that ends does not stop the other ones anymore.

New in version 2.13.0 (May 15th, 2009)

  • Configuration:
  • BUG: FreeBSD patches.
  • Development Environment:
  • BUG: The right column of the property sheet is not too wide anymore.
  • NEW: Support for Hindi language.
  • Interpreter:
  • BUG: The Atnh() function has been fixed.
  • BUG: Format$() now checks its second argument correctly when it is an integer.
  • BUG: FreeBSD patches.
  • Compiler:
  • BUG: Move some debugging breakpoint instructions so that the debugger breaks at the right line when there is an error during an IF or a CASE instruction.
  • NEW: Support for FreeBSD getopt_long().
  • Archiver:
  • NEW: Support for FreeBSD getopt_long().
  • Informer:
  • NEW: Support for FreeBSD getopt_long().
  • Scripter:
  • BUG: The markups are now taken into account everywhere inside a server page.
  • GB.COMPRESS.ZLIB:
  • BUG: Do not include the Linux specific header anymore.
  • GB.DB.ODBC:
  • BUG: Removed some compilation warnings.
  • GB.DB.SQLITE3:
  • BUG: Fix building with gcc 4.4.0
  • BUG: Removed a compilation warning.
  • GB.DRAW:
  • BUG: Some properties of the Draw class didn't correctly check that a drawing device was opened.
  • GB.EVAL:
  • BUG: Removed some compilation warnings.
  • GB.FORM:
  • BUG: TableView now handle the Return/Enter key by raising the Click event instead of automatically editing the cell, so that non-editable cells are not edited by mistake.
  • BUG: The same fix was applied to the way TableView handles arrow keys.
  • BUG: The TableView editor now has the same font as the master TableView.
  • GB.GTK:
  • BUG: Fix Draw.Picture() and Draw.Image() on transparent pictures.
  • BUG: Correctly initialize the foreground and background colors at Draw.Begin().
  • BUG: ComboBox now raises focus events.
  • BUG: DrawingArea.Clear() does not erase the border anymore if the DrawingArea is cached.
  • BUG: Hiding a row or a column does not prevent the mouse wheel to work anymore in the GridView control.
  • BUG: Forgot to remove a debugging message.
  • BUG: Newly opened windows are now correctly shown at the specified position.
  • BUG: Removed a compilation warning.
  • GB.QT:
  • BUG: Borderless modal windows do not show any border anymore with Metacity.
  • BUG: Fix Draw.Picture() and Draw.Image() on transparent pictures.
  • BUG: Compound controls like ComboBox should not raise spurious focus events anymore.
  • BUG: Fix a possible crash in GridView repaint.

New in version 2.12.0 (March 21st, 2009)

  • Configuration:
  • NEW: Switch to 2.12 version.
  • Development Environment:
  • BUG: Gambas version should be always displayed correctly in the about and welcome dialogs now.
  • NEW: Japanese translation updated.
  • NEW: Support for Malayalam language.
  • NEW: The toolbox now remembers if it is opened or closed.
  • Interpreter:
  • BUG: Fix two possible bugs in 64 bits support.
  • BUG: MOD works again with Long values.
  • BUG: Array.Clear() now does not crash anymore on multi-dimensional arrays. It just voids the array contents. Array.Clear() behaviour on single dimensional arrays did not change: it removes all elements from the array.
  • GB.DB.SQLITE2:
  • BUG: Fix a compilation warning.
  • GB.GTK:
  • BUG: Fix the container arrangement and the ClientX / ClientY properties.
  • BUG: GridView Row and Column properties can be set independently.
  • BUG: The TabStrip.Font property works as expected.
  • BUG: Image.Draw() now works correctly if X or Y are negative.
  • BUG: TextLabel.Adjust() now works as expected.
  • BUG: Dialog.SaveFile() now correctly initializes the file name in the file chooser dialog.
  • BUG: Disabled controls correctly honor the Background property.
  • BUG: The Foreground and Background properties of TabStrip, CheckBox, RadioButton and other Button controls work as expected.
  • BUG: Setting the Font property does not create a memory leak anymore.
  • BUG: The menu bar of a reparented window does not disappear anymore.
  • BUG: Fix the ComboBox.Add() method slowness.
  • BUG: Fix the corruption of the Text property in editable combo-boxes.
  • BUG: Fix again the Font property for non-control classes.
  • GB.NET:
  • BUG: UdpSocket.TargetPort returns the accurate value now.
  • BUG: Too many connections on a ServerSocket does not take 100% CPU anymore.
  • GB.PDF:
  • BUG: PdfDocument.HasIndex does not return TRUE anymore when there is an index whose length is null.
  • BUG: Fix PdfIndex.HasChildren that sometimes returned TRUE when there was no children.
  • BUG: Fix PdfIndex.MoveChild() accordingly.
  • GB.QT:
  • BUG: Borderless windows do not have a border anymore with Metacity.
  • BUG: The Window.Mask property works correctly now.
  • BUG: Draw.Image() and Draw.Picture() now work correctly on transparent pictures.
  • BUG: The minimum size of modal dialog is correctly set again.
  • GB.XML.RPC:
  • BUG: RpcStruct.Value() should work as expected now.
  • BUG: Event management was fixed, thanks to Ron.
  • BUG: RcpArray.Copy() now returns an RpcArray object.

New in version 2.11.0 (January 29th, 2009)

  • Development Environment:
  • BUG: A warning is displayed now when a component project has no exported class.
  • BUG: Instead of displaying an error, an unreadable *.component file now just displays a warning.
  • BUG: Print warnings on the standard error output now.
  • BUG: The find balloon message is always displayed in the accurate field now.
  • BUG: The packager now handle spaces in project directory path correctly when creating an autotool package.
  • BUG: A badly named environmental variable does not freeze the IDE anymore.
  • NEW: In the project property dialog, split the component list between standard components and user components.
  • Interpreter:
  • BUG: The _compare special method now is not called anymore if one of the compared object references is null.
  • GB.DEBUG:
  • NEW: Do not block anymore when opening the debug fifo for writing. Try a few times during 0.1 second.
  • GB.DRAW:
  • BUG: Correctly initialize color properties of the Draw class at Draw.Begin().
  • GB.FORM:
  • BUG: Workaround the ballon corner drawing bugs.
  • GB.GTK:
  • BUG: Image.Save() and Picture.Save() now understand the "~" shortcut in path names.
  • BUG: Fix the initialization of editable combo-box when its List property is set.
  • BUG: Remove a static variable not used anymore.
  • GB.NET:
  • BUG: Serial port devices are now watched for reading, not for writing. So the callback will not be called permanently.
  • GB.QT:
  • BUG: Do not loop indefinitely when arranging the contents of a ScrollView.
  • BUG: The last GridView column should be correctly stretched when its width is explicitely set now.

New in version 2.9.0 (October 31st, 2008)

  • The code editor can now use any font.
  • The IDE creates packages inside their own directories.
  • A "paste special" feature has been implemented.
  • Gambas Server Pages allows you to create Web pages dynamically.
  • Networking components were fixed.

New in version 2.8.2 (August 30th, 2008)

  • NEW: Small changes in the project property dialog layout.
  • BUG: When opening a project, the packager information is correctly reset.
  • NEW: Simplified chinese translation updated.
  • NEW: Simplified chinese translation updated.
  • BUG: Fix the bits manipulation function, thanks to Liang Wei.
  • NEW: The interpreter is now linked with the pthread library on Linux systems.