ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | http://www.ocaml.org | OCaml 4.01.0 announce at http://bit.ly/1851A3R | Logs at http://irclog.whitequark.org/ocaml
eikke__ has quit [Ping timeout: 252 seconds]
Eyyub has quit [Ping timeout: 265 seconds]
sheijk has quit [Quit: .]
aqz has quit [Ping timeout: 252 seconds]
aqz has joined #ocaml
aqz is now known as Guest28096
Guest28096 is now known as aqz
aqz has left #ocaml [#ocaml]
boogie has quit [Remote host closed the connection]
q66 has quit [Quit: Leaving]
maattdd has quit [Ping timeout: 252 seconds]
philtor has joined #ocaml
tautologico has quit [Quit: Connection closed for inactivity]
SethTisue has quit [Quit: SethTisue]
robink has quit [Changing host]
robink has joined #ocaml
SethTisue has joined #ocaml
SethTisue has quit [Client Quit]
<rgrinberg> how do I get the source directory in myocamlbuild?
<rgrinberg> i'd like to add an include path for cppo that's relative to my project root
* whitequark usually looks at ocamlbuild sources when he has these kinds of questions
<rgrinberg> there's a small chance gasche is around
<rgrinberg> so that roundtrip is saved :D
boogie has joined #ocaml
<whitequark> at 4AM his local time?
<whitequark> indeed, a small one
<avsm1> rgrinberg: last time i wanted to, it was tricky
<avsm1> rgrinberg: since ocamlbuidl really wants to copy it into _build to estalblish a dependency digest
boogie has quit [Ping timeout: 240 seconds]
<rgrinberg> avsm1: so what's the ocamlbuild way of doing it the way I want? somehow tell it copy over the stuff that will be #included as well?
<avsm1> ah! you're using cppo
<avsm1> erm, hrm, i had a similar issue with conduit and #include
* avsm1 glances sideways at the Make door
<avsm1> right now, it's almost 3am and ocamlbuild is driving me insane trying to do staged builds for cohttp
tlockney is now known as tlockney_away
<avsm1> it's just easier to break it up into separate ocamlbuild invocations, but then we lose dependency tracking across the subpackages
<rgrinberg> yes it is eye twitchingly annoying
<avsm1> i've got native code camlp4 building at least (fast!)
<rgrinberg> spending half your time sorting out build system issues :/
<avsm1> well, i figure that once conduit, cohttp and cow build, anything will build from tht template
<avsm1> cow's got the insane "build library, p4 extension that depends on library, and tests that depend on both" thing
<rgrinberg> i've looked into omake but it doesn't do folder hygiene like ocamlbuild (at least by default)
<avsm1> conduit has optional compilation
<avsm1> omake's pretty unmaintained
<avsm1> i'm struggling to remember why i fell out of love with ocamlmakefile
<avsm1> i think it's because i switched to omake in xensource for the larger xen ocaml codebase
<rgrinberg> ocamlbuild is not much more maintained
<avsm1> but ocamlbuild has that alluring "90% there" property, with the last 10% luring you into the siren's nest
<avsm1> its better now; been pulled out by hhugo into a separate opam package (for 4.03, not 4.02)
<whitequark> you can usually hack together some abomination in myocamlbuild.ml that solves your problem
<avsm1> yeah
<whitequark> Drup: could you please make the page titles on ocsigen.org/lwt/api vary
<whitequark> right now *all* of them have the title Lwt and it is incredibly annoying
johnnydiabetic has joined #ocaml
studybot has joined #ocaml
ontologiae has joined #ocaml
nikki93 has joined #ocaml
<whitequark> e.g. http://ocsigen.org/lwt/api/Lwt_io → Lwt_io
tlockney_away is now known as tlockney
divyanshu has joined #ocaml
shinnya has quit [Ping timeout: 264 seconds]
johnnydiabetic has quit [Ping timeout: 276 seconds]
boogie has joined #ocaml
avsm1 has quit [Quit: Leaving.]
avsm has joined #ocaml
avsm has quit [Ping timeout: 240 seconds]
tautologico has joined #ocaml
<rgrinberg> solved my problem btw, I should call getcwd as a toplevel binding instead of inside a rule
<rgrinberg> hacky as hell
cross has quit [Quit: leaving]
cross has joined #ocaml
avsm has joined #ocaml
jpdeplaix has quit [Ping timeout: 265 seconds]
jpdeplaix has joined #ocaml
avsm has quit [Ping timeout: 240 seconds]
jao has quit [Ping timeout: 276 seconds]
philtor has quit [Ping timeout: 255 seconds]
divyanshu has quit [Quit: Computer has gone to sleep.]
michael_lee has joined #ocaml
tlockney is now known as tlockney_away
inf-groupoid has joined #ocaml
divyanshu has joined #ocaml
inf-groupoid has quit [Read error: Connection reset by peer]
siddharthv is now known as siddharthv_away
siddharthv_away has quit [Quit: Lost terminal]
yacks has joined #ocaml
<ebzzry> What is the closest equivalevnt of Lisp's `cond' in OCaml?
<whitequark> if / else if / else if / else ?
<ebzzry> whitequark: ok
<ebzzry> whitequark: thanks
pango has quit [Ping timeout: 255 seconds]
avsm has joined #ocaml
avsm has quit [Ping timeout: 265 seconds]
pango has joined #ocaml
Bynbo7 has joined #ocaml
Axman6 has quit [Ping timeout: 252 seconds]
WraithM has quit [Ping timeout: 240 seconds]
ontologiae has quit [Ping timeout: 264 seconds]
maattdd has joined #ocaml
axiles has joined #ocaml
toroidalcode has joined #ocaml
WraithM has joined #ocaml
ggole has joined #ocaml
nikki93 has quit [Remote host closed the connection]
toroidalcode has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
nikki93 has joined #ocaml
avsm has quit [Ping timeout: 240 seconds]
Simn has joined #ocaml
araujo has quit [Quit: Leaving]
rgrinberg1 has joined #ocaml
Arsenik has joined #ocaml
rgrinberg has quit [Ping timeout: 264 seconds]
studybot has quit [Ping timeout: 272 seconds]
studybot has joined #ocaml
rgrinberg1 has quit [Quit: Leaving.]
sgnb has quit [Remote host closed the connection]
avsm has joined #ocaml
avsm has quit [Ping timeout: 252 seconds]
boogie has quit [Remote host closed the connection]
ygrek_ has joined #ocaml
ontologiae has joined #ocaml
sgnb has joined #ocaml
sgnb has quit [Remote host closed the connection]
sgnb has joined #ocaml
<companion_cube> ebzzry: I tend to favor match something with | _ when ... -> ... | _ when ... -> ... | ......
ontologiae has quit [Ping timeout: 240 seconds]
<companion_cube> when there are many cases
WraithM has quit [Read error: Connection reset by peer]
<ia0> I +1 companion_cube
<ia0> I do that all the time
avsm has joined #ocaml
WraithM has joined #ocaml
maattdd has quit [Ping timeout: 252 seconds]
<whitequark> hm, good idea
<whitequark> incr companion_cube;
<companion_cube> please, I'm no reference, just a humble programmer :p
<whitequark> :P
<flux> and not a number either, but a free man :)
rand000 has joined #ocaml
* adrien puts barriers around companion_cube
<companion_cube> noes
ikaros has joined #ocaml
eikke__ has joined #ocaml
arj has joined #ocaml
Kakadu has joined #ocaml
boogie has joined #ocaml
patojo has joined #ocaml
boogie has quit [Ping timeout: 252 seconds]
patojo has quit [Ping timeout: 240 seconds]
claudiuc has joined #ocaml
BitPuffi1 has quit [Ping timeout: 265 seconds]
<gasche> companion_cube: | () when ... is better!
<gasche> (I had a pa_cond camlp4 extension back in the days)
troydm has joined #ocaml
remy2 has joined #ocaml
remy2 is now known as remyzorg
<companion_cube> gasche: yes, I often use unit for this
ollehar has joined #ocaml
<gasche> I usually dislike 'when', except in this pattern or when it's really hard to do without it
<gasche> that said
<gasche> I don't remember actually using this pattern myself
<gasche> I guess I don't hack on the kind of software that needs it
<gasche> but with varianats (sum types) it's rarely needed to match on a condition rather than a value
<gasche> *variants
<gasche> ("varianats" looks like another ATS backend)
<companion_cube> depends, you don't always encode everything in the variant
<companion_cube> e.g. when writing a unification algorithm, you might match on the structure of both terms: | App (f, xs), App (g, ys) when List.length xs = List.length ys -> .....
avsm has quit [Quit: Leaving.]
<gasche> yep, it depends on the application
<gasche> but more often than not it works just as well to match anyway and handle the "different lengths" cases in the pattern
keen___ has joined #ocaml
<companion_cube> the "different lengths" case is a failure here
keen__ has quit [Ping timeout: 265 seconds]
ustunozgur has joined #ocaml
ontologiae has joined #ocaml
avsm has joined #ocaml
avsm has quit [Client Quit]
eikke__ has quit [Ping timeout: 252 seconds]
eizo has joined #ocaml
eikke__ has joined #ocaml
dsheets has joined #ocaml
Arsenik has quit [Remote host closed the connection]
nikki93 has quit [Remote host closed the connection]
kaustuv has joined #ocaml
<kaustuv> Is there a simple way to see what version of cmdliner a given opam binary is linked to?
boogie has joined #ocaml
<adrien> strings!
<adrien> (seriously, that's probably almost the best option)
<kaustuv> Ah, right, thanks. It seems that opam distributes its own local copy of cmdliner
<kaustuv> Or maybe not. Hmm.
<gasche> if it's using a released version, ocamlobjinfo should give you the hash
<gasche> and then you could manually compare with the hashes of the known-version
<gasche> maybe library authors should take the habits of listing the interface hashes of their releases on some webpage for this purpose
<kaustuv> ocamlobjinfo is the thing I tried first but it didn't work.
boogie has quit [Ping timeout: 240 seconds]
<adrien> ocamlobjinfo on an EFL file?
<gasche> ah
<gasche> yeah, native compilation
<kaustuv> Anyway, I found the issue. Opam is using cmdliner version 0.9.3 which still has the annoying leaking temporary files bug. I'll file an bug report that this should be updated to 0.9.4
BitPuffi1 has joined #ocaml
BitPuffi1 is now known as BitPuffin
<jpdeplaix> gasche: nice blog post ! When you say « reuse Jenga's runtime », you mean « copy/past the code or put it in a library » or use Jenga directly ?
<jpdeplaix> The second option is IMHO horrible, because it would require all the Jenga's dependencies
<adrien> :D
* companion_cube wonders whether React's internal structures are good to represent the build dependency graph
<gasche> I'm not sure jpdeplaix and I think that's premature optimization
<gasche> probably "put it in a library"
adrien_o1w has joined #ocaml
adrien_oww has quit [Ping timeout: 252 seconds]
<jpdeplaix> gasche: About the ocamlbuild PR, I think you can merge it by yourself as you have the write right
<jpdeplaix> gasche: why « premature optimization » ? Avoid having a *tones* of dependencies ?
<adrien> gasche: in the stdlib? :D
<companion_cube> \o/
<gasche> what is premature is talking about using bits from jenga in OCamlbuild when no one (except you and I guess Anil) gave a fuck about contributing to this central tool of the ecosystem for more than one year
<adrien> companion_cube: I've built basic FRP stuff which was _way_ simpler than ocamlbuild
<gasche> actually less than one year
<adrien> dunno if it was really sound
<gasche> my point is
<adrien> and it only provided fold
<adrien> but it was enough for my needs
<gasche> right now I'll be happy if we can make a good 4.02 release with *improvements* on OCamlbuild's side
<gasche> I don't give a damn about Jenga's dependencies
<adrien> :)
<companion_cube> adrien: you mean your own FRP library?
<companion_cube> wow, dependencies in the compiler?
<gasche> I think anything else than "improving ocamlbuild for 4.02" is *premature*
<gasche> I'm quite happy to see that for some reason, hhugo and gildor apparently have a well-hidden passion for ocamlbuild that would be unleashed by splitting it as an independent project
<gasche> but that's not the right time to work on this
<companion_cube> I'm not sure I understand, what you say seems in total contradiction with the way the compiler is managed so far: it strives to be minimalistic and have no dependencies
<companion_cube> and you'd have it depend on core_kernel just to make ocamlbuild faster?
<gasche> not sure who you are talking to
<gasche> I don't think anyone ever considered adding core_kernel as a dependency of the OCaml distribution
<companion_cube> ouf
<companion_cube> :D
<adrien> :D
<gasche> jpdeplaix: would you submit a PR to disable -use-ocamlfind by default again?
<whitequark> core_kernel isn't that bad, it just needs some gentle handling, using a chainsaw
<gasche> something else I'd be interested in is someone taking the time to see how ocamlbuild mixes with -trans-mod and what needs to be done
<whitequark> -trans-mod?
<gasche> I'd like it to be done before the release, but I've been too busy with other things so far
<gasche> I guess it's now called -no-alias-deps
<gasche> module aliases
<gasche> (also contributions to the documentation are welcome, of course)
<gasche> how *Batteries* behave with module aliases is also an interesting question, but again, no time on my side
<companion_cube> last time I looked it didn't change the size much
<gasche> even when you use batteries.ml?
<gasche> (of course if you use eg. BatList directly it shouldn't change anything)
<companion_cube> I think that's what I tested
<companion_cube> but it was some time ago
<companion_cube> the problem is also that BatList still depends on several other modules by itself
<companion_cube> including BatIO, BatInnerIO and BatInnerWeaktbl
<companion_cube> and BatEnum of course
thomasga has joined #ocaml
<kaustuv> Will the OUPS talks this Thursday be recorded and youtubed?
<rks`> kaustuv: the previous ones were, but they're generally in french
<kaustuv> French is fine for me as long as I don't have to speak it
<kaustuv> Unrelated question: why does the caml-list archive honour X-No-Archive headers?
michael_lee has quit [Quit: Ex-Chat]
<whitequark> that sounds logical, it is an archive after all
<kaustuv> But a mailing list is not USENET and missing messages in a thread make it very hard to follow
cdidd_ has joined #ocaml
<whitequark> what's the best way to resolve a hostname in OCaml?
<whitequark> Lwt_unix, nevermind
cdidd has quit [Ping timeout: 276 seconds]
<Kakadu> rks`: Do you have a link?
<ggole> I would have said Unix.getaddrinfo
<ggole> (Although it is a bit low level)
boogie has joined #ocaml
<rks`> apparently only one was recorded, ok
<Kakadu> Thanks
<Kakadu> btw
<Kakadu> What about OCaml Workshop 2013? I've heard that video encoding was postponed by some technical reasons? What status does it have?
<vbmithr> type t = {bleh: int option} with sexp;;
<vbmithr> Error: Unbound value option_of_sexp
<vbmithr> Does sexplib manage to serialize option types ?
<Kakadu> vbmithr: Have you opened right module before?
<Kakadu> Sexplib.Conv AFAIR
boogie has quit [Ping timeout: 252 seconds]
<rks`> (or Sexplib.Std)
<vbmithr> Ah, maybe not :)
<vbmithr> thanks
avsm has joined #ocaml
<kaustuv> Just reading the Changes file for 4.0.2 -- what problem was {id| |id} created to solve?
<whitequark> {html| <foo bar="$ input_string () $"> |html}
<ggole> Is this the extension point analogue to <:expr<...>>?
<whitequark> yea
<ggole> Hmm, nice
<flux> though a bit redundant?-(
<flux> {html| $ hello_str $ |html}
<flux> or is the trailing id optional?
<whitequark> not optional
<whitequark> it exists to avoid conflicts with the text inside
<whitequark> indeed, having a |lang} token is pretty unlikely in pretty much any language I know of
<flux> and |} is much more likely?
<flux> in any case, an escaping mechanism needs to exist..
<whitequark> |} would terminate which opening token?
<flux> well, does this make sense? {a| {b| |a} |b}?
<flux> is so, then fine :)
* whitequark shrugs
<flux> so the answer would be: the last opened one
<flux> or actualy "the last unclosed one"
hannes has quit [Quit: Coyote finally caught me]
ollehar1 has joined #ocaml
thomasga has quit [Quit: Leaving.]
Enjolras has joined #ocaml
chris2 has quit [Ping timeout: 252 seconds]
<jpdeplaix> kaustuv: it's also the syntax for strings literal
<jpdeplaix> gasche: why « again » ? Is it out-of-date ?
cross has quit [Quit: leaving]
chris2 has joined #ocaml
cross has joined #ocaml
patojo has joined #ocaml
rand000 has quit [Ping timeout: 252 seconds]
_andre has joined #ocaml
ollehar1 has quit [Ping timeout: 252 seconds]
patojo has quit [Ping timeout: 240 seconds]
ollehar has quit [Ping timeout: 240 seconds]
ollehar has joined #ocaml
ollehar1 has joined #ocaml
studybot has quit [Remote host closed the connection]
studybot has joined #ocaml
ontologiae has quit [Ping timeout: 264 seconds]
ygrek_ has quit [Remote host closed the connection]
ygrek has joined #ocaml
studybot has quit [Remote host closed the connection]
ontologiae has joined #ocaml
adrien_o1w is now known as adrien_oww
ygrek has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
thomasga has joined #ocaml
thomasga has quit [Ping timeout: 258 seconds]
S11001001 has joined #ocaml
S11001001 has quit [Changing host]
S11001001 has joined #ocaml
Thooms has joined #ocaml
mort___ has joined #ocaml
sgnb has quit [Remote host closed the connection]
<Drup> and if you want to talk about ocsimore, then ask jpdeplaix
<Drup> I carefully avoid going into this code base.
<jpdeplaix> :)
tobiasBora has joined #ocaml
SethTisue has joined #ocaml
boogie has joined #ocaml
avsm has joined #ocaml
boogie has quit [Ping timeout: 276 seconds]
axiles has quit [Ping timeout: 240 seconds]
avsm has quit [Ping timeout: 265 seconds]
<Drup> (and if you want to rage patch it, you are *very* welcome to do it.)
axiles has joined #ocaml
avsm has joined #ocaml
Eyyub has joined #ocaml
mal`` has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
ontologiae has quit [Ping timeout: 276 seconds]
studybot has joined #ocaml
ontologiae has joined #ocaml
mal`` has joined #ocaml
thomasga has joined #ocaml
maattdd has joined #ocaml
Nuki has joined #ocaml
ygrek has joined #ocaml
araujo has joined #ocaml
Simn has quit [Ping timeout: 265 seconds]
ygrek_ has joined #ocaml
ygrek has quit [Ping timeout: 276 seconds]
avsm has quit [Quit: Leaving.]
sgnb has joined #ocaml
boogie has joined #ocaml
ygrek_ has quit [Ping timeout: 252 seconds]
tnguyen has joined #ocaml
boogie has quit [Ping timeout: 240 seconds]
metasyntax has joined #ocaml
ygrek has joined #ocaml
<BitPuffin> what platforms can ocaml run on and is there a way to expose ocaml functions for FFI?
<BitPuffin> ie, make a C interface for an ocaml library
<adrien> all?
<BitPuffin> no not all
<BitPuffin> just some functions that call internal ocaml functions
<adrien> I meant: all platforms
<BitPuffin> ah
<BitPuffin> including ios, android and windows mobile, windows RT etc?
<adrien> it's not ocaml which will impose limitations
<adrien> more likely store policies
kaustuv has left #ocaml ["ERC Version 5.3 (IRC client for Emacs)"]
<BitPuffin> store policies?
<adrien_oww> yes
Eyyub has quit [Ping timeout: 240 seconds]
<adrien_oww> for example windows store policies restrict what applications are allowed to do
<adrien_oww> you want to use threads? you must be kidding!
maattdd has quit [Ping timeout: 252 seconds]
<BitPuffin> well that's not a concern
<BitPuffin> we won't be in the store
<gasche> are you considering developping malware in OCaml? that would be kind of cool, I guess :-'
divyanshu has quit [Quit: Computer has gone to sleep.]
<BitPuffin> lol no :)
<gasche> "we had 7 millions OCaml programs running on mobile phones... until the FBI killed the command-control network"
<BitPuffin> it's just more of a enterprise solution thing
<BitPuffin> or whatever you should call it
<BitPuffin> it's an app but it's not an app for everybody :P
<adrien_oww> gasche: side-loading is a valid thing ;-)
<adrien_oww> BitPuffin: basically ocaml is not an issue for that task because there's ocaml code with C API and then you call from C
<adrien_oww> it cannot break
<adrien_oww> (famous last words)
arj has quit [Quit: Leaving.]
<BitPuffin> adrien_oww: well the point is to have a shared codebase for some stuff and then call that from whatever is the native programming language for the platform
<adrien> as long as you can interop C and the other language, you're fine
<jpdeplaix> gasche ?
<BitPuffin> adrien: okay so it can interoperate both ways?
racycle_ has joined #ocaml
racycle_ has quit [Client Quit]
<ousado> adrien: couldn't there be memory management issues?
<adrien_oww> like? :)
darkf has quit [Quit: Leaving]
<ousado> assumptions the GCs make, for instance
<adrien_oww> there can be but they shouldn't be specific to a given system
<adrien_oww> don't think so plus at that level you have: Linux, Darwin, Windows
<adrien_oww> OCaml already runs on all of these
<BitPuffin> ie can I define a function in OCaml that is callable from C
<BitPuffin> I know I can call C from ocaml
shinnya has joined #ocaml
<adrien_oww> it's done through callbacks and documented at http://caml.inria.fr/pub/docs/manual-ocaml/intfc.html#sec439
Eyyub has joined #ocaml
<BitPuffin> oh neat
ygrek has quit [Ping timeout: 264 seconds]
<gasche> jpdeplaix: ?
<jpdeplaix> 13:03:43 jpdeplaix | gasche: why « again » ? Is it out-of-date ?
<BitPuffin> gonna have to experiment with this then
<jpdeplaix> by the way, do you have time to merge some macaque PRs ?
<gasche> what's the context of this "again"?
avsm has joined #ocaml
<adrien_oww> BitPuffin: you'll probably want to start with the classic C from OCaml and http://www.linux-nantes.org/~fmonnier/OCaml/ocaml-wrapping-c.html is a good introduction to the whole thing
<jpdeplaix> 11:48:00 gasche | jpdeplaix: would you submit a PR to disable -use-ocamlfind by default again?
<adrien_oww> BitPuffin: also, you'll learn about the OCaml internals
ontologiae has quit [Ping timeout: 240 seconds]
<gasche> hm
<gasche> in fact
<gasche> I forgot about this one PR :D
<gasche> so it's fine
<gasche> if I'm done with the format stuff this week, I'll maybe look at ocamlbuild next week
<BitPuffin> adrien_oww: yup, I'll probably end up using C libraries anyways if I do end up writing it in ocaml
avsm has quit [Ping timeout: 255 seconds]
olauzon has joined #ocaml
divyanshu has joined #ocaml
ollehar has quit [Ping timeout: 252 seconds]
ygrek has joined #ocaml
avsm has joined #ocaml
rand000 has joined #ocaml
Arsenik has joined #ocaml
kaustuv has joined #ocaml
boogie has joined #ocaml
boogie has quit [Ping timeout: 258 seconds]
SethTisue has quit [Quit: SethTisue]
Eyyub has quit [Ping timeout: 240 seconds]
SethTisue has joined #ocaml
<BitPuffin> so is cohttp still the bees knees if you just want a simple server lib for a web application?
avsm has quit [Quit: Leaving.]
ikaros has quit [Read error: Connection reset by peer]
ikaros has joined #ocaml
bobo has joined #ocaml
SethTisue has quit [Quit: SethTisue]
SethTisue has joined #ocaml
SethTisue has quit [Quit: SethTisue]
bobo has quit [Quit: Konversation terminated!]
tlockney_away is now known as tlockney
ontologiae has joined #ocaml
<BitPuffin> is there any existing wrapper of C malloc etc for ocaml?
<adrien_oww> why for?
<adrien_oww> what*
<BitPuffin> manual memory management?
ollehar1 has quit [Ping timeout: 240 seconds]
<ggole> What for? :)
<ggole> You'll just get it wrong and explode everything.
<BitPuffin> well I probably won't use it :P
<ggole> There are BigArray and tuple libraries if you need huge arrays of flat things
<ggole> (Which won't be crawled by the GC.)
SethTisue has joined #ocaml
ollehar has joined #ocaml
<ggole> In general, though, OCaml data structures need to be allocated in a way known to the runtime.
Tamae has quit [Quit: KVIrc 4.0.4 Insomnia http://www.kvirc.net/]
Eyyub has joined #ocaml
<BitPuffin> well I'm just wondering if it's possible
<BitPuffin> doesn't mean I'm very likely to make use of it :P
SethTisue has quit [Client Quit]
<def`> did you look at memory.h from ocaml distribution ?
<BitPuffin> no :o
* ggole sounds the alarm
<def`> when importing foreign values (e.g pointers from malloc) into ocaml, you should wrap them in custom blocks
<ggole> Well, I shouldn't discourage people who want to poke around. But do be careful.
<def`> but you should never directly use foreign values directly from ocamlç
<def`> well, ggole is right :)
<BitPuffin> ah
<BitPuffin> well it wouldn't have to be malloc specificially
<BitPuffin> but afaik ocaml doesn't let you allocate non GC'd memory
<ggole> That's because it has to GC stuff in order to work :)
avsm has joined #ocaml
<BitPuffin> sure
<ggole> The exceptions are large arrays of flat stuff, for which see the libraries I mentioned.
<BitPuffin> but not everything
<BitPuffin> :P
<def`> BitPuffin: a good resources on C binding and passing values http://www.linux-nantes.org/~fmonnier/ocaml/ocaml-wrapping-c.html
<BitPuffin> well what about objects etc
<BitPuffin> def`: yeah I have it ope
boogie has joined #ocaml
thomasga has quit [Quit: Leaving.]
<ggole> They can be problematic because the GC is copying, ie, things move around in memory
<ggole> If the GC can't crawl your objects, and they point to something that gets moved, boom.
<BitPuffin> well that's why they don't point to something that gets moved
rgrinberg has joined #ocaml
<BitPuffin> I mean you separate the GC stuff and the non GC stuff
boogie has quit [Ping timeout: 255 seconds]
<adrien_oww> sure, but you don't give the ocaml runtime something that hasn't been allocated through the ocaml GC api
<ggole> The runtime is OK with foreign pointers afaik
<smondet> BitPuffin: there was that "ancient" library: http://git.annexia.org/?p=ocaml-ancient.git;a=summary I don't know how dead it is, but there was that idea of escaping the GC :)
<ggole> There's a page map of some description which allows them to be discriminated
typedlambda has quit [Ping timeout: 252 seconds]
<BitPuffin> 4 years since last commit
typedlambda has joined #ocaml
ollehar has quit [Ping timeout: 240 seconds]
studybot has quit [Remote host closed the connection]
ollehar has joined #ocaml
SethTisue has joined #ocaml
<gasche> adrien_oww, BitPuffin: I would assume that "ancient" still works well
<gasche> code in OCaml land doesn't bitrot that fast
<BitPuffin> that's nice
<BitPuffin> was it stable though?
tane has joined #ocaml
<ousado> "Bumped release number to 0.8.0 to reflect the relative stability and maturity of the library"
maattdd has joined #ocaml
<ousado> 2006
<Drup> ousado: semantic versioning as its finest :3
thomasga has joined #ocaml
<BitPuffin> ahh
<BitPuffin> nice
divyanshu has quit [Quit: Textual IRC Client: www.textualapp.com]
rks` has quit [Ping timeout: 240 seconds]
mort___ has quit [Ping timeout: 240 seconds]
Anarchos has joined #ocaml
demonimin has quit [Read error: Connection reset by peer]
Eyyub has quit [Ping timeout: 265 seconds]
<ousado> Drup: yeah, like 4/5 stable and mature
tnguyen has quit [Quit: tnguyen]
jwatzman|work has joined #ocaml
demonimin has joined #ocaml
remyzorg has quit [Quit: WeeChat 0.4.3]
shinnya has quit [Ping timeout: 255 seconds]
racycle has joined #ocaml
maattdd has quit [Ping timeout: 276 seconds]
Eyyub has joined #ocaml
shinnya has joined #ocaml
eizo has quit [Ping timeout: 240 seconds]
WraithM has quit [Remote host closed the connection]
Anarchos has quit [Ping timeout: 240 seconds]
ollehar has quit [Ping timeout: 240 seconds]
WraithM has joined #ocaml
philtor has joined #ocaml
SethTisue has quit [Read error: Connection reset by peer]
SethTisue has joined #ocaml
squiggnet has quit [Ping timeout: 240 seconds]
q66 has joined #ocaml
boogie has joined #ocaml
squiggnet has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
BitPuffin has quit [Ping timeout: 258 seconds]
Thooms has quit [Quit: WeeChat 0.3.8]
avsm has quit [Ping timeout: 255 seconds]
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
<ggole> Ah, that feel when cascading simplifications
SethTisue has quit [Quit: SethTisue]
maattdd has joined #ocaml
pango has quit [Ping timeout: 240 seconds]
SethTisue has joined #ocaml
ollehar has joined #ocaml
Hannibal_Smith has joined #ocaml
Eyyub has quit [Ping timeout: 240 seconds]
ontologiae has quit [Ping timeout: 240 seconds]
thomasga has quit [Ping timeout: 252 seconds]
ollehar has quit [Ping timeout: 240 seconds]
ikaros has quit [Quit: Ex-Chat]
eikke__ has quit [Ping timeout: 258 seconds]
ygrek has quit [Ping timeout: 276 seconds]
SethTisue has quit [Quit: SethTisue]
Anarchos has joined #ocaml
BitPuffin has joined #ocaml
maattdd has quit [Ping timeout: 264 seconds]
claudiuc has quit [Remote host closed the connection]
thomasga has joined #ocaml
maattdd has joined #ocaml
SethTisue has joined #ocaml
dant3 has quit [Remote host closed the connection]
Kakadu has quit [Ping timeout: 240 seconds]
dsheets has quit [Ping timeout: 264 seconds]
<philtor> Is this the Open Datatypes syntax that will be in 4.02? https://sites.google.com/site/ocamlopen/
Simn has joined #ocaml
SethTisue has quit [Quit: SethTisue]
<Drup> yes
<Drup> well, I don't know if it's exacly this one, implementation wise, but the concept is the same
<Drup> (actually, it's done by the same guy, so yes, the same :p)
Thooms has joined #ocaml
SethTisue has joined #ocaml
thomasga has quit [Quit: Leaving.]
maattdd has quit [Ping timeout: 276 seconds]
nikki93 has joined #ocaml
nlucaroni has joined #ocaml
tnguyen has joined #ocaml
jwatzman|work has joined #ocaml
Nuki has quit [Remote host closed the connection]
<rgrinberg> I wonder whether official docs will come
tani has joined #ocaml
tane has quit [Ping timeout: 252 seconds]
nikki93 has quit [Remote host closed the connection]
nikki93 has joined #ocaml
dlat has quit [Quit: leaving]
nikki93 has quit [Remote host closed the connection]
olauzon_ has joined #ocaml
olauzon has quit [Ping timeout: 240 seconds]
olauzon_ is now known as olauzon
<ebzzry> Why is [1; 2; 3] ok, but [[1; 2; 3] [4; 5; 6]] isn't?
<flux> [[1; 2; 3]; [4; 5; 6]]
<flux> the way you have written would call function [1; 2; 3] with the argument [4; 5; 6]
<flux> (and put its result as the sole element to the list)
acrob has joined #ocaml
claudiuc has joined #ocaml
<ebzzry> flux: Oh, so that's why. Thanks. :-)
<flux> happy coding :)
Eyyub has joined #ocaml
maattdd has joined #ocaml
olauzon has quit [Ping timeout: 240 seconds]
manizzle has joined #ocaml
nikki93 has joined #ocaml
Eyyub has quit [Ping timeout: 240 seconds]
manizzle has quit [Remote host closed the connection]
manizzle has joined #ocaml
Eyyub has joined #ocaml
ontologiae has joined #ocaml
olauzon has joined #ocaml
ontologiae has quit [Ping timeout: 255 seconds]
acrob has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
ta`e has joined #ocaml
tani has quit [Ping timeout: 240 seconds]
ta`e is now known as tani
maattdd has quit [Ping timeout: 265 seconds]
Eyyub has quit [Ping timeout: 240 seconds]
racycle has quit [Quit: ZZZzzz…]
bobo has joined #ocaml
ontologiae has joined #ocaml
ollehar has joined #ocaml
brendan has quit [Quit: leaving]
maattdd has joined #ocaml
maattdd has quit [Read error: Connection reset by peer]
bobo is now known as bobo_
bobo_ is now known as bobo__
bobo__ is now known as bobo
ollehar has quit [Ping timeout: 240 seconds]
leifw has quit [Ping timeout: 245 seconds]
gustav___ has quit [Ping timeout: 252 seconds]
andreypopp has quit [Ping timeout: 240 seconds]
cantstanya has quit [Ping timeout: 240 seconds]
jzelinskie has quit [Ping timeout: 252 seconds]
strmpnk has quit [Ping timeout: 252 seconds]
brendan has joined #ocaml
reynir has quit [Ping timeout: 264 seconds]
leifw has joined #ocaml
diginux has quit [Ping timeout: 265 seconds]
AdmWiggin has joined #ocaml
gustav___ has joined #ocaml
AeroNotix has quit [Ping timeout: 264 seconds]
diginux has joined #ocaml
tianon has quit [Disconnected by services]
malo has joined #ocaml
AdmWiggin is now known as tianon
andreypopp has joined #ocaml
strmpnk has joined #ocaml
jzelinskie has joined #ocaml
bobo has left #ocaml ["Konversation terminated!"]
_andre has quit [Quit: leaving]
ollehar has joined #ocaml
AeroNotix has joined #ocaml
jeregrine has joined #ocaml
<jeregrine> so if I were going to make a restful JSON API where should I look first?
<companion_cube> yojson and cohttp, I guess
ollehar has quit [Client Quit]
rand000 has quit [Quit: leaving]
cantstanya has joined #ocaml
ustunozgur has quit [Remote host closed the connection]
ustunozgur has joined #ocaml
ohama has quit [Ping timeout: 240 seconds]
ccasin has quit [Remote host closed the connection]
ohama has joined #ocaml
<jeregrine> nice
Eyyub has joined #ocaml
<jeregrine> companion_cube: thanks, seems pretty basic but thats okay
<companion_cube> it might be the occasion to write a library for rest services ;)
<Drup> (you mean, reinventing yet another web server in ocaml ?)
<Drup> (totally had not been written 10 times already)
<jeregrine> whats the best way to find these things?
<companion_cube> Drup: where did I mention writing a web server?
<Drup> libraries you mean ? opam
<Drup> companion_cube: implementing a REST api is trivial once you have a web server.
<companion_cube> well then cohttp ?
<jeregrine> nice!! Drup: https://github.com/rgrinberg/opium s
ccasin has joined #ocaml
racycle has joined #ocaml
<jeregrine> I like to jump into learning languages with something I am good at in other languages.
Eyyub has quit [Ping timeout: 255 seconds]
<jeregrine> any good resources on "getting started"
<rgrinberg> jeregrine: realworldocaml.org
<rgrinberg> here + stackoverflow
<jeregrine> nice
<jeregrine> thanks again!
axiles has quit [Remote host closed the connection]
<Drup> jeregrine: if you want something slightly more heavyweight, the server side of eliom provide convenient tools
<rgrinberg> opium even has an intro tutorial: http://rgrinberg.com/blog/2014/04/04/introducing-opium/ although it's very slightly out of date.
jao has quit [Ping timeout: 240 seconds]
<rgrinberg> I'd also definitely recommend eliom for a *full stack*
reynir has joined #ocaml
<rgrinberg> Drup: eliom supports PUT/DELETE as of recently right?
<rgrinberg> by recently i mean in opam
<Drup> rgrinberg: dev version, so yes, with ocsigen opam repository :p
<Drup> (eliom next version should be out very soon)
<rgrinberg> and tyxml doesn't depend on ocamlnet yayyyyy
Submarine has quit [Quit: Leaving]
<Drup> we droped the dependency some time ago, yes
<Drup> (like, almost one year ago :D)
<rgrinberg> I see ocsigenserver is still depending on it
<Drup> yes, for some network stuff
<Drup> but tyxml, it was just for pcre ...
<rgrinberg> wehn that happens ocsigen + mirage is going to give full-stack a new meaning
<rgrinberg> i mean when ocamlnet is gone
ohama has quit [Ping timeout: 240 seconds]
jeregrine has quit [Ping timeout: 240 seconds]
<Drup> rgrinberg: an intern is currently working on using cohttp inside ocsigenserver
ontologiae has quit [Ping timeout: 264 seconds]
<rgrinberg> —> dinosaure?
<Drup> yes x)
<companion_cube> why should ocamlnet be gone?
<Drup> companion_cube: because it's too fucking big >_>
<companion_cube> well it could be split
<Drup> it could
<rgrinberg> it has c dependencies
<companion_cube> oh, really? :/
ohama has joined #ocaml
<Drup> rgrinberg: I don't think we are using the part with C inside
<Drup> not sure, not an expert in ocamlnet
<Drup> (I find the design horrible, so I don't really try to investigate further :p)
<rgrinberg> companion_cube: it definitely has c deps but I think they're isolated
<rgrinberg> companion_cube: if you'd like to split it like batteries we'd all be very grateful :D
<rgrinberg> for example I'd love to use its rabbitmq client
<rgrinberg> amqp i mean
<companion_cube> rgrinberg: batteries isn't split up yet, sadly
<companion_cube> because it's not merged
rks` has joined #ocaml
<Drup> ( rgrinberg : tell me that what he did is cool and that you are for the merge)
<Drup> (he's having a crisis of "my work is never going to be merged :( :( :(")
<Drup> (tell him*)
<rgrinberg> i dont think my vote should matter i don't even use batteries anymore
<rgrinberg> maybe i'd consider using a cube fork though :D
<rgrinberg> without unix/enum/parsers etc.
<rgrinberg> and using cube's serialization lib everywhere
mort___ has joined #ocaml
<Drup> (and after that, we will release an ocaml³ and make adrien cringe)
<Drup> (that would be fantastic :D)
<companion_cube> :D
<companion_cube> a fork of ocaml with implicits and dynamic types
<rgrinberg> 4.5 volt batteries
jeregrine has joined #ocaml
ohama has quit [Ping timeout: 240 seconds]
<companion_cube> rgrinberg: there's the current branch which is on my opam repo for testing purpose :)
<jeregrine> Drup: not that interested in an client/server rpc deal
<jeregrine> I like having strict client independence.
Arsenik has quit [Remote host closed the connection]
<Drup> jeregrine: you can too if you want, it's opt in
<jeregrine> many of my apis are used by browser/mobile clients so it ends up being better to not cater to one environment
ygrek has joined #ocaml
ohama has joined #ocaml
<Drup> jeregrine: ocsigen is not only the client/server interaction, there is other stuff
<Drup> (and it's not rpc, by the way)
<Drup> (and I don't get the argument about various environment)
ontologiae has joined #ocaml
<jeregrine> Drup: sorry whenever I see clients automatically talking to the server via some built in API I assume its json-rpc
<jeregrine> or similar
Thooms has quit [Quit: WeeChat 0.3.8]
Thooms has joined #ocaml
<Drup> (clients don't talk automatically to servers in eliom :p)
ggole has quit []
ustunozg_ has joined #ocaml
ustunozgur has quit [Ping timeout: 240 seconds]
<jeregrine> hrm the page is pretty confusing then i'll take some time and look into a little longer
rand000 has joined #ocaml
<rgrinberg> jeregrine: eliom is definitely not beginner friendly
<Drup> yeah :/
tani has quit [Quit: Verlassend]
<rgrinberg> it would be a feat for a beginner to set up a simple project with it and ocamlbuild
<jeregrine> that whole website is a nightmare
<jeregrine> (no offense intended)
ollehar has joined #ocaml
<Drup> rgrinberg: actually, setting up a simple project is not hard
<Drup> (because eliom-destillery)
<Drup> understanding what's going on, on the other hand ...
<Drup> jeregrine: can you provide details ? I do want the feedback :)
<jeregrine> well getting into the manual helps
<jeregrine> but its not clear thats where I should start
<rgrinberg> Drup: interesting, must be a new thing. why have a separate tool though?
<Drup> rgrinberg: separate ?
<rgrinberg> an ocamlbuild plugin wouldn't work?
<Drup> oh
<Drup> there is an ocamlbuild plugin too
<Drup> eliom-destillery is just a "project creator"
<Drup> (note to jpdeplaix : we should have an oasis template for eliom-destillery)
<jeregrine> yea I will probably need to learn more about ocaml. lots of syntax here
<Drup> jeregrine: if you feel courageous and helpful, I will be very glad to have your details impressions
<Drup> about aproximatly everything
<jeregrine> Drup: someplace I can send my details outside of IRC?
<Drup> oh yes, eliom uses lot's of ocaml feature
<jpdeplaix> Drup: I don't want to unit with the devil's tool :D
<Drup> jpdeplaix: why ?
<jeregrine> no guarantees but if I'm getting into it I'll take notes
<jpdeplaix> IMHO this tool is useless
<Drup> jpdeplaix: you are wrong, it's very helpful for beginners
<rgrinberg> yeah if i started a new project
<rgrinberg> i'd clone cumulus and rm -rf all the source code
<Drup> and it's better to preach for oasis right from the start
Eyyub has joined #ocaml
<Drup> rgrinberg: exactly
<jpdeplaix> rgrinberg: yeah, that's the way to go :D
<Drup> jpdeplaix: and wouldn't it be better to have eliom-destillery a mode to do that ? :)
<Drup> jeregrine: the ocsigen mailing list is fine
<jeregrine> ok
cross has quit [Quit: leaving]
ustunozg_ has quit [Remote host closed the connection]
cross has joined #ocaml
ustunozgur has joined #ocaml
<jpdeplaix> Drup: well, ok
eikke__ has joined #ocaml
ustunozgur has quit [Ping timeout: 240 seconds]
BitPuffin has quit [Quit: WeeChat 0.4.3]
BitPuffin has joined #ocaml
Hannibal_Smith has quit [Quit: Sto andando via]
yacks has quit [Ping timeout: 258 seconds]
thomasga has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
boogie has quit [Read error: Connection reset by peer]
boogie has joined #ocaml
cross has quit [Quit: leaving]
BitPuffi1 has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
ygrek has quit [Ping timeout: 255 seconds]
cross has joined #ocaml
BitPuffi1 has quit [Client Quit]
BitPuffin has joined #ocaml
cross has quit [Client Quit]
jeregrine has quit [Ping timeout: 240 seconds]
cross has joined #ocaml
cross has quit [Quit: leaving]
cross has joined #ocaml
thomasga has quit [Quit: Leaving.]
eikke__ has quit [Ping timeout: 264 seconds]
Katze_ has joined #ocaml
eikke__ has joined #ocaml
Thooms has quit [Quit: WeeChat 0.3.8]
jeregrine has joined #ocaml
racycle has quit [Remote host closed the connection]
racycle has joined #ocaml
mort___ has quit [Quit: Leaving.]
olauzon has quit [Ping timeout: 240 seconds]
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
ontologiae has quit [Ping timeout: 276 seconds]
rgrinberg has quit [Quit: Leaving.]
Simn has quit [Ping timeout: 265 seconds]
ustunozgur has joined #ocaml
spip has joined #ocaml
rand000 has quit [Ping timeout: 240 seconds]
<whitequark> Drup: ragepatching, heh, sounds good
ustunozgur has quit [Ping timeout: 252 seconds]
spip has left #ocaml ["Konversation terminated!"]
tobiasBora has quit [Quit: Konversation terminated!]
johnnydiabetic has joined #ocaml
madroach has quit [Ping timeout: 252 seconds]
madroach has joined #ocaml
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
tlockney is now known as tlockney_away
rgrinberg has joined #ocaml
eikke__ has quit [Ping timeout: 240 seconds]
eikke__ has joined #ocaml