Gambas Documentation
Aperçu du Langage
À traduire
Code Snippets
Comment faire ...
Compilation et installation
Composants
Controls pictures
Derniers changements
Dépôt d'applications
Documentation de l'Environnement de développement
Documentation des développeurs
Documents
À propos de ma formule préférée
Captures d'écrans
Comportement interne de DrawingArea
Convention de Nommage des Variables
Conventions de nommage
Database Datatype Mapping
DBus et Gambas
Démarrer avec Gambas
Détails de l'architecture
Différences avec Visual Basic
Différences entre Shell et Exec
Distributions et systèmes d'exploitation
Drag & Drop
Gambas, c'est quoi ?
Introduction
Le modèle objet de Gambas
Le programme s'est arrêté de façon inattendue en levant le signal #11
Licence
LIENS RELATIFS à Gambas
Listes de diffusion et Forums
Livres
Localisation et Internationalisation
Network Programming
News
Notes de version
Gambas 2.23.0
Gambas 2.23.1
Gambas 2.24.0
Gambas 3.1.0
Gambas 3 RC1
Gambas 3 RC2
Gambas 3 RC3
Gambas 3 RC4
Gambas 3 RC5
Gambas 3 RC6
ODBC Component Documentation
Pages serveur Gambas
Passer Un Argument Par Référence
PCRE Pattern Syntax
Portage de Gambas 2 en Gambas 3
Questions fréquemment posées (FAQ)
Rich Text Syntax
Signaler un problème, un bogue ou un plantage
Tests de performance (benchmarks)
Window Activation & Deactivation
Indenter
Index de tous les Documents
Index du langage
Lexique
LISEZ-MOI
Manuel du wiki
Messages d'erreur
Tutoriels
Wiki License

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.

$ ./reconf-all

Puis cela pour analyser le système en cours et configurer le paquetage :

$ ./configure -C
...

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 :

$ make
...

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 :

$ ./reconf-all

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