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
sh0t has quit [Remote host closed the connection]
Ravana has quit [Quit: Goodbye for now!]
Algebr` has joined #ocaml
Ravana has joined #ocaml
chinglish has quit [Ping timeout: 250 seconds]
kakadu has quit [Remote host closed the connection]
tautologico has quit [Ping timeout: 244 seconds]
silver has quit [Quit: rakede]
tautologico has joined #ocaml
wtetzner has joined #ocaml
tautologico has quit [Ping timeout: 258 seconds]
adelbertc has joined #ocaml
MercurialAlchemi has joined #ocaml
tmtwd has joined #ocaml
wtetzner has quit [Remote host closed the connection]
MercurialAlchemi has quit [Ping timeout: 252 seconds]
smkz has joined #ocaml
<smkz> does anyone know what causes "The actions to process have cyclic dependencies: - ∗ ocaml.4.03.0 -> ∗ ocaml-base-compiler.4.03.0 -> ∗ ocaml.4.03.0" or how to fix it?
sh0t has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
chinglish has joined #ocaml
sh0t has quit [Ping timeout: 240 seconds]
darkf has joined #ocaml
tmtwd has quit [Ping timeout: 250 seconds]
wtetzner has joined #ocaml
picolino has quit [Ping timeout: 244 seconds]
picolino has joined #ocaml
govg has quit [Ping timeout: 260 seconds]
Algebr` has quit [Remote host closed the connection]
wtetzner has quit [Remote host closed the connection]
tmtwd has joined #ocaml
nicholasf has quit [Remote host closed the connection]
nicholasf has joined #ocaml
picolino has quit [Ping timeout: 264 seconds]
picolino has joined #ocaml
tautologico has joined #ocaml
picolino has quit [Ping timeout: 244 seconds]
picolino has joined #ocaml
picolino has quit [Ping timeout: 244 seconds]
MercurialAlchemi has joined #ocaml
adelbertc has quit [Quit: Connection closed for inactivity]
tautologico has quit [Ping timeout: 240 seconds]
kushal has joined #ocaml
lol_u_phail has joined #ocaml
tmtwd has quit [Ping timeout: 258 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
lol_u_phail has quit [Quit: Leaving.]
lol_u_phail has joined #ocaml
Simn has joined #ocaml
fluter has quit [Ping timeout: 258 seconds]
fluter has joined #ocaml
Mercuria1Alchemi has joined #ocaml
rgrinberg has quit [Ping timeout: 260 seconds]
rossberg_ has quit [Ping timeout: 264 seconds]
ygrek has quit [Ping timeout: 250 seconds]
lol_u_phail has quit [Ping timeout: 276 seconds]
rossberg_ has joined #ocaml
chinglish has quit [Ping timeout: 252 seconds]
chinglish has joined #ocaml
AltGr has joined #ocaml
dexterph has joined #ocaml
lol_u_phail has joined #ocaml
dhil has joined #ocaml
larhat has joined #ocaml
<flux> smkz, not really, but do you have aspcud for resolving dependencies?
<flux> I've found the builtin resolver glitchy.
<flux> smkz, also what's the action? opam switch 4.03.0?
brub has joined #ocaml
martinkl_ has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 258 seconds]
jwatzman|work has joined #ocaml
tg has quit [Ping timeout: 252 seconds]
tg has joined #ocaml
silver has joined #ocaml
jstolarek has quit [Ping timeout: 240 seconds]
tane has joined #ocaml
jstolarek has joined #ocaml
thizanne has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
tane has quit [Ping timeout: 244 seconds]
larhat has quit [Ping timeout: 240 seconds]
sdothum has joined #ocaml
fraggle_ has joined #ocaml
dave24 has joined #ocaml
picolino has joined #ocaml
jstolarek has quit [Ping timeout: 240 seconds]
larhat has joined #ocaml
jstolarek has joined #ocaml
pierpa has joined #ocaml
jstolarek has quit [Ping timeout: 250 seconds]
_andre has joined #ocaml
johnelse has joined #ocaml
larhat1 has joined #ocaml
larhat has quit [Read error: Connection reset by peer]
nicholasf has quit [Remote host closed the connection]
nicholasf has joined #ocaml
jstolarek has joined #ocaml
MercurialAlchemi has joined #ocaml
jstolarek has quit [Remote host closed the connection]
jstolarek has joined #ocaml
tautologico has joined #ocaml
chinglish has quit [Ping timeout: 276 seconds]
MercurialAlchemi has quit [Ping timeout: 258 seconds]
Bluddy[m] has quit [Remote host closed the connection]
Kakadu2[m] has quit [Remote host closed the connection]
barkmadley[m] has quit [Remote host closed the connection]
regnat[m] has quit [Read error: Connection reset by peer]
M-jimt has quit [Remote host closed the connection]
M-pesterhazy has quit [Remote host closed the connection]
M-ErkkiSeppl has quit [Read error: Connection reset by peer]
M-martinklepsch has quit [Write error: Connection reset by peer]
M-Illandan has quit [Read error: Connection reset by peer]
beginner_ has joined #ocaml
beginner has quit [Read error: Connection reset by peer]
ggole has joined #ocaml
tautologico has quit [Ping timeout: 260 seconds]
tane has joined #ocaml
k1000 has quit [Quit: Lost terminal]
k1000 has joined #ocaml
Kakadu2[m] has joined #ocaml
martinkl_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sepp2k has joined #ocaml
chinglish has joined #ocaml
nicholasf has quit [Remote host closed the connection]
dhil has quit [Ping timeout: 258 seconds]
nicholasf has joined #ocaml
lol_u_phail has quit [Ping timeout: 276 seconds]
regnat[m] has joined #ocaml
M-martinklepsch has joined #ocaml
M-jimt has joined #ocaml
Bluddy[m] has joined #ocaml
M-ErkkiSeppl has joined #ocaml
barkmadley[m] has joined #ocaml
M-pesterhazy has joined #ocaml
M-Illandan has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
rgrinberg has joined #ocaml
octachron has joined #ocaml
chinglish has left #ocaml [#ocaml]
freehck has quit [Remote host closed the connection]
martinkl_ has joined #ocaml
lol_u_phail has joined #ocaml
averell has joined #ocaml
<dexterph> in Cmdliner, does anybody know if it's possible to make an option required only when a certain flag is set? for example, set --eval=blah as required only when --require-eval is present, the Cmdliner has an Err module but it's not exposed so I don't think I can use that strategy
tane has quit [Quit: Verlassend]
<Drup> It is, hum, not recommended to do that.
<Drup> Of course, you can always do it yourself after the fact
nicholasf has quit [Remote host closed the connection]
<dexterph> Drup: not recommended from a UI perspective? or do you just mean in cmdliner
<Drup> in cmdliner
<Drup> (I don't think it's recommended for a UI perspective either, though)
reynir is now known as reynir|
reynir| is now known as reynir
k1000 has quit [Quit: .]
<dexterph> any thoughts on a good way to expose something like this? my use case: the user should have a way to specify an eval function. usually it is optional but if they want the program to optimize over the eval function then it (of course) must be supplied. I can throw my own error but I think it would be prettier if the error looked like all of the other cmdliner errors
k1000 has joined #ocaml
zpe has joined #ocaml
<Drup> dexterph: from your keys, you get two terms, "eval : eval_function Term.t" and "opt: bool Term.t"
<Drup> you can combine them to make a term "opt_with_eval_function ret Term.t"
<Drup> (with ret being defined in the Term module)
<Drup> then you use Term.ret
<Drup> (and then you keep composing like you would normally do)
<dexterph> thanks Drup
nicholasf has joined #ocaml
mcspud has quit [Ping timeout: 250 seconds]
mcspud has joined #ocaml
mcspud has quit [Remote host closed the connection]
dhil has joined #ocaml
jstolarek has quit [Remote host closed the connection]
jstolarek has joined #ocaml
Mercuria1Alchemi has quit [Ping timeout: 244 seconds]
freehck has joined #ocaml
MercurialAlchemi has joined #ocaml
tautologico has joined #ocaml
copy` has joined #ocaml
jstolarek has quit [Ping timeout: 240 seconds]
<beginner_> has the ocaml compiler a verbosity level which i can set?
jstolarek has joined #ocaml
tane has joined #ocaml
<ggole> No, but you can dump various info
<ggole> (Well, there's -verbose, but I don't think will do what you want.)
<beginner_> i get a lot of "Cannot resolvee symbols" errors, e.g. _caml_acos_float
<ggole> Are you on windows/Cygwin?
<beginner_> yes
<ggole> Although that is just a guess
<mrvn> it obviously should. but does it?
tautologico has quit [Ping timeout: 250 seconds]
<beginner_> i changed my PATH variable, but no i get "Unsupported relocation kind 00b.." for the llvm binding
<ggole> No idea on that one.
pierpa has quit [Ping timeout: 260 seconds]
<companion_cube> hmmm, actually, why doesn't opam use symlinks to change bin,lib,etc. upon `opam switch`?
<companion_cube> it would avoid the case where forgetting to run "eval `opam config env`" makes you scratch your head
jstolarek has quit [Ping timeout: 244 seconds]
jstolarek has joined #ocaml
jstolarek has quit [Ping timeout: 244 seconds]
govg has joined #ocaml
<gasche> companion_cube: how would you implement (opam config exec --switch=... -- ...) in this setting?
<companion_cube> I don't care
<companion_cube> what does it even do?
<gasche> it runs a command in a switch, without changing the global state
<gasche> quite a useful command in my usage
<companion_cube> ok…
<companion_cube> can we just throw opam into the garbage can and use nix? :/
<gasche> I think a first step would be to make sure that nix works well with opam packages
<gasche> but there are also scientific arguments for an opam-like dependency-solving approach instead of a nix-like maximal installation approach
<gasche> (I think we should have both working well; and Windows; yeah)
<gasche> how does nix work under Windows and OSX?
<beginner_> is there some date set for opam on windows?
<gasche> well it already sort of works
jstolarek has joined #ocaml
<beginner_> not for 4.03.0
<pippijn> companion_cube: but opam has colours!
<pippijn> and uses \r!
<companion_cube> yay
<gasche> well opam packages for 4.03.0 don't work suppert well on unix either beginner_
<gasche> but in any case
<gasche> right now opam-on-windows is for experimental early-adopter
<gasche> I think that the plan is to make this a well-supported scenario in either the next opam release (soon) or the one after that
<beginner_> gasche: the only package i had a problem with so far was zmq 4.0
<pippijn> nix on windows used to be cygwin
<pippijn> now it's broken, I think
<pippijn> if nix on windows happens again at some point, I hope it'll be mingw
<gasche> companion_cube: are you using nix now?
<Drup> companion_cube: symlink doesn't work for a rather large amount of reason. It was discussed in opam's infancy, there are rather long discussions on github on the subject.
<gasche> we need some frequent OCaml users on nix to make it work well
<companion_cube> Drup: ah.
<Drup> (also, a lot of opam features don't work with the nix approach)
<companion_cube> hwo about the feature "not having mixed global/local state"?
<companion_cube> gasche: no I'm not
<Drup> have you looked at the proposal for opam local ?
<companion_cube> but the model is much cleaner than opam imho
<companion_cube> not really
<gasche> you should have a discussion with the CUDF people about the advantages and inconvenients of the nix model
<gasche> I think people only remember the advantages
<Drup> gasche: that's the "dependency management" question
<gasche> of course
<Drup> I personally *like* opam switches
<gasche> but that's a core tenet of nix' design
<Drup> they are very good for my workflow
<companion_cube> gasche: why can't the dependency management be combined with the nix storage model?
<pippijn> disadvantage: if it's not in nix, it'll have to be put into nix, or else you'll have a lot of recurring pain
<gasche> companion_cube: not quite the same thing as "bury opam and all switch to nix"
<pippijn> (I'm on nixos)
<companion_cube> gasche: bury opam and rewrite nix in OCaml
<companion_cube> ;)
<gasche> I would like to experiment with nix (and qubes) whenever I have time
<Drup> companion_cube: how do you emulate pins in nix ?
<gasche> but before having tried it myself I can't make good recommendations
nicholasf has quit [Remote host closed the connection]
<Drup> (last time I asked that, I got only muddy answers)
<companion_cube> I don't know, interesting question
<Drup> yeah, but sure, let's bury opam ;)
<companion_cube> pin is quite nice, indeed
<companion_cube> well, I'm just really annoyed I spent the afternoon looking for a bug that was actually a missing `eval $( opam config env)`
<beginner_> what is the problem with opam?
<companion_cube> global state is really bad
<gasche> hm
<Drup> I should really write this blog post about my workflow
<gasche> so you were hit by a usability bug, and your recommendation is to stop using the tool completely and move to a not-very-tested alternative
<gasche> :-'
<gasche> (or to rewrite said alternative in OCaml; quite the companion_cube approach indeed :-)
<Drup> gasche: he is in a vindicative mood since a month, I think it's the heat :3
<companion_cube> meh
<companion_cube> it's the constant breakage of everything I use
<companion_cube> (including my own code, to be fair)
<gasche> "we are all doomed"
<companion_cube> 4.03 is also still unusable because of dependencies…
<gasche> I saw a talk by James Mickens, the writer of humorous pieces about computer science
<companion_cube> Drup: I fail to see any workflow that prevents multiple terminals to get stale upon `opam sw`
<Drup> companion_cube: my advice: do not, ever, use "opam switch"
<companion_cube> ok…
<companion_cube> so what am I supposed to do ‽
<Drup> you can switch locally to a terminal with "eval `opam config env --switch mirage`"
<companion_cube> m'ok
<gasche> companion_cube: also read some http://scholar.harvard.edu/files/mickens/files/towashitallaway.pdf to decompress
<Drup> I have one main switch which contains the tooling, and a set of alias switches, which contains various pins and other things
<ggole> Mickens is hilarious
<companion_cube> I know the latter ^^
<companion_cube> Drup: interesting
<companion_cube> ( a bit convoluted, which is worrying, but well)
<Drup> well, it's not *that* convoluted
<companion_cube> I suppose local switches are there to make it easier to avoid `opam sw`
<Drup> all the tooling is extremly optimized for that use case, weirdly
<Drup> (merlin works very well, so does ocp-browser and opam user-conf)
<companion_cube> so the easy command is bad, the same way the system switch is bad
<Drup> kind of, yes
<companion_cube> yay
slash^ has joined #ocaml
Ravana has quit [Ping timeout: 244 seconds]
<Drup> it will work even better with opam local, since you will be able to do exactly that, but without using "eval ...", cd in the right directory will be enough
<Drup> a la cabal/npm/.. sandboxes
<gasche> ( Drup is defusing the situation, companion_cube may delay changing the language syntax to better write a nix clone by a year or two )
<gasche> you should really write that blog post
<companion_cube> oh, right, the syntax change :D
<gasche> like now
<beginner_>
<companion_cube> gasche: so how about this -safe-syntax? :D
<Drup> gasche: I'm trying very hard to work on my deadlines :(
<Drup> (not with a lot of success, unfortunatly)
<gasche> companion_cube: I don't know much about that
<gasche> are you preparing yet another flooded PR?
<companion_cube> nah
<Drup> (and I'm kinda waiting for the release of opam 2.0, so that I can show more cool tibits)
<companion_cube> I'm too lazy to work on the parser
<gasche> I would like to get back to the menhir one
<gasche> but no time before mid-August
<companion_cube> and anyway I have projects to debug^W work on
<gasche> (the US for you: you get work to do during the first half of August)
<gasche> (these people are unreasonable)
<companion_cube> :D
tautologico has joined #ocaml
tane has quit [Quit: Verlassend]
<Drup> (when I read something from Mickens, I can replace "kernel programmers" by "compiler devs" and it works just the same)
jstolarek has quit [Ping timeout: 244 seconds]
<Drup> (this insight comes from reading the ocaml typechecker)
<companion_cube> I'm a bit wondering how people debug their patches to ocamlc
<adrien> "git push origin test:master"
<adrien> and wait
<Drup> companion_cube: i had really weird bug in the typechecker and frankly, I'm still not sure how I debuged them. I involved a lot of staring and cursing.
<Drup> It*
<companion_cube> yeah, ok
<Drup> but pierre chambart has very fun debuging stories, you can ask him :D
<companion_cube> I can imagine
ygrek has joined #ocaml
Ravana has joined #ocaml
<beginner_> The windows install readme refers to flexdll version 0.35, but thats not even available at the mentioned github page?
<Drup> gasche: those links are exactly what I needed, thanks you very much.
jwatzman|work has quit [Quit: jwatzman|work]
tautologico has quit [Ping timeout: 276 seconds]
thizanne has quit [Ping timeout: 260 seconds]
tautologico has joined #ocaml
rgrinberg has quit [Ping timeout: 260 seconds]
tautologico has quit [Client Quit]
lol-icon has quit [Ping timeout: 250 seconds]
manizzle has joined #ocaml
shinnya has joined #ocaml
martinkl_ has quit [Quit: Textual IRC Client: www.textualapp.com]
rgrinberg has joined #ocaml
larhat1 has quit [Quit: Leaving.]
sh0t has joined #ocaml
lol-icon has joined #ocaml
wtetzner has joined #ocaml
wtetzner has quit [Remote host closed the connection]
Orion3k has joined #ocaml
dhil has quit [Ping timeout: 240 seconds]
SpiceGuid has joined #ocaml
johnelse has quit [Ping timeout: 252 seconds]
dexterph has quit [Ping timeout: 244 seconds]
<octachron> discovery of the day: with a high probability, no one has ever used open sum types in a library/project with an ocamldoc-generated documentation
thizanne has joined #ocaml
<gasche> octachron: be careful, if you send another pull request on the ocamldoc codebase, people may start asking you to fix bugs :-'
wtetzner has joined #ocaml
tane has joined #ocaml
<Drup> octachron: I have
<companion_cube> but did you actually generate the documentation? :D
<Drup> I just .. accepted the fact that it was a disaster
<Drup> (along with functors, module signatures, type substitutions ...)
<companion_cube> accept the pain into your heart
<Drup> (tyxml is ocamldoc's kryptonite)
<companion_cube> or mabye ocamldoc is tyxml's kryptonite
<gasche> functors and module signatures are merely inconvenient, they do work
<companion_cube> who needs doc anyway
<companion_cube> people have been using Zarith for years! :D
<Drup> gasche: I have examples where ocamldoc stop linkifying modules in module type expressions
<Drup> it just gives up
<Drup> also, ocamldoc gives wrong module signatures when there are destructive subtitutions involved
<Drup> http://ocsigen.org/tyxml/4.0/api/Tyxml.Html look at the first include
<octachron> gasche, a sinister perspective... I wonder how codoc is doing?
<companion_cube> ask rks`, I think
dave24 has quit [Quit: leaving]
<gasche> well new-ish language features tend to be less supported unless someone explicitly asks about them
ontologiae has joined #ocaml
<octachron> Drup, just to check: reversed order of the constructors, discarded documentation comment on constructors, anything else?
<gasche> Drup: I'm surprised by your comment on destructive substitutions given that support was contributed in http://caml.inria.fr/mantis/view.php?id=5645
<Drup> octachron: oh, you meant relaly open sum type, not polyvars
<gasche> did you report that it is still failing?
<gasche> (extensible variant type)
<Drup> gasche: it's not failing, it's wrong :)
<gasche> ("open sum type" is kind of a misnomer I think)
<companion_cube> oh, btw, is Pierre on holiday? no one acknowledged my flambda crash :(
<Drup> as in, it doesn't propagate down substitutions
<Drup> if you have "module M = S with ..." and you open M, it shows S without subsitutions
<Drup> codoc solves that
<gasche> Drup: is there a bug report against this?
<octachron> Drup, ah yes, I meant extensible variant type
<companion_cube> to me `open sum type` is pretty clear
<Drup> gasche: I'm not sure, but honestly, there are so many bugs with module handling in ocamldoc that the good solution is to push for codoc, not trying to fix ocamldoc
<companion_cube> the new shiny construct
<gasche> I'm fine with pushing for codoc
<gasche> is it usable?
<gasche> I keep hearing about it every year, but I haven't seen it used in practice so far
<Drup> the edges are still a bit, hum, rough.
<octachron> gasche, there is less supported newish-ish feature and there is still having some "assert false" laying on some possible code path for this feature
kushal has quit [Quit: Leaving]
<companion_cube> I like how gasche is pragmatic and cautious
<companion_cube> we need more gasche :p
<gasche> well
<gasche> I have nothing against codoc
<gasche> it's just that I keep hearing that it will replace ocamldoc since a long time now
<gasche> and that hasn't happened yet, so I assume that I may still have to wait some more
<Drup> personally, I make my documentation as good as possible in a way that will naturally translate to odoc, and I wait patiently until it's ready
<gasche> (since 2013, to be precise)
<gasche> I think that's a fine plan
<Drup> Not investing any time in alternative documentation generators, or fixing up the existing train wreck
<gasche> but in particular in the meantime improving ocamldoc makes sense
<gasche> some things are out of reach of its design
<gasche> but many things are just new OCaml features to support and it's not so much work
<gasche> I think we should do it
<Drup> (except that I have to fix wikidoc (the thing that we use for the ocsigen doc) at each new version of ocaml, ofc)
<companion_cube> at the same level as debugging the typechecker: debugging a sat solver (cc zozozo)
ontologiae has quit [Ping timeout: 240 seconds]
martintrojer has quit [Ping timeout: 244 seconds]
zpe has quit [Remote host closed the connection]
SpiceGuid has quit [Quit: ChatZilla 0.9.92 [SeaMonkey 2.40/20160120202951]]
zpe has joined #ocaml
<zozozo> Haha, well it takes some time, ^^
martintrojer has joined #ocaml
<Drup> starring and cursing ?
<zozozo> Yup
zpe has quit [Ping timeout: 260 seconds]
<zozozo> But mostly, examples where it fails
<companion_cube> as always
<companion_cube> theorem proving is always the sam
<companion_cube> e
shinnya has quit [Ping timeout: 252 seconds]
octachron has quit [Quit: Page closed]
ontologiae has joined #ocaml
strykerkkd has joined #ocaml
strykerkkd has quit [Remote host closed the connection]
manizzle has quit [Ping timeout: 258 seconds]
<gasche> zozozo: are you coming to ICFP?
<gasche> you have five days left to apply as a Student Volunteer
<gasche> (it's in the second half of September)
ontologiae has quit [Ping timeout: 250 seconds]
tane has quit [Quit: Leaving]
Simn has quit [Ping timeout: 260 seconds]
<zozozo> Where is it this year ?
<gasche> zozozo: Nara, Japan
<companion_cube> do they pay the trip, too? :D
<companion_cube> ok, time to stop procrastinating making dinner
<gasche> Student Volunteers don't get travel funding
<gasche> PLMW applicants do
<gasche> (and this is public knowledge, and I wonder why people are not applying)
<zozozo> Ow, that's far.. plus I don't think I can prepare the mission in time, considering the holidays
darkf has quit [Quit: Leaving]
<gasche> a bad excuse for not going to an exciting conference in an exciting place
<gasche> (you would have to ask for funding from Damien or your lab)
<companion_cube> ICFP is not very big in our domain
<companion_cube> (well, it's tangentially connected)
<gasche> yeah
<gasche> and Nancy is less expensive
<gasche> but if you can do both, why not?
dhil has joined #ocaml
<companion_cube> I'm not concerned; zozozo has to deal with his team in Cachan ^^
<gasche> (or Damien)
<zozozo> Well, we don't see Damien much nowadays
rgrinberg has quit [Ping timeout: 244 seconds]
ggole has quit [Ping timeout: 276 seconds]
zpe has joined #ocaml
Simn has joined #ocaml
SpiceGuid has joined #ocaml
malc_ has joined #ocaml
Simn has quit [Quit: Leaving]
ollehar has joined #ocaml
lol_u_phail has left #ocaml [#ocaml]
sh0t has quit [Remote host closed the connection]
<ollehar> question about the C interface.
<ollehar> can I use it to create ref variables?
rgrinberg has joined #ocaml
<mrvn> yes
<ollehar> really, I want to do that with malfunction.
<ollehar> ok
<ollehar> hm
<mrvn> a ref is just a block with 1 value.
<ollehar> with value 1, or with one value?
<mrvn> one
<ollehar> ok, thanks
<mrvn> ref 1 is a block containing 3 (1 << 1 + tag), ref 1.0 is a block containing a pointer to the float block.
<mrvn> unless thats optimized like float array
<ollehar> what did that 3 come from?
<mrvn> Val_int(1)
<ollehar> ok
<gasche> malfunction supports mutable arrays, you could use an array of size 1
<ollehar> I thought about that.
<ollehar> but if I will write blocks anyway...
<gasche> right now, to my knowledge, there is no support for mutable variables built-in -- but they are less expressive than references anyway
<ollehar> ok
<mrvn> gasche: no records?
<gasche> if you want to push Malfunction further (it's just an experiment right now), you should get in contact with its author
<Drup> hum, is there even a difference between an array of size one and a ref anyway ?
<mrvn> Drup: yes. a ref is a record of size 1
<Drup> (in ocaml's backend, I mean)
<ollehar> well, I did report an issue about his docs... no answer yet.
<gasche> arrays have a size field
<ollehar> or hers
<gasche> send an email directly, maybe?
<Drup> oh, the size field, indeed
<gasche> I believe malfunction's author is Stephen Dolan, that would be "his"
<ollehar> sure, I can try email.
<mrvn> gasche: arrays don't have a size field. They use the blocks size field.
<gasche> hm
<gasche> good point
<gasche> only strings have specific size stuff
<companion_cube> could mezzo target malfunction, too?
<companion_cube> (simple curiosity)
sh0t has joined #ocaml
<mrvn> gasche: only one byte for the length%4 stored after the string
<gasche> I guess so, but it may require enlarging the language
<gasche> Malfunction is early stage right now
<gasche> and I would guess that pushing it further would require some extra work; which I think it deserves
<companion_cube> it would become the C-- of functional languages? :p
<ollehar> you think malfunction would be faster or slower than llvm backend?
<ollehar> depends on the gc, I guess.
<pippijn> malfunction is not a great project name
slash^ has quit [Read error: Connection reset by peer]
<companion_cube> ollehar: well it does provide a GC, unlike llvm
<pippijn> "Malfunction is a revolting hack" ok then :)
johnelse has joined #ocaml
<Drup> ollehar: it's kind of similar to asking "what is the fastest JVM or BEAM"
<Drup> There is an answer, but it kinda misses the point
johnelse is now known as Guest27163
<ollehar> well, if my compiler is not faster than hhvm, there's no meaning developing it.
<profan> pippijn: sounds like an excellent project name considering the project lol :)
shinnya has joined #ocaml
<Drup> ollehar: hhvm as in harrop's things ? It never supported the complete ocaml language.
zpe has quit [Remote host closed the connection]
Guest27163 has quit [Ping timeout: 250 seconds]
<gasche> no, the PHP implementation
<ollehar> right.
<companion_cube> hlvm doesn't support closures, or something like this
zpe has joined #ocaml
<companion_cube> pretty sad
<profan> wot?
<Drup> [hl]*vm :D
Nahra` has quit [Remote host closed the connection]
<companion_cube> the Harrop thing
<profan> ah
<ollehar> Am I correct in that idris-malfunction backend is spitting out a text file in malfunction syntax?
<ollehar> using s-expressions or something.
<Drup> gasche: I'm tempted to add an opam file in the ocaml compiler for upcoming opam 2.0
Nahra has joined #ocaml
<Drup> ollehar: I would not be surprised if stephen didn't consider trying to transmit data from haskell to ocaml worth the headache
zpe has quit [Ping timeout: 244 seconds]
<ollehar> ok
<ollehar> makes sense.
_andre has quit [Quit: leaving]
<flux> so it seems F# 4.1 has value tuples and value records, pretty nice.
<gasche> Haskell is working on value unions, but they are a bit weird
<gasche> (in particular the size is the maximal size, as in Rust, and that's a strong change from functional representations)
<flux> it seems F# didn't bring value unions, except single-case-union as an exception
<gasche> incidentally, we have support for single-case-variants in trunk I think
* gasche is clicking "submit" on r/ocaml
<flux> you mean removing the case from the representation?
<gasche> hm
<Drup> flux: yes, like haskell newtype
<gasche> not just the case, when there is a single parameter you can remove the indirection
<flux> does it happen automatically?
<Drup> no :(
<flux> well, I can understand that (C interaction etc)
<Drup> yeah, that's the main reason
<Drup> but it should be done automatically, eventually
<flux> I guess it your profiler indicates it's a problem you can then use it ;)
jstolarek has joined #ocaml
octachron has joined #ocaml
sepp2k has quit [Quit: Leaving.]
<flux> maybe a transition path could be paved by introducing some C macros to deal with this
<Drup> flux: just read the github discussion :p
jstolarek has quit [Ping timeout: 260 seconds]
<companion_cube> maybe a transition path to the github discussion could be paved
jstolarek has joined #ocaml
<flux> it's all very simple, really. just infer that the link is in reddit.com/r/ocaml, then follow the link.. ;) https://github.com/ocaml/ocaml/pull/606
* Drup does the "my typechecker works" dance.
<companion_cube> wow wow wow flux, link inference is non trivial
<flux> indeed it's undecidable in general case, but some particular cases are possible!
zpe has joined #ocaml
<ollehar> NP? quantum computer?
sh0t has quit [Remote host closed the connection]
johnelse has joined #ocaml
johnelse is now known as Guest79917
<Drup> hehe, in opam 2, I can do "opam pin edit ocaml-base-compiler" and edit the configuration flag to add whichever combination I want easily. <3
sh0t has joined #ocaml
<companion_cube> so l33t
<Drup> companion_cube: you have no idea, compiler as packages are so cool.
<flux> so I guess @@unwrapped didn't gain enough traction ;)
<gasche> (they're going to make many things easier)
<companion_cube> are they going to replace switches ? :D
<companion_cube> (no ,seriously, why is it so big a deal?)
<Drup> You can do really nice things
<companion_cube> ... if you're a compiler developer?
<Drup> No, for everyone
<gasche> the Coq community is using opam; for them it doesn't make sense to have (one switch == one OCaml compiler version)
<gasche> companion_cube: there should be a talk covering opam 2.0 at OUD 2016 in Japan
<companion_cube> yay
<gasche> come listen for it!
<companion_cube> seriously? :D
<gasche> (or watch the youtube videos while I'm eating delicious sushi by myself)
<companion_cube> yeah, I'll watch the videos
<companion_cube> I might go to Sweden during the fall, though
<Drup> fortunatly, I won't be here to screw up sound recording
<flux> gasche, so does the concept of still stays but it's not tied to an ocaml compiler?
<ollehar> I'm from Sweden!
<flux> s/does //
<ollehar> (don't live there, though)
<Drup> flux: yes
<Drup> roughly
dhil has quit [Ping timeout: 244 seconds]
<companion_cube> Drup: so which nice things are going to be possible?
<companion_cube> (so far the only exciting things in opam2, to me, are installation tracking and local switches)
<Drup> Things are still moving a bit, and I expect louis to write a good amount of documentation for it
<companion_cube> you like to keep me waiting, don't you
<Drup> companion_cube: :]
<companion_cube> you'd make a bad salesman
<Drup> (I mean, it's still an alpha)
shinnya has quit [Ping timeout: 250 seconds]
Guest79917 has quit [Ping timeout: 265 seconds]
<Drup> companion_cube: so, example: I can create a switch named "last" that tracks the last ocaml version, and it can upgrade the ocaml (and the recompiles things as needed)
<Drup> I can edit the configure options for a compiler on the fly to add new options (-fPIC, etc) without using new switches
<Drup> I can pin git repositories that contains an experimental compilers without needing to create a new repository
<companion_cube> hmmm, ok
<companion_cube> although it still sounds like features targeted toward compiler developers :)
<Drup> I can now formally depend on alternative compilers (so, a package can be "metaocaml only")
<gasche> well if you don't care which compiler version you are using, you probably won't care so much about compiler packaging changes
<Drup> companion_cube: I remember you ranting about configure options for the compiler ;)
<companion_cube> huuuu really?!
<Drup> yes
<companion_cube> I don't remember… what options anyway? :D
<companion_cube> maybe fpic actually
<Drup> yes
<Drup> anyway, now I can do whichever combination I want easily, instead of relying on existing switches
<gasche> "support for GC instrumentation" would also be an option that's nice to have without changing the switch
<companion_cube> hmmmm
<gasche> but I'm not sure compiler-as-packages edition is the right tool for that need
<companion_cube> btw, is gdb support merged yet?
<gasche> as it probably recompiles all packages, which I don't want if I'm just installing a new runtime variant
MercurialAlchemi has quit [Ping timeout: 252 seconds]
<Drup> gasche: agreed, but at least now it's possible to do it that way. Before, it was really difficult (new opam repository, etc ..)
<gasche> I think runtime variants could be distributed as separate opam packages that build the variant and then install it somewhere
<Drup> Also, all that is only if you consider opam primarly supporting an ocaml installation. If you consider other usages (coq for example), it's even better
<gasche> but other changes that do require recompilation, such as -fPIC, would be nice to have this way
<Drup> companion_cube: ah, it also allows richer version constraints in packages, for example (ocaml = 4.03 & foo) | bar
<Drup> people tried to do this kind of things since quite some time now, with ppx for example
strykerkkd has joined #ocaml
strykerkkd has quit [Remote host closed the connection]
dexterph has joined #ocaml
<companion_cube> ahah, I see
<companion_cube> (why is my inner voice shouting "fragmentation!" ?)
<Drup> fragmentation ?
<companion_cube> well, packages that do not interop, parts of the community that use different flags/compilers, etc.
<Drup> I'm not sure I see the link. Here is an example : "((ocaml >= 4.02 & ppx_tools) | ocaml < 4.02)"
<Drup> We already do that, we just use weird encoding (base-no-ppx ...)
<companion_cube> yay, more conflicts! ;)
<ollehar> anyone knows why a sexp would need two pos? https://github.com/stedolan/malfunction/blob/master/src/malfunction_sexp.mli#L4
jstolarek has quit [Ping timeout: 252 seconds]
<Drup> (I'm sure you would have a use of that in your packages, but I guess being snarky is more fun :p)
jstolarek has joined #ocaml
<companion_cube> I don't think so, actually
<companion_cube> I try to minimize the amount of build system work to do
<companion_cube> and avoid ppx (except in less important tools)
<companion_cube> the rest is done through cppo
jeffmo has joined #ocaml
pierpa has joined #ocaml
tane has joined #ocaml
<ollehar> uh, why would opam not recompile after a failed attempt?
<ollehar> hm
<ollehar> oh, package got removed :P
zpe has quit [Remote host closed the connection]
xaimus has quit [Remote host closed the connection]
jstolarek has quit [Remote host closed the connection]
wtetzner has quit [Remote host closed the connection]
xaimus has joined #ocaml
bitbckt has quit [K-Lined]
jstolarek has joined #ocaml
bitbckt has joined #ocaml
nicholasf has joined #ocaml
tane has quit [Quit: Leaving]
kakadu has joined #ocaml
seangrove has joined #ocaml
<seangrove> Hey all, any idea how hard it might be to get the cohttp client to use a SOCKS proxy?
jstolarek has quit [Ping timeout: 244 seconds]
jstolarek has joined #ocaml
nicholasf has quit [Ping timeout: 250 seconds]
nicholasf has joined #ocaml
orbifx1 has joined #ocaml
jstolarek has quit [Ping timeout: 244 seconds]
ollehar has quit [Quit: ollehar]
AlexRussia has quit [Ping timeout: 258 seconds]
AltGr has left #ocaml [#ocaml]
jstolarek has joined #ocaml
nicholas_ has joined #ocaml
johnelse has joined #ocaml
johnelse is now known as Guest5268
maufred_ is now known as maufred
nicholasf has quit [Ping timeout: 260 seconds]
Guest5268 has quit [Ping timeout: 240 seconds]
groovy2shoes has quit [Ping timeout: 250 seconds]
groovy2shoes has joined #ocaml
jstolarek has quit [Ping timeout: 250 seconds]
Algebr` has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
fraggle_ has joined #ocaml
AlexRussia has joined #ocaml
sh0t has quit [Ping timeout: 258 seconds]
zpe has joined #ocaml
ontologiae has joined #ocaml
zpe has quit [Ping timeout: 276 seconds]
nicholas_ has quit [Remote host closed the connection]
nicholasf has joined #ocaml
Muzer has quit [Ping timeout: 244 seconds]
dexterph has quit [Ping timeout: 276 seconds]
orbifx1 has quit [Ping timeout: 260 seconds]
tmtwd has joined #ocaml
sillyotter has joined #ocaml
bronsen has quit [Remote host closed the connection]
bronsen has joined #ocaml
kakadu has quit [Remote host closed the connection]
ontologiae_ has joined #ocaml
ontologiae has quit [Ping timeout: 250 seconds]
sillyotter has quit [Quit: WeeChat 1.5]
jstolarek has joined #ocaml
sh0t has joined #ocaml
ontologiae_ has quit [Ping timeout: 244 seconds]
jstolarek has quit [Ping timeout: 250 seconds]
SpiceGuid has quit [Ping timeout: 260 seconds]