ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.1 announcement at http://ocaml.org/releases/4.02.html | Public channel logs at http://irclog.whitequark.org/ocaml
t4nk362 has joined #ocaml
<t4nk362> thanks! it worked great
swgillespie has joined #ocaml
<Drup> kaiyin: there was also an interesting comparison of the number of packets in various package managers, including cabal and opam, but I can't find it
travisbrady has quit [Quit: travisbrady]
t4nk239 has quit [Ping timeout: 246 seconds]
NSA360 has quit [Quit: Leaving]
<kaiyin> cabal counts at 7000+
ghostpl has quit [Remote host closed the connection]
<kaiyin> opam at 1000~
<kaiyin> although my experience with opam is much better than with cabal.
mort___ has quit [Quit: Leaving.]
<Drup> (you need to check how are counted versions)
<Drup> that's 7000 ?
<kaiyin> yes
<kaiyin> if wc -l is correct.
<Drup> ok
<dmbaturin> Maybe it's octal 7000? :)
t4nk362 has quit [Ping timeout: 246 seconds]
<dmbaturin> Although it doesn't look like octal 7000 either. Is it really a complete list of cabal packages?
<dmbaturin> Hhm, yes, over 7k.
enitiz has quit [Read error: Connection reset by peer]
<rgrinberg> ocaml's numbers are a little more conservative than most languages i'd say
<rgrinberg> since for the longest time, splitting up your code into libs was painful
nze` has quit [Ping timeout: 244 seconds]
AltGr has joined #ocaml
mv has quit [Remote host closed the connection]
ontologiae has quit [Ping timeout: 246 seconds]
struktured has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
kaiyin has quit [Ping timeout: 246 seconds]
SomeDamnBody has quit [Ping timeout: 264 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
SomeDamnBody has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
Sorella has joined #ocaml
pyon is now known as unsound-pyon
ygrek has joined #ocaml
manud has joined #ocaml
manud has quit [Client Quit]
manud has joined #ocaml
MrScout has quit [Remote host closed the connection]
monoprotic_2 is now known as monoprotic
enitiz has joined #ocaml
RossJH has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Guest39114 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
thomasga1 has joined #ocaml
shinnya has quit [Ping timeout: 265 seconds]
ptc has joined #ocaml
ptc is now known as Guest52508
yminsky has joined #ocaml
Guest52508 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
chinglish has joined #ocaml
Nijikokun has joined #ocaml
Nijikokun has quit [Max SendQ exceeded]
ghostpl has joined #ocaml
manud has quit [Quit: manud]
jwatzman|work has quit [Quit: jwatzman|work]
claudiuc has quit [Remote host closed the connection]
thomasga1 has quit [Quit: Leaving.]
ghostpl has quit [Ping timeout: 255 seconds]
manud has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
q66 has quit [Quit: Leaving]
uris77 has joined #ocaml
myyst is now known as myst
ygrek has quit [Ping timeout: 250 seconds]
ptc has joined #ocaml
ptc is now known as Guest39223
darkf has joined #ocaml
Guest39223 has quit [Ping timeout: 252 seconds]
ptc_ has joined #ocaml
travisbrady has joined #ocaml
swgillespie has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
ygrek has joined #ocaml
destrius has joined #ocaml
badon_ has joined #ocaml
badon has quit [Disconnected by services]
dmiles has joined #ocaml
badon_ is now known as badon
ebzzry_ has joined #ocaml
myst|wor1 has joined #ocaml
cthuluh_ has joined #ocaml
ski_ has joined #ocaml
asmanur_ has joined #ocaml
ebzzry has quit [*.net *.split]
cthuluh has quit [*.net *.split]
myst|work has quit [*.net *.split]
asmanur has quit [*.net *.split]
ski has quit [*.net *.split]
dmiles_afk has quit [*.net *.split]
tobiasBora has quit [*.net *.split]
yminsky has quit [Quit: yminsky]
travisbrady has quit [Quit: travisbrady]
ghostpl has joined #ocaml
SomeDamnBody has quit [Ping timeout: 250 seconds]
tobiasBora has joined #ocaml
yminsky has joined #ocaml
ghostpl has quit [Ping timeout: 252 seconds]
Sorella has quit [Quit: Connection closed for inactivity]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
yminsky has quit [Quit: yminsky]
swgillespie has joined #ocaml
ptc_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
destrius1 has joined #ocaml
SomeDamnBody has joined #ocaml
bytbox has joined #ocaml
mjw56 has quit [Remote host closed the connection]
meteo has quit [Read error: Connection reset by peer]
meteo has joined #ocaml
pango has quit [Ping timeout: 246 seconds]
manud has quit [Quit: manud]
unsound-pyon is now known as geometric-pyon
rgrinberg has quit [Ping timeout: 246 seconds]
rgrinberg has joined #ocaml
<destrius1> i'm pretty sure the answer is no, but is there any other way to write a pattern match on a tuple consisting of Foo and Bar, whatever the order, besides having two patterns, one for (Foo, Bar) and one for (Bar, Foo)?
<whitequark> no
<destrius1> heh ok thanks
<destrius1> would being able to do so be related to the concept of view patterns or active patterns?
andreypopp has joined #ocaml
<whitequark> I have no idea what that is
<destrius1> hmm, it was mentioned in a paper on functional graphs i read before, which lets you pattern match on graphs
<destrius1> but the paper just assumed the reader knows what it is. didn't really find out more about it anywhere else
<destrius1> might be some haskell or F# thing
<destrius1> anyway, was just curious
uris77 has quit [Quit: leaving]
<dmbaturin> Could have been hypothetical syntax, or an extension the paper authors wrote and stored in an obscure place (or simply didn't upload anywhere).
<destrius1> yeah.. the paper wasn't specific to any particular language anyway
<dmbaturin> I find the latter type of papers quite strange. Sometimes you even see papers where authors describe e.g. a compiler for an experimental language, but the compiler source is not available anywhere.
bytbox has quit [Remote host closed the connection]
<destrius1> maybe it's because the compiler can only compile the 3 test cases they include in the paper and nothing else
<dmbaturin> Well, even then there's something to learn from, or to extend and share with the authors.
destrius1 is now known as destrius_
tnguyen has quit [Quit: tnguyen]
SomeDamnBody has quit [Ping timeout: 255 seconds]
MrScout_ has joined #ocaml
ghostpl has joined #ocaml
psy_ has quit [Read error: Connection reset by peer]
rgrinberg has quit [Quit: Leaving.]
psy_ has joined #ocaml
ghostpl has quit [Ping timeout: 255 seconds]
enitiz has quit [Ping timeout: 265 seconds]
rgrinberg has joined #ocaml
MrScout_ has quit [Remote host closed the connection]
keen__________59 has joined #ocaml
keen__________58 has quit [Ping timeout: 256 seconds]
MrScout_ has joined #ocaml
<struktured> companion_cube: ok, I have a working polymorphic version of your buffer io, but its not quite ready for a PR yet (unit tests probably don't even compile). I tested it in utop though and works as desired. https://github.com/struktured/ocaml-containers/blob/poly-bufferio/src/data/CCBufferIO.ml
<struktured> companion_cube: also I am questionably exposing the array type in parts of the signature which may not be ideal.
<struktured> destrius_: reminds me of wanting to pattern match on elements from a set...same problem
bytbox has joined #ocaml
nullcat_ has joined #ocaml
axiles has quit [Ping timeout: 252 seconds]
axiles has joined #ocaml
iorivur has joined #ocaml
Pepe_ has quit [Quit: Lost terminal]
ygrek has quit [Ping timeout: 240 seconds]
<destrius_> struktured: yeah exactly
<destrius_> but of course you could just do it using ifs and some auxillary function
<struktured> destrius_: with sets, it would be nice to match using various partitoning syntax, and get a compiler error if the partiionining is incomplete
<destrius_> mmm
<destrius_> yeah that would be an advantage over doing it the way i described
MrScout_ has quit [Remote host closed the connection]
geometric-pyon has quit [Ping timeout: 264 seconds]
moei has joined #ocaml
myst has quit [Read error: Connection reset by peer]
keen__________60 has joined #ocaml
MrScout_ has joined #ocaml
keen__________59 has quit [Ping timeout: 244 seconds]
ghostpl has joined #ocaml
Pepe_ has joined #ocaml
ghostpl has quit [Ping timeout: 252 seconds]
iorivur has quit [Ping timeout: 246 seconds]
<nullcat_> if I want performance, is it true that using imperative programming in OCaml is better than functional style?
MercurialAlchemi has quit [Remote host closed the connection]
<vanila> yes
MrScout_ has quit [Remote host closed the connection]
iorivur has joined #ocaml
manud has joined #ocaml
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
ygrek has joined #ocaml
burgobianco has quit [Remote host closed the connection]
jave has quit [Ping timeout: 264 seconds]
Submarine has joined #ocaml
Submarine has joined #ocaml
iorivur has quit [Ping timeout: 264 seconds]
cthuluh_ is now known as cthuluh
AlexRussia has quit [Ping timeout: 264 seconds]
AlexRussia has joined #ocaml
larhat has joined #ocaml
ygrek_ has joined #ocaml
psy_ has quit [Quit: Leaving]
burgobianco has joined #ocaml
ygrek has quit [Ping timeout: 264 seconds]
oscar_toro has joined #ocaml
larhat has quit [Read error: No route to host]
larhat has joined #ocaml
MercurialAlchemi has joined #ocaml
AlexRussia has quit [Ping timeout: 265 seconds]
AlexRussia has joined #ocaml
vanila has quit [Quit: Leaving]
myst|wor1 has quit [Changing host]
myst|wor1 has joined #ocaml
andreypopp has quit [Changing host]
andreypopp has joined #ocaml
ggole has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
ygrek has joined #ocaml
ygrek_ has quit [Ping timeout: 245 seconds]
Haudegen has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
willy_ has left #ocaml ["Leaving"]
Haudegen has quit [Ping timeout: 255 seconds]
ygrek has joined #ocaml
ghostpl has joined #ocaml
manizzle has joined #ocaml
MooseAndCaml has joined #ocaml
<MooseAndCaml> Hi, I can't get this function to compile. Does anyone have a simple way to sum matches of types? https://gist.github.com/caseybasichis/a212924aabab0f90fc8e
jave has joined #ocaml
<MooseAndCaml> I have a feeling the way I am approaching the function is not the ideal
ghostpl has quit [Ping timeout: 252 seconds]
Haudegen has joined #ocaml
<MercurialAlchemi> MooseAndCaml: why are you using refs all over the place?
domsj has joined #ocaml
<MooseAndCaml> I'm new to ocaml and haven't been able to figure out a decent way to approach what seems like a simple problem
<MercurialAlchemi> MooseAndCaml: you'd usually just make a copy of the old tuple, with the updated field
<MercurialAlchemi> MooseAndCaml: like: let count_single,count_start,count_in,count_end = acc
<MercurialAlchemi> MooseAndCaml: then in your match x arms, you return for instance (count_single+1, count_start, count_in, count_end)
<MercurialAlchemi> alternatively, consider making a proper type for the accumulator, as a record
<MercurialAlchemi> then you can just return { acc with count_single = acc.count_single + 1 }
ygrek_ has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
<MooseAndCaml> alright, that seems to have worked. Thanks for the tips
dsheets__ has joined #ocaml
dsheets_ has quit [Ping timeout: 264 seconds]
tg has quit [Ping timeout: 245 seconds]
<MercurialAlchemi> MooseAndCaml: no to say that you can't work with refs in ocaml, but it's not idiomatic
jonludlam has quit [Quit: Coyote finally caught me]
<MooseAndCaml> yes, actually the first time i've used them... i feel silly having arrived there. Working with records now - they seem to be the most succinct in this context
<MercurialAlchemi> tuples are convenient, but you don't want to overuse them
<MercurialAlchemi> it can be difficult to remember what goes in what position
rgrinberg has quit [Quit: Leaving.]
manizzle has quit [Remote host closed the connection]
dsheets_ has joined #ocaml
dsheets__ has quit [Ping timeout: 244 seconds]
<companion_cube> struktured: nice! you're right, the type should be abstract. Also, I think it should be renamed into "ringbuffer" or something like this
ygrek_ has quit [Ping timeout: 250 seconds]
chambart has joined #ocaml
<whitequark> MooseAndCaml: o/
<companion_cube> struktured: oh, it would be really nice if the buffer was a functor over an array-like signature
ygrek_ has joined #ocaml
<companion_cube> I'd have usages for bytes, array, bigarray
<companion_cube> not to mention the proposal from Alain Frisch
AltGr has left #ocaml [#ocaml]
ghostpl has joined #ocaml
octachron has joined #ocaml
oscar_toro1 has joined #ocaml
oscar_toro has quit [Ping timeout: 265 seconds]
hnrgrgr has quit [Ping timeout: 244 seconds]
iorivur has joined #ocaml
hnrgrgr has joined #ocaml
ontologiae has joined #ocaml
psy_ has joined #ocaml
Kakadu has joined #ocaml
psy_ has quit [Max SendQ exceeded]
dsheets__ has joined #ocaml
The_Mad_Pirate has quit [Quit: Konversation terminated!]
dsheets_ has quit [Ping timeout: 244 seconds]
Simn has joined #ocaml
The_Mad_Pirate has joined #ocaml
zpe has joined #ocaml
larhat1 has joined #ocaml
larhat has quit [Ping timeout: 264 seconds]
divyansh_ has joined #ocaml
psy_ has joined #ocaml
mort___ has joined #ocaml
siddharthv has joined #ocaml
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
siddharthv has left #ocaml [#ocaml]
thomasga has joined #ocaml
ghostpl has quit [Remote host closed the connection]
ghostpl has joined #ocaml
jonludlam has joined #ocaml
<adrien_znc> dsheets__: companion_cube linked me to https://dsheets.github.io/codoc/assemblage.0.4.0/_build/bootstrap/as_shell/
<adrien_znc> you _must_ take string arrays or strings lists as parameters, not full strings
lordkryss has joined #ocaml
<adrien_znc> or you'll get an api that is unusable for windows
<adrien_znc> you or someone else for assemblage
manud has quit [Quit: manud]
yomimono has joined #ocaml
_andre has joined #ocaml
psy_ has quit [Ping timeout: 256 seconds]
skinkitten has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
Haudegen has joined #ocaml
divyansh_ has quit [Remote host closed the connection]
divyansh_ has joined #ocaml
Submarine has quit [Remote host closed the connection]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
ghostpl has quit [Remote host closed the connection]
ghostpl has joined #ocaml
paradoja has joined #ocaml
<dsheets__> adrien_znc, those are demo doc pages. assemblage 0.4.0 is obsolete. a new api and dev is happening at <https://github.com/samoht/assemblage>. I'm not an author.
ollehar has quit [Quit: ollehar]
dsheets__ has quit [Ping timeout: 245 seconds]
divyansh_ has quit [Quit: Computer has gone to sleep.]
Thooms has joined #ocaml
milosn has quit [Ping timeout: 246 seconds]
RossJH has joined #ocaml
rand000 has joined #ocaml
sgnb has joined #ocaml
oscar_toro1 has quit [Ping timeout: 256 seconds]
ollehar has joined #ocaml
oscar_toro has joined #ocaml
dsheets has joined #ocaml
mal`` has quit [Read error: Connection reset by peer]
fraggle-boate has quit [Remote host closed the connection]
divyansh_ has joined #ocaml
yomimono has quit [Ping timeout: 245 seconds]
thomasga has joined #ocaml
ollehar has quit [Remote host closed the connection]
ollehar has joined #ocaml
yomimono has joined #ocaml
mal`` has joined #ocaml
<struktured> companion_cube: are you basically suggesting I replace Array with a parameterized module in my implementation?
ollehar has quit [Remote host closed the connection]
ollehar has joined #ocaml
thomasga has quit [Quit: Leaving.]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
paolooo has joined #ocaml
divyansh_ has quit [Quit: Computer has gone to sleep.]
ygrek_ has quit [Ping timeout: 252 seconds]
fraggle-boate has joined #ocaml
dsheets has quit [Ping timeout: 250 seconds]
divyansh_ has joined #ocaml
oscar_toro has quit [Ping timeout: 265 seconds]
psy_ has joined #ocaml
octachron has quit [Ping timeout: 252 seconds]
<companion_cube> struktured: well it could be interesting
<companion_cube> http://www.lexifi.com/blog/about-unboxed-float-arrays has interesting ideas on this
Thooms has quit [Quit: WeeChat 1.0.1]
iorivur has quit [Ping timeout: 265 seconds]
paradoja has quit [Ping timeout: 245 seconds]
SomeDamnBody has joined #ocaml
octachron has joined #ocaml
<adrien_znc> dsheets__: thanks for the updated link
<adrien_znc> uses "string list" but doesn't document what it means unfortunately
Sorella has joined #ocaml
matason has joined #ocaml
matason has quit [Quit: leaving]
divyansh_ has quit [Quit: Computer has gone to sleep.]
mrvn is now known as all
all is now known as mrvn
Thooms has joined #ocaml
ollehar has quit [Ping timeout: 246 seconds]
matason has joined #ocaml
M-x has joined #ocaml
<M-x> Hello, newbie here. Can somebody explain why in utop code like `List.map [1;2;3] (fun x -> x + 1)` works fine, but building similar code with corebuild (and checking it with merlin) fails with the "This expression has type int list but an expression was expected of type 'a -> 'b" error?
<M-x> i.e. order of arguments to List.map in utop and in actual compiler is different.
<adrien_znc> doubtful
<ggole> Probably because .ocamlinit opens Core.std
<adrien_znc> do you have an ocamlinit?
<adrien_znc> :)
enitiz has joined #ocaml
iorivur has joined #ocaml
<ggole> Core.Std contains a List module that shadows the stdlib
<M-x> Oh, got it. I completely forgot that I have to open Core.std in my source code file!
enitiz has quit [Read error: Connection reset by peer]
captain_furious has joined #ocaml
captain_furious has quit [Client Quit]
matason has quit [Ping timeout: 264 seconds]
ollehar has joined #ocaml
dsheets has joined #ocaml
oscar_toro has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
SomeDamnBody has quit [Ping timeout: 256 seconds]
shinnya has joined #ocaml
ebzzry_ has quit [Remote host closed the connection]
Algebr has joined #ocaml
<Algebr> Somewhat subjective question, but what caused/events have made ocaml now more popular then before, at least prima facia. I mean this new influx of awesome tools, merlin/opam/utop, are relatively new right.
<adrien_znc> there was a hole in development around 2004-2007 I think
<M-x> I guess the fact that fp in general is becoming mainstream also contributes to the popularity of ocaml
yminsky has joined #ocaml
<adrien_znc> damn, means I need to switch to ZX 80 ASM
<def`> I don't know how to explain these convergences.
<def`> Still, fp in general seems to become more mainstream :)
<companion_cube> the publication of RWO must have helped too
jgjl has joined #ocaml
<yminsky> Lots of things contributed, I think. RWO probably helped some. OCaml Labs I think has helped a bit too. But mostly I think there’s a change in the zeitgeist. I think FP is more popular than it was generally, but even more so sophisticated static type systems. See Swift, Flow and Hack for more evidence.
<MercurialAlchemi> M-x: for small values of mainstream
<ia0> companion_cube> http://www.lexifi.com/blog/about-unboxed-float-arrays has interesting ideas on this <= isn't this a type-class for arrays?
<MercurialAlchemi> yminsky: the 0-install blog helped, too
<MercurialAlchemi> that's what got me started
<yminsky> I think Swift will approach decent values of mainstream soon.
<companion_cube> ia0: in some sense, yes
Algebr has quit [Ping timeout: 250 seconds]
<yminsky> Yeah, 0-install was a nice bump too. Also having a decent website.
<companion_cube> that's what an implicit module for arrays would look like
<ia0> first class modules make it easy-style
<Drup> yminsky: I hope Swift will encorage people to try better languages in general
<yminsky> There was also a resurgence of interest in hacking on the OCaml compiler itself, which happened as both cause and effect.
<companion_cube> MercurialAlchemi: did you use 0install?
<MercurialAlchemi> companion_cube: oh, no
<companion_cube> the series of blog posts was nice
<MercurialAlchemi> but the blog was linked on HN, and there enough ocaml code that I got over my "old language from the 90s with probably horrid syntax prejudice"
<destrius_> bob harper had a blog post talking abt the mainstreaming of fp
bytbox has quit [Ping timeout: 256 seconds]
<Drup> MercurialAlchemi: "horrid syntax prejudice" ? :D
<destrius_> "As has often been observed, it takes 25 years for an academic language idea to make it into industrial practice."
<MercurialAlchemi> Drup: didn't say it was a well-funded prejudice
<destrius_> so perhaps it's because 25 years ago there were some big advances in PLT
<def`> destrius_: interesting
jgjl has quit [Read error: Connection reset by peer]
<destrius_> i think computers getting faster also helped
<Drup> destrius_: this is not the first time I see this reasoning (the duration announced very)
<MercurialAlchemi> I think the improvement in tooling also helped not push people away
<MercurialAlchemi> (eg, opam)
<Drup> vary*
matason has joined #ocaml
mort___ has quit [Ping timeout: 250 seconds]
jgjl has joined #ocaml
<companion_cube> let's all jump on the ATS bandwagon, OCaml is too popular
<Drup> Idris bandwagon*
<companion_cube> nah, it's too clean :p
<pippijn> t@ype
<Drup> Personally, I'll only jump on the Eff bandwagon, because algebraic effects :>
<companion_cube> everyone jumps around!
<adrien_znc> hipster
<flux> ATS is pretty great.. it's not easy being more verbose than C ;-)
<companion_cube> does Eff have typeclasses? :s
<Drup> adrien_znc: PLT researcher*, plz.
<Drup> (that's not at all equivalent, really)
<def`> destrius_: the speed argument is strange… in my experience, my ocaml code is faster than what I write in java, p.* scripting languages… similar to delphi/pascal, close to C/C++ (actually faster than C/C++ when control flow get complex)
<MercurialAlchemi> Drup: eff seemed pretty cool
<MercurialAlchemi> I don't know if anything is happening about it, though
<Drup> MercurialAlchemi: not really, and that's not the goal
<def`> (obviously slower than C/C++ when working on highly regular datastructures)
<adrien_znc> Drup: still hipster :)
<companion_cube> amb as an effect, really?
Hannibal_Smith has joined #ocaml
<pippijn> my ocaml packet parsing code was 30% slower than C++
<pippijn> which is great
mort___ has joined #ocaml
<companion_cube> is this language real oO
<Drup> companion_cube: this is what I like with algebraic effects, it's really flexible without constraining your program like monads do
<def`> pippijn: except for image/signal processing, I always found ocaml convenience to overcome any benefit that would have come by using C++
M-x has quit [Ping timeout: 240 seconds]
<MercurialAlchemi> Drup: doesn't it have perf implication though?
<Drup> MercurialAlchemi: I don't know the details, but it's a very interesting question
<companion_cube> monads (and transformers) have perf implications too
<def`> that's the point, (handwavy-)we may hope that cheaper implementation techniques exist for algebraic effects
<companion_cube> https://github.com/bobatkey/ocamlmvc <-- will Drup cringe? :>
<Drup> not really
<companion_cube> def`: isn't it something similar to exceptions, with a stack of handlers?
<Drup> companion_cube: actually, not cringe at all
<Drup> I welcome any and all libraries for js_of_ocaml
<def`> companion_cube: as a first approximation, maybe, I don't know :)
<MercurialAlchemi> I like the "I think this will work" part
<Drup> companion_cube: on top of it, it seems to bind most of foundation, which is a very good thing
<Drup> but it should rather use React, we can do better than that
<companion_cube> funny how some pure FP concepts are also making their way into OCaml
<companion_cube> applicatives, monads, etc. are much more used now, I think
<companion_cube> thanks to cmdliner and Lwt, for instance
<Drup> I don't feel like that changed a lot
<MercurialAlchemi> ^^ operator
<Drup> lwt is not new, neither is cmdliner
<companion_cube> most of the "old" OCaml code I read is pretty imperative
dsheets has quit [Ping timeout: 255 seconds]
<companion_cube> (and full of "open" :()
<Drup> well, it depends which code ...
<companion_cube> what I have in mind: why, zenon, focalize, ocamlc (?)
dario_ has joined #ocaml
<companion_cube> just look at batteries, it still doesn't have monadic operators even in BatList
ski_ has quit [Remote host closed the connection]
<destrius_> i got quite frustrated with ocaml due to batteries, till one day i found core and it changed my life
<adrien_znc> companion_cube: you're reading code written by people from academia
<adrien_znc> that's the issue
<adrien_znc> :P
<destrius_> def`: yeah, i was thinking more like 20 years ago when many people think everything should be written in C/C++, and "scripting languages" were really only for scripts
psy_ has quit [Remote host closed the connection]
captain_furious has joined #ocaml
<companion_cube> adrien_znc: i.e. a big chunk of all OCaml code?
<companion_cube> destrius_: what did frustrate you?
bytbox has joined #ocaml
thomasga has joined #ocaml
<destrius_> companion_cube: batteries just didn't seem very elegantly designed in various places
<companion_cube> I see :)
dsheets has joined #ocaml
thomasga has quit [Client Quit]
Submarine has joined #ocaml
Submarine has joined #ocaml
<dmbaturin> adrien_znc: I thought people from academia are most likely to use purely functional features. :)
<companion_cube> well, those ones use Haskell
<companion_cube> or Coq :)
badkins has joined #ocaml
<destrius_> core and RWO also helped me understand how to write large scale ocaml code
<companion_cube> dsheets: I think you should steal Bünzli's CSS for codoc, at least as first approximation
travisbrady has joined #ocaml
Pepe_ has quit [Ping timeout: 255 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ghostpl has quit [Remote host closed the connection]
paolooo has quit [Quit: Page closed]
dsheets has quit [Ping timeout: 245 seconds]
ghostpl has joined #ocaml
sivoais has quit [Ping timeout: 264 seconds]
larhat1 has quit [Quit: Leaving.]
sivoais has joined #ocaml
jyc has joined #ocaml
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 256 seconds]
<pippijn> something functional
<pippijn> looks very nice
ghostpl has quit [Remote host closed the connection]
<pippijn> it needs a templating language that compiles to ocaml
ghostpl has joined #ocaml
<MercurialAlchemi> pippijn: why not tyxml?
travisbrady has quit [Quit: travisbrady]
travisbrady has joined #ocaml
destrius_ has quit [Quit: Leaving.]
pyon has joined #ocaml
<pippijn> looks good
ptc has joined #ocaml
<pippijn> if those two projects can work together, that's nice
ptc is now known as Guest14204
dsheets has joined #ocaml
<Drup> I need to look more carefully at ocamlmvc, but I think it's doing some non-sensical things, but js_of_ocaml and tyxml works very well together
<pippijn> Drup: like what?
Guest14204 has quit [Client Quit]
<def`> ocamlmvc… interesting!
<Drup> redefining some html elements
<Drup> and not using React for signals
<Drup> actually, most of that is not very useful :/
myst|wor1 has quit [Quit: Lost terminal]
<Drup> I like the idea, not the realisation
ptc_ has joined #ocaml
<pippijn> I like the idea, I didn't look at the rest
<Drup> right
<Drup> oh, I just looked at the code, ok, it should not be implemented like that at all x)
travisbrady has quit [Quit: travisbrady]
<pippijn> I want purely functional web applications
<Drup> err
<Drup> you do realize the DOM is mutable right ?
<Drup> I mean, you *have* to mutate it to do things
<pippijn> that should be hidden
<Drup> you can hide it, but at some point, it mutates
<pippijn> sure
dsheets has quit [Ping timeout: 245 seconds]
<pippijn> I want the framework to take care of that for me
<Drup> yeah, then fine, js_of_ocaml + tyxml (+ eliom.client)
<pippijn> how do you keep/update state in eliom?
travisbrady has joined #ocaml
<pippijn> last time I checked (a year ago), you had globals containing session state
<Drup> that's for the server part
<pippijn> yes
<Drup> and yes, and that's perfectly fine :)
<pippijn> meh
<Drup> the purity would not bring you anything here
<Drup> except the hassle of passing a state around
<Drup> I mean, even Haskell people use databases for that, which is a big mutable things
<pippijn> okay
<Drup> the part where you can hide the mutability is the client
<Drup> using FRP, you can almost get away without seeing anything mutable, only signals
thomasga has joined #ocaml
myst|work has joined #ocaml
ghostpl has quit [Remote host closed the connection]
travisbrady has quit [Quit: travisbrady]
yomimono has quit [Ping timeout: 244 seconds]
bytbox has quit [Ping timeout: 265 seconds]
Algebr has joined #ocaml
thomasga has quit [Quit: Leaving.]
ghostpl has joined #ocaml
chinglish has joined #ocaml
yomimono has joined #ocaml
thomasga has joined #ocaml
travisbrady has joined #ocaml
rand000 has quit [Quit: leaving]
travisbrady has quit [Client Quit]
travisbrady has joined #ocaml
slash^ has joined #ocaml
<companion_cube> Drup: just say that React is like react.js and you'll have thousand of web hipsters at your feet
jgjl has joined #ocaml
rgrinberg has joined #ocaml
paradoja has joined #ocaml
darkf has quit [Quit: Leaving]
travisbrady has quit [Quit: travisbrady]
psy_ has joined #ocaml
travisbrady has joined #ocaml
dsheets has joined #ocaml
<dsheets> companion_cube, the CSS isn't directly reusable because the DOM is very different. the default DOM serialization isn't stable yet. once it is, the CSS will be cleaned up considerably. patches welcome
Hannibal_Smith has quit [Quit: Leaving]
Algebr has quit [Ping timeout: 245 seconds]
yminsky has quit [Quit: yminsky]
oriba has joined #ocaml
divyansh_ has joined #ocaml
<Drup> companion_cube: except it's not
divyansh_ has quit [Read error: Connection reset by peer]
<adrien_znc> who cares?
<adrien_znc> then you sell your stock options and run away
<Drup> but we already have the equivalent of react.js in eliom anyway
<companion_cube> exactly, adrien_znc
ollehar has quit [Ping timeout: 240 seconds]
AlexRussia has quit [Ping timeout: 264 seconds]
axiles has quit [Ping timeout: 245 seconds]
travisbrady has quit [Quit: travisbrady]
* MercurialAlchemi sells off CCOpt and runs away
AlexRussia has joined #ocaml
<companion_cube> what's wrong? :)
octachron has quit [Quit: Leaving]
<dmbaturin> adrien_znc: What if stock option is None?
<adrien_znc> assert false
travisbrady has joined #ocaml
travisbrady has quit [Client Quit]
ghostpl has quit [Remote host closed the connection]
mort___ has quit [Quit: Leaving.]
rgrinberg has quit [Read error: Connection reset by peer]
rgrinberg1 has joined #ocaml
mort___ has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg1 has quit [Read error: Connection reset by peer]
jgjl has quit [Read error: Connection reset by peer]
rgrinberg1 has joined #ocaml
badkins has quit []
rgrinberg has quit [Ping timeout: 245 seconds]
rgrinberg2 has joined #ocaml
travisbrady has joined #ocaml
rgrinberg1 has quit [Read error: Connection reset by peer]
ghostpl has joined #ocaml
travisbrady has quit [Client Quit]
Thooms has joined #ocaml
axiles has joined #ocaml
MrScout has joined #ocaml
oriba has quit [Quit: Verlassend]
MrScout has quit [Remote host closed the connection]
ollehar has joined #ocaml
ggole has quit []
travisbrady has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
rgrinberg2 has quit [Ping timeout: 255 seconds]
ptc_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
travisbrady has quit [Quit: travisbrady]
travisbrady has joined #ocaml
yminsky has joined #ocaml
rgrinberg has joined #ocaml
matason has quit [Quit: leaving]
mort___ has quit [Ping timeout: 245 seconds]
domsj has quit [Ping timeout: 264 seconds]
tane has joined #ocaml
travisbrady has quit [Ping timeout: 255 seconds]
yomimono has quit [Ping timeout: 245 seconds]
q66 has joined #ocaml
rgrinberg1 has joined #ocaml
travisbrady has joined #ocaml
rgrinberg2 has joined #ocaml
jwatzman|work has joined #ocaml
inr has quit [Read error: Connection reset by peer]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
rgrinberg has quit [Ping timeout: 256 seconds]
MooseAndCaml has quit [Ping timeout: 246 seconds]
inr has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg1 has quit [Ping timeout: 265 seconds]
rgrinberg2 has quit [Ping timeout: 256 seconds]
bytbox has joined #ocaml
captain_furious has quit [Ping timeout: 264 seconds]
rgrinberg1 has joined #ocaml
rgrinberg has quit [Read error: Connection reset by peer]
captain_furious has joined #ocaml
ollehar has quit [Ping timeout: 256 seconds]
rgrinberg1 has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
vpm has joined #ocaml
rgrinberg1 has joined #ocaml
ollehar has joined #ocaml
thomasga has quit [Quit: Leaving.]
rgrinberg has quit [Read error: Connection reset by peer]
jonludlam has quit [Quit: Coyote finally caught me]
thomasga has joined #ocaml
milosn_ has joined #ocaml
chinglish2 has joined #ocaml
chinglish2 has quit [Client Quit]
milosn_ is now known as milosn
chinglish has quit [Ping timeout: 245 seconds]
rgrinberg has joined #ocaml
rgrinberg1 has quit [Read error: Connection reset by peer]
rgrinberg1 has joined #ocaml
MrScout has joined #ocaml
rgrinberg has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
rgrinberg1 has quit [Ping timeout: 256 seconds]
ghostpl has quit [Remote host closed the connection]
nicoo has joined #ocaml
nicoo has quit [Client Quit]
nicoo has joined #ocaml
ollehar has quit [Ping timeout: 244 seconds]
travisbrady has quit [Quit: travisbrady]
nicoo has quit [Client Quit]
travisbrady has joined #ocaml
yminsky has quit [Quit: yminsky]
yminsky has joined #ocaml
MooseAndCaml has joined #ocaml
nicoo_ has joined #ocaml
nicoo_ has joined #ocaml
nicoo_ has quit [Changing host]
Algebr has joined #ocaml
<MooseAndCaml> Hi, is anyone here familiar with this error: Warning 40: not_in was selected from type Boxoi.precomp_counts. It is not visible in the current scope, and will not be selected if the type becomes unknown.
nicoo_ is now known as nicoo
<Drup> it's a warning, not an error
<MooseAndCaml> Oof, yes sorry. Is it dire?
rgrinberg has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
travisbrady has quit [Read error: No route to host]
rgrinberg1 has joined #ocaml
<Drup> not very
<Drup> I actually disable this warning
<Drup> basically, you didn't gave a full path for a record field or a constructor (Foo, instead of Bar.Foo) in a pattern and the compiler guessed the right one
<Drup> and it's warning you about the fact that it had to guess
ontologiae has quit [Ping timeout: 252 seconds]
rgrinberg has quit [Ping timeout: 250 seconds]
<MooseAndCaml> I see, thanks for the detail
ptc has joined #ocaml
ptc is now known as Guest4078
dsheets has quit [Ping timeout: 245 seconds]
Kakadu has quit [Quit: Page closed]
travisbrady has joined #ocaml
paradoja has quit [Ping timeout: 245 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
leowzukw has joined #ocaml
badkins has joined #ocaml
rgrinberg1 has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
bytbox has quit [Ping timeout: 255 seconds]
rgrinberg1 has joined #ocaml
<Algebr> The docts for merlin say that it can understand syntax extensions for lwt, like lwt () =..., but I have PKG lwt in my .merlin and merlin still complains about lwt.
<jerith> Algebr: Maybe you need "EXT lwt" as well?
<jerith> I seem to remember something like that.
rand000 has joined #ocaml
<johnelse> Algebr: also you might need PKG lwt.syntax
rgrinberg has quit [Ping timeout: 255 seconds]
ollehar has joined #ocaml
yminsky has quit [Quit: yminsky]
<Algebr> Fantastic, I added EXT lwt and :Use lwt, now it works.
<companion_cube> if you like cutting edge, you can also try lwt.ppx
<Drup> lwt's ppx is not cutting edge anymore
<mrvn> What's cutting edge? Written yesterday?
<jerith> Written tomorrow. ^.^
<companion_cube> written yesterday on the last ocaml+pr<nnn> switch
ollehar has quit [Ping timeout: 250 seconds]
_andre has quit [Quit: leaving]
<nicoo> companion_cube: Written last night on a switch that merges several PRs :t
<nicoo> :P*
tristero has quit [Remote host closed the connection]
badon has quit [Ping timeout: 256 seconds]
Cope has joined #ocaml
Cope has left #ocaml [#ocaml]
MooseAndCaml has quit [Ping timeout: 246 seconds]
lnich has quit [Ping timeout: 246 seconds]
tristero has joined #ocaml
yminsky has joined #ocaml
baz_ has joined #ocaml
leowzukw has quit [Ping timeout: 246 seconds]
leowzukw has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 250 seconds]
yminsky has quit [Quit: yminsky]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
yminsky has joined #ocaml
ollehar has joined #ocaml
MercurialAlchemi has joined #ocaml
Kakadu has joined #ocaml
rgrinberg1 has quit [Ping timeout: 256 seconds]
rand000 has quit [Ping timeout: 245 seconds]
milosn has quit [Read error: Connection reset by peer]
MercurialAlchemi has quit [Ping timeout: 246 seconds]
MercurialAlchemi has joined #ocaml
thomasga has quit [Ping timeout: 265 seconds]
milosn has joined #ocaml
domsj has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
iorivur has quit [Ping timeout: 245 seconds]
iorivur has joined #ocaml
Haudegen has joined #ocaml
bytbox has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
iorivur has quit [Ping timeout: 245 seconds]
madroach has quit [Ping timeout: 264 seconds]
iorivur has joined #ocaml
MercurialAlchemi has quit [Remote host closed the connection]
leowzukw has quit [Quit: Lost terminal]
MercurialAlchemi has joined #ocaml
madroach has joined #ocaml
manud has joined #ocaml
Thooms has joined #ocaml
ollehar has quit [Quit: ollehar]
thomasga has joined #ocaml
travisbrady has quit [Quit: travisbrady]
rand000 has joined #ocaml
cojy_ has quit [Ping timeout: 252 seconds]
msch has quit [Ping timeout: 265 seconds]
lambdahands has quit [Ping timeout: 252 seconds]
Sorella has quit [Read error: Connection reset by peer]
Thooms has quit [Quit: WeeChat 1.0.1]
iorivur has quit [Ping timeout: 245 seconds]
rfv has quit [Ping timeout: 252 seconds]
Thooms has joined #ocaml
dario_ has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
divyanshu has quit [Ping timeout: 265 seconds]
lambdahands has joined #ocaml
Sorella has joined #ocaml
msch has joined #ocaml
cojy_ has joined #ocaml
rfv has joined #ocaml
divyanshu has joined #ocaml
iorivur has joined #ocaml
ontologiae has joined #ocaml
dsheets has joined #ocaml
ontologiae has quit [Ping timeout: 252 seconds]
Guest4078 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Algebr> Is Misc a wart of the standard library?
ptc has joined #ocaml
lnich has joined #ocaml
ptc is now known as Guest55246
<adrien> Algebr: Misc is not in the standard librar
<adrien> y
<adrien> I know of one in compiler-libs though
Thooms has quit [Read error: No route to host]
Thooms has joined #ocaml
claudiuc has joined #ocaml
dav has quit [Ping timeout: 246 seconds]
dav has joined #ocaml
Hannibal_Smith has joined #ocaml
ghostpl has joined #ocaml
baz_ has quit [Quit: baz_]
moei has quit [Quit: Leaving...]
thomasga has quit [Quit: Leaving.]
ghostpl has quit [Ping timeout: 264 seconds]
iorivur has quit [Ping timeout: 252 seconds]
vanila has joined #ocaml
yminsky has quit [Quit: yminsky]
myyst has joined #ocaml
myyst is now known as myst
<struk|work> companion_cube: read that blog about unboxed floats. I see the value. However, I made the buffer LIFO but I think you meant it to be FIFO
<companion_cube> oh, you changed that?
<companion_cube> yes, I thought FIFO
<companion_cube> but for your use-case it could still work? when you push, if it's full, you remove at front
<companion_cube> really, a double-ended queue
uris77 has joined #ocaml
travisbrady has joined #ocaml
<struk|work> companion_cube: yeah I can probably change it to FIFO assuming I have constant time access to either end of the queue (which I do)
badkins has quit []
<struk|work> companion_cube: in my use case, I'm not evening pulling from the queue anyhow, I am always peeking and expecting the elements to be wiped out by future pushes
<struk|work> *evening/even
<smondet> struk|work: are you comming to the ocaml meetup?
<struk|work> smondet: of course I signed up already right?
<companion_cube> struk|work: yeah, it's a deque actually
<companion_cube> so you can have FIFO and LIFO
<struk|work> smondet: oops guess I didn't sign up..am now...
<struk|work> smondet: re: the math lib list, most of those libs looked small and/or abandonware, but some looked promising.
<struk|work> companion_cube: it can be both FIFO and LIFO, but you agree that when the buffer saturates that the oldest elements are the first to be overwritten, right?
rand000 has quit [Quit: leaving]
<companion_cube> well, I'd like 2 versions eventually: a resizing one, and an erasing one
<companion_cube> basically, yeah, for the erasing behavior if you push on one side you erase on the other
<struk|work> companion_cube: ok I can do. so it's constant time access to read the buffer from either end, and two versions are supported, one is infinite size the other is bounded. when bounded, evict according to the end you just pushed on. Finally, functorize over an ARRAY signature to get unboxed floats. sound like the full plan?
<companion_cube> yeah
<companion_cube> that would be awesome
<companion_cube> the functor part is more to get to use bytes, right now
yminsky has joined #ocaml
gargaml has joined #ocaml
Kakadu has left #ocaml [#ocaml]
jonludlam has joined #ocaml
tane has quit [Quit: Verlassend]
Guest55246 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jonludlam has quit [Quit: Coyote finally caught me]
ptc has joined #ocaml
ptc is now known as Guest65177
Pepe_ has joined #ocaml
jonludlam has joined #ocaml
manud has quit [Quit: manud]
gargaml has quit [Quit: WeeChat 1.1.1]
Jefffrey has joined #ocaml
<Jefffrey> Hello
Guest65177 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Jefffrey> I was wondering, why is this failing: http://ideone.com/XsyCii?
<Jefffrey> From what I got `::` works like `:` in Haskell. But apparently `_::[]` matches any kind list with at least 1 element.
<Drup> it's because [1,2,3] is actually a list with one element
<Drup> you probably wanted to write [1; 2; 3]
<Drup> you are building a list of one triple
<Jefffrey> ouch
<Jefffrey> So silly.
<Jefffrey> Thanks.
<Drup> no problem :)
skinkitten has quit [Quit: Leaving]
<Drup> with insight, tuples without parens was not a fantastic idea
<Jefffrey> Ikr
<dmbaturin> I often make that mistake when I use more than one language in a short period of time. :)
<Jefffrey> So 1, 1, 1 is actually a Int * Int * Int?
<dmbaturin> Drup: Well, tuples without parens in pattern matching are quite handy.
<dmbaturin> Jefffrey: Yep.
<Jefffrey> And it's placed inside a list so it becomes a (int * int * int) list?
<smondet> yes
<dmbaturin> utop # [1,2,3] ;;
<dmbaturin> - : (int * int * int) list = [(1, 2, 3)]
<Drup> dmbaturin: I would tend to argue that we need multiple patterns matching instead.
<Jefffrey> I see
<dmbaturin> Drup: How would it look?
<Drup> that's a very good question :D
ptc has joined #ocaml
ptc is now known as Guest3408
Thooms has quit [Quit: WeeChat 1.0.1]
Submarine has quit [Quit: Leaving]
Simn has quit [Quit: Leaving]
Hannibal_Smith has quit [Quit: Leaving]
captain_furious has quit [Ping timeout: 244 seconds]