doc • release • 2.99.6

Gambas 3 RC6

What's new

This release is the sixth release candidate of Gambas 3.

Thirty-one bugs were fixed, with some important ones inside the interpreter, and the gb.report component was updated.

As usual, please report any compilation and packaging problem on the mailing-list!

Thanks in advance.

ChangeLog

[CONFIGURATION]
* BUG: Fix many gcc 4.6.1 warnings.
* NEW: Update the depcomp script with a more recent version.

[DEVELOPMENT ENVIRONMENT]
* BUG: Fix arrangement of translation dialog.
* BUG: Colorize error tooltips differently in the source code editor, so
  that they are visible with all possible tooltip background colors.
* BUG: The form editor now embeds controls in a container that depens on
  the form family (a Panel for a Form, a ReportPanel for a Report).
* BUG: Try to handle when a project file has disappeared without being
  noticed by the IDE.
* BUG: Ignore labels in code editor's control structure automatic
  completion.
* NEW: Update of russian translation.

[WEB SITE MAKER]
* NEW: Update for Gambas 3 RC5.
* NEW: Tribute to Dennis Ritchie.

[EXAMPLES]
* NEW: Add a watermark to the report example

[INTERPRETER]
* BUG: Fix loop management when big negative values are used.
* BUG: Disable an incorrect FOR...NEXT optimization.
* BUG: Support for different callbacks on the same function call.
* BUG: Fix a useless and incorrect string initialization in the UTF-8 to
  UTF-16 internal conversion routine.
* BUG: Native functions that return a string must not use the
  GB.ReturnNull() API, but GB.ReturnVoidString() instead. Fix the
  String.LCase() and String.UCase() functions accordingly.
* BUG: Date() function takes one argument, or at least three arguments now.
* BUG: Fix negative year support in date management.
* BUG: Do not use GB.ReturnNull() when returning a void string anymore. Use
  the new GB.ReturnVoidString() API instead.
* BUG: Fix hash table resizing routine.
* BUG: Fix function calls for functions taking optional arguments and extra
  arguments.
* BUG: If() and the [...] operator now raise an error when they get a
  non-standard datatype, instead of crashing.

[GB.DB.POSTGRESQL]
* BUG: Fix primary index retrieving for tables inside a schema.

[GB.EVAL.HIGHLIGHT]
* BUG: Fix HTML highlighting routine.

[GB.FORM]
* BUG: Fix compilation of gb.form.
* BUG: Fix a possible crash in the IconView.Key property.

[GB.GTK]
* BUG: Container.Children.Clear() should work correctly now.
* BUG: Fix the MoveLast() method in TreeView, ListView and ColumnView
  controls.
* BUG: The ColumnView.Columns[].Width now returns the column width
  correctly.
* BUG: Workaround stupid GTK+ popup management.

[GB.NET]
* BUG: Fix DnsClient in asynchronous mode.

[GB.NET.CURL]
* BUG: FtpClient and HttpClient actually must be asynchronous by default.

[GB.QT4]
* BUG: Fix the simultaneous use of Window Border and Resizable properties.
* BUG: Fix initial focus handling of popups.

[GB.QT4.EXT]
* BUG: Do not crash when trying to fold a procedure inside a void file.

[GB.REPORT]
* BUG: Fix arrangement algorithm.
* NEW: Left and Top properties allow relative position for ignored
  elements.
* NEW: Fixed elements can be expanded.
* NEW: ReportPanel comes back. It has 4 ways of possible arrangements:
  None, Vertical, Horizontal, Fill. Only the vertical arrangement allows to
  generate new pages automatiquely.
* NEW: The Left and Top properties now allow free position on Arrange.None
  or when the controls have their Ignored property set. They support
  relative position too.
* NEW: The Ignore property now works correctly.
* NEW: Now an Ignored control can have a fixed position... Welcome to the
  watermark!
* NEW: Add an icon for the ReportPanel control.
* OPT: Some code clean up.
* OPT: Hide Key and Data properties, they are not usable at the moment.

Requirements

To compile Gambas, you must install the following libraries on your system :

Component

Requirements
Compilation gcc g++ automake autoconf libtool > 2.0
Interpreter libffi
gb.compress.bzlib2 libbz2.so
gb.compress.zlib libz.so
gb.cairo cairo
gb.crypt libcrypt.so
gb.db.mysql libmysqlclient.so, libz.so
gb.db.odbc libodbc.so
gb.db.postgresql libpq.so
gb.db.sqlite2 libsqlite.so
gb.db.sqlite3 libsqlite3.so
gb.desktop libXtst.so
gb.gtk All GTK+ libraries >= 2.10 librsvg2.so cairo
gb.image.io gdk-pixbuf
gb.image.imlib imlib
gb.net.curl libcurl.so
gb.opengl gb.opengl.glsl libGL.so, libGLEW.so
gb.opengl.glu libGLU.so
gb.pcre libpcre.so
gb.pdf libpoppler.so
gb.qt4 gb.qt4.ext gb.qt4.opengl gb.qt4.webkit All qt 4 libraries >= Qt 4.5
gb.sdl libSDL.so, libSDL_ttf.so, libGL.so, libGLEW.so
gb.sdl.sound libSDL.so, libSDL_mixer.so
gb.v4l libjpeg.so, libpng.so,Video4Linux >= 2.0
gb.xml libxml-2.0
gb.xml.xslt libxslt

And do not forget to install all related development packages!

Try to always use a recent version of these libraries.

In order to compile the development environment, you have to compile the following components:

You must have the right to write to /tmp, otherwise Gambas will not work.

This package was done with the following versions of GNU tools on Ubuntu 10.10:

  • automake 1.11.1

  • autoconf 2.67

  • libtool 2.2.6b

Compilation & Installation

Check installation

First, check that you installed all the needed libraries, and especially all the development packages.

Do not forget to look at the Compilation & Installation page. Maybe you will find important information specific to your distribution.

Source package configuration

When you are sure that everything is installed, type the following magic sentences in a shell.

'$' represents your shell prompt, and '...' are the messages printed during the configuration and compilation.

First, type that to create the configuration scripts.

$ ./reconf-all

Then type that to analyze the current system and configure the package:

$ ./configure -C
...

If a library or a development package is missing, then you will be warned that some components are disabled.

There are more 'configure' specific explanations in the INSTALL file located in the top-level source directory. I invite you to read them.

Compilation

If everything is configured without error, then run this command to compile the program:

$ make
...

Installation

If everything compiles without error, then enter this command to install everything:

You must be root to install Gambas on your system.

$ su -c "make install"
Password: <Type the root password here>
...

or

$ sudo make install
Password: <Type your password here>
...

Troubleshooting

If you did several successive compilations, after having updated the source from the subversion repository for example, and if something fails during all this process, you can try to "reconfigure" the configuration scripts by typing the following command:

$ ./reconf-all

Then you can run ./configure -C again

If it does not work, I need to know what happened exactly. To do so, type the following command :

$ ( ./configure -C; make; make install ) > output.txt 2>&1

And send me the file "output.txt" by mail, with every other detail about your computer and your distribution you find useful.

Running Gambas

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

Enjoy it !

See also