<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?
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]
<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_>
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 ;)
<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)]
<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)
<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?
<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?
<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