ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.1 announcement at http://ocaml.org/releases/4.02.html | Public channel logs at http://irclog.whitequark.org/ocaml
willy_ has quit [Ping timeout: 256 seconds]
<tobiasBora> Hum
<tobiasBora> It's a bit better, I must use server/... instead of ...
wwilly has joined #ocaml
<struktured> damn, multiple modules of same name in same project confuses merlin..maybe I should rename that
victoroak has joined #ocaml
Algebr has joined #ocaml
<Algebr> How can I use a different file as a module but not have that module be seen by clients/ in the compiled version
<Algebr> ie I want to have a separate "project_types.ml" but I don't want a module Project_types being made.
<Algebr> or at least exposed rather.
<struktured> Algebr: with oasis?
<Algebr> no oasis
willy_ has joined #ocaml
<Algebr> no I mean the steps or conceptually. for example, I think that if I just made an empty project_types.mli I will still have an Project_type module created, albeit empty. I don't want that module created at all
<Algebr> err, exposed.
<Algebr> but still usable in my code
wwilly has quit [Ping timeout: 256 seconds]
<struktured> Algebr: what build sys are u using then?
<Algebr> makefile
<struktured> with ocamlbuild?
<Algebr> no
<struktured> or not even that?
keen____________ has joined #ocaml
keen___________ has quit [Ping timeout: 264 seconds]
rgrinberg has joined #ocaml
victoroak has left #ocaml [#ocaml]
shinnya has quit [Ping timeout: 265 seconds]
rgrinberg has quit [Ping timeout: 264 seconds]
swgillespie has quit [Quit: Textual IRC Client: www.textualapp.com]
rgrinberg has joined #ocaml
<tobiasBora> Hum...
<Algebr> how is the build system relevant
<tobiasBora> I am trying to use the function Lwt_process.exec with ocamlscript (I put at the beginning Ocaml.packs := [|"lwt"|]) but I have an error No implementations provided for the following modules:
<tobiasBora> Lwt_process referenced from ocamlscript_main.cmx
<tobiasBora> Does anyone knows how to solve this error ?
mcc has quit [Quit: This computer has gone to sleep]
rgrinberg has quit [Ping timeout: 240 seconds]
psy_ has joined #ocaml
<struktured> Algebr: oasis has an InternalModule field, but it doesn't work right for me
Denommus has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<struktured> tobiasBora: just use lines 4 and 5, the rest only would compile using my fork
<tobiasBora> struktured: Great thank you !
<struktured> tobiasBora: however, I do recommend my branch if you use merlin with ocamlscript
<tobiasBora> struktured: What does your fork exactly do ? It seems pretty nice !
<tobiasBora> And I don't use merlin, it makes me crazy
<struktured> tobiasBora: then you wouldn't care really. I just implemented a little hack to eliminate syntax errors when editing ocamlscript
tsumetai has quit [Quit: Leaving]
<struktured> Algebr: from Oasis docs "InternalModules: List of modules to compile which are not exported." . I use it in one project but the module still appears in utop so it didn't do anything ..
<Algebr> right...so at least apparently its possible in theory.
<Algebr> then I wonder what are teh correct flags to the compiler
<struktured> yeah that was my next question, so I spent over 20 minutes studying the docs to no avail. no form of packing for me caused a module to ultimately disappear (only to become nested, instead..)
nullcat has joined #ocaml
nullcat has quit [Client Quit]
<Drup> to not expose something, the only thing to do is not to install the .cmi
<Drup> which is exactly what InternalModules is doing
chambart has quit [Ping timeout: 264 seconds]
<struktured> Drup: dang, that is what I finally starting to realize
nullcat_ has joined #ocaml
luzie has quit [Remote host closed the connection]
<struktured> Drup: thanks for clearing that up though
luzie has joined #ocaml
yac has quit [Ping timeout: 272 seconds]
chambart has joined #ocaml
chambart has quit [Client Quit]
<Algebr> Drup: so say my project is called foo and I have a file called foo.ml and foo_helpers.ml. I want to be able to use foo_helpers.ml code in foo.ml but client shouldn't see foo_helpers.ml. All I have to do is not install foo_helpers.cmi?
<Drup> yeah
tnguyen has joined #ocaml
rgrinberg has joined #ocaml
<dora-molly> rgrinberg: fixed
rgrinberg has quit [Ping timeout: 276 seconds]
inf-gropeoid has quit [Quit: I have irrefutable proof that D < 0. It follows trivially from 2D > 3D, which is obviously true.]
inf-gropeoid has joined #ocaml
crocket has joined #ocaml
<mspo> that same question is on there a few times
<mspo> crocket: here's my plan: write a little in both and see which one works for me
<mspo> crocket: no one really has anything bad to say about ocaml except that: it's not haskell, it's not very MP-friendly
<crocket> What is MP?
<mspo> otherwise it's the choice for discerning hackers ;)
<mspo> multi-processor
<crocket> Does Ocaml suit embedded devices?
<crocket> People say OCaml has predictable cost model.
<crocket> Predictable cost model might be important in embedded devices.
<Drup> depends what you call "embedded programming"
<Drup> it still has a GC.
<mspo> ocaml compiler is easier than ghc to get going
<mspo> but erlang is even lighter weight (for a third functional option)
darkf has joined #ocaml
<mspo> although ocaml native code might be better than HiPE
<crocket> HiPE?
<mspo> crocket: multi core is not a problem on those tiny boxes :)
<mspo> erlang thing
nojb has joined #ocaml
<Drup> well, in all technicality, to run ocaml on something, you only need to port ocamlrun, which is in C.
<mspo> right
<Drup> (and should be easy to port)
<mspo> getting ghc to compile requires ghc
tnguyen has quit [Quit: tnguyen]
<mspo> it is painful
<Drup> ocaml code, not the ocaml compiler :)
<crocket> I'd use Rust instead of C.
<mspo> go fo rit
<Drup> crocket: when ocamlrun was written, the idea of Rust was not even conceived yet.
<mspo> crocket: sit down and do something in any language. you can waste a lifetime on these types of questions
<crocket> mspo, Thanks
<crocket> I'll definitely try OCaml in the near future.
<crocket> By the way
<crocket> Where does OCaml shine in your opinion?
<crocket> Web Programming?
<crocket> Webservice back-end programming?
<crocket> Other niches?
<mspo> I just like that it seems to be practically-oriented
<mspo> if a problem is shaping up in your head like X, ocaml supports a way to express it as X
<Drup> (since we were talking embedded stuff: http://www.algo-prog.info/ocaml_for_pic/web/index.php?id=ocapic)
<mspo> you don't have to decompose it into strictly immutable stuff or only OO, etc
badkins has joined #ocaml
<crocket> The emergence of a 9 dollar small chip that contains 1GB RAM indicates that we may be able to afford garbage collector in embedded devices in the future.
badkins has quit [Client Quit]
<crocket> A computer of the size of a blood cell could contain 1GB RAM in the future.
<mspo> my DNA will only be programming in forth
<crocket> In my opinion, OO is not very useful in most cases.
<crocket> It complects identity, value, and states.
<crocket> and time
<crocket> The very notion of object leads to complexity.
nojb_ has joined #ocaml
<dora-molly> et vice versa
<crocket> It might be useful for an object to encapsulate a complex system like RDBMS.
nojb has quit [Ping timeout: 258 seconds]
nojb_ is now known as nojb
<crocket> Object Orientation for a big complex system.
<Algebr> For ctypes, what is the equivalent of &? I can't seem to find along those lines.
BitPuffin|osx has quit [Ping timeout: 276 seconds]
<mspo> crocket: ocaml doesn't require you to use OO, it just offers a pretty simple version of it
<mspo> crocket: allowing you to group stuff together and make copies
<mspo> a pretty nice concept, imho
<Drup> mspo: you are referring to records ?
<Drup> because, OCaml also has objects, that are a quite different (and interesting) beast on their own. :)
nojb_ has joined #ocaml
tmtwd has quit [Ping timeout: 256 seconds]
rgrinberg has joined #ocaml
nojb has quit [Ping timeout: 244 seconds]
nojb_ is now known as nojb
<Drup> Algebr: addr and allocate(_n)
crocket has left #ocaml ["Leaving"]
<Algebr> I thought it was addr, but the signature looked funky to me
<Drup> it's only for structs
<Algebr> yea, why?
<Algebr> just not added yet to ctypes?
<mspo> Drup: I was talking about class and new, but there you go
inf-gropeoid is now known as pyon
<Drup> iurc, the reasoning is that you should only get the address of something allocated
<Drup> either by ... allocating. Or by getting the address of a struct/array
<Algebr> hmm, no way to do addr of stack memory?
<Drup> isn't that a terribly bad idea in C anyway ?
<Algebr> I don't think so.
<Drup> (in particular, iirc, you can't return such address)
<Drup> (well, you can, but it's undefined behavior and it will segfault)
<Drup> (I'm waiting for someone with a better knowledge of C to correct me :D)
nojb_ has joined #ocaml
nojb has quit [Ping timeout: 264 seconds]
nojb_ is now known as nojb
<Algebr> I wouldn't want to return it necessarily. imagine function void version(int *major, int *minor). so I would do int f, g; then version(&f, &g)
<Drup> allocate_n ~count:1
nojb has quit [Ping timeout: 255 seconds]
nojb has joined #ocaml
robink_ is now known as robink
nojb_ has joined #ocaml
badkins has joined #ocaml
nojb has quit [Ping timeout: 258 seconds]
nojb has joined #ocaml
idegen has quit [Quit: Leaving.]
nojb_ has quit [Ping timeout: 240 seconds]
gabemc has joined #ocaml
Algebr has quit [Ping timeout: 264 seconds]
MrScout_ has quit [Remote host closed the connection]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
MercurialAlchemi has joined #ocaml
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nullcat_ has joined #ocaml
ygrek has quit [Ping timeout: 264 seconds]
nojb has quit [Quit: nojb]
nojb has joined #ocaml
<rgrinberg> dora-molly: auto compleition in js_of_ocaml works but the type checking not yet
nojb has quit [Client Quit]
<rgrinberg> dora-molly: actually never mind, completion is a little screwy still
<rgrinberg> Drup: so if i want to embed typed html in my js ocaml code i should use tyxml right? Must I use eliom as well?
<rgrinberg> I have no need for a server side component here
lyxia has quit [Ping timeout: 256 seconds]
badkins has quit []
swgillespie has joined #ocaml
<Drup> no need for eliom
Algebr has joined #ocaml
swgillespie has quit [Quit: Textual IRC Client: www.textualapp.com]
Algebr has quit [Ping timeout: 265 seconds]
* rgrinberg ponders if i should port to js for april 1st
<rgrinberg> s/port/port cow/
<Drup> erk
<Drup> rgrinberg: you want inline html ? you can use the tyxml syntax extension for that
matason has joined #ocaml
<Drup> (my opinion is that combinators are far far superior, but if you want to hurt yourself ... :D)
siddharthv_away is now known as siddharthv
rgrinberg has quit [Ping timeout: 264 seconds]
rgrinberg has joined #ocaml
siddharthv is now known as siddharthv_away
pyon is now known as misanthro-pyon
<nullcat_> morning
psy_ has quit [Ping timeout: 244 seconds]
ggole has joined #ocaml
rgrinberg has quit [Ping timeout: 276 seconds]
rgrinberg has joined #ocaml
sepp2k has joined #ocaml
<reynir> morning
matason has quit []
matason has joined #ocaml
swgillespie has joined #ocaml
gabemc has quit [Ping timeout: 245 seconds]
<mspo> if you say so
Simn has joined #ocaml
willy_ has quit [Ping timeout: 264 seconds]
ygrek has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
willy_ has joined #ocaml
freling has joined #ocaml
mort___ has joined #ocaml
rgrinberg has quit [Ping timeout: 256 seconds]
Cyanure has joined #ocaml
Haudegen has quit [Ping timeout: 246 seconds]
oscar_toro has quit [Ping timeout: 264 seconds]
MercurialAlchemi has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
willy_ has left #ocaml ["Leaving"]
jave has quit [Ping timeout: 276 seconds]
jave has joined #ocaml
oscar_toro has joined #ocaml
Haudegen has joined #ocaml
freling has quit [Quit: Leaving.]
<l1x> List.iter2_exn (fun x y -> Bytes.cat x y) ["a";"b";] ["c";"d";];;
<l1x> any reason this should not work?
maufred has quit [Ping timeout: 244 seconds]
<ggole> iter2? Were you looking for map2?
mengu has joined #ocaml
mort___ has quit [Quit: Leaving.]
maufred has joined #ocaml
ygrek has quit [Ping timeout: 276 seconds]
zpe has joined #ocaml
Cyanure has quit [Remote host closed the connection]
siddharthv_away is now known as siddharthv
siddharthv is now known as siddharthv_away
siddharthv_away is now known as siddharthv
rgrinberg has joined #ocaml
octachron has joined #ocaml
ingsoc has joined #ocaml
rgrinberg has quit [Ping timeout: 244 seconds]
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
<apache2> is it possible to do polymorphic pattern matching on records sharing field names and types?
<theblatte> I don't think records can share field names to begin with
<octachron> They can in recent version of Ocaml. But records in Ocaml are nominally typed not structuraly
<theblatte> octachron: oh wow :)
<octachron> so even if records share some field names and types, they are completely different from the point of view of the type system
tmtwd has joined #ocaml
mengu has quit [Remote host closed the connection]
<octachron> theblatte: after verification, it is possible since OCaml 4.01
<theblatte> thx :)
<theblatte> that was an annoying limitation
zpe has quit [Remote host closed the connection]
<vbmithr_> Hi
<vbmithr_> Anyway to "tell" ocaml that one type definition is the same than another ?
<vbmithr_> for example, if 2 libraries declare exactly the same type, is there a way to tell ocaml this ?
<flux> it is. but why not simply alias the types to each other?
<flux> the way to reintroduce a type that is the same as another function: type foo = bar = Baz of int
<flux> I mean "as another type"
<octachron> But you cannot unify a posteriori two type defined in two separated module that way, can't you?
<flux> if you happen to have a type defined in module A and another type defined in module B, you cannot have module C that says those types are the same
thomasga has joined #ocaml
<flux> which is part of the reason why polymorphic variants are popular at some use cases I guess.
<vbmithr_> Yeah… I guess
<flux> ah, I did indeed misread the original question
thomasga1 has joined #ocaml
<flux> in fact, it would be doable for a ppx extension to provide a safe identity function in that case?
<flux> ie. check that the importeed (from .cmi) type definitions are structurally the same and then Obj.magic teh shift out of them..
rgrinberg has joined #ocaml
<vbmithr_> :)
<vbmithr_> Yeah, I guess that's what Obj.magic is for :)
thomasga has quit [Ping timeout: 244 seconds]
rgrinberg has quit [Ping timeout: 265 seconds]
<companion_cube> just don't :p
asQuirreL has joined #ocaml
A1977494 has joined #ocaml
mengu has joined #ocaml
Kakadu has joined #ocaml
thomasga1 has quit [Quit: Leaving.]
<companion_cube> didn't read all the details, but it uses the effects of the multicore branch to perform non blocking IO in direct style
A1977494 has quit [Quit: Leaving.]
mengu has quit [Ping timeout: 246 seconds]
<theblatte> are there recent developments in the implementation of ocaml regexps by js_of_ocaml? I'm trying to js_of_ocamlify some code that uses the Str module with regexps
sepp2k has quit [Ping timeout: 264 seconds]
<theblatte> and there's a single occurrence of Str.regexp in a library used by the code...
thomasga has joined #ocaml
<apache2> ocaml-re?
<theblatte> you mean replace Str by this other implementation?
<apache2> yeah, worth a shot at least. "Str.regexp" is not very nice imo
<apache2> ocaml-re is pure ocaml, so it might translate to js more easily
<theblatte> yes, that looks quite nice, thanks
<theblatte> however I still have to include a library whose code also uses Str.regexp... but looking at the code of that library, writing a re_string_match in js that always return true would be enough for this one it seems
<theblatte> unless I can somehow tell ocaml to use ocaml-re instead of Str at link time
<theblatte> +?
dsheets has quit [Ping timeout: 265 seconds]
<theblatte> in the same spirit, any pure ocaml alternative implementation of CamlZip out there?
<adrien_znc> theblatte: might be better to look for JS or browser-native implementations of deflate or zip
mengu has joined #ocaml
<theblatte> adrien_znc: ok, I was afraid I'd have to do this ^^ shouldn't be too bad though
thomasga has quit [Quit: Leaving.]
Submarine has joined #ocaml
Submarine has joined #ocaml
jonludlam has joined #ocaml
Cyanure has joined #ocaml
fraggle-boate__ has quit [Ping timeout: 272 seconds]
dsheets has joined #ocaml
oscar_toro has quit [Ping timeout: 258 seconds]
sdothum has joined #ocaml
_andre has joined #ocaml
psy_ has joined #ocaml
thomasga has joined #ocaml
hay207 has joined #ocaml
psy_ has quit [Max SendQ exceeded]
TheLemonMan has joined #ocaml
zpe has joined #ocaml
oscar_toro has joined #ocaml
rgrinberg has joined #ocaml
sepp2k has joined #ocaml
sepp2k has quit [Remote host closed the connection]
Haudegen has quit [Ping timeout: 255 seconds]
sepp2k has joined #ocaml
rgrinberg has quit [Ping timeout: 256 seconds]
<MercurialAlchemi> sometimes the obsession over "keep the stdlib small" frustrates me
<MercurialAlchemi> obviously, only a handful of people would like type-safe utf8 and date/time support
<flux> it's no big deal that people need to get a 3rd party library for those.. the big deal is that everyone chooses to use different libraries for them, making 'float' the universal time stamp format in OCaml :-)
<flux> (OK, it does have Unix.tm as well)
siddharthv is now known as siddharthv_away
<MercurialAlchemi> then it's a big deal
<MercurialAlchemi> it should be part of the infrastructure of the language
hay207 has quit [Ping timeout: 258 seconds]
<MercurialAlchemi> maybe it's the French influence
Nahra has quit [Remote host closed the connection]
<MercurialAlchemi> French administration can be compared to a feudal system, in which the various territories are unable to communicate between themselves
zpe_ has joined #ocaml
thomasga has quit [Quit: Leaving.]
zpe has quit [Ping timeout: 250 seconds]
thomasga has joined #ocaml
<Leonidas> theblatte: well, you shouldn't look at escalate right now, since it is incomplete and I am wondering how the heck the deflate format is structured :-/
milosn has quit [Quit: leaving]
<theblatte> thomasga, Leonidas: ha! thanks :)
<Leonidas> (help is appreciated of course)
<thomasga> Leonidas: the RFC is not very
<thomasga> explicit about the various formats indeed (hit return too quickly)
<Leonidas> thomasga: my issue at the moment is that the data that I deflated with zlib seem to compress to an invalid block
<Leonidas> I suppose I misunderstand the spec somehow, but no idea what exactly
<theblatte> I would like to write something like module MyStr : Str.S, but there is no such thing as Str.S, just a str.mli
<theblatte> am I forced to copy str.mli in a sig .. end block instead?
mengu has quit [Remote host closed the connection]
<flux> theblatte, moulde MyStr : module type of Str = struct .. end
Haudegen has joined #ocaml
<Drup> apache2: no you can't, because, as theblatte said, two types can't share a field. Two fields can have the same *name*, but those are not the same field.
thomasga1 has joined #ocaml
hay207 has joined #ocaml
<theblatte> flux: module type of \o/
<theblatte> thanks :)
<flux> theblatte, good luck with your journey with OCaml module system!
<flux> though I don't see why you would want to replicate the Str interface.. ;-)
<theblatte> yeah, I'm used to pain...
thomasga has quit [Ping timeout: 276 seconds]
<theblatte> it's the first time I hear of module type of though, it seems like this is undocumented
<flux> naah, it's documented
<theblatte> flux: I'm doing module Str = Re_str everyt
<flux> you just need to read through the whole documentation ;-)
<theblatte> flux: I'm doing module Str = Re_str everywhere to be able to use js_of_ocaml
<theblatte> flux: well, reading through the whole doc of modules is not enough ;)
<flux> so the process is: read the whole documentation, find something curious, google the mailing lists for it ;-)
<theblatte> heh
<theblatte> the ocaml way
thomasga1 has quit [Quit: Leaving.]
<Drup> totally documented.
<theblatte> totally not in the doc of modules though :)
<Drup> MercurialAlchemi: I like this description :D
mengu has joined #ocaml
mengu has joined #ocaml
haythammed_ has joined #ocaml
<haythammed_> hi, how to make ocaml code work in eclipse?
<haythammed_> i set paths, wrote a.byte in ocamlbuild but ccan't be able to produce bytecode executable when building
<haythammed_> i have ocaide plugin
<ggole> haythammed_: can you produce one outside of eclipse?
<haythammed_> yes i can run my code outside eclipse
<ggole> Hmm
<ggole> I don't have any experience with eclipse, but I suppose the next step is to double check env vars, the ocamlbuild invocation etc and make sure everything is the same
<haythammed_> check the paths you mean
<haythammed_> ?
<ggole> Yeah
<ggole> Well, all the env vars
sepp2k has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
<theblatte> are there some rules to writing javascript implementations for primitives for js_of_ocaml? I'm writing a dummy "function re_string_match(re, s, i) { return true }", but it gets wrapped in something that will always return false in the generated js for things that call Str.string_match: https://framabin.org/?cbde7896f0ab9dac#hq7WpyE4MREUVRWdPg3JYXwFVz9zkil4XfPtPHkSNL0=
<theblatte> here, _aaF_ is called every time string_match is called from ocaml, but re_string_match returns a (js) Boolean, so "return 0<_d_.length-1?1:0" always returns 0
rgrinberg has quit [Ping timeout: 255 seconds]
<theblatte> should my implementation return something with a length instead of a Boolean?
thomasga has joined #ocaml
<Drup> (are you really sure you can't use re ? ^^')
<theblatte> (yes, this call to Str.string_match is inside a library)
<Drup> I don't really know, sorry, ask on the mailing list/bugtracker if you don't find
<Drup> well, you can fix the library.
<theblatte> (so unless I recompile the library to use re I'm stuck)
<haythammed_> ggole, it can build inside eclipse but can't produce a bytecode file
<theblatte> and I'll have to write more stubs for other modules than Str, so I'd like to understand anyway
<Drup> yeah, I can't help you with that, your best bet is to look at the other stubs
oscar_toro has quit [Ping timeout: 252 seconds]
<theblatte> the other stubs don't seem to be doing anything special, I might open an issue then
<haythammed_> in which package ocamlbuild exists?
thomasga has quit [Quit: Leaving.]
Kakadu has quit [Quit: Page closed]
Kakadu has joined #ocaml
Hannibal_Smith has joined #ocaml
<haythammed_> i get this error : Error: Error while linking a.cmo: ,Reference to undefined global `Graphics'
<haythammed_> in eclipse
thomasga has joined #ocaml
<haythammed_> i am new to ocaml, do i need to link the graphics module ?
<Drup> yes
psy_ has joined #ocaml
tane has joined #ocaml
<haythammed_> i put the link in command line arguments or in the source file?
<haythammed_> yes that was the thing i was missing
<haythammed_> eclipse now compiles ocaml
<haythammed_> thanks for help, and forgive me for my silly questions
mengu has quit [Remote host closed the connection]
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<MercurialAlchemi> Drup: which description?
<Drup> french administration
<MercurialAlchemi> ah :)
rand000 has joined #ocaml
<MercurialAlchemi> "oh, of course you have to send your documents to five different locations to get this done, what were you thinking?"
mengu has joined #ocaml
<MercurialAlchemi> also "no, it's *their* responsibility, not ours"
<MercurialAlchemi> at least you don't have this problem in Denmark
hay207 has quit [Quit: Leaving]
<MercurialAlchemi> of course, it's centralized enough that I'll be the first against the wall the day the Danish Party for Revenge Against the French wins the elections, because the administration knows all
<Drup> that's the case in basically all countries anyway, thinking otherwise is rather naive :p
<MercurialAlchemi> well, yes and no, it depends on what administration we're talking about
haythammed_ has quit [Quit: Leaving]
<MercurialAlchemi> if you don't send fifty notifications whenever you move, they may be able to track you down eventually, but that's going to take them a while
hay207 has joined #ocaml
<apache2> Australia doesn't have a central registry for addresses
<MercurialAlchemi> in DK, you can expect mild-mannered masked men with machine guns at your door within 24 hours of the establishment of the new regime
<apache2> they don't have a central registry of voters either, so they send voting blankets to all the frenchies living there even though they're not allowed to vote
<MercurialAlchemi> apache2: on account of being a federal state?
<apache2> then those are filtered away later on when you have to show your passport to place the vote
<MercurialAlchemi> awesome
<apache2> because there IS a central registry for passports
<MercurialAlchemi> so it's lazy evaluation, but no memoization?
<apache2> (but those aren't coupled to addresses)
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
<apache2> ((and this discussion isn't coupled to ocaml))
Haudegen has quit [Ping timeout: 255 seconds]
badkins has joined #ocaml
<reynir> I've been moving between temporary places for a couple of months without changing address. No masked men with machine pistols yet :)
<apache2> no regime change either -- I sense a correlation!
<Drup> MercurialAlchemi: tbf, in france, strictly speaking, I think you only have to report your address at the first January (for taxes)
<MercurialAlchemi> yes
<MercurialAlchemi> but different administrations may need it
idegen has joined #ocaml
mengu has quit []
rom1504 has quit [Ping timeout: 272 seconds]
leafac has joined #ocaml
rom1504 has joined #ocaml
oscar_toro has joined #ocaml
jabesed has joined #ocaml
jabesed has quit [Client Quit]
rgrinberg has joined #ocaml
Submarine has quit [Remote host closed the connection]
Haudegen has joined #ocaml
rgrinberg has quit [Ping timeout: 258 seconds]
milosn has joined #ocaml
ollehar has joined #ocaml
<flux> hmph, ocaml multicore doesn't yet have an easy 'opam switch' branch ;-)
<flux> I guess because it's not in the same repository as the rest.
leafac has quit [Quit: Leaving.]
Cyanure has quit [Ping timeout: 255 seconds]
ollehar has quit [Ping timeout: 272 seconds]
idegen has quit [Read error: Connection reset by peer]
idegen has joined #ocaml
Cyanure has joined #ocaml
mcclurmc has joined #ocaml
rgrinberg has joined #ocaml
oscar_toro has quit [Ping timeout: 264 seconds]
hay207 has quit [Ping timeout: 265 seconds]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
shinnya has joined #ocaml
hay207 has joined #ocaml
Gama11 has joined #ocaml
jabesed has joined #ocaml
<j0sh> vbmithr_: just now looking at the websocket fixes. big changes! thanks for taking the time to do this
tumdum has joined #ocaml
zpe_ has quit [Remote host closed the connection]
<vbmithr_> j0sh: No problem, please tell me what you think about it
<flux> is leonidas aware of that library?
<j0sh> vbmithr_: sure thing, will take a little while to port over my code
psy_ has quit [Remote host closed the connection]
jabesed has quit [Quit: Konversation terminated!]
Algebr has joined #ocaml
tumdum has quit [Quit: leaving]
<Leonidas> flux: yes, he is, I believe I already depend on it without using it :-)
rgrinberg has quit [Ping timeout: 246 seconds]
<Leonidas> No time to implement RTM at the moment
<Leonidas> currently busy beating @samoht to get an usable zlib ;-)
<Leonidas> (well, at least that's the plan)
fraggle-boate has joined #ocaml
rgrinberg has joined #ocaml
tumdum has joined #ocaml
Haudegen has quit [Ping timeout: 265 seconds]
darkf has quit [Quit: Leaving]
rgrinberg has quit [Ping timeout: 272 seconds]
freling has joined #ocaml
rgrinberg has joined #ocaml
slash^ has joined #ocaml
octachron has quit [Quit: Leaving]
leafac has joined #ocaml
Haudegen has joined #ocaml
blandflakes has joined #ocaml
Remyzorg has quit [Ping timeout: 272 seconds]
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
Remyzorg has joined #ocaml
blandflakes has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
freling has quit [Quit: Leaving.]
Haudegen has quit [Ping timeout: 265 seconds]
asQuirreL has joined #ocaml
jwatzman|work has joined #ocaml
Remyzorg has quit [Ping timeout: 252 seconds]
misanthro-pyon is now known as inf-groupoid
rgrinberg has quit [Ping timeout: 250 seconds]
Remyzorg has joined #ocaml
ygrek has joined #ocaml
rgrinberg has joined #ocaml
Denommus has joined #ocaml
srcerer_ is now known as srcerer
Haudegen has joined #ocaml
nullcat_ has joined #ocaml
MrScout has joined #ocaml
MrScout has quit [Remote host closed the connection]
gabemc has joined #ocaml
MrScout has joined #ocaml
Pepe_ has quit [Ping timeout: 250 seconds]
<rgrinberg> Drup: what's this wikidoc dependency i see in some js_of_ocaml projects and how do i get it?
<Drup> bah, don't bother, you don't need it
<Drup> it's our spagetti ocamldoc-to-wikicreol transformer
<Drup> it's a pure horror
<rgrinberg> Drup: trying to get started with goji by learning ojquery
<Drup> it works on our CI stuff, and that's already an achievement in itself
psy_ has joined #ocaml
<rgrinberg> in my attempt to write strophe.js bindings
<smondet> Drup: I wrote an ocamldoc plugin once; I don't think you can not do horror :)
<Drup> I can't help you much with that, I didn't try goji yet
<Drup> smondet: I agree
<rgrinberg> Drup: how come $ opam info ojquery shows me an old js_of_ocaml being required
<Drup> smondet: I recently had the pleasure to fix it for 4.02
<Drup> rgrinberg: because nobody updated it and there is a conflict
<rgrinberg> that ticket mirrors my experience
<rgrinberg> Drup: it seems to compile at least
Haudegen has quit [Ping timeout: 264 seconds]
<Drup> the dev version works with last jsoo ? I should do a release then
<Drup> but I'm still not convinced this binding is any good ...
mort___ has joined #ocaml
<rgrinberg> Drup: well it compiles. I'm more concerned to learn some goji from it
<rgrinberg> b/c i must use a js lib
<Drup> someone did another goji binding recently
jabesed has joined #ocaml
Pepe_ has joined #ocaml
<rgrinberg> Drup: those aren't as complete
<Drup> rgrinberg: otherwise, klakplok did some bindings himself as an example, https://github.com/search?l=OCaml&q=goji&type=Repositories&utf8=%E2%9C%93
jeffmo has joined #ocaml
<Drup> rgrinberg: by curiosity, what is this new fancy project ? :]
<rgrinberg> Drup: i'm actually not even sure how ojquery uses goji. it certainly doesn't mention it anywhere but the readme
<rgrinberg> perhaps the readme is out of date?
<rgrinberg> Drup: just seeing if it's possible to write a simple web based xmpp client in js_of_ocaml
<Drup> what are you using for the xmpp part ?
<rgrinberg> because i already know it
<Drup> ok
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<rgrinberg> Drup: this goji stuff is looking rough around the edges unfortunately :/
<vbmithr_> Hi
<rgrinberg> Drup: that 1st issue has a workaround in the readme
<Drup> not trying to use hannes' stuff ? :]
<rgrinberg> vbmithr_: Hello!
djellemah has quit [Ping timeout: 265 seconds]
<Drup> it clearly is, yeah
<rgrinberg> Drup: ha, it would probably be even more work
<vbmithr_> rgrinberg: hi!
<vbmithr_> rgrinberg: since you look well disposed to talk to me, I've got some questions :D
<rgrinberg> smondet: y u no opam publish
<vbmithr_> I'm writing some libraries that are functorized over Lwt and Async, and I'm wondering how I should handle exceptions in the common parts
<smondet> rgrinberg: you means use the opam publish tool?
<rgrinberg> smondet: yeah
<smondet> why? did I do something wrong?
<rgrinberg> smondet: not wrong, but definitely not optimal. we can't pin your dev repo
lordkryss has joined #ocaml
<Drup> smondet: aaah
contempt has quit [Ping timeout: 258 seconds]
<smondet> ah I thought you were talking about the opam-repo PR I did 10 minutes ago
<Drup> I wanted to try to use traveka for ocsipersist
<Drup> (before release, that is)
<hannes> Drup: context?
<Drup> yes, I saw, my point
<Drup> :D
<hannes> ah. xmpp..
<smondet> rgrinberg: what's the problem with the dev-opam-repo?
contempt has joined #ocaml
Haudegen has joined #ocaml
<rgrinberg> smondet: it's not as fine grained.
<rgrinberg> obviously it's not so bad, but imo pins are far more user friendly
<rgrinberg> $ opam pin add trakeva --dev-repo
<rgrinberg> done
<Drup> rgrinberg: that doesn't have much to do with opam publish
<smondet> rgrinberg: after this wave of releases I will move to local opam files and deprecate the dev-opam-repo
<smondet> (it's the kind of thing that was queued with the "switch to Assemblage" todo item :) )
<rgrinberg> Drup: yeah, that's true. but opam-publish is a huge timesaver :P
Submarine has joined #ocaml
Submarine has joined #ocaml
Kakadu has quit [Quit: Page closed]
A19774941 has joined #ocaml
A19774941 has quit [Client Quit]
nullcat_ has joined #ocaml
<rgrinberg> Drup: so the js Math module isn't really exposed in js_of_ocaml
<rgrinberg> e.g. the PI constant
manizzle has joined #ocaml
mort___ has quit [Quit: Leaving.]
nicoo has quit [Ping timeout: 264 seconds]
<nullcat_> Drup: do you know if there is any project/module that largely uses GADT? i'd like to see their real application
<Drup> nullcat_: search /r/ocaml with "GADT"
<ggole> Their real application is inducing suffering.
matason has quit [Max SendQ exceeded]
MrScout has quit [Ping timeout: 256 seconds]
<Drup> ggole: not always
matason has joined #ocaml
<j0sh> nullcat_: maybe the format string implementation in OCaml itself, although I don't find it the easiest code to read
<nullcat_> ok
<j0sh> camlInternalFormatBasics seems to be where most of the format-specific GADT code lives
<Drup> no, the format code is not a good reading
<Drup> it's too big
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
MercurialAlchemi has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
thomasga has quit [Ping timeout: 244 seconds]
<rgrinberg> Drup: should i make an issue for Js.math not exposing enough stuff?
<rgrinberg> or is there a reason for it
<Drup> not as far as I know, so yes
octachron has joined #ocaml
Anarchos has joined #ocaml
Anarchos has joined #ocaml
17SACN3H2 has joined #ocaml
<l1x> is there a way to match on a single element list?
dsheets has quit [Ping timeout: 265 seconds]
<Drup> [ x ]
<rgrinberg> l1x: let [element] = list in
<Anarchos> l1x match l with [x] -> …
<reynir> x :: []
<Anarchos> ocaml is full flavoured :)
<l1x> cool!
<l1x> thanks guys!
ggole has quit []
octachron has quit [Client Quit]
oscar_toro has joined #ocaml
17SACN3H2 has quit [Client Quit]
TheLemonMan has joined #ocaml
nullcat has joined #ocaml
<Denommus> not strictly on-topic, but is there a SML implementation with implicit extensions?
<Denommus> ... sorry, that was unclear
<Denommus> with extensions for modular implicits
slash^ has quit [Read error: Connection reset by peer]
rand000 has quit [Ping timeout: 252 seconds]
nullcat has quit [Ping timeout: 245 seconds]
inf-groupoid is now known as pyon
Kakadu has joined #ocaml
rgrinberg has quit [Ping timeout: 252 seconds]
rand000 has joined #ocaml
Denommus has quit [Read error: Connection reset by peer]
Denommus has joined #ocaml
gabemc has quit [Ping timeout: 256 seconds]
thomasga has joined #ocaml
dsheets has joined #ocaml
_andre has quit [Quit: leaving]
swgillespie has joined #ocaml
swgillespie has quit [Remote host closed the connection]
<l1x> is there a way to refer to all of the arguments ?
<l1x> like in clojure i can do [& all_args]
<flux> l1x, no.
<flux> well, if you have some functions you want to use this approach with, you could consider passing the arguments as one tuple instead
<l1x> i see
rgrinberg has joined #ocaml
<l1x> i wanted to implement cat that can concat multiple strings
<l1x> i also realized there is string ^ string syntax
rgrinberg has quit [Ping timeout: 256 seconds]
thomasga has quit [Quit: Leaving.]
freling has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 258 seconds]
jonludlam has quit [Ping timeout: 252 seconds]
mhi^ has joined #ocaml
rgrinberg has joined #ocaml
ollehar has joined #ocaml
nullcat has joined #ocaml
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ygrek has quit [Ping timeout: 252 seconds]
<Enjolras> hi
<Enjolras> I see a weird behavior with a GADT and a module inclusion
<Enjolras> If i define the GADT in the same module, everything is fine
<Enjolras> But if i define the GADT in another module, include this module in the current module
<Enjolras> then when i get a non exhaustive pattern matching warning for function matching only patterns of the same type
<Enjolras> Anyone knows what's going on ?
<Enjolras> -when
<companion_cube> http://vrac.cedeela.fr/truc.ml this has no warning, for me
<Enjolras> grmpf. What's going on
<smondet> Enjolras: your other module has a module type that hides some info?
<Enjolras> no. I think i know why actually
<Enjolras> 2s, i making a reduce case
<Enjolras> i guess it's because of open types
<Enjolras> In one compilation unit the compiler is able to infer that 'a is either foo or bar but not in separated units
<Enjolras> That's quite unfortunate, i don't know how to work around this issue
<companion_cube> I don't see how this function is injective?
<companion_cube> exhaustive*
<Enjolras> it's exhaustive. Its type is bar foo -> int
<companion_cube> well, where is the type?
<Enjolras> if you put that in one module, it will work
<Enjolras> hmm
<companion_cube> you should write the type down explicitely, I think
<companion_cube> (with GADT, most of the time)
<Enjolras> even in this case, i still get the warning
<Enjolras> It looks like a bug to me. There is no way the function could have matched Blah
<companion_cube> well, Guarrigue wrote recently thay exhaustiveness with GADT was undecidable in general
<Enjolras> "'i wonder why splitting into two modules fails
<Enjolras> anyway, i've no time to investigate that further. I guess i'll need to find a hack
<Enjolras> there are no annotation at the function level to remove exhaustivity check, right ?
<companion_cube> you can remove a warning
<companion_cube> [@@warning "-w -n"] where n is the warning number
<Enjolras> awesome. Thanks
<companion_cube> probably 8
<companion_cube> maybe it's @@@warning, I never remember
nullcat_ has joined #ocaml
Cyanure has quit [Remote host closed the connection]
<Enjolras> 'i can't find any documentation. Does it need ppx ?
freling has quit [Quit: Leaving.]
tane has quit [Quit: Verlassend]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
matason has quit []
jonludlam has joined #ocaml
Algebr has quit [Ping timeout: 258 seconds]
leafac has quit [Ping timeout: 272 seconds]
swgillespie has joined #ocaml
ygrek has joined #ocaml
gabemc has joined #ocaml
BitPuffin|osx has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
robink has quit [Ping timeout: 255 seconds]
ingsoc has quit [Ping timeout: 272 seconds]
robink_ has joined #ocaml
robink_ has quit [Changing host]
robink_ has joined #ocaml
tmtwd has quit [Remote host closed the connection]
hay207 has quit [Quit: Leaving]
swgillespie has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
thomasga has joined #ocaml
<tobiasBora> Hello !
<tobiasBora> I would like to know if there is a library or anything else that could let me transform ["1"; "2"; "3"] in "1,2,3"
<tobiasBora> For the moment I use List.fold (fun a b -> Printf.sprintf "%s,%s" a b) "" ["1";"2";"3"]
<tobiasBora> but the problem is that it adds a trailing "," at the end
<tobiasBora> and doing something like String.sub is quite dirty
<rgrinberg> tobiasBora: String.concat "," ["1"; "2"; "3"]
<tobiasBora> rgrinberg: Nice thank you :D
<tobiasBora> rgrinberg: And does a function which looks like List.fold but who doesn't use the "" argument exists .
<tobiasBora> ?
<rgrinberg> tobiasBora: you mean something like reduce?
<rgrinberg> not in the stdlib but in core and batteries it does
Hannibal_Smith has quit [Quit: Leaving]
<tobiasBora> rgrinberg: I think so... The problem with core and batterie is the huge size. Does container has something like that ?
<rgrinberg> Drup how do I bind to a constructor like "Strophe.Connection"? I tried Js.Unsafe.global ## _Strophe.Connection but it seems like the . is throwing it off
<rgrinberg> tobiasBora: probablby
<rgrinberg> tobiasBora: otherwise it should be quick to write yourself
<rgrinberg> let reduce f (x::xs) = List.fold f x xs
<tobiasBora> rgrinberg: Yes, but always write the same code again and again is anoying
<tobiasBora> What ?
* tobiasBora is thinking
<tobiasBora> Cleaver ^^
<Drup> rgrinberg: pretty sure that's answered in the manual
Kakadu has quit [Remote host closed the connection]
ygrek has joined #ocaml
<rgrinberg> Drup: ah that's right
jonh has joined #ocaml
rand000 has quit [Quit: leaving]
<tobiasBora> I'm not sure to understand in ocamlbuild the difference between using a file .mlpack and put bar.ml and baz.ml in the root folder
<tobiasBora> and putting bar.ml and baz.ml in a folder foo and then call ocamlbuild -Is foo foo/bar.native
ollehar has quit [Ping timeout: 272 seconds]
Gama11 has quit [Read error: Connection reset by peer]
ncthom91 has joined #ocaml
ollehar has joined #ocaml
ollehar has quit [Client Quit]
<Denommus> is there a version of OCaml in opam with implicit modules?
madroach has quit [Ping timeout: 264 seconds]
<nullcat_> Denommus: http://www.lpw25.net/talks.html
tristero has quit [Changing host]
tristero has joined #ocaml
madroach has joined #ocaml
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Simn has quit [Quit: Leaving]
<tobiasBora> I have another question : why when I use #use "containers" I can use in toplevel the command #show_module CCIO but I cannot load CCIO if I don't do #use "containers.io" ?
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ncthom91 has quit [Quit: Textual IRC Client: www.textualapp.com]
<jpdeplaix> tobiasBora: simply because the module files (cmi, …) are in the same directory as containers and ocamlfind simply does -I +containers