<mcc>
i see. it looks like the HAVE is used pretty extensively...?
<Drup>
hum, in fact, yes it is
<mcc>
this could probably be replaced with a ppx equivalent tho?
<Drup>
I would use cppo
<mcc>
hm, could that do the "throw error" rewriting?
<Drup>
huum
<Drup>
probably not
rgrinberg has quit [Quit: Leaving.]
<Drup>
but you should try to do your thing with extunix before trying to worry about removing camlp4 from it.
<mcc>
mm, maybe so, the problem is it turns out each additional package dependency creates a new headache if you want to make a debian pkg...
<mcc>
i think i will use Fileutils to start.
<mcc>
it produces ugly paths, but it looks like valid ones...
<mcc>
if i did not have fileutils around, i would definitely hop to extutils.
<Drup>
the solution haxe uses is to bundle all the dependencies inside itself
<Drup>
opam does the same
<mcc>
well, maybe i will be doing that soon, esp. given the rate at which i am making custom patches to things like sedlex D:
araujo has joined #ocaml
rgrinberg has joined #ocaml
<Drup>
mcc: meh, come on, It's not like I don't accept patches for sedlex :<
araujo has quit [Client Quit]
Anarchos has quit [Quit: nozh vezh mat deoc'h ...]
madroach has quit [Ping timeout: 264 seconds]
<mcc>
drup: you do! it's nice! but i am considering at least a couple of patches that would not be accepted because it *should* not be accepted (i.e. it is tied to my project in behavior and not sufficiently general)
madroach has joined #ocaml
<Drup>
like what ?
<mcc>
well, like the automatic linecounter based on '\n' count, which we have agreed for sedlex purposes would be better as a manual line-here method
<mcc>
or, i was considering trying to pull in parts of whitequark's i18n module
<mcc>
and that has a custom sedlex for what i understand to be some pretty good reason?
<Drup>
not a custom sedlex, only a custom Sedlexing module
<mcc>
oh, interesting
<mcc>
so you use normal sedlex but you somehow substitute a different Sedlexing. is that easy?
<Drup>
put at the top of the file "module Sedlexing = MyPersonalSedlexing" an done
<mcc>
at the top of the file which is going to use Sedlex... okay
<mcc>
okay, so... do i have this correct... in ocaml 4.01 there is no PPX, but ocamlp4 is installed by default (no module needed)... in ocaml 4.02 there is PPX, and ocampl4 must be installed separately from ocaml
<mcc>
?
<Drup>
tes
<Drup>
yes*
<mcc>
thanks
<Drup>
for the line counting, if performances are not terribly important (and for parsing a language, they aren't), you could just avec a small function counting the lines in a string and apply it when there is a potential new line.
<Drup>
I mean, you can't have newlines *everywhere*, only in specific tokens
<Drup>
s/avec/have/ ~~
<mrvn>
I've made all my tokens have a start and end position of line+column.
<Drup>
mrvn: not the point here.
<mcc>
drup: yes, it is true
<mrvn>
just saying. my line count is automatic too
<mcc>
One more question, is there a way to get PPX *at all* in 4.01 or before ? Like is there a module or a preprocessor or something that can be installed the same way ocamlp4 can on 4.02.
<mcc>
Just asking for context
<mrvn>
mcc: ppx needs compiler support
<mcc>
ok
badon has quit [Quit: Leaving]
<Drup>
mcc: no there is not, sorry.
<whitequark>
mcc: actually yes
<whitequark>
you can use rewriter from ppx_tools to expand ppx annotations
thomasga has quit [Quit: Leaving.]
<whitequark>
think cpp
<Drup>
whitequark: but you need 4.02 for ppx_tools
<whitequark>
you do that before packaging
<Drup>
oh, you mean, use only the code after expansion ? that would work ... *blarg*
Thooms has quit [Quit: WeeChat 1.0.1]
<mcc>
i... see. thanks.
thomasga has joined #ocaml
RossJH has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ygrek has joined #ocaml
skinkitten has quit [Ping timeout: 240 seconds]
<mcc>
ygrek: oh, um. hi, i think i just sent you an email ^_^
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
Axle has quit [Quit: Leaving.]
badon has joined #ocaml
antkong has quit [Quit: antkong]
mimrock has quit [Quit: This computer has gone to sleep]
<ygrek>
mcc, ack
Axle has joined #ocaml
<ygrek>
will answer later
<mcc>
ygrek: sure, no rush
<mcc>
thanks!
Axle has quit [Quit: Leaving.]
ontologiae has joined #ocaml
ontologiae has quit [Ping timeout: 245 seconds]
MercurialAlchemi has quit [Ping timeout: 265 seconds]
n1ftyn8 has quit [Ping timeout: 250 seconds]
lambdahands has quit [Ping timeout: 250 seconds]
Sorella has quit [Ping timeout: 250 seconds]
rfv has quit [Read error: Connection reset by peer]
cojy_ has quit [Ping timeout: 250 seconds]
divyanshu has quit [Ping timeout: 250 seconds]
FrankieDux has joined #ocaml
lostman has quit [Ping timeout: 265 seconds]
msch has quit [Ping timeout: 245 seconds]
Sorella has joined #ocaml
rfv has joined #ocaml
reem has quit [Remote host closed the connection]
lostman has joined #ocaml
psy_ has joined #ocaml
lambdahands has joined #ocaml
reem has joined #ocaml
divyanshu has joined #ocaml
thomasga has quit [Quit: Leaving.]
cojy_ has joined #ocaml
n1ftyn8 has joined #ocaml
msch has joined #ocaml
AlexRussia has quit [Ping timeout: 252 seconds]
ygrek has quit [Ping timeout: 252 seconds]
monoprotic has joined #ocaml
enitiz has quit [Ping timeout: 252 seconds]
enitiz has joined #ocaml
ygrek has joined #ocaml
q66 has quit [Quit: Leaving]
darkf has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
mcclurmc has quit [Ping timeout: 265 seconds]
AlexRussia has joined #ocaml
mcclurmc has joined #ocaml
jabesed has quit [Read error: Connection reset by peer]
jabesed has joined #ocaml
antkong has joined #ocaml
Rebelion has quit [Quit: Saliendo]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
rgrinberg has quit [Quit: Leaving.]
yminsky has joined #ocaml
axiles has quit [Ping timeout: 265 seconds]
ontologiae has joined #ocaml
ontologiae has quit [Ping timeout: 245 seconds]
es917 has joined #ocaml
swgillespie has joined #ocaml
vanila has quit [Quit: Leaving]
rgrinberg has joined #ocaml
es917 has quit [Quit: es917]
yminsky has quit [Quit: yminsky]
ES_ has joined #ocaml
kapil__ has joined #ocaml
AltGr is now known as Metapioca
ES_ has quit [Client Quit]
iorivur has joined #ocaml
es917 has joined #ocaml
edward_stabler has joined #ocaml
es917 has quit [Quit: es917]
edward_stabler has left #ocaml [#ocaml]
<mcc>
I want to invoke a function. It returns a value. In this case I want to return the value. is `let _ = theFunction () in ()` the most elegant way to do this?
iorivur has quit [Ping timeout: 250 seconds]
<mcc>
I tried: `( Loader.executeProgram buf ; () )` but this gives me a compile warning that executeProgram returns a value.
<mcc>
Pervasives.ignore
<mcc>
n/m
es1234 has joined #ocaml
es1234 has left #ocaml [#ocaml]
ptc has joined #ocaml
ptc is now known as Guest52830
Guest52830 has quit [Client Quit]
es1234 has joined #ocaml
es1234 has left #ocaml [#ocaml]
eps917 has joined #ocaml
eps917 has left #ocaml [#ocaml]
es917 has joined #ocaml
es917_ has joined #ocaml
es917_ has left #ocaml [#ocaml]
es917 has quit [Client Quit]
es917 has joined #ocaml
es917 has quit [Client Quit]
ES_ has joined #ocaml
ES_ has left #ocaml [#ocaml]
es917 has joined #ocaml
es917 has quit [Client Quit]
es917 has joined #ocaml
es917 is now known as es917
destrius has joined #ocaml
es917 has quit [Client Quit]
es917 has joined #ocaml
es917 has quit [Client Quit]
hilquias has quit [Remote host closed the connection]
iorivur has joined #ocaml
enitiz has quit [Ping timeout: 245 seconds]
rgrinberg1 has joined #ocaml
rgrinberg has quit [Ping timeout: 245 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
AlexRussia has quit [Ping timeout: 245 seconds]
SomeDamnBody has quit [Ping timeout: 246 seconds]
Axle has joined #ocaml
reem has quit [Remote host closed the connection]
reem has joined #ocaml
mcclurmc_ has joined #ocaml
mcclurmc has quit [Read error: Connection reset by peer]
ygrek has quit [Ping timeout: 252 seconds]
mcclurmc_ has quit [Remote host closed the connection]
rgrinberg1 has quit [Quit: Leaving.]
swgillespie has joined #ocaml
MooseAndCaml has joined #ocaml
AlexRussia has joined #ocaml
rgrinberg has joined #ocaml
<MooseAndCaml>
hi, i recently had to reinstall homebrew opam etc. For some reason Emacs isn't seeing ocaml, though it works in the shell. When I attempt to run the toplevel I get "Searching for program: No such file or directory, ocaml"
<MooseAndCaml>
It's finding Taureg but not merlin "Warning (initialization): An error occurred while loading `/Users/caseybasichis/.emacs.d/init.el': File error: Cannot open load file, No such file or directory, merlin"" Any ideas?
MercurialAlchemi has joined #ocaml
baz_ has joined #ocaml
iorivur has quit [Ping timeout: 264 seconds]
<mcc>
mooseandcaml: here is a very silly question. have you tried closing the terminal in which you are running emacs, then opening a new one and trying again?
Axle has quit [Quit: Leaving.]
iorivur has joined #ocaml
robink has quit [Ping timeout: 245 seconds]
robink has joined #ocaml
bjorkintosh has joined #ocaml
jao has quit [Remote host closed the connection]
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
ygrek has joined #ocaml
keen__________57 has joined #ocaml
keen__________56 has quit [Ping timeout: 256 seconds]
jao has quit [Ping timeout: 240 seconds]
milosn has joined #ocaml
FrankieDux has left #ocaml ["WeeChat 1.1.1"]
baz_ has quit [Quit: baz_]
baz_ has joined #ocaml
tane has joined #ocaml
antkong has quit [Quit: antkong]
Haudegen has quit [Ping timeout: 250 seconds]
psy_ has quit [Quit: Leaving]
* MercurialAlchemi
burns oasis with a flamethrower
<MercurialAlchemi>
"yeah, let's use a safe language but totally not warn you when I don't manage to parse a section of my configuration file"
jneen is now known as jneen|zzz
Haudegen has joined #ocaml
baz_ has quit [Quit: baz_]
<adrien>
MercurialAlchemi: patch welcome! :)
<adrien>
and that's serious
<MercurialAlchemi>
bit you too?
milosn has quit [Remote host closed the connection]
<adrien>
no but not having these small contributions is what makes oasis not as good as it could be
<adrien>
it's the small contributions that make something pleasant to use :)
<MercurialAlchemi>
well
<MercurialAlchemi>
I'll think on it :)
<bitemyapp>
adrien: *hand wobble* it can be a little difficult to convince the maintainers to not base the design of a library or application on behaviors that aren't type-safe.
<MercurialAlchemi>
it looks like it's a "feature"
<bitemyapp>
adrien: those kinds of changes do not often happen incrementally, although you might "prove them out" in the small.
<MercurialAlchemi>
if you use the wrong separator for the plugins, it stores what it couldn't parse in an option
<MercurialAlchemi>
I must confess I have no idea why you would want to do that
testcocoon has quit [Quit: Coyote finally caught me]
rgrinberg has quit [Quit: Leaving.]
testcocoon has joined #ocaml
psy_ has joined #ocaml
MercurialAlchemi has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
manizzle has joined #ocaml
jave has quit [Ping timeout: 252 seconds]
kandu has quit [Ping timeout: 252 seconds]
pippijn has quit [Ping timeout: 252 seconds]
kerneis_ has quit [Ping timeout: 252 seconds]
destrius has quit [Ping timeout: 252 seconds]
voglerr2 has quit [Ping timeout: 252 seconds]
kandu has joined #ocaml
pippijn has joined #ocaml
kandu is now known as Guest22540
kerneis_ has joined #ocaml
baz_ has joined #ocaml
jave has joined #ocaml
destrius has joined #ocaml
voglerr2 has joined #ocaml
Simn has joined #ocaml
milosn has joined #ocaml
andreypopp__ has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
matason has joined #ocaml
ghostpl has joined #ocaml
dsheets has quit [Ping timeout: 264 seconds]
mistym has quit [Ping timeout: 245 seconds]
mort___ has joined #ocaml
mistym has joined #ocaml
Kakadu has joined #ocaml
larhat has joined #ocaml
<Drup>
adrien: the issue is that reforming the oasis config parsing is not a "small" contribution
<Drup>
it's a "let's replace the whole front end" contribution
<Drup>
given the code quality of oasis's code base
<Drup>
...
rand000 has joined #ocaml
octachron has joined #ocaml
milosn has quit [Ping timeout: 255 seconds]
milosn has joined #ocaml
<adrien_znc>
done by only one man in an evolving landscape
<adrien_znc>
it's difficult to avoid that
<adrien_znc>
no feedback
Metapioca has left #ocaml [#ocaml]
ocp has joined #ocaml
dsheets has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
Sim_n has joined #ocaml
Simn has quit [Ping timeout: 252 seconds]
testcocoon has joined #ocaml
yomimono has joined #ocaml
jonludlam has joined #ocaml
<MercurialAlchemi>
adrien_znc: I agree that it's easy to be uncharitable, and that you have to look at the context
_andre has joined #ocaml
thomasga has joined #ocaml
Reventlov has quit [Ping timeout: 245 seconds]
Reventlov has joined #ocaml
iorivur has quit [Ping timeout: 250 seconds]
Sim_n has quit [Ping timeout: 252 seconds]
mcc has quit [Quit: This computer has gone to sleep]
Simn has joined #ocaml
thomasga has quit [Quit: Leaving.]
Haudegen has quit [Ping timeout: 264 seconds]
ygrek has quit [Ping timeout: 250 seconds]
baz_ has quit [Quit: baz_]
mimrock has joined #ocaml
Haudegen has joined #ocaml
mort___ has quit [Quit: Leaving.]
RossJH has joined #ocaml
iorivur has joined #ocaml
<adrien_znc>
don't be charitable: contribute back! :D
mort___ has joined #ocaml
badon has quit [Read error: Connection reset by peer]
darkf_ has joined #ocaml
darkf_ has joined #ocaml
AlexRussia has quit [Ping timeout: 250 seconds]
AlexRussia has joined #ocaml
mfp has quit [Read error: Connection reset by peer]
darkf has quit [Ping timeout: 245 seconds]
matason has quit [Quit: Leaving...]
mfp has joined #ocaml
matason has joined #ocaml
psy_ has quit [Read error: No route to host]
darkf__ has joined #ocaml
darkf_ has quit [Ping timeout: 245 seconds]
Ptival has quit [Ping timeout: 245 seconds]
psy_ has joined #ocaml
Ptival has joined #ocaml
<MercurialAlchemi>
adrien_znc: if I find time, maybe
<MercurialAlchemi>
curious to see what's going to happen with assemblage, too
darkf__ is now known as darkf
<MercurialAlchemi>
something with no _tags file and no 4k loc generated code looks more appetizing, I have to say
thomasga has joined #ocaml
thomasga has quit [Client Quit]
Simn has quit [Ping timeout: 252 seconds]
thomasga has joined #ocaml
ontologiae has joined #ocaml
skinkitten has joined #ocaml
mimrock has quit [Quit: This computer has gone to sleep]
mort___ has quit [Quit: Leaving.]
destrius1 has joined #ocaml
ollehar has quit [Remote host closed the connection]
chinglish has joined #ocaml
uris77 has joined #ocaml
mort___ has joined #ocaml
jonludlam has quit [Quit: Coyote finally caught me]
<vbmithr>
Yo
<vbmithr>
I'w wondering what's worse, fixing the OCaml ecosystem to work correctly on architectures that does not have a native backend, or write a native backend
<vbmithr>
I'd like to use OCaml on mips (the ones found in routers).
<def`>
there was a mips backend, and since imgtech mips board, there might be renewed interest in a mips backend
<vbmithr>
A guy (rixed) had ported the mips backend to 4.00:0
<vbmithr>
But it does not work on my CPU
<vbmithr>
It was targetting lemote computers
<vbmithr>
I have a MIPS 74Kc V4.12
jabesed has quit [Ping timeout: 245 seconds]
<dmbaturin>
def`: Got a link or name of that imgtech board?
<dmbaturin>
vbmithr: Only endianness issues, or there's something else?
<vbmithr>
dmbaturin: I obviously need wifi built into routers :)
<vbmithr>
dmbaturin: And it's 15€/board…
Submarine has quit [Ping timeout: 245 seconds]
<vbmithr>
companion_cube: I'd like to have a normal ocaml env
<vbmithr>
companion_cube: with opam and stuff
<companion_cube>
hmm, can't opam run with bytecode?
<companion_cube>
(I have no idea)
<vbmithr>
companion_cube: in practice no
<vbmithr>
companion_cube: in theory probably yes
<vbmithr>
nobody uses ocaml bytecode pretty much
<vbmithr>
I would have to fix all the projects I'm using or so
<vbmithr>
the MIPS backend is a much quicker way to achieve the same thing
<Drup>
most projects uses "best"
<companion_cube>
hmmmm
<companion_cube>
I plaid guilty of this one :s
<Drup>
so, bytecode when that's the only thing available.
<companion_cube>
plead*
<Drup>
and any people not using "best" should be sentenced by shotgun (and his buildsystem patched)
ghostpl has quit [Remote host closed the connection]
* companion_cube
hides from Drup
* pippijn
uses both
<pippijn>
most of the time
<vbmithr>
Ocamlbuild knows of no rules that apply to a target named src/unix/dlllwt-unix_stubs.ml
<vbmithr>
error when trying to build the latest lwt under my mips setup
<pippijn>
dllllvm
Guest22540 is now known as kandu
<companion_cube>
Drup: do you also think not using "best" is ok if it's only for tests/benchmarks?
<dmbaturin>
vbmithr: Try -mips4 (or -mips3) as option.
<Drup>
companion_cube: there is literally no reason not to
<companion_cube>
well, I remember it would compile some stuff into bytecode if I used "best"
<companion_cube>
and bytecode sucks for benchmarks
<vbmithr>
Drup: the biggest problew with non-native backend is the C bindings
<Drup>
companion_cube: it should not
<vbmithr>
dmbaturin: option to what ? ./configure ?
<Drup>
companion_cube: if you are on x86, it should never compile to bytecode, if so, it's a bug
<Drup>
vbmithr: yeah ...
yminsky has quit [Quit: yminsky]
<companion_cube>
ok, it's when I specify nothing that it compiles to bytecode
<Drup>
yes, default is byte
<dmbaturin>
vbmithr: To the GNU assembler. You can get the assembly file with ocamlopt -S. I'm not sure what is the correct procedure for assembling and linking the file by hand.
<vbmithr>
right, thanks.
<vbmithr>
I'll try this.
<dmbaturin>
But at least you can see if it assembles cleanly.
Submarine has joined #ocaml
<companion_cube>
Drup: ok, I'll change my repo to this then
<companion_cube>
incrementally, most likely
skinkitten has joined #ocaml
<vbmithr>
dmbaturin: Hum, no, nothing works.
<vbmithr>
I tried the different -mips options
<vbmithr>
If you do as ... on *.s files, it should work out of the box right ?
<dmbaturin>
Yeah, I guess. Gives exact same errors with -mips4?
reem has quit [Remote host closed the connection]
<vbmithr>
no, some less errors
<vbmithr>
opcode not supported on this processor: mips32r2 (mips32r2) `daddu $gp,$25,$24'
<vbmithr>
So first of all the backend does not even generates code for my CPU :)
<vbmithr>
But there are errors that are not related to backend
<vbmithr>
missing ')'
<vbmithr>
that kind of errors are scary :)
<dmbaturin>
Yeah, missing bracket is puzzling.
<dmbaturin>
daddu is from pretty recent MIPS AFAIR.
<vbmithr>
lui $24, %hi(%neg(%gp_rel(camlPervasives__loop_1128)))
<vbmithr>
All those lines are supposed to be wrong (invalid operand, missing ) )
ghostpl has joined #ocaml
<adrien_znc>
unaligned?
<adrien_znc>
but I'm trying to think of someone using ocaml on mips and...
skinkitten has quit [Ping timeout: 265 seconds]
<adrien_znc>
and imho, poke compiler devs to see how much support a native backend would get
<adrien_znc>
also, look at what debian does
psy_ has quit [Ping timeout: 250 seconds]
<vbmithr>
what doe debian do ?
<adrien_znc>
patch things? :D
bytbox has quit [Remote host closed the connection]
<vbmithr>
Ah, yes.
<vbmithr>
The code I'm using is totally unsupported
<vbmithr>
I got it from one guy that ported the old mips backend from OCaml 3.x to the 4.00.0 version for its lemote CPU
<adrien_znc>
who btw?
ebzzry has joined #ocaml
<vbmithr>
Cedric Cellier AKA rixed
<adrien_znc>
ah, ok, not the one I had in mind
psy_ has joined #ocaml
<adrien_znc>
too many crazy people on this channel with lemmote machines :D
<dmbaturin>
adrien_znc: I'd like to get a lemote machine.
<adrien_znc>
you can get a livebox too :D
<dmbaturin>
Livebox?
jonludlam has joined #ocaml
<vbmithr>
dmbaturin: there is a way to get lemote machies :D
rgrinberg has quit [Quit: Leaving.]
<dmbaturin>
In fact, I was going to buy a lemote machine, but reseller that I was going to buy it from suddenly disappeared and the manufacturer themselves never replied to my requests.
rgrinberg has joined #ocaml
<adrien_znc>
dmbaturin: livebox is a set top box from a french isp and I think they have some mips inside
<dmbaturin>
In the end I've bought an asus x200ca. Machine with non-braindead UEFI and no need for proprietary drivers: yes; MIPS to play with: no. :)
paradoja has joined #ocaml
enitiz has joined #ocaml
nicoo has quit [Remote host closed the connection]
<vbmithr>
There is the imgtech creator board to play on mips
<vbmithr>
there is a dual core mips in it… quite powerful :)
<vbmithr>
or any openwrt-based router
nicoo has joined #ocaml
enitiz has quit [Read error: No route to host]
<dmbaturin>
The imgtec board is powerful enough to host the toolchain. Cross-compilation and a device without writable filesystem is something you can do for work, but not for fun. :)
<adrien_znc>
cross-compilation is probably easier :P
Hannibal_Smith has joined #ocaml
andreypopp__ has joined #ocaml
oscar_toro has joined #ocaml
<vbmithr>
my router has usb ports
<vbmithr>
so I have a filesystem
<vbmithr>
and I have the toolchain on the router too
ollehar has joined #ocaml
oscar_toro has left #ocaml [#ocaml]
thomasga has joined #ocaml
ollehar has quit [Client Quit]
ygrek has joined #ocaml
mort___1 has joined #ocaml
dsheets has quit [Ping timeout: 246 seconds]
mort___ has quit [Ping timeout: 250 seconds]
Algebr has joined #ocaml
nicoo has quit [*.net *.split]
NoNNaN has quit [*.net *.split]
bytbox has joined #ocaml
oscar_toro has joined #ocaml
enitiz has joined #ocaml
badkins has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
oscar_toro has quit [Quit: Leaving.]
oscar_toro has joined #ocaml
testcocoon has joined #ocaml
oscar_toro has left #ocaml [#ocaml]
oscar_toro1 has joined #ocaml
dsheets has joined #ocaml
<Algebr>
I'm not clear as to the purpose of begin/end, it seems like clutter
<Drup>
it's like parens
<Drup>
(literally)
<Drup>
I would even say
<Drup>
begin literally end
<Algebr>
So its just a matter of preference between extra parens or begin/end?
<def`>
(not even syntactically :P, only in expression language, not in patterns, modules, types …)
<Drup>
def`: and you can't mix them :D
<def`>
I wanted to write begin 'a, 'b end Hashtbl.t so much :'
<MercurialAlchemi>
def`: you're a bad person
enitiz has quit [Remote host closed the connection]
Yoyobb has joined #ocaml
<Algebr>
I don't understand how this code gets away without having an else for its if expressions: let echo () =
<Algebr>
let len = Array.length Sys.argv in
<Algebr>
if len > 1 then
<Algebr>
begin
<Algebr>
let () = print_string Sys.argv.(1) in
<Algebr>
for i = 2 to len - 1 do
<Algebr>
print_char ' ';
<Algebr>
print_string Sys.argv.(i);
<Algebr>
done;
<Algebr>
print_newline ();
<Algebr>
end;;
<Algebr>
echo ();;
<adrien_znc>
because the expr inside the "then" is of type unit
<Drup>
Algebr: please use pastebin.
<Algebr>
<Algebr>
Drup: sorry, I thought for a small snippet it would be okay
<adrien_znc>
and imho omitting the "else ()" is poor style
<adrien_znc>
Algebr: small is <=
<adrien_znc>
5 lines
ontologiae has quit [Ping timeout: 245 seconds]
<Drup>
Algebr: it is, with small <= 2 lines
<adrien_znc>
that's "tiny" :P
Yoyobb has quit [Ping timeout: 246 seconds]
<MercurialAlchemi>
I wonder if there is an equivalent of OCaml/F# on the JVM
<Drup>
Scala ? :D
<Drup>
(I think Clojure is more sensible than scala)
<MercurialAlchemi>
something sensible
tani has joined #ocaml
<tani>
ocamljava seems alright :)
<companion_cube>
how is clojure sensible? it's totally dynamically typed
<MercurialAlchemi>
Scala is too complicated, and Clojure is dynamic
<Drup>
companion_cube: I didn't try, but I think it's less terrible than scala
<companion_cube>
I don't think so
<MercurialAlchemi>
hm
<companion_cube>
you can restrict yourself to a subset of scala
<MercurialAlchemi>
tani: is ocamljava a real thing with real users and an interop story?
<MercurialAlchemi>
companion_cube: I heard that one before
<tani>
MercurialAlchemi, it's coming that way, at least there seams to be active dev
bytbox has quit [Remote host closed the connection]
<dmbaturin>
MercurialAlchemi: There's also Frege.
<tani>
seems*
<Drup>
I +1 def`, ceylon seems nice
<MercurialAlchemi>
dmbaturin: Haskell-on-the-JVM? Isn't that abandoned?
<dmbaturin>
MercurialAlchemi: Not sure if it's actively developed, I never used it in production.
tane has quit [Ping timeout: 250 seconds]
<dmbaturin>
There once was SML for JVM too. :)
<MercurialAlchemi>
hoho
enitiz has joined #ocaml
<MercurialAlchemi>
at a glance, ceylon doesn't look entirely unreasonable
<companion_cube>
MercurialAlchemi: well people do restrict themselves to a subset of OCaml
<companion_cube>
namely the one without objects, for most cases
<companion_cube>
and it works fine
<dmbaturin>
companion_cube: Restrict? I was under impression most people don't use it because the language doesn't force it on them. :)
mort___1 has quit [Quit: Leaving.]
<dmbaturin>
To me restricting yourself is something like Not using convenient but non-standard extensions for portability and the like.
olauzon has joined #ocaml
hilquias has joined #ocaml
Simn has joined #ocaml
thomasga has quit [Quit: Leaving.]
mort___ has joined #ocaml
dsheets has quit [Ping timeout: 255 seconds]
<MercurialAlchemi>
companion_cube: I suppose you have a point, but it's question of philosophy and ecosystem - eg, the stdlib doesn't use the object system
<MercurialAlchemi>
and sanity too, though I haven't played enough with the object system to judge if it is sane
<companion_cube>
well, in scala some people don't use the stdlib either
<MercurialAlchemi>
I'm interested in systems that do not make it easy to create a 5-level inheritance tower of abstract classes
<MercurialAlchemi>
(I wish I was exagerating)
struktured has quit [Ping timeout: 245 seconds]
<dmbaturin>
MercurialAlchemi: Well, "Good languages help you write good programs, but no language can prevent you from writing bad programs".
Yoyobb has joined #ocaml
<MercurialAlchemi>
dmbaturin: true
<MercurialAlchemi>
on the other hand, good languages make it harder to write shitty code
uris77 has quit [Ping timeout: 264 seconds]
<MercurialAlchemi>
you can write object oriented ocaml with mutation and refs everywhere, but you'd have to be an idiot to notice it's completely non-idiomatic
<MercurialAlchemi>
while writing soup in PHP *is* idiomatic
jneen|zzz is now known as jneen
<Yoyobb>
Hi all. I'm looking for experts in the value restiction. When using combinators (e.g. parsing combinators or pretty-printing combinators), one is often forced to eta-expand expressions otherwise we end up with weak type variables or even errors that stop compilation.
<Yoyobb>
Naïvely, I am inclined to think that the compiler could do the following: if the type system says that a definition has a function type with weak variables, eta-expand it and then try to give it a type again. If weak variables have then disappeared, keep this as the type of the definition.
<companion_cube>
eta-expansion is a fact of life in OCaml :D
Yoyobb_ has joined #ocaml
<def`>
Yoyobb_: but eta-expansion changes the semantics by delaying effects
<def`>
that sounds like a bad idea, even if it would also benefit performance
darkf has quit [Quit: Leaving]
<companion_cube>
maybe the compiler could issue a warning that suggests eta-expanding, for beginners
<Yoyobb_>
def` : I am not sure it it changes something but I'm not saying we should eta-expand the OCaml code, rather that the type system may do as if the value had been eta-expanded.
<def`>
Yoyobb_: and get unsound, great.
Yoyobb has quit [Ping timeout: 246 seconds]
<Yoyobb_>
def`: this is not what I'm saying. I'm trying to understand, not to have an incorrect type system.
<def`>
:), sorry if I sound harsh, that wasn't my intent
<Yoyobb_>
companion_cube: sure, the error message here is rather cryptic.
<Yoyobb_>
def`: no problemo :)
<def`>
eta-expanding means freezing effects. When you apply some value, the function may allocate a mutable cell for instance, even if the application is partial
<def`>
basically, when you have "f: a -> b -> c", doing "f a" isn't necessary a partial application
<Yoyobb_>
It's just that the value restriction is usaully explained in terms of imperative features. But with combinators, you may have totally pure code and then the restriction comes in because you do not have a value on the RHS of your definition.
<Yoyobb_>
OK.
<Yoyobb_>
thanks for this explanation
<ggole>
eta-expansion when there is no side effect sounds like something that the compiler should do
<ggole>
(Strictly for performance, that is.)
<def`>
it may executes code using only "a", and returns a new application.
<companion_cube>
there are so many things the compiler should do for performance
<def`>
ggole: yep, but you need the definition of the function being applied (or a stronger properties than those exposed by ocaml type system to do so)
<ggole>
I think all you'd need is for the application to be known and a bit of info
<ggole>
Right.
<def`>
companion_cube +1 ;)
<companion_cube>
f : a -> (b -> c) partial_app
<ggole>
But known applications are already optimized in some cases, eg, cross module inlining
<companion_cube>
where 'a partial_app = 'a
<companion_cube>
;)
<def`>
or juste a pure arrow
<def`>
-pure->
<companion_cube>
or just an effect system
<companion_cube>
\o/
<def`>
-{raise Not_found}-> :P
<companion_cube>
f : a -mut-> b -> c
<companion_cube>
well
<companion_cube>
it would be nice
<def`>
well, it's a compromise between usability and expressivity :)
<Yoyobb_>
and modularity, as is shown in Leroy's PhD thesis
<def`>
yep
<Yoyobb_>
otherwise a finer typing could be envisaged
<def`>
(I included modularity in usability, but you're right, modularity is more formal :))
<Yoyobb_>
as a matter of fact, we may possibly have this w/o an effect sytsem.
Yoyobb has joined #ocaml
jonludlam has quit [Quit: Coyote finally caught me]
uris77 has joined #ocaml
<Yoyobb>
Bob Harper wrote on his blog that they had experimented a Haksell-like approach some years ago. Having effects in an IO-like monad.
<Yoyobb>
So that impur code is marked in the type systems.
Yoyobb_ has quit [Ping timeout: 246 seconds]
ebzzry has quit [Remote host closed the connection]
skinkitten has joined #ocaml
<companion_cube>
def`: how hard is it to have an effect system, actually?
Yoyobb has quit [Ping timeout: 246 seconds]
<companion_cube>
it looks to me like it's mostly similar to raw polymorphism in types
<def`>
companion_cube: I think the correct question is what effects do you want
<companion_cube>
yeah, I see what you mean
<companion_cube>
even side-effects should be seen as pure if they don't escape
<def`>
for instance, and there are plenty of effects
<companion_cube>
personally, I'd like at least exceptions and some indication of IO
<def`>
(afk)
destrius has quit [Quit: Leaving.]
<chris2>
ocamloptp: profiling is incompatible with the -pp option
<chris2>
:(
ocp has quit [Quit: Leaving.]
* chris2
hopes core runs without camlp4 soon
mcclurmc has joined #ocaml
enitiz has quit [Quit: Leaving]
bytbox has joined #ocaml
<dmbaturin>
vbmithr: Fun fact: ocaml on the ARM version of debian is bytecode-only.
<dmbaturin>
At least in wheezy.
destrius1 has quit [Quit: Leaving.]
kapil__ has quit [Quit: Connection closed for inactivity]
shinnya has quit [Ping timeout: 240 seconds]
dsheets has joined #ocaml
thomasga has joined #ocaml
slash^ has joined #ocaml
slash^ has left #ocaml [#ocaml]
slash^ has joined #ocaml
ontologiae has joined #ocaml
MercurialAlchemi has quit [Remote host closed the connection]
<MooseAndCaml>
Characters 20-21: let a = { Midi.k.om = 1; metric_om = (4,4,4); pitch = 64; dur = 240; v = 64; k_track = 0; };; ^ Error: Syntax error
<companion_cube>
oh. the .k is wrong
<companion_cube>
let a = { Midi.om = 1; metric_om = (4,4,4); .... }
<companion_cube>
the record field names are enough for the compiler to infer the type k
<MooseAndCaml>
ahhhh :)
<MooseAndCaml>
what happens in cases where there is ambiguity?
vanila has joined #ocaml
<ggole>
Last one wins, and you get a warning
<MooseAndCaml>
ok, more modules in that case. Off for some coffee. Muchas gracias
thomasga has quit [Quit: Leaving.]
MooseAndCaml has quit [Ping timeout: 246 seconds]
jonludlam has joined #ocaml
bytbox has quit [Remote host closed the connection]
Hannibal_Smith has quit [Quit: Leaving]
ollehar has joined #ocaml
<dmbaturin>
How does js_of_ocaml solve the problem that bytecode format is not guaranteed to be the same between ocaml versions?
<companion_cube>
I suppose it's adapted to the version of ocaml it's compiled with
jonludlam has quit [Quit: Coyote finally caught me]
ptc has joined #ocaml
ptc is now known as Guest29930
thomasga has joined #ocaml
tani has quit [Quit: Verlassend]
milosn has quit [Ping timeout: 244 seconds]
baz_ has joined #ocaml
baz_ has quit [Client Quit]
badkins has quit [Read error: Connection reset by peer]
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
Haudegen has quit [Ping timeout: 245 seconds]
Haudegen has joined #ocaml
psy_ has quit [Ping timeout: 252 seconds]
badon has joined #ocaml
matason has quit [Quit: Later!]
<MercurialAlchemi>
dmbaturin: does js_of_ocaml compile to JS from the bytecode, or from an IR?
ebzzry has joined #ocaml
<MercurialAlchemi>
though I don't know how stable these are either...
<companion_cube>
it comoiles to JS from the bytecode
iorivur has quit [Ping timeout: 245 seconds]
<MercurialAlchemi>
ok
* MercurialAlchemi
is impatient to try out eliom
ygrek has quit [Ping timeout: 252 seconds]
ghostpl has quit [Remote host closed the connection]
Guest29930 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
WraithM has joined #ocaml
Cypi_ is now known as Cypi
Submarine has joined #ocaml
Submarine has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
Haudegen has joined #ocaml
badkins has joined #ocaml
bytbox has joined #ocaml
andreypopp__ has quit [Quit: Connection closed for inactivity]
yomimono has quit [Ping timeout: 246 seconds]
jwatzman|work has joined #ocaml
<Algebr>
I keep getting this warning from ocp-indent in emacs and don't quite understand what its warning me about: Warning: ocp-indent input contains indentation by tabs, partial indent will be unreliable.
<Algebr>
<Algebr>
but I haven't use the tab key at all...
<Drup>
dmbaturin: simple, it checks the version and act accordingly :p
<dmbaturin>
Drup: Ah, this makes sense.
<Drup>
the format doesn't change much
<Drup>
only new instructions
<Drup>
so you only have to handle all the instructions
<ggole>
Algebr: are there tab characters in the file?
<dmbaturin>
Some editors may convert spaces to tabs, depending on the configuration.
<dmbaturin>
Drup: So ocaml bytecode is forward-compatible?
psy_ has joined #ocaml
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
<Drup>
it is in practice, and it evolves very slowly
rgrinberg has quit [Quit: Leaving.]
<Drup>
I'm not sure it's guaranteed, though.
ptc has joined #ocaml
ptc is now known as Guest54114
thomasga has quit [Ping timeout: 250 seconds]
<Algebr>
ggole: oops, there were, just checked with whitespace-mode
q66 has joined #ocaml
<ggole>
If you don't want those, set indent-tabs-mode to nil
<ggole>
(And reindent the whole file.)
dsheets has quit [Ping timeout: 256 seconds]
paradoja has quit [Ping timeout: 250 seconds]
rgrinberg has joined #ocaml
Hannibal_Smith has joined #ocaml
milosn has joined #ocaml
ollehar1 has joined #ocaml
Algebr has quit [Remote host closed the connection]
ollehar1 has quit [Quit: ollehar1]
rand000 has quit [Quit: leaving]
Kakadu has quit [Quit: Page closed]
RossJH has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rand000 has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
MrScout__ has joined #ocaml
milosn has quit [Ping timeout: 245 seconds]
MrScout_ has quit [Ping timeout: 245 seconds]
Denommus has joined #ocaml
larhat has quit [Quit: Leaving.]
<MercurialAlchemi>
Drup: I see there is a 'cohttp' branch of ocsigenserver - what's the plan? replace the guts by cohttp?
<Drup>
yes
<MercurialAlchemi>
sounds good
<MercurialAlchemi>
but looks like dev is on hold
<MercurialAlchemi>
that what you meant when you were talking about not having enough resources to maintain ocsigen?
<Drup>
sort of
<Drup>
that's one of the things
rgrinberg has quit [Quit: Leaving.]
<MercurialAlchemi>
:(
rgrinberg has joined #ocaml
<Drup>
it's not really the dev that is on hold
mimrock has quit [Quit: This computer has gone to sleep]
<Drup>
since the dev is pretty much done
<Drup>
it's the integration
<Drup>
which is quite a different and annoying task, since we need to review and clean up everything
_andre has quit [Quit: leaving]
<MercurialAlchemi>
right
<rgrinberg>
also, no tests :/
<Drup>
there is a testsuite in eliom, but nothing automated, no
<MercurialAlchemi>
bah, if it compiles, it works :)
<rgrinberg>
yes, we ocaml programmers are too hip for testing
<MercurialAlchemi>
(to be fair, it may not work the first time, but you can get a suprising amount of things working if you add enough types)
<tcpc>
instead, we're proving the good behavior with coq
milosn has joined #ocaml
<flux>
"every problem in computer science can be solved by adding more types - except the problem of too complex types" ?
<rgrinberg>
the problem of complex types is solved by smarter humans :D
<Drup>
or smarter types.
<thizanne>
or complex humans.
<mrvn>
flux: we have 5 types. Lets add a new type to unify them all. Oh no, now we have 6 types.
baz_ has joined #ocaml
uris77 has quit [Quit: leaving]
shinnya has joined #ocaml
Denommus has quit [Remote host closed the connection]
Denommus has joined #ocaml
<mrvn>
flux: ever had mutualy recursive polymorphic objects in seperate modules?
Algebr has joined #ocaml
Denommus` has joined #ocaml
baz_ has quit [Quit: baz_]
Denommus has quit [Ping timeout: 265 seconds]
WraithM has quit [Quit: leaving]
rossberg has quit [Ping timeout: 245 seconds]
<flux>
no
<flux>
because I'm smart enough to put them into one module ;)
<flux>
the types at least
rossberg has joined #ocaml
<flux>
at times it's a "design smell" that you need such recursive data structures.. but at other times it's just great to have, and then ocaml isn't really helping :(
Denommus` is now known as Denommus
swgillespie has joined #ocaml
MrScout__ has quit [Remote host closed the connection]
MrScout_ has joined #ocaml
travisbrady has joined #ocaml
fraggle-boate has quit [Read error: Connection reset by peer]
mimrock has joined #ocaml
hugo has joined #ocaml
<mrvn>
plus there is a bug with recursive objects where need to lift one of them out
Denommus has quit [Ping timeout: 252 seconds]
hugo is now known as Guest96222
<ggole>
It is quite annoying that modules can't (sanely) mutually recurse
<ggole>
Occasionally it's exactly what you want
<ggole>
And then you get to jump through silly hoops
<mrvn>
can ppx make it nicer?
<Drup>
modules can recurse, you only have to give the types
<mrvn>
but the type would already be in the mli. can you include them with ppx?
slash^ has quit [Read error: Connection reset by peer]
<Drup>
ah, yes ppx import
Guest96222 has quit [Client Quit]
<ggole>
Top level modules can't mutually recurse
<badkins>
I'm working through a Wadler paper on monads w/ examples in Haskell and coding up equivalent OCaml. Am I right that for "data Term = Con Int | Div Term Term", the equiv. OCaml is "type term = Con of int | Div of term * term" i.e. tuples are required?
Guest96222 has joined #ocaml
<mrvn>
Drup: I know import exists. But does it work in the recursive module syntax?
<Drup>
mrvn: it's the same as normal module syntax
<rgrinberg>
badkins: yes
mimrock has quit [Client Quit]
<ggole>
badkins: they aren't exactly tuples
<badkins>
thanks - I guess it's no big deal, but Div foo bar looks nicer than Div (foo,bar) I suppose it's just what you're used to
mimrock has joined #ocaml
<ggole>
OCaml likes to have all sorts of application syntaxes for some reason
<badkins>
even with Haskell, I don't suppose partial application is supported for constructors - if it is, I guess that would be an advantage of curried constructors
<mrvn>
having Foo a b c syntax but not allow partial application would be wiered
<ggole>
Haskell allows partial application of constructors and type constructors IIRC
<ggole>
In OCaml, you have to eta-expand.
<hmg>
Just wondering: a paper I recently read had a cited an Ocaml tool called OcamlExc, which is a static analyzer that tries to figure out what exceptions can be trhown by your functions and when you are forgetting to use a try-with around an exception-raising function. Has anyone here used that or some other similar static analysis in the past?
<mrvn>
hmg: not yet. But my own toy language does that (on the design paper at least)
<hmg>
does your language have explicit "raises" annotations, like Java?
<hmg>
or does it infer everything?
<mrvn>
both
ggole has quit []
Haudegen has quit [Ping timeout: 265 seconds]
<mrvn>
if you annotate it checks that you have what you wrote
<hmg>
interesting. I'm curious about this issue bc exceptions are a bit of ML where it actgs more like a dynamically typed language than as a statically typed one.
tane has joined #ocaml
<hmg>
so I'm curious if there are any static analyzers for exceptions with a bit more widespread use.
Haudegen has joined #ocaml
fraggle-boate has joined #ocaml
ontologiae has quit [Ping timeout: 245 seconds]
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
rossberg has quit [Ping timeout: 245 seconds]
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
rossberg has joined #ocaml
leowzukw has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
travisbrady has quit [Quit: travisbrady]
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
rossberg has quit [Ping timeout: 245 seconds]
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
rossberg has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
Denommus has joined #ocaml
leowzukw has quit [Quit: Lost terminal]
martintrojer has joined #ocaml
RossJH has joined #ocaml
Denommus has quit [Client Quit]
martintrojer has quit [Max SendQ exceeded]
Denommus has joined #ocaml
martintrojer has joined #ocaml
justinjaffray has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
uris77 has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
Haudegen has quit [Ping timeout: 264 seconds]
martintrojer has joined #ocaml
Denommus` has joined #ocaml
Denommus has quit [Ping timeout: 256 seconds]
Guest54114 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Kakadu has joined #ocaml
Haudegen has joined #ocaml
ptc has joined #ocaml
ptc is now known as Guest79384
ontologiae has joined #ocaml
mimrock has quit [Quit: This computer has gone to sleep]
<flux>
sadly ocamlexc has fallen out of maintenance years ago
<flux>
and I understand the problem is not trivial, in the presence of first-class functions - and modules
mimrock has joined #ocaml
claudiuc has joined #ocaml
<hmg>
@flux: the problem being not trivial is exactly why Im interested in it :) Do you know if there were other tools similar to ocamlexc or was it the only one that checked exceptions like that
Denommus` has quit [Ping timeout: 252 seconds]
<flux>
hmg, as far as I know, there are no other tools like that. there have been some approaches in encoding errors as polymorphic variants instead of exceptions, but I don't think it has really gained traction.
<hmg>
I can imagine why. Encoding erros with variants means you need to satisfy the compiler all the time which can be *very tricky*, specially bc you need some advanced kinds of polymorphism to be able to track the sets of exceptions
<hmg>
with unchecked exceptions the compiler never has false positives
Denommus has joined #ocaml
Denommus has quit [Client Quit]
mimrock has quit [Quit: This computer has gone to sleep]
mimrock has joined #ocaml
<Algebr>
Say you had something like let foo = Unix.getcwd (). Is it bad practice to do this or should it be let foo ()?
ghostpl has joined #ocaml
ghostpl has quit [Ping timeout: 256 seconds]
Thooms has joined #ocaml
travisbrady has joined #ocaml
Guest79384 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bytbox has quit [Remote host closed the connection]
<Drup>
depends, executable or library ?
<Algebr>
executable
<Drup>
then it's fine
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ptc_ has joined #ocaml
hmg has quit [Ping timeout: 245 seconds]
kbp has joined #ocaml
ollehar1 has joined #ocaml
<flux>
personally I like to have such things flow from the main function. it becomes tricky to move code around to other files if you have values like that.
<flux>
..and by main function I mean: let main () = .. let () = main () or possibly let () = main (List.tl (Array.to_list Sys.argv))
kbp has quit [Ping timeout: 252 seconds]
Anarchos has joined #ocaml
kbp has joined #ocaml
kbp has left #ocaml [#ocaml]
ptc_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ollehar1 has quit [Ping timeout: 246 seconds]
ptc has joined #ocaml
ptc is now known as Guest13163
Guest13163 has quit [Read error: Connection reset by peer]
ptc_ has joined #ocaml
<MercurialAlchemi>
flux: yeah
<MercurialAlchemi>
I even that in shell scripts
<MercurialAlchemi>
well, let _ = Lwt_main.run() is fine
jonludlam has joined #ocaml
swgillespie has joined #ocaml
<Algebr>
ah, neat thanks
rossberg has quit [Ping timeout: 245 seconds]
rossberg has joined #ocaml
rand000 has quit [Quit: leaving]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
rgrinberg has quit [Quit: Leaving.]
badon has quit [Quit: Leaving]
swgillespie has joined #ocaml
hmg has joined #ocaml
rgrinberg has joined #ocaml
bytbox has joined #ocaml
bytbox has quit [Remote host closed the connection]
badon has joined #ocaml
Hannibal_Smith has quit [Quit: Leaving]
alkoma has joined #ocaml
alkoma has quit [Remote host closed the connection]
badkins has quit []
hmg has quit [Quit: Leaving]
MercurialAlchemi has quit [Ping timeout: 255 seconds]
manizzle has quit [Read error: Connection reset by peer]
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
tane has quit [Quit: Verlassend]
ptc_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
manizzle has joined #ocaml
oscar_toro1 has quit [Ping timeout: 252 seconds]
jwatzman|work has quit [Quit: jwatzman|work]
ptc has joined #ocaml
ptc is now known as Guest59580
thomasga has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
manizzle has quit [Ping timeout: 246 seconds]
jwatzman|work has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
swgillespie has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mimrock has left #ocaml ["Leaving"]
jao has quit [Ping timeout: 255 seconds]
waneck has joined #ocaml
rgrinberg has joined #ocaml
Simn has quit [Read error: Connection reset by peer]
Denommus has joined #ocaml
S11001001 has quit [Ping timeout: 276 seconds]
reem has joined #ocaml
bobpoekert has quit [Read error: Connection reset by peer]
jeroud has quit [Ping timeout: 265 seconds]
mariusae has quit [Ping timeout: 272 seconds]
Kakadu has quit [Remote host closed the connection]
eventualbuddha has quit [Ping timeout: 265 seconds]
olauzon has quit [Quit: olauzon]
bytbox has joined #ocaml
reem has quit [Remote host closed the connection]
reem has joined #ocaml
Guest59580 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]