Page 5 sur 5

Re: Mise au point interface Khi+KhiCAS/chat

Message non luPosté: 17 Jan 2022, 07:48
de parisse
On se calme, svp, faut arreter de laisser croire que Giac ne fait pas les choses serieusement. Mais c'est un gros projet qui a une histoire (22 ans) et beaucoup de portages, donc c'est complexe.

L'archive "officielle" compilait tres bien avec gcc 9. Elle etait dans l'etat du source en decembre, avant que des corrections soient faites dans giac pour que ca compile avec des versions plus recentes de gcc, ces modifications sont bien sur incluses dans le SVN/GIT de geogebra.
J'ai mise a jour l'archive "officielle" hier, elle devrait compiler avec un gcc recent (mais je n'ai pas teste).

D'autre part, il y a bien sur des tests de regression dans giac, dans le sous-repertoire check de l'archive https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac/giac-1.7.0.tar.bz2, par exemple des calculs d'integrale qui permettent tres souvent de detecter des erreurs:
Code: Tout sélectionner
cas_setup(0,0,0,1,0,[1e-10,1e-17],12,[1,50,0,25],0,0,0),xcas_mode(0);
integrate(1/(x**4-1)**10,x);
integrate((x**4+4*x**2+6*x+4)/(x+1)**2,x);
integrate(x/((x-1)*(x+1)**2),x);
integrate(x/((x+1)*(x**4-1)),x);
integrate(1/(3*x*(x**2+x+1)*(x-1)**3),x);
integrate(1/(x**4-1)**2,x);
integrate(1/(x**4+1)**2,x);
integrate(1/(x**4+1)**4,x);
integrate(x**7/((x**4-1)*(x**2+3)),x);
integrate(((1+x)/(1-x))**(1/3),x);
integrate((sin(2*x)+1)/(cos(2*x)),x);
integrate((2*sin(x)+1)/(2*sin(x)-1),x);
integrate(exp(x)/(3+2*exp(x)),x);
integrate(sin(x)**2*cos(x)**4,x);
integrate(sin(x)/(sin(x)**3+cos(x)**3),x);
integrate(1/sqrt(2*x*t)*exp(-t**2/2),x);
integrate(sin(3*x)**4/exp((3*x+1)/cos(t)),x);
integrate(2*x/sqrt(x**2-1),x);
integrate((sin(x)+cos(x))/(sin(x)-cos(x)),x);
integrate(sin(pi/2-2*x),x);
integrate(tan(x)+tan(x)**3,x);
integrate((exp(x)-exp(-x))/(exp(x)+exp(-x)),x);
integrate(1/cos(x)**25,x);
integrate(1/(sin(x)-1)**3,x);
integrate(1/(sin(x)+1)**3,x);
integrate(ln(x+sqrt(1+x**2)),x);
integrate(atan(2*x/(1+x**2)),x);
integrate(x*sqrt(1+x**2),x);
integrate(sin(x)/cos(x)**2,x);
integrate(exp(x)/(1+exp(2*x)),x);
integrate(cos(x/2)**2/(x+sin(x)),x);
integrate(x/sqrt(x+1),x);
integrate(exp(x)/((3+exp(x))*sqrt(exp(x)-1)),x);
ratnormal(integrate(sqrt(x)/sqrt(a**3-x**3),x)/sign(a));
integrate(sqrt(a-x)/sqrt(x),x);
integrate(sqrt(x**2+a**2),x);
integrate(sin(2*x)*cos(x),x);
integrate(x*atan(x),x);
integrate(sinh(x)*cos(x),x);
integrate(atan(x)/x,x);
integrate(1/(sin(x)-2)**3,x);
integrate((2*x**2+1)*exp(x**2),x);
integrate(sin(3*x)/sin(x),x);
integrate(1/(t*ln(t)**2),t,2,x);
integrate(ln(1+2/(n*(n+3))),n,1,+infinity);
integrate((pi*t-t**2)*sin(n*t),t,0,pi);
integrate(exp(t)*cos(n*t),t,-pi,pi);
integrate(cos(x)/exp(x),x,0,+infinity);
integrate((t**4+t+1)/(t**6+t**3+2),t,1,+infinity);
assume(t>2),integrate(x*exp(1/2*abs(ln(x**2))),x,2,t),purge(t);
integrate(1/sqrt(2*x*t)*exp(-t**2/2),x,a,b);
integrate((x**2*(1-x))**(1/3),x,0,1);
normal(integrate(atan(sqrt(1-x**2)),x,0,1));
assume(x>0),integrate(ln(x**2+t**2)/(1+t**2),t,0,+infinity),purge(x);

Et geogebra a ses propres tests de regression.

Re: Mise au point interface Khi+KhiCAS/chat

Message non luPosté: 17 Jan 2022, 11:07
de legmask
parisse a écrit:L'archive "officielle" compilait tres bien avec gcc 9. Elle etait dans l'etat du source en decembre, avant que des corrections soient faites dans giac pour que ca compile avec des versions plus recentes de gcc, ces modifications sont bien sur incluses dans le SVN/GIT de geogebra.
J'ai mise a jour l'archive "officielle" hier, elle devrait compiler avec un gcc recent (mais je n'ai pas teste).


Désolée mais j'ai qu'une chose a dire Image

Re: Mise au point interface Khi+KhiCAS/chat

Message non luPosté: 17 Jan 2022, 11:19
de Adriweb
D'ailleurs je pourrai tester avec un clang recent, ca vaut le coup de vérifier la compatibilité.

Re: Mise au point interface Khi+KhiCAS/chat

Message non luPosté: 17 Jan 2022, 12:39
de parisse
Je n'ai pas teste parce que je ne vais pas risquer de casser une install qui marche en upgradant de gcc9 vers gcc11 (je n'ai pas le temps, en tout cas pour le moment).

Re: Mise au point interface Khi+KhiCAS/chat

Message non luPosté: 17 Jan 2022, 18:18
de Adriweb
Adriweb a écrit:D'ailleurs je pourrai tester avec un clang recent, ca vaut le coup de vérifier la compatibilité.

D'apres le repo de geogebra, j'ai fait ceci sans problème, ca utilise clang (tout récent) en interne sur macOS par défaut:
- cd && mkdir gg-svn && cd gg-svn
- svn co https://dev.geogebra.org/svn/trunk/geogebra/
- cd geogebra/giac
- Modifiez gradle/wrapper/gradle-wrapper.properties pour changer la version de gradle vers la 6.3 (je sais pas si y'a besoin de ca sur un environnement un peu plus vieux)
- ./gradlew giacOsx_amd64StaticLibrary (par exemple, commands "tasks" pour voir la liste de ce qui est dispo, y'en a plein)

Ca m'a généré build/libs/giac/static/osx_amd64/libgiac.a en 2 min 58s sur cette machine, et c'est donc une lib static prêt à être utilisé au sein d'un autre code.

Bon, juste pour dire qu'il y a moyen de faire tout ceci sans se casser trop la tête, même si évidemment c'est beaucoup plus lourd de passer par geogebra et tout le systeme de build via java et gradle.

J'ai pas eu le temps de regarder ce qu'il faudrait faire a partir de zéro via l'archive giac tar.gz du serveur upstream (hors geogebra etc. donc)

Re: Mise au point interface Khi+KhiCAS/chat

Message non luPosté: 17 Jan 2022, 18:58
de parisse
On peut remercier Zoltan Kovacs!