<pmdboi>
does anyone run any largely ocaml-related blogs?
Revision17 has joined #ocaml
Raziel has quit ["Yo soy goma. Tú eres cola."]
ski has quit [Read error: 104 (Connection reset by peer)]
ski has joined #ocaml
<humasect>
fixed !
smimou has quit ["bli"]
<vincenz>
hello
<vincenz>
anyone use lablGL?
<vincenz>
I don't know how to get it to work under cygwin
<humasect>
doesn't it need lablTK (and cygwin x11.. which might not have hw GL)?
<vincenz>
not certain
<vincenz>
it uses glut
<vincenz>
which I think doesn't require tk
exa has quit [Remote closed the connection]
<vincenz>
so no
<vincenz>
no tk
<vincenz>
the problem is that there is no makefile for it
<vincenz>
there is a makefile for mingw and native
<vincenz>
but not for cygwin
<vincenz>
also I'm having an issue of the fully native port of ocaml..whenevre I use unix...and build natively it complains about a lacking wsock32.lib
<humasect>
i use the mingw one for those cases
<vincenz>
why?
<humasect>
native without cygwin port? i use cygwin port for now.
<humasect>
becuase mingw is mostly the same as cygwin
<vincenz>
well seeing I Can't use lablGL...
<humasect>
cygwin "comes" with mingw
<vincenz>
in cygwin
<humasect>
yeah.. i'm doing my own GL bindings
<vincenz>
I tend to use cygwin typicall
<vincenz>
how so?
<humasect>
*did. i like glVertex2f syntax more than GL.glVertex or what it was.
<vincenz>
can't you just make a proper makefile?
<humasect>
and i have wrote code for doing vertex arrays of my own
<vincenz>
and I want glut
revision17_ has joined #ocaml
<vincenz>
basically I want to experiment a bit with soft bodies and cloth simulation in ocaml
<humasect>
i don't see why not
<vincenz>
I assume it'd be like the linux one except not use X11
<vincenz>
I tried making with the linux makefile ot no avail
<humasect>
i don't think i've got lablGL to work right at its current version, i was pretty satisfied with the haskell builtin opengl bindings
<vincenz>
hmm
<vincenz>
don't use haskell
<humasect>
yeah no thanks..
<humasect>
GlDraw.ends ();
<humasect>
I am not sure why the API was made this way.
<humasect>
cygwin comes with glut
<vincenz>
I'll look at the makefile
<humasect>
mingw ? ok
<vincenz>
lablgl is missing one for cygwin :(
<vincenz>
I just use a mingw makefile?
<humasect>
yeah, that's what i do
<vincenz>
I don't think so
<vincenz>
it uses special checks
<humasect>
(when i see one and no cygwin)
<vincenz>
to see which version it is
<vincenz>
by looking in the binary
<vincenz>
I assume mingw has a different signature than cygwin
<humasect>
..
<humasect>
cygwin has mingw as well..
<vincenz>
well
<vincenz>
it detects it as windows
<vincenz>
and then it won't work
<humasect>
under bash ?
<vincenz>
basically it does something in the makefile
<vincenz>
to check if it's mingw or windows
<vincenz>
and defaults to windows
<vincenz>
I think it must compile a dud program
<vincenz>
and then look at the binary
* vincenz
shrugs
<vincenz>
haven't looked at it in depth
<humasect>
ok edit the linux one
<humasect>
that would be closest .. it is rare for a mingw to check for mingw..
<vincenz>
linux one uses x11 include files
<humasect>
=(
<humasect>
maybe it will be happy enough if you install cygwin x11
<humasect>
but using cygwin glut for win32
<humasect>
*hence
<vincenz>
you know anything about soft body simulation?
<humasect>
somewhat
<humasect>
springs and concept
<vincenz>
yeah
<vincenz>
that for I have gotten
<vincenz>
I'm just not certain how to calculate the forces on impac
<vincenz>
impact
<humasect>
that far i have gotten? that i have forgotten?
Revision17 has quit [Read error: 110 (Connection timed out)]
<vincenz>
as in... understood how it works
<humasect>
ah
<humasect>
so you want to experiment with ocaml and toplevel (with GL)?
<vincenz>
nah
<vincenz>
just write code
<humasect>
ah
<vincenz>
and run it
<humasect>
yeah ok =)
<vincenz>
don't need a toplevel
<vincenz>
but I figure ocaml is a prime language
<vincenz>
fast and easy to code in
<humasect>
i respect the syntax now
<vincenz>
I have some c++ sources but tehy're mainly for 2d and they don't deal with collision against other soft bodies
<humasect>
ode does soft body, but that might not count for what you want to do. with an ocaml binding
<vincenz>
I could prolly do the generic 3D case, just not sure how to do collision so I googled a bit but it's all pure math, no algorithms on how ot solve it
<humasect>
yeah its maybe how you put the math in
<vincenz>
the thing is... if you look at physics... you calculate the force of impact by using impulse equations
<vincenz>
the problem is that these bodies deform so you can't calculate the final speed before you know the force and you need the final speed to find the force
<vincenz>
impulse change/time
<humasect>
ah so it solves forever ?
<vincenz>
I doubt anyone uses a solver for it
<vincenz>
that' would be too complicated
<vincenz>
so I'm trying to find for a cheap algorithm that uses some approximate equatiosn
<humasect>
hmm
<humasect>
maybe 1 dimensional liquid is easier. =)
<humasect>
er *n
<humasect>
it's the same thing isn't it, soft bodies and liquid. different properties
<humasect>
in the implementation side, maybe it's all under "fluid dynamics" or something.
<vincenz>
no
<humasect>
ok
<vincenz>
the model I looked at doesn't use fluid equations
<vincenz>
but a more simpler pressure model
<vincenz>
basically a cloth countaining a generic pressure
descender has joined #ocaml
<humasect>
hmm, i don't think i can help on that
revision17_ has quit [Read error: 110 (Connection timed out)]
<dylan>
I don't suppose anyone knows of an ocaml library for STM (software transactional memory)?
pango__ has joined #ocaml
malc_ has quit ["leaving"]
pango_ has quit [Read error: 110 (Connection timed out)]
pango__ is now known as pango
Revision17 has joined #ocaml
quamaretto has quit [Client Quit]
humasect has quit ["Leaving.."]
Smerdyakov has quit ["Leaving"]
mkhl has quit []
rq has quit ["Leaving"]
rq has joined #ocaml
Snark has joined #ocaml
Submarine has joined #ocaml
shawn_ has joined #ocaml
Maledict has joined #ocaml
revision17_ has joined #ocaml
m3ga has joined #ocaml
m3ga has quit [Client Quit]
rillig has joined #ocaml
Revision17 has quit [Read error: 110 (Connection timed out)]
schlick has left #ocaml []
smimou has joined #ocaml
__DL__ has joined #ocaml
Schmurtz has joined #ocaml
Raziel has joined #ocaml
malc_ has joined #ocaml
mkhl has joined #ocaml
__DL__ has quit [Remote closed the connection]
__DL__ has joined #ocaml
kryptt has joined #ocaml
Maledict has quit [Read error: 110 (Connection timed out)]
enthalpyX has quit [Read error: 104 (Connection reset by peer)]
<flux__>
dylan, I don't, but I know there's (on freshmeat?) an STM library for C, chances are it could be interfaced neatly with ocaml
<flux__>
hm, however, I do wonder if it would require using native threads in that case
Raziel has quit ["Yo soy goma. Tú eres cola."]
Smerdyakov has joined #ocaml
kryptt has left #ocaml []
Skal has joined #ocaml
pmdboi has quit ["This computer has gone to sleep"]
Bigb[a]ng has joined #ocaml
pmdboi has joined #ocaml
pmdboi has quit ["This computer has gone to sleep"]
tom_p has quit [Read error: 110 (Connection timed out)]
ramkrsna has quit [Read error: 113 (No route to host)]
descender has quit [Remote closed the connection]
ramkrsna has joined #ocaml
rq has quit ["Leaving"]
rq has joined #ocaml
tom_p has joined #ocaml
tom_p has quit [Read error: 110 (Connection timed out)]
Bigb[a]ng is now known as Bigbang
quamaretto has joined #ocaml
zigong has joined #ocaml
KrispyKringle is now known as Goatboy
Goatboy is now known as KrispyKringle
rq has quit ["Leaving"]
Raziel has joined #ocaml
descender has joined #ocaml
kryptt has joined #ocaml
Boojum has joined #ocaml
tom_p has joined #ocaml
Boojum has quit ["Leaving"]
Snark has quit [Read error: 110 (Connection timed out)]
vodka-goo has joined #ocaml
mwc has joined #ocaml
rq has joined #ocaml
<mwc>
Question about http://caml.inria.fr/pub/docs/manual-ocaml/manual038.html It says that threads are implemented internally, and so can't take advantage of SMP. On the otherhand, it claims there's a POSIX pthread implementation. That should be multiprocessor capable, right?
<malc_>
mwc: only one thread running ocaml code can be active at a given time
<malc_>
mwc: and as many threads of C as you wish
<mwc>
Hmm, that's a pretty severe limitation
<Smerdyakov>
POSIX specifies that implementations must take advantage of multiprocessors?
<mwc>
well, no, but pthreads on OS X do
<Smerdyakov>
Then I guess you agree that you've found no contradiction? :)
<mwc>
so what, the runtime obtains a lock around the ocaml system everytime an ocaml thread starts to run?
<malc_>
mwc: sortof
<Smerdyakov>
Implementing threading for multi-processors with a garbage-collected runtime system is non-trivial.
<Smerdyakov>
Implement it yourself if it's important to you. :)
<malc_>
blah
<malc_>
first nitpicking
<mwc>
yeah, that's true, you need to use an MP GC
<malc_>
then excuses
<malc_>
than insult
<malc_>
how childish
<Smerdyakov>
I think OCaml's threads are lightweight, meaning that they are fundamentally different from usual pthreads.
<malc_>
and you are wrong
<mwc>
yeah, are there any heavyweight threads?
<Smerdyakov>
Really? Too bad.
<malc_>
there are vmthreads and native threads
<malc_>
selectable at build time
<Schmurtz>
Smerdyakov, ocaml threads do not allow full parallele working
<Smerdyakov>
Schmurtz, I think that's what I just said
<Schmurtz>
ok ;)
<mwc>
yeah, so native threads. that's what I'm interested in. Guess we oughta put that on the req list for Ocaml 4.0
<Schmurtz>
I did not read everything
<malc_>
mwc: erm, why?
<pango>
bytecode uses vmthreads, native binaries use pthreads. I don't think you have other choices
<malc_>
pango: you can use sys OR vmthreads with bytecode
<pango>
malc_: pthreads with bytecode ? didn't know that
<mwc>
malc_, trying to take advantage of concurrency on G5's. I'm doing a design right now, and I'd like to be able to drop off worker threads
<pango>
malc_: actually I think vmthreads with native could be useful too
<mwc>
but if I can't do that, I need to rework my design or implement a diff't lang
<malc_>
i'm perfectly happy with the way it's done now
<mwc>
well, basically, I gain nothing from threading this way except a nicer design.
<Smerdyakov>
Oh, is THAT all?
<malc_>
if your threads do not block, you gain nothing
<Smerdyakov>
malc_, that's not true. CML provides a nice way to structure programs.
<malc_>
Smerdyakov: i'm not familar with CML to comment on that
<Schmurtz>
Smerdyakov, what is CML ?
<malc_>
Concurent ML one would assume
<Smerdyakov>
Schmurtz, see the Event module of the OCaml thread library for a port in OCaml.
humasect has joined #ocaml
<Schmurtz>
is it like using pipes, but with structured messages ?
<humasect>
how does one develop with the repl and source files? "open Something" does not find ./something.ml if a #use file references it..
<Schmurtz>
and with multiple write ends, and one read end ?
<Smerdyakov>
Schmurtz, it's "typed rendezvous-based communication" at the primitive level.
<Smerdyakov>
Schmurtz, but there is also the idea of user-constructible first-class communication events.
* Schmurtz
is looking to an Event tutorial
<flux__>
that Event-module is quite cool, imo
<Schmurtz>
ocaml help it a bit to quick ;)
<Schmurtz>
-it +is
<flux__>
yeah, ocaml documentation didn't really reveal to me what it's all about
<Smerdyakov>
Schmurtz, you might want to read John Reppy's conference paper on CML. (I forget the details of its publication.)
<flux__>
but some cml examples on the web did it for me
mwc has left #ocaml []
<Schmurtz>
I see what it is
<Schmurtz>
It seems to be like runloops in Objective-C
<Smerdyakov>
Do "runloops" give you a way to encapsulate synchronous events like CML does?
<Schmurtz>
to respond to your question, I must know what is synchronous events ;)
<Schmurtz>
in fact a runloop is a queue, you can post a event to ifunction
<Schmurtz>
to it
<Smerdyakov>
A CML event is something that might happen, and, if it does, produces a value of a known type.
<Schmurtz>
each event is mapped to a function that is executed when the runloop has time
<Smerdyakov>
That doesn't sound particularly related to CML.
<Smerdyakov>
Examples of events are receiving a message, completing sending of a message, receiving one of a number of messages, making an HTTP query and retrieving the result, ...
<Schmurtz>
so, it's the same thing
<Smerdyakov>
Runloops allow you to call a function that waits for one of a number of messages to be received, and then returns with that message's value?
<Schmurtz>
I don't know, I only used it for socket programming
<Schmurtz>
I only respond to messages, and never send them
<Smerdyakov>
What I just said has nothing to do with sending.
<Schmurtz>
I've read your question again with more attention, but I don't know the answer