π
<-
Chat plein-écran
[^]

Tests simulateur Numworks + KhiCAS

Nouveautés, projets, mises à jour.

Tests simulateur Numworks + KhiCAS

Message non lude parisse » 23 Mai 2024, 07:41

(English below)
Je souhaite valider la procédure de compilation du simulateur Numworks avec KhiCAS pour Windows et Mac, c'est l'automatisation d'une procédure assez technique. La procédure est décrite ici:
https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/khicasnw.html#sec3
Je suis intéressé par des retours ici ou par mail, est-ce que c'est clair, est-ce que tout se passe comme prévu?

I have written a procedure to compile the Numworks simulator with KhiCAS inside for Windows and Mac users:
https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/khicasnwen.html#sec4
I'm interested to get feedback, either in this topic or by email : is it clear, is it running ?
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 80.1%
 
Messages: 3552
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Message non lude Adriweb » 23 Mai 2024, 07:46

Je vais tester ça sur mac mais on peut améliorer le script un petit peu (détection de la pré-présence de brew, utilisation conditionnelle de "arch -x86_64", etc).
Je vais proposer une mise à jour ici d'ici peu.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Message non lude parisse » 23 Mai 2024, 09:10

Oui, il faut gérer les Mac Intel, le script actuel ne fonctionne que sur Mac ARM64.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 80.1%
 
Messages: 3552
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Message non lude Adriweb » 23 Mai 2024, 09:29

Voila le script nwmac amélioré (à nommer "nwmac.sh" d'ailleurs, ça serait mieux), qui installe les choses un peu mieux, et qui s'arrête en cas d'erreur :

Code: Tout sélectionner
#!/bin/bash

set -e

if [[ $(command -v brew) == "" ]]; then
    echo "Installing (native) Homebrew..."
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
else
    echo "Native Homebrew has been detected, make sure it's been updated recently!"
fi
if [[ ! -x "/usr/local/bin/brew" ]] && [[ $(uname -m) == "arm64" ]]; then
    echo "Installing x86_64 Homebrew..."
    arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi

echo "Installing build dependencies..."
brew install python-setuptools numworks/tap/epsilon-sdk libpng gmp mpfr mpfi
if [[ $(uname -m) == "arm64" ]]; then
    arch -x86_64 /usr/local/bin/brew install libpng gmp mpfr mpfi
fi

echo "Cloning sources..."
cd /tmp
rm -rf epsilon
git clone --depth 1 https://github.com/parisseb/epsilon
cd epsilon
wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/ext.tar.bz2
tar xfj ext.tar.bz2
wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/nwsimu.tgz
tar xfz nwsimu.tgz

echo "Building..."
./mkmac

echo "Moving things into place..."
wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/khi92.tar
mv khi92.tar ~/Documents/scripts.tar
mv output/release/simulator/macos/epsilon.app /Applications

echo "epsilon.app is now available in /Applications/"
open /Applications/epsilon.app


Et aussi, merci de rajouter -j ou au moins -j4 aux appels de "make" dans "mkmac", parce que sinon ça prend vraiment trop de temps...

----

Ensuite, en fonction de son environnement, il peut y a des problèmes d'install / conflits, par exemple, et c'est sans doute ça qui peut tout faire foirer par la suite, donc ne pas hésiter à faire un peu de ménage auparavant... (perso, j'avais plusieurs installs de arm-none-eabi-gcc etc.)

Côté khicas, il y a pas mal de warnings de macros/defines re-définis qui encombrent le terminal, il faudrait sûrement corriger ça.

----

Bref, quand ça arrive au link, ça erreur de mon côté :

Code: Tout sélectionner
LD      epsilon.bin
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ [... tous les fichiers .o ...] -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -mmacosx-version-min=10.10 -weak_framework Metal -weak_framework QuartzCore -framework CoreAudio -framework CoreVideo -framework Cocoa -framework IOKit -framework CoreFoundation -framework Carbon -framework ForceFeedback -framework AudioToolbox -rdynamic -o output/release/simulator/macos/arm64/epsilon.bin
Undefined symbols for architecture arm64:
  "_c_det", referenced from:
      _linalg_det in graphic.o
  "_c_draw_arc", referenced from:
      _graphic_draw_arc in graphic.o
  "_c_draw_circle", referenced from:
      _graphic_draw_circle in graphic.o
  "_c_draw_filled_arc", referenced from:
      _graphic_draw_filled_arc in graphic.o
  "_c_draw_filled_circle", referenced from:
      _graphic_draw_filled_circle in graphic.o
  "_c_draw_filled_polygon", referenced from:
      _graphic_draw_polygon_ in graphic.o
  "_c_draw_line", referenced from:
      _graphic_draw_line in graphic.o
  "_c_draw_polygon", referenced from:
      _graphic_draw_polygon_ in graphic.o
  "_c_draw_rectangle", referenced from:
      _graphic_draw_rectangle in graphic.o
  "_c_draw_string", referenced from:
      _graphic_draw_string in graphic.o
  "_c_draw_string_medium", referenced from:
      _graphic_draw_string in graphic.o
  "_c_draw_string_small", referenced from:
      _graphic_draw_string in graphic.o
  "_c_egv", referenced from:
      _linalg_egv in graphic.o
  "_c_eig", referenced from:
      _linalg_eig in graphic.o
  "_c_fft", referenced from:
      _linalg_fftifft in graphic.o
  "_c_fill_rect", referenced from:
      _graphic_clear_screen in graphic.o
      _graphic_fill_rect in graphic.o
  "_c_inv", referenced from:
      _linalg_inv in graphic.o
  "_c_pcoeff", referenced from:
      _linalg_pcoeff in graphic.o
  "_c_proot", referenced from:
      _linalg_proot in graphic.o
  "_c_rref", referenced from:
      _linalg_rref in graphic.o
  "_c_set_pixel", referenced from:
      _graphic_set_pixel in graphic.o
  "_caseval", referenced from:
      _cas_caseval in graphic.o
      _turtle_forward in graphic.o
      _turtle_backward in graphic.o
      _turtle_left in graphic.o
      _turtle_pensize in graphic.o
      _turtle_right in graphic.o
      _turtle_reset in graphic.o
      ...
  "_console_input", referenced from:
      _mp_hal_input in port.o
  "_console_output", referenced from:
      _mp_hal_stdout_tx_strn_cooked in port.o
  "_ext_main", referenced from:
      Home::Controller::handleEvent(Ion::Events::Event) in controller.o
      run_external_main() in external_apps.o
  "_flash_filebrowser", referenced from:
      _os_file_browser in port.o
  "_flash_read", referenced from:
      _filesize in port.o
      _read_file in port.o
  "_os_get_pixel", referenced from:
      _graphic_get_pixel in graphic.o
  "_sync_screen", referenced from:
      _graphic_show_screen in graphic.o
  "_turtle_freeze", referenced from:
      _turtle_forward in graphic.o
      _turtle_backward in graphic.o
      _turtle_left in graphic.o
      _turtle_pensize in graphic.o
      _turtle_right in graphic.o
      _turtle_reset in graphic.o
      _turtle_dessine_tortue in graphic.o
      ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


Pareil sur les 2 archs.

(Au passage, il y a aussi was built for newer 'macOS' version (14.0) than being linked (10.10) pour la libgiac, il faudrait surement passer le bon flag pour mettre la target a 10.10 (ou alors pas la mettre du tout, nulle part))
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Message non lude parisse » 23 Mai 2024, 10:23

J'ai pris en compte les modifs sauf le set -e.
En effet c'est normal qu'il y ait une erreur, parce qu'il tente de linker avec le process normal de link de Numworks, donc sans la libgiac. Et c'est a ca que servent les commandes contenues dans mkarm et mkx86. Donc il ne faut pas stopper le script en cas d'erreur! Evidemment, ce serait mieux d'intervenir directement dans le processus de make de Numworks, mais c'est trop complique pour moi...
Les 10.10 vs 14 viennent sans doute de la libgmp/mpfr/mpfi que je n'ai pas recompilees.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 80.1%
 
Messages: 3552
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Message non lude Adriweb » 23 Mai 2024, 10:25

Ok je vois.

Mais en fait il suffit de mettre le "set -e" au debut, puis l'inverse ("set +e") avant l'appel a mkmac donc.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Message non lude parisse » 23 Mai 2024, 11:06

en effet, c'est fait!
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 80.1%
 
Messages: 3552
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Message non lude parisse » 23 Mai 2024, 11:16

je modifie mkmac pour essayer de tenir compte des Mac Intel, est-ce que ca te semble correct
Code: Tout sélectionner
#! /bin/bash
cd ext/giac-1.6.0/src
if [[ $(uname -m) == "arm64" ]]; then
    make -f Makefile.nwmac_arm64 -j4
fi
make -f Makefile.nwmac_x86_64 -j4
cd ../../..
if [[ $(uname -m) == "arm64" ]]; then
    make V=1 PLATFORM=simulator -j4
    ./mkarm
fi
make V=1 PLATFORM=simulator -j4
./mkx86
if [[ $(uname -m) == "arm64" ]]; then
    /Library/Developer/CommandLineTools/usr/bin/lipo -create output/release/simulator/macos/arm64/epsilon.bin output/release/simulator/macos/x86_64/epsilon.bin -output output/release/simulator/macos/epsilon.app/Contents/MacOS/Epsilon
else
    cp output/release/simulator/macos/x86_64/epsilon.bin output/release/simulator/macos/epsilon.app/Contents/MacOS/Epsilon
fi

Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 80.1%
 
Messages: 3552
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Message non lude Adriweb » 23 Mai 2024, 11:18

A priori oui (on peut stocker le résultat de $(uname -m) == "arm64" dans une variable, mais bref)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14656
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Message non lude parisse » 23 Mai 2024, 11:42

J'ajoute une commande pour faire un pkg, au cas ou...
Ca donne pour nwmac
Code: Tout sélectionner
#!/bin/bash

set -e

if [[ $(command -v brew) == "" ]]; then
    echo "Installing (native) Homebrew..."
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
else
    echo "Native Homebrew has been detected, make sure it's been updated recently!"
fi
if [[ ! -x "/usr/local/bin/brew" ]] && [[ $(uname -m) == "arm64" ]]; then
    echo "Installing x86_64 Homebrew..."
    arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi

echo "Installing build dependencies..."
brew install python-setuptools numworks/tap/epsilon-sdk libpng gmp mpfr mpfi
if [[ $(uname -m) == "arm64" ]]; then
    arch -x86_64 /usr/local/bin/brew install libpng gmp mpfr mpfi
fi

echo "Cloning sources..."
cd /tmp
rm -rf epsilon
git clone --depth 1 https://github.com/parisseb/epsilon
cd epsilon
wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/ext.tar.bz2
tar xfj ext.tar.bz2
wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/nwsimu.tgz
tar xfz nwsimu.tgz

echo "Building..."
set +e
./mkmac

echo "Packaging"
mkdir tmp
mv output/release/simulator/macos/epsilon.app tmp
pkgbuild --install-location /Applications --identifier khicasnw.pkg.app --root tmp ~/Downloads/Khicasnw.pkg

echo "Moving things into place..."
wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/khi92.tar
mv khi92.tar ~/Documents/scripts.tar
mv tmp/epsilon.app /Applications

echo "epsilon.app is now available in /Applications/"
open /Applications/epsilon.app

Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 80.1%
 
Messages: 3552
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers Actualités

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1521 utilisateurs:
>1482 invités
>34 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)