-
Notifications
You must be signed in to change notification settings - Fork 0
/
2002.12.31.txt
352 lines (270 loc) · 12.3 KB
/
2002.12.31.txt
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
Hello,
Here is the latest Caml Weekly News, weeks 17 to 31 December, 2002.
Happy new year !
1) The Use of C--?
2) ocaml embedded scripting language
3) Ensemble version 1.40 released
4) camlgl - OpenGL bindings for OCaml
5) Summary: LablGL vs CamlGL
6) ocamldefun : first release
7) lablgtk, lablgl, lablglut on win32/mingw
8) First alpha release of LablGTK2
======================================================================
1) The Use of C--?
----------------------------------------------------------------------
Jeffrey Palmer asked:
Has been any discussion on the possibility of using C--
(http://www.cminusminus.org) as a compiler back-end for O'Caml? (I took
a look through the archives, but didn't see anything relevant.) I'm not
suggesting that things would be better or worse than they are now, I'm
just interested in the thoughts of the O'Caml team.
Since there's already a back-end that generates very efficient native
code, is there any benefit to moving to this type of model? Are there
specific issues that have been addressed in the existing native code
generator that preclude the use of C--?
Norman Ramsey answered:
> Has been any discussion on the possibility of using C--
> (http://www.cminusminus.org) as a compiler back-end for O'Caml? (I
> took a look through the archives, but didn't see anything relevant.)
The C-- team are keenly interested in this possibility. Fermin Reig
wrote some code for OCaml that emits a version of C-- that looks
somewhat different from our current version. We have hopes of
adapting that in the future, but right now we are more concerned with
getting our C-- to work better. (Right now it runs hello world on
three platforms, but it doesn't actually do anything useful.)
Dmitry Bely and Fermin Reig pointed out:
Xavier Leroy already expressed his thoughts C--/Ocaml this some time
ago (hint: search for "C--" in the archive):
http://caml.inria.fr/archives/200106/msg00037.html
======================================================================
2) ocaml embedded scripting language
----------------------------------------------------------------------
Eric Merritt asked and Norman Ramsey answered:
(to see the thread in context, point your web browser to:
http://caml.inria.fr/archives/200212/msg00153.html)
> > It has to do with the type system more then anything
> > else. I use a stack to handle data that the
> > interpreted process is manipulating...
> >
> > Ok this is all fine and dandy, until a few months
> > from now when I want to add a new type say File of
> > Unix.file_descr. The word implementations to support
> > the new type wouldn't actually be a problem. However,
> > extending the type seems to be impossible.
This is a hard problem, to my knowledge not solved in the literature.
There are instances of interpreters that provide type-extensibility,
but none that also support separate compilation. We have solved this
problem through some heavy use of ML modules. I am still working on
the paper that describes this solution. But you can get some hints
from an unpublished manuscript `Toward A Calculus of Signatures' at
http://www.eecs.harvard.edu/~nr/pubs/sigcalc-abstract.html
The part you want is the extended example in Section 2.
======================================================================
3) Ensemble version 1.40 released
----------------------------------------------------------------------
Ohad Rodeh announced:
List,
A new release is now available from the system homepage at
http://www.cs.cornell.edu/Info/Projects/Ensemble,
enjoy!
RELEASE_NOTES for Ensemble version 1.40
Author: Ohad Rodeh
Last updated: 19/December/2002
RELEASE_NOTES
This release primarily solves a long standing problem with the use
of DLLs on win32 platforms. CE was rewritten so as to compiled into a
DLL instead of a static library. Since JNI requires shared libraries,
this finally allows cejava to work on win32 and not just Unix. The
second problem solved in this release is the gossip bug on win32, this
was due to problems with UDP sockets.
The major change in the CE API is in memory allocation
conventions. Instead of the application allocating memory chunks, such
as arrays of destinations and vectors pointing to C-memory chunks, CE
now copies these auxiliary buffers into its own memory areas. This
completely separates the memory areas used by the application and
CE/Ensemble. The only sharing occurs for message bodies which are not
copied. To this end the application must set the message alloc/free
functions used by CE for messages, for example:
ce_set_alloc_fun((mm_alloc_t)malloc);
ce_set_free_fun((mm_free_t)free);
will allows messages allocated by the application using malloc to freed
by Ensemble.
The API change would require CE applications to be modified for the new
memory conventions, which is not a "good thing". This was done primarily
to allow using DLLs, where each DLL keeps a private copy of LIBC.
Therefore, memory allocated by one DLL (the application) cannot be freed
by another DLL (CE). In the longer term, it separates the application
and library from each other and should make developement easier. It also
saves allocations for iovector arrays and destination arrays on the
critical message send path.
OCAML COMPILER VERSION
We are using version 3.06 for this version.
PORTABILITY
This version was tested on Linux (RedHat 7.1, 7.2, 7.3, i386
architecture) and windows XP.
======================================================================
4) camlgl - OpenGL bindings for OCaml
----------------------------------------------------------------------
Nickolay Semyonov-Kolchin announced:
Announcement CamlGL --- OpenGL bindings for Objective Caml
http://www.sf.net/projects/camlgl
Key Features:
- Full OpenGL 1.4 support
- All window system independent ARB extensions supported
- All published NVidia extensions supported (including NV30)
- All ATI extensions supported
- Windows and Linux version
- GLFW bindings
- unsupported Glut and SDL bindings
-----------------------------------------------------------
WARNING
this release was tested under RH8, gcc3.2, NVidia GL 41.91
-----------------------------------------------------------
Details
=======
1. CamlGL loads GL library at runtime. So you can switch between Native/Mesa
without recompiling. (This is currently not supported under Windows)
Gl.set_gl_lib "libGL.so.1"
2. CamlGL uses "plain" naming conversion for functions and enums.
glEnable cgl_lighting; (* glEnable(GL_LIGHTING); *)
glVertex3f 1.0 0.0 0.0; (* glVertex3f(1.0f,1.0f,1.0f); *)
glColor3b 255 255 255; (* glColor3b(255,255,255); *)
3. CamlGL uses Bigarray module for array representation.
let a = Hgl.ba_float_init [|1.0;0.0;3.0|] in
glVertex3fv a;
-------------------------------------------------------------
Notes
======
1. GL_ALL_ATTRIB_BITS
GL_ALL_ATTRIB_BITS declared as 0xFFFFFFFF in NVidia header.
Mesa defines it as 0xFFFF.
We are using Mesa constant.
2. GL_ALL_CLIENT_ATTRIB_BITS and GL_CLIENT_ALL_ATTRIB_BITS
Declared as 0xFFFFFFFF. We are using 0x3FFFFFFF.
3. Functions with standard type string
glGetString: int -> string
glLoadProgramNV: int -> int -> int -> string -> unit
glProgramNamedParameter4{fd}[v]NV: int -> int -> string -> ... -> unit
glGetProgramNamedParameter{fd}vNV: int -> int -> string -> 'a -> unit
glProgramStringARB: int -> int -> int -> string -> unit
4. GL_NV_vertex_array_range
VAR depends on two window system specific functions:
- {glX,wgl}AllocateMemoryNV
- {glX,wgl}FreeMemoryNV
We provide standard bindings for them:
val _glAllocateMemoryNV: int -> float -> float -> float -> tbabyte
val _glFreeMemoryNV: tbaabstract -> unit
See example in demos/simple/vatest.
5. Unimplemented
glMultiModeDrawElementsIBM
glVertexPointerListIBM
glTexCoordPointerListIBM
glNormalPointerListIBM
glIndexPointerListIBM
glFogCoordPointerListIBM
glEdgeFlagPointerListIBM
glSecondaryColorPointerListIBM
glColorPointerListIBM
glTexCoordPointervINTEL
glColorPointervINTEL
glNormalPointervINTEL
glVertexPointervINTEL
glReplacementCodePointerSUN
glGetPointerv
glMultiDrawElements
glGetVertexAttribPointervARB
glMultiDrawElementsEXT
glGetPointervEXT
glGetVariantPointervEXT
glGetVertexAttribPointervNV
glLoadIdentityDeformationMapSGIX
glDeformSGIX
6. Extensions not supported
ARB_pbuffer
ARB_render_texture
======================================================================
5) Summary: LablGL vs CamlGL
----------------------------------------------------------------------
Following the previous message, several comments were posted on the
list (thread start: http://caml.inria.fr/archives/200212/msg00199.html),
resulting in the following summary by Nickolay Semyonov-Kolchin:
Now we have comments from both authors.
Summary:
- LablGL is type-safe, CamlGL is not.
- LablGL support OGL 1.1, CamlGL support OGL 1.4 with extensions (most
important: shaders [NV,ATI,ARB]).
- LablGL support GLU 1.2, CamlGL has no GLU support.
- LablGL is better for beginners, CamlGL is better for people with prior OGL
knowledge.
- LablGL uses Raw module, CamlGL uses Bigarray.
- LablGL support all Ocaml platforms, CamlGL support only Windows (VC) and
Linux.
- LablGL is better tested.
Everything mentioned?
======================================================================
6) ocamldefun : first release
----------------------------------------------------------------------
Julien Signoles announced:
I'm happy to announce the first release of ocamldefun, a defunctorizer
tool for Objective Caml.
ocamldefun takes as input an ocaml program and it unfolds the functor
applications of this program in order to :
- gain execution time
- ease the job of static analysis tools.
More information are given on the web page dedicated to ocamldefun :
http://www.lri.fr/~signoles/ocamldefun/index.en.html
You can contact me for bug reports and/or feedbacks at the following
adress :
======================================================================
7) lablgtk, lablgl, lablglut on win32/mingw
----------------------------------------------------------------------
SooHyoung Oh announced:
If you want to use ocaml lablgtk, lablgl, lablglut bindings on win32/mingw,
please visit http://www.taglib.co.kr/ocaml/win32.html .
It includes
- lablgtk on win32/mingw: with some screen shots
- lablgl on win32/mingw without labltk, togl
- lablglut on win32/mingw: with some screen shots
Wish list
- gtkglarea
then added:
I put lablgtk win32/mingw version 0.2 just now in the page.
You can find native code related stuffs (cmxa, ...) and examples in it.
Dmitry Bely remarked:
BTW, I am bulding both Ocaml and lablgtk with gcc 3.2/mingw (with
-mno-cygwin -mms-bitfields) without a problem. So you probably should
mention gcc 3.2 as a supported compiler in your docs.
======================================================================
8) First alpha release of LablGTK2
----------------------------------------------------------------------
Jacques Garrigue announced:
As promised, here is a
First alpha release of LablGTK2, an interface to GTK2
GTK2 represents a new step for GTK, with full internationalization,
and decent text and tree widgets (at last!)
LablGTK2 is still experimental code, many new methods are not
interfaced, and for the interfaced ones the API may change. However
curious people may get a look at it, report bugs and make requests.
What is done:
* signals work (using the new calling scheme)
* the new text widget is interfaced (thanks to Benjamin Monate)
* conversion functions are provided to and from Utf8 (used
internally by GTK2)
* gdkpixbuf is included
What is not done:
* the new tree and list widgets are not interfaced
* many methods are missing, or not accessible due to API changes
* extensions (gtkgl, glade, gtkxmhtml) are not supported yet
* not tested on windows (but should work with minimum effort)
As usual you may find it at
http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html
======================================================================
Old cwn
----------------------------------------------------------------------
If you happen to miss a cwn, you can send me a message
([email protected]) and I'll mail it to you, or go take a look at
the archive (http://pauillac.inria.fr/~aschmitt/cwn/). If you also wish
to receive it every week by mail, just tell me so.
======================================================================
Alan Schmitt