mode python par defaut

Bugs

Modérateur : xcasadmin

Répondre
frederic han
Messages : 1105
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

mode python par defaut

Message par frederic han » jeu. nov. 07, 2019 12:03 pm

Salut,
Si le mode par defaut est python. (ie on l'a choisi au premier lancement ou bien on l'a enregistré puis quitté Xcas et relancé)
alors:

Code : Tout sélectionner

normal((x^4-4)/(x-sqrt(2)))
tourne fou.

En revanche, si le mode par defaut est xcas et que l'on tape python_compat(1) avant alors ca marche bien tout de meme.

xcas 1.5.0-63
(ca le fait avec ton paquet ubuntu mais aussi avec fedora)
A+

parisse
Messages : 4871
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: mode python par defaut

Message par parisse » jeu. nov. 07, 2019 7:38 pm

Je viens d'essayer avec 1.5.0-75, je n'arrive pas a reproduire ce probleme. Et toi avec une version a jour?

frederic han
Messages : 1105
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: mode python par defaut

Message par frederic han » jeu. nov. 07, 2019 10:06 pm

Effectivement cela semble marcher avec la 1.5.0-75 (compilée moi meme)
mais avant 1.5.0-63 j'avais en plus d'autres problemes:
#
tout seul fait cracher xcas.
d'ailleurs, maintenant que ca bascule la cellule en syntace python, comment convertir une chaine en une variable?
Ex avant je faisais:

Code : Tout sélectionner

matrix(4,4, (u,v) -> #("x"+u)**v)
et ca ne marche plus. (La doc de # est toujours l'ancienne fonctionalité)

Fred

alb
Messages : 1195
Inscription : ven. août 28, 2009 3:34 pm

Re: mode python par defaut

Message par alb » ven. nov. 08, 2019 4:42 pm

salut,
j'avais pose la question ici

frederic han
Messages : 1105
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: mode python par defaut

Message par frederic han » mar. nov. 12, 2019 1:31 pm

Ha , merci, je ne savais pas, cela dépanne un peu.
Mais ca ne me semble pas souhaitable de jongler entre les modes. En particulier, dans un programme qui commence par def on garde le probleme.

Il faudrait ajouter un mot clef s'il n'y en a pas pour faire ce travail non? (Ex: var ou string2var ou ...)

parisse
Messages : 4871
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: mode python par defaut

Message par parisse » mar. nov. 12, 2019 6:37 pm

Par exemple hash?

frederic han
Messages : 1105
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: mode python par defaut

Message par frederic han » ven. nov. 15, 2019 9:12 am

parisse a écrit :
mar. nov. 12, 2019 6:37 pm
Par exemple hash?
ca fait plutot penser à une fonction de hachage...
les noms naturels que j'ai essayé etaient plutot: var, symbol, string2??, une option de convert,

Aussi à propos du #, même en 1.5.0.75:

Si je lance Xcas et que je valide une ligne ne contenant que #
alors ca plante:

Code : Tout sélectionner

#0  0x00007ffff48285e5 in __strlen_avx2 () from /lib64/libc.so.6
#1  0x0000000000462de7 in std::char_traits<char>::length (
    __s=0x7fffb673d10a <error: Cannot access memory at address 0x7fffb673d10a>)
    at /usr/include/c++/9/bits/char_traits.h:335
#2  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::insert (
    __s=0x7fffb673d10a <error: Cannot access memory at address 0x7fffb673d10a>, __pos=0, this=0x7fffffffcab0)
    at /usr/include/c++/9/bits/basic_string.h:1708
#3  std::operator+<char, std::char_traits<char>, std::allocator<char> > (__rhs=..., 
    __lhs=0x7fffb673d10a <error: Cannot access memory at address 0x7fffb673d10a>)
    at /usr/include/c++/9/bits/basic_string.h:6111
#4  xcas::parse (w=w@entry=0xbc8150, g=...) at History.cc:510
#5  0x0000000000494882 in xcas::Xcas_eval (w=0xbc8150) at Xcas1.cc:1366
#6  0x00000000004608ce in xcas::History_Pack_Group_eval (g=0xb55900, add_group=<optimized out>)
    at History.cc:2437
#7  0x0000000000461026 in xcas::History_Pack_cb_eval (q=<optimized out>, q@entry=0xbc8150) at History.cc:2552
#8  0x00000000004f1c40 in xcas::Xcas_Text_Editor::handle (this=0xbc8150, event=<optimized out>)
    at Editeur.cc:3267
#9  0x00007ffff5d0bf93 in ?? () from /lib64/libfltk.so.1.3
#10 0x00007ffff5d0dee5 in Fl::handle_(int, Fl_Window*) () from /lib64/libfltk.so.1.3
#11 0x00007ffff5d6e27b in fl_handle(_XEvent const&) () from /lib64/libfltk.so.1.3
#12 0x00007ffff5d6f962 in ?? () from /lib64/libfltk.so.1.3
#13 0x00007ffff5d6fc95 in ?? () from /lib64/libfltk.so.1.3
#14 0x00007ffff5d0d899 in Fl::wait(double) () from /lib64/libfltk.so.1.3
#15 0x00007ffff5d0d971 in Fl::wait() () from /lib64/libfltk.so.1.3
#16 0x000000000044db85 in Xcas_run (argc=1, argv=0x7fffffffd568) at hist.cxx:5422
#17 0x00000000004352d2 in main (argc=1, argv=0x7fffffffd568) at hist.cxx:5474

parisse
Messages : 4871
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: mode python par defaut

Message par parisse » dim. nov. 17, 2019 6:59 am

Alors make_symbol?
Je n'arrive pas a reproduire de crash pour # tout seul, peut-etre une configuration differente, as-tu une session avec la ligne non validee qui plante quand on valide?

frederic han
Messages : 1105
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: mode python par defaut

Message par frederic han » mar. nov. 19, 2019 2:48 pm

En fait avec la 1.5.0-75 compilée moi même je n'arrive pas à faire planter lorsque j'ouvre un fichier avec cette ligne.

Par exemple ici dans l'onglet où j'ai ouvert le fichier test, ca ne plante pas et je ne remarque rien de special. Ensuite si j'ouvre un nouvel onglet puis
tape # j'ai ce message bizarre:
Capture d’écran du 2019-11-19 15-40-35.png
Capture d’écran du 2019-11-19 15-40-35.png (24.5 Kio) Consulté 15 fois
En revanche, meme avec la 1.5.0-75 si je lance Xcas puis tape # alors ca fait planter xcas.

(avec des versions que je ne compile pas moi meme, ou ton binaire sous ubuntu # plante aussi)

frederic han
Messages : 1105
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: mode python par defaut

Message par frederic han » mar. nov. 19, 2019 2:49 pm

NB: voici mon .xcasrc

Code : Tout sélectionner

widget_size([0,14,40,10],40,90,1209,880,1,2,0,[56,255,60,255,58,255,216,255,56,255,49],"/usr/bin/firefox",0,0,"","");
cas_setup(0,0,0,1,0,[1e-12,1e-15],12,[4,100,0,25],0,0,0,1),xcas_mode(0);
xyztrange([-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-1.4,1.1,1,0.0,1.0,3]);

parisse
Messages : 4871
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: mode python par defaut

Message par parisse » mar. nov. 19, 2019 3:44 pm

Je ne vois rien au debuggueur, par contre effectivement avec ta config j'ai reussi a reproduire le segfault avec le binaire du package debian. C'est peut-etre a cause des + au lieu de << ligne 510 de History.cc, je vais la changer en

Code : Tout sélectionner

	*logptr(contextptr) << gettext("Syntax compatibility mode ") << print_program_syntax(xcas_mode(contextptr)) << gettext("\nParse error line ") << giac::first_error_line(contextptr) << gettext(" column ") << print_INT_(giac::lexer_column_number(contextptr)) <<  gettext(" at ")  << giac::error_token_name(contextptr) ;
	
et on verra si ca persiste.

Répondre