flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 4.01.0 http://bit.ly/1851A3R | http://www.ocaml.org | Public logs at http://tunes.org/~nef/logs/ocaml/
derek_c has quit [Ping timeout: 252 seconds]
GlenK has quit [Quit: leaving]
ollehar has quit [Ping timeout: 260 seconds]
derek_c has joined #ocaml
Yang_ has joined #ocaml
Yang__ has quit [Ping timeout: 240 seconds]
Yang_ has quit [Read error: Connection reset by peer]
Drup has quit [Quit: Leaving.]
boogie has quit [Remote host closed the connection]
derek_c has quit [Ping timeout: 260 seconds]
madroach has quit [Ping timeout: 264 seconds]
<pippijn> good morning
madroach has joined #ocaml
Neros has quit [Ping timeout: 260 seconds]
cesar_ has joined #ocaml
cesar_ is now known as Guest44417
q66 has quit [Quit: Leaving]
derek_c has joined #ocaml
guest6311 has quit [Remote host closed the connection]
Kelet has joined #ocaml
ontologiae_ has joined #ocaml
ontologiae_ has quit [Ping timeout: 248 seconds]
yacks has quit [Ping timeout: 264 seconds]
yacks has joined #ocaml
UncleVasya has joined #ocaml
derek_c has quit [Ping timeout: 260 seconds]
derek_c has joined #ocaml
yacks has quit [Read error: Connection reset by peer]
yacks has joined #ocaml
NaCl has quit [Ping timeout: 264 seconds]
NaCl has joined #ocaml
darkf has quit [Read error: Connection reset by peer]
darkf has joined #ocaml
ben_zen has joined #ocaml
derek_c has quit [Ping timeout: 245 seconds]
derek_c has joined #ocaml
boogie has joined #ocaml
boogie has quit [Read error: Connection reset by peer]
boogie has joined #ocaml
<pippijn> does anyone know how ocaml compares to sml/nj performance wise?
talzeus has quit [Remote host closed the connection]
ygrek has joined #ocaml
talzeus has joined #ocaml
boogie has quit [Read error: Connection reset by peer]
derek_c has quit [Quit: Lost terminal]
boogie has joined #ocaml
<wmeyer> adrien: morning
gour has joined #ocaml
<pippijn> morning wmeyer
cdidd has quit [Remote host closed the connection]
<adrien> o/
<gour> morning
wmeyer has quit [Remote host closed the connection]
tianon has quit [Ping timeout: 268 seconds]
tianon has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
ygrek has joined #ocaml
TaXules_ has joined #ocaml
Xuerian has quit [Quit: No Ping reply in 180 seconds.]
TaXules has quit [Ping timeout: 240 seconds]
BiDOrD has quit [Quit: No Ping reply in 180 seconds.]
BiDOrD_ has joined #ocaml
Xuerian has joined #ocaml
darkf has quit [Read error: Connection reset by peer]
darkf has joined #ocaml
ygrek has quit [Ping timeout: 264 seconds]
yezariaely has joined #ocaml
dsheets has quit [Ping timeout: 260 seconds]
ben_zen has quit [Quit: sleeeeeep]
Simn has joined #ocaml
cdidd has joined #ocaml
darkf_ has joined #ocaml
darkf has quit [Ping timeout: 248 seconds]
Guest44417 has quit [Remote host closed the connection]
darkf_ is now known as darkf
boogie has quit [Remote host closed the connection]
inad922 has joined #ocaml
<inad922> hello
<inad922> I know this question might not be related to the channel but I would like to use google-drive-ocamlfuse. The main issue is that I can't really install the needed packages via my package manager(arch linux) so I searched up for ocaml's package manager and used opam to install the actual google-drive-ocamlfuse package. The only problem is that I don't know how to use this as a cli script since I have 0 experience in ocaml. If
<inad922> the necessary packages are installed in $HOME/.opam can I build the binary version of the package which lives on github?
<inad922> How can I make my ocaml interpreter / compiler see the packages installed in ~/.opam?
<adrien> you cannot mix packages from two different ocaml installations
<adrien> you either use the one in your home, or the system one; not both at once
<inad922> adrien: Aw yea I figured out that I have to read the tutorial. I forgot to set the env vars so the interpreter didn't see the packages in the .opam directory
<adrien> :)
chrisdotcode has quit [Ping timeout: 256 seconds]
ollehar has joined #ocaml
pippijn has quit [Quit: brb]
pippijn has joined #ocaml
boogie has joined #ocaml
boogie has quit [Ping timeout: 256 seconds]
ggole has joined #ocaml
tane has joined #ocaml
boogie has joined #ocaml
q66 has joined #ocaml
inad922 has quit [Quit: Leaving]
ulfdoz has joined #ocaml
<pippijn> Fatal error: exception File "src/client/opamState.ml", line 53, characters 42-48: Assertion failed
<pippijn> I am so happy that everybody worked so hard on convincing me to use opam
ontologiae_ has joined #ocaml
<pippijn> so, this is what happened: https://paste.xinu.at/Xy6h/
boogie has quit [Ping timeout: 240 seconds]
darkf has quit [Read error: Connection reset by peer]
darkf has joined #ocaml
<jpdeplaix> pippijn: did you do a bug report ?
<jpdeplaix> is it the 1.1.0 beta ?
<pippijn> no
<pippijn> 1.0.0
<pippijn> I think I need to kill my opam installation and reinstall everything
<pippijn> because now thing won't work
<pippijn> Error: /home/pippijn/.opam/system/lib/yojson/yojson.cmi
<pippijn> is not a compiled interface for this version of OCaml.
<pippijn> It seems to be for an older version of OCaml.
<pippijn> yeah, and I can't reinstall anything
dsheets has joined #ocaml
ontologiae_ has quit [Ping timeout: 264 seconds]
<pippijn> fun :) it's completely broken
<def-lkb> you worked in the system switch ?
<pippijn> hm?
<def-lkb> system is the opam switch making use of the ocaml compiler provided by your distribution
<pippijn> I guess so
<def-lkb> if this compiler is updated, the system switch is broken.
<pippijn> yes, it was updated
<pippijn> and opam apparently realised that
<def-lkb> so the first things to do is to switch to an opam managed compiler
<def-lkb> e.gg. opam switch 4.00.1
<def-lkb> Otherwise… Sure, it's easy to break opam but it's almost as if you asked for.
<pippijn> how did I ask for it?
<pippijn> by using a system-installed compiler?
<def-lkb> By updating your system compiler :)
<pippijn> apparently opam was made to recognise that and upgrade its packages
<pippijn> but then.. assertion failure
<def-lkb> bad luck :/, what's your version of opam ?
<pippijn> 1.0.0
jayprich has joined #ocaml
wmeyer has joined #ocaml
<wmeyer> adrien: I applied your patch
<wmeyer> still ocamlcomp issue is present on BSD
<pippijn> wmeyer: I saw the licence you put into doc/
<pippijn> no share-alike?
<wmeyer> it's share-alike but with attribution?
<wmeyer> otherwise I need to fix it!
<pippijn> it's cc-by
<pippijn> not cc-sa-by
darkf has quit [Quit: Leaving]
<wmeyer> fixed
<adrien> wmeyer: hmmm
<adrien> doesn't look funny
<wmeyer> what does not look funny? :)
<wmeyer> we can do rm -f ocamlcomp in the makefile
<wmeyer> it will be a hack but it will work
<pippijn> SA is not about "allowing" sharing
<pippijn> cc-by also allows sharing
<pippijn> sa is with emphasis on *alike*
<wmeyer> ok, well, I have no time to read licenses
<wmeyer> but any of two would do actually
<wmeyer> but sa works better
dsheets has quit [Read error: Operation timed out]
<adrien> wmeyer: have you applied that patch too: 0002-build-don-t-use-make-s-C-it-s-not-available-everywhe.patch
<adrien> ?
<adrien> wmeyer: ah, you didn't bootstrap myocamlbuild.boot!
<adrien> that's why it still tries to start ocamlcomp.sh!
<adrien> wmeyer: bootstrap stages are: build before the commit that removes ocamlcomp*.sh, change to after that commit but do *NOT* clean, build again, copy the new myocamlbuild.boot
<wmeyer> ok, will do it now, thanks
<pippijn> sounds complicated
<adrien> pippijn: bootstrap; always have to balance two things at once
<adrien> I'd say "le cul entre deux chaises" but I don't know how to translate that :P
<pippijn> I don't know french
<pippijn> I should learn it
<pippijn> how do you get lwt.text again?
<pippijn> oh yeah, it needed unix or something
UncleVasya has quit [Read error: Connection reset by peer]
<pippijn> ah no, react
<adrien> wmeyer: also, I believe you didn't apply one of the patches: 0002-build-don-t-use-make-s-C-it-s-not-available-everywhe.patch
<pippijn> also, does anybody use deriving-ocsigen?
yacks has quit [Ping timeout: 245 seconds]
<pippijn> with batteries, or anything else that pulls in nums?
<adrien> pippijn: it translates to "sitting on two chairs at once: one half of your ass on each of them"
<pippijn> adrien: ah, makes sense
<adrien> meaning that you're likely to end up on the floor fairly quickly :)
<pippijn> yes
<pippijn> I've worked on bootstrapping compilers before :)
<pippijn> I always kept a bootstrap package around, because there was no implementation or package besides mine
<pippijn> scary stuff
<pippijn> ah, this is the problem with deriving-ocsigen: if you build one library with deriving-ocsigen, but the num package is not used during the build, then you can't link it together with anything that does use num
boogie has joined #ocaml
<jpdeplaix> pippijn: for deriving-ocsigen problems, you should ask hnrgrgr
<jpdeplaix> and for your opam problem, I recommend you to switch to the 1.1.0-beta :)
<pippijn> I reinstalled everything
<pippijn> I'm fine now
<pippijn> opam is a tool that's supposed to make my life easier
<pippijn> and I tend to go the path of least resistance when it comes to such tools
<pippijn> which is apt-get install opam
ollehar has quit [Ping timeout: 248 seconds]
<wmeyer> so I built pre-commit version, now I checked out post-commit version, should I do "make bootstrap" now?
<jpdeplaix> pippijn: 1.1.0 will be released soon. I hope it will be available shortly in the repos.
<wmeyer> (no experience in boostrapping the compiler)
<adrien> wmeyer: just "make world.opt"
<adrien> the build/ directory is a mess
hcarty has quit [Read error: Operation timed out]
hcarty has joined #ocaml
<wmeyer> git diff does not show any change
<wmeyer> changes
<wmeyer> so it does not make any difference
<adrien> you need to cp
<adrien> hold on
<adrien> wmeyer: ah, found again which file to copy
<adrien> wmeyer: cp _build/myocamlbuild boot/myocamlbuild.boot
boogie has quit [Ping timeout: 256 seconds]
<adrien> wmeyer: hmm, wait
<adrien> gasche_: are you around?
<adrien> wmeyer: yeah, wait a bit
<adrien> gasche_: before your commit 5e9836d003d2 / rev 14028 "bootstrap myocamlbuild.boot and adapt build/boot.sh"
<adrien> -rwxr-xr-x 1 adrien users 432K Sep 21 13:19 _build/myocamlbuild*
<adrien> -rwxr-xr-x 1 adrien users 419K Sep 21 13:24 boot/myocamlbuild.boot*
<adrien> gasche_: after
<adrien> -rwxr-xr-x 1 adrien users 2.3M Sep 20 09:06 boot/myocamlbuild.boot*
<adrien> gasche_: and
<adrien> -rwxr-xr-x 1 adrien users 2.3M Sep 21 13:19 ocamlbuild.byte*
<adrien> gasche_: are you sure you copied to right file for the bootstrap?
yacks has joined #ocaml
yacks has quit [Max SendQ exceeded]
yacks has joined #ocaml
<wmeyer> sorry, I don't understand
<adrien> wmeyer: a few weeks ago, gasche bootstrapped ocamlbuild; apparently he didn't use the same command as the one I gave above and now I'm wondering who's right
<wmeyer> ok done that
<wmeyer> let's see
<adrien> well, I think it's gasche who was wrong: build/myocamlbuild.sh mentions the command I gave you, the sizes match (around 430K for both files) but now I'm wondering why gasche did what he did; in other words: am I missing something?
jayprich has quit [Quit: jayprich]
<wmeyer> ok BSD is failing now in the same way
<wmeyer> as other builds
<wmeyer> but it's failing with "make ocamlc" which nas nothing to do with ocamlbuild
<adrien> right, that should be fixed by 0002-build-don-t-use-make-s-C-it-s-not-available-everywhe.patch
<wmeyer> ok
<wmeyer> what is 0001-build-fix-make-clean-failure-when-.-configure-hasn-t.patch ?
<pippijn> ocaml development processes sound complicated
<adrien> the commit that removed ocamlcomp.sh make "make clean" break but only until you run ./configure again
<adrien> what happened is:
<pippijn> with patches flying around and the description encoded in the file name
<adrien> - make clean # doesn't clean everything
<adrien> - ./configure
<adrien> - make world.opt # fails because of left-over files
<wmeyer> should I review it and apply it too?
<adrien> however, once you run the build bots again,
<adrien> - make clean # this cleans everything since ./configure has been run again
<adrien> wmeyer: yes
<wmeyer> (sorry you probably have much better knowledge about the build system)
<adrien> pippijn: actually it's all on http://caml.inria.fr/mantis/view.php?id=5737 ; however it's loooooong
<adrien> it's all in a nice chronological order along with description of the patches and commit messages are embedded in the patches for even more details (the issue is the sheer number of changes involved: it's easy to lose track)
<pippijn> ok, now that makes sense
<pippijn> I thought this was the standard ocaml development process
<pippijn> but it's specific to this mantis ticket
<pippijn> that's really a lot of patches
yacks has quit [Ping timeout: 264 seconds]
<adrien> yeah, lots of them
<adrien> fortunately it's almost done
<whitequark> ooooh cross-compilation patches
<whitequark> wmeyer: do I understand it correctly that your patchset allows to build an ocaml cross-compiler (opposed to a retargetable compiler)?
yacks has joined #ocaml
<adrien> i686-w64-mingw32-ocamlopt foo.ml -> foo.exe
Neros has joined #ocaml
<whitequark> I see, thanks
<wmeyer> whitequark: not my patchset
<wmeyer> it's adrien's work
* wmeyer gtg
<whitequark> oh
<whitequark> btw, http://ocaml.org/releases/ still mentions 4.00.1 as latest
boogie has joined #ocaml
Kakadu has joined #ocaml
<whitequark> perhaps someone will find it useful: eval.in now supports ocaml: https://eval.in/49616
talzeus has quit [Remote host closed the connection]
boogie has quit [Ping timeout: 256 seconds]
<whitequark> ggole: no opam. no disk access also
<whitequark> it's heavily sandboxed, so only stdio
<ggole> Yeah, I can imagine.
<pippijn> how is the sandbox done?
<pippijn> ptrace?
<whitequark> pippijn: yes
<whitequark> how'd you know?
<pippijn> is the code open source?
<pippijn> whitequark: I made a sandbox before
<whitequark> ha
<pippijn> for C++ and some other languages
<whitequark> I think it isn't
<adrien> why ptrace?
<adrien> use seccomp!
<ggole> "Forbidden syscall clone" aww
<ggole> Nice tool.
<pippijn> :)
<whitequark> it's pretty solid
<pippijn> too bad those people all don't publish their source
<pippijn> security by obscurity?
<whitequark> pippijn: i think it's just horrible in this case
<pippijn> horrible code?
<whitequark> well, he told me it is
<whitequark> yes
<pippijn> ok
<pippijn> my code is from 2007
<pippijn> and also horrible
<pippijn> and open source
ontologiae_ has joined #ocaml
<pippijn> in use here
<whitequark> I see
boogie has joined #ocaml
<reynir> pippijn: "I doubt, therefore I might be" :D
Kakadu has quit [Ping timeout: 240 seconds]
boogie has quit [Ping timeout: 252 seconds]
UncleVasya has joined #ocaml
talzeus has joined #ocaml
zarul has quit [Read error: Connection reset by peer]
zarul has joined #ocaml
ygrek has joined #ocaml
ben_zen has joined #ocaml
UncleVasya has quit [Read error: Connection reset by peer]
UncleVasya has joined #ocaml
boogie has joined #ocaml
Saroupille has joined #ocaml
<Saroupille> Hi !
<reynir> I really don't grok omake
<Saroupille> My situation is the following : what is the meaning of a number behind a type name ? My error is the following : This expression has type 'a arbre/1122 but an expression was expected of type int arbre/1042 . Thanks you !
<ggole> That message arises when different types with the same name clash.
rwmjones has quit [Ping timeout: 248 seconds]
boogie has quit [Ping timeout: 248 seconds]
<ggole> The number doesn't have any meaning, it was just introduced because printing the types as usual was too confusing.
<Saroupille> But in my file, I have only one type declaration.
<ggole> You've probably loaded it into the toplevel more than once
<Saroupille> oh
<ggole> So loading will produce types that have the same name, but are not compatible: they will conflict with any existing bindings that still have the old type.
<ggole> One fix is to kill the toplevel and compile and load everything cleanly.
<Saroupille> I'm doing that. Apparently it works ! Thank you ;)
rwmjones has joined #ocaml
Kakadu has joined #ocaml
boogie has joined #ocaml
<pippijn> reynir: :)
<cthuluh> wheee, 4.01.0 compiling as a breeze on OpenBSD; but I dunno why I was expecting native dynlink support...
<cthuluh> (... on powerpc)
Drup has joined #ocaml
<reynir> Man, I always struggle with getting my projects to build in ocaml
caseyjames has joined #ocaml
<cthuluh> on OpenBSD?
<ggole> Yes, some head-walling is often required.
pr_ is now known as pr
pr has quit [Changing host]
pr has joined #ocaml
ggole has quit []
ggole has joined #ocaml
<caseyjames> Hi, I'm trying to adapt a function from the 99 problems Run-length encoding of a list. I need to store the starting index and the first value for each coding, writing to some kind of record. Is there a way to do the immutably?
<reynir> No, I'm using Linux
<caseyjames> here is that link http://ocaml.org/tutorials/99problems.html
<ggole> caseyjames: you could use a tuple, or record update syntax
<ggole> The latter is { foo with field1 = x; field2 = y ;}
<pippijn> ;}
<adrien> gasche_: around? :P
<ggole> Although I don't recall RLE requiring an index?
<caseyjames> ggole: That record update syntax seems to be what I'm after, I'll look into that now. Thanks
<caseyjames> ggole: The rle doesn't. I'm just using it as a base since i'm new to ocaml. i'm giving it other values and comparrators -- ultimately I need to grab the start index and value and the end index and value.
<ggole> pippijn, don't tell me you prefer to skip the last ;!
<pippijn> no
<ggole> Oh, I typo'd a bit.
<ggole> Never mind.
ontologiae_ has quit [Ping timeout: 248 seconds]
<reynir> ;} looks like a smiley
<pippijn> reynir: exactly
<pippijn> it looks like a naughty/secretive smiley
boogie has quit [Ping timeout: 260 seconds]
<reynir> I am getting a bunch of warnings when using omake to make a toplevel: Warning 31: files src/apiKey_t.cmo and src/apiKey.cma(ApiKey_t) both define a module named ApiKey_t
<reynir> I have set BYTE_ENABLED=true and NATIVE_ENABLED=false
<pippijn> omake?
<pippijn> what does "make a toplevel" mean?
<reynir> ocamlmktop
<ggole> Hmm. I was going to point out that ;} is small beans given that nyoro~n :3 is valid syntax, but it turns out the space can't go there.
<pippijn> what do you use in omake to do that?
<ggole> Shame.
<reynir> I guess I mean I have an omake target that does that
<pippijn> ah, ok
<pippijn> is it just one omakefile?
<pippijn> if so, can I see it?
<reynir> It's two
<pippijn> ok, can I see the two of them?
<pippijn> also, try omake --no-S
<pippijn> so you can see what it's doing, and whether that is what you want
<reynir> The root OMakefile http://sprunge.us/MdHU and the src/ OMakefile http://sprunge.us/HPKL
<pippijn> Atdgen is something you made?
<pippijn> Atdgen.om that is
<pippijn> ok
<reynir> It works fine when I just build my main file
<pippijn> .DEFAULT: src/ $(PROGRAM)
<pippijn> src/ in this does nothing
<reynir> I use omake op
<pippijn> (irrelevant, just pointing it out)
<reynir> s/op/top/
<reynir> pippijn: Thanks. I suspected that :D
<pippijn> OCamlProgram(top, src/digitalocean src/apiKey_t src/apiKey_j)
<pippijn> try removing the last two
<reynir> Ok
<pippijn> oh
<pippijn> then you will probably get an error about digital ocean
<reynir> It's pretty much the same, I believe http://xelpaste.org/8277
<reynir> This is the project, though without the toplevel thing I'm trying to get to work: https://github.com/reynir/ocaml-digitalocean
<whitequark> ggole: (nyoro~n) :D :D :D
q66 has quit [Quit: Leaving]
justdit has joined #ocaml
<pippijn> I don't feel like installing netclient, ssl and enqueue-ssl
<pippijn> reynir: so the main program works, but the toplevel doesn't
<pippijn> reynir: can you link it manually?
<reynir> No, it works, but I get these warnings
<reynir> Sorry, that wasn't clear...
<pippijn> ocamlfind ocamlmktop -custom -package yojson,netclient,equeue-ssl,atdgen,ssl -warn-error A -g -g -I . -I src -custom -o top.run src/apiKey.cma src/digitalocean.cma -linkpkg
zpe has joined #ocaml
<pippijn> does this work?
q66 has joined #ocaml
<pippijn> (without warnings)
<pippijn> reynir: by the way, -custom is in there twice
<pippijn> reynir: I guess you don't need the extra -custom in your definition of OCAMLLINK
<reynir> Yes, that compiles without warning
<pippijn> ok
<pippijn> oh!
<pippijn> well
<pippijn> OCAML_LIBS += src/apiKey src/digitalocean
<pippijn> you have this line twice
<pippijn> remove the second one
<pippijn> then you should get exactly 1 warning
<reynir> Yea, thanks! :)
<reynir> What I get now http://xelpaste.org/8278
<pippijn> right
<pippijn> I don't know whether OCamlProgram works without any modules
<pippijn> but try: OCamlProgram(top, $(EMPTY))
<reynir> um, where should I put that?
<pippijn> instead of OCamlProgram(top, src/digitalocean)
<reynir> Wow, that worked
<pippijn> ok, nice
justdit has left #ocaml []
q66 has quit [Quit: Leaving]
q66 has joined #ocaml
<reynir> Thanks a lot pippijn :)
<pippijn> no problem
<pippijn> let me know if you have any more questions about omake
ben_zen has quit [Ping timeout: 248 seconds]
zpe has quit [Remote host closed the connection]
<reynir> It's the first time I use omake (and first time in a while I use ocaml)
<pippijn> I can't claim expertise on omake standard library usage
<pippijn> because I wrote my own
<pippijn> but in that process, I have ran into a couple of omake oddities that you might find, as well
chrisdotcode has joined #ocaml
boogie has joined #ocaml
boogie has quit [Remote host closed the connection]
Saroupille has quit [Quit: Page closed]
talzeus has quit [Remote host closed the connection]
ygrek has quit [Ping timeout: 260 seconds]
boogie has joined #ocaml
boogie has quit [Ping timeout: 245 seconds]
rwmjones has quit [Ping timeout: 248 seconds]
rwmjones has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 248 seconds]
zarul has quit [Read error: Connection reset by peer]
chrisdotcode__ has joined #ocaml
chrisdotcode has quit [Ping timeout: 245 seconds]
ollehar has joined #ocaml
zzz_ has quit [Remote host closed the connection]
zzz_ has joined #ocaml
ben_zen has joined #ocaml
jbrown has joined #ocaml
lopex has quit [Ping timeout: 264 seconds]
q66 has quit [Quit: Leaving]
boogie has joined #ocaml
q66 has joined #ocaml
boogie has quit [Ping timeout: 264 seconds]
nikki93 has joined #ocaml
chrisdotcode__ has quit [Ping timeout: 264 seconds]
zpe has joined #ocaml
lopex has joined #ocaml
boogie has joined #ocaml
Xom has quit [Quit: ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]]
boogie has quit [Ping timeout: 245 seconds]
ollehar has quit [Ping timeout: 260 seconds]
ulfdoz has quit [Quit: next buggy kernel]
Kakadu has quit [Ping timeout: 260 seconds]
boogie has joined #ocaml
boogie has quit [Remote host closed the connection]
ulfdoz has joined #ocaml
mort___ has joined #ocaml
ontologiae_ has joined #ocaml
zarul has joined #ocaml
weie_ has joined #ocaml
gour has quit [Disconnected by services]
gour_ has joined #ocaml
weie has quit [Ping timeout: 260 seconds]
zpe has quit [Remote host closed the connection]
ollehar has joined #ocaml
ontologiae_ has quit [Ping timeout: 264 seconds]
Snark has quit [Quit: leaving]
cesar_ has joined #ocaml
cesar_ is now known as Guest83999
darkf has joined #ocaml
ggole has quit []
tani has joined #ocaml
tane has quit [Ping timeout: 260 seconds]
Yoric has joined #ocaml
wmeyer has quit [Remote host closed the connection]
nikki93 has quit [Remote host closed the connection]
Yoric has quit [Remote host closed the connection]
Yoric has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
Guest83999 has quit [Ping timeout: 268 seconds]
nikki93 has joined #ocaml
thomasga has joined #ocaml
thomasga has quit [Client Quit]
iZsh has quit [Excess Flood]
iZsh has joined #ocaml
boogie has joined #ocaml
boogie has quit [Ping timeout: 248 seconds]
ollehar has quit [Remote host closed the connection]
Yoric has quit [Ping timeout: 260 seconds]
nikki93 has quit [Remote host closed the connection]
ulfdoz has quit [Ping timeout: 260 seconds]
UncleVasya has quit [Read error: Connection reset by peer]
gour_ has quit [Quit: WeeChat 0.4.1]
nikki93 has joined #ocaml
nikki93 has quit [Remote host closed the connection]
chrisdotcode has joined #ocaml
<whitequark> hmm. I've heard that in ML, polymorphic types are represented with type schemas, which have polymorphic and non-polymorphic type variables; and when a schema is instantiated, polymorphic ones are replaced by fresh type variables, but non-polymorphic aren't.
<whitequark> I can easily imagine an example of a type with polymorphic type variables: 'a option. What about non-polymorphic ones?
cdidd has quit [Read error: Operation timed out]
<mrvn> whitequark: huh?
<whitequark> mrvn: that was my reaction either.
<mrvn> are you talking about functors?
<whitequark> ggole mentioned that (some time ago); usually he makes sense
<whitequark> I've no idea to be honest
<whitequark> I've told all the context I know
<mrvn> are you talking about type inference, compilation or ruintime?
<whitequark> inference
<whitequark> ok, a bit more context. my original question was "why the type of both (None, None) and let a = None in (a, a) is 'a option * 'b option"
<mrvn> well, ocaml uses some pretty well know type inference algorithm that I can never remember.
<adrien> hindley-milner?
<mrvn> # None;;
<mrvn> - : 'a option = None
<mrvn> whitequark: what did you expect (None, None) to be? ('a option, 'b option)?
<whitequark> mrvn: I somewhat expected let a = None in a, a to be ('a option * 'a option)
<whitequark> I understand now why it isn't so.
<whitequark> that was just the context.
Saroupille has joined #ocaml
<Saroupille> Hi ! There is a way to say to Ocaml that a function return the unit type ?
derek_c has joined #ocaml
<mrvn> whitequark: actualy I would have expected ('a option * 'a option) too.
<mrvn> (None, None) should be different from let a = None in (a, a) at first glance.
<whitequark> mrvn: even more curiously, let a () = None in (a, a) has the same property!
<whitequark> (or (a (), a ()), or combinations thereof)
<mrvn> whitequark: but that is different. a () makes the None a new instantiation every time a is invoked.
<mrvn> # let a = ref None in (!a, !a);;
<mrvn> - : 'a option * 'a option = (None, None)
<mrvn> A ref on the other hand enforces the same type.
<whitequark> mrvn: in the last case I somewhat expected it to be the same due to value restriction... again, I already understand why it works how it does.
<mrvn> I don't quite understand how "let a = None" does not produce a '_a type. But that is ok.
<whitequark> mrvn: it's well-typed, since you cannot modify None in-place.
<mrvn> something to do with +/- types.
<whitequark> one sec, I had a relevant paper lying somewhere.
<whitequark> >caml.inria.fr/pub/papers/garrigue-value_restriction-fiwflp04.pdf‎
<whitequark> (I should re-read it too.)
<mrvn> it's been way too long since I learned about type inference.
boogie has joined #ocaml
boogie has quit [Ping timeout: 248 seconds]
ontologiae_ has joined #ocaml
tobiasBora has joined #ocaml
q66 has quit [Quit: Leaving]
mcclurmc has joined #ocaml
q66 has joined #ocaml
ollehar has joined #ocaml
tobiasBora has quit [Quit: Konversation terminated!]
Saroupille has quit [Quit: Page closed]
tani has quit [Quit: Verlassend]
yezariaely has quit [Quit: Leaving.]
derek_c has quit [Ping timeout: 245 seconds]
nikki93 has joined #ocaml
mort___ has quit [Quit: Leaving.]
nikki93 has quit [Remote host closed the connection]
ontologiae_ has quit [Ping timeout: 252 seconds]
nikki93 has joined #ocaml
nikki93 has quit [Remote host closed the connection]
TDJACR has joined #ocaml
nikki93 has joined #ocaml
ollehar has quit [Ping timeout: 264 seconds]
mfp has quit [Ping timeout: 264 seconds]
rwmjones has quit [Ping timeout: 248 seconds]