-* Use of data on the stack as argument to MsgNew does not work
-* Warn when using a server socket to write, or a client one to poll
+- pull method of source diffusion in graspe-slave
+
+- Use a xbt_set for gras_procdata_t->libdata instead of a dict
+ so that the search can be linear.
+
+[sorry for the parts in french :]
+
+###
+### Very soon
+###
+
+- tcp->incoming_socks
+ sock specific tcp (buffsize) inutile
+
+###
+### Soon
+###
+
+- gras_os_getload
+
+- gras_datadesc_import_nws?
+
+- rawsock
+ Check that messages don't go on raw socks
+ Rename to meassock or whatever to show that they're not intended for
+ out of band communication, but for socket operation measurements.
+
+- Implement gras_datadesc_cpy to speedup things in the simulator
+ For now, we mimick closely the RL when on simulator, which is not needed.
+ (this was easier to do).
+ gras_datadesc_cpy needs to provide the size of the corresponding messages, so
+ that we can report it into the simulator.
+
+- callback on reception ?? (to put functions pointer back in place, etc)
+
+- category "ignored" should be dropped, since it's not portable (what's its
+ size on remote site?). But function's pointer may benefit from it.
+ We could change it to an attribute just as the "cycle" one. That way, it
+ would get malloced, but not transfered.
+
+###
+### A bit later
+###
+
+- Adaptative timeout
+- datadesc_set_cste: give the value by default when receiving.
+ It's not transfered anymore, which is good for functions pointer.
+
+============================================================================
* while (1) { fork; exec the child, wait in father }
-* message forwarding
+
+ - core ok (errors, logs ; dynars, dicts, hooks, pools; config, rrdb)
+ - virtualize (linux, solaris, SG) & conditions
+ - binary representation: any type, SNWF (Sender Native Wire Format)
+ - modules (log control, manage, token ring, bw)
+ - cleanups, documentation
[autoconf]
Check in autoconf that no datatype is bigger than 64, or dynar_map will
get into trouble...
+ Check the gcc version on powerpc. We disabled -floop-optimize on powerpc,
+ but versions above 3.4.0 should be ok.
+ The ucontext usability test is too light. It returns success on IRIX, but
+ shouldn't since ucontext are broken for us there.
[portability layer]
- Make a script to test how the padding bytes are on the current arch, and
- constitute a bestiary.
- Use Arnaud's structure parser in a macro
Dynar of type, such as ref of type
- Generate convertors in assembler ?
Mallocators
[Messaging]
Message forwarding
Message priority
- Messages in a tree manner
+ Message declarations in a tree manner (such as log channels)
-[network drivers]
- Interface: open_server, open_client, read, write, flush, close
- Implementations: TCP, SG (more after my PhD).
-
[errors]
Better split casual errors from programing errors.
The first ones should be repported to the user, the second should kill
- libgpg-error
[logs]
- Parse argv (check leonie and tbx_arg_iterator in tbx_parameter.h)
Several appenders; fix the setting stuff to change the appender
Hijack message from a given category to another for a while (to mask
- initializations)
+ initializations, and more)
+ Allow each process in simulation to have its own setting
[dict]
- Make a real container for the dict, so that the free function may be given
- only once for the whole tree (would help to send dicts).
- dichotomie in search
speed up the cursors, for example using the contexts when available
fix multi levels dicts
+[datadesc]
+ Error handling in cbps
+ Regression tests of cbps
+
+[testsuite]
+ use logging, not printf
+
*********
* GRAS1 * Integrer grassouillet a gras; multiplexage XML; module de comm
*********
-[type_bag SG]
- un peu comme les type_bag RL, mais sans tenir compte d'incoming ni
- outcoming.
- La finesse est de simuler la taille des envois sans les faire
- On peut aussi imaginer une version faisant ces envois effectivement, qui
- serait un peu plus lente, mais permettant de debugger cette partie de
- grassouillet
-
-[pilotes reseaux de sous grassouillet]
- TCP: utilise le fd. rien a faire.
- SG: Le send fait le boulot de malloc du recv de fd, et les rempli comme le
- send de fd.
- BLOC: Un nouveau truc, qui envoi des trames les unes derriere les autres,
- un write copie dans un buffer qui, quand il est plein, part sur la socket
- avec sa taille devant, et son CRC derriere.
- C'est le prix a payer pour ne plus mourrir si vite en cas de transmission
- pourrie (mais ca resoud tjs pas le pb du code malicieux)
- Possibilite de compresser les buffers avant l'envoi..
[simuler le select sur les sockets avec des threads]
Le plan, c'est qu'a l'ouverture d'une socket server, on cree un thread
selects sur un pool {leur socket x un pipe fait pour}
Quand qqch arrive sur le pipe, c'est le signal du suicide.
-[Conversions inter-architectures]
- Marquer les padding bytes explicitement aux structures (juste le sizeof
- doit suffire)
- Marquer les offsetof des fields explicitement a l'ajout.
- Prevoir tous les encoding pour les types elementaires
- [taille, sexe, signess[non, a un, a deux]]
- plus les flotants, justifiant un traitement a part
- Tester avec autoconf les encodings sur l'archi courante
- Trouver un moyen de convertir un encoding en un autre (si possible par
- blocs)
- Generer ces convertors en assembleur a chaud, puisqu'on a rien de mieux a
- foutre de notre temps
+[Inter-arch conversions]
+ Convert in the same buffer when size increase
+ Exchange (on net) structures in one shoot when possible.
+ Port to really exotic platforms (Cray is not IEEE ;)
[XML]
- Tout comme c'est dit dans les articles
-
-[Macro parseuse]
- Gerer les typedefs (necessite de l'aide de grassouillet)
- Gerer les pointeurs.
- Faut des annotations pour dire si c'est :
- - un AZT
- - un tableau dont la longueur est ailleurs dans la struct
- - une ref
- Ca peut se faire soit avec des commentaires, soit avec des macros se
- reecrivant a rien dans la vraie vie, et parsee. Mais le risque est que
- ces macros soient reecrites avant d'etre passee a mon bordel, selon les
- cpp.
- Gerer les unions => specifier des annotations, mais j'y crois pas
- Gerer les enum
- Gerer les long long
- Gerer les types struct, union et enum anonymes au milieu d'un autre bloc de
- donnees.
- Verifier que "char"="signed char" sur toutes les archis
+ Do what is written in the paper (multiplex on incoming HTTP)
+
+[DataDesc and Parsing macro]
+ Handle typedefs (needs love from DataDesc/)
+ Handle unions with annotate
+ Handle enum
+ Handle long long and long double
+ Forbid "char", allow "signed char" and "unsigned char", or user code won't be
+ portable to ARM, at least.
+ Handle struct/union/enum embeeded within another container
+ (needs modifications in DataDesc, too)
- Renomer gs_parse_tok_num en gs_parse_token
Check short a, b;
Check short ***
Check struct { struct { int a } b; }
-[Grassouillet]
- Gerer les typedefs pour aliaser un type sur un autre
- Merger gs_type_union_append_field et gs_type_struc_append_field si possible.
- Gerer les enum ?
- gs_type_copy/gs_type_free
- A quoi sert le champ name de gs_type_struct_append_field ?
- Ca plante bizarement si on met une structure n'existant pas dans le
- message (a l'usage)
- gs_type_dump, nardin, comment voir ce qui se passe sinon ??
+ Factorise code in union/struct field adding
-[Autres]
- Simplifier l'API pour virer les sequences
- Faire le parseur automatique de structures
- Faire toutes les modifs aux Utils listees plus haut
- Simplifier l'envoi de dynar et dico
- Mettre les mutex et semaphores dans les dynar directement
- Tenter (politiquement) le passage a GPL, pour voler du code.
+[Other]
+ Allow [homogeneous] dynar and dico to be sent
+ Make GRAS thread safe by mutexing what needs to be
************
* La suite *
************
GRAS double (ou encore "GRAS too" ou "too GRAS"):
- - Priorite des messages
- - Outils de visu pour ce qui se passe dans le simulo
- - Outils de visu/deployement/management pour RL
+ - Message prioritization
+ - Visualisation tool to see what happens in the simulator (Paje ?)
+ - Tool to visualize/deploy and manage in RL
GRAS (très):
- outils mathematiques pour dire des choses sur la validite du protocole