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
yminsky has joined #ocaml
yminsky has quit [Quit: yminsky]
Algebr has quit [Ping timeout: 250 seconds]
mfp has quit [Ping timeout: 246 seconds]
claudiuc_ has joined #ocaml
mfp has joined #ocaml
claudiuc has quit [Ping timeout: 265 seconds]
madroach has quit [Ping timeout: 264 seconds]
jao has quit [Ping timeout: 255 seconds]
madroach has joined #ocaml
Algebr has joined #ocaml
idem-pyon-tent is now known as pyon
grb has quit [Remote host closed the connection]
bjorkintosh has quit [Ping timeout: 265 seconds]
<Algebr> forgetting a ; really makes for weird syntax errors.
bjorkintosh has joined #ocaml
bjorkintosh has quit [Max SendQ exceeded]
Algebr has quit [Remote host closed the connection]
axiles has quit [Ping timeout: 256 seconds]
ygrek has joined #ocaml
Pepe__ has joined #ocaml
mlen has quit [Ping timeout: 264 seconds]
Pepe_ has quit [Ping timeout: 256 seconds]
mlen has joined #ocaml
ghostpl has quit [*.net *.split]
frawgie has quit [*.net *.split]
esden has quit [*.net *.split]
gperetin has quit [*.net *.split]
abbe has quit [*.net *.split]
cartwright has quit [*.net *.split]
girrig has quit [*.net *.split]
lordkryss has quit [Quit: Connection closed for inactivity]
ghostpl has joined #ocaml
frawgie has joined #ocaml
esden has joined #ocaml
gperetin has joined #ocaml
girrig has joined #ocaml
abbe has joined #ocaml
cartwright has joined #ocaml
cartwright has quit [Max SendQ exceeded]
ghostpl has quit [Max SendQ exceeded]
ghostpl has joined #ocaml
cartwright has joined #ocaml
shinnya has quit [*.net *.split]
n0v has quit [*.net *.split]
tokenrove has quit [*.net *.split]
wagle has quit [*.net *.split]
asmanur_ has quit [*.net *.split]
kerneis_ has quit [*.net *.split]
hcarty has quit [*.net *.split]
cdidd has quit [*.net *.split]
q66 has quit [*.net *.split]
psy_ has quit [*.net *.split]
contempt has quit [*.net *.split]
Khady has quit [*.net *.split]
cross has quit [*.net *.split]
dmiles_afk has quit [*.net *.split]
testcocoon has quit [*.net *.split]
fedjo has quit [*.net *.split]
fyolnish has quit [*.net *.split]
flasheater has quit [*.net *.split]
ivan\ has quit [*.net *.split]
dbrumley has quit [*.net *.split]
companion_cube has quit [*.net *.split]
stomp has quit [*.net *.split]
hellome has quit [*.net *.split]
relrod has quit [*.net *.split]
ousado has quit [*.net *.split]
gargawel has quit [*.net *.split]
binarybi1me has quit [*.net *.split]
gustav___ has quit [*.net *.split]
SIGILL has quit [*.net *.split]
ruoso has quit [*.net *.split]
dinosaure2 has quit [*.net *.split]
xorpse has quit [*.net *.split]
CissWit has quit [*.net *.split]
deavid has quit [*.net *.split]
ghostpl_ has quit [Remote host closed the connection]
cdidd has joined #ocaml
shinnya has joined #ocaml
q66 has joined #ocaml
psy_ has joined #ocaml
n0v has joined #ocaml
companion_cube has joined #ocaml
relrod has joined #ocaml
ousado has joined #ocaml
fyolnish has joined #ocaml
flasheater has joined #ocaml
tokenrove has joined #ocaml
gustav___ has joined #ocaml
fedjo has joined #ocaml
cross has joined #ocaml
deavid has joined #ocaml
dmiles_afk has joined #ocaml
SIGILL has joined #ocaml
CissWit has joined #ocaml
kerneis_ has joined #ocaml
hcarty has joined #ocaml
dbrumley has joined #ocaml
contempt has joined #ocaml
gargawel has joined #ocaml
ruoso has joined #ocaml
stomp has joined #ocaml
testcocoon has joined #ocaml
ivan\ has joined #ocaml
wagle has joined #ocaml
hellome has joined #ocaml
Khady has joined #ocaml
xorpse has joined #ocaml
binarybi1me has joined #ocaml
asmanur_ has joined #ocaml
dinosaure2 has joined #ocaml
shinnya has quit [*.net *.split]
n0v has quit [*.net *.split]
tokenrove has quit [*.net *.split]
wagle has quit [*.net *.split]
asmanur_ has quit [*.net *.split]
kerneis_ has quit [*.net *.split]
hcarty has quit [*.net *.split]
cdidd has quit [*.net *.split]
q66 has quit [*.net *.split]
psy_ has quit [*.net *.split]
contempt has quit [*.net *.split]
Khady has quit [*.net *.split]
cross has quit [*.net *.split]
dmiles_afk has quit [*.net *.split]
testcocoon has quit [*.net *.split]
fedjo has quit [*.net *.split]
fyolnish has quit [*.net *.split]
flasheater has quit [*.net *.split]
ivan\ has quit [*.net *.split]
dbrumley has quit [*.net *.split]
companion_cube has quit [*.net *.split]
stomp has quit [*.net *.split]
hellome has quit [*.net *.split]
relrod has quit [*.net *.split]
ousado has quit [*.net *.split]
gargawel has quit [*.net *.split]
binarybi1me has quit [*.net *.split]
gustav___ has quit [*.net *.split]
SIGILL has quit [*.net *.split]
ruoso has quit [*.net *.split]
dinosaure2 has quit [*.net *.split]
xorpse has quit [*.net *.split]
CissWit has quit [*.net *.split]
deavid has quit [*.net *.split]
pyon has quit [*.net *.split]
dsheets has quit [*.net *.split]
swgillespie has quit [*.net *.split]
The_Mad_Pirate has quit [*.net *.split]
jbalint has quit [*.net *.split]
johnf has quit [*.net *.split]
cdidd has joined #ocaml
shinnya has joined #ocaml
q66 has joined #ocaml
psy_ has joined #ocaml
contempt has joined #ocaml
fyolnish has joined #ocaml
n0v has joined #ocaml
Khady has joined #ocaml
cross has joined #ocaml
SIGILL has joined #ocaml
dmiles_afk has joined #ocaml
testcocoon has joined #ocaml
fedjo has joined #ocaml
flasheater has joined #ocaml
tokenrove has joined #ocaml
wagle has joined #ocaml
asmanur_ has joined #ocaml
kerneis_ has joined #ocaml
ivan\ has joined #ocaml
hcarty has joined #ocaml
dbrumley has joined #ocaml
companion_cube has joined #ocaml
stomp has joined #ocaml
hellome has joined #ocaml
relrod has joined #ocaml
ousado has joined #ocaml
gargawel has joined #ocaml
binarybi1me has joined #ocaml
gustav___ has joined #ocaml
ruoso has joined #ocaml
dinosaure2 has joined #ocaml
xorpse has joined #ocaml
CissWit has joined #ocaml
deavid has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
srcerer has quit [Ping timeout: 252 seconds]
The_Mad_Pirate has joined #ocaml
smtb has joined #ocaml
<smtb> In the Cohttp library, what does it mean to "consume" the body of the return? Is there a special function to do this, or does this just mean to use the return value?
destrius has joined #ocaml
pamexx has joined #ocaml
idem-pyon-tent has joined #ocaml
wagle has quit [Max SendQ exceeded]
wagle has joined #ocaml
malc_ has left #ocaml [#ocaml]
reem has quit [Remote host closed the connection]
darkf has joined #ocaml
reem has joined #ocaml
hellome has quit [Max SendQ exceeded]
idem-pyon-tent is now known as Guest20377
reem has quit [Remote host closed the connection]
pamexx has quit [Quit: Page closed]
dsheets has joined #ocaml
swgillespie has joined #ocaml
johnf has joined #ocaml
jbalint has joined #ocaml
smtb has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
mcclurmc has quit [Remote host closed the connection]
mcclurmc_ has joined #ocaml
dsheets has quit [*.net *.split]
swgillespie has quit [*.net *.split]
jbalint has quit [*.net *.split]
johnf has quit [*.net *.split]
shinnya has quit [Ping timeout: 256 seconds]
myst has quit [Read error: Connection reset by peer]
idem-pyo1 has joined #ocaml
idem-pyo1 is now known as idem-pyon-tent
tnguyen has joined #ocaml
dsheets has joined #ocaml
swgillespie has joined #ocaml
johnf has joined #ocaml
jbalint has joined #ocaml
Guest20377 has quit [Changing host]
Guest20377 has joined #ocaml
Guest20377 has quit [Quit: I'm sorry but... I don't have any interest in three-dimensional girls.]
AlexRussia has quit [Ping timeout: 252 seconds]
kapil___ has joined #ocaml
grb has joined #ocaml
AlexRussia has joined #ocaml
q66 has quit [Quit: Leaving]
bjorkintosh has joined #ocaml
MrScout has quit [Ping timeout: 256 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
yminsky has joined #ocaml
badkins_ has joined #ocaml
Axle has joined #ocaml
girrig has quit [Ping timeout: 276 seconds]
girrig has joined #ocaml
badkins has quit [Disconnected by services]
badkins_ is now known as badkins
jlouis has quit [Ping timeout: 245 seconds]
<Axle> I'm having trouble using cohttp in a program. The build is running: "ocamlfind ocamlopt -linkpkg -package uri -package lwt -package yojson -package cohttp src/types.cmx src/dynamoDB.cmx -o src/dynamoDB.native" and then erroring out with "File "_none_", line 1:
<Axle> Error: No implementations provided for the following modules:
<Axle> Cohttp_lwt_unix referenced from src/dynamoDB.cmx
<Axle> Cohttp_lwt_body referenced from src/dynamoDB.cmx
<Axle> Lwt_main referenced from src/dynamoDB.cmx
<Axle> Lwt_io referenced from src/dynamoDB.cmx"
jlouis has joined #ocaml
<Axle> any ideas for what I'm doing wrong
<smondet> Axle: I think you also need the cohttp.lwt package
<smondet> (and then don't need cohttp and lwt which will be tracked by dependencyfs0
<smondet> )
<Axle> sweet
<Axle> that did it, thank you
swgillespie has joined #ocaml
ghostpl_ has joined #ocaml
ygrek has joined #ocaml
struktured has quit [Ping timeout: 265 seconds]
ghostpl_ has quit [Ping timeout: 246 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
struktured has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
grb has quit [Remote host closed the connection]
uris77 has joined #ocaml
yminsky has quit [Quit: yminsky]
manud has quit [Ping timeout: 245 seconds]
reem has joined #ocaml
reem has quit [Remote host closed the connection]
jabesed has joined #ocaml
jabesed has quit [Client Quit]
ygrek has quit [Remote host closed the connection]
ygrek has joined #ocaml
uris77 has quit [Quit: leaving]
badkins has quit [Remote host closed the connection]
reem has joined #ocaml
reem has quit [Remote host closed the connection]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
idem-pyon-tent is now known as substitu-pyon
reem has joined #ocaml
ghostpl_ has joined #ocaml
ghostpl_ has quit [Ping timeout: 265 seconds]
badon_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
milosn has quit [Ping timeout: 265 seconds]
milosn has joined #ocaml
monoprotic is now known as shmaxux
shmaxux is now known as monoprotic
swgillespie has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
avsm has joined #ocaml
Axle has quit [Quit: Leaving.]
ygrek has quit [Ping timeout: 240 seconds]
badkins has joined #ocaml
badkins has quit [Ping timeout: 240 seconds]
aviraldg has joined #ocaml
aviraldg has quit [Max SendQ exceeded]
aviraldg has joined #ocaml
aviraldg has quit [Max SendQ exceeded]
aviraldg has joined #ocaml
aviraldg has quit [Read error: Connection reset by peer]
[aviraldg] has joined #ocaml
[aviraldg] has quit [Max SendQ exceeded]
aviraldg has joined #ocaml
aviraldg has quit [Max SendQ exceeded]
antkong has quit [Quit: antkong]
psy_ has quit [Ping timeout: 246 seconds]
substitu-pyon is now known as basement-pyon
nullcat has joined #ocaml
ygrek has joined #ocaml
ghostpl_ has joined #ocaml
antkong_ has joined #ocaml
avsm has quit [Quit: Leaving.]
ghostpl_ has quit [Ping timeout: 272 seconds]
antkong_ has quit [Read error: Connection reset by peer]
larhat has joined #ocaml
ebzzry has quit [Ping timeout: 256 seconds]
reem has quit [Remote host closed the connection]
Haudegen has quit [Ping timeout: 250 seconds]
reem has joined #ocaml
avsm has joined #ocaml
Haudegen has joined #ocaml
claudiuc_ has quit [Ping timeout: 265 seconds]
MasseR has quit [Ping timeout: 244 seconds]
ghostpl_ has joined #ocaml
avsm has quit [Quit: Leaving.]
ghostpl_ has quit [Ping timeout: 265 seconds]
oscar_toro has joined #ocaml
freling has quit [Disconnected by services]
prsn has quit [Ping timeout: 252 seconds]
freling1 has joined #ocaml
prsn has joined #ocaml
freling has joined #ocaml
claudiuc has joined #ocaml
huza has joined #ocaml
MasseR has joined #ocaml
psy_ has joined #ocaml
hekmek has joined #ocaml
keen__________73 has joined #ocaml
keen__________72 has quit [Ping timeout: 256 seconds]
hekmek has left #ocaml [#ocaml]
matason has joined #ocaml
ia0 has quit [Quit: leaving]
ia0 has joined #ocaml
The_Mad_Pirate has quit [Ping timeout: 250 seconds]
jgjl has joined #ocaml
mengu has joined #ocaml
Simn has joined #ocaml
ghostpl_ has joined #ocaml
ia0 has quit [Quit: leaving]
ia0 has joined #ocaml
reem has quit [Remote host closed the connection]
ghostpl_ has quit [Ping timeout: 244 seconds]
The_Mad_Pirate has joined #ocaml
reem has joined #ocaml
axiles has joined #ocaml
ggole has joined #ocaml
zpe has joined #ocaml
huza has quit [Ping timeout: 264 seconds]
bjorkintosh has quit [Ping timeout: 252 seconds]
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
larhat has quit [Quit: Leaving.]
myyst has joined #ocaml
reem has quit [Remote host closed the connection]
myyst is now known as myst
avsm has joined #ocaml
reem has joined #ocaml
ghostpl_ has joined #ocaml
destrius has quit [Ping timeout: 272 seconds]
badkins has joined #ocaml
destrius has joined #ocaml
jgjl has quit [Ping timeout: 264 seconds]
badkins has quit [Ping timeout: 250 seconds]
Kakadu has joined #ocaml
moei has quit [Ping timeout: 272 seconds]
Haudegen has quit [Ping timeout: 240 seconds]
moei has joined #ocaml
nopf has quit [Ping timeout: 246 seconds]
nopf has joined #ocaml
Haudegen has joined #ocaml
mort___ has joined #ocaml
mengu has quit [Remote host closed the connection]
freling has quit [Quit: Leaving.]
freling has joined #ocaml
tane has joined #ocaml
larhat has joined #ocaml
bjorkintosh has joined #ocaml
govg has quit [Read error: Connection reset by peer]
govg has joined #ocaml
_andre has joined #ocaml
Haudegen has quit [Ping timeout: 246 seconds]
mengu has joined #ocaml
mengu has joined #ocaml
ygrek has quit [Ping timeout: 256 seconds]
aubergines has joined #ocaml
mengu has quit [Ping timeout: 244 seconds]
Haudegen has joined #ocaml
thomasga has joined #ocaml
reem has quit [Remote host closed the connection]
thomasga has quit [Quit: Leaving.]
freling has quit [Quit: Leaving.]
thomasga has joined #ocaml
freling has joined #ocaml
paradoja has joined #ocaml
dsheets has quit [Ping timeout: 264 seconds]
thomasga has quit [Client Quit]
oscar_toro has quit [Ping timeout: 265 seconds]
mengu has joined #ocaml
freling has quit [Quit: Leaving.]
dsheets has joined #ocaml
Unhammer has quit [Read error: Connection reset by peer]
lordkryss has joined #ocaml
captain_furious has joined #ocaml
freling has joined #ocaml
ygrek has joined #ocaml
paolooo has joined #ocaml
psy_ has quit [Remote host closed the connection]
ebzzry has joined #ocaml
ptc has joined #ocaml
ptc is now known as Guest11808
Guest11808 has quit [Client Quit]
octachron has joined #ocaml
oscar_toro has joined #ocaml
Algebr has joined #ocaml
<ggole> It's true, even in the toplevel observability is pretty garbage
<MercurialAlchemi> sadly yes
<MercurialAlchemi> runtime instrumentation in general is in a bad state
<Drup> I wonder if runtime types would help
ggole has quit [Ping timeout: 250 seconds]
<MercurialAlchemi> you mean non-erasure?
<Algebr> Whoa, job offer on ocsigen
<Drup> yeah
<Drup> MercurialAlchemi: I mean the runtime type proposal
<MercurialAlchemi> Drup: I haven't seen that...
<Drup> let me try to find that
<Drup> companion_cube, adrien, hnrgrgr: do you have a link at hand ?
<MercurialAlchemi> sounds like something to allow runtime introspection
<Drup> yes
<Drup> basically, it's an implementation of TypeOf for OCaml
<whitequark> something like DWARF for OCaml would be interesting
<whitequark> actually you could probably just use DWARF
<mrvn> that wouldn't help with polymorphic values
<whitequark> (personally I like the idea of using ELF as bytecode container, too)
<Drup> MercurialAlchemi: iirc, lexifi already has a version of that in their own compiler
<MercurialAlchemi> they have their own compilers?
<Drup> yes
<Drup> Mlfi
<MercurialAlchemi> and then there is the implicit fork, and the multicore version
<Drup> you have the right to do a commercial fork if you are part of the OCaml consortium
<MercurialAlchemi> right
<MercurialAlchemi> the proposal looks interesting
<Drup> (note, RTT is not new)
<MercurialAlchemi> I wonder what the perf impact is
<flux> is it something that's intended to be used always or just for debug builds?
<Drup> I know people who want to use it to do deriving-like things without metaprog, so, always ? :p
ggole has joined #ocaml
octachron has quit [Ping timeout: 256 seconds]
<Algebr> Watching an ocaml video, its okay to now match on exceptions as well?
<Drup> yep !
<Drup> match .. with Foo -> ... | exception Bla -> ...
<Drup> It's great
<tane> oh ok
<Algebr> very nice
<tane> what's the body the exception could be raised from?
thomasga has joined #ocaml
<Drup> tane: only the matched expression
<thizanne> it's ..
<tane> ok, thanks
<Drup> the branches are not in a the handler
uffinBitP has joined #ocaml
dsheets has quit [Ping timeout: 256 seconds]
mort___1 has joined #ocaml
mort___ has quit [Ping timeout: 250 seconds]
uffinBitP has quit [Ping timeout: 250 seconds]
octachron has joined #ocaml
BitPuffin has joined #ocaml
paolooo has quit [Quit: Page closed]
reem has joined #ocaml
reem has quit [Ping timeout: 245 seconds]
dsheets has joined #ocaml
uris77 has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
fedjo has quit [Quit: Leaving.]
paolooo has joined #ocaml
fedjo has joined #ocaml
dsheets_ has joined #ocaml
dsheets has quit [Ping timeout: 252 seconds]
struktured has quit [Ping timeout: 265 seconds]
uris77 has quit [Quit: leaving]
yomimono has joined #ocaml
sdegutis has joined #ocaml
<sdegutis> Is js_of_ocaml a strict semantic superset of OCaml?
<Drup> not exactly, no
<Drup> there are some changes in the semantic of OCaml, the memory layout is mostly the same, but some Obj trick might not work. Integers are 32 bits
<Drup> also, the performance profile is vasly different
<mrvn> 31bit
<Drup> No, 32.
<Algebr> I keep forgetting, how to split a string across lines?
<sdegutis> I don't care about performance differences.
<sdegutis> Algebr: unlines maybe?
<Drup> mrvn: please read before answering
<sdegutis> Algebr: I don't know OCaml sorry.
<Drup> Algebr: "\"
<mrvn> Drup: if it's realy 32bit then Obj won't work at all because it needs the tag bits.
<mrvn> other than Obj.magic that is
<Drup> *sight*
<mrvn> Drup: hey, I'm agreeing with you
<sdegutis> Oooh, he meant *sigh*
<sdegutis> /unconfused
<Drup> hum
<Drup> yes
<Algebr> Ah, got it thanks Drup
<Drup> mrvn: the tag is also present, just not encoded the same way ...
<Drup> No, your knowledge of OCaml's memory layout don't apply to js_of_ocaml directly, please don't assume it does.
mort___1 has quit [Quit: Leaving.]
mort___ has joined #ocaml
psy_ has joined #ocaml
<Drup> sdegutis: to finish answering your question: the main part is unchanged, some details can be different.
mort___ has quit [Client Quit]
mort___ has joined #ocaml
<sdegutis> Drup: thanks
WraithM has joined #ocaml
WraithM has quit [Client Quit]
shinnya has joined #ocaml
<smondet> sdegutis: to complete what Drup said: any pure OCaml library should work with jsoo (pure = "no Obj module + no C binding")
badkins has joined #ocaml
darkf has quit [Quit: gn]
<Algebr> Is there a way to do something like for i = 0, j = 0 to ...
<flux> two for-loops.
<Algebr> yea, was hoping there was a short cut to not do that, k.
<sdegutis> smondet: woot
<flux> well, you can implement a for2
<flux> and call it like for2 (0, 10) (0, 10) (fun i j -> .. ) ;-)
uris77 has joined #ocaml
<Algebr> Ha nice. Is the author of lambda-term around? Was it you flux or def?
captain_furious has quit [Ping timeout: 264 seconds]
<def`> It is Jeremie Dimino (diml on github)
<whitequark> he's responsive to GH issues
<Algebr> ah, just had some drawing questions rather than actual issues.
<Drup> ask away
paolooo has quit [Ping timeout: 246 seconds]
<sdegutis> flux: surely there's something built-in that makes that possible?
<Drup> sdegutis: no
<sdegutis> ok
<Drup> well, actually, yes, recursion :D
<Drup> fabulous built in, very useful
<Drup> :]
<def`> :)
<sdegutis> Isn't there a function to create a permutation of two lists such that you could do that by enumerating the new list?
<Algebr> Drup: I'm unclear about drawing and contexts. Say you want to draw something, like a string. All the drawing functions take a context. Is the context like relative of the widget, like its own matrix of points, or is it absolute with the entire terminal. Also, for example draw_string takes a row and column, presumably those have to be within the matrix of the context or are they absolute numbers?
<Drup> a context is relative to the widget
<Drup> it's the matrix of points of the widget
<flux> sdegutis, in Batteries there are numerous ways to construct streams
<sdegutis> ok
<Drup> in case of the root widget, it's the whole window, obviously
<Algebr> So how do I get an arbtirary context out of an arbitrary widget? Here's my issue, I have one widget that on an event I want to draw a string in a different widget.
<Drup> Algebr: row and column must be relative to the context you are giving
<Drup> Algebr: you overwrite the #draw method
<Algebr> overwrite it for whom, the other widget?
<Drup> you can't write to the context of someone else =)
<Algebr> I see, so each widget should manage its own context.
<Drup> Be a well behaved widget, don't draw on other's sofa
<Algebr> haha
<Drup> :)
<Algebr> Also, 1) should overwritten methods call super#something_overwritten? 2) How is it that methods that take no arguments still execute as if they are functions instead of just being constants, just how it is?
<Drup> Algebr: depends if you want to call the super or not, depends of what you want to draw
<Drup> as for 2) ... that's the semantic of method call.
ptc has joined #ocaml
ptc is now known as Guest8225
Guest8225 has quit [Ping timeout: 246 seconds]
octachron has quit [Quit: Leaving]
sdegutis has quit [Quit: Leaving...]
ptc_ has joined #ocaml
mengu has quit [Remote host closed the connection]
yomimono has quit [Ping timeout: 245 seconds]
shinnya has quit [Ping timeout: 250 seconds]
<Algebr> Given object A which is super class of B and you're given an instance of A, how to coerce A to B? something like let b_of_a a = ... :> something?
<Drup> you mean, downcast ?
<Drup> you can't.
<Algebr> darn
<flux> there are some solutions, though. such as, when creating object B, add a hash table entry mapping (b :> A) to B
<flux> maybe it's the only solution.. :)
<dsheets_> A's interface can have a method of a variant type of B's
<flux> ah, that too :)
leowzukw has joined #ocaml
larhat has quit [Quit: Leaving.]
<_obad_> does anyone have an example of an _oasis section for generating documentation? the manual isn't very clear
<_obad_> thx!!
<_obad_> another stupid question. how do I document variants? [ `blah (** foo *) | .. ] doesn't work :(
<Drup> hum, polymorphic variant
<Drup> I'm not sure you can
<_obad_> fuck
<Drup> for normal variants, it will work
<Drup> put the documentation on the type alias, it will work that way
<Drup> (** foo *) type t = [ .. ]
<_obad_> drup: right. maybe I can use some formatting to make it pretty.
etehtsea has joined #ocaml
<Algebr> Drup: I'm not really seeing a way to grab the context of a widget from within the widget other than being given it in the draw method...so I'm holding a reference to it as a mutable ivar.
<companion_cube> Leonidas: qcheck on multiple arguments => tuples
<companion_cube> struk|work: nice, I'll read it soon :)
<Drup> Algebr: don't do that, I'm pretty sure it will not work
<Drup> why do you need to draw at another moment than when the draw method is called ?
<Algebr> because say I move left, on the move left event, I want to redraw the widget at a different place, just to move it left.
<Drup> then update the position at the level above and #queue_redraw
<struk|work> companion_cube: cool. this project has given me a love hate relationship with qtest. the randomized testing is really badass though
<Drup> companion_cube: did you started ppx qtest yet ?
<companion_cube> no
* struk|work starts salivating
<companion_cube> struk|work: yeah, I only use it because it makes the threshold to write tests much lower
<companion_cube> anyway, ppx-based qtest won't work for containers, again (pre 4.02 compat)
<struk|work> that's ok, containers is only a small percentage of my dev time
olauzon has joined #ocaml
<dsheets_> _obad_, each variant constructor can have doc attached. doc comment goes after the constructor args. The second doc comment after all the constructors without a blank line applies to the whole type (or the preceding doc comment).
<dsheets_> polymorphic variant constructors live in type expressions rather than type declarations and therefore can't (yet) have doc comments
<_obad_> dsheets_: it doesn't work under 4.01 unfortunately
<_obad_> (for poly. variants I mean)
<dsheets_> yes, see my second comment
<_obad_> so I'm using a comment with the variants in a list
<_obad_> (** Blah blah blah\n- [`constructor1] does this\n- [`constructor2] does that *)
<dsheets_> yes, that's the best way to be ocamldoc compat
ygrek has quit [Ping timeout: 264 seconds]
thomasga has quit [Quit: Leaving.]
yomimono has joined #ocaml
<Drup> dsheets_: did you manage to find a solution to the namespace issue for codoc ? :)
<companion_cube> struk|work: I will probably change the code a bit though ;)
<dsheets_> Drup, huh?
<Drup> well, I guess it's for eliom
<struk|work> companion_cube: have your way with it
jabesed has joined #ocaml
mort___ has quit [Ping timeout: 265 seconds]
<dsheets_> Drup, nope... digests should disambiguate fine
<Drup> no obvious way to link the client from the server documentation then
thomasga has joined #ocaml
zpe has quit [Remote host closed the connection]
<dsheets_> Drup, what do you mean? references in doc comments are still resolved and can be resolved in stages...
thomasga has quit [Client Quit]
<dsheets_> if their modules use each other, this is also sufficient
slash^ has joined #ocaml
<Drup> they won't, this is not something you can write in OCaml. I was thinking for documentation purposes. Currently, we have a custom annotation instead of {!Foo}. to say "The Foo on the client side"
thomasga has joined #ocaml
matason has quit [Ping timeout: 246 seconds]
<dsheets_> Drup, do the names overlap?
captain_furious has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
badkins has quit []
JuggleTux has joined #ocaml
ptc_ has quit [Ping timeout: 245 seconds]
<Drup> obviously, they do :D
<Drup> wouldn't be an issue otherwise
jwatzman|work has joined #ocaml
<dsheets_> then you'll still need some kind of extension (which should be easier now) because that scheme doesn't really generalize...
<Drup> yes, that's fine with me to have some custom thing for ocsigen, just raising the point that it should be possible and/or not too hard to implement, if possible :p
<Drup> we already have a custom front end currently anyway, and it's pure madness, it can only be better than that
<Drup> (I had to fix it for gadts the other day, I cried, a lot)
<companion_cube> Drup: areyou currently working on basing ocsigen on ppx ?
<Drup> companion_cube: yeah
<companion_cube> so an ocsigen project could compile without too much pain? :)
<Drup> will*
<Drup> maybe
<Drup> one day
<Drup> not right now :D
<companion_cube> anyway, I have to review the shiny new CCRingBuffer
Algebr has quit [Remote host closed the connection]
Algebr has joined #ocaml
yomimono has quit [Ping timeout: 265 seconds]
Haudegen has quit [Ping timeout: 245 seconds]
MrScout has joined #ocaml
govg has quit [Ping timeout: 272 seconds]
oscar_toro has quit [Ping timeout: 240 seconds]
Haudegen has joined #ocaml
thomasga has quit [Ping timeout: 250 seconds]
ggole has quit []
avsm has quit [Quit: Leaving.]
badkins has joined #ocaml
contempt has quit [Ping timeout: 246 seconds]
Kakadu has quit [Quit: Page closed]
contempt has joined #ocaml
Anarchos has joined #ocaml
shinnya has joined #ocaml
q66 has joined #ocaml
Anarchos has quit [Client Quit]
Anarchos has joined #ocaml
matason has joined #ocaml
dsheets_ has quit [Ping timeout: 246 seconds]
paradoja has quit [Ping timeout: 250 seconds]
ptc has joined #ocaml
ptc is now known as Guest96065
uris77 has quit [Quit: leaving]
mengu has joined #ocaml
mengu has quit [Remote host closed the connection]
ghostpl_ has quit [Remote host closed the connection]
matason has quit [Ping timeout: 252 seconds]
MrScout_ has joined #ocaml
MrScout has quit [Ping timeout: 265 seconds]
MrScout_ has quit [Ping timeout: 256 seconds]
oriba has joined #ocaml
MrScout has joined #ocaml
jao has quit [Read error: No route to host]
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
matason has joined #ocaml
ygrek has joined #ocaml
nullcat has joined #ocaml
nullcat has quit [Read error: Connection reset by peer]
Kakadu has joined #ocaml
MrScout has quit [Ping timeout: 256 seconds]
MrScout has joined #ocaml
tg has quit [Ping timeout: 245 seconds]
JuggleTux has quit [Ping timeout: 264 seconds]
captain_furious has quit [Read error: Connection reset by peer]
matason has quit [Ping timeout: 240 seconds]
bezirg has joined #ocaml
matason has joined #ocaml
WraithM has joined #ocaml
WraithM has quit [Client Quit]
Guest96065 has quit [Ping timeout: 264 seconds]
Hannibal_Smith has joined #ocaml
captain_furious has joined #ocaml
ptc has joined #ocaml
ptc is now known as Guest65253
matason has quit [Ping timeout: 240 seconds]
<reynir> opam-boot looks interesting
<Algebr> Is it the case that optional arguments can never be the last argument?
<Algebr> rather parameter of a function
<reynir> Yes, I believe so
<reynir> you need to know when it's the last argument somehow
<reynir> (I'm not a language lawyer though)
<Drup> "language lawyer" <3
<Drup> I should put that on my CV
<dmbaturin> Algebr: It's just a warning, but I'm not sure what its implications are. :)
<Drup> the semantic of optional arguments makes the behavior very unclear when it's the last argument
<dmbaturin> I did use it, although I think I should not have done it.
<dmbaturin> Drup: Fred Brooks wrote that every team should have language lawyer, IIRC.
<Drup> fred brooks ?
<dmbaturin> The author of "The mythical man-month".
Submarine has joined #ocaml
Submarine has joined #ocaml
<dmbaturin> Now it can be outsorced to any of the language law firms, also known as IRC channels and mailing lists of course.
<Drup> haven't read it
<Drup> dmbaturin: do you have a quote with a precise definition ? :D
<dmbaturin> Uhm, it's been years since I've read it and I'm not even sure if I still have the book, but I'll try. :)
Nahra has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<dmbaturin> Drup: http://pastie.org/9982134
<dmbaturin> I tried to google the quote just to find out the whole book is now free on archive.org https://archive.org/details/mythicalmanmonth00fred
<Drup> I'm totally going to put that the next time I need to write a CV.
<dmbaturin> Even if I still have the book, I can safely give it away now. :)
sdegutis has joined #ocaml
<sdegutis> Is js_of_ocaml capable of letting you use external libs like jQuery, React.js, etc. without polluting the global namespace?
<sdegutis> Does it have some kind of module/require system of its own?
<sdegutis> Does it have its own package manager?
<sdegutis> Or is it at least compatible with any existing JS ecosystem?
<sdegutis> This is my questions. Thank you and good day.
<Drup> sdegutis: you use whatever you want, it's js at the end, so it doesn't matter
<Drup> if the lib itself polutes the global namespace, js_of_ocaml can't do anything about it
MrScout has quit [Remote host closed the connection]
<sdegutis> Drup: so it literally does nothing to help with using external JS libs in any way?
<Drup> I would rather say it's exactly the same as with using external js lib when you write js.
<Drup> (except you have to do a wrapper)
<sdegutis> Drup: what!?
<sdegutis> Drup: why do we have to do a wrapper!?
<Drup> well, to give the js function some types.
<sdegutis> Oooooh.
<sdegutis> Sure.
<Drup> when you call an external js function in js_of_ocaml
<Drup> it's a regular function call, nothing more
<sdegutis> Correct.
<Drup> so, in the end, the only difference between a jsoo file and a js file is that it was produced from ocaml, from the packaging point of view, everything else is the same
<Drup> (since you can think as js library as ""dynamically linked"")
<Drup> (I know, it's no link at all, but it's pretty much the same here)
<Algebr> Drup: How do pattern matches on something like LTerm_event.Key {code = Enter} work without having specified the other fields in the record. Is it in effect something something like {foo = _; bar = _; code = Enter}?
freling has quit [Quit: Leaving.]
<Drup> Algebr: yes
slash^ has quit [Read error: Connection reset by peer]
<sdegutis> Drup: then my main concern, in this case, is JSoO's lack of popularity which causes a lack of pre-existing type-definition files for existing libs (YUI, Mithril, etc)
ghostpl_ has joined #ocaml
<Drup> that may be a concern indeed
<Drup> But !
<Drup> I don't know how far he got, but it's interesting
<sdegutis> NEVARRRR
<sdegutis> Drup: it's abandoned i.e. dead
<Drup> last commit 6 month away, it's far from being impossible to revive
ghostpl_ has quit [Remote host closed the connection]
<Drup> (if it's even dead to begin with)
Denommus has joined #ocaml
<dmbaturin> Some perfectly usable projects get nothing but small bugfixes for years.
<tane> _usable_
<sdegutis> Drup: this whole situation demonstrates that JSoO is too unpopular to survive
<Drup> pfrr
<Drup> x)
<Drup> I like this kind of statement
<Drup> sdegutis: think about the enormity of what you just said, take the time to have a deeper look at the ecosystem, then come back, thanks.
BitPuffin has quit [Ping timeout: 245 seconds]
manud has joined #ocaml
<sdegutis> Drup: enlighten me
<sdegutis> Drup: in general, a project that does not initially (within a few years) show strong growth will usually not begin strong growth later
<sdegutis> Drup: the general "hub-bub" about languages in social contexts (stackoverflow, twitter, irc) generally indicates the current and recent popularity of a language
<tane> sdegutis, it has nothing to do with survival though
freling has joined #ocaml
<Drup> What you are saying doesn't make the slightest sense. 1) jsoo is not a language 2) it's used by an important amount of OCaml users 3) It's mature and maintaned 4) Javascript developers are not convincable by rational arguments, and we don't have a big promotional budget like google does for Go
<Drup> ocaml is and will always be a drop in the ocean of frontend and/or Java programmers
ygrek has quit [Ping timeout: 240 seconds]
<Drup> It's not a problem.
<Anarchos> Drup i hate java : i use it at work.
<Drup> Anarchos: I know, it doesn't change the fact :p
<dmbaturin> I'd like to remind you that Fortran90/95/2003 dominates in parallel computations despite literally zero social buzz. ;)
<S11001001> sdegutis: if you want stackoverflow popularity in your new favorite language, maybe you should not consider ocaml. Or haskell for that matter, or rust.
<sdegutis> Drup: by this I can tell that LiveScript, ClojureScript, and PureScript are all gaining popularity, TypeScript has tremendous popularity, and I've rarely heard of js_of_oCamel
<sdegutis> Drup: (also someone called it ocaml_of_js today)
<Drup> PureScript and LiveScript don't have a user base.
<sdegutis> Drup: #1 sure it is, how isn't it?
<S11001001> sdegutis: Yeah, try typescript. It's unsound, but who cares about that, it's popular.
<Drup> sorry, they have publicity, maybe, but no user base
<sdegutis> Drup: #2 OCaml users are relatively few
<dmbaturin> S11001001: Not sure about haskell, it produces considerable social buzz.
<sdegutis> Drup: #3 fair
<sdegutis> Drup: #4 that's insulting and an unfair generalization to make about "Javascript developers"
<S11001001> dmbaturin: I don't think it's enough for sdegutis's popularity requirements to be satisfied though
<sdegutis> Drup: #5 ahhh, so /that's/ how Google convinces people to use Go
<dmbaturin> S11001001: Well, still "I'm leraning haskell because everyone it talking about it" is a valid statement.
<dmbaturin> * learning
<Drup> js_of_ocaml is a compiler from OCaml to javascript, you may call it a dialect, but since it's 95% compatible to OCaml, it's not a new language.
<sdegutis> Drup: "it's not a problem" == it can lead to problems like a defeating lack of third party tooling
<Drup> dmbaturin: Fortran has the benefit of established user based from a long time ago, though.
<flux> js_of_ocaml is basically a tool, I think most often for advanced OCaml progammers, though that maybe dosen't need to be the case
<sdegutis> S11001001: according to my measurements, Rust and Haskell are disproportionately popular, so your criticism of my statement doesn't hold
etehtsea has joined #ocaml
<Drup> sdegutis: of course it's like that, and that's also the case for basically all the new relatively successful languages.
etehtsea has quit [Max SendQ exceeded]
<S11001001> sdegutis: ok
<Drup> rust has mozilla, Go has google, typescript has microsoft, D has facebook, among others
<sdegutis> dmbaturin: LERANING IS NOT A WO -- oh, you already fixe that
<sdegutis> I think I'm almost caught up in this conversation...
<dmbaturin> Drup: I never said otherwise. I just said it's not a fashionable thing to talk about (which is fun because parallel computations, to some extent, _are_ a fashionable thing).
<Drup> OCaml is not fashionable, yes, I know
<sdegutis> Drup: yes js_of_ocaml is a compiler from OCaml to JS, that makes it an alt-JS language, along with TypeScript, PureScript, CoffeeScript, ClojureScript, etc
<Drup> (and by extension, it makes jsoo not fashionable)
<sdegutis> Drup: no, TypeScript is gaining a lot of third party support thanks to its popularity
<Drup> I don't know why, maybe because in basically everyone's mind, OCaml is still "this weird language done by french people"
<dmbaturin> Speaking of which. F2C is an alt-C language.
grb has joined #ocaml
<sdegutis> ok, caught up.
<dmbaturin> (The tool for source to source translation of F77 to C, if anyone was lucky enough not to see it)
<Drup> sdegutis: and I'm sorry, but I will keep my statement about js developers, because it does apply to most of them. Not all of them, obviously, the one that want to change languages :)
<tokenrove> Drup: although that has changed a fair bit in the last few years. especially with the increasing popularity of F#.
<Anarchos> Drup as if JAva was not weird :)
<Drup> tokenrove: yeah
<Drup> Anarchos: it's popular, hence not weird.
<sdegutis> Drup: most of the JS developers I have met on IRC have been people who know JS really well and use languages that compile to it (often PureScript or ClojureScript or ES6 etc)
<Drup> and do you really think that's representative of the billions of web developers ?
<tokenrove> i have to say that, between RWO, all the work going on in the ocaml ecosystem, attention from the popularity of other ML-derived languages, things look pretty excellent for ocaml. much better than when i first thought it was the language of the future, circa 2001.
<Anarchos> Drup i made slides about the lambda expression in java8, which are awful and doesn't solve cleanly the scope delimitation
<sdegutis> Drup: who said anything about billions of web developers?
<Drup> sdegutis: I did, when we talked about javascript developers.
<Anarchos> Drup inheritance is asymmetric in java, so as the equality, and so on
<Anarchos> many little failures at each corner
<Drup> javascript developers, as a whole, are mostly happy with how awful javascript is.
<Drup> and they are not looking for better
srcerer has joined #ocaml
<Anarchos> gargabe collected language, but they keep the null pointer to attract c++ developers...
<Drup> there are exceptions, of course.
lordkryss has quit [Quit: Connection closed for inactivity]
ghostpl_ has joined #ocaml
<Drup> but the majority is like that
<sdegutis> Drup: you said "Javascript developers are not convincable by rational arguments" to refute my point of "the general "hub-bub" about languages in social contexts (stackoverflow, twitter, irc) generally indicates the current and recent popularity of a language" right?
<Drup> yes
<sdegutis> Drup: well I was referring to the people I have found credible
<sdegutis> Drup: so the billions don't matter here
<Drup> then you are ignoring the others.
<sdegutis> Drup: yep
<sdegutis> Drup: they don't effect my point
<Drup> sure they do, you make a generality and think the few individual you encountered are the general case
bytbox has quit [Remote host closed the connection]
<Drup> that's not how data sample works :D
JuggleTux has joined #ocaml
<Drup> You can't argue that Go is popular, right ?
<dmbaturin> Why no one mentioned PHP yet?
<sdegutis> Drup: Go is about as popular as Python
<sdegutis> dmbaturin: because that kind of thing doesn't count
<Drup> which is, very popular then
<Drup> which means that people are actually happy with some completely unsafe language with a semantic barelly better than things designed 30 years ago
<sdegutis> dmbaturin: the majority of people who use JavaScript and PHP don't influence tooling in any way or contribute back to the open source ecosystem
<Drup> of course they do o_o
<sdegutis> dmbaturin: the people who do are who matter, and the people who do generally use bette rtools
<sdegutis> Drup: a few do, the majority don't
<Drup> but that's a mass effect ...
<Drup> the more people, the more people
<sdegutis> the majority just write app and move on to the next project, consuming and never giving back
_andre has quit [Quit: leaving]
<def`> ("python", "javascript", "go" count, but not "php"; the pantheon of fucked up languages has a non-trivial structure)
Nahra has joined #ocaml
<dmbaturin> Just out of curiosity, what popular pieces of complete usable software are written in Go?
<Drup> def`: php is totally in it, don't worry
<dmbaturin> That is, not libraries of frameworks.
<Drup> dmbaturin: the go compiler.
<tokenrove> sdegutis: go is certainly not as popular as python, by orders of magnitude.
<sdegutis> tokenrove: sure
<sdegutis> i concede
SIGILL has quit [Quit: update]
sdegutis has quit [Quit: Leaving...]
<Drup> well, he conceded :D
jabesed has quit [Quit: Konversation terminated!]
aubergines has quit [Remote host closed the connection]
<dmbaturin> Hhm, I usually concede without quitting if I find out I'm wrong. :)
Jefffrey has joined #ocaml
ghostpl_ has quit [Remote host closed the connection]
<tokenrove> curses. i have joins/parts/quits ignored here, so i was still typing a followup.
<Drup> :D
<Drup> I hide them too, except for people who just spoke
<tokenrove> oh, that's a good idea.
<dmbaturin> Drup: How do you do it?
<Drup> hum, my client has an option ? :D
<dmbaturin> What client?
<Drup> pidgin
<dmbaturin> I guess I should write a script for irssi to do that.
<tokenrove> i'm on the hunt for one now.
<Drup> also, I don't hide them in small channels
<Drup> we are going to be 300 in here soon.
<Jefffrey> Hello
<Jefffrey> Is it possible that OCaml hates me?
<def`> hello
<Jefffrey> Or to rephrase that, is it possible that OCaml is a sentient being?
<Drup> The dromedary is a placid and gentle animal.
<Drup> It remains to be discovered if it's self-aware or not, though.
<Jefffrey> I think it's self aware, and I'm going to explain why
<Jefffrey> The code is `in Some (if b.neg then -n else n)` and it's giving me `Parse error: currified constructor`
<def`> :)
<Jefffrey> If I try that on the REPL, it works just fine.
<Algebr> What is the reason why downcasting is not possible? Lack of runtime info?
<Jefffrey> If I search for the error, I find nothing.
<flux> algebr, exactly
<Jefffrey> Anyway you rearrange that line, it always print that same error.
<Algebr> Jeffrey: perhaps you need -n as (-n)
<Algebr> flux: that is so damn annoying.
<Algebr> flux: can't I force it in the case when I do know its correct at runtime?
<def`> Algebr: you can encode such information if you need to
<Jefffrey> Algebr: Tried that, nothing.
<dmbaturin> Jefffrey: Could you paste the context?
ghostpl_ has joined #ocaml
oriba_ has joined #ocaml
<Algebr> def`: what would that mean/look like?
<dmbaturin> And, yes, -n vs (-n)... happens.
<Jefffrey> dmbaturin: http://pastebin.com/KwLBL2Fr
<def`> Algebr: what's your version of ocaml? I would do that with an open-type/exception
<Algebr> def`: 4.02.1 C 4.02.1 Official 4.02.1 release
<Algebr>
<def`> ok, then open-types are fine
<flux> forgot about that as well :)
<flux> open type is actually not all bad solution
<Algebr> Okay, I don't know what that is, will have to look up.
<Algebr> this language is so damn big.
<Drup> I would personally think that you just should change your design in order not to need downcast :p
<def`> +1
<Drup> downcasts are evil anyway.
<Algebr> Drup: I guess, now I just have an extra ivar , which is not a big deal .
<flux> it's funny how in general I understand downcasting is frowned upon (ie. "code smell"), yet at times they are so darn fitting things to use ;-)
oriba has quit [Ping timeout: 245 seconds]
manud has quit [Quit: manud]
<flux> even if they were hacks.
<Algebr> Why would it be frowned upon?
<def`> I can't remember when I last needed downcasting
<flux> because it's not ObjectOriented
<Drup> no that's not the reason
<flux> you're not supposed to look inside an object to use it; what should matter how the object behaves, not what it is.
<def`> … except in some Java project, but that wasn't my fault
<Drup> the main reason is just that it's unsafe.
<haesbaert> hmm I'm trying to find documentation about in_channel.input_char, it seems this is unbuffered, 1syscall for each char, am I right ?
<flux> drup, I mean in general
<Jefffrey> dbbaturin: Can we agree OCaml hates me?
<haesbaert> Pervasives.input_char that is.
<def`> haesbaert: no, channels are buffered
<Drup> Jefffrey: can you give the whole file
<def`> normally
<Drup> ?
<Jefffrey> Drup: Sure.
<def`> Yep, the problem is not the part you pasted, but its context
<haesbaert> def`: that's odd, I'm just doing input_char->output_char and I get ~3MB/s
<Drup> and what's wrong with that ?
<flux> but there are of course dissenting voices.
<Jefffrey> Drup: http://pastebin.com/7uRcPXu6 (complains on line 190)
<Drup> Jefffrey: hehehe
<Drup> put a ";;" line 191
<Drup> or, better even
<Drup> remove all ";;" and add "let _ = ..." at the beginning of line 192
<flux> actually I'm not so sure how easy it is to use open types for this particular case
WraithM has joined #ocaml
<def`> haesbaert: if I strace, I see 64k buffers are used
<flux> but that could be because I haven't really used them before
<Jefffrey> You gotta be kidding me
<Jefffrey> Drup: I love you, thanks.
<Drup> Jefffrey: You should use a better code indenter
<Drup> it would have show the problem
<def`> haesbaert: 16MB/s in bytecode, 64MB/s in native
basement-pyon is now known as cartesian-pyon
<Jefffrey> 80% of that code is from some professor
<Jefffrey> I have to follow the 2 spaces indentation thingy, unfortunately
<Drup> the 2 spaces indentation thingy is not the issue
<haesbaert> def`: doing input_char->output_char ?
<Jefffrey> oh
<def`> haesbaert: yes
<haesbaert> stdin->stoud ?
<haesbaert> *stdout
<def`> yes
<haesbaert> odd
<haesbaert> I must be doing something wrong, I have a code now using input, then I can especify the buffer size
<Drup> Jefffrey: use ocp-indent, it will follow the current convention
<Drup> or ask your professor his indentation engine
ghostpl_ has quit [Remote host closed the connection]
<haesbaert> def`: can you have a look here: http://codepad.org/LCJo4siv
<haesbaert> uflag is false in the example
<Drup> I smell core-iness.
freling has quit [Quit: Leaving.]
<haesbaert> indeed
<haesbaert> should have mentioned it before.
<Jefffrey> Drup: I see, thanks
ghostpl_ has joined #ocaml
<Drup> haesbaert: that's not at all Pervasive
<haesbaert> Core's input_char and output_char were aliases to Pervasive, and I was getting the same results
<haesbaert> then I cooked this so I could especify the buffer size
<flux> hmm, ok, so it works
<Drup> haesbaert: pretty sure this is the reason it's slower :)
freling has joined #ocaml
<haesbaert> lemetry normal Pervasive without core stuff.
thomasga has joined #ocaml
<flux> can that be simplified somehow?
<flux> well, other than renaming method 'base' to 'downcast' or 'original'
<flux> note that this is not a typical way to write ocaml, but it is typical when dealing with toplevel.. ;-)
<Algebr> appreciated
Guest65253 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<def`> haesbaert: core In_channel returns an option, which means allocating for each char, that's a bit slow
ptc has joined #ocaml
<def`> In_channel.input_char*
<flux> now that you have a solution that might work for you, you can feel the pressure easing and you can think of a solution that doesn't require it after all ;-)
<S11001001> flux: unfortunately that blog post doesn't make any sense
<Algebr> appreciated
ptc is now known as Guest54679
<flux> s11001001, well, I only skimmed it, but the sentiment is not that uncommon
MrScout has joined #ocaml
<S11001001> flux: I agree that instanceof is bad, but that blog post is wildly misleading. Obviously the author didn't even try calling their example code from the body of the originally presented method.
<S11001001> flux: because it wouldn't have compiled
<companion_cube> haesbaert: out of curiosity, why do you need input_char?
<companion_cube> if it's for a parser, you should definitely use an intermediate buffer
<companion_cube> or a memory-mapped file
<flux> s11001001, you mean elsif?
<haesbaert> companion_cube: I'm just writing a "cat" close, for training
<companion_cube> clone* ?
<haesbaert> sorry, clone.
<companion_cube> well, use input/output if you want some performance
<haesbaert> if input_char is buffered, it should make little difference, no ?
<flux> s11001001, I really don't see the point of making and testing a Java program just for writing 8 line code fragment for providing an example, when the key point can be seen right there ;)
dav_ is now known as dav
<haesbaert> I need to look at every char anyway, so if in_channel would do the buffering for me, easier.
<S11001001> flux: Except if you're wrong. Which the author is.
tg has joined #ocaml
<S11001001> flux: Let me be clear: this isn't a matter of opinion. The author objectively made an error.
bytbox has joined #ocaml
<flux> yes, the author did make an error. does it objectively matter?
<def`> haesbaert: even if it's faster than a syscall per char, you're still spending a lot of time in the call overhead going this way
<S11001001> flux: if your premises are faulty, why should I believe your conclusion?
<dmbaturin> S11001001: That's why I don't write programming blog posts every day. Verifying every piece of code takes time.
<flux> s11001001, elsif is the premise?
<S11001001> flux: you don't need to write a program. Just including the code from the blog is enough to reveal the error.
<flux> s11001001, including code? well, you need somewhere to put it in Java, it cannot just freely hang from the ether
<haesbaert> def`: absolutely, I'm surprise it was this slow.
tg has quit [Client Quit]
tg has joined #ocaml
<flux> s11001001, however, why should I believe your argument? you are in fact arguing in the English language, yet your messages don't consistently begin with capital letters?-)
Hannibal_Smith has quit [Quit: Leaving]
<companion_cube> haesbaert: I think it's faster anyway to ask the underlying syscall to fill many bytes at once
<companion_cube> so the standard IO of Ocaml doesn't add buffering on top of that
reem has joined #ocaml
<companion_cube> e.g., if you write a parser using ocamlyacc/ocamllex, buffering is done at the lexer level
<haesbaert> companion_cube: agreed, but if in_channel is buffered, it is already issuing a bigger bufer to the syscall
<haesbaert> since it got so slow I imagined it was not buffered, failed to find any docs on it
<def`> companion_cube: because ocamllex interpreter would be dramatically slow processing one char at a time :)
Guest54679 has quit [Remote host closed the connection]
ptc_ has joined #ocaml
<companion_cube> anyway, most of the time I tend to write specialized parsers, or read line by line
<def`> haesbaert: with the option wrapping, assuming it's the only allocation done in the loop, that translates to 100MB/s allocation rate
c355E3B has joined #ocaml
manud has joined #ocaml
<def`> yep, the option wrapping is the only allocation. Still, it doesn't help :)
<haesbaert> :(, I might be doing something stupid still, I'm just starting out in ocaml
<dmbaturin> If I want to zip two lists that are not of the same length ('a list -> 'b list -> ('a * 'b) option list), is there a way to do it without checking which one is longer first?
<haesbaert> I get: Error: This kind of expression is not allowed as right-hand side of `let rec'
<haesbaert> any tips ?
Thooms has joined #ocaml
<def`> haesbaert: cpy () instead of cpy
<dmbaturin> haesbaert: Argument of cpy is missing.
Jefffrey has quit [Quit: Leaving...]
<haesbaert> I always need to give an argument ?
<haesbaert> is this because of currying ?
<def`> (only values are allowed in let rec, cpy is an expression since its body needs to be evaluated)
<dmbaturin> haesbaert: Yes. If you want a function "with no arguments", pass () to it.
<def`> if you make it a function, by adding a () parameter for instance, thet it will be a value again.
<flux> s11001001, well, it only covers that particular processMessages implementation
<flux> s11001001, if the calls were made like: processMessage(new CleanFloor()) .. then it would work fine
<dmbaturin> Note that calling it will be "cpy ()" as well.
<Drup> dmbaturin: rewrite the whole function, it will mostly write itself and it needs only one pass
<flux> s11001001, but you have a very good point nevertheles, Java doesn't have that kind of dynamic dispatch
<haesbaert> got it, I'm digesting the "only values are allowed"
tane has quit [Quit: Verlassend]
<haesbaert> isn't a value always an expression ?
<def`> sorry, I wasn't really clear
<def`> a value is an expression, but the converse is not true :)
<flux> s11001001, and, if were were really such a processMessage function, it would likely be called in the way you wrote
<def`> some expressions need to be evaluated to become a value
<flux> s/were/there/
<S11001001> flux: Yes.
<flux> s11001001, though a compile time error is much nicer than a runtime
dsheets_ has joined #ocaml
<flux> and might even guide the design
<def`> in this case, you need a syntactic value, which means you can tell from the source code that nothing needs to be evaluated to define cpy
<haesbaert> WHOA I got super fast now
<S11001001> flux: There are good answers to the question "how do I abstract over the idea of having either a CleanFloor or LaunchRocket?" But they are obscured by pretending that overloads are a solution to instanceof.
<haesbaert> def`: but if something did need to be evaluated for cpy, it would not be allowed ?
<def`> haesbaert: yes, you would have to put outside of the letrec
<haesbaert> hmm I think I've been running into this issue before, trying to make a clojure inside a clojure
<def`> but don't worry about that, you shouldn't encounter this case in normal code, just remember that when you get this error message.
<haesbaert> can you recommend me high quality code to read ?
<def`> well, if by closure you mean partial application, then yes this won't be allowed
<dmbaturin> haesbaert: OCaml standard library. :)
<ousado> haesbaert: openmirage
<haesbaert> I meant defining a function that binds the arguments of the "parent function"
<def`> let rec f = app f in ... (* for some meaningful app *)
<dmbaturin> There is a little magic like calls to external operators, but it's far less scary than many other standard libraries.
<def`> that's not allowed, but let rec f x = app f x in … is ok (it's a function).
<haesbaert> something like, let foo x y = let bar f = f + x + y
<def`> that's fine.
<def`> what I said only applies to let-rec
<haesbaert> ack
<S11001001> haesbaert: "Types and Programming Languages" includes ocaml sample implementations http://www.cis.upenn.edu/~bcpierce/tapl/ and exercises to implement pieces of them. If you go for that sort of thing
<haesbaert> S11001001: I'd prefer to read "real" code
<haesbaert> as in, stuff that is in production
govg has joined #ocaml
<tokenrove> haesbaert: a "reading list" of particularly good code would be nice. i have been enjoying reading the libraries of daniel bünzli lately.
<haesbaert> ok just made a core vs std ocaml input_char stdin -> output_char stdout
<haesbaert> it's about the same 3-4MB/s
Thooms has quit [Ping timeout: 256 seconds]
<haesbaert> make that 55
<haesbaert> *5
mort___ has joined #ocaml
mort___ has quit [Client Quit]
Thooms has joined #ocaml
<Algebr> Is MirageOS something you run on servers?
<ousado> it's for Xen hypervisor unikernels
<ousado> but you can run it on linux/openbsd too
<ousado> check out the talks on the website
<ousado> "my other internet is a mirage" or something along that lines
<ousado> it's awesome
<ousado> *those lines
<Anarchos> Certified Programming with Dependent Types - Adam Chlipala
ontologiae has joined #ocaml
badkins has quit []
Haudegen has quit [Ping timeout: 255 seconds]
reem has quit [Remote host closed the connection]
<Drup> I would actually advise against reading the stdlib
<Drup> I mean, if you keep to the simple part (List, Array ... nothing else actually)
<Drup> it's ok
<Drup> (but I second the advice to read bunzli's code, it's well written, if not very commented)
Haudegen has joined #ocaml
<Anarchos> Drup could you develop ?
<Drup> not just now, later :p
<Anarchos> Drup ok
reem has joined #ocaml
manud_ has joined #ocaml
freling has quit [Quit: Leaving.]
ontologiae has quit [Ping timeout: 272 seconds]
manud has quit [Ping timeout: 265 seconds]
keen__________74 has joined #ocaml
manud_ is now known as manud
keen__________73 has quit [Ping timeout: 252 seconds]
ontologiae has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
ontologiae has quit [Ping timeout: 244 seconds]
ontologiae has joined #ocaml
badkins has joined #ocaml
cartesian-pyon is now known as in-pyon-itesimal
MercurialAlchemi has quit [Ping timeout: 252 seconds]
martintrojer has quit [Ping timeout: 250 seconds]
antkong has joined #ocaml
sdegutis has joined #ocaml
<sdegutis> Are you OCamlites?
jwatzman|work has quit [Quit: jwatzman|work]
martintrojer has joined #ocaml
hilquias has joined #ocaml
<Drup> I would rather say OCamlers, I think :D
<bitbckt> sdegutis: as far as #rust is concerned, either will work. :P
teiresias has quit [Ping timeout: 245 seconds]
ontologiae has quit [Ping timeout: 250 seconds]
ontologiae has joined #ocaml
teiresias has joined #ocaml
<Drup> (and compared to Rustaceans, everything is reasonable !)
Kakadu has quit [Remote host closed the connection]
captain_furious has quit [Ping timeout: 245 seconds]
ontologiae has quit [Ping timeout: 245 seconds]
bytbox has quit [Remote host closed the connection]
MrScout has quit [Remote host closed the connection]
MrScout has joined #ocaml
Algebr has quit [Remote host closed the connection]
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
<maurer> ousado: How is MirageOS different from HaLVM other than the language?
<companion_cube> whitequark: do you perchance use containers.io? I'm thinking of stealing code from assemblage to improve it
ptc_ has quit [Read error: Connection reset by peer]
c355E3B has quit [Quit: Leaving]
<ousado> maurer: I think conceptually they're close
<maurer> (I mostly ask because mirageOS seems to be a far vaster project, but have the same goals, which was confusing to me)
ptc has joined #ocaml
thomasga has quit [Quit: Leaving.]
ptc is now known as Guest53890
<ousado> maurer: I don't really know enough about either to compare them
<ousado> from the overviews I've been readong it looks like they're very close, but openmirage didn't "accidentally" get to be a library-OS but rather it was a stated goal
<ousado> *reading
bytbox has joined #ocaml
Guest53890 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bezirg has quit [Quit: Leaving.]
struktured has joined #ocaml
WraithM has quit [Ping timeout: 246 seconds]
Simn has quit [Quit: Leaving]
olauzon has quit [Quit: olauzon]
reem has quit [Remote host closed the connection]
<struktured> companion_cube: I like the _exn vs optional versions you added to the ring buf. Your original version didn't have it, so I thought you didn't want it in this module
WraithM has joined #ocaml
ptc_ has joined #ocaml
oriba_ has quit [Quit: oriba_]