LE LOGICIEL LIBERE

La lettre des freeware scientifiques, techniques et industriels de Free&ALter Soft
N° 3 - Mars 1998
LA LIBERTE N'A PAS DE PRIX
Editorial-Pub  | gcc 2.8.0 - 2.8.1  |  ddd pour vous aider à déboguer Interview de Philippe Bergheaud (suite)   | Logiciels et versions  Abonnez

EDITORIAL - PUB

Au précédent numéro, je vous ai décrit les 2 premiers services que nous mettons à votre disposition et qui concernent l'installation et la mise à jour de 70 packages (de nouveaux s'ajoutent tous les jours).

Le troisième volet est un volet de support. Nous assurons le support téléphonique de tous les logiciels que nous installons. Ce support concerne aussi bien l'utilisation que les différentes bugs du produit. Dans le cadre de ce support, nous nous occupons aussi de rechercher des produits freeware sur demande de nos clients.

Le quatrième volet de notre offre est l'information . Le foisonnement de l'offre freeware est parfois un inconvénient. Il est difficile de savoir ce qui est intéressant et utile au milieu de tout ce qui existe. Nous tentons de vous informer avec cette lettre de l'actualité du freeware. De plus tous les 3 mois nous animons une conférence au 4 coins de la France concernant un thème lié au freeware (prochaine conférence - Freeware et programmation). Nous espérons par ces moyens inciter des utilisateurs à s'initier à de nouveaux outils et répondre à certains de leurs besoins.

Le cinquième volet de notre offre est Ptolemy . Ptolemy est une CAO de traitement du signal ou de l'image. Il permet de décrire graphiquement sous forme de schéma un algorithme de traitement du signal ou de l'image.

Ptolemy est un logiciel complexe développé à l'université de Berkeley qui se compare à des logiciels commerciaux coûtant plusieurs centaines de kF. Nous avons une expertise forte sur Ptolemy et proposons un service d'installation, de formation et de support spécifique. Nous avons aussi légèrement modifié Ptolemy de manière à faciliter le débug de blocs programmés par un utilisateur. 

Modulation d'amplitude sous Ptolemy
Figure 1 : un modulateur d'amplitude décrit graphiquement avec Ptolemy.

Le sixième volet de notre offre est INTRANEWS . Nous utilisons en interne de manière très intensive les forums de discussion. ils nous permettent de rester informer sur l'avancement de logiciels freeware ou sur l'état de l'art de différents sujets nous intéressant (les FPGA, par exemple). Il arrive que l'accès aux forums de discussion ne soit pas possible simplement à l'intérieur d'une entreprise car l'ensemble des postes n'est pas relié à internet. Nous proposons donc de fournir chaque mois un CD où les groupes de discussion intéressant une entreprise sont stockés. Les messages sont transformés en html, les index sont créés et un moteur de recherche est disponible.

Une procédure automatisée permet d'installer les messages sur votre intranet. Nous vendons Intranews de 2 manières ou en vous fournissant les programmes nécessaires pour votre intranet et un cdrom chaque mois, ou en installant l'ensemble de la chaîne de création et de consultation chez vous. Ceci peut vous permettre d'intégrer vos propres newsgroups dans cet environnement convivial.

Enfin, nous proposons d'aider à la mise en oeuvre de serveurs sous Linux et offrons de la régie tout particulièrement pour le développement d'intranet, de site internet, d'interfaces graphiques et développement en Tcl/Tk.

Arnaud Laprévote (laprevoa@easynet.fr)

Gérant de Free&ALter Soft 

gcc 2.8.0 - 2.8.1

gcc est un compilateur C et C++ freeware. Il fonctionne sur une multitude de processeurs et de systèmes d'exploitation. C'est certainement le produit freeware le plus installé et utilisé de par le monde. La version 2.7.2 est sortie en Novembre 1995. La version 2.8 était attendue avec impatience. Elle est apparue début janvier 98. Début mars 98, elle a été suivie par une version 2.8.1.

La version 2.8.0 a été particulièrement améliorée en ce qui concerne le support du C++ (traitement des exceptions en particulier).

Nous n'avons malheureusement pas encore eu le temps de compiler le gcc 2.8. Il semble qu'il y ait peu de problèmes avec des processeurs Sparc quelque soit l'OS, mais de nombreux problèmes, et ce même avec des programmes très simples sur les processeurs Intel. Le programme suivant est extrait d'un message au newsgroup gcc.bug de M.Schimschak

----------------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main(void)
{
        double c=0;
        double d=0;
        double e[2];
 
        e[0] = 1.0;
        e[1] = 1.0;
        printf("%5g %5g %15.10g %15.10g\n",e[0],e[1],c, d);
        c = atan2(e[0], e[1]);
        d = e[0] * e[0] + e[1] * e[1];
        printf("%5g %5g %15.10g %15.10g\n",e[0],e[1],c, d);
        return 0;
}
--------------------------------------------------------

Ce programme devrait produire la sortie :

" 1 1 0 0
1 1 0.7853981634 2"

Au lieu de quoi il produit avec gcc 2.8.0 sous Linux RedHat 5.0 sur un Pentium ( -O0 marche, -O et -O2 produisent une sortie erronée) :

" 1 1 0 0
1 1 0.7853981634 1.785398163"

Ptolemy (150 Mo de code source) a été compilé avec 2.8.0 sous Solaris mais cela a nécessité d'importantes modifications. Le codefonctionne sans problèmes.

Vous pouvez donc utiliser gcc2.8.1 sous Solaris sur Sparc mais attendez encore si vous êtes sur un PC Nous vous tiendrons au courant des améliorations et des problèmes. 

ddd pour vous aider à déboguer

ddd (Data Display Debugger - Débogueur Afficheur de Données) est une interface graphique pour débogueurs. D'autres interfaces de ce type existent telle xxgdb et tgdb. Cependant ddd s'impose grâce à une interface graphique sous Motif (Motif 1.x ou 2.0 , lesstif, pas Motif 2.1) agréable, puissante et complète facilitant la visualisation de données complexes. Le développement de ddd est actif avec au moins une release majeure par an. ddd est développé à l'université de Braunschweig en Allemagne par Dorothea Lütkehaus et Andreas Zeller.

Nous utilisons ddd plus particulièrement avec gdb. ddd offre un mode de visualisation des données basé sur des graphes. Le débug de programmes utilisant des structures complexes (tableaux de structures, structures contenant des tableaux, structures, ...) en est facilité.

ddd permet de s'interfacer avec plusieurs débogueurs dont gdb et dbx. Les versions récentes permettent de déboguer des programmes en C, C++, objective C, Fortran et Pascal.

Les débogueurs supportés sont très puissants, mais leur utilisation en ligne de commande est parfois un peu délicate. ddd permet de masquer cette complexité et d'offrir presque toutes les fonctions à la pointe de la souris.

Nous sommes longtemps restés sur la version 2.0 de ddd. De nombreuses versions se sont succédées depuis lors, mais nous n'étions pas satisfaits de la stabilité. La toute dernière version ddd (2.2.3, surtout oubliez la 2.2.2 qui n'a duré que 2 jours) nous a très agréablement surpris tant du point de vue des fonctionnalités que de la stabilité. ddd n'est toujours pas exempt de bugs et de plantages mais cela est résiduel. Il existe maintenant une fonction de sauvegarde de session. Malheureusement, cette fonction ne sauvegarde pas le graphe des données que l'on est en train de traiter, mais seulement les points d'arrêts.

L'apprentissage des fonctions de base de ddd est immédiat. Quand on souhaite effectuer une opération (poser un point d'arrêt, voir le contenu d'une variable, d'un pointeur, lancer un programme, ...) les opérations se trouvent facilement. Ou il y a un bouton obligeamment prêt à servir, ou on trouve l'entrée du menu, ou le clique droit amène un menu contextuel où l'on trouve son bonheur. Dans le code source de ddd, vous trouverez 2 programmes ctest.c et cxxtest.c qui vous permettront de vous exercer et de tester certaines fonctions des menus qui sont un peu moins intuitives.

Une des fonctions très agréable de ddd est l'affichage des tableaux bidimensionnels alloués statiquement (int toto[10][12];) sous forme de table bidimensionnelle de valeurs.

Malheureusement, si le tableau est alloué dynamiquement, seul un affichage en ligne est disponible. On l'obtient normalement en demandant l'affichage sous la forme :

nom_du_pointeur[0..10]

Les 10 premiers éléments du tableau alloué dynamiquement sont alors affichés. Cette fonction malheureusement est boguée et parfois ne s'exécute pas. Vous pouvez la remplacer en utilisant la fonction dite de "tableau artificiel" de gdb. Si par exemple vous souhaitez afficher 10 éléments d'un tableau d'entier, tapez dans display la commande : /d nom_du_pointeur@10

Le /d au départ assure que vous affichez des entiers en mode décimal (/f pour des flottants), la notation @ 10 indique que vous souhaitez voir les 10 premières valeurs du tableau.

ddd n'est pas encore un programme parfait, et parfois, il ira à l'encontre de votre intuition : des données ne s'afficheront plus alors que vous souhaiteriez les voir s'afficher, des commandes ne produiront pas l'effet souhaité, .... Cependant, ddd vous sera vite indispensable alors soyez patient, rapportez nous vos bogues, nous les ferons remonter vers les mainteneurs de ddd ou nous y jetterons directement un coup d'oeil. 

Exemple d'utilisation de ddd
Figure 2 : un exemple d'utilisation de ddd

Interview de Philippe BERGHEAUD - responsable Outils et Méthodes Logiciel THOMCAST - 2ème partie

3L:Comment voyez-vous l'avenir des freeware à Thomcast, et en général ?

Nous utilisons un Ultrix pour accéder à nos données de production sur des Vax. Le tcp/ip de Dec est beaucoup trop cher pour remplir cette fonction. Dès que Decnet est supporté dans Linux, nous supprimerons la station. L'économie sera de 20 kF de maintenance par an. J'espère que ce module sera disponible dans Linux d'ici fin 98.

A plus long terme, je serais heureux de pouvoir supprimer HP-UX et de mettre Linux sur ces stations de manière à pouvoir avoir le source du système d'exploitation et de tout l'outillage associé. Mais je ne suis pas pressé.

Evidemment tant que les logiciels commerciaux ne sont pas portés sous Linux, il n'est pas possible de faire cela.

Combien de types d'Unix avez-vous utilisé ?

(note de l'éditeur : Une liste trop longue pour reproduire ici m'est donnée, pour résumer en gros tous les Unix sur une dizaine de plateformes y compris certaines très exotiques telle Alliant et Micromega.)

Si possible, j'utilise Linux car le code source est disponible et qu'il est de bonne qualité. Qui plus est, c'est l'OS avec le plus grand nombre de béta testeurs et je pense de développeurs dans le monde. Personne ne peut payer les 10000 béta testeurs qui essayent une version de Linux le lendemain de son arrivée sur le Sunsite et qui le sur-lendemain envoient des compte-rendus et des patches. Linux a aussi été écrit à partir de 0 et en se basant uniquement sur les spécifications POSIX. Linux ne traîne pas le poids de l'histoire des autres Unix. De plus contrairement à certains Unix commerciaux des choix ont été faits en ce qui concerne les fonctions qui existaient dans Berkeley et dans Système V. Souvent les Unix commerciaux n'ont pas choisi et proposent tout. Le résultat est parfois un vaste foutoir. Dans Linux on a généralement choisi la meilleure des solutions.

Quels sont les avantages de Linux ?

Linux est une garantie de pérennité, de durée. Qui plus est, l'évolution est assez lente, je change de version environ tous les 2 ans et je choisis le moment où j'upgrade. Avec les constructeurs je dois upgrader tous les 6 mois sinon je ne suis plus supporté.

Le retard de 6 mois des drivers par rapport au matériel est plutôt un avantage. Au bout de 6 mois, on sait réellement si un matériel ou un périphérique est bon et utile ou pas. La fièvre commerciale est retombée. En informatique, je ne suis pas pressé.

En ce qui concerne la bureautique, Windows fait le travail. Ce n'est pas un choix que j'ai fait, mais qui s'est fait. Par contre, pour le travail obscur (serveur, routeur), Linux est vraiment fantastique. J'ai juste modifié le démon lpd pour que les utilisateurs sous Windows n'est pas à attendre (parfois une heure) si une imprimante était éteinte. Les utilisateurs en ont été ravis.

En fait, l'essentiel n'est pas qu'un logiciel soit gratuit ou pas. L'essentiel est que le code source soit disponible. C'est la garantie que l'on peut survivre si le fournisseur disparaît, et que le code est de meilleur qualité. Plus il y a de gens qui lisent un code, meilleur il est.

Note additionnelle. J'ai travaillé pendant 10 jours sur un petit projet à Thomcast. Malgrè la modestie du serveur (p133, 96 Mo ram, linux, samba) , j'ai été surpris par la rapidité du réseau (en terme subjectif). Un autre signe ne trompe pas, le réseau et ses pannes sont souvent un sujet de discussions amusées chez les utilisateurs. Pas chez Thomcast, personne ne parle du réseau. C'est un service qui marche de manière transparente pour l'utilisateur. 

Logiciels et versions

Nom  Description  Dernière ver.  Ver. stable Type  Sous-type
ImageMagick  affichage d'images, conversion et manipulation sous X  4.0.3  4.0.2  applications  graphique
SpecTcl  Un générateur d'interface graphique pour Tcl/Tk et perlTk  1.1  1.1 tcl/tk  programmation
TclTutor  Une formation interactive a Tcl/Tk  0.96  0.96  tcl/tk  leçon interactive
Tix  Ajoute de nombreux et utiles widgets à tk  4.1  4.1  tcl/tk  extension
Tkperl  Une extension Tk pour perl  402.202  402.202  perl  extension
X11R6  Bibliothèques X11R6  v11r6.3  v11r6.1  x11  bibliothèque
amaya  Butineur sur le web et traitement de texte pour html  1.1  1.0  x11  web
apache  Démon serveur HTTP (WWW)  1.3b5  1.2.4  réseau démon
autoconf  Configuration multi-plateforme automatique de programmes sources  2.12  2.12  utilitaire  configuration
automake  Générateur de makefile, Automake  1.2  1.2  developpement  outils
bash  Langage de commande d'Unix compatible avec le Bourne shell original  2.01.1  1.14.7  shells 
binutils  Utilitaires Gnu pour manipuler les binaires et les fichiers objets  2.8.1  2.7  utilitaire  programmation
bison  Générateur d'analyseur syntaxique de gnu pour créer des compilateurs  1.25  1.25  utilitaire  programmation
bvi  Un éditeur type vi pour fichiers binaires  1.00  1.00  utilitaire  éditeur
cflow  Imprime un arbre d'un seul ou d'un ensemble de programmes.  2.00  2.00  utilitaire  programmation
cgitcl  Bibliothèque pour la programmation cgi en tcl. Complète, puissante, un must. 0.7.2  0.7.2  tcl/tk  library
checkergcc  Le compilateur GNU C/C++/ObjectiveC avec vérificateur d'allocation mémoire  2.7.2.3  2.7.2.3  dével.  language
cpio  programme GNU d'archivage  2.4.2  2.4.2  utilitaire  archivage
cpost  Un joli formateur PS pour code source C/C++  1.4.a  1.4.a  utilitaire  impression
ctags  Outil de cross-référence pour le C  1.7  1.5  dével.  utilitaire
cvs  CVS - Système de gestion de version concurrente  1.9  1.9  dével.  outil
ddd  Le Display Data Debugger: Une interface graphique pour débogueurs - GDB, DBX  2.2.3  2.2.3  utilitaire  programmation
diffutils  Utilitaires GNU diff  2.7  2.7  utilitaire texte
fileutils  Utilitaires GNU de gestion de fichiers  3.16  3.13  utilitaire  fichier
findutils  Utilitaires GNU find (find, xargs, locate)  4.1  4.1  utilitaire  fichier
flex  générateur d'analyseur lexical rapide GNU  2.5.4  2.5.4  dével.  outil
fortune  programme afficheur de devises  utilitaire jeu
g77  Le compilateur GNU Fortran 77  0.5.21  0.5.21  dével.  langage
gawk  Utilitaire de traitement du texte, GNU Awk  3.0.3  3.0.3  utilitaire  texte
gcc  Le compilateur GNU C/C++/ObjectiveC  2.8.1  2.7.2.3  dével.  langage
gdb  debogueur symbolique pour le C ou d'autres langages  4.16  4.16  dével.  debogueur
ghostscript  Interpréteur et afficheur PostScript et PDF  5.10  3.33  applications  graphique
gimp  Programme de Manipulation d'Image GNU  0.99.19  0.99.16  applications  2D graphique
glimpse  Système d'indexation et de recherche Glimpse  4.1  4.1  utilitaire  texte
gnuplot  Grapheur 2D/3D Gnuplot  3.6b340  3.6b340  applications  math
grep  Utilitaires GNU grep  2.1  2.0  utilitaire  text
groff  Pack de formattage de texte GNU groff  1.11  1.10  utilitaire  texte
gzip  Compression de fichiers GNU gzip  1.2.4  1.2.4  utilitaire  archivage
html_library  Librairie tcl/tk pour l'affichage d'HTML.  0.3  0.3  tcl/tk  bibliothèque
htmlconv  Plusieurs convertisseurs html  0.11  0.11  utilitaire  texte
img  Img: plus de formats graphiques supportés par Tk  1.1p2  1.1p2  tcl/tk  extension
indent  Programme GNU d'indentation de source C  1.9.1  1.9.1  dével.  outil
lclint  Un vérificateur d'erreurs pour sources en C  2.3i  2.3i  dével.  outil
less  visualiseur de fichier texte -- less en fait plus que more  3.3.2  3.3.2  utilitaire  texte
libg++  Bibliothèque GNU g++  2.8.1  2.7.2.8  dével.  bibliothèque
libgr  Bibliothèques gérant différents formats de fichiers graphiques  2.0.14  2.0.13  dével.  bibliothèque
libxpm  Une bibliothèque pour manipuler le XPM  3.4i  3.4g  dével.  bibliothèque
lynx  Navigateur web en mode texte  2.8  2.7.1  applications  réseau
lyx  LyX, interface graphique pour LaTeX  0.12  0.12pre2  applications  publication
m4  GNU Macro Processeur  1.4  1.4  utilitaire  texte
make  GNU Make  3.76.1  3.76.1  dével.  dével.
mc  Gestion de fichiers GNU Midnight Commander  4.1.27  4.1.27  utilitaire  shell
mgv  MGv: visualiseur Motif de fichiers PostScript  2.3  2.3  utilitaire  graphique
mpage  place plusieures pages sur une seule page postscript  2.5  2.4  utilitaire  impression
mtools  programmes d'accès sans montage à des disques DOS  3.9  3.0  utilitaire  fichier
netpbmplus  outils de conversion et de manipulation d'images  applications  graphique
octave  Langage interactif de haut niveau Octave.  2.0.11  2.0.11  applications  math
patch  Utilitaires GNU patch  2.1  2.1  utilitaire  texte
perl  Langage script PERL  5.004.04  5.004  utilitaire  texte
postgresql  Base de données relationnelle SQL 2  6.3  6.2.1  applications  base de données
psutils  Utilitaires PostScript  1pl16  1pl16  utilitaire  impression
rcs  RCS - système de gestion de versions  5.7  5.7  dével.  outil
recode  programme de conversion GNU recode  3.4  3.4  utilitaire  texte
rxvt  émulateur VT102 couleur pour X  2.21  2.20  X11  applications
scilab  pack de calcul numérique Scilab  2.3.1  2.3.1  applications  math
sipp  SIPP, simple processeur de polygones  3.1  3.1  applications  dessin 3d
tar  Archiveur GNU tar  1.12  1.12  utilitaire  archivage
tcltk  Un langage script TRES puissant et facile a apprendre  8.1  8.0p2  tcl/tk  base
tcsh  c-shell amélioré  6.07.03  6.07.02  utilitaire  shell
teTeX  Système de composition TeX et formateur de fontes MetaFont  0.4pl8  0.4pl8  applications  publication
texinfo  formateur texinfo et lecteur de fichiers info  3.12  3.11  applications  publication
textutils  Utilitaires GNU Text  1.22  1.19  utilitaire  texte
tkinfo  Une interface graphique pour lire les fichiers info  2.4  1.5  X11  applications
transfig  Une série de programmes utilises par xfig pour imprimer ou exporter  3.2  3.2  x11  dessin 2d
vim  éditeur VIsuel aMélioré  5.0  4.5  applications  éditeur
wdiff  GNU wdiff, un diff visuel  0.5  0.5  utilitaire  texte
xcoral  Editeur sous X11 facile à utiliser  3.1  3.1  applications  éditeur
xemacs  Le style de vie XEmacs  20.5  20.2  applications  éditeur
xfig  Un utilitaire complet de dessin 2D vectoriel  3.2  3.2  x11  dessin 2d 
xless  Un visualiseur de fichier texte pour X11  1.7  1.7  utilitaire  fichier
xv  Visualiseur d'images pour X  3.10a  3.10a  applications  graphique
xxgdb  Interface X pour le débogueur gdb  1.12  1.12  dével.  debogueur
zlib  librairie de compression/décompression  1.1.1  1.04  dével.  bibliothèque
zlibc  Décompression à la volée de fichiers gzipés  0.9h  0.9e  dével.  outil
La version stable est celle que nous utilisons couramment et dont nous sommes satisfaits. Nous n'avons pas toujours testé la version la plus récente. Cette liste non exhaustive est destinée à vous aider à gérer votre parc de logiciels freeware. 

Free&ALter Soft