Bluebugs / freebox-elixir

Automatically exported from code.google.com/p/freebox-elixir
0 stars 0 forks source link

[BOITE A IDEES] elx.main() / elx.included_files() / argv #6

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago

Suggestions pour quelques trucs qui pourraient être pratiques :

- Une méthode elx.main() retournant le fichier .edj ou .js "primaire",
exemples:
elixir foo.edj: elx.main() -> ["foo.edj", "elixir/main"]
exilir foo.js: elx.main() -> "foo.js"

- Une méthode elx.included_files() retournant tous les fichiers js inclus

- Un moyen de passer des arguments au script, quelque chose comme
elx.argc/argv[].

Original issue reported on code.google.com by arnaud.lb on 30 Nov 2009 at 3:56

GoogleCodeExporter commented 9 years ago
Alors pour decrire le mecanisme d'include dans elixir. Il est base sur le 
principe 
d'une pile et on peut trouver tous les fichiers actuellement ouvert dans la 
variable 
cid de elixir_id.c (Ce qui veut dire que retourner la stack des includes est 
faisable 
simplement). Ensuite chaque module va gerer a sa maniere la liste de parametre 
qu'on 
lui passe.

Pour le module eet, il peut recevoir entre 1 et 3 parametres. Si on ne lui 
passe 
qu'un parametre, il va, si c'est le premier fichier eet a etre ouvert, prendre 
le 
premier parametre pour le nom du fichier a ouvrir et automatiquement utiliser 
"elixir/main" comme section. Mais si un fichier eet a deja ete ouvert, alors il 
va 
prendre le parametre donne comme nom de la section a ouvrir dans le precedent 
fichier 
eet. C'est une astuce quand on fait une lib. Pas la peine de se soucier ou se 
trouve 
le fichier, suffit de demander la section et ca va marcher :-).

Pour le argc/argv a la rigueur, je pourrais ajouter un elx.arg qui contiendrait 
un 
tableau de chaine de characteres, mais j'en vois assez peu l'utilite pour la 
box. 
Mais je veux bien que tu me decrives ton utilisation. Sinon autre astuce, 
toutes les 
variables d'environnement prefixe par ELX_ sont automatiquement charge dans 
elx.env.*.

Original comment by moa.blue...@gmail.com on 30 Nov 2009 at 4:17

GoogleCodeExporter commented 9 years ago
Pour le elx.env du coup c'est parfait pour ce que je voulais faire :) (un 
ELX_DEBUG=1
par exemple).

Pour le reste en effet il y a déjà presque tout ce qu'il faut dans le code 
(merci
pour les explications). Par contre on ne va avoir accès qu'au nom du .edj; 
pour eet
par exemple il n'y a rien pour récupérer le nom du fichier. Pour ça je 
verrais bien
un params() dans Elixir_Loader.func en plus du filename().

Original comment by arnaud.lb on 30 Nov 2009 at 5:29

GoogleCodeExporter commented 9 years ago
J'ai pense au params en plus de filename, mais ca permettrait de retrouver 
potentiellement les clefs de crypto utilise pour charger un include precedent. 
Et je 
ne sais pas si c'est un bien ou un mal. Ca pourrait etre un bien, en permettant 
a une 
lib qui fait des includes de recuperer le parametre du precedent appel et donc 
de bien 
s'integrer dans l'appli, mais ca pourrait etre aussi un mal en permettant de 
l'exporter vers l'exterieur. Donc j'hesite. Je suis pour l'instant plutot pour 
ajouter 
une fonction section qui permet d'obtenir juste la section. Mais je n'ai pas 
encore 
d'avis arreter sur la question.

Original comment by moa.blue...@gmail.com on 30 Nov 2009 at 5:45

GoogleCodeExporter commented 9 years ago
Oui sinon juste section, ça permettrait de couvrir ce problème

Original comment by arnaud.lb on 30 Nov 2009 at 5:54

GoogleCodeExporter commented 9 years ago
Est-ce que quelque chose comme ceci conviendrait ?

- Ajout de section() dans Elixir_Loader.func, ajout de elixir_loader_section() 
et
elixir_id_section().
- Support de section() dans les loaders eet et edje 
- Fonctions utilisateur elx.filename() et elx.section(), qui retournent le
fichier/section courant

Original comment by arnaud.lb on 1 Dec 2009 at 1:08

Attachments:

GoogleCodeExporter commented 9 years ago
J'ai mis ton patch dans le SVN avec une petite modification, j'ai cree une 
fonction 
elx.current qui retourne un objet avec un parametre filename et section. Dans 
l'idee, 
c'est que si un jour on veut recuperer la liste de tous les includes on puisse 
retourner le meme objet.

Original comment by moa.blue...@gmail.com on 1 Dec 2009 at 1:48

GoogleCodeExporter commented 9 years ago
Merci :)

Original comment by arnaud.lb on 1 Dec 2009 at 2:00