<Drup>
"Helium implements almost full Haskell, where the most notable difference is the absence of type classes."
<Drup>
ahah
ontologiae has quit [Ping timeout: 265 seconds]
travisbrady has quit [Quit: travisbrady]
manud has joined #ocaml
<Drup>
companion_cube: about ocamlscope+ocp-browser ... I don't even think it's very hard, since all the db building stuff is extractable from https://github.com/camlspotter/ocamloscope
<companion_cube>
wow, assemblage's code is *clean*
<Drup>
well, bunzli's code usually is
<Drup>
not very documented, but clean
<Drup>
(I'm talking about code documentation, not interface documentation)
<companion_cube>
the .ml, you mean
<companion_cube>
right
<companion_cube>
it's not only Bünzli's work, it's also thomasga
<Drup>
last version is mostly bunzli's
ontologiae has joined #ocaml
grb has quit [Remote host closed the connection]
grb has joined #ocaml
<Jefffrey>
Good night all
Jefffrey has quit [Quit: Leaving...]
Guest3408 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
The_Mad_Pirate has quit [Quit: Konversation terminated!]
jwatzman|work has quit [Quit: jwatzman|work]
RossJH has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
paolooo has joined #ocaml
bytbox has quit [Remote host closed the connection]
<whitequark>
I am not even going to look at the code for my own sanity
badkins has quit []
reem has joined #ocaml
MrScout has joined #ocaml
MrScout has quit [Remote host closed the connection]
mcc has quit [Quit: Leaving]
destrius has quit [Quit: leaving]
destrius has joined #ocaml
Axle has joined #ocaml
c74d has joined #ocaml
SomeDamnBody has quit [Ping timeout: 246 seconds]
brendan has quit [Ping timeout: 264 seconds]
sivoais has quit [Remote host closed the connection]
iorivur has joined #ocaml
Axle has quit [Quit: Leaving.]
c74d has quit [Remote host closed the connection]
iorivur has quit [Ping timeout: 245 seconds]
c74d has joined #ocaml
<vanila>
what's the fastest high level language?
reem has quit [Remote host closed the connection]
SomeDamnBody has joined #ocaml
<dmbaturin>
vanila: What is a high level language? How is absolute language speed measured?
<whitequark>
"fastest" is not a meaningful way to describe a language
<vanila>
if you wanted to write a program that runs very fast
reem has joined #ocaml
<dmbaturin>
What does it mean for a program to run very fast?
brendan has joined #ocaml
<vanila>
what the fuck
<dmbaturin>
Performance is not a scalar.
ygrek_ has quit [Ping timeout: 245 seconds]
sivoais has joined #ocaml
<dmbaturin>
Which one is faster, one that responds to events in guaranteed <0.1ms, or one that can process a 100k elements array in <1s (but its response latency varies from 10 to 100ms)?
<dmbaturin>
Which one is faster, one that can process a 100k array of floats in <1s but takes seconds to do the same for strings, or one that has it backwards?
<vanila>
yea youre right good point
domsj has quit [Ping timeout: 264 seconds]
keen__________60 has quit [Read error: Connection reset by peer]
keen__________60 has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
iorivur has joined #ocaml
nullcat has joined #ocaml
psy_ has quit [Ping timeout: 255 seconds]
ebzzry has joined #ocaml
ebzzry has quit [Remote host closed the connection]
chinglish has quit [Ping timeout: 264 seconds]
ebzzry has joined #ocaml
MercurialAlchemi has quit [Remote host closed the connection]
ygrek_ has joined #ocaml
MercurialAlchemi has joined #ocaml
iorivur has quit [Ping timeout: 246 seconds]
axiles has quit [Ping timeout: 245 seconds]
reem has quit [Remote host closed the connection]
iorivur has joined #ocaml
oscar_toro has quit [Ping timeout: 245 seconds]
baz_ has joined #ocaml
baz_ has quit [Client Quit]
axiles has joined #ocaml
reem has joined #ocaml
reem has quit [Remote host closed the connection]
axiles has quit [Ping timeout: 265 seconds]
axiles has joined #ocaml
oscar_toro has joined #ocaml
iorivur has quit [Ping timeout: 244 seconds]
AlexRussia has quit [Ping timeout: 246 seconds]
AlexRussia has joined #ocaml
vanila has quit [Quit: Leaving]
domsj has joined #ocaml
oriba has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
reem has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
reem has quit [Ping timeout: 245 seconds]
ollehar has joined #ocaml
Antoine59 has joined #ocaml
Haudegen has joined #ocaml
Simn has joined #ocaml
SomeDamnBody has quit [Ping timeout: 265 seconds]
matason has joined #ocaml
SomeDamnBody has joined #ocaml
iorivur has joined #ocaml
zpe has quit [Remote host closed the connection]
dav_ has joined #ocaml
dav has quit [Ping timeout: 240 seconds]
iorivur has quit [Ping timeout: 252 seconds]
AlexRussia has quit [Ping timeout: 264 seconds]
AlexRussia has joined #ocaml
<flux>
interesting. typerex is trying to sell commercial access to their memory profiler, I wonder if it really sells.
SomeDamnBody has quit [Ping timeout: 244 seconds]
<flux>
their free online tier is probably useful to many, and it is the need to hide the data that may bring commercial users..
<Unhammer>
pay with money or with data
SomeDamnBody has joined #ocaml
<flux>
the most annoying part from my point of view is that when you need it, it could be down, without recourse
wagle has joined #ocaml
cago has joined #ocaml
paradoja has joined #ocaml
<wagle>
comments cant have unterminated string literals? (looks terminated to me)
jonludlam has joined #ocaml
oriba has quit [Quit: oriba]
mort___ has joined #ocaml
reem has joined #ocaml
<AltGr>
wagle: yes, so that you can consistently comment out a block of code containing "*)"
Kakadu has joined #ocaml
<wagle>
the parsing unravels so that it doesnt blame the right spot
octachron has joined #ocaml
<wagle>
(trying to install prooftree with homebrew)
reem has quit [Ping timeout: 245 seconds]
zpe has joined #ocaml
<MercurialAlchemi>
flux: it's not so easy to combine OSS and a good business model
<MercurialAlchemi>
but people need to eat :)
<flux>
mercurialalchemi, yeah. I think I would be happy if the typerex folks got some food as well.
ghostpl has joined #ocaml
<MercurialAlchemi>
maybe we should think about a "global license" for developers
<flux>
?
<MercurialAlchemi>
"all you can eat" of OSS software against your contribution to a fund, money redistributed to developers based on usage
AltGr has left #ocaml [#ocaml]
<adrien_znc>
tell that to GNU
* MercurialAlchemi
eats a gnu
dav_ has quit [Read error: Connection reset by peer]
<MercurialAlchemi>
I'll point out the existence of helper functions further down
<Drup>
I don't really see any better
madroach has quit [Ping timeout: 264 seconds]
<MercurialAlchemi>
line 196 and below
<Drup>
they are still unsafe and still raise exceptions
<Drup>
it's not better
<Drup>
it's the same
<MercurialAlchemi>
I agree that the unsafety sucks
madroach has joined #ocaml
<Drup>
It's painfully trivial to define something safe given the structure of toml, it's a sum type with Tables
<Drup>
you don't even need type trickery for that
<Drup>
I remember trying to look at to.ml but didn't remember my opinion about it, well, at least now I do: the interface needs to be rewritten from scratch because it's completely useless at this point
<MercurialAlchemi>
you mean `Value | `Error?
<Drup>
I mean Bool of bool | List of value list | Table of value Table.t | ... and so on
<MercurialAlchemi>
well, we have that
<Drup>
why is it not expose ?
<Drup>
exposed*
<Drup>
Instead, we have this stupid unsafe cast functions
<MercurialAlchemi>
it used to be, in v1
<Drup>
pattern matching was overrated ? :D
<MercurialAlchemi>
well, I can understand want to abstract the type, with the toml format being in gestation
<MercurialAlchemi>
"wanting"
<Drup>
you can still expose a sum type
ghostpl has quit [Remote host closed the connection]
<Drup>
as a private thing
<Drup>
and you give a projection to
<Drup>
to it*
<Drup>
you can then dissociate your internal type from the "view" type
<MercurialAlchemi>
how does that help?
<Drup>
you still have pattern matching.
<Drup>
you are not consistently stupidely catching exceptions
<MercurialAlchemi>
but then you shoot yourself if you have nested tables
<Drup>
?
<Drup>
I don't see how
zpe has quit [Remote host closed the connection]
<MercurialAlchemi>
say you have val get : Toml.key -> YourSumType
zpe has joined #ocaml
<MercurialAlchemi>
Now, I have a nested table [foo.bar.baz]
<MercurialAlchemi>
I need to chain calls to 'get' in order to find a value in 'baz'
madroach has quit [Ping timeout: 264 seconds]
<MercurialAlchemi>
the current interface lets you do that with some pain (and exceptions)
<Drup>
or you project everything to your view type
<MercurialAlchemi>
a generic Toml.get forces you to pattern match every step of the way
<Drup>
(but in your case, a view type has no point, the sumtype is so trivial and is not going to change, except if toml itself changes)
<MercurialAlchemi>
but it's very possible toml changes
<MercurialAlchemi>
there is a strong chance that dates disappear in the next revision, for instance
zpe has quit [Ping timeout: 256 seconds]
<MercurialAlchemi>
what would be more interesting, IMHO, would be to avoid having to |> in the first place
<MercurialAlchemi>
"give me foo.bar.baz and I'll give you a result_or_error_or_missing value"
<MercurialAlchemi>
and toml_deriving as well
<Drup>
doesn't really help with the fact that the interface sucks
chinglish has joined #ocaml
madroach has joined #ocaml
gargaml has quit [Quit: WeeChat 1.1.1]
<MercurialAlchemi>
Drup: the exception stuff, which you strongly object to, is caused by the need for piping (I think?)
<Drup>
I argue that pattern matching is superior regardless
<Drup>
if you really want to do things like that
<Drup>
then use lenses
<companion_cube>
error monad!
<Drup>
(and an error monad)
octachron has quit [Quit: Leaving]
domsj` has quit [Ping timeout: 252 seconds]
<companion_cube>
pippijn: Drup tells me you've done some work on applicative parsers in OCaml?
<Drup>
on parser combinators*
<companion_cube>
does it make sense for other parsers?
<adek>
But seems like there is much more work involved to make it work under repl
<whitequark>
oh, so you're not using an FFI library
<whitequark>
no, it's simple.
<whitequark>
take a look at ocamlmklib
<whitequark>
generally, ocamlmklib bindfoo.ml bindfoo.c -lfoo should suffice
<whitequark>
then you could just load the corresponding .cma
<adek>
That would be awesome!
dav has quit [Ping timeout: 250 seconds]
robbert` has joined #ocaml
dav has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
regnat has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
travisbrady has quit [Quit: travisbrady]
bytbox has joined #ocaml
<adrien>
adek: and the page you linked to explains how to use ocamlmklib
madroach has joined #ocaml
<adek>
adrien: yeah, now I see it.
travisbrady has joined #ocaml
The_Mad_Pirate has quit [Excess Flood]
breadmonster has joined #ocaml
The_Mad_Pirate has joined #ocaml
<breadmonster>
How do I install tuareg mode?
<breadmonster>
Just copy tuareg to some directory and edit my .emacs file?
<Drup>
yeah
<Drup>
or don't copy, just edit
<Drup>
(assuming "opam install tuareg")
<breadmonster>
Drup: Okay, I'll just run the command.
dsheets has quit [Ping timeout: 250 seconds]
reem has joined #ocaml
<adek>
It was easy indeed. Thanks guys!
Kakadu has quit [Quit: Page closed]
<dmbaturin>
What is the usual approach to unit testing module internals not exposed in the signature? Create another signature that makes them visible?
<mrvn>
expose a test function
The_Mad_Pirate has quit [Excess Flood]
<dmbaturin>
mrvn: Could you elaborate?
The_Mad_Pirate has joined #ocaml
<Drup>
no, don't expose a test function
<Drup>
use qtest
<mrvn>
val test : unit -> unit
<Drup>
ask companion_cube
<Drup>
and don't ever expsoe test functions, it's stupid
<mrvn>
Drup: how do you then call the tests?
<Drup>
look at how qtest is done, it should explain itself
<dmbaturin>
I'm using oUnit, by the way, so test code simply uses the module.
<Drup>
dmbaturin: also, I would tend to argue that you should test exposed things, but that's my personal opinion
<dmbaturin>
Drup: Will look at qtest. Hhm, that is, don't test things that are not exposed?
<Drup>
or rather, test things only through expose functions
<Drup>
exposed*
<mrvn>
dmbaturin: internal stuff should be tested by the exposed functions already
Submarine has quit [Quit: Leaving]
reem has quit [Remote host closed the connection]
reem has joined #ocaml
reem has quit [Remote host closed the connection]
<breadmonster>
Drup: How do I find where utop is located?
<dmbaturin>
breadmonster: which utop ? :)
<breadmonster>
dmbaturin: Well, I installed utop on my PC.
kbp has quit [Ping timeout: 246 seconds]
<breadmonster>
Now I can't seem to find where it's located, to run it from tuareg
<dmbaturin>
Or you are on a non-POSIX OS?
<breadmonster>
Because I don't really like the ocaml toplevel.
<breadmonster>
Yup, Ubuntu 14.04
<dmbaturin>
Ubuntu is not yet _that_ non-POSIX. :)
<Drup>
breadmonster: you want to use it from emacs ?
<breadmonster>
Drup: Yup.
<dmbaturin>
$ which utop
<dmbaturin>
~/.opam/4.01.0/bin/utop
<breadmonster>
dmbaturin: Oh sorry, my bad, yeah it's POSIX.
<dmbaturin>
opam does add its dirs to the $PATH
<Drup>
hum, look at utop information, you need to do some emacs thingy
<breadmonster>
dmbaturin: Okay aewsome.
<breadmonster>
Got it.
<dmbaturin>
mrvn: Ah, well, that's a valid point. Sometimes I think testing internal stuff can help narrow it down more easily.
dsheets has joined #ocaml
<dmbaturin>
On the other hand testing internal stuff also makes one update tests every time it changes, which I find annoying.
madroach has quit [Ping timeout: 264 seconds]
kbp has joined #ocaml
madroach has joined #ocaml
<mrvn>
sure. But then you are testing something that might never happen in real use.
reem has joined #ocaml
uris77 has quit [Quit: leaving]
yomimono has quit [Ping timeout: 252 seconds]
pyon is now known as ungrateful-pyon
tani has quit [Quit: Verlassend]
ggole has quit [Ping timeout: 246 seconds]
skinkitten has quit [Ping timeout: 265 seconds]
oscar_toro has quit [Quit: oscar_toro]
skinkitten has joined #ocaml
axiles has joined #ocaml
kbp has quit [Ping timeout: 245 seconds]
reem has quit [Remote host closed the connection]
kbp has joined #ocaml
bytbox has quit [Ping timeout: 240 seconds]
NSA360 has joined #ocaml
_andre has quit [Quit: leaving]
gargaml has joined #ocaml
ebzzry has joined #ocaml
skinkitten has quit [Ping timeout: 264 seconds]
NSA360 has quit [Quit: Leaving]
Submarine has joined #ocaml
Submarine has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
breadmonster has quit [Ping timeout: 246 seconds]
iorivur has quit [Ping timeout: 256 seconds]
kbp has quit [Ping timeout: 244 seconds]
travisbrady has quit [Quit: travisbrady]
skinkitten has joined #ocaml
oscar_toro has joined #ocaml
oscar_toro1 has joined #ocaml
travisbrady has joined #ocaml
leowzukw has quit [Quit: Lost terminal]
Guest46629 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ptc has joined #ocaml
ptc is now known as Guest62036
jwatzman|work has joined #ocaml
travisbrady has quit [Quit: travisbrady]
Haudegen has quit [Ping timeout: 264 seconds]
kbp has joined #ocaml
Haudegen has joined #ocaml
travisbrady has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
kandu has quit [Remote host closed the connection]
swgillespie has joined #ocaml
tane has joined #ocaml
robink has quit [Read error: Connection reset by peer]
ygrek_ has joined #ocaml
ollehar1 has quit [Ping timeout: 245 seconds]
araujo has quit [Quit: Leaving]
manud has joined #ocaml
Submarine has quit [Remote host closed the connection]
jneen|afk is now known as jneen
manud has quit [Quit: manud]
reem has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
ollehar1 has joined #ocaml
ygrek_ has quit [Ping timeout: 245 seconds]
dav has quit [Ping timeout: 245 seconds]
reem has quit [Remote host closed the connection]
reem has joined #ocaml
dav has joined #ocaml
ollehar1 has quit [Quit: ollehar1]
Hannibal_Smith has joined #ocaml
zpe has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
kbp has quit [Ping timeout: 245 seconds]
oscar_toro has quit [Quit: oscar_toro]
Haudegen has joined #ocaml
badkins has quit [Read error: Connection reset by peer]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
oscar_toro1 has quit [Ping timeout: 240 seconds]
swgillespie has joined #ocaml
ungrateful-pyon is now known as recursive-pyon
rgrinberg has quit [Quit: Leaving.]
kbp has joined #ocaml
rgrinberg has joined #ocaml
adek has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
badkins has joined #ocaml
adek has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
gargaml has quit [Quit: WeeChat 1.1.1]
ontologiae has joined #ocaml
vanila has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 255 seconds]
mcclurmc has quit [Remote host closed the connection]
bytbox has joined #ocaml
kbp has quit [Remote host closed the connection]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
zpe has quit [Ping timeout: 264 seconds]
robink has joined #ocaml
Hannibal_Smith has quit [Quit: Leaving]
jyc has quit [Ping timeout: 245 seconds]
profan has joined #ocaml
Sorella has quit [Quit: Connection closed for inactivity]
jyc has joined #ocaml
dav has quit [Ping timeout: 252 seconds]
dav has joined #ocaml
mal`` has quit [Ping timeout: 245 seconds]
mal`` has joined #ocaml
AltGr has joined #ocaml
bytbox has quit [Remote host closed the connection]