<gasche>
Algebr: I had this issue as well, feel free to report a bug
venture37 has left #ocaml [#ocaml]
walter|r has joined #ocaml
<dinosaure>
gasche: no problem :)
Algebr` has joined #ocaml
FreeBirdLjj has joined #ocaml
ygrek has quit [Quit: ygrek]
ygrek has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
tautologico has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
tmtwd has joined #ocaml
kushal has joined #ocaml
shinnya has quit [Ping timeout: 272 seconds]
sh0t has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
pierpa has quit [Ping timeout: 244 seconds]
_2can has quit [Ping timeout: 240 seconds]
metaglog has quit [Ping timeout: 252 seconds]
tvaalen has quit [Ping timeout: 250 seconds]
nicoo has quit [Ping timeout: 244 seconds]
_2can has joined #ocaml
tvaalen has joined #ocaml
metaglog has joined #ocaml
metaglog has quit [Changing host]
metaglog has joined #ocaml
nicoo has joined #ocaml
MercurialAlchemi has joined #ocaml
larhat has quit [Quit: Leaving.]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
tmtwd has joined #ocaml
walter|r has quit [Remote host closed the connection]
jonasen has joined #ocaml
FreeBird_ has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
MercurialAlchemi has quit [Ping timeout: 260 seconds]
wolfcore has quit [Ping timeout: 246 seconds]
MercurialAlchemi has joined #ocaml
wolfcore has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBird_ has quit [Ping timeout: 240 seconds]
A1977494 has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 250 seconds]
FreeBirdLjj has joined #ocaml
Mercuria1Alchemi has joined #ocaml
kushal has quit [Quit: Leaving]
FreeBirdLjj has quit [Ping timeout: 260 seconds]
Mercuria1Alchemi has quit [Ping timeout: 276 seconds]
tokik_ has joined #ocaml
tokik_ has quit [Client Quit]
mcc has quit [Quit: Connection closed for inactivity]
freusque has joined #ocaml
freusque has quit [Client Quit]
freusque has joined #ocaml
freusque has quit [Client Quit]
freusque has joined #ocaml
octachron has joined #ocaml
bruce_r has joined #ocaml
FreeBirdLjj has joined #ocaml
Algebr` has quit [Ping timeout: 250 seconds]
<bruce_r>
Hey guys, is it normal that I can't move my .cmo or .cma files in my filesystem? I have a library that I built with ocamlc, and if I run "ocaml lib.cma", I can open modules in the library, everything works fine. But if I go to an other directory, and I type "ocaml path/lib.cma", then it doesn't work any more. I've even tried to cp my library to the other directory, and use that version, that doesn't work either. Does that sound norma
freusque has quit [Quit: WeeChat 1.5]
freusque has joined #ocaml
freusque has quit [Client Quit]
freusque has joined #ocaml
freusque has quit [Client Quit]
freusque has joined #ocaml
<adrien>
add: -I path
<adrien>
even better: use ocamlfind ;p
<bruce_r>
I figured that -I works
<bruce_r>
but wtf is going on?
<bruce_r>
Why can't I change the directory of a library?
freusque has quit [Quit: WeeChat 1.4]
freusque has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
Intensity has quit [Ping timeout: 240 seconds]
cross has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #ocaml
dhil has joined #ocaml
Intensity has joined #ocaml
tautologico has quit [Quit: Connection closed for inactivity]
<Leonidas>
reading their code review stuff is strange when the most FTBFS issues I had with OCaml were Jane Street stuff
tmtwd has quit [Ping timeout: 246 seconds]
larhat has joined #ocaml
Kakadu has joined #ocaml
Simn has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
lyxia has quit [Quit: WeeChat 1.5]
ygrek_ has joined #ocaml
lyxia has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
infinity0 has quit [Ping timeout: 276 seconds]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
AlexRussia has quit [Ping timeout: 244 seconds]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
ygrek_ has quit [Ping timeout: 252 seconds]
jwatzman|work has joined #ocaml
A1977494 has quit [Ping timeout: 240 seconds]
A1977494 has joined #ocaml
silver has joined #ocaml
freehck has joined #ocaml
AlexRussia has joined #ocaml
AltGr has joined #ocaml
cross has joined #ocaml
Kakadu has quit [Remote host closed the connection]
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
malc_ has joined #ocaml
dario2 has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
fedjo has quit [Quit: Leaving.]
AltGr has left #ocaml [#ocaml]
jwatzman|work has joined #ocaml
fedjo has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
travula has joined #ocaml
A1977494 has quit [Quit: Leaving.]
A1977494 has joined #ocaml
A1977494 has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
sdothum has joined #ocaml
AlexRussia has quit [Ping timeout: 260 seconds]
AlexRussia has joined #ocaml
FreeBirdLjj has joined #ocaml
AltGr has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
AltGr has left #ocaml [#ocaml]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
larhat has quit [Read error: Connection reset by peer]
larhat has joined #ocaml
malc_ has left #ocaml ["ERC (IRC client for Emacs 25.0.50.2)"]
kushal has joined #ocaml
agarwal1975 has quit [Quit: agarwal1975]
jpdeplaix1 is now known as jpdeplaix
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
d0nn1e has quit [Ping timeout: 240 seconds]
d0nn1e has joined #ocaml
<gasche>
bruce_r: it is not convenient, but we can explain what you observe with .cma files
<gasche>
if you are familiar with C: when loading a compiled unit (the OCaml equivalent of a .o), OCaml wants to check the types of this unit (to type-check the code using it), so it needs to look for the unit interface (the OCaml equivalence of a .h, but compiled)
<companion_cube>
hi gasche
<gasche>
the units are in the .cma, but the interfaces are looked up in the filesystem according to the include path (-I), just like for C systems
dhil has quit [Ping timeout: 246 seconds]
freehck has quit [Remote host closed the connection]
dhil has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
malc_ has joined #ocaml
infinity0 has quit [Ping timeout: 244 seconds]
Mercuria1Alchemi has joined #ocaml
agarwal1975 has joined #ocaml
infinity0 has joined #ocaml
Mercuria1Alchemi has quit [Ping timeout: 264 seconds]
walter|r has joined #ocaml
rgrinberg has joined #ocaml
pierpa has joined #ocaml
rwmjones_ is now known as rwmjones
kdas_ has joined #ocaml
kushal has quit [Read error: Connection reset by peer]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
hcarty has joined #ocaml
kdas_ is now known as kushal
kushal is now known as Guest20848
Guest20848 is now known as kushal
kushal has quit [Changing host]
kushal has joined #ocaml
sdothum has joined #ocaml
dave24 has joined #ocaml
AlexRussia has quit [Ping timeout: 276 seconds]
fedjo has quit [Remote host closed the connection]
fedjo has joined #ocaml
shinnya has joined #ocaml
darkf has quit [Quit: Leaving]
walter|r has quit [Remote host closed the connection]
AlexRussia has joined #ocaml
sh0t has joined #ocaml
AlexRussia has quit [Ping timeout: 260 seconds]
A1977494 has joined #ocaml
crass has joined #ocaml
AltGr has joined #ocaml
jwatzman|work has joined #ocaml
tane has joined #ocaml
malc_` has joined #ocaml
malc_ has quit [Ping timeout: 244 seconds]
AltGr has left #ocaml [#ocaml]
MercurialAlchemi has quit [Ping timeout: 260 seconds]
Algebr` has joined #ocaml
AltGr has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
cmk_zzz has quit [Ping timeout: 244 seconds]
travula has quit [Ping timeout: 240 seconds]
kushal has quit [Quit: Leaving]
cmk_zzz has joined #ocaml
tane has quit [Quit: Verlassend]
john51 has joined #ocaml
john51_ has quit [Ping timeout: 250 seconds]
cmk_zzz has quit [Ping timeout: 240 seconds]
cmk_zzz has joined #ocaml
kushal has joined #ocaml
sh0t has quit [Remote host closed the connection]
sh0t has joined #ocaml
<bruce_r>
Thanks gasche. So how do people do to transfer a library to an other machine for example. Is it possible?
slash^ has joined #ocaml
AltGr has left #ocaml [#ocaml]
madroach has quit [Ping timeout: 244 seconds]
madroach has joined #ocaml
MercurialAlchemi has joined #ocaml
Algebr` has quit [Ping timeout: 250 seconds]
<apache2>
hm, when I have type a = A | B and type b = B | C, how do I construct a b.B ?
<pierpa>
(B : b) should work?
Algebr` has joined #ocaml
malc_` is now known as malc_
Algebr` has quit [Ping timeout: 250 seconds]
<apache2>
(the realtek seems like it's crap)pithanks!
jwatzman|work has joined #ocaml
larhat has quit [Quit: Leaving.]
jwatzman|work has quit [Remote host closed the connection]
jwatzman|work has joined #ocaml
Algebr` has joined #ocaml
Algebr` has quit [Ping timeout: 250 seconds]
ygrek_ has joined #ocaml
Algebr` has joined #ocaml
rgrinberg has quit [Ping timeout: 244 seconds]
copy` has joined #ocaml
jwatzman|work has quit [Ping timeout: 250 seconds]
rgrinberg has joined #ocaml
nojb_ has quit [Ping timeout: 244 seconds]
Algebr` has quit [Ping timeout: 250 seconds]
octachron has quit [Quit: Page closed]
Denommus has joined #ocaml
jwatzman|work has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
<bruce_r>
I am trying to start using ocamlfind. I want to create a new package using my cma file, but the command tells me "ocamlfind: The META file is missing". How do I get such a file?
<mrvn>
you write one or have oasis write one for you
<bruce_r>
the oasis help doesn't say anything about building META files
freusque has quit [Quit: WeeChat 1.4]
<bruce_r>
what do you mean?
<Drup>
add "Plugins: META (0.3)" in your oasis file, and that's it
<bruce_r>
Adding an empty META file to the package seems to have worked
<bruce_r>
is that good enough?
Algebr` has joined #ocaml
<Algebr`>
I'm wondering about CAMLlocal and C++11 lambdas, would they also need a CAMLlocal? I assume not
larhat has joined #ocaml
pyon has quit [Quit: For now I'll see you off.]
TheLemonMan has joined #ocaml
<mrvn>
Algebr`: yes
<mrvn>
Algebr`: and before that they have to aquire the runtime lock
<mrvn>
basically never use lambdas, just use a real function. much easier to read.
benwbooth has joined #ocaml
rgrinberg has quit [Quit: WeeChat 1.5]
rgrinberg has joined #ocaml
<Algebr`>
why do they acquire/need a runtime lock?
<Algebr`>
and yes to what, yes they need CAMLlocal or yes they don't need CAMLlocal
AllanDaemon has joined #ocaml
<AllanDaemon>
Hello. I'm struggling with pattern match in attributions. WHere do I find docs about it? I'm googling hours and found nothing useful. The problem I'm talking about is things like `let Mod1.Even(n) = func Mod2.Even in ...`, where `type n = Even of int | Odd of int`, for example.
<AllanDaemon>
Most times it works, but I don't fully understand it and each of of this is filling my compiling with "non exaustive" pattern-matching.
<Algebr`>
Is this Reason or OCaml?
<AllanDaemon>
Ocaml
<AllanDaemon>
This is the first time I heard about Reason, BTW. It seems interesting, but I need Ocaml
<Algebr`>
are you confused about pattern matching in general? I don't get your example? perhaps a pastebin?
dario2 has quit [Quit: Konversation terminated!]
pyon has joined #ocaml
<AllanDaemon>
Not in general. Specific when I use it as the left part of a attribution like in this case. What the equivalence of it? how do I exhaust it in this syntax, without using match with (or supress the warning just for this line). I tried a myriad of combinations, with no success. I' try pastbin something, as it a little big.
<lyxia>
you can't make an exhaustive let for types with more than two constructors
<lyxia>
you must use match
<AllanDaemon>
is it possible to silent a warning of a specific line or lines, without disabling warning for all the file or program?
octachron has joined #ocaml
dhil has quit [Ping timeout: 276 seconds]
<lyxia>
I don't know. What's the problem with match?
<octachron>
AllanDaemon: it is possible for recent Ocaml version, but I would'nt silence the exhaustiveness warning
bruce_r has quit [Ping timeout: 250 seconds]
<AllanDaemon>
Yeah, I undestand way. But for this I would really help. I have others guaranties that they shouldn't happen, and it they happen, failing and closing the program is the desired behaviour. Its a college work, not a code to run in real world. And I like the warnings, but this ones are polluting the compiling and this very ugly hack is working pretty fine for most part
<AllanDaemon>
I would just do something like ` | _ -> raise Error `
<mrvn>
If you get an exhaustiveness warning that you don't want to be there then you are using the wrong variant type.
<hcarty>
aantron: https://github.com/hcarty/mwt/blob/master/src/mwt.mli#L3 - proper cleanup of a thread pool is more effort, but this Mwt.run function does the job if the cost of thread creation + teardown isn't too much to pay
<hcarty>
more effort = more effort than I've put into the code so far
<AllanDaemon>
maybe, i just discovered today polymorphic variants or something like that, the one with backtk `Example. This could solve better, but with a close deadline, there is no time to refactor the entire project.
<octachron>
for ≥4.02, match[@warning "-8"] .. with ... would deactivate the exhaustiveness warning in the match, raising an exception or having a "| Impossible -> assert false" would also do the trick
dave24 has quit [Quit: leaving]
<mrvn>
AllanDaemon: you should write your code in english so you don't loose half the audience from the start.
<Algebr`>
AllanDaemon: could always do _ -> assert false
bruce_r has joined #ocaml
<AllanDaemon>
@nrvn: yes, I know, I just write code in english. The portugese parte are from my colleges and teacher.
<mrvn>
Algebr`: I prefer Unsued1 _ | Unused2 _ -> assert false. That way when you later add another constructor you get a warning again.
<mrvn>
AllanDaemon: *shiver*
<mrvn>
AllanDaemon: When they did something like that at my university and they wante us to write a calculator I wrote one that used roman numerals.
<mrvn>
and latin
<mrvn>
.oO(Only thing I used my latinum for, ever)
<AllanDaemon>
@mrvn: LOL. This project is a basic Portugol (Portuguese+Algol) compiler. I thought to change the portuguese latter with ancient greek. Or Latin, at least my teacher knows Latin
<Drup>
bruce_r: which build system are you using ?
<AllanDaemon>
would be funny to program with a dead language with all that greek chars and etc
<mrvn>
utf8camlopt -o calc utf8calc.ml
<AllanDaemon>
@Drup, ocamlbuild + some shell aliases
<mrvn>
AllanDaemon: klingon
<mrvn>
with a side dish of elfish
<pierpa>
btw, how did you write out negative numbers?
<AllanDaemon>
@mrvn, yeah, one of my struggles is using unicode instead of ascii. I'll try this command latter. Thans
<pierpa>
in library of mine I'm using NEGATIVVS CCXIII
<pierpa>
but I'm not happy about it
<mrvn>
AllanDaemon: that was a joke
<AllanDaemon>
@mrvn, which part? the utf8camlopt or the klingon?
<mrvn>
AllanDaemon: both
<AllanDaemon>
@pierpa, I didn't thought about that. In greek maybe a alpha, as the alpha have the negative semantics
<pierpa>
hmmm
<bruce_r>
drup: I built my code manually using ocamlc, and I'm trying to use this code in my opam service.
<Drup>
yeah
jackweirdy has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<gasche>
bruce_r: distributing it as an ocamlfind package is the most common way to go about it, indeed
<gasche>
(that is, to make it easy for client code to find your library and use it)
<gasche>
META files are very simple to write
<gasche>
(just start from an example and replace with your stuff)
<gasche>
(of course long-term using oasis etc. is better, but if you're still at the "using ocamlc directly" stage maybe let's not rush things)
<bruce_r>
ok thanks guys, hopefully this page will help me
<gasche>
octachron: no policy that I'm aware
<gasche>
if you see something and you know what to do, send me an email or whatever
<gasche>
it is helpful, I think
<hcarty>
aantron: And now pools should be GCd properly... not sure that a thread pool is something that should be left to the GC to clean up, but it should ideally be cleaned up for the user if they forget
<bruce_r>
I like to use omake for my projects, is that an old thing that no one uses anymore?
jackweirdy has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
slash^ has quit [Read error: Connection reset by peer]
<octachron>
gasche: ok thanks. If I ever found myself wandering again in old mantis tickets, I may try to write down a list of closable ancient tickets
<gasche>
there is no way to configure mantis to receive notifications for all actions, so if you just post there I probably won't notice
<gasche>
but an email is fine
<octachron>
gasche, I was thinking of sending a email
<gasche>
note that, if you feel like triaging tickets (eg. marking duplicates or "related to"...), you shouldn't hesitate to ask for the Mantis privileges to do it yourself
<octachron>
hmm, there is ticket(1538) asking for tail recursion modulo constructor dating back to 2003
<bruce_r>
What is the most commonly used build system now? Is it oasis generating makefiles?
<hcarty>
bruce_r: oasis-generating-X is probably the most common, where X is usually ocamlbuild configuration
<hcarty>
But Gerd also added omake output to oasis
<bruce_r>
alright
<bruce_r>
I'm kinda beginning with this, so I don't really have any preference. Which one is recommended?
<bruce_r>
I know make and omake a little.
<gasche>
you can easily ask oasis to use Makefile as your build system
jackweirdy has joined #ocaml
<bruce_r>
I guess the point of Omake is to have simpler build rules, but if oasis builds the rules for you, you don't care to have simple build rules
<gasche>
(if your project/library is simple, ocamlbuild will build it with almost no boilerplate required on your end, which is nice)
<bruce_r>
is that the spirit?
<bruce_r>
ok maybe I should learn ocamlbuild first, looks like the simplest of all
<gasche>
well you may at some point need to give extra information to the build system that oasis doesn't handle
jonasen has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<gasche>
so using a tool you know is sensible
<bruce_r>
that makes sens
<bruce_r>
e
<hcarty>
bruce_r: Starting with oasis is good for getting your code building and sets you up nicely for packaging the result, whether for your own use other the use of others
<Drup>
I think there is no point in using raw ocamlbuild unless you know why
<bruce_r>
also I'm using eliom, which uses a Makefile to build its stuff. Is there easy integration between make and omake?
<Drup>
if you are wondering, then you don't need it, use oasis.
<bruce_r>
ok thanks Drup
<Drup>
bruce_r: for eliom, just use the provided makefile, you seem to be learning, you should try to minimize pain points, and trying to use another build system with eliom, especially omake, is going to be a big pain point :)
benwboot_ has joined #ocaml
struk|desk has quit [Read error: Connection reset by peer]
<bruce_r>
yes I agree :)
<bruce_r>
but I don't want to have my ml files in the eliom directory, because I want it to be a library
benwbooth has quit [Ping timeout: 264 seconds]
<bruce_r>
and I'd like my .eliom code to use that library
<Drup>
that's very reasonable, just create an external library, and use ocamlfind
<gasche>
(I think Drup has in mind that the library would use Oasis, and the eliom project would use ocamlfind to use it)
jackweirdy has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<gasche>
(oasis generating the ocamlfind package description, and install steps, for you)
benwbooth has joined #ocaml
<Drup>
Indeed. :)
<octachron>
gasche: I will think about it. What is the procedure for asking for Mantis' privilege? Send an email to Damien?
<gasche>
yeah, I'm afraid
<gasche>
(it's not a great procedure because Damien is rather bad at email, but it works)
<bruce_r>
ok yes, that's what I'm trying to do. Thanks for the help guys
benwboot_ has quit [Ping timeout: 272 seconds]
<octachron>
Drup, I don't remember if oasis automatically generates the cmxs files needed by eliom for libraries?
<Drup>
oasis generates and install pretty much everything that needs to be installed ^^'
<Drup>
(including cmt* files when you have "true: bin_annot")
<gasche>
(that's the main value of oasis: we don't have to keep track of best practices for what to install, it does it for you)
jackweirdy has joined #ocaml
AlexRussia has joined #ocaml
marsam has joined #ocaml
<octachron>
ah yes, I was not using oasis when I hit this problem of forgotten cmxs with eliom.
<companion_cube>
gasche: also, simplicity
shinnya has quit [Ping timeout: 258 seconds]
<gasche>
it's not quite clear to me whether oasis is actually simple
<gasche>
but if you were speaking of your last iterator commit, indeed, isn't the result much nicer now?
<hannes>
I wonder whether type uint32 = int32 and type uint64 = int64 would be accepted into pervasives... just the types (similar to uchar) to have some basis to use in various libraries..
Kakadu has joined #ocaml
<gasche>
my immediate reaction was: "do we need them in Pervasives?", which suggests bikeshed ahead
<gasche>
hm
<gasche>
for example having them in Int32 and Int64 could make sense and it doesn't clutter the common namespace as much
<hannes>
gasche: surely there is no need. since it is an alias only, there's no harm to define it in each of the libraries..
<hcarty>
gasche: I think there's a good argument for it as they're a huge pain to do properly otherwise
<hcarty>
gasche: In those modules would make sense
<hcarty>
Or, potentially, add something like Int32.compare_unsigned
<gasche>
(well it only makes sense up to a point, given that they defined the signed versions)
<gasche>
(did I mention that evolving standard libraries evolves stressful not-really-choices?)
<hcarty>
gasche hannes: The worst missing offenders are, I think, compare and (to|of)_*
<aantron>
hcarty: sorry was away. good to hear though
<hannes>
gasche: since I'm tired of bikeshedding I'll just wait and see if someone else proposes them...
<hcarty>
Those could all go into the Int32 and Int64 modules
<hcarty>
aantron: I spoke too soon... I run into issues, at least in utop, if I create and free large pools over and over again
<hannes>
hcarty: yes, to/of_* are the missing bits