-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
48 lines (18 loc) · 1.07 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Performance :
- Si besoin, remplacer les ar.(i) par des unsafe_get (option de compilation ?)
Fichu benchmark : nice + realtime process + au boot, spécifier un seul coeur. ++ retirer tout appel système (timeofday)
* * * * *
Parser : pour éviter de créer des closures à chaque récursion, il faudrait que la librairie de parseur manipule des fonctions avec argument explicite
let myparseur (warg:'a parser_state) = ...
qui permet donc de définir des fonctions récursives prenant d'autres arguments (acu)
... sauf que non, on veut combiner avant l'exécution pas pendant.
alternative : rajouter un acu implicite dans angstrom, que l'on peut lire (écrire) avec des fonctions particulières.
('a,'b) t acu:'a return:'b
mais l'écriture de fonctions mutuellement récursives devient difficile
let rec parse1 = app ...
and parse2 = app ...
c'est interdit... il faut un constructeur explicite.
(lazy ?)
let rec parse1 = lazy ... (... force parse2 ...)
let (!!) = Lazy.force
Compilation options : -noassert -unboxed-types -unsafe -O3