lisaac target
Nicolas Boulay
nicolas.boulay at gmail.com
Thu Sep 17 07:31:18 UTC 2009
The following texte is in french. It's about to find a way to better
defined target in lisaac.
Nous avons 4 targets qui sont gérés au niveau du .lip. Il faudrait
trouver un moyen pour que cela soit gérer de préférence dans /lib_os/
directement. Cela faciliterait les ajouts.
Si on regarde les cibles gcc, il y en a un peu plus que nous :
http://gcc.gnu.org/install/specific.html
Elles sont sous la forme <cpu>_<os>. Par exemple, notre target unix
contient du code assembleur x86. C'est plus une target x86_unix. C'est
géré par une manipulation des paths de recherches des prototypes dans
le .lip.
Je pense qu'il faudrait trouver un système qui permet tout aussi bien
d'avoir une target "c_ansi" qui marche partout (FS_MIN en gros) et des
targets +ou - spécifique si besoin pour les cpus (x86_linux qui est le
plus courant pour nous).
Peut-être qu'il est possible de le faire en utilisant le bout de code
lip inscrit dans chacun des entêtes ?
Pour le cas spécifique de FILE_SYSTEM, il s'agit d'une sorte de
factory qui se définit à la première utilisation. Dans le cas de
lib_os/unix, j'avoue que j'ai du mal à voir la différence avec un
héritage direct de DIRECTORY_UNIX avec l"utilisation d'une sorte de
constructeur.
Le top serait d'avoir un FILE_SYSTEM qui soit une vrai factory
statique et qui renvoit le bon type de directory à la compilation.
Je connais mal les design pattern factory et les arcanes de lisaac
pour pouvoir faire une factory propre qui rend le bon type de façon
statique. Cela peut servir à plein de niveau pour gérer des proto par
défaut, pour prendre des spécificités par cpu, etc...
Je prends toutes idées :)
Nicolas
Le 16 septembre 2009 09:14, Nicolas Boulay <nicolas.boulay at gmail.com> a écrit :
> Je me doutais que c'était un truc du genre. Hériter d'un BLOC, j'avais
> un peu de mal :)
>
> Est-ce nécessaire que file_system.li soit dans lib_os/unix ? J'ai
> l'impression que c'est le seul prototype commun entre les différents
> lib_os/<>/file_system/.
>
> Le 16 septembre 2009 07:48, Hilbert Jerome <hilbertjerome at gmail.com> a écrit :
>> Hello Nico,
>>
>> c'est du pure Lisaac !!! Tu ne trouveras jamais cette puissance dans d'autre
>> langages. (à ce jour et à jamais :) )
>> le premier appel sur FILE_SYSTEM va calculer le parent et le fixer.
>> Durant son calcul, il crée un premier DIRECTORY qui est le répertoire
>> courant.
>> Après ce calcul, le parent devient une donnée.
>> C'est pour forcer ce calcul que FILE_SYSTEM ne contient que cela.
>> (Voir algorithme de lookup)
>>
>> Ben & Jérôme
>>
>> 2009/9/16 Nicolas Boulay <nicolas.boulay at gmail.com>
>>>
>>> Quelqu'un peut m'expliquer comment ce slot fonctionne ?
>>>
>>> Section Inherit
>>>
>>> + parent_directory:DIRECTORY <-
>>> ( + cwd:NATIVE_ARRAY(CHARACTER);
>>> + result:DIRECTORY;
>>>
>>> DIRECTORY.string_tmp.clear;
>>> cwd := DIRECTORY.string_tmp.to_external;
>>> `getcwd(@cwd,255)`;
>>> DIRECTORY.string_tmp.from_external cwd;
>>>
>>> result ?= DIRECTORY_UNIX.physical_get_entry (DIRECTORY.string_tmp);
>>> DIRECTORY.alias.put result to (result.path);
>>> ? {result != NULL};
>>> parent_directory := result
>>> );
>>>
>>>
>>> Le 16 septembre 2009 00:44, Hilbert Jerome <hilbertjerome at gmail.com> a
>>> écrit :
>>> > Salut,
>>> >
>>> > le slot est dans DIRECTORY.
>>> >
>>> > Jérôme
>>> >
>>> > 2009/9/15 Nicolas Boulay <nicolas.boulay at gmail.com>
>>> >>
>>> >> Quelqu'un peut-il m'expliquer comment cette ligne fonctionne ?
>>> >>
>>> >> entry := FILE_SYSTEM.make_file string_tmp;
>>> >>
>>> >> D'ou vient le slot make_file? il n'est pas dans file_system.li,
>>> >> j'imagine que le slot en héritage est en cause mais je ne comprends
>>> >> rien.
>>> >>
>>> >> nicolas
>>> >>
>>> >> _______________________________________________
>>> >> Lisaac-devel mailing list
>>> >> Lisaac-devel at lists.alioth.debian.org
>>> >> http://lists.alioth.debian.org/mailman/listinfo/lisaac-devel
>>> >
>>> >
>>> > _______________________________________________
>>> > Lisaac-devel mailing list
>>> > Lisaac-devel at lists.alioth.debian.org
>>> > http://lists.alioth.debian.org/mailman/listinfo/lisaac-devel
>>> >
>>> >
>>>
>>> _______________________________________________
>>> Lisaac-devel mailing list
>>> Lisaac-devel at lists.alioth.debian.org
>>> http://lists.alioth.debian.org/mailman/listinfo/lisaac-devel
>>
>>
>> _______________________________________________
>> Lisaac-devel mailing list
>> Lisaac-devel at lists.alioth.debian.org
>> http://lists.alioth.debian.org/mailman/listinfo/lisaac-devel
>>
>>
>
More information about the Lisaac-devel
mailing list