adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml MOOC http://1149.fr/ocaml-mooc | OCaml 4.02.3 announced http://ocaml.org/releases/4.02.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
raphaelss has quit [Read error: Connection reset by peer]
yaewa has quit [Quit: Leaving...]
moei has joined #ocaml
groovy2shoes has joined #ocaml
ontologiae has joined #ocaml
flasheater has quit [Ping timeout: 244 seconds]
ryanartecona has quit [Quit: ryanartecona]
pippijn_ is now known as pippijn
jonh has left #ocaml ["WeeChat 0.4.2"]
bugabinga has joined #ocaml
pierpa has joined #ocaml
reynir has quit [Read error: Connection reset by peer]
reynir has joined #ocaml
rand has quit [Quit: leaving]
orbifx has quit [Quit: AtomicIRC: The nuclear option.]
jbodeen has joined #ocaml
<jbodeen> How can I get a basic OCaml syntac parser -- in OCaml -- as fast as possible
Junsong has joined #ocaml
<j0sh> jbodeen: ocamlc -dparsetree file.ml ??
madroach has quit [Ping timeout: 260 seconds]
^elyse^ has quit [Quit: Leaving...]
madroach has joined #ocaml
Junsong has quit [Quit: Page closed]
junsli has joined #ocaml
nullcatxxx_ has joined #ocaml
<junsli> Hi folks, I am reading the "Getting started" page of ocamllab's compiler hacking repo. I am still not so sure about where to look for mentors. Anyone knows?
<junsli> Thanks.
<Drup> junsli: have you found a project you are interested in ?
<Drup> you could just email the person in question
<junsli> Drup: Hi again Drup
adrien_znc has quit [Ping timeout: 246 seconds]
<junsli> Drup: Thanks. The problem is that I don't know who is responsible for which.
<Drup> huum, it's supposed to be written
<junsli> Drup: And am I supposed to get an account on Mantis bug tracker?
adrien_znc has joined #ocaml
Nahra`` has quit [Remote host closed the connection]
<junsli> Drup: Say "let rec", I didn't see.
Nahra`` has joined #ocaml
<Drup> I'm wondering if this one is not solved already
<Drup> yeah, it's solved
<Drup> (warning 39)
<junsli> And is there any document about the workflow? Do I need to open a bug/enhancement on Mantis first?
damason has quit [Remote host closed the connection]
<junsli> Well. Let me finish the Getting started first. And see where to go from there. I have skimmed that document, but didn't find information about the bug tracking system.
<junsli> "make" just done.
<junsli> Thanks!
shinnya has quit [Ping timeout: 246 seconds]
<junsli> Drup: Emm, this place is even more quite than it was a year ago. Maybe the wrong time.
<Drup> as usual, mostly europeans folks.
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<Leonidas> what, I hang out here at 2am just fine :p
<junsli> 2am in Europe?
yegods has joined #ocaml
nullcatxxx_ has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
ygrek_ has joined #ocaml
yegods has quit [Client Quit]
damason has joined #ocaml
yegods has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
pkrnj has quit [Quit: Computer has gone to sleep.]
FreeBirdLjj has joined #ocaml
ncthom91 has joined #ocaml
fleaswallow has quit [Quit: Leaving]
infinity0 has quit [Remote host closed the connection]
ontologiae has quit [Ping timeout: 272 seconds]
jbodeen has quit [Ping timeout: 246 seconds]
yegods_ has joined #ocaml
yegods has quit [Read error: Connection reset by peer]
Nahra`` has quit [Read error: Connection reset by peer]
Nahra``` has joined #ocaml
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
yegods_ has quit []
mcmillhj has joined #ocaml
govg has quit [Remote host closed the connection]
infinity0 has joined #ocaml
ygrek_ has quit [Ping timeout: 272 seconds]
raphaelss has joined #ocaml
psy_ has quit [Ping timeout: 272 seconds]
psy_ has joined #ocaml
kushal has joined #ocaml
Nahra```` has joined #ocaml
Nahra``` has quit [Remote host closed the connection]
mcmillhj has quit [Quit: Lost terminal]
junsli has quit [Quit: Page closed]
ncthom91 has joined #ocaml
Fleurety has quit [Ping timeout: 240 seconds]
larhat2 has joined #ocaml
larhat1 has quit [Ping timeout: 240 seconds]
Fleurety has joined #ocaml
ggherdov has quit [Ping timeout: 240 seconds]
mawuli has quit [Ping timeout: 240 seconds]
cschneid has quit [Ping timeout: 240 seconds]
mawuli has joined #ocaml
cschneid has joined #ocaml
Bahman has joined #ocaml
ggherdov has joined #ocaml
cnnrjcbsn has joined #ocaml
<cnnrjcbsn> I have a question about using the OCaml LLVM bindings, might somebody be able to help me?
<cnnrjcbsn> Specifically, it seems that the Llvm_analysis module is not installed on my system. I have the Llvm module installed as well as LLVM itself. I have tried to copy a number of OCamlbuild configurations that appear to work for others, but without any success.
<cnnrjcbsn> Any help would be much appreciated.
Nahra```` has quit [Ping timeout: 250 seconds]
Nahra```` has joined #ocaml
tmtwd has joined #ocaml
teknozulu has quit [Ping timeout: 246 seconds]
ril has joined #ocaml
AltGr has joined #ocaml
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ljs has joined #ocaml
groovy2shoes has quit [Quit: Leaving]
larhat1 has joined #ocaml
patronus_ has joined #ocaml
l1x_ has joined #ocaml
vodkaInf1rno has joined #ocaml
mehdi_ has joined #ocaml
flx has joined #ocaml
FreeBird_ has joined #ocaml
Leonidas_ has joined #ocaml
Cypi_ has joined #ocaml
tvaalen_ has joined #ocaml
boegel|quassel has joined #ocaml
jerith_ has joined #ocaml
kandu_ has joined #ocaml
darkf has joined #ocaml
def`_ has joined #ocaml
tizoc` has joined #ocaml
n3f has joined #ocaml
ljs_ has joined #ocaml
ljs_ has quit [Remote host closed the connection]
bernardo1pc has joined #ocaml
sigjuice_ has joined #ocaml
riveter_ec2 has joined #ocaml
ljs_ has joined #ocaml
low-profile has joined #ocaml
cnnrjcbsn has quit [Quit: Page closed]
tg` has joined #ocaml
boegel has quit [Ping timeout: 246 seconds]
ljs has quit [Ping timeout: 246 seconds]
larhat2 has quit [Ping timeout: 246 seconds]
FreeBirdLjj has quit [Ping timeout: 246 seconds]
mal`` has quit [Ping timeout: 246 seconds]
tvaalen has quit [Ping timeout: 246 seconds]
sigjuice has quit [Ping timeout: 246 seconds]
Leonidas has quit [Ping timeout: 246 seconds]
low-prof1 has quit [Ping timeout: 246 seconds]
Cypi has quit [Ping timeout: 246 seconds]
clockish has quit [Ping timeout: 246 seconds]
stux|RC-only has quit [Ping timeout: 246 seconds]
def` has quit [Ping timeout: 246 seconds]
l1x has quit [Ping timeout: 246 seconds]
flux has quit [Ping timeout: 246 seconds]
tizoc has quit [Ping timeout: 246 seconds]
bitbckt has quit [Ping timeout: 246 seconds]
jbrown has quit [Ping timeout: 246 seconds]
riveter has quit [Ping timeout: 246 seconds]
tg has quit [Ping timeout: 246 seconds]
kandu has quit [Ping timeout: 246 seconds]
patronus has quit [Ping timeout: 246 seconds]
Fullma has quit [Ping timeout: 246 seconds]
vodkaInferno has quit [Ping timeout: 246 seconds]
jerith has quit [Ping timeout: 246 seconds]
neferty has quit [Ping timeout: 246 seconds]
mehdi__ has quit [Ping timeout: 246 seconds]
bernardofpc has quit [Ping timeout: 246 seconds]
bitbckt_ has joined #ocaml
riveter_ec2 is now known as riveter
flx is now known as flux
stux|RC-only has joined #ocaml
mal`` has joined #ocaml
Fullma has joined #ocaml
tmtwd has quit [Ping timeout: 264 seconds]
|jbrown| has joined #ocaml
clockish has joined #ocaml
tmtwd has joined #ocaml
l1x_ is now known as l1x
lewis1711 has joined #ocaml
Bahman_ has joined #ocaml
contempt has quit [Disconnected by services]
mthom`` has joined #ocaml
sspi_ has joined #ocaml
contempt has joined #ocaml
coody has quit [Ping timeout: 250 seconds]
hubertus21 has quit [Ping timeout: 240 seconds]
pootler has quit [Ping timeout: 250 seconds]
Sorella_ has joined #ocaml
pkrnj has joined #ocaml
dch_ has joined #ocaml
Bahman has quit [*.net *.split]
mthom` has quit [*.net *.split]
djellemah has quit [*.net *.split]
cthuluh has quit [*.net *.split]
dch has quit [*.net *.split]
sspi has quit [*.net *.split]
Sorella has quit [*.net *.split]
nicoo has quit [*.net *.split]
fraggle_ has quit [*.net *.split]
mietek has quit [*.net *.split]
bbc has quit [*.net *.split]
baum has quit [*.net *.split]
nicoo has joined #ocaml
MercurialAlchemi has joined #ocaml
cthuluh has joined #ocaml
sspi_ is now known as sspi
psy_ has quit [Quit: Leaving]
mac10688 has quit [Ping timeout: 244 seconds]
dch_ is now known as dch
pkrnj has quit [Ping timeout: 244 seconds]
Sorella_ is now known as Sorella
ljs_ has quit [Quit: Be back later ...]
djellemah has joined #ocaml
coody has joined #ocaml
fraggle_ has joined #ocaml
baum has joined #ocaml
bbc has joined #ocaml
mietek has joined #ocaml
hubertus21 has joined #ocaml
pootler has joined #ocaml
lewis1711 has left #ocaml ["Ex-Chat"]
ljs_ has joined #ocaml
<flux> pretty nice, earlier I used perl4caml for this purpose: https://github.com/aantron/lambda-soup (html scraping)
Nahra```` has quit [Remote host closed the connection]
tmtwd has quit [Ping timeout: 240 seconds]
igoroliveira has quit [Quit: Connection closed for inactivity]
nullcatxxx_ has quit [Ping timeout: 260 seconds]
python476 has joined #ocaml
nullcatxxx_ has joined #ocaml
AlexRussia has quit [Ping timeout: 240 seconds]
Mercuria1Alchemi has joined #ocaml
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ril has joined #ocaml
artart78 has joined #ocaml
<artart78> hello
<artart78> do you have pointers/advice to nice logging libs?
ygrek_ has joined #ocaml
<ljs_> That's the pain in the ass, espcially for conditional compilation. Let me know if you know one.
coody has quit [Quit: Connection closed for inactivity]
<flux> artart78, have you tried bolt or taglog?
<artart78> nope, I prefered to have feedback here before having to try different ones :D
<flux> truthfuly I don't think I've ever done any extensive logging, I may have just used some very thin syslog interface :)
<flux> but bolt is probably a mature library
<flux> and taglog is probably less so, though it might have some fresh ideas
<artart78> thanks
<artart78> bolt should do it
tvaalen_ has quit [Changing host]
tvaalen_ has joined #ocaml
tvaalen_ is now known as tvaalen
ljs_ has quit [Quit: None]
badon has quit [Ping timeout: 276 seconds]
Leonidas_ is now known as Leonidas
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Haudegen has quit [Ping timeout: 276 seconds]
govg has joined #ocaml
Haudegen has joined #ocaml
Cypi_ is now known as Cypi
govg has quit [Ping timeout: 265 seconds]
ril is now known as ril[away]
ril[away] is now known as ril
zpe has joined #ocaml
sh0t has joined #ocaml
octachron has joined #ocaml
sh0t has quit [Ping timeout: 240 seconds]
larhat has quit [Quit: Leaving.]
Bahman_ has quit [Quit: Ave atque vale]
ddosia has joined #ocaml
ril is now known as ril[away]
FreeBird_ has quit [Ping timeout: 260 seconds]
ril[away] is now known as ril
AltGr has left #ocaml [#ocaml]
ygrek_ has quit [Ping timeout: 276 seconds]
sepp2k has joined #ocaml
_andre has joined #ocaml
kandu_ is now known as kandu
Kakadu has joined #ocaml
dsheets has joined #ocaml
martintrojer has quit [Ping timeout: 240 seconds]
yegods has joined #ocaml
n3f is now known as neferty
coody has joined #ocaml
freehck has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
yegods has quit [Remote host closed the connection]
Bahman has joined #ocaml
Simn has joined #ocaml
jonludlam has joined #ocaml
pierpa` has joined #ocaml
pierpa has quit [Ping timeout: 272 seconds]
yegods has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
sz0 has joined #ocaml
AltGr has joined #ocaml
^elyse^ has joined #ocaml
Haudegen has joined #ocaml
AltGr has left #ocaml [#ocaml]
ontologiae has joined #ocaml
martintrojer has joined #ocaml
AltGr has joined #ocaml
^elyse^ has quit [Quit: Leaving]
AltGr has left #ocaml [#ocaml]
BitPuffin has joined #ocaml
tizoc` is now known as tizoc
tizoc has quit [Changing host]
tizoc has joined #ocaml
<Drup> artart78: if you use lwt, then lwt_log
Kakadu has quit [Ping timeout: 246 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
Sim_n has joined #ocaml
AltGr has joined #ocaml
dsheets has quit [Ping timeout: 240 seconds]
dsheets has joined #ocaml
mcmillhj has joined #ocaml
raphaelsss has joined #ocaml
raphaelss has quit [Ping timeout: 272 seconds]
psy_ has joined #ocaml
psy_ has quit [Client Quit]
psy_ has joined #ocaml
dsheets has quit [Ping timeout: 244 seconds]
rand has joined #ocaml
ontologiae has quit [Ping timeout: 244 seconds]
kushal has quit [Ping timeout: 244 seconds]
AltGr has left #ocaml [#ocaml]
infinity0 has joined #ocaml
Madars has joined #ocaml
raphaelssss has joined #ocaml
raphaelsss has quit [Ping timeout: 246 seconds]
mort___ has joined #ocaml
Kakadu_ has joined #ocaml
kushal has joined #ocaml
dsheets has joined #ocaml
iosys has joined #ocaml
jonludlam has quit [Ping timeout: 246 seconds]
jonludlam has joined #ocaml
KDr2 has joined #ocaml
dsheets has quit [Quit: Leaving]
dsheets has joined #ocaml
KDr2 has left #ocaml ["Leaving"]
tmtwd has joined #ocaml
ceryo has joined #ocaml
ncthom91 has joined #ocaml
ggole has joined #ocaml
ontologiae has joined #ocaml
AlexRussia has joined #ocaml
raphaelssss has quit [Quit: Leaving]
tmtwd has quit [Ping timeout: 240 seconds]
Sim_n has quit [Quit: Leaving]
ivan\ has quit [Ping timeout: 240 seconds]
ryanartecona has joined #ocaml
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ivan\ has joined #ocaml
ncthom91 has joined #ocaml
shinnya has joined #ocaml
tane has joined #ocaml
ryanartecona has quit [Quit: ryanartecona]
ryanartecona has joined #ocaml
Mercuria1Alchemi has quit [Ping timeout: 260 seconds]
pierpa` has quit [Ping timeout: 246 seconds]
psy_ has quit [Ping timeout: 250 seconds]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
<j0sh> mfp: gensqlite is a great tool. very well designed
<j0sh> s/gensqlite/sqlexpr
<j0sh> gensqlite is my (much simpler) project, any new features or improvements i've thought of have already been implemented (usually in a better way) by sqlexpr
<j0sh> the only thing missing from sqlexpr is ppx and labelled input arguments, both of which i've implemented for gensqlite. is there any interest in my helping port things over to ppx?
<j0sh> there is an issue on the bugtracker (https://github.com/mfp/ocaml-sqlexpr/issues/5) but i don't know if anyone has done further work on that. don't want to duplicate effort
FreeBirdLjj has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #ocaml
<mfp> j0sh: there's not really a grand design behind sqlexpr -- it's more a compendium of the things needed to avoid gotchas in actual SQLite3 usage from OCaml (e.g. handle management, interactions with threads, issues with stmt caching...)
rand has quit [Quit: leaving]
<j0sh> mfp: yeah, i tried to address the same things in my library and basically converged on the same patterns that sqlexpr uses
<j0sh> so i'm giving up on that, since sqlexpr is a lot more feature complete :)
<mfp> as for the ppx stuff, I haven't done anything, not sure if any of the participants in that issue have
<j0sh> companion_cube: ^
<mfp> labelled input args, maybe only in the ppx variant? (sql"..." and sqlc"..." basically use estring to achieve printf-like usage)
<companion_cube> it takes some work, I gave it a try but didn't finish
<companion_cube> mostly converting the lwt syntax, but there are probably other gotchas (estring?)
<j0sh> yeah, i'd port things to ppx first before adding new features like labelled input args
<companion_cube> I must have a branch somewhere if you're interested (wip)
<mfp> companion_cube: estring is for the fmt-like sql"..." stuff, ppx would ditch that altogether?
<j0sh> i don't think we'll need to use estring for the ppx (i already converted the gensqlite project to use sqlexpr-like format strings... using regexps. works well enough)
<companion_cube> well it would be nice to get rid of camlp4 entirely
<companion_cube> [%sql "....."] would work, for instance?
ril has joined #ocaml
<j0sh> companion_cube: yeah [%sql <string literal>] seems the best way to do it
<mfp> hmm dunno how hard it'd be to adapt the "runtime support" for the generated code in Sqlexpr_sqlite (directives and stuff)
<mfp> with estring's stuff, you go CPS to build the statements/exprs
<Drup> I would rather work on having that for macaque, though :)
ril has quit [Client Quit]
enamex has joined #ocaml
<j0sh> from my reading, it seems a matter of having the ppx return a statement/expression? is there more camlp4 work beyond that?
<mfp> j0sh: that's all, estring turns sql"..." stuff into format-string-like values
ontologiae has quit [Ping timeout: 276 seconds]
<j0sh> mfp: seems straightforward enough. i'll take a shot at it today
<mfp> j0sh: I believe the "runtime" support for the generated code (directives in Sqlexpr_sqlite, etc.) should be usable as-is w/ ppx
ril has joined #ocaml
<Drup> it's rarelly difficult to produce the exact same code with ppx and camlp4
<mfp> _if_ you keep the printf-like fmt specifiers
<mfp> otoh, if you use labelled inputs...
<j0sh> mfp: i guess i have to figure out exactly how the format specifiers are propagated through the code to the runtime. in my project, i just regexp the right patterns out into input/output lists and generate code from that
<j0sh> (and perform "normalizing" substitutions on the sql accordingly)
<companion_cube> I think estring also saves a list of strings somewhere
NingaLeaf has quit [Quit: Leaving]
<mfp> j0sh: how to you manage type conversions for input args?
orbifx has joined #ocaml
igoroliveira has joined #ocaml
slash^ has joined #ocaml
<j0sh> mfp: it's done at binding time, since we already know the type from the format specifier, it's straightforward to map that onto the correct sqlite conversion type
<j0sh> or do you mean something else?
<mfp> no just that, wasn't sure you had the type at that point
<j0sh> (forgive the naming)
<mfp> (I haven't used ppx at all yet)
<Drup> We could probably have a nice ppx library to make format-like strings
govg has joined #ocaml
<Drup> I mean, a generic library, you specify a bit what your format look like and it does the rest for you
zpe has quit [Remote host closed the connection]
<j0sh> Drup: that would definitely come in useful. specifying (output) path parameters in HTTP request lines, for example
demonimin has quit [Ping timeout: 240 seconds]
<j0sh> and strftime-like functions, etc
octachron has quit [Quit: Leaving]
<mfp> how difficult is estring's code hoisting in ppx? (used to cache statements in sqlc)
<j0sh> not sure. i didn't even know estring existed until i started reading the sqlexpr source code yesterday
FreeBirdLjj has quit [Remote host closed the connection]
groovy2shoes has joined #ocaml
<tobiasBora> Hello !
<reynir> Hello
<tobiasBora> I heard a few years ago that Ocaml doesn't evaluate a tupple in the same direction (right to left or left to right) depending on the program is compiled or interpreted, but I don't manage to run this "bug". Is it still present ? Or does anyone heard anything about it ?
<ggole> The order of evaluation is left undefined, so you shouldn't rely it being either way.
<smondet> tobiasBora: I think I remember the difference was between bytecode and native (haven't tested in a while)
pierpa` has joined #ocaml
jwatzman|work has joined #ocaml
Beluki has joined #ocaml
enquora has joined #ocaml
nullcatxxx_ has joined #ocaml
<Beluki> Hi. Is there a cross-platform (Unix and Windows) way to do sockets and html-parsing in Ocaml?
enquora has quit [Remote host closed the connection]
<Drup> the only decent html parser in ocaml is in ocamlnet
<smondet> Beluki: for sockets, the Unix module, despite the name, is pretty good on Windows, the Lwt library also (disclaimer: haven't touched windows in years)
<Beluki> Ah, okay.
ryanartecona has quit [Quit: ryanartecona]
<Beluki> I thought the Unix module would only work on well, unix.
<Beluki> Thanks. :)
djellemah has quit [Ping timeout: 240 seconds]
<smondet> Beluki: also this showed up lately about HTML parsing https://github.com/aantron/lambda-soup
sz0 has quit [Ping timeout: 240 seconds]
<Beluki> Looks a pretty good choice. Thanks.
<Drup> (it uses the parser from ocamlnet, unfortunatly)
<jmasseo> what is wrong with ocamlnet?
<jmasseo> people seem to dislike it
hubertus21 has quit [Ping timeout: 240 seconds]
<Drup> it's too big, too heavy and the interface is a bit dated
<jerith_> When I last looked, it wouldn't compile on OSX.
jerith_ is now known as jerith
<edwin> its more like a framework when what you'd really want is just one of its libraries
<jmasseo> right
<jerith> It also doesn't seem to do nonblocking I/O.
<jerith> (Although I didn't really look very hard after discovering I couldn't install it.)
<smondet> jerith: I think it does, but an event-based API instead of monads
<Drup> yeah, the asynchronous things came after
<jerith> Ah.
<edwin> with sockets it can, you can use it together with lwt, although you need some glue code
<jerith> I ended up just using lwt.
coody has quit [Ping timeout: 240 seconds]
shinnya has quit [Ping timeout: 252 seconds]
<smondet> the glue is there : https://github.com/jaked/lwt-equeue
<smondet> (last commit 2011 …)
<edwin> in my application I used ocamlnet as an http client and ocsigen as an http server, and I glued them 'by hand'
<tane> a wrapper for google's gumbo parsed would be nice, or a reimplementation in ocaml :)
govg has quit [Quit: leaving]
<edwin> that was before cohttp was as good as today
<Drup> edwin: but there is an http client in ocsigen
<Drup> you don't need to inflict that to yourself x)
<edwin> does it support persistent connections?
<tane> is there yet any pure ocaml http client that allows for connection pooling and reuse?
<Drup> edwin: No idea, I know it exits, but I don't have any usage of it
<Drup> tane: cohttp supports that, doesn't it ?
pootler has quit [Ping timeout: 240 seconds]
enamex_ has joined #ocaml
<tane> Drup, last time i checked they were working on something similar, but it didn't seem to work with Lwt
iosys has quit [Ping timeout: 265 seconds]
sigjuice_ has quit [Ping timeout: 265 seconds]
<edwin> there is callv
enamex has quit [Disconnected by services]
<edwin> that allows you to send a stream of requests and get a stream of replies
enamex_ is now known as enamex
<edwin> and with some changes I tried to combine it with lwt's pool
<tane> yeah, but that's of no use, is it
<tane> if request 2 depends on response 1
^elyse^ has joined #ocaml
tane has quit [Read error: Connection reset by peer]
damason has quit [Ping timeout: 265 seconds]
Kakadu_ has quit [Quit: Page closed]
Haudegen has quit [Ping timeout: 240 seconds]
stux|RC-only has quit [Ping timeout: 240 seconds]
<edwin> http://paste.debian.net/333381/ unreleased code
damason has joined #ocaml
<edwin> I open 2 connections to same host, and then use pipelining/persistence on each
Haudegen has joined #ocaml
<edwin> ocamlnet supports that too, but like I said bit more complicated to get it working with lwt
sigjuice has joined #ocaml
iosys has joined #ocaml
djellemah has joined #ocaml
stux|RC-only has joined #ocaml
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
^elyse^ has quit [Quit: Leaving]
tane has joined #ocaml
<edwin> at the moment I'm somewhat undecided in which way to evolve my app, although cohttp+ocsigen seems like the best way forward (I'm reluctant to upgrade to ocamlnet4 which brings gnutls, gnutls+openssl in same app I don't want that)
<Drup> edwin: if you want to do testing for the ocsigen+cohttp branch, you are very welcome
<edwin> so if I want to replace the persistent client connections I currently do with ocamlnet, with ocsigen's http client I should test this branch right? https://github.com/ocsigen/ocsigenserver/issues/54
ryanartecona has joined #ocaml
<edwin> thanks, do you have a timeline in mind for when that branch will be part of an ocsigen release?
mort___ has quit [Ping timeout: 246 seconds]
<Drup> when it's ready
<edwin> k, I'll try the branch when I find some time. is it backward compatible with ocsigen 2.6?
<edwin> I mean does it require many changes in existing applications, or should it be mostly transparent?
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<Drup> I think some API are changed, but only low level ones
<edwin> the next minor release of my app (LibreS3 1.2) will still use the old code, but for 2.0 I'll see if I can switch to use only ocsigen (w/cohttp)
<Drup> the dependency to ocamlnet is not droped yet, because it uses netstring in some places
<Drup> I started removing that too, but it's going to be done later on
ygrek_ has joined #ocaml
pierpa` has quit [Ping timeout: 264 seconds]
<edwin> I'm mostly curious about the http client, found a few bugs in ocamlnet while trying it (which got patched)
<Drup> for the http client, you should just use cohttp
<Drup> we should drop the one in ocsigenserver at some point
<edwin> hmm so where should the connection pooling code go? into cohttp itself or a separate lib?
<Drup> pretty sure ocsigenserver's *client* doesn't do anything clever over cohttp.
ril has joined #ocaml
<edwin> k
<tobiasBora> smondet: I tried to compile a version in bytecode and native, and it seems to be evaluated from right to left...
ontologiae has joined #ocaml
<edwin> Drup: there are some other tweaks that I do in my app wrt to ocsigen (SSL cipherlists, Lwt_unix pool size, Apache/NCSA combined style logging, etc.) that may not be appropriate for ocsigen to use as a default, but would it be useful if I send those upstream hidden behind a flag?
<edwin> (flag/configfile entry)
<Drup> I'm gonna be honest: I don't have the competency to decide
<Drup> so, propose, people will discuss
<edwin> k, github issues or mailing list (I hvaen't seen much activity on the ML)
<Drup> github issues
<edwin> ty
<Drup> or pull requests
Lis has joined #ocaml
nullcatxxx_ has joined #ocaml
<edwin> oh now I see you have an IRC channel too, sorry for hijacking #ocaml for questions about ocsigen :)
<Drup> no problem
<Drup> it's calm today
Kakadu has joined #ocaml
agumonkey has joined #ocaml
dsheets has quit [Ping timeout: 276 seconds]
Denommus has joined #ocaml
pootler has joined #ocaml
teiresia1 has joined #ocaml
jeffmo has joined #ocaml
teiresias has quit [Ping timeout: 240 seconds]
sz0 has joined #ocaml
Beluki has quit [Quit: Beluki]
rand has joined #ocaml
Anarchos has joined #ocaml
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
JuggleTux has joined #ocaml
yegods has quit [Remote host closed the connection]
_miachel has quit [Ping timeout: 246 seconds]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ryanartecona has quit [Ping timeout: 246 seconds]
ryanartecona has joined #ocaml
_andre has quit [Quit: leaving]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mort___ has joined #ocaml
badon has joined #ocaml
tenqueen7 has joined #ocaml
ggole has quit []
coody has joined #ocaml
Denommus has quit [Ping timeout: 250 seconds]
Denommus has joined #ocaml
hubertus21 has joined #ocaml
Guest38 has joined #ocaml
Guest38 is now known as adit
darkf has quit [Quit: Leaving]
orbifx has quit [Ping timeout: 250 seconds]
Denommus` has joined #ocaml
Denommus has quit [Ping timeout: 250 seconds]
orbifx has joined #ocaml
kushal has quit [Quit: Leaving]
BitPuffin has quit [Ping timeout: 276 seconds]
python476 has quit [Ping timeout: 246 seconds]
Denommus` is now known as Denommus
nullcatxxx_ has joined #ocaml
boegel|quassel is now known as boegel
boegel has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
boegel has joined #ocaml
Anarchos has quit [Ping timeout: 265 seconds]
tenqueen7 has quit [Ping timeout: 246 seconds]
mort___ has quit [Quit: Leaving.]
slash^ has quit [Read error: Connection reset by peer]
tristero has joined #ocaml
<rand> hey - anybody that knows why an ocaml program would crash without throwing an exception, but only returning a shell error-code?
Anarchos has joined #ocaml
mort___ has joined #ocaml
<rand> I
<companion_cube> it might be a stack overflow
<rand> the error-code is broken pipe. ..
<rand> 141
<companion_cube> well, no idea
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<adrien> because it tried to write to a pipe that had been closed :>
<rand> (: yes - but why no exception
<adrien> because the default action is that you get killed
<rand> lwt-async would print if catching an error, the mli states
<rand> ok?
<adrien> ah, lwt async?
freehck has quit [Remote host closed the connection]
<rand> yes
<adrien> well, for starter, ocaml itself doesn't try to catch broken pipe
<adrien> as for lwt/async, I can't tell
<jmasseo> yeah lwt will sig pipe
Anarchos has quit [Ping timeout: 255 seconds]
<jmasseo> if you have a socket that gets disconnected
<adrien> however their exception handling is different so maybe you're not doing it properly?
<jmasseo> you gotta ignore it
<rand> well why does Unix have an error EPIPE ?
yegods has joined #ocaml
<adrien> it's incredibly useful
<adrien> it means "you're trying to communicate with something that has died"
<rand> I've gotta ignore it?
nullcatxxx_ has joined #ocaml
<adrien> probably set a signal handler that does nothing
<rand> ah maybe I should read up on signals then
<rand> just thought it would be propagated as exception..
<rand> thx for the hints
<adrien> you cannot catch EPIPE at the syscall location (except on freebsd)
<adrien> so ocaml would have to set a signal handler then "find" which call is responsible and somehow forward the information there
sh0t has joined #ocaml
<adrien> not really obvious nor simple
<adrien> having it through errno would have been much nicer but it isn't the case
<adrien> so...
<rand> well my problem in practice is that I have a socket-server that I'm stress-testing with a client; the client get's a EMFILE exception, and the server just gets killed without exception
<adrien> strace :)
larhat has joined #ocaml
natimic has left #ocaml [#ocaml]
<rand> will look at that
<rand> thx
nuuit has joined #ocaml
<jmasseo> I never did figure out how to get lost connection handling to work sanely in lwt. I will revisit it at some point.
Bahman has quit [Quit: Ave atque vale]
badon has quit [Ping timeout: 264 seconds]
<adrien> I'm a bit surprised: it's really possible with posix to have all what's needed
<adrien> s/what's/that's/
badon_ has joined #ocaml
badon_ is now known as badon
<adrien> but EPIPE only applies to pipes
<adrien> so that means you'd be using pipes
<reynir> what's ocamlnat?
<edwin> why wouldn't EPIPE work if you set Sys.sigpipe to Sys.signal_ignore?
<rand> well I use a socket and Lwt_io's establish_server
<rand> strace gives me: write(5, "PKT\n75\n[\"Inp_ok\",{\"uid\":1,\"rid\":"..., 83) = -1 EPIPE (Broken pipe)
<rand> guess no wonder
ceryo has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<edwin> try setting the sigpipe to ignore, and also try setting Lwt.async_exception_hook and Lwt_timeout.set_exn_handler
<edwin> without those broken pipes or exceptions in handling one request could kill the server, whereas you'd probably want to log/report the error and keep handling more requests
<rand> will test that, thanks
johnf_ has quit [Read error: Connection reset by peer]
<rand> ahh cool - if I just send 'kill -SIGPIPE 6170
<rand> then the same happens
<rand> guess it's just standard behaviour then
sh0t has quit [Ping timeout: 250 seconds]
<rand> ... "Unix system programming in OCaml" is a nice book
raphaelss has joined #ocaml
cyraxjoe has joined #ocaml
<rand> cool - it now throws the EPIPE exception - thanks for all the help
<rand> just needed to set sigpipe to Signal_ignore
mort___ has quit [Quit: Leaving.]
<rand> hmm guess you can't catch an exception that has no location (; ... problem persists - guess I would need to go the Erlang way and restart the server if anything like it happens
^elyse^ has joined #ocaml
python476 has joined #ocaml
ontologiae has quit [Ping timeout: 250 seconds]
jonludlam has quit [Ping timeout: 250 seconds]
MercurialAlchemi has quit [Ping timeout: 240 seconds]
pkrnj has joined #ocaml
ddosia has quit [Quit: Connection closed for inactivity]
<zozozo> is there a very minimalistic input prompt package for programs taking input on stdin (which allows to have prompt history using up/down arrow for instance), other than lambda-term ?
<companion_cube> maybe bindings to readline?
<companion_cube> that would be nice to have anyway
<Drup> reynir: ocamlnat is the native toplevel
<Drup> zozozo: what's the issue with lambda-term ?
<j0sh> zozozo: pervasives along with rlwrap?
<zozozo> not anything, really, I was just wondering
<zozozo> actually, just reading stdin is working for my use case, but it's always nice to have a bit more
<Drup> lambda-term is pure ocaml and runs on windows, I doubt most of the alternatives based on bindings or whatnot do.
<companion_cube> readline is simple and can be found on any unix, so I don't think it's totally useless
<Drup> I smell NIH
<zozozo> right now I'm using the incremental API of menhir to read stdin and it's working well
<companion_cube> Drup: readline is hardly NIH
<Drup> companion_cube: making new bindings to readline to avoid lambda-term is
<companion_cube> but I know you have a few libraries that you worship
<Drup> well, no. I just hardly see the point of not using things when appropriate
<companion_cube> well, first, dependencies; second, the complicated OO interface
<companion_cube> which is probably very powerful, I don't deny it
<Drup> you don't need the OO interface for that task
<Drup> there is even an example doing exactly that
<Drup> it's like, textbook example, doing exactly the prompt with line edition
<Drup> and history, and all that
<companion_cube> which example is it?
<flux> if you do readline support, everything works, well, just as in readline :), including your perhaps existing configurations
<flux> I just tried and M-y doesn't work in utop (it uses lambda term, right?)
<flux> and even M-b works differently :)
hubertus21 has quit [Quit: Connection closed for inactivity]
<flux> and I'm always dismayed when I notice how gnuplot doesn't use readline :-(
<flux> and sleep->
<companion_cube> there is an OO interface in that, Drup
<Drup> come on, 5 lines ...
^elyse^ has quit [Quit: Leaving]
<companion_cube> I'd expect a basic completion library to provide one function that takes a completion callback and returns a line
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<adrien> flux: gnuplot isn't GPL
<adrien> it isn't gnu either
<adrien> and readline is GPL
ncthom91 has joined #ocaml
<adrien> (that said there's libedit but contrary to what you might read it definitely differs from readline in some places)
<adrien> night
ncthom91 has quit [Client Quit]
nullcatxxx_ has joined #ocaml
raphaelss has quit [Remote host closed the connection]
ollehar has joined #ocaml
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ryanartecona has quit [Quit: ryanartecona]
ril has joined #ocaml
tane has quit [Quit: Verlassend]
python476 has quit [Ping timeout: 246 seconds]
mac10688 has joined #ocaml
Simn has quit [Quit: Leaving]
jonludlam has joined #ocaml
JuggleTux has quit [Ping timeout: 265 seconds]
ygrek_ has quit [Ping timeout: 250 seconds]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
JuggleTux has joined #ocaml
jonludlam has quit [Ping timeout: 265 seconds]
ryanartecona has joined #ocaml
enamex has quit [Ping timeout: 244 seconds]
JuggleTux has quit [Ping timeout: 260 seconds]
ryanartecona has quit [Quit: ryanartecona]
moei has quit [Quit: Leaving...]
sz0 has quit [Quit: Connection closed for inactivity]
^elyse^ has joined #ocaml
ygrek_ has joined #ocaml
teiresia1 has quit [Changing host]
teiresia1 has joined #ocaml
teiresia1 is now known as teiresias
ryanartecona has joined #ocaml
nullcatxxx_ has joined #ocaml
jonludlam has joined #ocaml
ryanartecona has quit [Ping timeout: 252 seconds]
ryanartecona has joined #ocaml