scilab

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
scilab [2009/01/09 18:44] gerardscilab [2012/04/01 07:48] – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== scilab ====== ====== scilab ======
-sur nemo4.0, juillet 06+ 
 + {{scilab_nemo.png?200x200|accès à scilab depuis un sunray}} 
 + 
 + 
 +__sur <del>nemo</del>charybde ou scylla__  
 +<del>4.0, juillet 06</del>5.x 
 + 
 +__sur octopus__ 
 +Utiliser **module** pour choisir une version 
 +<code> 
 +[henry@octopus octopus]$ module avail 
 + 
 +------------------------- /local/apps/Modules/versions  
 +------------------------- 
 +3.2.6 
 + 
 +-------------------- /local/apps/Modules/3.2.6/modulefiles  
 +--------------------- 
 +dot         hpc8        matlab-old  modules     ss12 
 +gcc         hpc82       module-cvs  null        ss12u1 
 +hpc         matlab      module-info scilab5     use.own 
 + 
 +[henry@octopus octopus]$ module load scilab5 
 + 
 +[henry@octopus octopus]$ scilab -version 
 +Scilab version "5.2.0.1260899697" 
 +scilab-5.2.0 
 + 
 +</code>
  
 Lancer scilab en batch: Lancer scilab en batch:
 <code> <code>
-nemo-henry% scilab -nwni -f histoire.sce > resul.out &+nohup scilab -nwni -f histoire.sce > resul.out &
 </code> </code>
 avec le script histoire.sce contenant par exemple: avec le script histoire.sce contenant par exemple:
Ligne 59: Ligne 87:
   * scilab-5.0.3-src.tar.gz   * scilab-5.0.3-src.tar.gz
 DAns la première archive, ce qui est interessant est dans thirdparty. Ce qui est dans bin et java est inutilisable pour notre plateforme, et libs contient seulement les headers de matio DAns la première archive, ce qui est interessant est dans thirdparty. Ce qui est dans bin et java est inutilisable pour notre plateforme, et libs contient seulement les headers de matio
 +
 +
  
  
Ligne 65: Ligne 95:
  
 ===== sur solaris 10 ===== ===== sur solaris 10 =====
-on ne récupére que le dossier thirparty de l'archive prerequirements+On utilise l'environnement JDS/CBE pour compiler: 
 +<code> 
 +bash-3.00$ . /opt/jdsbld/bin/env.sh 
 +</code> 
 + 
 +on ne récupère que le dossier thirparty de l'archive prerequirements
 <code> <code>
 bash-3.00$ pwd bash-3.00$ pwd
Ligne 72: Ligne 107:
 bash-3.00$ tar xzf ../downloads/scilab-5.0.3-src.tar.gz bash-3.00$ tar xzf ../downloads/scilab-5.0.3-src.tar.gz
 </code> </code>
 +
 Pour les autres pre-requis: Pour les autres pre-requis:
   * <del>pcre de Blastwave: CSWpcre</del>on utilise le package SFE dans src/SFE/archive:<code>pkgtool build-only --download SFEpcre.spec --autodeps</code>   * <del>pcre de Blastwave: CSWpcre</del>on utilise le package SFE dans src/SFE/archive:<code>pkgtool build-only --download SFEpcre.spec --autodeps</code>
Ligne 86: Ligne 122:
 devel1@nemo:~/src/jogl-1.1.1-solaris-i586/lib$ cp *.jar  ~/src/scilab-5.0.3/thirdparty/ devel1@nemo:~/src/jogl-1.1.1-solaris-i586/lib$ cp *.jar  ~/src/scilab-5.0.3/thirdparty/
 </code> </code>
 +on applique les {{scilab-5.0.3-01-studio.diff|patches}} suivants:
 <code> <code>
-bash-3.00$ . /opt/jdsbld/bin/env.sh+$ cd scilab-5.0.3 
 +devel1@nemo:~/src/scilab-5.0.3gpatch -p1 < ../scilab-5.0.3-01-studio.diff 
 </code> </code>
 +
 +
 +
 et on ajoute /opt/csw/bin dans le PATH, pour aller chercher ocaml, par exemple: et on ajoute /opt/csw/bin dans le PATH, pour aller chercher ocaml, par exemple:
 <code>pkgtool build-only --download SFEpcre.spec --autodeps</code> <code>pkgtool build-only --download SFEpcre.spec --autodeps</code>
Ligne 95: Ligne 135:
 </code> </code>
  
-On modifie le configure à cause d'un test qui échoue:+<del>On modifie le configure à cause d'un test qui échoue:
 <code> <code>
 bash-3.00$ diff -u configure-dist configure bash-3.00$ diff -u configure-dist configure
Ligne 109: Ligne 149:
    { echo "$as_me:$LINENO: result: $cxx_present" >&5    { echo "$as_me:$LINENO: result: $cxx_present" >&5
  echo "${ECHO_T}$cxx_present" >&6; }  echo "${ECHO_T}$cxx_present" >&6; }
-</code>+</code></del>
  
 et ça donne: et ça donne:
Ligne 277: Ligne 317:
  
 </code> </code>
 +
 +<del>
 +
 une erreur sur un fichier entraîne la modif suivante: une erreur sur un fichier entraîne la modif suivante:
 <code> <code>
Ligne 311: Ligne 354:
  int isinf(double x) { return !finite(x) && x==x; }  int isinf(double x) { return !finite(x) && x==x; }
 </code> </code>
 +
 +et enfin, ne pas oublier de changer /bin/sh en /bin/bash dans bin/scilab
 +
 +</del> voir patch
  
 ==== installation ==== ==== installation ====
Ligne 496: Ligne 543:
  
 ==== isinf ==== ==== isinf ====
 +réglé, voir le patch ci-dessus à appliquer
 +
 <code> <code>
 src/c/evaluate_expr.c, line 29: syntax error before or at: __builtin_isinf src/c/evaluate_expr.c, line 29: syntax error before or at: __builtin_isinf
Ligne 523: Ligne 572:
  
 ==== scilab-bin ==== ==== scilab-bin ====
 +
 +Ancien problème, réglé avec la nouvelle ligne de configure
 +
 la ligne suivante echoue: la ligne suivante echoue:
 <code> <code>
Ligne 541: Ligne 593:
 ==== script scilab-bin ==== ==== script scilab-bin ====
 il faut remplacer /bin/sh par /bin/bash il faut remplacer /bin/sh par /bin/bash
 +
  
  
Ligne 554: Ligne 607:
 make[1]: Leaving directory `/local/apps/src/scilab-5.0.3' make[1]: Leaving directory `/local/apps/src/scilab-5.0.3'
 </code> </code>
 +si on lance en mode debug:
 +<code>
 +devel1@nemo:~/src/scilab-5.0.3$ ./bin/scilab -nogui -debug
 +Running debug of Scilab [gdb]  :  /local/apps/src/scilab-5.0.3/libtool --mode=execute gdb --args /local/apps/src/scilab-5.0.3/scilab-bin -nogui -debug
 +GNU gdb 6.6
 +Copyright (C) 2006 Free Software Foundation, Inc.
 +GDB is free software, covered by the GNU General Public License, and you are
 +welcome to change it and/or distribute copies of it under certain conditions.
 +Type "show copying" to see the conditions.
 +There is absolutely no warranty for GDB.  Type "show warranty" for details.
 +This GDB was configured as "i386-pc-solaris2.8"...
 +(gdb) run
 +Starting program: /local/apps/src/scilab-5.0.3/.libs/scilab-bin -nogui -debug
 +warning: Temporarily disabling breakpoints for unloaded shared library "/usr/lib/ld.so.1"
 +warning: Lowest section in /local/apps/src/scilab-5.0.3/modules/.libs/libscilab.so.0 is .SUNW_syminfo at 00000094
 +warning: Lowest section in /usr/lib/libpthread.so.1 is .dynamic at 00000074
 +warning: Lowest section in /usr/lib/libsched.so.1 is .dynamic at 00000074
 +warning: Lowest section in /usr/lib/libthread.so.1 is .dynamic at 00000074
 +warning: Lowest section in /usr/lib/libintl.so.1 is .dynamic at 00000074
  
 +Program received signal SIGSEGV, Segmentation fault.
 +0xfa855891 in strlen () from /usr/lib/libc.so.1
 +(gdb) where
 +#0  0xfa855891 in strlen () from /usr/lib/libc.so.1
 +#1  0xfac62160 in callFunctionFromGateway ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#2  0xfd297571 in gw_io ()
 +   from /local/apps/src/scilab-5.0.3/modules/io/.libs/libsciio.so.5
 +#3  0xfac51df3 in callinterf_ ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#4  0xfac5ef42 in scirun_ ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#5  0xfac4d54b in realmain ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#6  0xfd242ad0 in mainscic ()
 +   from /local/apps/src/scilab-5.0.3/modules/shell/.libs/libscishell.so.5
 +#7  0x08050d7d in main ()
 +</code>
  
  
 +FIXME: recompiler en ajoutant --enable-debug au configure
  
  
 ==== opensolaris: "ld: fatal: library -lsunmath: not found" ==== ==== opensolaris: "ld: fatal: library -lsunmath: not found" ====
 +réglé aussi, se reporter au configure ci-dessus
 +
 ce problème arrive parce qu'ils mettent la lib avant le chemin (-L) et c'est bien dommage... ce problème arrive parce qu'ils mettent la lib avant le chemin (-L) et c'est bien dommage...
 <code> <code>
Ligne 593: Ligne 686:
 </code> </code>
 c'est un bug connu de scilab, il suffit de faire: "make install -k" c'est un bug connu de scilab, il suffit de faire: "make install -k"
 +
  
  
 ====== problème à l'exécution ====== ====== problème à l'exécution ======
-Il ne trouve pas gluegen.jar, bien qu'il soit sur la machine!? +<del>Il ne trouve pas gluegen.jar, bien qu'il soit sur la machine!? 
 <code> <code>
 henry@delljm:~$ echo $CLASSPATH henry@delljm:~$ echo $CLASSPATH
Ligne 611: Ligne 705:
  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
 ... ...
 +</code></del>
 +c'est réglé, il faut vraiment suivre la doc et ne pas oublier de recopier les libs dans bin avant le make
 +
 +
 +====== Segmentation Fault sur solaris 10 ======
 +<code>
 +creating scilab-bin
 +./bin/scilab -ns -nwni -f modules/functions/scripts/buildmacros/buildmacros.sce
 +Warning: Localization issue: Error while binding the domain from /local/apps/src/scilab-5.0.3/../locale/ or /local/apps/src/scilab-5.0.3/locale/: Switch to the default language (English).
 +./bin/scilab: line 453: 24041 Segmentation Fault      (core dumped) "$SCILABBIN" "$@"
 +make[1]: [macros] Error 139 (ignored)
 </code> </code>
 +Ce problème apparait à la fin du make. Une rapide utilisation du debugger montre:
 +<code>
 +Program received signal SIGSEGV, Segmentation fault.
 +0xfa855891 in strlen () from /usr/lib/libc.so.1
 +(gdb) where
 +#0  0xfa855891 in strlen () from /usr/lib/libc.so.1
 +#1  0xfac62160 in callFunctionFromGateway ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#2  0xfd297571 in gw_io ()
 +   from /local/apps/src/scilab-5.0.3/modules/io/.libs/libsciio.so.5
 +#3  0xfac51df3 in callinterf_ ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#4  0xfac5ef42 in scirun_ ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#5  0xfac4d54b in realmain ()
 +   from /local/apps/src/scilab-5.0.3/modules/core/.libs/libscicore.so.5
 +#6  0xfd242ad0 in mainscic ()
 +   from /local/apps/src/scilab-5.0.3/modules/shell/.libs/libscishell.so.5
 +#7  0x08050d7d in main () 
 +</code>
 +
 +On recompile avec l'option -g pour avoir les sources. Attention, le configure est encore buggé, il faut ajouter:
 +<code>
 +CC="cc -g" \
 +CFLAGS="-g" \
 +CXX="CC -g" \
 +CXXFLAGS="-g" \
 +</code>
 +pour que le fichier soit correctement généré.
 +\\
 +Maintenant, on a:
 +<code>
 +t@1 (l@1) program terminated by signal SEGV (no mapping at the fault address)
 +0xfa705891: strlen+0x0031:      cmpb     $0x00000000,(%eax)
 +Current function is callFunctionFromGateway
 +   36           if (*(Tab[Fin-1].f) != NULL) (*(Tab[Fin-1].f)) (Tab[Fin-1].name,(unsigned long)strlen(Tab[Fin-1].name));
 +</code>
 +et Tab est une variable globale définie dans le fichier ./modules/io/sci_gateway/c/gw_io.c:
 +<code>
 +static gw_generic_table Tab[]=
 +{
 +...
 +};
 +</code>
 +tableau défini dans modules/core/includes/callFunctionFromGateway.h.
 +\\
 +Pour moi, ça veut dire qu'on parcourt le tableau au delà de sa dimension (pourquoi?)
 +
 +
 +
 +
 +====== scilab-5.1 ======
 +  * http://jblopen.com/scilab/scilabdownload.shtml
 +  * problèmes avec le clavier (touche alt-gr)
 +<code>
 +henry@delljm:~$ xmodmap 
 +xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):
 +
 +shift       Shift_L (0x32),  Shift_R (0x3e)
 +lock        Caps_Lock (0x42)
 +control     Control_L (0x25),  Control_R (0x6d)
 +mod1        Alt_L (0x40)
 +mod2        Num_Lock (0x4d)
 +mod3        Mode_switch (0x71)
 +mod4        Meta_L (0x73),  Meta_R (0x74)
 +mod5      
 +
 +henry@delljm:~$ xmodmap -e "keysym Mode_switch = Alt_R"
 +henry@delljm:~$ xmodmap 
 +xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):
 +
 +shift       Shift_L (0x32),  Shift_R (0x3e)
 +lock        Caps_Lock (0x42)
 +control     Control_L (0x25),  Control_R (0x6d)
 +mod1        Alt_L (0x40)
 +mod2        Num_Lock (0x4d)
 +mod3        Alt_R (0x71)
 +mod4        Meta_L (0x73),  Meta_R (0x74)
 +mod5      
 +</code>
 +
 +Ce problème se règle de la façon suivante:
 +<code>
 +mombasa-henry% setenv _AWT_USE_TYPE4_PATCH false
 +mombasa-henry% ssh nemo /usr/local/scilab-5.1/bin/scilab
 +</code>
 +Cela ne fonctionne que si Java est > à 1.5.03. 
 +\\
 +Pour éviter le contournement avec la variable d'environnement, il faudrait ne travailler qu'avec Java 1.6, ce qui n'est pas le cas pour l'instant.
 +
 +===== tests =====
 +   * avec mataela.sci
 +  * avec [[http://www.arbredeslemuriens.com/Categorie.php?IDCategorie=AlgoScilab&IDTitre=227&PHPSESSID=0232160715ddfbcc137e66eb074c42b4|scripts scilab]]
 +
 +==== serveur nemo (solaris 10, java 1.6) client sunray (solaris 10, sparc) ====
 +
 +inutilisable
 +
 +==== serveur opensolaris (os2008.11, b101) client sunray (solaris 10, sparc) ====
 +
 +fonctionne, mais avec un crash à la sortie à cause de Java
 +<code>
 +henry@delljm:~$ /usr/local/scilab-5.1/bin/scilab -f projects/scilab/chaleur.sci 
 +Xlib:  extension "RANDR" missing on display "localhost:10.0".
 +X11 connection rejected because of wrong authentication.
 +#
 +# An unexpected error has been detected by Java Runtime Environment:
 +#
 +#  SIGSEGV (0xb) at pc=0xafbf9808, pid=1754, tid=1
 +#
 +# Java VM: Java HotSpot(TM) Client VM (11.0-b15 mixed mode solaris-x86)
 +# Problematic frame:
 +# C  [libGL.so.1+0x79808]
 +#
 +# An error report file with more information is saved as:
 +# /export/home/henry/hs_err_pid1754.log
 +#
 +# If you would like to submit a bug report, please visit:
 +#   http://java.sun.com/webapps/bugreport/crash.jsp
 +# The crash happened outside the Java Virtual Machine in native code.
 +# See problematic frame for where to report the bug.
 +#
 +/usr/local/scilab-5.1/bin/scilab: line 393:  1754 Abort                   (core dumped) "$SCILABBIN" "$@"
 +</code>
 +
  • scilab.txt
  • Dernière modification : 2017/08/25 09:56
  • de 127.0.0.1