π
<-

Tests simulateur Numworks + KhiCAS

Nouveautés, projets, mises à jour.

Tests simulateur Numworks + KhiCAS

Unread postby parisse » 23 May 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 ?
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88%
 
Posts: 3698
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Unread postby Adriweb » 23 May 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.

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.2%
 
Posts: 14778
Images: 1123
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Unread postby parisse » 23 May 2024, 09:10

Oui, il faut gérer les Mac Intel, le script actuel ne fonctionne que sur Mac ARM64.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88%
 
Posts: 3698
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Unread postby Adriweb » 23 May 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: Select all
#!/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: Select all
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))

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.2%
 
Posts: 14778
Images: 1123
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Unread postby parisse » 23 May 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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88%
 
Posts: 3698
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Unread postby Adriweb » 23 May 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.

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.2%
 
Posts: 14778
Images: 1123
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Unread postby parisse » 23 May 2024, 11:06

en effet, c'est fait!
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88%
 
Posts: 3698
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Unread postby parisse » 23 May 2024, 11:16

je modifie mkmac pour essayer de tenir compte des Mac Intel, est-ce que ca te semble correct
Code: Select all
#! /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

User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88%
 
Posts: 3698
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Tests simulateur Numworks + KhiCAS

Unread postby Adriweb » 23 May 2024, 11:18

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

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.2%
 
Posts: 14778
Images: 1123
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Tests simulateur Numworks + KhiCAS

Unread postby parisse » 23 May 2024, 11:42

J'ajoute une commande pour faire un pkg, au cas ou...
Ca donne pour nwmac
Code: Select all
#!/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

User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88%
 
Posts: 3698
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Next

Return to Actualités

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"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.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
931 utilisateurs:
>910 invités
>14 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)