30

c pas mal le truc d'un seul fichier qui contient toutes les librairies...
u petit temps de décompression, mais pas génant.

par contre, une chose :
qd on lance un prog qui a besoind e libs sans avoir shrnklib, ça met crash intercepted...
(je sais que, dnas le readme, il est dit qu'il faut shrnklib... mais y'a plein de newbies qui lisent pas le readme)
=> ça serait peut-être mieux de mettre un message comme quoi on n'a pas trouvé shrnklib !

sinon, qd on essaye d'exécuter le STDlib que tu fournis, ça lance aucun prog (normal, vu qu'il n'y a que des libs de dans), mais faudrait peut-être mettre un message, pr le dire à l'utilisateur...
(encore pr les types qui font pas gaffe aux readme)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

31

mdr, tu es nostalgik du tps où t'étais newbie, squale92?grin
avatar
Attention, nouvelle signature #eeek#
https://mastodon.ti-fr.com/@redangel

32

pas vraiment, non smile
mais je n'ai pas pu m'empécher de tester sans envoyer shrnklib... (même si j'avais vu dans le readme qu'il allait absolument shrnkilb) => juste pr voir ce que ça donnait...
Je sais que pas mal de newbies liront pas le readme... et qu'ils vont dire "c de la merde, ça marche pas, ça plante"...

sinon, pkoi est-ce que tu met shrnklib dans stdlib, alors que, de toute façon, il faut qd même l'avoir ailleurs ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

33

Squale,29>Encore un message du genre librairies are not executable ?
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

34

shrnklib est dans stdlib. Oups. Erreur.
Sinon, oué faut que je debuggue a donf. tous les cas de figure possibles.

35

oué, shrnkilb est dans stdlib (enfin, d'après ce que j'ai maté à l'éditeur hexa, il me semble que c le cas...)
Sinon, c vrai que c une bonne diée (du moins, pr moi, qui n'utilise que rarement des programmes avec librairies, et qui n'ai donc pas trop souvent à subire les temps de décompression... quoique, vu que je compresse déjà quasiment tout en PPG (sauf les outils de développement..))

Link> ben, un message un peu plus explicite serait le bienvenu...


PpHd> sinon, petite suggestion pr shrnklib (je sens que ça peut être la mort à implémenter grin)
est-ce que ce ne serait pas possible de mettre shrkklib dans stdlib, mais sans compresser shrnklib ?
=> il n'y aurait pas besoin de shrnklib en dehors de stdlib... vu qu'elle ne serai pas compressée dedans... et ça ferai un seul fichier...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

36

C'est vrai que ce serait le mieux, je pense...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

37

mais dur à implémenter smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

38

Le mieux, ça serait d'utiliser ttpack à la place de shrnklib pour compresser, et de mettre les fonctions ttunpack directement dans PreOs.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

39

ça serait pas une mauvaise idée smile
et ça permettrai de supprimer ttstart smile
tous les programmes en PPG, directement launchés par PreOS !
JE SUIS POUR ! (totalement)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

40

Kevin:Ben il me semble que j'ia dit que c'etait possible de le faire avec ttpack, mais que je ne ferait pas <= Tn, qui est pour les libs statiques, ne verrait pas d'un bon oeil une lib dynamique contenant ttunpack. Et puis shrnklib est plus rapide que ttunpack roll
Ensuite je ne les mettrais pas dans preos, C'ést mieux dans une lib externe : une fois decompresse, la librarie est automatiquement desalloue (Bref meme si la lib de decomporession fait 40 K vous ne la verrez pas a l'execution du programme).

squale: Nan, pas les ppg. Les pack archivevs seulement sont lances par preos. Les packs archives sont auto-extractibles, pas les ppg.
Tu pourrais compresser les outils de developement en pack archive. Les nostub sont parfaitements supportes en pack archive.
Et non squale, shrnklib, n'est pas dans stdlib. stdlib continet le nom de la librarie a utiliser pour se decompresser. On peut donc utiliser pk92lib, ziplib, shrnklib, unpack dans une pack archive.

Et nan c pas possible de mettre des parties non-compresses au milieu d'autre compresses. Quoique roll Je vais voir si c'est possible en moins de 20 octets.

41

erf. bon, ben, dsl pr shrnklib : j'avais vu le nom dans la stdlib, c pr ça sad

j'ai dit que je ne compressais pas les outils de développement smile
(pour éviter de perdre du temps avec les progs que j'utilise le plus)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

42

PpHd
a écrit : Kevin:Ben il me semble que j'ia dit que c'etait possible de le faire avec ttpack, mais que je ne ferait pas <= Tn, qui est pour les libs statiques, ne verrait pas d'un bon oeil une lib dynamique contenant ttunpack.

Tu ne le mets pas en librairie dynamique, tu l'intègres dans le kernel! Comme ça, le système de librairies compressées devient beaucoup moins compliqué: au lieu d'aller chercher une librairie pour la décompression, qu'on doit toujours garder décompressée, tu décompresses directement avec les routines intégrées. C'est bien plus pratique pour l'utilisateur: il n'a besoin que du pack de librairies et pas d'une librairie de décompression externe. Et ttunpack ne fait qu'1 KO! Ce n'est pas un gros problème de l'avoir en RAM: on est toujours loin des 12 KO de Universal OS.
Tu pourrais compresser les outils de developement en pack archive. Les nostub sont parfaitements supportes en pack archive.

Un programme _nostub qui nécessite un kernel... roll

Mais il est vrai que ce n'est pas facilement implémentable de lancer directement un PPG. À la limite, on pourrait essayer d'intercepter l'erreur "Name is not a function or program" et faire qqch. avec ça. Ou alors on joue avec la ligne d'entrée comme AutoStart.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

43

>Squale: Bug corrige. En fait, ce bug survenait des qu'il trouvait pas une librarie.
Kevin Kofler a écrit :
Tu ne le mets pas en librairie dynamique, tu l'intègres dans le kernel! Comme ça, le système de librairies compressées devient beaucoup moins compliqué: au lieu d'aller chercher une librairie pour la décompression, qu'on doit toujours garder décompressée, tu décompresses directement avec les routines intégrées. C'est bien plus pratique pour l'utilisateur: il n'a besoin que du pack de librairies et pas d'une librairie de décompression externe. Et ttunpack ne fait qu'1 KO! Ce n'est pas un gros problème de l'avoir en RAM: on est toujours loin des 12 KO de Universal OS.

Certes, certes, mais si on peut s'en passer se sera mieux, non.
Et on perd la possibilite de compresser on-calc avec ziplib.
Ou la possibilite d'utiliser de nouvelles routines de decompression.
Remarque je peux toujours falsifier le header de preos pour en faire une lib
dynamique qui exporte une fonction de decompression de ttunpack.
Non ?
Ce qui m'enerve, c'es que je devrais le faire a la main et pas en mistub car
tigcc le supporte pas...

Un programme _nostub qui nécessite un kernel... roll

Pour un utilisateur qui possede deja un kernel, pkoi pas ?
Sinon, c vrai que ce n'est pas tres utile.

Mais il est vrai que ce n'est pas facilement implémentable de lancer directement un PPG. À la limite, on pourrait essayer d'intercepter l'erreur "Name is not a function or program" et faire qqch. avec ça. Ou alors on joue avec la ligne d'entrée comme AutoStart.

Oui. Mais je prefere mon systeme.
Meme si le shell ne supporte pas le pack archive, ca va se decompresser tout seul.

Et que penses tu du fait de sauver les auto-int dans des vecteurs ?

J'arrive toujours pas a corriger tous les leaks de memoire lors du hot reset (je libere l'estack et l'historique maintenant). Mais qu'est-ce qui peut bien prendre tant de place... Rechercher les handles du PrgmIO / Graph peut etre ?

Question: Pkoi AMS alloue toujours 4 handles de taille 4 au debut et qui ne serve a rien ?

44

cool pr la correction du bug.
j'avais pas testé sans autres librairies.
(pas newbie à ce point grin)

je trouve que garder le système actuel serait pas mal, mais en rajoutant en plus le PPG smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

45

J'ai deja dit que je ne pouvais pas gerer le PPG. Utilisez autostart si vous le souhaitez.

46

moué...
au pire, je peux l'intégrer dans mon TSR...
(je l'avais fait, pour certains cas)

mais bon.
tant pis smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

47

Arg, j'en ai marre. Je rajoute une option de compilation :
NostubIncompatibilty
Pour faire planter tous les progs nostub devil
Na tongue
PS: J'ai craque.

48

erg grin
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

49

PpHd : j'ai trouvé comment corriger une partie des pertes de mémoire après un hot reset.
La plus grosse perte provient de deux appels de WinOpen avec WF_DUP_SCR comme flag. Il suffit de supprimer les anciens blocs mémoires nécessaires aux duplicate screens. On peut trouver leur handle dans la structure WINDOW associée. Pour une des 2 fenêtres, le pointeur sur cette structure est très facile à trouver, mais pour l'autre, le pointeur est constant mais n'a pas l'air d'avoir été exporté.
Alors le plus simple c'est de parcourir toute la liste des fenêtres, et de supprimer tous les blocs mémoires des duplicate screens. Ce bout de code fonctionne, si on le rajoute juste avant AMS_HiddenFunc.
	move.l		($c8).w,a2
	move.l		(a2),a3			;FirstWindow
	move.l		(a3),a3
DelDupScreens:
	move.w		$20(a3),-(a7)		;handle du DupScr
	beq.s		NoDupScr
	move.l		HeapFree*4(a2),a0
	jsr		(a0)
	addq.l		#4,a7
NoDupScr:
	move.l		34(a3),a3		;NextWindow	
	move.l		a3,d0

Les autres pertes de mémoire proviennent de la création de la barre d'entrée de l'Home, et d'un MenuBegin. Pour la barre d'entrée, il suffit de supprimer l'handle dans la structure TEXT_EDIT associée à l'ancienne barre. Mais ici aussi, le pointeur vers la structure est constant, mais il n'est pas exporté...
Pour le MenuBegin, je sais plus exactement, mais ça a pas l'air facile non plus.
Et il y a encore quelques autres handles créés qui proviennent d'un Plotinit et de 2 CreateEmptyList, mais ça ne mange qu'environ 10 octets.

Avec uniquement la correction pour les duplicate screens, on ne perd plus que 200 octets au hot reset.

50

Merci beaucoup. J'ai aussi ameliore de mon cote en faisant un HeapFree(top_estack) et un nettoyage de l'historique.
Mais faut que j'implemente un systeme de protection (Au cas ou la liberation planterait).

51

joli smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

52

ExtendeD a écrit :
Les autres pertes de mémoire proviennent de la création de la barre d'entrée de l'Home, et d'un MenuBegin. Pour la barre d'entrée, il suffit de supprimer l'handle dans la structure TEXT_EDIT associée à l'ancienne barre. Mais ici aussi, le pointeur vers la structure est constant, mais il n'est pas exporté...

Il est facile à trouver (merci à Samuel Stearley, la version ici est adaptée à partir des sources de XtraKeys):
;Detect the address of the home screen entry line parameters
;Thanks to Samuel Stearley for this one!
 move.l $c8,a0
 move.l TE_select*4(a0),d0 ;get the address of TE_select
 move.l HomeExecute*4(a0),a0 ;get the address of HomeExecute
;The code for HomeExecute contains a jsr to TE_select preceded by a pea of the
;required address.
search_loop:
 addq.l	#2,a0 ;code is word-aligned, so no need to check every byte
 cmp.l (a0),d0 ;compare with the address of TE_select
 bne search_loop
 movea.w -4(a0),a0 ;get address of the home screen entry line

avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

53

arg tout ca a implante et a teste sad
Merci beaucoup.

54

Bon j'ai implante le truc d'Extended. On ne perd plus que 198 octets lors d'un Hot reset.
La j'ai la flemme d'ameliorer le truc pour en perdre moins tongue

55

PREOS contiendra combien de librairie intégrées au kernel ?? what

56

aucune, je crois smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

57

PpHd a écrit :
Bon j'ai implante le truc d'Extended. On ne perd plus que 198 octets lors d'un Hot reset.
La j'ai la flemme d'ameliorer le truc pour en perdre moins tongue

Allez, implante aussi mon code (enfin, celui de Samuel Stearley smile), ça fera encore moins de perdu. Il y a juste:
 move.w 34(a0),-(a7)
 ROM_THROW HeapFree

à rajouter à la fin pour effectivement libérer le bloc.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

58

Je vais faire un effort.

59

PpHd> Oui, oui, c'est genial, ca d'avoir une extracion automatique des runc embarrassed)

Squale92> Pour les ppg, tu peut le decompresser et les recompresser avec runc wink

60

Il n'y a pas de ttunppggen.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité