<Drakken>
or at least that seems to be the current OCaml repo, and Camlp4 is included in it.
Yoy_ has quit [Ping timeout: 246 seconds]
Yoy__ has joined #ocaml
Tobu has joined #ocaml
oriba has quit [Quit: oriba]
bacam has quit [Ping timeout: 252 seconds]
adrien has quit [Ping timeout: 252 seconds]
deavidsedice has joined #ocaml
yroeht has quit [Ping timeout: 260 seconds]
Asmadeus has quit [Ping timeout: 260 seconds]
deavid has quit [Ping timeout: 252 seconds]
adrien has joined #ocaml
Asmadeus has joined #ocaml
companion_cube has quit [Ping timeout: 248 seconds]
mehdid has quit [Ping timeout: 246 seconds]
deavidsedice has quit [Ping timeout: 250 seconds]
deavid has joined #ocaml
yroeht has joined #ocaml
bacam has joined #ocaml
mehdid has joined #ocaml
Yoy_ has joined #ocaml
Yoy__ has quit [Read error: Operation timed out]
mehdid has quit [Ping timeout: 244 seconds]
Tobu has quit [Ping timeout: 272 seconds]
NihilistDandy has joined #ocaml
Yoy_ has quit [Ping timeout: 244 seconds]
mehdid has joined #ocaml
hto has quit [Quit: Lost terminal]
Yoy_ has joined #ocaml
Eledran has joined #ocaml
Eledran has left #ocaml []
jimmyrcom has quit [Read error: Operation timed out]
companion_cube has joined #ocaml
bacam has quit [Ping timeout: 246 seconds]
bacam has joined #ocaml
mehdid has quit [Ping timeout: 246 seconds]
mehdid has joined #ocaml
ulfdoz has joined #ocaml
mehdid has quit [Ping timeout: 260 seconds]
mehdid has joined #ocaml
Yoy_ has quit [Remote host closed the connection]
bacam has quit [Ping timeout: 244 seconds]
bacam has joined #ocaml
diml has quit [Ping timeout: 244 seconds]
yroeht has quit [Ping timeout: 260 seconds]
diml has joined #ocaml
<adrien>
hi
Tobu has joined #ocaml
milosn has quit [Ping timeout: 276 seconds]
yroeht has joined #ocaml
milosn has joined #ocaml
xenocons has quit [Ping timeout: 260 seconds]
ulfdoz has quit [Ping timeout: 246 seconds]
NihilistDandy has quit []
hto has joined #ocaml
Tobu has quit [Ping timeout: 260 seconds]
cdidd has joined #ocaml
Tobu has joined #ocaml
pango is now known as pangoafk
ftrvxmtrx has quit [Quit: Leaving]
thomasga has joined #ocaml
ftrvxmtrx has joined #ocaml
emmanuelux has joined #ocaml
mfp has quit [Ping timeout: 240 seconds]
albacker has joined #ocaml
albacker has quit [Changing host]
albacker has joined #ocaml
mfp has joined #ocaml
silver has joined #ocaml
albacker has quit [Quit: Leaving]
djcoin has joined #ocaml
emmanuelux has quit [Remote host closed the connection]
emmanuelux has joined #ocaml
cago has joined #ocaml
Tobu has quit [Ping timeout: 260 seconds]
Tobu has joined #ocaml
emmanuelux has quit [Remote host closed the connection]
skchrko has joined #ocaml
emmanuelux has joined #ocaml
ankit9 has joined #ocaml
Snark has joined #ocaml
silver has quit [Remote host closed the connection]
Tobu has quit [Ping timeout: 260 seconds]
silver has joined #ocaml
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
Tobu has joined #ocaml
ulfdoz has joined #ocaml
KDr2 has quit [Remote host closed the connection]
Tobu has quit [Ping timeout: 272 seconds]
iago has joined #ocaml
kaustuv has joined #ocaml
err404 has joined #ocaml
djcoin has quit [Quit: WeeChat 0.3.2]
_andre has joined #ocaml
Tobu has joined #ocaml
Tobu has quit [Ping timeout: 272 seconds]
djcoin has joined #ocaml
Tobu has joined #ocaml
ousado has quit [Remote host closed the connection]
ousado has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
Yoy_ has joined #ocaml
Znudzon has joined #ocaml
testcocoon has joined #ocaml
Yoy_ has quit [Ping timeout: 250 seconds]
fantasticsid has joined #ocaml
ankit9 has quit [Remote host closed the connection]
Yoy_ has joined #ocaml
<_andre>
is there anything out there that helps managing multiple ocaml installations?
<thelema_>
_andre: ocamlbrew?
jimmyrcom has joined #ocaml
<_andre>
thelema_: thanks, will check it out
<thelema_>
or just some environment variables to change the PATH and ocamlfind directoryconfig dir
iago has quit [Quit: Leaving]
smondet has joined #ocaml
snearch has joined #ocaml
Yoy_ has quit [Ping timeout: 245 seconds]
<mrvn>
_andre: I've got commit access to extunix and apllied your patches. I've changed the recvmsg a bit splitting it into different functions for recieving messages with or without FDs allowed. I've also added some copyright/author commens.
<_andre>
mrvn: i noticed, thank you!
<_andre>
mrvn: today i realized Lwt has sendmsg/recvmsg implemented in their Lwt_unix module
<_andre>
maybe extunix should use the same signatures?
<Lor>
Today I realized overbld's Lwt_unix uses mingw-pthreads instead of native windows threads (like the rest of ocaml under mingw).
<Lor>
Hilarity ensues.
<adrien>
s/mingw-pthreads/pthreads-win32/
<Lor>
That's probably the proper name for it, right.
<Lor>
It should hopefully be possible to recompile lwt to use native windows threads.
<adrien>
why do you think it should be possible? :-)
jamii has joined #ocaml
<Lor>
Because there's a lwt_unix_windows.c
<Lor>
More to the point, because pthreads are ifdef'd in lwt_unix.h
<diml>
lwt uses native windows threads by default on windows
<diml>
if autodetection does not work you can use --disable-pthread
fantasticsid has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<mrvn>
_andre: maybe. what is their signature?
skchrko has quit [Quit: ChatZilla 0.9.88.1 [Firefox 11.0/20120314111819]]
<_andre>
mrvn: sendmsg : file_descr -> io_vector list -> file_descr list -> int Lwt.t
<_andre>
except they use named arguments
avsm has joined #ocaml
<mrvn>
Is io_vector a string or something more complex?
<_andre>
it's a record with a string, length and offset fields
<mrvn>
When I have something that complex then I would rather use bigarrays.
<_andre>
their sendmsg uses the io_vector as a value/result argument... not very nice i guess
<_andre>
s/sendmsg/recvmsg/
<mrvn>
_andre: You want that. Only way to insert data into existing strings or split it into chunks.
<_andre>
i guess... but i think it'd be nicer to just return a string or string list and let the caller decide what to do
<mrvn>
_andre: if you need it in chunks or as part of a larger string then you would have to copy it yet again.
<mrvn>
I think there should be both. One function that allocates a string/bigarray and one that takes an existing one.
Znudzon has quit [Read error: Connection reset by peer]
mmajchrzak has joined #ocaml
albacker has joined #ocaml
rixed has quit [Remote host closed the connection]
Tobu has quit [Ping timeout: 260 seconds]
Tobu has joined #ocaml
<diml>
mrvn: there is also a version with bigarrays
<diml>
_andre: these functions are just bindings to the C functions, like Unix.read or Unix.write, they are not supposed to be high-level
<mrvn>
diml: But the recvmsg function knows how large the message is so it can allocate a string of the right size.
<mrvn>
diml: In the case of strings it has to memcpy() the message into the string so there is no loss in allocating it to fit.
<diml>
mrvn: Unix.read could do that to... if you do not want memcpy you must use the bigarray version
<mrvn>
diml: With Unix.read the user knows how large the expected result is so that is somewhat different.
<mrvn>
And large data (>16384 byte) must be read in chunks.
<mrvn>
Which I found actualy quite surprising. Nowhere in the docs does it say Unix.read is limited to 16384 bytes per call.
<flux>
is it limited by OCaml or by whatever stream you were reading/the OS?
<diml>
mrvn: in fact Lwt_unix.recv_msg does not memcpy buffers
<mrvn>
flux: limited because strings are movable so it has to read into a local buffer and then memcpy
<flux>
and it's not 'limited' per se: it's ok for Unix.read to read less characters than requested
<flux>
mrvn, oh, so it does a memcpy always. too bad.
<flux>
so I guess now I get to the topic you were discussing :)
<mrvn>
diml: if it doesn't memcpy() strings then it can't release the runtime.
<diml>
mrvn: indeed, but the fd is always a socket in non-blocking mode so it won't block
<mrvn>
.oO(Who said it is non-blocking?)
<diml>
mrvn: it is a Lwt_unix.file_descr not a Unix.file_descr
<flux>
I wonder if there've been thought on extending Lwt towards multi-process world. easy passing of messages and so forth. stuff similar to what netstring has nowadays.
<flux>
although personally I find Lwt more complicated for what it does than what I feel it should be :-/
<avsm>
flux: i'm working on one atm in avsm/ocaml-workflow (but nothing ready in there for release yet)
<flux>
avsm, nice
<diml>
flux: what do you feel it should be ?
<flux>
diml, well, I would like it if it were actually monadic
<flux>
values get consumed instead of staying as is
<avsm>
how would you support parallel threads then?
<flux>
I actually have written a similar system, but it was based on the idea of passing messages, not on having separate tasks that you woke up. but all that work is left to a previous company..
snearch has quit [Quit: Verlassend]
<flux>
so, you can do it
mmajchrzak has quit [Remote host closed the connection]
<flux>
it was actually very much inspired by the OCaml(/SML) Event-module
<avsm>
yeah, and Finagle (Scala/Twitter) is similar. it's a good model
<avsm>
a different set of tradeoffs though...
<flux>
for example you could construct a function for receiving a message (a blocking act) and if you 'used' that object, it didn't get consumed
<flux>
whereas the 'thread' concept of Lwt seems sort of strange to me. you keep creating all those little threads all the time, instead of having threads that you explicitly create, that executes blocking operations in sequence..
<diml>
flux: a big advantage is that you do not need to allocate a stack for each thread, so you can run much more threads
<avsm>
i find the little threads useful for the per-thread state; they are much more lightweight than event-style threads
<flux>
hmm, in my model I didn't have any explicit stack either, the stack was captured in the continuation
<flux>
of course, that takes space as well, but I tested 100000 'threads' no problem
<flux>
(but 1 million started to consume too much memory IIRC in that environment. I don't remember how much per instance.)
cago has quit [Quit: Leaving.]
* avsm
really wants to add split-stack support to ocamlopt, and see what Lwt looks like with that
<avsm>
also, delimcc is "almost enough", but doesnt support serialising the continuation on native code, only bytecode
<avsm>
or else you could suspend an Lwt/delimcc thread and bring it back up on another CPU/host
<avsm>
assuming that there are no references to the global heap in the stack
ftrvxmtrx has quit [Quit: Leaving]
<flux>
they could go along.. of course, it all breaks down if you depend on mutating such values :)
<mrvn>
lets eliminate the stack altogether and have each function allocate its stackframe on the heap.
<Lor>
sml/nj used to do that, I think.
<mrvn>
let foo = bar baz in blubber could be translated into bar baz (fun foo -> blubber)
<mrvn>
CPS style
pangoafk has quit [Ping timeout: 260 seconds]
pangoafk has joined #ocaml
djcoin has quit [Quit: WeeChat 0.3.2]
Tobu has quit [Ping timeout: 272 seconds]
Tobu has joined #ocaml
err404 has quit [Quit: Ex-Chat]
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
<albacker>
a let can be expressed as a lambda expression that's for sure.
<pippijn>
where can I read about Lwt?
<pippijn>
ah, found something
Tobu has quit [Ping timeout: 260 seconds]
<mrvn>
albacker: sure. but the point would be that each function gets a continuation
<albacker>
mrvn, can you give me an example of what you mean?
<mrvn>
fun cont x y -> cont (x+y)
ulfdoz_ has joined #ocaml
ulfdoz has quit [Ping timeout: 252 seconds]
ulfdoz_ is now known as ulfdoz
Tobu has joined #ocaml
pangoafk is now known as pango
asdfhjkl has joined #ocaml
mnabil has quit [Ping timeout: 260 seconds]
skchrko has joined #ocaml
fraggle_ has quit [Ping timeout: 248 seconds]
fraggle_ has joined #ocaml
jamii has quit [Ping timeout: 246 seconds]
pango has quit [Ping timeout: 252 seconds]
Snark has quit [Quit: Quitte]
pango has joined #ocaml
asdfhjkl has quit [Quit: Leaving]
seanmcl has joined #ocaml
Tobu has quit [Ping timeout: 272 seconds]
ftrvxmtrx has joined #ocaml
Tobu has joined #ocaml
skchrko_ has joined #ocaml
skchrko has quit [Ping timeout: 245 seconds]
skchrko_ is now known as skchrko
Xizor has joined #ocaml
Zedrikov has joined #ocaml
seanmcl has quit [Quit: seanmcl]
Tobu has quit [Ping timeout: 272 seconds]
emmanuelux has quit [Quit: @+]
skchrko has quit [Remote host closed the connection]
emmanuelux has joined #ocaml
ulfdoz has quit [Ping timeout: 246 seconds]
Zedrikov has quit [Quit: Bye all, see you next time!]
NihilistDandy has joined #ocaml
oriba has joined #ocaml
skchrko has joined #ocaml
Tobu has joined #ocaml
Submarine has quit [Quit: Leaving]
Tobu has quit [Remote host closed the connection]
Tobu has joined #ocaml
skchrko has quit [Remote host closed the connection]
Juzor has joined #ocaml
thomasga has quit [Quit: Leaving.]
zorun has quit [Read error: Connection reset by peer]
zorun has joined #ocaml
NihilistDandy has quit [Ping timeout: 252 seconds]
<emias>
[A
<emias>
[A
<emias>
(Sorry.)
<Lor>
Bah. flexlink requires flexlink to build.
<Lor>
Not prudent for such a fragile piece of software.
<Lor>
(the binary flexlink package doesn't work at all, just says "permission denied")
smondet has quit [Remote host closed the connection]
Tianon has quit [Remote host closed the connection]
Tianon has joined #ocaml
Tianon has quit [Changing host]
Tianon has joined #ocaml
Juzor has quit [Read error: Connection reset by peer]
seanmcl has joined #ocaml
seanmcl has quit [Client Quit]
albacker has quit [Quit: Leaving]
Juzor has joined #ocaml
emmanuelux has quit [Remote host closed the connection]