Gambas 3 RC4
Quoi de neuf:
Cette édition est la quatrième version de la version candidate de Gambas 3.
Plus de 60 bogues ont été réglés, et les nouvelles fonctionnalités suivantes ont été ajoutées :
-
Meilleure gestion de LXDE.
-
Une astuce pour permettre à l'interpréteur de surveiller les descripteurs des fichiers existants obtenu par appels à des fonctions externes.
-
Beaucoup d'optimisations de interpréteur , plus spécialement dans la classe String.
-
Prise en compte des connections aux sockets locaux dans le composant gb.db.mysql.
-
Nettoyage des composants suivants : gb.net.curl, gb.pdf, gb.v4l.
-
Traductions en Catalan, Espagnol et français mises à jour.
Comme d'habitude, merci de transmettre tout problème de compilation et de packaging sur la mailing-list!
Merci d'avance!
Journal des Changements
[DEVELOPMENT ENVIRONMENT]
* BUG: When hitting F11 to show the console, the console parent tab is now
automatically made visible.
* BUG: When converting a Gambas 2 project, the IDE now checks that the
project is not already opened somewhere else, and does not leave the
backup project locked if the conversion has succeeded.
* BUG: Fix desktop detection in the system information dialog.
* BUG: Recent projects are correctly filtered now the second time the 'open
project dialog' is opened.
* BUG: Ignore ValueBox.MaxLength property when converting a Gambas 2 form.
* BUG: Now just print a warning when creating the project directory icon is
impossible.
* BUG: When converting a Gambas 2 project, do not try to convert symbolic
links.
* BUG: Do not use Editor.ShowCursorPosition flag anymore.
* BUG: In the menu editor, pasting menus works correctly now.
* BUG: Selecting the movie of a MovieBox control only allows to select a
path located in the project.
* BUG: Selecting a virtual class in the help browser tree now correctly
shows its documentation page.
* BUG: TRY is taken into account now when converting a Gambas 2 OPEN
instruction.
* BUG: Don't crash if a library cannot be found.
* NEW: Catalan translation updated.
* NEW: Update Catalan tips.
* NEW: When inserting an existing module, class, form... the file view
automatically show hidden files so that the ".src" directory inside
Gambas projects is always visible.
* NEW: Languages are sorted in the help browser's language menu.
* NEW: The help browser now shows an animation while loading a page.
* NEW: Add support for LXDE terminal in option dialog.
* NEW: Display a big message in the library tab of the project property
dialog to tell that library must be stored in the same directory as the
project using them.
* NEW: Spanish translation updated.
* OPT: The contents of a project item is loaded from disk only if the
project item is visible.
[WIKI CGI SCRIPT]
* BUG: Fix the english TODO page showing not-documented symbols.
* BUG: Symbol syntax for array writing has been fixed.
* NEW: Do not use the cache anymore.
* NEW: Updated Catalan translation.
[EXAMPLES]
* BUG: Fix some form layout in the Database example.
* NEW: Updated WebBrowser Catalan translation.
* NEW: Updated TreeView Catalan translation.
* NEW: Update example project titles.
* NEW: AnalogWatch has been rewritten with the Paint class.
* NEW: Apply the gb.pdf changes to the PDFViewer example.
* NEW: Fix video examples according to the last changes in gb.v4l.
[INTERPRETER]
* BUG: Fix a type transitivity bug in Trim().
* BUG: DateAdd() does not raise an overflow error anymore when used on a
time value.
* BUG: Really fix the way Trim() handle null strings. Now there is no
memory leaks anymore.
* BUG: Fix a crash in stack backtrace management.
* BUG: Fix Byte[].FromString() method.
* BUG: Remove the deprecated Object.LastEventName property.
* BUG: Now incrementing or decrementing a boolean raises an error.
* BUG: Fix the declaration of SizeOf() syntax.
* BUG: When opening an existing file descriptor, correctly check the mode
compatibility.
* BUG: Fix String.Pos(), and String.InStr() with a third argument.
* BUG: Arrays of classes exported from a component or a library are now
automatically exported too.
* NEW: New syntax for GB.AddString() and GB.ExtendString() interpreter API.
Do not pass the string by reference anymore.
* NEW: GB.AddChar() is a new API for adding just a char to a string.
* NEW: Split System and Application class implementation in two different
source files.
* NEW: A trick to watch existing file descriptors: opening ".XX" in direct
mode, where "XX" is the file descritor value.
* NEW: When opening an existing file descriptor, check that it is opened
with a compatible mode. Otherwise raise an "Access forbidden" error.
* NEW: When opening an existing file descriptor, check its validity
immediately.
* NEW: Param.All is a new property that returns all extra arguments as an
array.
* OPT: Optimize some string functions by not using arguments passed by
reference.
* OPT: Integrate the "=" operator function into the main execution loop to
save one function call.
* OPT: Optimize string comparison functions on x86 and x64_64 architectures
by comparing eight bytes in one shot.
* OPT: Don't use glibc memcmp() to compare strings. My own routine is a
little faster according to valgrind.
* OPT: The UTF-8 String class routines Left(), Mid() and Right() have been
optimized. The positions of the first 256 characters of the last string
processed by the String class are cached.
* OPT: Some native methods can be called like any other native subroutines.
But that can be used only inside the interpreter, not in a component.
* OPT: The '&' operator is faster now when it takes two arguments only (the
most frequent case).
* OPT: A little optimization in string allocation.
* OPT: Optimize returning from a function.
* OPT: A little optimization in conditonal jump.
* OPT: Optimize case insensitive string comparison. Hash table code is
consequently a bit faster.
* OPT: Optimize the inequality comparison operators by putting them into
the gbx_exec_loop.c source file.
* OPT: Internal conversions between unicode and utf-8 have been optimized.
* OPT: String.UCase(), String.LCase() and String.Chr() have been optimized.
* OPT: Some optimizations in date formatting.
* OPT: Now() has been optimized when run multiple times during the same
second.
* OPT: Some little optimization in natural comparison routine.
[COMPILER]
* BUG: Fix compilation of function calls having more than 32 ByRef
arguments.
[GB.DB.FORM]
* BUG: DataBrowser is correctly updated now when its DataSource changes.
* NEW: Updated Catalan translation.
[GB.DB.MYSQL]
* NEW: If the connection host starts with a slash, then we supposed that we
are connecting to localhost, and that the host is actually the path of
the socket to use.
[GB.DB.NET]
* BUG: Fix ignored system call return values.
[GB.DB.SQLITE2]
* BUG: Fix ignored system call return values.
[GB.DB.SQLITE3]
* BUG: Fix ignored system call return values.
* BUG: Fix some error messages.
[GB.EVAL]
* BUG: Eval() correctly returns a value again.
[GB.FORM]
* BUG: FileView now ignores unreadable directories.
* BUG: FileView works correctly again.
* BUG: Fix the management of the ShowHidden property in FileView.
* BUG: Fix how FileView settings are saved and restored.
* BUG: Fix InputBox layout.
* NEW: DirView.Settings is a new property that allows the Settings class to
automatically save or restore settings through its Read and Write
methods.
* NEW: Add a Click and a Change event to the DateBox control. The Click
event is raised when the popup is closed.
[GB.FORM.MDI]
* BUG: Workspace with bottom orientation correctly shows its tabbar again.
* BUG: Fix the shortcut editor dialog.
* NEW: Action.ConfigureToolbar has been hidden as Action._ConfigureToolbar.
[GB.GTK]
* BUG: Fix initial window position.
* BUG: Do not crash if a null key is used for a stock picture. Just return
a null reference.
* NEW: Action.Register has been hidden as Action._Register.
* NEW: Setting the current GridView row to a valid value now automatically
set the current column to zero if there is no current column.
[GB.NET]
* NEW: Remove the Net.MaxPathLength constant.
[GB.NET.CURL]
* BUG: Disable error code constants for unsupported curl features.
* BUG: Disable pointless constants inherited from gb.net Net class.
* BUG: Add missing error opcodes in old curl libraries.
* BUG: Really fix compilation on old versions of libcurl.
* NEW: Update CURL error codes and add some missing constants.
* NEW: Curl.ErrorText is a new property that returns the error string
associated with the error code returned by the curl library. If
Curl.Status is positive, then a null string is returned.
* NEW: Disable other error code constants.
* NEW: A lot of code clean-up.
[GB.PDF]
* BUG: Fix the retrieveing of index titles.
* BUG: Some fixes in classes description.
* BUG: Remove a debugging message and fix the return value of the Find()
method.
* NEW: Add a PdfRect class systematically used for returning the
coordinates of page elements or search results.
[GB.QT4]
* BUG: GridView: Fix how the Change event is raised in single selection
mode.
* BUG: GridView: Fix automatic column resizing when the Resizable property
is TRUE.
* BUG: Fix TextArea.Foreground property.
* NEW: Action.Register has been hidden as Action._Register.
* NEW: Setting the current GridView row to a valid value now automatically
set the current column to zero if there is no current column.
[GB.QT4.EXT]
* BUG: Remove unused Editor.ShowWord() method and two unused flag
constants.
* BUG: Fix a crash in folding procedure, by strictly folding between
procedure limits, and by not trying to be clever with comments.
* NEW: Change the keyboard shortcuts for moving between lines having the
same indentation. Now they are CTRL+ALT+UP and CTRL+ALT+DOWN.
[GB.REPORT]
* NEW: Updated Catalan translation.
[GB.SDL]
* BUG: Disable Cursor handling, as it is buggy and incomplete. Only default
cursor is available.
[GB.SETTINGS]
* BUG: Settings.ReadWindow() and Settings.WriteWindow() are now private.
* NEW: Remove the useless Settings.Array() method.
[GB.V4L]
* BUG: Remove some unused local variables.
* BUG: Fix all Contrast, Hue, Bright, Color and Whiteness properties in
VideoDevice.
* BUG: Remove the VideoDevice.Features property.
[GB.WEB]
* BUG: WebPage class is not exported anymore.
* BUG: Support for posted requests whose charset is specified in the
"Content-Type" header.
Nécéssités
Pour compiler Gambas, vous devez installer sur votre système les bibliothèques suivantes :
Composant
|
Nécessite
|
Compilation
|
gcc g++ automake autoconf libtool > 2.0
|
Interpreteur
|
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
|
Toutes les bibliothèques GTK+ >= 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
|
Toutes les bibliothèques qt 4 >= 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
|
Et n’oubliez pas d’installer tous les paquets de développement relatifs!
Essayez de toujours utiliser une version récente de ces bibliothèques.
Pour compiler l’environnement de développement, vous devez compiler les composants suivants :
Vous devez posséder les droits en écriture sur
/tmp
, sinon Gambas ne fonctionnera pas.
Ce paquet a été réalisé avec les versions suivantes des outils GNU sur Ubuntu 10.10:
-
automake
1.11.1
-
autoconf
2.67
-
libtool
2.2.6b
Compilation & Installation
Vérifier l’installation
Tout d’abord, assurez vous que vous avez installé toutes les bibliothèques nécessaires, et tout spécialement, tous les paquets de développement.
N’oubliez pas de consulter la page
Compilation et installation. Vous y trouverez peut être des informations spécifiques à votre distribution.
Configuration du paquet Source
Quand vous serez certains que tout est installé, entrez dans une console les phrases magiques suivantes.
'$'
represente votre invite de shell, et '...'
les
messages affichés pendant la configuration et la compilation.
Tapez d’abord ceci pour créer les scripts de configuration.
Puis cela pour analyser le système en cours et configurer le paquetage :
Si une bibliothèque ou un paquet fait défaut, vous serez alors avertis que quelques composants sont désactivés.
Il y a des explications complémentaires spécifiques à 'configure' dans le fichier INSTALL
situé au sommet de l’arborescence du code source.
Je vous invite à les lire.
Compilation
Si tout est configuré sans erreur, lancez alors cette commande pour compiler le programme :
Installation
Si tout se compile sans erreur, lancez enfin cette commande pour tout installer :
Vous devez être root
(administrateur) pour installer Gambas sur votre système.
$ su -c "make install"
Password: <Entrez ici le mot de passe root>
...
ou
$ sudo make install
Password: <Entrez ici votre mot de passe>
...
Dépannage
Si vous faites plusieurs compilations successives, après avoir mis à jour les sources à partir du dépôt Subversion par exemple, et si quelque chose échoue pendant tout ce processus, vous pouvez tenter de "reconfigurer" les scripts de configuration en entrant la commande suivante :
Puis vous pouvez exécuter à nouveau
./configure -C
Si ça ne fonctionne pas, il me faut savoir exactement ce qui est arrivé.
Pour cela, tapez la commande suivante :
$ ( ./configure -C; make; make install ) > output.txt 2>&1
Et transmettez moi le fichier "output.txt" par mail, ainsi que tout autre détail qui vous paraît utile concernant votre machine et votre distribution.
Faire tourner Gambas
Si tout s’est bien passé, tapez "gambas3" pour lancer l’ environnement de développement.
Profitez en!
Voir aussi