companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.05.0 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.05/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
ristos has quit [Quit: Connection closed for inactivity]
pierpa has joined #ocaml
eh_eff has quit [Ping timeout: 252 seconds]
<dh_work> oh, while I'm on this channel;
<dh_work> what's the recommended most standard way to handle unicode text/strings?
sam____ has quit [Ping timeout: 260 seconds]
Denommus has quit [Quit: going home]
jao has quit [Ping timeout: 240 seconds]
mfp__ has quit [Ping timeout: 246 seconds]
Algebr` has quit [Ping timeout: 240 seconds]
enterprisey has quit [Remote host closed the connection]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
philtor has joined #ocaml
rostero has joined #ocaml
AceJohnny has quit [Read error: Connection reset by peer]
enterprisey has joined #ocaml
rpip has quit [Remote host closed the connection]
TarVanimelde has joined #ocaml
eh_eff has joined #ocaml
eh_eff has quit [Ping timeout: 240 seconds]
Orion3k has quit [Ping timeout: 240 seconds]
sam_ has joined #ocaml
sgnb` has joined #ocaml
sgnb has quit [Ping timeout: 240 seconds]
sam_ has quit [Ping timeout: 252 seconds]
Orion3k has joined #ocaml
Orion3k has quit [Ping timeout: 260 seconds]
Orion3k has joined #ocaml
kerrhau has joined #ocaml
<kerrhau> what are some things I can make in ocaml to practice my skills?
<kerrhau> I was thinking of a chess engine but I'm not too good at ocaml yet
pierpa has quit [Quit: Page closed]
samrat has joined #ocaml
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 248 seconds]
zv has quit [Ping timeout: 246 seconds]
zv has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 252 seconds]
rostero has quit [Quit: Connection closed for inactivity]
maker1 has quit [Quit: = ""]
kerrhau has quit [Ping timeout: 264 seconds]
johnelse_ has joined #ocaml
johnelse has quit [Ping timeout: 248 seconds]
awal has quit [Ping timeout: 248 seconds]
sigjuice_ has quit [Ping timeout: 248 seconds]
sigjuice has joined #ocaml
awal has joined #ocaml
awal is now known as Guest39561
multiocracy[m] has quit [Ping timeout: 240 seconds]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 264 seconds]
govg has joined #ocaml
multiocracy[m] has joined #ocaml
cbot has quit [Quit: Leaving]
MercurialAlchemi has joined #ocaml
FreeBirdLjj has joined #ocaml
zlsyx has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
mbuf has joined #ocaml
sam_ has joined #ocaml
Mercuria1Alchemi has joined #ocaml
Guest39561 is now known as awal
MercurialAlchemi has quit [Ping timeout: 240 seconds]
sam_ has quit [Ping timeout: 252 seconds]
TobiasBales has joined #ocaml
zlsyx has quit [Quit: Leaving...]
TheLemonMan has joined #ocaml
eh_eff has joined #ocaml
eh_eff has quit [Ping timeout: 240 seconds]
sam_ has joined #ocaml
jbrown has quit [Quit: Leaving]
sam_ has quit [Ping timeout: 240 seconds]
steve_gh has quit [Ping timeout: 260 seconds]
enterprisey has quit [Ping timeout: 248 seconds]
keep_learning has joined #ocaml
Simn has joined #ocaml
danieli has quit [Ping timeout: 240 seconds]
MercurialAlchemi has joined #ocaml
TarVanimelde has quit [Quit: TarVanimelde]
BitPuffin|osx has joined #ocaml
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 246 seconds]
Orion3k has quit [Ping timeout: 240 seconds]
barcabuona has joined #ocaml
igstan has joined #ocaml
igstan has quit [Client Quit]
argent_smith has joined #ocaml
samrat has quit [Ping timeout: 240 seconds]
barcabuona has quit [Ping timeout: 248 seconds]
samrat has joined #ocaml
Orion3k has joined #ocaml
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
zv has quit [Ping timeout: 252 seconds]
johnelse_ has quit [Read error: Connection reset by peer]
zv has joined #ocaml
johnelse has joined #ocaml
mfp__ has joined #ocaml
<companion_cube> a checkers game? :p
<companion_cube> is there a ppx for *very* efficient logging, able to totally remove logging statements if some flag is passed?
nahra has quit [Remote host closed the connection]
danieli has joined #ocaml
<theblatte> companion_cube: a compile-time flag?
<theblatte> I think OCaml will simplify that out of existence
<theblatte> otherwise if it's a runtime flag, wouldn't that require generating 2^n copies of the code of your whole program? or
<theblatte> -or
sam_ has joined #ocaml
<companion_cube> hmmm :/
<companion_cube> well it should probably be a compile-time flag
<theblatte> if it were me, I would check if logging has a measurable impact on perf
<theblatte> branch prediction works pretty well
sam_ has quit [Ping timeout: 240 seconds]
stux|RC-only has quit [Ping timeout: 260 seconds]
<theblatte> my common problem with logging is that it's hard to make a good interface that won't do useless computations when there's nothing to print, eg Logging.log "foo %a" pp_stuff (get_stuff ()) calls "get_stuff" even if "log" decides it doesn't want to print the message
stux|RC-only has joined #ocaml
<theblatte> I guess one could write log "foo %a" (pp_lazy pp_stuff) (lazy (get_stuff ()))
<theblatte> sorry for derailing the discussion :p
kakadu has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
samrat has quit [Ping timeout: 252 seconds]
AltGr has joined #ocaml
steve_gh has joined #ocaml
andreas__ has quit [Quit: Connection closed for inactivity]
<steve_gh> Hi. Is it possible to set up sharing constraints between modules, to hint to the compiler that module X.Z = Y.Z
ziyourenxiang has joined #ocaml
<theblatte> steve_gh: in the signatures of X and Z you can specify "with Z = TheZYouWant"
johnelse has quit [Read error: No route to host]
johnelse has joined #ocaml
eh_eff has joined #ocaml
ShalokShalom_ has joined #ocaml
steve_gh has quit [Ping timeout: 260 seconds]
ShalokShalom has quit [Ping timeout: 240 seconds]
johnelse_ has joined #ocaml
eh_eff has quit [Ping timeout: 248 seconds]
KeyJoo has joined #ocaml
johnelse has quit [Ping timeout: 264 seconds]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 248 seconds]
johnelse has joined #ocaml
johnelse_ has quit [Ping timeout: 248 seconds]
AltGr has left #ocaml [#ocaml]
igstan has joined #ocaml
igstan has quit [Client Quit]
AltGr has joined #ocaml
sam_ has joined #ocaml
AltGr has left #ocaml [#ocaml]
superherointj has joined #ocaml
AltGr has joined #ocaml
andreas__ has joined #ocaml
zv has quit [Ping timeout: 246 seconds]
SpiceGuid has joined #ocaml
AltGr has left #ocaml [#ocaml]
zv has joined #ocaml
AltGr has joined #ocaml
xuanrui has joined #ocaml
sz0 has joined #ocaml
AltGr has left #ocaml [#ocaml]
mbuf has quit [Quit: Leaving]
<companion_cube> if you mean the trick of `log (fun k->k "foo bar %d" 42)`, I use it too
<companion_cube> I would like 0 overhead in some cases though
<companion_cube> literally 0
<Drup> companion_cube: that's my point. If you use flambda and that the logging is statically disable, flambda is able to completely remove it
<Drup> disabled*
<companion_cube> ah, right, I could do it I guess, with a top boolean
<companion_cube> https://github.com/c-cube/mc2/blob/master/src/core/log_real.ml#L26 <--- if I just put `if static_enable_log && …` here…
superherointj has quit [Quit: Leaving]
<Drup> you don't even need that
<companion_cube> then what?
<Drup> Just use the regular bunzli library. As soon as the level is known statically, flambda will do the magic
<companion_cube> (the level is determined by the command line arguments here)
<companion_cube> there is no static level -_-
<Drup> If you don't have static level, how can you even expect to not have any cost at all ?
copy_ has joined #ocaml
<Drup> You at least need to check the level
<companion_cube> I want to have builds where it's disabled (production builds, in a way)
<companion_cube> but that could be the `let static_enable_log = false`
<Drup> You want debugging and levels to be separate ?
<companion_cube> levels should only be meaningful in builds where logging is enabled, in a way
<Drup> companion_cube: you can disable them by fixing the levels, then
<Drup> just have a version with level cmd-line provided and a version where it's a constant
<companion_cube> yeah, I guess
<companion_cube> flambda can statically compute `a <= b`? that's nic
<Drup> yeah, it mostly can, at least for ADTs
<companion_cube> what about integers?
<companion_cube> (I would really like a manual on how to read ocamlobjinfo's output for flambda files, btw)
<companion_cube> (it looks like an AST but many details are not obvious)
<Drup> (afaik, everything that is an immutable value)
<Drup> why do you look at ocamlobjinfo output ? Use -flambda or -cflambda, that's a lot more readable
<companion_cube> I'd need to instrument jbuilder… :/
<Drup> ah, well ...
<companion_cube> perfect tooling would allow me to ask merlin about the compilation stages of a function 0:-)
<theblatte> :D
SpiceGuid has quit [Quit: ChatZilla 0.9.93 [SeaMonkey 2.46/20161213183751]]
steve_gh has joined #ocaml
xuanrui has quit [Ping timeout: 255 seconds]
xuanrui has joined #ocaml
xuanrui has quit [Remote host closed the connection]
sh0t has joined #ocaml
govg has quit [Ping timeout: 255 seconds]
govg has joined #ocaml
samrat_ has joined #ocaml
al-damiri has joined #ocaml
barcabuona has joined #ocaml
eh_eff has joined #ocaml
eh_eff has quit [Ping timeout: 240 seconds]
Mercuria1Alchemi has quit [Ping timeout: 248 seconds]
Soni has quit [Ping timeout: 240 seconds]
jlam has quit [Quit: Leaving]
jlam has joined #ocaml
Soni has joined #ocaml
mbuf has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
xuanrui has joined #ocaml
FreeBirdLjj has joined #ocaml
TheLemonMan has joined #ocaml
Soni has quit [Read error: Connection reset by peer]
kolko has quit [Quit: ZNC - http://znc.in]
xuanrui has quit [Ping timeout: 260 seconds]
kolko has joined #ocaml
xuanrui has joined #ocaml
TobiasBales has quit [Ping timeout: 248 seconds]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 246 seconds]
xuanrui has quit [Ping timeout: 248 seconds]
Soni has joined #ocaml
steve_gh_ has joined #ocaml
<steve_gh_> Hi. Can I create an optional module argument to a functor. For example X(Y)(Z) where Z is optional with a default of ZZ(Y).
<companion_cube> I don't think so
<companion_cube> but you can provide 2 functors, with one calling the other with the default value
<steve_gh_> Thxs - I suspected that this would be the way to do it.
BitPuffin|osx has quit [Ping timeout: 260 seconds]
<Bluddy[m]> anybody here currently at ICFP?
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
<zozozo> sure, why ?
<zozozo> Bluddy[m]: ^
<Bluddy[m]> yay
<Bluddy[m]> looks like we completely took over the ML session this year
sz0 has quit [Quit: Connection closed for inactivity]
<zozozo> ^^
<Bluddy[m]> is the 'awkward squad' currently being presented?
<zozozo> yeah
<Bluddy[m]> good?
<zozozo> we're getting to the good part
<Bluddy[m]> they've gotta start livestreaming this stuff
<zozozo> they livestreamed the main conference
<Bluddy[m]> oh man... i had no idea
echo_ has joined #ocaml
echo_ has quit [Client Quit]
echo_ has joined #ocaml
BitPuffin|osx has joined #ocaml
eh_eff has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
echo_ has quit [Quit: Mutter: www.mutterirc.com]
<Bluddy[m]> sad that there's nothing about modular implicits...
sam_ has joined #ocaml
steve_gh_ has quit [Ping timeout: 260 seconds]
<reynir> hrm, I'm not having much luck with opam-publish with 2fa @ github
<reynir> I don't receive any sms and I can't use my yubikey
sam_ has quit [Ping timeout: 260 seconds]
<reynir> Ah, managed to manually set a token
FreeBirdLjj has joined #ocaml
dakk__ has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
dakk_ has quit [Ping timeout: 248 seconds]
FreeBirdLjj has quit [Ping timeout: 248 seconds]
zv has quit [Ping timeout: 255 seconds]
zv has joined #ocaml
nahra has joined #ocaml
aciniglio has quit [Read error: Connection reset by peer]
kakadu has quit [Quit: Konversation terminated!]
sam_ has joined #ocaml
FreeBirdLjj has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
aciniglio has joined #ocaml
enterprisey has joined #ocaml
TheLemonMan has joined #ocaml
SomeDamnBody has joined #ocaml
<SomeDamnBody> Hey, I'm using cmdliner... how would I say, have a type of a variant constructor?
<SomeDamnBody> I have type cmd = | File of string | Opt of string
enterprisey has quit [Remote host closed the connection]
<SomeDamnBody> and I want to map "File" and "Opt" to (File s) and (Opt s) respectively.
Algebr` has joined #ocaml
zv has quit [Ping timeout: 255 seconds]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 260 seconds]
SomeDamnBody has quit [Remote host closed the connection]
kakadu has joined #ocaml
zv has joined #ocaml
kakadu has quit [Ping timeout: 240 seconds]
kakadu has joined #ocaml
TobiasBales has joined #ocaml
andreas__ has quit [Quit: Connection closed for inactivity]
Simn has quit [Ping timeout: 240 seconds]
andrewalker has quit [Ping timeout: 264 seconds]
TobiasBales has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
andrewalker has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 248 seconds]
<Bluddy[m]> zozozo: anything good?
eh_eff has quit [Ping timeout: 252 seconds]
ShalokShalom_ is now known as ShalokShalom
mbuf has quit [Quit: Leaving]
Simn has joined #ocaml
TobiasBales has joined #ocaml
TobiasBales has quit [Client Quit]
sam_ has joined #ocaml
argent_smith has quit [Quit: Leaving.]
sam_ has quit [Ping timeout: 248 seconds]
peterpp has joined #ocaml
aciniglio has quit [Ping timeout: 240 seconds]
enterprisey has joined #ocaml
Algebr` has quit [Read error: Connection reset by peer]
samrat_ has quit [Ping timeout: 248 seconds]
<ShalokShalom> kakadu: hi dude
<ShalokShalom> which licence do you use for your project?
<ShalokShalom> here is a discussion about our issue: https://discuss.ocaml.org/t/jbuilder-fails-to-build/802
<ShalokShalom> i add lablqml with MIT here, you might want to change: https://en.wikipedia.org/wiki/List_of_language_bindings_for_Qt_5
jbrown has joined #ocaml
Algebr` has joined #ocaml
ayxih has joined #ocaml
jbrown has quit [Ping timeout: 240 seconds]
<kakadu> ShalokShalom: I initially I planned about LGPL with possibility of dual license if somebody will really need it
<ShalokShalom> I see
<ShalokShalom> double license sounds nice
<kakadu> ShalokShalom: Yeah, I have seen the thread but it seems that no fix is found
copy_ has quit [Quit: Connection closed for inactivity]
<ShalokShalom> Wikipedia is updated
MercurialAlchemi has quit [Ping timeout: 248 seconds]
sam_ has joined #ocaml
eh_eff has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
andreas__ has joined #ocaml
<zozozo> Bluddy[m]: well, modular implicits popped up here and there in talks
kerrhau has joined #ocaml
Simn has quit [Read error: Connection reset by peer]
jbrown has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
<companion_cube> is there an implementation ready?
kolko has quit [Ping timeout: 248 seconds]
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0_ has joined #ocaml
infinity0 is now known as Guest46676
infinity0_ is now known as infinity0
Guest46676 has quit [Killed (tolkien.freenode.net (Nickname regained by services))]
cbot has joined #ocaml
<zozozo> Doesn't seem like it
kakadu has quit [Remote host closed the connection]
<kerrhau> hey, im new to ocaml, and im looking for some things I could write to improve my skill, I was thinking chess engine, but i dont know enough about ocaml (or even chess programming) to start
sam_ has joined #ocaml
<Bluddy[m]> zozozo: ?
<Bluddy[m]> isn't there a repo based on 4.02?
sam_ has quit [Ping timeout: 240 seconds]
Soni has quit [Ping timeout: 240 seconds]
Soni has joined #ocaml
<Bluddy[m]> kerrhau: how about just doing a textual interface for a chess game? much easier than developing chess AI (which is very hard)
sam_ has joined #ocaml
Exagone313 has quit [Quit: see ya!]
jbrown has quit [Quit: Leaving]
pierpa has joined #ocaml
Exagone313 has joined #ocaml
sh0t has quit [Remote host closed the connection]
<zozozo> Bluddy[m]: there is a repo, but if I understand correctly, it's not ready to be used in the wild, and there are still some bugs
<Bluddy[m]> i think they haven't proven the theory yet. that's why i was really surprised not to see it this year
mengu has joined #ocaml
mrvn has quit [Ping timeout: 246 seconds]
mrvn has joined #ocaml
peterpp has quit [Ping timeout: 260 seconds]
<kerrhau> Bluddy[m]: like something using curses?
enterprisey has quit [Read error: Connection reset by peer]
ayxih has quit [Quit: Leaving]
<Bluddy[m]> kerrhau: there are libraries for this stuff, but you could start by making it simple text based and just reprinting the board and taking input
ziyourenxiang has quit [Ping timeout: 240 seconds]
flux has quit [Ping timeout: 246 seconds]
<kerrhau> Bluddy[m]: idk, my knowledge of ocaml barely extends to records, anything more... simple?
averell has quit [Ping timeout: 246 seconds]
cbot has quit [Ping timeout: 240 seconds]
KeyJoo has quit [Ping timeout: 248 seconds]