summaryrefslogtreecommitdiff
path: root/doc/TODO
blob: 29192dfc6cd6e84d3c873f3ee77a57a94f934770 (plain)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
TODO in GF implementation
(P=Peter, A=Aarne, B=Björn)

----------------------------------------------------------------------
URGENT


*(P) Felmeddelanden

När det rapporteras syntaxfel bör det skrivas ut vilken fil det rör sig om.
Annars är det omöjligt att veta var felet ligger om man använder flaggan -s:

	> i -s Domain/MP3/Domain_MP_Semantics.gf
	syntax error at line 33 before ve , Proposition ,

Andra sorters fel är det inget problem med:

	> i -s Domain/MP3/Domain_MP_Semantics.gf
	checking module Godis_Semantics
	Happened in linearization of userMove :
	product expected instead of {
	  pl : Str 
	}


*(P) Hjälpkommandot

> h -printer
(där saknas -printer=cfgm)

> h -cat
WARNING: invalid option: cat

> h -lang
WARNING: invalid option: lang

> h -language
WARNING: invalid option: language

> h -parser
WARNING: invalid option: parser

> h -aslkdjaslkdjss
WARNING: invalid option: aslkdjaslkdjss
Command not found.
(det borde stå: "option not found")

> h -optimize
WARNING: invalid option: optimize

> h -startcat
WARNING: invalid option: startcat

> h h
h, help: h Command?
(det borde även stå om h -option)


*(P) En moduls -path adderas till dottermodulerna, 
så slipper huvudmodulen veta var alla barnbarn ligger:

fil A.hs:
abstract A = B ** {...}

fil B.hs:
--# -path=./resource
abstract B = Lang ** {...}

Alltså: filen A.hs ska inte behöva veta att B.hs använder sig av resource.


*(P) Möjlighet att sätta GF_LIB_PATH inuti GF, t.ex. med:

> sf libpath=...


*(P) Möjlighet att sätta startkategorin för en grammatik med sf:

> sf startcat=X


*(P) import-flaggor:

när man gör "pg -printer=cfg", måste man ha gjort "i -conversion=finite",
"pg" bryr sig inte om vilka flaggor som sätts i grammatikfilen

när man gör "pm -printer=cfgm", måste flaggan "conversion=finite" vara satt i grammatikfilen, 
"pm" bryr sig inte om ifall man har gjort "i -conversion=finite"

det är väl jag (Peter) som borde fixa detta, men jag vet inte var de olika flaggorna ligger

och det måste bestämmas vilka flaggor som har företräde:
- i grammatikfilen, med "flags conversion=finite"
- på kommandoraden, med "sf conversion=finite"
- till ett kommmande, med "i -conversion=finite fil.gf"


----------------------------------------------------------------------
NOT SO URGENT


*(P) _tmpi, _tmpo

P: när man använder "|" till ett systemanrop, t.ex:
pg | ! sort
så skapas filerna _tmpi och _tmpo. Men de tas aldrig bort.

P: Ännu bättre: ta bort filerna efteråt.

A: Sant: när GF quittas (om detta inte sker onormalt).
Eller när kommandot har kört färdigt (om det terminerar).

P: Bäst(?): skapa filerna i /tmp eller liknande.

A: Ibland får man skrivrättighetsproblem - och det är
inte kul om man måste ange en tmp-path. Och olika
användare och gf-processer måste ha unika filnamn.
Och vet inte hur det funkar på windows...

A: Ett till alternativ skulle vara att använda handles
utan några tmp-filer alls. Men jag har inte hunnit
ta reda på hur det går till.

B: Lite slumpmässiga tankar:
- man kan använda System.Directory.getTemporaryDirectory, så slipper man iaf bry sig om olika plattformsproblem.
- sen kan man använda System.IO.openTempFile för att skapa en temporär fil. Den tas dock inte bort när programmet avslutas, så det får man fixa själv.
- System.Posix.Temp.mkstemp gör nåt liknande, men dokumentationen är dålig.
- biblioteket HsShellScript har lite funktioner för sånt här, se
http://www.volker-wysk.de/hsshellscript/apidoc/HsShellScript.html#16


*(P) Hierarkiska moduler

P: Förslag: A.B.C ligger i filen A/B/C.gf
Största fördelen: man slipper ange --# -path=...