flux 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.03.0 announced http://ocaml.org/releases/4.03.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
shinnya has quit [Ping timeout: 260 seconds]
Sorella has joined #ocaml
silver has quit [Quit: rakede]
sillyotter has joined #ocaml
darkf has joined #ocaml
sillyotter has quit [Client Quit]
walter|r has quit [Remote host closed the connection]
rgrinberg has quit [Quit: WeeChat 1.5]
rgrinberg has joined #ocaml
walter|r has joined #ocaml
pseudonymous has joined #ocaml
<pseudonymous> I was looking around for some product to serve as a key value store and in particular, something with ocaml bindings. Most bindings I see, whether for cassandra, mongodb or similar, seem quite outdated and their README's often mention them being incomplete. Has anyone settled on something nice ? I'm just playing around, so excuse me if this request seems a bit vague
adi___ has quit [Read error: Connection reset by peer]
pyon has joined #ocaml
<bruce_r> pseudonymous: I am looking for the exact same thing. Seliopou has a library that is supposed to have DynamoDB bindings.
adi___ has joined #ocaml
<bruce_r> but I'm having issues installing it
Simn has quit [Read error: Connection reset by peer]
<pseudonymous> bruce_r: hmm, I'm more looking for a product I can install & manage myself.
sfri has quit [Quit: No Ping reply in 180 seconds.]
<pseudonymous> That said, glancing the at the project page, what about the install causes problems for you ?
<bruce_r> the pin fails
<bruce_r> yes I don't think you can install DynamoDB on your own machine
<pseudonymous> bruce_r: nope, sadly :)
sfri has joined #ocaml
<pseudonymous> Ah - can't help you there. I'm fairly OK with compiling software etc, but *really* new to the ocaml ecosystem, visiting, really
<bruce_r> yes same thing here
<bruce_r> trying to learn
<bruce_r> thanks anyways :)
pecan has left #ocaml ["WeeChat 1.5"]
<pseudonymous> bruce_r: for fun, I just tried cloning the repo and typing in the pin command. It works fine for me, It first notifies me that the package (aws) is pinned, then goes on with what you'd regularly see from opam when installing a package. How did it fail for you ?
<bruce_r> The compilation of aws failed at "ocaml setup.ml -configure --prefix /home/bruce/.opam/4.02.1 --enable-lwt --disable-async"
<bruce_r> Cannot find file setup.ml.
rgrinberg has quit [Quit: WeeChat 1.5]
rgrinberg has joined #ocaml
<bruce_r> Where did you run the pin command from?
<bruce_r> I ran it from the root of my git repo in which I need it
<pseudonymous> I ran it from the root of the cloned git repo too.
<pseudonymous> I can try to let it finish the actual compile, two secs
<bruce_r> Oh I ran it from the root of an other repo
<bruce_r> not the aws one
<bruce_r> trying that right now
<pseudonymous> I meant I ran it from the root of the cloned "ocaml-aws" repo. It should cause opam to prompt you to proceed with the compilation of a series of packages, aws among them
<bruce_r> still cannot find this setup.ml file
<bruce_r> yes absolutely
<bruce_r> it asks me if I want to install aws 1.0.2
<bruce_r> and when I type Yes, it fails finding setup.ml
<pseudonymous> Have you tried just installing aws separely, e.g. something like "ocaml install --verbose aws" ? It might give a clue as to why it fails. Typically, it's because you're missing some C development libraries
<bruce_r> when I install it like this it just works :(
<bruce_r> but through the pin, no
<pseudonymous> That seems a little strange to me :S
<bruce_r> oh, install aws works
<bruce_r> but not install aws.1.0.2
<pseudonymous> Ah, perhaps you can somehow trigger the install with --verbose enabled to get a closer look at what's failing ?
<bruce_r> yes I'm missing the setup.ml file in the opam aws directory
<bruce_r> have to go have dinner, brb
<pseudonymous> bruce_r: k, best of luck :)
pseudonymous has left #ocaml [#ocaml]
abeaumont has joined #ocaml
FreeBirdLjj has joined #ocaml
rgrinberg has quit [Quit: WeeChat 1.5]
rgrinberg has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
michbad has joined #ocaml
dwwoelfel has joined #ocaml
dwwoelfel has quit [Remote host closed the connection]
dwwoelfel has joined #ocaml
walter|r is now known as walter_
walter_ has quit [Remote host closed the connection]
walter_ has joined #ocaml
walter_ has quit [Remote host closed the connection]
walter_ has joined #ocaml
walter_ has quit [Remote host closed the connection]
wtetzner has joined #ocaml
wtetzner has quit [Remote host closed the connection]
wtetzner has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
kushal has joined #ocaml
johnelse has quit [Ping timeout: 258 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
johnelse has joined #ocaml
manud has joined #ocaml
johnelse has quit [Ping timeout: 250 seconds]
johnelse has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
sdothum has joined #ocaml
wtetzner has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
kushal has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
kushal has joined #ocaml
<bruce_r> Guys, I'm getting this error while trying to install vrp : "- ocamlfind: Package `sexplib.syntax' not found", but according to opam sexplib is installed
<bruce_r> any idea what is going on?
<bruce_r> *vrt
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
johnelse has quit [Ping timeout: 272 seconds]
johnelse has joined #ocaml
larhat has quit [Quit: Leaving.]
AlexDenisov has quit [Ping timeout: 240 seconds]
AlexDeni_ has joined #ocaml
<bruce_r> I have the same issue installing aws
<bruce_r> when trying to 'make build', it tells me I'm missing sexplib.syntax
<bruce_r> How do I install this package?
AlexDeni_ has quit [Quit: Textual IRC Client: www.textualapp.com]
kdas__ has joined #ocaml
kushal has quit [Ping timeout: 250 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
AlexDenisov has joined #ocaml
kdas__ is now known as kushla
kushla is now known as kushal
kushal has quit [Changing host]
kushal has joined #ocaml
jonasen has joined #ocaml
dwwoelfel has quit [Ping timeout: 240 seconds]
pyon is now known as genso-pyon
kushal has quit [Ping timeout: 276 seconds]
MercurialAlchemi has joined #ocaml
manud has quit [Quit: manud]
<struk|desk> bruce_r: ocamlfind query sexplib.syntax <- what does it return?
<bruce_r> struk: ocamlfind: Package `sexplib.syntax' not found
<struk|desk> bruce_r: try something like opam reinstall type_conv sexplib ... or opam reinstall camlp4 sexplib
<struk|desk> its an optional dep
<struk|desk> so it won't force type_conv or camlp4 upon you by default
<bruce_r> ok, trying that
<bruce_r> thanks
<struk|desk> you can check for optional deps in the future by doing "opam show sexplib"
<struk|desk> or whatever the package is of interest
<struk|desk> "depopts: ..." entry will display
kushal has joined #ocaml
<bruce_r> is 'show' the same thing as 'info'?
<struk|desk> apparently ?
<bruce_r> ok
<bruce_r> I don't see anything about optional packages when typing this command
pierpa has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
rgrinberg has quit [Ping timeout: 264 seconds]
<bruce_r> ok, interesting
<bruce_r> I reinstalled like you said, but I still don't have sexplib.syntax
<bruce_r> I don't see the 'depopts' field on my machine when I run 'opam info sexplib'
<struk|desk> hm
<struk|desk> what version do u have of it?
MercurialAlchemi has quit [Ping timeout: 272 seconds]
MercurialAlchemi has joined #ocaml
<struk|desk> bruce_r: also maybe reinstall works diffrently than install, not sure. see https://opam.ocaml.org/doc/1.1/Advanced_Usage.html#Installingpackages
<struk|desk> bruce_r: btw, you might need to rerun oasis setup and ./configure (if that is how you are building aws)_
<bruce_r> I am just running 'opam install aws'
<bruce_r> although to figure out what was going on I ran 'make build' from the aws directory
<struk|desk> opam install camlp4 type_conv sexplib aws then ?
<struk|desk> although you probably only need one of camlp4 and type_conv, can't remember which one implements sexplib.syntax
<bruce_r> I'll try that
<struk|desk> fwiw, it should automatically install those deps, I wonder if you have some outdated packages, or that aws opam file is somewhat broken
<bruce_r> I know it should
<bruce_r> is there something I can run to clean my opam install?
genso-pyon has quit [Quit: ... flowering silent scarlet piece of night.]
<struk|desk> do you need the lwt version or async version? it looks like sexplib.syntax is a transitive dep from the async version. (based on analyzing this: https://github.com/inhabitedtype/ocaml-aws/blob/master/opam/opam)
<bruce_r> I don't know :s
<bruce_r> If you say async I believe you
<struk|desk> lol
pyon has joined #ocaml
<struk|desk> are you commited to lwt or async in any other capacity?
<struk|desk> in case you don't know, they are both concurrent libraries with a monadic style interface
<struk|desk> ok, I got aws to install with this command (I am using ocaml 4.02.3): opam install async nocrypto.0.5.3 aws
<struk|desk> run opam update first if it bitches about nocrypto 0.5.3 not existing
wtetzner has joined #ocaml
wtetzner has quit [Ping timeout: 240 seconds]
<bruce_r> ok let's try this
<bruce_r> I think I'm commited to lwt
<bruce_r> I want to use ocsigen
<bruce_r> which uses it
<bruce_r> I don't understand what you are trying to do with this long command
<bruce_r> opam tells me this when I run it
<bruce_r> =-=- Synchronising pinned packages =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [aws] /home/bruce/work/aws_async/ already up-to-date [NOTE] Package async is already installed (current version is 113.33.00). [NOTE] Package nocrypto is already installed (current version is 0.5.3). The following actions will be performed: ∗ install aws 1.0.2*
<bruce_r> oops, no newlines in the output
<bruce_r> so it's telling me I already ave async and nocrypto
<bruce_r> *have
<bruce_r> and wants to install aws
<bruce_r> which is going to fail
<bruce_r> an other odd thing is that it doesn't fail for the same reason than when I run the make build script
<bruce_r> here it tells me that it cannot find the setup.ml file
michbad has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
tane has joined #ocaml
tane has quit [Client Quit]
tane has joined #ocaml
<bruce_r> Thanks for the help struk, going to bed. Hopefully I'll figure this out soon
<struk|desk> time for bed
<struk|desk> but this worked for me
<struk|desk> opam install ssl && oasis setup && ./configure --enable-lwt --disable-async && make clean && make build
<struk|desk> (if you want to build manually)
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<struk|desk> something like opam (re)install ssl lwt cohttp aws should work too, but I didnt try it
<struk|desk> I had to install ssl because I didn't have it. you may already have it
bruce_r has quit [Ping timeout: 250 seconds]
bruce_r has joined #ocaml
<struk|desk> bruce_r: repeating in case you missed: opam install ssl && oasis setup && ./configure --enable-lwt --disable-async && make clean && make build
<struk|desk> gnite
<bruce_r> ok I'll try that, thanks!
<struk|desk> if it says your missing something just do opam install foobar and, rinse repeat
kdas__ has joined #ocaml
kushal has quit [Ping timeout: 258 seconds]
kdas__ has quit [Ping timeout: 240 seconds]
pyon is now known as genso-pyon
A1977494 has joined #ocaml
dexterph has joined #ocaml
maker has quit [Quit: = ""]
maker has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
bruce_r has quit [Ping timeout: 250 seconds]
Simn has joined #ocaml
AlexDenisov has joined #ocaml
larhat has joined #ocaml
dave24 has joined #ocaml
AlexDeni_ has joined #ocaml
AlexDenisov has quit [Ping timeout: 276 seconds]
rwmjones_ is now known as rwmjones
groovy2shoes has joined #ocaml
nicholasf has quit [Remote host closed the connection]
jwatzman|work has joined #ocaml
dwillems has joined #ocaml
A19774941 has joined #ocaml
A1977494 has quit [Ping timeout: 260 seconds]
beginner has joined #ocaml
<beginner> how can i find out if my ocamlc compiler has flambda activated?
<companion_cube> if `opam switch` shows 4.03.0+flambda, it does; otherwise it doesn't
<beginner> it was build from source
nicholasf has joined #ocaml
octachron has joined #ocaml
<beginner> companion_cube: is it possible to tell if i just have the binary?
<companion_cube> I'm not sure, on my computer both 4.03.0 and 4.03.0+flambda return the same string if asked --version
nicholasf has quit [Remote host closed the connection]
nicholasf has joined #ocaml
<beginner> shouldn't the compiler say something if i set the optimization level that flambda is not set?
<Drup> beginner: ocamlopt -config
<companion_cube> oh, interesting
wtetzner has joined #ocaml
wtetzner has quit [Ping timeout: 276 seconds]
jwatzman|work has quit [Quit: jwatzman|work]
Nahra has quit [Remote host closed the connection]
SpiceGuid has joined #ocaml
SpiceGuid has quit [Client Quit]
mfp_ has quit [Ping timeout: 250 seconds]
mfp_ has joined #ocaml
Nahra has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
<beginner> Drup: thanks
travula has joined #ocaml
<beginner> i am trying to install ocaml on windows from source, did all the steps from win32 install doc, but cant compile because i get the error No rule to make ../boot/ocamlc.
<Drup> that should be in the repository/tarball
<beginner> must have accidentally deleted it, weird
<beginner> why isnt that build from source?
TheLemonMan has joined #ocaml
sdothum has joined #ocaml
kushal has joined #ocaml
<Drup> beginner: the boot/ directory is here for bootstraping
dhil has joined #ocaml
<beginner> Drup: i thought those files would also be generated from source. I am curious what is the reason for that?
nicholasf has quit [Remote host closed the connection]
nicholasf has joined #ocaml
<octachron> beginner: Ocaml compiler is written in OCaml, so you need to have a preexisting OCaml compiler to build a new OCaml compiler
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
<gasche> (the point is that this preexisting thing is distributed in boot/, so if you removed it you did something wrong, and re-downloading the archive should suffice)
sepp2k has joined #ocaml
<gasche> (but on Windows there is also Flexlink as a complication)
<beginner> it s pretty annoying, compiling on windows. I could manage now to compile it with vc110 but not yet with vc140
<beginner> ran into a similar problem that, i think gasche filed on mantis
lostman has quit [Quit: Connection closed for inactivity]
andrew__ has joined #ocaml
stormogulen has joined #ocaml
silver has joined #ocaml
andrew____ has joined #ocaml
andrew__ has quit [Quit: Page closed]
Kakadu has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
SimonJF_ is now known as SimonJF
agarwal1975 has quit [Quit: agarwal1975]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
jwatzman|work has joined #ocaml
kushal has quit [Ping timeout: 244 seconds]
AltGr has joined #ocaml
sz0 has joined #ocaml
copy` has joined #ocaml
octachron has quit [Ping timeout: 250 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
Enjolras is now known as darthjolras
FreeBirdLjj has quit [Ping timeout: 258 seconds]
darthjolras is now known as Enjolras
wtetzner has joined #ocaml
agarwal1975 has joined #ocaml
wtetzner has quit [Remote host closed the connection]
gustav___ has quit [Ping timeout: 240 seconds]
gustav___ has joined #ocaml
SpiceGuid has joined #ocaml
BitPuffin has joined #ocaml
SpiceGuid has quit [Client Quit]
MercurialAlchemi has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
nicholasf has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
kushal has joined #ocaml
nicholasf has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
wtetzner has joined #ocaml
wtetzner has quit [Ping timeout: 240 seconds]
MercurialAlchemi has quit [Ping timeout: 258 seconds]
SpiceGuid has joined #ocaml
tane has quit [Ping timeout: 260 seconds]
stormogulen has quit [Remote host closed the connection]
AlexDeni_ has quit [Ping timeout: 272 seconds]
AlexDenisov has joined #ocaml
tane has joined #ocaml
nicholasf has quit [Remote host closed the connection]
pierpa has joined #ocaml
pierpa has quit [Remote host closed the connection]
pierpa has joined #ocaml
travula has quit [Ping timeout: 240 seconds]
andrew____ has quit [Ping timeout: 250 seconds]
_2can has quit [Ping timeout: 240 seconds]
adi____ has joined #ocaml
adi___ has quit [Read error: Connection reset by peer]
adi____ is now known as adi___
adi___ has quit [Changing host]
adi___ has joined #ocaml
_2can_ has joined #ocaml
dexterph has quit [Ping timeout: 258 seconds]
SpiceGuid has quit [Quit: ChatZilla 0.9.92 [SeaMonkey 2.40/20160120202951]]
<cheater> hi
<cheater> has anyone got any idea how to make a two-way protocol using Core.Async?
<cheater> i have an application and it's server and client, and the client connects to the server. i know how to send stuff from the client to the server when the client wants to, and i know how to expect a return value. but i don't know how to make the server send stuff to the client when the server wants to.
aggelos_ has quit [Ping timeout: 246 seconds]
kushal has quit [Ping timeout: 276 seconds]
aggelos_ has joined #ocaml
tane has quit [Quit: Leaving]
AlexDeni_ has joined #ocaml
AlexDenisov has quit [Read error: Connection reset by peer]
slash^ has joined #ocaml
larhat has quit [Quit: Leaving.]
<tormen> Hi. I am trying to use Functors ... with a variant type in the Functor Input Class ... to create a new variant type within the functor ...
<tormen> ... I don't get it. I tried it a looot of different ways... but there always something not right. I get things to compile, but when I try to use the variant type in the module created byt the functor things fall apart :(
<Drup> tormen: could you show what you tried ?
<tormen> I prepared a simplified example: https://help.apiary.io/api_101/api_blueprint_tutorial/
<tormen> Drup: :)
<tormen> wrong url
<tormen> I prepared a simplified example: https://paste.debian.net/hidden/b1436fe3/
jwatzman|work has quit [Ping timeout: 250 seconds]
tane has joined #ocaml
<Kakadu> `Test.IS Test.CONFIRMED` should be ``Test.IS TEST_FUNCTOR_INPUT.CONFIRMED
<Kakadu> (I think)
<tormen> Kakadu: :) ... Ok I had tried Test.IS TEST_FUNCTOR_INPUT_type.CONFIRMED ;)
<tormen> (but same result)
<tormen> Kakadu: In this case it complains (like for the TEST_FUNCTOR_INPUT_type.CONFIRMED):
<tormen> Error: This expression has type TEST_FUNCTOR_INPUT.t but an expression was expected of type Test.t
<tormen> .. but it seems like it is impossible to provide Test.t ...
dwillems has quit [Quit: Ex-Chat]
<tormen> I am not sure what "type t = M.t" really does... if M.t is a variant type is "t" then also a variant type with the same constructors ??
<tormen> Can I expose a variant type from the FUNCTOR_INPUT module within the resulting Functor output module ?
<Drup> tormen: you can't really re-expose arbitrary variants like that, you can make Kakadu's fix work if you add change the output signature to "FUNCTOR_OUTPUT with type t = M.t"
MercurialAlchemi has joined #ocaml
<Drup> you need to expose, in the signature, that the types are the same. stating it in the body of the functor is not sufficient.
<tormen> Drup: I think I tried type t = M.t in FUNCTOR_OUTPUT and it complained about unknown M...
<Drup> yes, that's normal, since FUNCTOR_OUTPUT doesn't know about any M
<Kakadu> module Make (M:FUNCTOR_INPUT_type) : (FUNCTOR_OUTPUT with type t = M.t)
<Kakadu> maybe?
<Kakadu> ah, well done Drup
octachron has joined #ocaml
<tormen> cool okey
<tormen> Drup: Cool. I love comeing here and really UNDERSTANDING things (why not, why ... ) :)) ... I'll try it right away and report :))
<Drup> and once you have done that, you can then do "let flag : Test.flag = IS CONFIRMED in" thanks to magic disambiguation :]
<tormen> :)
<_y> question about naming existential types in GADTs: http://paste.awesom.eu/5Kll&ln
<Drup> _y: that's not gonna work
<_y> why can’t ty be unified to the existential type a#1 introduced by the matching? :-(
<Drup> because ty is a rigid locally abstract type
<_y> rigid?
<Drup> it's not a type variable, you can't unify it with anything
<_y> oh
<_y> i believed there were simply named type variables
<Drup> Nope, it's really a new abstract type
<_y> then does there exist any way to refer to the type of x?
<Drup> not as far as I know
<_y> so i guess « let x (type ty) = bla » is equivalent to « let x = let module L = struct type ty end in let open L in bla » ?
<Drup> not exactly
<Drup> I refer you to the relevant part of the manual, which was rewriten recently :D
<_y> oh right, it is first abstract, then becomes a type variable
<_y> so ty can escape the scope of the definition (and become generalized or a weak type variable), whereas it can’t in my code with a local module
<_y> okay
<_y> so I need Obj.magic at the type level
<_y> Typ.magic
<tormen> Drup: yew, works like charm. Thanks a lot!! :))))
<tormen> Kakadu: Thanks a lot as well :)))
<Drup> _y: why do you need to name it that much ?
<_y> Drup, because i need to define a local module with type t = type of x, and exception constructors taking values of that type
dakk has quit [Ping timeout: 246 seconds]
<gasche> you can use what the Coq community calls a "convoy pattern"
<gasche> with E x -> (fun (type a) (x : a) -> ...your code...) x
<gasche> or, more readably, with E x -> let run (type a) x = ... in run x
<gasche> ( _y )
<gasche> also, Obj.magic is not part of the language
<tormen> For reference: The working version: https://paste.debian.net/hidden/e4978d0c/
<_y> ah, i precisely learned about that Coq trick recently :->
<_y> thanks gasche!
dave24 has quit [Ping timeout: 264 seconds]
<Drup> hum, I used that once, I didn't knew the name though
larhat has joined #ocaml
<_y> x |> fun (type ty) (x : ty) ->
<_y> lovely
diphuser has joined #ocaml
<gasche> lovely in the "too clever for it's own good" style, but if you're declaring (exception E : 'a -> exn) you're in this phase of the day anyway
<_y> i lied
beginner has quit [Remote host closed the connection]
<_y> (it’s an effect)
shinnya has quit [Ping timeout: 276 seconds]
shinnya has joined #ocaml
<_y> my first non‐trivial use of first‐class modules :-)
nojb_ has quit [Ping timeout: 276 seconds]
darkf has quit [Quit: Leaving]
travula has joined #ocaml
<_y> btw, is there a reason why you can write (module struct … end) but not (module sig … end), nor (module struct … end : sig … end) ?
nojb_ has joined #ocaml
<gasche> _y: abstract types in a signature have a generative semantics which makes them awkward to use in expressions
<gasche> it's better to always bind them to a module path, and then use that path
<gasche> I believe that the (module ... : S) syntax enforces that S be a path for this reason
<gasche> (do (module ... : sig type t end) and the identical (module .... : sig type t end) have compatible types?)
<_y> i see
ygrek has joined #ocaml
genso-pyon has quit [Ping timeout: 276 seconds]
<octachron> it is only me, or does "(module M: sig end)" crashes utop?
<gasche> octachron: reproducible on my side
<gasche> cheers to your first utop PR, I guess?
<gasche> (utop checks the type of evaluated expressions and, for example, runs them if they're in the Lwt.t monad)
<gasche> (that's probably where "Pattern matching failed" as the error says)
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
<gasche> Kakadu: apologies for the complication on your ppx PR; it seems that the PPX pipeline in the compiler is not very mature yet, and that you are paying for some of that understanding/restructuration as the author of the first non-trivial proposal to change it
<Kakadu> gasche: Don't worry. It's OK
pyon has joined #ocaml
Algebr` has joined #ocaml
<aantron> whats a good library providing priority queues?
<octachron> gasche: it looks more like a forgotten syntax error. Well, an easily fixable bug will be a nice change.
<companion_cube> aantron: containers? :]
<companion_cube> lots of good stuff here, actually: https://www.lri.fr/~filliatr/software.en.html
<companion_cube> if you don't mind LGPL
<Drup> lwt is lgpl too anyway
<Drup> (I assume it's for Lwt_pqueue)
<aantron> Drup: yeah, but for now i just want to mark it deprecated and recommend alternatives in comments
<aantron> companion_cube: looking :)
<aantron> it would be nice to introduce a certain degree of parsimony to lwt :)
<aantron> btw, anyone know why not all threads in lwt should be cancelable?
<aantron> why have both wait and task
<gasche> isn't Jean-Cristophe Filliatre's software packaged on OPAM? we should do that then
<aantron> i havent looked into it yet
<companion_cube> not all of it, gasche, afaik
<Drup> isn't most of it in containers one way or another anyway ? :3
<companion_cube> not all of it :D
<companion_cube> gasche: I'd be glad to have your input on the current iterators bikeshed, if you have time
<gasche> I'm trying to make the POPL deadline, so I should say no
<companion_cube> :D
<companion_cube> good excuse, do go on
<gasche> and also, I'm trying to stay away from stdlib discussions :-'
<gasche> (I'm rather bad at this but well)
<companion_cube> well, you'd be nicer than Bünzli anyway ^^
<Drup> gasche: don't worry, the popl deadline will be done far before the end of that particular discussion
<companion_cube> he means POPL2017
<Drup> companion_cube: my remark still holds :>
<companion_cube> mine too :[p
sz0 has quit [Quit: Connection closed for inactivity]
shinnya has quit [Ping timeout: 252 seconds]
BitPuffin has quit [Remote host closed the connection]
A1977494 has joined #ocaml
A19774941 has quit [Ping timeout: 252 seconds]
octachron has quit [Quit: Page closed]
jonasen has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mfp_ has quit [Ping timeout: 272 seconds]
mfp_ has joined #ocaml
tane has quit [Quit: Leaving]
shinnya has joined #ocaml
tane has joined #ocaml
agarwal1975 has quit [Quit: agarwal1975]
travula has quit [Ping timeout: 244 seconds]
octachron has joined #ocaml
A1977494 has quit [Quit: Leaving.]
slash^ has quit [Read error: Connection reset by peer]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
dakk has joined #ocaml
ygrek has quit [Ping timeout: 244 seconds]
kakadu_ has joined #ocaml
dhil has quit [Ping timeout: 240 seconds]
dakk has quit [Ping timeout: 260 seconds]
AlexDenisov has joined #ocaml
AlexDeni_ has quit [Read error: Connection reset by peer]
<Algebr`> besides Array.init size (fun _ -> assert false), there's no way to make an array with no values right? Have to at least do Array.init size (fun _ -> None)? This is an annoying allocation but I guess a cost of functional programming?
<Algebr`> or maybe I can cheat and use ref None?
<Drup> hum, even if you don't put a value, it's going to allocate ...
<Drup> it's an array, aka a continuous block in memory
<Drup> you need to allocate something.
MercurialAlchemi has quit [Ping timeout: 276 seconds]
<Drup> Algebr`: what do you want exactly ?
<mrvn> Algebr`: that's one allocation. big deal.
<Drup> (also, assert false wouldn't work here ...)
<aantron> i think Algebr` wants to allocate only the array itself, and avoid initializing its contents
<mrvn> Amigas partitioning format has a pointer to the filesystem driver in the partition block so any filesystem can be used on the disk.
<mrvn> ups
<aantron> i think -> None is probably going to be the fastest way though
<mrvn> -> () or true or 0 or []
<Algebr`> yes
<Algebr`> to aantron
<aantron> well things like true and 0 constrain your type much more than None does.. but yeah
<aantron> i dont remember off the top of my head if None will be boxed
<Algebr`> don't think it will since it has no fields
<mrvn> None is 0
<Algebr`> yes, just 0
<aantron> ok, good
<zozozo> well, about that, I once saw a very dirty hack to implement sparse vector for alt-ergo-zero, where the array was initialized with a dummy value of the desired type, then on access, physical equality with that value was used to determine wether the case had actually been filled with a concrete value, :p
<mrvn> zozozo: Obj.magic is evil
<zozozo> well it didn't use Obj.magic
<aantron> crying, but maybe you can abuse the FFI :p
<mrvn> zozozo: then you have to supply a dummy value
<Algebr`> zozozo: this is not that bad an idea
<zozozo> indeed, but since the array was then juste a make, it was the same value everywhere
<zozozo> so not much allocation besides the array
<aantron> 2 allocations should be
<aantron> well
<aantron> the value was probably already allocated
<mrvn> that hack also only works with boxed values. Can't use a "Foo" constructor as dummy.
<zozozo> yes, exactly why I called it a hack
<zozozo> ^^
yan has quit [Quit: WeeChat 0.4.2]
sepp2k has quit [Quit: Leaving.]
sepp2k has joined #ocaml
sepp2k has quit [Ping timeout: 276 seconds]
<sspi> How do I run 2 different OCaml versions in the same universe? Is it even possible?
<mrvn> opam
ygrek has joined #ocaml
<gasche> "universe"?
<zozozo> sspi: as far as i know, it's not possible, but with opam switching between two different version is just a matter of doing : "opam switch version; eval `opam config env`"
<mrvn> zozozo: you can change the dir where opam installs for the other version
<gasche> (I prefer "eval $(opam config env)" and I always wonder why the message doesn't use this syntax)
<gasche> what does "universe" mean here?
<zozozo> mrvn: yes, but then I don't knwo how to configure ocamlfind to handle two different compiler version (or if it is even possible)
<Drup> my advice is to never use "opam switch foo" and use "eval $(opam config env --switch foo)" for local switch instead
<mrvn> zozozo: the opam config env contains all that
<gasche> Drup: that's a good idea, "opam switch foo"'s state changes are painful
<Drup> I should write a small post of how I use opam switches
nicholasf has joined #ocaml
groovy2shoes has quit [Quit: Leaving]
groovy2shoes has joined #ocaml
tane has quit [Quit: Leaving]
octachron has quit [Quit: Leaving]
AltGr has left #ocaml [#ocaml]
nicholasf has quit [Remote host closed the connection]
groovy2shoes has quit [Ping timeout: 250 seconds]
nojb_ has quit [Ping timeout: 272 seconds]
groovy2shoes has joined #ocaml
loocash has joined #ocaml
loocash has quit [Client Quit]
loocash has joined #ocaml
loocash has quit [Quit: Leaving]
groovy2shoes has quit [Ping timeout: 250 seconds]
loocash has joined #ocaml
loocash has quit [Client Quit]
nicholasf has joined #ocaml
loocash has joined #ocaml
loocash has quit [Client Quit]
loocash has joined #ocaml
loocash has quit [Client Quit]
loocash has joined #ocaml
loocash has quit [Client Quit]
Sorella has quit [Quit: Connection closed for inactivity]
loocash has joined #ocaml
loocash has quit [Quit: Leaving]
nicholasf has quit [Remote host closed the connection]
Simn has quit [Quit: Leaving]
agarwal1975 has joined #ocaml
agarwal1975 has quit [Client Quit]
Sorella has joined #ocaml
kakadu_ has quit [Remote host closed the connection]
nicholasf has joined #ocaml
nicholasf has quit [Remote host closed the connection]
nicholasf has joined #ocaml
AlexDeni_ has joined #ocaml
madroach has quit [Ping timeout: 244 seconds]
AlexDenisov has quit [Ping timeout: 246 seconds]
nicholasf has quit [Remote host closed the connection]
madroach has joined #ocaml
nicholasf has joined #ocaml
Algebr` has quit [Ping timeout: 250 seconds]
Kakadu has quit [Ping timeout: 250 seconds]
diphuser has quit [Ping timeout: 250 seconds]