Page 1 sur 1

[HELP] Portage de Golem sur Nspire

Message non luPosté: 28 Sep 2019, 13:19
de Ti64CLi++
Bonjour,
Je ne sais pas si vous avez vu, mais j'ai fait un portage d'un interpréteur/compilateur de Golem sur Nspire, disponible ici.
Je suis actuellement en train de l'améliorer, et je rencontre un problème vraiment bizarre.

Dans le fichier neuron.gs, à la fin, ces quelques lignes ne marchent pas comme il faudrait:
Code: Tout sélectionner
println("Enter two values:")
print("V1: ")
let v1 = parseFloat(getline())
print("V2: ")
let v2 = parseFloat(getline())


C'est à dire que le print("V1: ") est affiché après l'exécution des getline(), de même pour le print("V2: ").
En faisant quelques tests sur les implémentations des fonctions print( et println(, j'ai remarqué qu'en remplaçant le print par un println, cela s'affichait bien dans l'ordre.

C'est donc la ligne putchar('\n'); qui fait que le texte s'affiche avant ou pas, dans le fichier corelib.c:
Code: Tout sélectionner
void core_print(vm_t* vm) {
   val_print(vm_pop(vm));
   vm_push(vm, NULL_VAL);
}

void core_println(vm_t* vm) {
   val_print(vm_pop(vm));
   putchar('\n');
    vm_push(vm, NULL_VAL);
}


Mais je ne comprends pas pourquoi cela ne marcherait pas avec print alors que ça marche avec println.
Comment le putchar('\n'); conditionne l'affichage direct ou non avec val_print?

Le code complet est disponible sur github : https://github.com/Ti64CLi/golem-nspire

En espérant que quelqu'un puisse m'aider,
Ti64CLi++

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 30 Sep 2019, 15:46
de Ti64CLi++
Up

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 01 Oct 2019, 03:49
de Adriweb
Ca ne serait pas buffurisé jusqu'au prochain \n, comme en gros le printf sur ordinateur par exemple ?

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 01 Oct 2019, 18:00
de Ti64CLi++
Euh, je sais pas, mais dans le code de val_print j'ai justement remplacé les printf par un fputs donc j'en sais rien je t'avoue, je m'y connais pas assez.
Mais même avec fputs ça marche pas :(

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 14 Fév 2020, 16:55
de Ti64CLi++
Up

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 14 Fév 2020, 18:51
de Extra44
Bon faudrait voir plus dans le détail, mais je dirais comme adriweb.
Que c'est bufferisé jusqu'à recevoir un "/n" pour envoyer tout le buffer sur l'écran.
Pour en être sûr, il ne te reste plus qu'à faire quelques essais avec print, println,getline... pour bien voir comment ces instructions fonctionnent(... ou pas ;) )

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 15 Fév 2020, 14:23
de Ti64CLi++
OK, merci je vais essayer de regarder.
Mais je ne comprends pas exactement qu'est-ce qui est bufferise, les instructions telles que printf et puts ou les fonctions créées dans golem ?

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 28 Aoû 2020, 16:12
de Ti64CLi++
J'ai finalement résolu mon problème, en recommençant de zéro.
Voici le lien du repo github : https://github.com/Ti64CLi/golem-nspire
Je m'occupe actuellement de rajouter des fonctionnalités, celle de base fonctionnant toutes à priori.
Je mets à jour sur TI-P dès que possible ;)

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 28 Aoû 2020, 16:42
de Zocipal
Super :-) !

Re: [HELP] Portage de Golem sur Nspire

Message non luPosté: 28 Aoû 2020, 16:51
de Ti64CLi++
Je ne savais pas que ce projet intéressait encore du monde :p