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
<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>
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>
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)?
<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?
<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>
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.