adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | Upcoming OCaml MOOC: https://huit.re/ocamlmooc | OCaml 4.03.0 release notes: 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
LiamGoodacre has quit [Quit: Leaving]
tmtwd has quit [Ping timeout: 240 seconds]
kakadu has quit [Remote host closed the connection]
pierpa has joined #ocaml
soupault has quit [Ping timeout: 244 seconds]
silver has quit [Quit: rakede]
darkf has joined #ocaml
darkf has quit [Changing host]
darkf has joined #ocaml
tmtwd has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Read error: Connection reset by peer]
tristero has joined #ocaml
tmtwd has quit [Ping timeout: 264 seconds]
ollehar1 has joined #ocaml
ollehar has quit [Ping timeout: 260 seconds]
ollehar1 is now known as ollehar
mcc has joined #ocaml
Heasummn has quit [Read error: Connection reset by peer]
govg has quit [Ping timeout: 240 seconds]
zpe has joined #ocaml
zpe has quit [Ping timeout: 258 seconds]
dwwoelfe_ has joined #ocaml
dwwoelfel has quit [Ping timeout: 265 seconds]
dwwoelfe_ has quit [Ping timeout: 244 seconds]
ollehar has quit [Ping timeout: 264 seconds]
wtetzner has joined #ocaml
tmtwd has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
infinity0 has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
infinity0 has joined #ocaml
wtetzner has quit [Remote host closed the connection]
bushitttt has joined #ocaml
kushal has joined #ocaml
kushal has quit [Changing host]
kushal has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 250 seconds]
bushitttt has left #ocaml [#ocaml]
govg has joined #ocaml
tmtwd has quit [Ping timeout: 276 seconds]
bruce_r has quit [Remote host closed the connection]
bruce_r has joined #ocaml
tmtwd has joined #ocaml
govg has quit [Ping timeout: 250 seconds]
MercurialAlchemi has joined #ocaml
tane has joined #ocaml
govg has joined #ocaml
ollehar has joined #ocaml
pierpa has quit [Ping timeout: 258 seconds]
AlexRussia has quit [Ping timeout: 264 seconds]
tmtwd has quit [Ping timeout: 276 seconds]
Simn has joined #ocaml
govg has quit [Ping timeout: 276 seconds]
copy` has quit [Quit: Connection closed for inactivity]
lol-icon has quit [Remote host closed the connection]
ollehar has quit [Ping timeout: 264 seconds]
lol-icon has joined #ocaml
mcc has quit [Quit: Connection closed for inactivity]
mobius-eng has quit [Read error: Connection reset by peer]
mobius_eng has quit [Read error: Connection reset by peer]
govg has joined #ocaml
zpe has joined #ocaml
zpe has quit [Remote host closed the connection]
AltGr has joined #ocaml
Submarine has joined #ocaml
bruce_r has quit [Ping timeout: 258 seconds]
govg has quit [Ping timeout: 252 seconds]
freehck has joined #ocaml
ryan_mckenize has joined #ocaml
<ryan_mckenize> Hi guys. Just thought I'd give a heads up that https://ocaml.org is blocking Google from crawling the site so all the docs might not be indexed. Can someone look into changing the robots.txt file
ontologiae has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
ryan_mckenize has quit [Remote host closed the connection]
ryan_mckenize_ has joined #ocaml
<flux> ryan_mckenize_, thanks, it seems like a genuine bug as https://github.com/ocaml/ocaml.org/blob/a772c6ff256a79f1969c9593a3ab06313919eb84/Makefile has 'rm ocaml.org/robots.txt' in its production rule
tane has quit [Quit: Leaving]
dexterph has joined #ocaml
<flux> seems I don't have my github credentials at the office, so if I remember or someone doesn't beat me to it, I'll file an issue in the evening.. :) https://github.com/ocaml/ocaml.org/issues
zpe has joined #ocaml
<ryan_mckenize_> I'll file it now with an example of what it should be. It'll be without any specific code suggestions so someone with more knowhow can follow up
elfring has joined #ocaml
<elfring> Does the use of parameter labels influence the execution speed for OCaml functions?
<elfring> Are the run-time characteristics different for function arguments without labels?
<gasche> no
Algebr` has joined #ocaml
<Algebr`> Any cool functional programming conferences coming up in Europe?
soupault has joined #ocaml
<flux> I'm a bit annoyed that I completely missed the one at Copenhagen, Copenhagen is a great place to visit :)
<Algebr`> oh yea, there's like this Hans Anderson little mermaid statue I wanted to see
<Algebr`> flux: where are you at? Scandinavia?
<flux> technically dubious, but yes, at Finland
<flux> company did a summer trip at Copenhagen, but it was something like 48 hours, so certainly some things were left to see ;)
<gasche> POPL is going to be in Paris in January 2017, but it is a more theory-oriented conference
<gasche> ICFP will be in Oxford next year (so autumn 2017) I think
<gasche> PLDI will be in Barcelona in june 2017
<flux> will UK still be in the EU at that point..
<gasche> alsmot certainly yes :p
<flux> :-)
<gasche> I think that both ICFP and PLDI are conferences that could attract less theory-oriented practicioners
<gasche> (ICFP has the OCaml,Haskell,Erlang,Scheme workshops plus CUFP, and PLDI/ECOOP will be combined and have Curry On, a more industry-oriented event)
<soupault> any icfpc2016 participants here? :)
<gasche> do you have the URL to the assignment/description?
Submarine has quit [Remote host closed the connection]
<soupault> gasche: me?
<gasche> yep
govg has joined #ocaml
Anarchos has joined #ocaml
larhat has joined #ocaml
<gasche> nice, it's Nara-themed
<Algebr`> .ru then linked to a .jp lol
<gasche> it looks like a search-heavy problem which is not my cup of tea, but it is also a nice topic
govg has quit [Ping timeout: 258 seconds]
<soupault> Algebr`: client-oriented approach ;)
<Algebr`> yea, when I clicked the link it ended up being .am
<Algebr`> clever.
<soupault> gasche: yeah, the task is complex as hell. we ended up using bruteforce unfolding up to 10sec, and if longer - just submitting a rotated square with maximum overlap :D.
<gasche> one thing I like is that it at least gives you some experience folding origamis
<gasche> (unlike the tetris thing of last year that I suspect didn't enhance any particular skill besides search algorithms)
<soupault> another idea was to use convex hull approximation of a target and perform stupid folding. that could be a quite beneficial solution...
picolino has quit [Remote host closed the connection]
<soupault> gasche: there is a funny thing that people have used even genetical algorithms to solve the problem :) http://icfpc2016.blogspot.ru/2016/08/how-to-solve-origami-101-crane-in-8.html
<def`> gasche: I learned how to encode hexagonal grids ;)
<def`> (life-saving skill)
govg has joined #ocaml
jackweirdy has joined #ocaml
<Algebr`> def`: wheres the code
<def`> long lost
rand__ has joined #ocaml
kushal has quit [Quit: Leaving]
jackweirdy has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Algebr` has quit [Ping timeout: 258 seconds]
nicoo has quit [Remote host closed the connection]
fluter has quit [Ping timeout: 260 seconds]
govg has quit [Ping timeout: 240 seconds]
fluter has joined #ocaml
jackweirdy has joined #ocaml
phase_ has joined #ocaml
kakadu has joined #ocaml
gasche_ has joined #ocaml
<gasche_> lwn.net is looking for new subscribers: http://lwn.net/Articles/696017/
<gasche_> you should consider subscribing: it's great technical journalism, and I'm told they had an excellent article about OCaml 4.03 in particular
ggole has joined #ocaml
nicoo has joined #ocaml
<kakadu> gasche_: Do they provide some free articles or trial?
<gasche_> Kakadu: LWn.net articles are included in a weekly edition which is only available to members when it is published, but becomes publicly available a week after that
<gasche_> which means that all past articles (except those of the very last edition) are available
govg has joined #ocaml
<Drup> wrt conferences (partially) about functional programming: IFL is in bruxel in a month (I'm talking there, yay). SPLASH is in amsterdam end of october
<gasche_> I gave pointers to a few LWN articles I really liked in the past in https://www.reddit.com/r/programming/comments/w2lou/fixed_why_you_should_consider_subscribing_to/c59odpj
<kakadu> gasche_: thanks.
jackweirdy has quit [Quit: Textual IRC Client: www.textualapp.com]
<elfring> Does the use of pattern matching influence the execution speed for OCaml functions with several parameters?
<elfring> Are the run-time characteristics different while using the construct "match argument with" for a specific parameter instead?
<kakadu> elfring: syntactic sugar AFAIR
ryan_mckenize_ has quit [Remote host closed the connection]
<flux> sadly tuple construction+deconstruction with match isn't optimized, which matters if you're matching multiple arguments
<def`> flux: it is?
<def`> elfring: no runtime characterics is not different, like Kakadu said it is syntactic sugar
Nahra has quit [Read error: Connection reset by peer]
Nahra has joined #ocaml
_andre has joined #ocaml
<ggole> If you write match x, y, z with ..., it should be fine. I don't think any forwarding is done though (until flambda?)
<def`> match f x with a, b -> ...
<def`> is fine too IFF f is inlined
<def`> practical for match (if bla then x, y else y, x) with ... too
<ggole> There are some tricks for that case too if you are willing to add some cost to regular calls
<gasche_> def`: and if the tuple is built at the top or in tail position, etc., I suppose
<ggole> (Which may well not be worthwhile, mind you.)
<def`> let a, b = (if bla the x, y else y, x) in ... is not optimised though
<def`> (pre-flambda)
mpenet has joined #ocaml
<gasche_> hm
<gasche_> I think it is in 4.03
<gasche_> (or maybe before that)
<def`> Ok, I tested with 4.02 a year and a half ago, didn't refresh since
<ggole> Doesn't look like it
<ggole> let test b x y = match if b then x, y else y, x with | 0, 1 -> 0 | _, _ -> 1
<ggole> (4.03, no flambda)
<gasche_> def`'s example (let a, b = ...) is PR#4800, merged in 4.03.0
<def`> thanks
<ggole> Oh, so introducing the let is cheaper? Interesting.
<ggole> Ah, it is indeed.
<gasche_> it may be the case that it doesn't interact well with matching right now
<gasche_> (I don't remember where in the pipeline the optimization is done, but I wouldn't be surprised if it was after lambda, that is after pattern-matching is compiled; and the pattern-matching compilers would then only optimze the simpler cases)
<ggole> Those do produce allocating and non-allocating code, respectively.
<gasche_> s/after lambda/at the lambda leve/
<ggole> Doesn't seem like a particularly important case
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
<ggole> It would be a lot more convenient for the purposes of comparison if flambda were a CLI switch :/
<ggole> I suppose there was a good reason for not doing it that way.
<gasche_> I think the reasons is not so good: mostly, it is because flambda implementers were in a hurry and could not afford the time to have the proper interface
<gasche_> you would think that, after the 4.03.0 release, they took the time to do it nice; but in fact they started running after the next big feature, or making a lot more changes to flambda
<ggole> Hmm. Oh well, I'll have to write something around opam switch if I'm going to be doing that a lot.
<gasche_> ggole: it wouldn't be too hard to optimize the allocating examples, but I think having an example in the wild where this code pattern is used would help justify the extra compiler cleverness
<gasche_> (the optimization is only safe-for-allocation where none of the pattern clauses give a name to the tuple)
govg has quit [Ping timeout: 252 seconds]
<gasche_> (otherwise you may make (match (if false then (true, 1) else z) with (true, x) -> (false, x) | z -> z) allocate in the z=(false, _) case)
<ggole> Forwarding doesn't require the structure being forwarded through to be non-escaping
<ggole> But whether it is worth writing a pass that does the necessary tricks is another question (particularly given the work is being done on a servicable IL that already exists and is not necessarily designed for uses like this).
<ggole> I think getting this kind of optimisation without the pain of handling each case specially probably requires an IL that unifies control constructs (like CPS) so that the requisite analysis can be done once
picolino has joined #ocaml
silver has joined #ocaml
<mrvn> I love CPS
<elfring> def`: Does the double negation in your answer indicate that a comparison of pattern matching aproaches is worth for further considerations?
malc_ has joined #ocaml
kushal has joined #ocaml
<freehck> gasche_: hello!
<freehck> gasche_: I have an issue with your advice to use inline to keep backtrace. My project seems to use ocamlbuild and I cannot understand how to add "-inline 0" option for ocamlopt.
ryu0 has joined #ocaml
<freehck> This option is specific to ocamlopt. But it seems that -cflag[s] is used when ocamlbuild calls ocamlc, and ocamlc does not have this option. :(
<freehck> My question is: how to modify ocamlopt options for ocamlbuild?
sdothum has joined #ocaml
<mrvn> It's depressing when graphics cards have 8 times more memory than your whole system.
<mrvn> "Paired with P6000 is 24GB of GDDR5X memory, running at a conservative 9Gbps, for a total memory bandwidth of 432GB/sec."
<flux> and if you pay enough, it might even have more persistent storage (ssd)
gasche_ has quit [Quit: Lost terminal]
<ryu0> i've been learning Standard ML recently, but i'm wondering if ocaml is a more pragmatic choice these days. Thoughts?
<flux> I would say "yes"
<flux> but I may be biased :)
<ryu0> does it have most of the stuff standard ML does like type inference?
<flux> yes, and a lot more
gasche_ has joined #ocaml
<mrvn> we all hang out in #ocaml because we are such great fans of Standard ML :)
<ryu0> Hm. I rather do like the ML dialects. More readable than Lisps.
<ryu0> ha.
<gasche_> freehck: "-tag inline(0)" or "true: inline(0) # for better backtraces" in your _tags file
<flux> this one's a bit old but I think it has the gist (but not new stuff in ocaml): http://adam.chlipala.net/mlcomp/
<gasche_> freehck: (ocamlbuild -documentation | grep inline) would have told you
<flux> doesn't mention opam or merlin
<flux> maybe I should say it's "quite old" :)
<gasche_> ryu0: you will find that, at least on the "core" parts, SML and OCaml are almost the same language
<gasche_> if you learned one you can read code in the other
<gasche_> and porting between them is very simple
<gasche_> there are language and tooling and implementation differences that may make you prefer one over the other
Anarchos has joined #ocaml
<gasche_> but you shouldn't worry a lot about betting on the wrong horse, it is rather easy to switch for your next project
<ryu0> well, SML has no formal support for unicode...
* ryu0 winces.
<gasche_> I'm not sure what "formal support" you have in mind
<ryu0> the strings don't support utf8 literals in most implementations for one.
<gasche_> in OCaml, literal strings can contain unicode just fine, but belong that you will need library support
<ryu0> encoding one portably in SML requires escaping the individual bytes of the non-ASCII sequences.
<mrvn> even 1980s C strings can contain utf8 just fine. So not really surprising.
<ryu0> not in SML, apparently the language forbids any bytes outside of ASCII from appearing in the literals.
<ryu0> most implementations honor this, except 1.
<ryu0> so, i can't just place the utf8 characters directly.
<gasche_> let me guess; Poly/ML?
<ryu0> no, SML/NJ.
<gasche_> ah
<gasche_> weird, I thought Poly/ML would pay more attention to user-interface issues
<ryu0> from what i gathered they're more interested in SML 97 compliance.
<ryu0> with some usability extensions.
<gasche_> well at least with OCaml you don't have any trouble guessing which implementation people are talking about :-'
<ryu0> yea.
<ryu0> lol
<ryu0> well, C never included utf8 support officially so i'm not too bothered by this, just i don't want to fight the implementation on something this simple.
<freehck> gasche_: thank you. My ocamlbuild -documentation did not have a mention about it. But now it works fine, thank you!
<gasche_> one nice thing about OCaml is js_of_ocaml
<gasche_> freehck: I forgot you were using 4.01.0
<gasche_> -documentation for parametric tags is relatively recent, sorry
<flux> see, it's not always clear which implementation (version) one is using :-)
<freehck> gasche_: pleased you remember :)
<gasche_> ryu0: js_of_ocaml let you run OCaml programs on the client's browser, and it's a nice entry drug to OCaml (whenever someone with a SML program says "now it sohuld run in the browser" I'm tempted to port to OCaml to demonstrate the tool)
<gasche_> (that said I would not be surprised if the MLton folks eventually came up with some plans for a WebAssembly backend)
<ryu0> doesn't ocaml have its own mlton-like compiler?
<ggole> It has a native code compiler. It isn't much like mlton except in that it produces machine code.
<mrvn> gasche_: please just write an ocaml_of_sml
<gasche_> that would be easy for small programs that beginners write, tricky in the general case as the type systems are different
<Drup> gasche_: webassembly backend is probably not going to happen very quickly
<Drup> (I expect they will have the same issues than ocaml has)
<gasche_> I think SML -> Malfunction should be easier
<gasche_> but it's not clear that it would be a large win over SML's implementations
<flux> gasche_, would it allow mixing SML and OCaml code/
<gasche_> I am wondering about that ; I think yes, but then you are back to the type system difference issue
<flux> as I understand it, it would allow embedding SML modules in OCaml programs? (and in principle vice versA)
<flux> it is a bit sad the ml-family guys can't leverage the type systems for interoperation and compatibility among the ml languages :)
<gasche_> (for example records are different in OCaml and SML; but I suspect that if you only want to translate *interfaces* in a typed way, and implementations to Malfunction, you could hide the differences)
<Drup> isn't there a strict inclusion of SML's type system into OCaml's one anyway ?
<Drup> we got generative functors now, so that's done
<ggole> Local exceptions?
<gasche_> I'm not sure about things like sharing constriants, etc., at the type level
<ggole> You might be able to use local modules with an exception inside, though
<flux> I don't know if there are some SML modules I don't know I'm missing, though :)
<gasche_> ggole: "let exception .. in" is coming in 4.04, implemented by Alain Frisch
<ggole> Ooh, didn't know that
<ggole> It does make sense.
<gasche_> (but we still have no "let type .. in", so yeah sometimes you need local modules)
<flux> well, those are all just new things to do old things. but when do we get recursive bindings between types and classes :/
<flux> s/things/ways/
<Drup> flux: you can do that too, but it's annoying
<flux> annoying doesn't evne describe it?-)
<Drup> (recursive modules)
<flux> maybe if recursive modules would be lighter to use, but I don't see that hapepning
<gasche_> recursive modules are hard, making them easier to use may make things worse in general
<ggole> It is quite annoying that various things that introduce type bindings don't mutually recurse with type definitions
<Drup> (and the "good" thing about recursive modules is that *everything* is hard. It's complicated to type check, to compile and to execute :3)
<flux> also related to let exception, would it be bad to just bring all top-level-definitions 'lettable'?
<flux> at least it would be consistent :)
<gasche_> there is a debate about this among maintainers, not everyone agrees that "why not?" is good justification for new syntax
<Drup> flux: I think some people of the core team were favorable to that
<gasche_> I would like to focus on Menhir first
<flux> I guess some are scared that it would lead somehow abundant overusage of said facilities
<flux> but on the other hand, is it not quite strange that there are some, but not all, top-level definitions that's usable with 'let' but then others need to be embedded inside a local module..
zpe has quit [Remote host closed the connection]
<flux> how easy would it to teach that 'you have these forms you can use for defining stuff, also you can use them inside functions if you put 'let' before; don't overuse it, though'.
<flux> sometimes adding features can simplify a language :-)
zpe has joined #ocaml
<ggole> "This type variable would escape" is already sometimes quite hard to understand.
<flux> if there's one thing that I feel is sometimes too easy, is defining local functions. I should put them more often outside the function :).
<flux> ggole, well, I can continue the script with ". also if you get obscure type errors, try moving the stuff outside the function.".
agarwal1975 has joined #ocaml
<flux> as you point out, ocaml already has those obscure errors.. and even in said syntax did exist, I doubt it would gain significantly more use than local modules (ie. not much).
picolino has quit [Ping timeout: 240 seconds]
pierpa has joined #ocaml
two_wheels has joined #ocaml
al-damiri has joined #ocaml
govg has joined #ocaml
zpe has quit [Remote host closed the connection]
sepp2k has joined #ocaml
rand__ has quit [Ping timeout: 244 seconds]
<elfring> I added one function to an OCaml class.
<elfring> Now I wonder about a corresponding constraint "'b = value:'d -> 'e" which is displayed by the command "ocamlc -i omap2b.ml".
gasche_ has quit [Quit: Lost terminal]
timeyyy has joined #ocaml
larhat has quit [Read error: Connection reset by peer]
larhat has joined #ocaml
larhat has quit [Remote host closed the connection]
freehck has quit [Remote host closed the connection]
MercurialAlchemi has quit [Ping timeout: 258 seconds]
freehck has joined #ocaml
silver_ has joined #ocaml
Algebr` has joined #ocaml
<kakadu> elfring: Are you sure that you selected right maillist?
shinnya has joined #ocaml
silver has quit [Ping timeout: 258 seconds]
dexterph has quit [Ping timeout: 264 seconds]
mpenet has quit [Remote host closed the connection]
<flux> elfring, so what is the definition?
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
<elfring> Kakadu: I hope so for my two clarification requests a moment ago.
bruce_r has joined #ocaml
<elfring> flux: Are you interested to clarify a few extensions for a software like "https://github.com/elfring/OTCL/"?
<flux> elfring, to clarify? enhance?
<flux> I'm afraid I'm not particularly in need for an object-oriented data structure library without a compelling use case (such as c++-like iterators enabling better support for combining data structure), and those are difficult to implement just in terms of the standard containers..
<flux> some benchmarks would in general be interesting, ie. how much the wrapper costs
<elfring> flux: I am trying to extend an "OCaml template class library" a bit once more.
<flux> well, plain olist, oarray, ostring and obytes might be good candidates
<flux> if the purpose is to allow easily replacing a list with a set, for example
<elfring> flux: How do you think about software modules like the following?
<elfring> Oset, Omapping, Omap, Ohashtbl, Ostack, Oqueue, Ostream, Ogenlex, Oformat
<Algebr`> another standard lib replacement?
<Algebr`> oh, this is an OO based one
<elfring> Algebr`: Is "OTCL" just an ordinary object-oriented interface (instead of a "replacement")?
<Algebr`> what
kaustuv has joined #ocaml
Anarchos has joined #ocaml
Algebr` has quit [Remote host closed the connection]
Algebr` has joined #ocaml
kaustuv has left #ocaml ["ERC (IRC client for Emacs 24.5.1)"]
timeyyy has quit [Ping timeout: 250 seconds]
ryu0 has quit [Changing host]
ryu0 has joined #ocaml
slash^ has joined #ocaml
slash^ is now known as slash_skate
<Anarchos> i can't install ppx_tools through opam with ocaml 4.02.3
ollehar has joined #ocaml
<Algebr`> what happens?
<Anarchos> Algebr` some ast_XXX.cmx files in compiler-libs are found to be no compilation unit description
<Anarchos> it seems i mixed two attempts to install the compiler
<Anarchos> Algebr` i cleaned the compilerlibs folder, reinstall and it worked :)
<Algebr`> yay
silver_ is now known as silver
wtetzner has joined #ocaml
shinnya has quit [Ping timeout: 250 seconds]
MercurialAlchemi has joined #ocaml
tvynr has joined #ocaml
<tvynr> I'm trying to sort out best practices for my _oasis file. My understanding is that the OPAM repository crew prefer packages *not* to depend upon OASIS at build time (and OASIS was specifically designed to prevent a build time dependency). That said, I'm having trouble organizing my repository so that I can (1) use the dynamic setup.ml while developing and yet (2) cleanly use oasis2opam to generate an opam file that doesn't rely on OASIS
<tvynr> at build time. My Google-fu has failed me; any suggestions?
<Algebr`> pretty sure that `oasis setup -setup-update dynamic` should be enough
<tvynr> Algebr`: Oh, it is. But the OPAM repository maintainers don't like to see that on distribution. See Chris00 in this PR discussion: https://github.com/ocaml/opam-repository/pull/4916
<tvynr> Algebr`: For my next version of that package, I did a gross thing where I have a "packaging" branch on which I commit static setup.ml files and keep a dynamic setup.ml in "master". But I'm not thrilled by the idea and I'm assuming other people have better solutions.
<Algebr`> this is news to me, use oasis just fine with distribution...
<Algebr`> perhaps someone else will answer
wtetzner has quit [Remote host closed the connection]
<tvynr> Algebr`: Alrighty. Thanks for the data point. :)
ontologiae has quit [Ping timeout: 244 seconds]
djhoulihan has joined #ocaml
Algebr` has quit [Read error: Connection reset by peer]
Algebr` has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
Algebr` has quit [Remote host closed the connection]
djhoulihan has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ollehar has quit [Ping timeout: 264 seconds]
AltGr has left #ocaml [#ocaml]
<flux> elfring, btw, this kind of library might be of more interest to the users of Reason (of Facebook fame)
<flux> assuming they're going for the javascript crowd, a class-based interface might seem more familiar
ontologiae has joined #ocaml
copy` has joined #ocaml
spk_ has joined #ocaml
lol-icon has quit [Quit: Fix <strike>life</strike> config.]
lol-icon has joined #ocaml
<elfring> flux: Is the use of object-oientation evolving a bit more for OCaml software currently?
<flux> it's a tool among other tools, one that's sed sparingly. I don't see that changing any time soon.
<flux> ("used")
darkf has quit [Read error: Connection reset by peer]
darkf has joined #ocaml
Ivar has joined #ocaml
<Ivar> What is the meaning of the >|= operator?
Ivar is now known as Guest98381
sh0t has joined #ocaml
<flux> >|= fun x -> y is like >>= fun x -> return y but more efficient
<Guest98381> Thanks!
<flux> I had the answer in backlog :)
Guest98381 has quit [Ping timeout: 250 seconds]
lol-icon has quit [Remote host closed the connection]
lol-icon has joined #ocaml
malc_` has joined #ocaml
shinnya has joined #ocaml
elfring has quit [Quit: Konversation terminated!]
malc_ has quit [Ping timeout: 250 seconds]
spk_ has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
soupault has quit [Ping timeout: 244 seconds]
kakadu has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
kakadu has joined #ocaml
<tvynr> I just used oasis2opam to generate an opam file for my little library. It seems to have inferred: "ppx_deriving" {= "1.0"}. I'm not sure why this is the case, since I never constrain the version myself and my installed version of ppx_deriving is 3.3. Does anyone have a guess?
seangrove has joined #ocaml
djhoulihan has joined #ocaml
djhoulihan has quit [Max SendQ exceeded]
djhoulihan has joined #ocaml
kakadu has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
djhoulihan has quit [Quit: Textual IRC Client: www.textualapp.com]
malc_`` has joined #ocaml
Functors has joined #ocaml
malc_` has quit [Ping timeout: 244 seconds]
<Functors> Is it possible for modules to auto-implement (with a functor?) a bunch of functions if they aren't available in a module so the type of that module contains all those functions?
<Functors> The problem is that some modules might contain a subset of those functions
<Functors> others won't have that subset
<Functors> And the subset might vary between different modules
<smondet> Functors: what do you want those non-implemented functions to do?
<Functors> if they aren't implemented, I want to provide a standard implementation for some of them, some won't have to do anything if they aren't implemented
<flux> tvynr, my guess is that it simply has failed to guess properly.. and 1.0 is its default assmption
rks`_ has joined #ocaml
justin_s1ith has joined #ocaml
Rome has joined #ocaml
so_ has joined #ocaml
Enjolras_ has joined #ocaml
benjamin1 has joined #ocaml
Pepe__ has joined #ocaml
freehck has quit [*.net *.split]
eikke has quit [*.net *.split]
xaimus has quit [*.net *.split]
cat5e has quit [*.net *.split]
so has quit [*.net *.split]
rwmjones has quit [*.net *.split]
RomanZ5 has quit [*.net *.split]
Enjolras has quit [*.net *.split]
rks` has quit [*.net *.split]
iZsh_ has quit [*.net *.split]
Pepe_ has quit [*.net *.split]
osheeta has quit [*.net *.split]
justin_smith has quit [*.net *.split]
xaimus has joined #ocaml
iZsh has joined #ocaml
cat5e has joined #ocaml
<smondet> Functors: then an `include Defaults` or `include Defaults with type t := t` or alike should do the trick (?)
rwmjones has joined #ocaml
<tvynr> flux: Fair enough. :) Right now, I'm just manually removing that constraint when I publish the package, so it's not a game-ender; it's just a bit annoying. (Though not as annoying as maintaining the whole opam file myself!)
<tvynr> flux: Thanks for the reply. :)
<Functors> @smondet: Thanks for the suggestion, I'm going to try it that way
justin_s1ith is now known as justin_smith
<flux> tvynr, perhaps you could try finding if it's a known issue or file one?-)
<tvynr> flux: Indeed; I'll be looking into that soon, I hope. :)
srcerer has quit [Ping timeout: 240 seconds]
SilverKey has joined #ocaml
eikke has joined #ocaml
srcerer has joined #ocaml
dexterph has joined #ocaml
seangrove has quit [Ping timeout: 240 seconds]
ygrek has joined #ocaml
seangrove has joined #ocaml
LiamGoodacre has joined #ocaml
kushal has quit [Ping timeout: 250 seconds]
kakadu has joined #ocaml
kushal has joined #ocaml
_andre has quit [Quit: leaving]
SilverKey has quit [Quit: Halted.]
ollehar has joined #ocaml
slash_skate has quit [Read error: Connection reset by peer]
sepp2k has quit [Quit: Leaving.]
ontologiae has quit [Ping timeout: 244 seconds]
<ollehar> any ocaml compiler hackers present?
<ollehar> I have a problem with Env.t
<ollehar> a lookup can find module Z but not module Pervasives.
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
seangrove has quit [Remote host closed the connection]
seangrove has joined #ocaml
SilverKey has joined #ocaml
<Drup> where does that Env comes from ?
<ollehar> hi drup!
<ollehar> it's in malfunction.
<ollehar> I'm having problems adding support for floating-point operations.
<ollehar> trying to track down this problem for some days now.
<ollehar> I though this would fix it: Clflags.nopervasives := false;
<ollehar> but with Env.lookup_value I still don't find Pervasives.(+.)
Functors has quit [Ping timeout: 250 seconds]
<ollehar> Drup: any idea?
<ollehar> guess not ;)
<ollehar> I'll try Laddfloat instead of applying
<ollehar> I mean Paddfloat
<ollehar> worked!
<ollehar> finally
<ollehar> guess I should study Lambda.mli more closely.
clog has quit [Ping timeout: 276 seconds]
wtetzner has joined #ocaml
SilverKey has quit [Quit: Halted.]
rand__ has joined #ocaml
wtetzner has quit [Remote host closed the connection]
ggole has quit []
MercurialAlchemi has quit [Ping timeout: 240 seconds]
<Drup> guess you found what you wanted. Regardless, I doubt using pervasive is a great idea for you
<ollehar> except for floating-point mod, possibly (no lambda prim for that)
tvynr has quit [Ping timeout: 252 seconds]
<Drup> how is it implemented in stdlib ?
Simn has quit [Quit: Leaving]
tvynr has joined #ocaml
rand__ has quit [Quit: leaving]
malc_`` has quit [Quit: ERC (IRC client for Emacs 25.0.50.2)]
pierpa has quit [Ping timeout: 260 seconds]
<ollehar> Drup: mod? not sure
<ollehar> or: don't know.
seangrove has quit [Ping timeout: 244 seconds]
dexterph has quit [Ping timeout: 244 seconds]
sh0t has quit [Ping timeout: 276 seconds]
D3BUG has joined #ocaml
D3BUG has quit [Quit: Leaving]
kakadu has quit [Remote host closed the connection]
seangrove has joined #ocaml
darkf has quit [Ping timeout: 250 seconds]
Heasummn has joined #ocaml
<Heasummn> Can I disable warnings for a specific file?
darkf has joined #ocaml
<Drup> Heasummn: Sure, just either disable the warning on the command line or add [@@@ocaml.warning "-6"] at the top (ocaml ≥ 4.02)
<Heasummn> Alright
<Heasummn> Also, do you know how I could solve this warning if it is solvable? When opening Core.Std I get the warning: this open statement shadows the value identifier print_endline
<Heasummn> (which is later used)
<Drup> use "open!"
<Heasummn> what does that do?
<Drup> it's like "open" but it doesn't warn on shadowin
<Drup> shadowing*
<Heasummn> alright
<Heasummn> I turned all warnings to errors, and I'm finding that might not have been the best idea
<Heasummn> Because I'm using Menhir, and the pregenerated code creates some errors
<Heasummn> But it's all compiling now
<Drup> just pick the warnings you like, not all warnings are good for everyone
<Heasummn> yeah
<Drup> (and don't ever use "-warn +A -warnerror +A"
clog has joined #ocaml
<Heasummn> Does that remove all warning errors?
<Drup> no, that enables all warnings and turn them all into errors
<Drup> which is very bad, since it's going to fail as soon as the compiler introduce new warnings in the next versions
<Heasummn> Right now I'm using @a -4 -41. Which does exactly that lol
<Heasummn> the -4 -41 cause of menhir
<Drup> You should specify a range explicitely
<Heasummn> Is there some range that people normally recommend using? Or is the default compiler one fine?
<Drup> depends on people ...
<Heasummn> you? I'll change accordingly
<Drup> true: warn(+A-4-6-9-40-42-44), warn_error(+1..49), strict_sequence, safe_string
bruce_r has quit [Ping timeout: 260 seconds]
<Drup> (in ocamlbuild fashion)
<Heasummn> that translates to oasis easily
<Heasummn> what does warn_error do?
<Drup> turns the selected range into an error
<Heasummn> that's what I thought
phase_ has quit [Ping timeout: 250 seconds]
<Heasummn> Yeah I have to change that a bit cause of Menhir.
<Drup> just disable the warning specially for the merlin file
<Drup> menhir file*
<Heasummn> I can't. Cause oasis is weird
<Heasummn> Is there some ocamlopt option to do so?
al-damiri has quit [Quit: Connection closed for inactivity]
<Drup> just put it in _tags, it will work
mcc has joined #ocaml
bruce_r has joined #ocaml
ollehar has quit [Quit: ollehar]
wtetzner has joined #ocaml
sh0t has joined #ocaml
wtetzner has quit [Remote host closed the connection]