mcclurmc has quit [Remote host closed the connection]
philtor has joined #ocaml
struktured has joined #ocaml
<struktured>
hi all, anyone know how to make Jane Street's Core.Std.Set adhere to Jane Street's bin_prot interface? I usually do something module Foobar = struct type t = int * string with compare, sexp, bin_io end;; module FoobarSet = Core.Std.Set.Make(Foobar);; The FooBarSet.t will not have the bin_prot methods created (such as bin_size_t, bin_write_t, etc.)
<Kakadu>
> - js_of_ocaml.2.4.1 is in conflict with tyxml.3.1.1
<Drup>
huum
<Drup>
Kakadu: with dev or regular versions ?
<Drup>
we need to do a release of eliom, to be up to date with the various dependencies
rand000 has joined #ocaml
<Kakadu>
Drup: I have only default repo
<Drup>
huum
<Drup>
I'm not sure I'm going to have time to investigate, open a bug report against eliom with the complete dependency chain
thomasga has joined #ocaml
Hannibal_Smith has quit [Quit: Sto andando via]
fold has quit [Ping timeout: 240 seconds]
<hhugo>
Kakadu: the last release of eliom requires an old tyxml (3.1.1) where js_of_ocaml (with 4.02 support) requires the last tyxml (3.2.1)
tty57 has joined #ocaml
<Kakadu>
When are you going to release new eliom?
<Kakadu>
does this problem exists in dev repo?
<Drup>
no, eliom dev is compatible with last tyxml
MercurialAlchemi has quit [Read error: Connection reset by peer]
<tty57>
hi, I am looking for a ocaml based http proxy I could use as a basis for a small project. Does anyone know a http proxy written in ocaml that can easily be extended?
mort___ has quit [Ping timeout: 276 seconds]
ustunozgur has joined #ocaml
MercurialAlchemi has joined #ocaml
tty57 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<whitequark>
this looks like a terrible design (I already said that though)
<whitequark>
well, let's wait until the release
<Drup>
You didn't explain why you thing it's terrible, though :p
<whitequark>
they reimplemented half of lwt
<whitequark>
why are there these fibers *at all*?
<whitequark>
imo the parts that make GC work with multiple threads are by and large enough
<whitequark>
hm, let me just ask this on ML
<Drup>
which I consider a good thing, because this way, we will (in the long run) don't have to deal with Async/Lwt fragmentation in the eco system
thomasga has joined #ocaml
<whitequark>
no, we will have to deal with Async/Lwt/fibers fragmentation
<whitequark>
which is exactly why I think this is terrible
<Drup>
not if we can have Lwt/Async implemented as simple overlays on top of fibers
<whitequark>
oh, hmm
<Drup>
(I have no idea if it's actually possible, though)
<whitequark>
if it is, that would be great
<Drup>
that's my hope
<Drup>
gotta go, plane :p
Puffin has joined #ocaml
avsm has quit [Quit: Leaving.]
<ggole>
"Currently, compute-bound fibers that don't yield do tie up a domain."
<ggole>
So it's green threads, with yielding I/O?
<whitequark>
"fibers" usually refers to that, yeah
<ygrek>
imho that's ok, just run more domains than cores
<ggole>
So how does cross-domain interchange work? I need to watch the video, I suppose.
<whitequark>
it seems like some kind of Go-inspired scheme maybe? I'm not sure
<whitequark>
Rust guys eventually decided that OS threads aren't that expensive (and they aren't!), but m:n threading is
<whitequark>
OCaml may or may not have a different set of tradeoffs though
<kaustuv>
do any of the parallel runtime based systems use the virtual memory system as part of the GC? Eg. using protections and page faults to forward pointers?
<kaustuv>
(Is that even possible?)
<ggole>
Yeah, that's an old trick
<ggole>
See the C4 papers for an example
<ggole>
*a more recent example
<whitequark>
huh, neat trick
<kaustuv>
I was reading the C4 whitepaper last month in fact, and there they needed to use a special kernel I thought
eizodo has joined #ocaml
<ggole>
That's my understanding, yeah.
<kaustuv>
also C4 uses read barriers, and in my mind read barriers exchange dependable latency for low throughput, but I could be biased
<ggole>
A generation GC can use the same trick to eliminate branches, by placing a protected page at the front of the minor heap and trapping the exception that results when the first object that doesn't fit is initialized
<ggole>
Might be tricky to do in practice though
ustunozgur has quit [Remote host closed the connection]
englishm has quit [Ping timeout: 264 seconds]
avsm has joined #ocaml
dsheets has joined #ocaml
koderok has quit [Quit: koderok]
_andre has joined #ocaml
tty57 has joined #ocaml
bezirg has joined #ocaml
bezirg has quit [Quit: Leaving.]
bezirg has joined #ocaml
<companion_cube>
in rust you can choose m:n or 1:1 at link-time, I believe
<whitequark>
yes, though m:n is not production-ready atm
<whitequark>
and won't be very soon
samrat has quit [Quit: Computer has gone to sleep.]
<tane>
will they keep the deadline for 1.0 at the end of this year?
bezirg has quit [Quit: Leaving.]
<whitequark>
I think so
bezirg has joined #ocaml
<tane>
that'd be great
ustunozgur has joined #ocaml
thomasga has quit [Quit: Leaving.]
araujo has joined #ocaml
araujo has joined #ocaml
araujo has quit [Changing host]
avsm has quit [Quit: Leaving.]
cespinoza has quit [Ping timeout: 268 seconds]
Puffin has quit [Remote host closed the connection]
dsheets has quit [Ping timeout: 245 seconds]
siddharthv is now known as siddharthv_away
tobiasBora has quit [Ping timeout: 252 seconds]
cespinoza has joined #ocaml
<MercurialAlchemi>
whitequark: m:n is going away to a library
elfring has joined #ocaml
bytbox has joined #ocaml
msaegesser has quit [Ping timeout: 268 seconds]
bytbox has quit [Remote host closed the connection]
cespinoza has quit [Ping timeout: 245 seconds]
cespinoza has joined #ocaml
<tty57>
How do I make sure a function returns unit? I do some stuff with async and always end up with "type unit IO.t"
<flux>
let yourfunc arg1 arg2 : unit = ..
<flux>
if the problem is you're accidentally returning non-unit when think you should return unit
<flux>
hmm, I think you may need to run that under the async monad
<tty57>
mhh I thought >>| was that return stuff which ended the monad handling...
<tty57>
Return, would be the operator
<flux>
>>| looks to me like it lifts normal single-argument functions to the monad
<tty57>
Ok, then I got it all wrong :|
<flux>
so you don't need to write >> fun x -> return (snd x), I think
<tty57>
mhh, any hints on where to put "return" in my code?
<flux>
isn't there some starting point where you kick off the Async stuff?
<flux>
typically the thing about io monad is that you don't get out of it ;)
<flux>
so if you have a function that uses 'a IO.t, the code that uses such a function will also be in 'a IO.t..
<tty57>
ok
<flux>
all the 'a IO.t values must end up to the top-level Async monad executor, otherwise the concurrency doesn't work
<flux>
so you build your program so that IO stuff calls non-IO stuff, not vice versa
<tty57>
mhh, I guess this is the problem then...
<flux>
but if that's the only IO-stuff your program makes, I think there are ways around it
ygrek has quit [Ping timeout: 264 seconds]
<tty57>
I guess so, I am new to Ocaml and try to tinker a kind of proxy server using cohttp. But I guess i have to understand the IO completely before continuing..
<tty57>
thanks!
englishm has joined #ocaml
bytbox has joined #ocaml
kaustuv has left #ocaml ["ERC Version 5.3 (IRC client for Emacs)"]
bytbox has quit [Remote host closed the connection]
tty57 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
Submarine has joined #ocaml
wwilly has joined #ocaml
englishm has quit [Remote host closed the connection]
shinnya has joined #ocaml
mort___ has joined #ocaml
samrat has joined #ocaml
darkf has quit [Quit: Leaving]
ontologiae has quit [Ping timeout: 260 seconds]
englishm has joined #ocaml
thomasga has joined #ocaml
huza has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 255 seconds]
huza has quit [Quit: WeeChat 0.3.8]
msaegesser has joined #ocaml
wwilly has quit [Ping timeout: 272 seconds]
pyon has quit [Quit: brb]
mort___ has quit [Quit: Leaving.]
pyon has joined #ocaml
ygrek has joined #ocaml
mcclurmc has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
rgrinberg has joined #ocaml
tane has quit [Quit: Verlassend]
tty57 has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
<bernardofpc>
hi people
<bernardofpc>
are there any switches in opam that I can get a compiler 4.02 without the 2x compiling times ?
<bernardofpc>
(running 6+ years old hardware here, and will attempt to compile Coq afterwards...)
oriba has joined #ocaml
<flux>
I don't know, but apparently it has been fixed in the development version
<flux>
so now your problem has been reduced into how to install 4.02 dev via opam :-)
<bernardofpc>
Fixed in Version4.02.1+dev -> yes, right, but I see none of these in opam
<bernardofpc>
only 4.02.0+rc1 and 4.02.0+trunk
avsm has joined #ocaml
<flux>
hmm
<flux>
to me 'trunk' sounds like the most recent version
<flux>
ie. the same as dev
<flux>
but I don't know for sure if it needs to be updated somehow
sagotch has quit [Remote host closed the connection]
mort___ has joined #ocaml
cago has quit [Quit: cago]
ocp has joined #ocaml
<ygrek>
I believe 4.03+trunk is the way to go
skchrko has quit [Remote host closed the connection]
dsheets has joined #ocaml
morphles has joined #ocaml
pyon has quit [Quit: brb reconfig]
thomasga has quit [Quit: Leaving.]
englishm has quit [Remote host closed the connection]
pyon has joined #ocaml
englishm has joined #ocaml
wwilly has joined #ocaml
thomasga has joined #ocaml
rgrinberg has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
tane has joined #ocaml
hsuh has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
bezirg has quit [Ping timeout: 260 seconds]
ontologiae has joined #ocaml
ontologiae has quit [Ping timeout: 255 seconds]
cespinoza has quit [Ping timeout: 240 seconds]
cespinoza has joined #ocaml
Submarine has quit [Remote host closed the connection]
ustunozgur has quit [Remote host closed the connection]
ustunozgur has joined #ocaml
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
trap_exit has joined #ocaml
samrat has quit [Ping timeout: 264 seconds]
zpe has quit [Ping timeout: 268 seconds]
samrat has joined #ocaml
bezirg has joined #ocaml
dnm has quit [Ping timeout: 268 seconds]
claudiuc has joined #ocaml
rgrinberg has joined #ocaml
eizodo has quit [Ping timeout: 246 seconds]
<MercurialAlchemi>
If I wanted to take a template and feed to a pre-processor in order to turn into OCaml code, what would be the best way to go about that?
wwilly has quit [Quit: Leaving]
johnelse is now known as johnelse_in_hidi
johnelse_in_hidi is now known as johnelseinhiding
johnelseinhiding is now known as johnelse
<bernardofpc>
The dependency camlp5 of package coq.8.4pl4 is not available for your compiler or your OS. -> fail 4.03+trunk
octachron has quit [Quit: Leaving]
<adrien>
but why run on latest trunk? ='(
<MercurialAlchemi>
live by the trunk, die by the trunk
<MercurialAlchemi>
timber!
ocp has quit [Quit: Leaving.]
<bernardofpc>
adrien: I want to compile Coq, and not double the time for it on 4.02
<bernardofpc>
if there was 4.02.1+trunk, I'd do that
<adrien>
ah
<MercurialAlchemi>
hm, I wonder if I could coax ppx to do my bidding
<Kakadu>
AFAIR coq uses camlp5
<adrien>
better solution
<bernardofpc>
Kakadu: precisely
<adrien>
Kakadu: camlp5 has a whitelist of the supported ocaml versions
<Kakadu>
and camlp5 was available in 4.02 last week
johnelse has quit [Quit: leaving]
<adrien>
yeah but 4.02 is a lot slower to compile some things
johnelse has joined #ocaml
<adrien>
and there is a patch for that now
<Kakadu>
okay, forget it
<adrien>
I _think_ that's why bernardofpc is refering to
<adrien>
s/why/what/
<bernardofpc>
yup, I want a fast 4.02, _and_ to compile Coq
<bernardofpc>
if that means 4.03, that works for me
<bernardofpc>
but for the moment, I don't know , maybe ask someone to write the appropriate magic file for 4.02.1+trunk for opam
<adrien>
4.02 + patch or 4.02.x
<bernardofpc>
btw, it seemed to me that the bugfix for 2x slower was backportable to 4.01... am I wrong? If not, did someone try to bench 4.01+backport ?
<adrien>
but 4.02something is going to be easier and safer
<adrien>
poke jpdeplaix
<adrien>
and meanwhile I'll poke gasche on the ocamlbuild split :)
<bernardofpc>
[ERROR] The compilation of zarith.1.2 failed. -> so 4.03+trunk does not compile zarith
<bernardofpc>
(maybe that's already known)
bezirg has quit [Read error: Connection reset by peer]
WraithM has joined #ocaml
<def`>
bernardofpc: hmm, no, the major slowdown was introduced short before 4.02 release
_andre has quit [Read error: No route to host]
trap_exit has quit [Quit: Page closed]
_andre has joined #ocaml
tty57 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
_andre has quit [Read error: No route to host]
BitPuffin has quit [Ping timeout: 272 seconds]
rgrinberg has quit [Quit: Leaving.]
bytbox has joined #ocaml
_andre has joined #ocaml
rgrinberg has joined #ocaml
Arsenik has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
WraithM has quit [Ping timeout: 245 seconds]
morphles has quit [Ping timeout: 252 seconds]
pyon has quit [Read error: Connection reset by peer]
pyon has joined #ocaml
mort___ has quit [Ping timeout: 272 seconds]
zpe has joined #ocaml
zpe has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
hhugo has quit [Quit: Leaving.]
WraithM has joined #ocaml
jwatzman|work has joined #ocaml
q66 has joined #ocaml
q66[lap]_ has quit [Read error: Connection reset by peer]
bytbox has quit [Ping timeout: 245 seconds]
q66[lap] has joined #ocaml
WraithM has quit [Ping timeout: 240 seconds]
Arsenik has quit [Remote host closed the connection]