<mrvn>
For bindings you have to be carefull with function taking more than 5 arguments. They need 2 external functions, one for bytecode and one for native.
<Kakadu>
I don't have fucntions like that
<mrvn>
everything else I think should be identical.
thomasga has quit [Quit: Leaving.]
mort___ has joined #ocaml
CaptainRant has joined #ocaml
cago has joined #ocaml
<CaptainRant>
What does OCaml more than typechecking, that contributes to safety ?
<adrien>
safe string manipulations
samrat has quit [Quit: Computer has gone to sleep.]
<MercurialAlchemi>
def`: merlin can't be made to see packages from other switches?
<def`>
MercurialAlchemi: It can, if the switch is from the same compiler version
dsheets has joined #ocaml
<def`>
MercurialAlchemi: it just uses findlib, so whatever config you have from findlib will be used
Thooms has quit [Ping timeout: 246 seconds]
<MercurialAlchemi>
def`: right
* MercurialAlchemi
adds mentally another piece to the ocaml toolchain
* MercurialAlchemi
hopes he provisioned enough space
<def`>
:D
<def`>
ebzzry: what's wrong with your system :D?
jc1 has joined #ocaml
<def`>
what version did you compile merlin with?
jc1 has left #ocaml [#ocaml]
octachron has joined #ocaml
<MercurialAlchemi>
def`: comme to think of it, merlin doesn't seem to see the re package in a switch with ocaml 4.02.0 (as downloaded by opam), when merlin is in the system switch (ocaml 4.02.0, but Debian-packaged)
<def`>
MercurialAlchemi: man findlib
iorivur has quit [Ping timeout: 260 seconds]
Plazma has quit [Remote host closed the connection]
Plazma has joined #ocaml
<MercurialAlchemi>
def`: well, that's the funny thing
samrat has quit [Quit: Computer has gone to sleep.]
<MercurialAlchemi>
def`: ocamlfind finds re and re.str
samrat has joined #ocaml
paolooo has quit [Quit: Page closed]
<MercurialAlchemi>
def`: at least, the ocamlfind in the current switch, which is the one in the path
<def`>
yes, ocamlfind is from the currentlib
<def`>
you have to override variables from findlib.conf(5)
<def`>
to indicate which to use for merlin
waneck_ has quit [Ping timeout: 240 seconds]
<MercurialAlchemi>
ah, I was naively looking in the user's guide
<MercurialAlchemi>
I should have gone straight to the reference manual
<MercurialAlchemi>
ok, so if I tweak OCAMLPATH it works
<MercurialAlchemi>
beautiful
mort___ has quit [Ping timeout: 272 seconds]
thomasga has quit [Quit: Leaving.]
dsheets has quit [Ping timeout: 245 seconds]
_andre has joined #ocaml
shinnya has joined #ocaml
CaptainRant has joined #ocaml
dsheets has joined #ocaml
englishm_away is now known as englishm
fold has quit [Ping timeout: 272 seconds]
IbnFirnas has quit [Quit: Connection closed for inactivity]
shinnya has quit [Ping timeout: 250 seconds]
* whitequark
exhales
<whitequark>
I maybe hope we could get a properly findlib-ized ppx_deriving to work with 4.02.x
<whitequark>
the chances seem fairly slim though
<whitequark>
it more or less hinges on whether [@@@ocaml.ppx.state] can make it into 4.02.1
<whitequark>
I would really not like ppx_deriving that only works in utop and 4.03 topevel...
<Kakadu>
It seems I needed -aspp switch set correctly
englishm is now known as englishm_away
ygrek has quit [Ping timeout: 272 seconds]
shinnya has quit [Read error: Connection reset by peer]
Thooms has joined #ocaml
shinnya has joined #ocaml
tani has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
thomasga has joined #ocaml
<Drup>
whitequark: what's the issue with findlib-ized ppx_deriving ?
samrat has joined #ocaml
samrat has quit [Client Quit]
<whitequark>
Drup: toplevel, mainly
hhugo has joined #ocaml
<Drup>
ah, right
<Drup>
ok, that's not the worst
<Drup>
it's bad, but it's not unusable in applications, so it's ok
<whitequark>
uhhh, I don't think I can release it if it doesn't work in toplevel.
<Drup>
what doesn't work exactly ? no #ppx, right ?
<whitequark>
can't communicate #require'd package to some other #require'd package that provides a ppx = "./foo"
<Drup>
I see
<whitequark>
and, more importantly, can't save any state between ppx extension invocations
<whitequark>
the former can be fixed with a findlib patch. the latter, not
<Drup>
to be honest, It's okay to say "It doesn't work in the toplevel until this patch (which is already integrated in ocaml trunk) makes his way into a relase"
<Drup>
I think.
<companion_cube>
did camlp4 work with the vanilla toplevel ?
<Drup>
did camlp4 work at some point ? :]
<whitequark>
Drup: well, I would need a findlib patch even for batch compilation
<whitequark>
companion_cube: I think that's because -pp loads the cma into the toplevel
<whitequark>
and then findlib, which is also inside toplevel, can trivially communicate new extensions to it
dsheets has joined #ocaml
hhugo has quit [Quit: Leaving.]
lumikuuro has joined #ocaml
avsm has joined #ocaml
<ebzzry>
orbitz: ping
NoNNaN has quit [Remote host closed the connection]
bytbox has quit [Remote host closed the connection]
BitPuffin has joined #ocaml
BitPuffin has quit [Client Quit]
BitPuffin has joined #ocaml
englishm_away is now known as englishm
sepp2k has quit [Quit: Konversation terminated!]
badkins has joined #ocaml
ggole has joined #ocaml
bytbox has joined #ocaml
oscar_toro has quit [Ping timeout: 250 seconds]
bytbox has quit [Remote host closed the connection]
samrat has joined #ocaml
darkf has quit [Quit: Leaving]
ontologiae_ has quit [Ping timeout: 260 seconds]
msaegesser has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
steshaw has quit [Ping timeout: 272 seconds]
mcclurmc has joined #ocaml
yomimono has joined #ocaml
puzza007__ has joined #ocaml
puzza007_ has quit [Ping timeout: 272 seconds]
puzza007__ is now known as puzza007_
steshaw has joined #ocaml
slash^ has joined #ocaml
ygrek has joined #ocaml
puzza007_ is now known as puzza007
oscar_toro has joined #ocaml
Thooms has quit [Ping timeout: 245 seconds]
hhugo has joined #ocaml
SethTIsue has joined #ocaml
<orbitz>
ebzzry: pong
<dmbaturin>
Does the Graphics module still exist? Which package is it in?
<ebzzry>
orbitz: /bin/sh was complaining that i couldn't find 'which'. when i assumed that i actually have it, what i have was the built-in from my shell. /bin/sh, of course, wants the system version, which is what i installed.
<dmbaturin>
ggole: #load "graphics.cma" says it's not found for me.
<ggole>
It does here, maybe you are missing some environment var or something
<dmbaturin>
~/.opam/4.01.0/lib/ocaml/ dir doesn't have it.
ollehar has quit [Ping timeout: 245 seconds]
WraithM has quit [Quit: leaving]
<ggole>
It's there for me (4.02.0)
<ggole>
I don't know why that would be different.
<hcarty_>
Is it safe to "opam switch install ..." a new compiler while using the current default switch in another terminal?
hcarty_ is now known as hcarty
SethTIsue has quit [Quit: SethTIsue]
iorivur has joined #ocaml
<ggole>
Yeah, I think so
<ggole>
The env vars will keep the bits separate
rgrinberg has joined #ocaml
Thooms has joined #ocaml
eizodo has quit [Ping timeout: 246 seconds]
Hannibal_Smith has quit [Quit: Sto andando via]
cago has left #ocaml [#ocaml]
bytbox has joined #ocaml
<dmbaturin>
How do I avoid having to use ";;" after open statements?
ollehar has joined #ocaml
Thooms has quit [Quit: WeeChat 0.4.3]
pminten has joined #ocaml
bytbox has quit [Remote host closed the connection]
<dmbaturin>
Hhm, wait, it's not the problem.
oscar_toro has quit [Ping timeout: 260 seconds]
ygrek has quit [Ping timeout: 244 seconds]
bytbox has joined #ocaml
<CaptainRant>
Does anyone use the object system ?
rand000 has quit [Ping timeout: 272 seconds]
<smondet>
CaptainRant: yes, it happens
bytbox has quit [Remote host closed the connection]
<Drup>
hcarty: sort of, but there is no need
<Drup>
hcarty: see the mail "opam local switch" in the mailing list
<kaustuv>
I use the object system (even inheritance) regularly, by choice, and I am glad OCaml gives me the option to use OO where it makes sense
<Drup>
there are various solution, depending of what you want
shinnya has quit [Ping timeout: 245 seconds]
lordkryss has joined #ocaml
WraithM has joined #ocaml
<whitequark>
CaptainRant: in general, objects are hardly needed in OCaml apart from few select use cases.
<Drup>
but they are very useful for type trickery
<whitequark>
I've seen them being used to handle UI concerns. ocamlopt uses them for its code generator. there are also a few cases where you need them for various type system tricks.
<whitequark>
but I think it's not really a case for objects rather than row types...
<Drup>
indeed
<Drup>
for widget systems, they are nice
<kaustuv>
Objects are almost always the right choice for AST walkers
<kaustuv>
Which is where open recursion is needed
<Drup>
kaustuv: that's the "open recursion" thing
<whitequark>
Drup: hmm, I just realized OCaml has row sums but not row products
<whitequark>
except for objects, of course
<Drup>
whitequark: the main thing is that you can't access the row variable
<whitequark>
or rather, I just realized what the theoretical basis for these constructs is
<Drup>
=)
<whitequark>
and a whole lot of things makes more sense now
<kaustuv>
That being said, I think Objects have poor interaction with parallelism, since both Oo.copy and Oo.id need to be atomic
<Drup>
object's performances are bad to begin with anyway :/
<kaustuv>
Methods are slower than function calls, sure, but vtable lookups are cached and anyhow you sacrifice speed for flexibilty
<kaustuv>
But I wouldn't recommend creating a large number of objects at runtime
bytbox has joined #ocaml
ollehar has quit [Quit: ollehar]
SethTIsue has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
CaptainRant has quit [Quit: WeeChat 0.4.3]
rand000 has joined #ocaml
morphles has joined #ocaml
octachron has quit [Quit: Leaving]
SethTIsue has quit [Client Quit]
SethTIsue has joined #ocaml
SethTIsue has quit [Client Quit]
SethTIsue has joined #ocaml
avsm has quit [Quit: Leaving.]
kaustuv has left #ocaml ["ERC Version 5.3 (IRC client for Emacs)"]
thomasga has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
<Drup>
whitequark: is it me, or ocp-indent is completly broken with extension nodes ?
bytbox has quit [Remote host closed the connection]
samrat has quit [Quit: Computer has gone to sleep.]
<whitequark>
Drup: never used ocp-indent
<Drup>
ok
<dmbaturin>
Is there a way to make Arg print help if no arguments given?
<whitequark>
see Arg.usage
<dmbaturin>
Thanks, let me see.
avsm has joined #ocaml
thomasga has joined #ocaml
jonludlam has quit [Quit: Coyote finally caught me]
SethTIsue_ has joined #ocaml
SethTIsue has quit [Ping timeout: 244 seconds]
SethTIsue_ is now known as SethTIsue
q66 has joined #ocaml
yomimono has quit [Ping timeout: 272 seconds]
SethTIsue has quit [Ping timeout: 244 seconds]
samrat has joined #ocaml
hhugo has quit [Quit: Leaving.]
<Drup>
whitequark: If if get something like "((try%lwt[@bla] ... with .. ) [%finally ...])[@blo]"
<Drup>
Do i concatenate the list of attributes ?
<Drup>
(yeah I know, stupid corner cases ...)
<whitequark>
what do you mean?
<whitequark>
there are two ast nodes there, try and apply
<Drup>
I know
<Drup>
but I'm going to transform it
<Drup>
and return one ast node
<Drup>
(almost)
<Drup>
hence : where do I put the attributes
<whitequark>
oh.
<whitequark>
oooh.
<Drup>
:D
<whitequark>
concatenate them, yes, and put them on outer node.
<Drup>
that's my opinion too
oscar_toro has joined #ocaml
<Drup>
(btw, I think we have the issue on some other construct)
<Drup>
typically, [%lwt ...] will have the issue, I think we may loose the attributes currently
<whitequark>
we do
sagotch has quit [Ping timeout: 272 seconds]
oscar_toro has quit [Ping timeout: 258 seconds]
sagotch has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
<Drup>
ok, I'm gonna patch that after
<Drup>
whitequark: should I detect (and transform) usages like " f x [%finally ...]" ?
<whitequark>
[%lwt.finally], but yes
<Drup>
for now, I detect both and treat them strictly the same.
<whitequark>
although
<whitequark>
this is consistent to what ppx_deriving and such do.
<whitequark>
I think you can keep it as it is, in fact.
<whitequark>
should be enough.
<whitequark>
(given every other extension implements this scoping thing as well, it's enough to disambiguate)
<Drup>
about the application, I'm not very fond of it
<Drup>
it's a function applied to two arguments and finally happen to be the last one
<Drup>
I would prefer to ask people to say "(f x)[%finally ...]"
sagotch has quit [Remote host closed the connection]
Kakadu has quit [Quit: Page closed]
rand000 has quit [Ping timeout: 258 seconds]
<dmbaturin>
https://github.com/dmbaturin/cfgen Got the string generator to work, sort of. Grammar checking is not included yet, need to put it together.
<whitequark>
Drup: uh.
<whitequark>
isn't that still application?
<whitequark>
I think you can't attach extension nodes like that, only attributes
<Drup>
it's still application, that's not the point
rand000 has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
<Drup>
whitequark: the point is that it's single application versus multiple application where the [%finally ..] is the last one
<whitequark>
oh.
<Drup>
for now, I only catch application where [%finally ...] is the only argument
samrat has quit [Ping timeout: 260 seconds]
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
CaptainRant has joined #ocaml
hhugo has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
rgrinberg has joined #ocaml
dsheets has quit [Ping timeout: 244 seconds]
BitPuffin has quit [Ping timeout: 260 seconds]
<whitequark>
Drup: how do you pronounce "INRIA"?
<Drup>
ask google translate in french, it's the right one, iirc
<whitequark>
oh, so almost the same as I would
manizzle has quit [Read error: Connection reset by peer]
<Drup>
CaptainRant: about let rec, well, this is an ocaml idiom :
<Drup>
let foo = create_some_raw_foo () in
<Drup>
let foo = modify_the_foo_slightly foo in
<Drup>
...
<Drup>
(I did that in haskell by habit, the explosion was violent)
rand000 has quit [Ping timeout: 260 seconds]
<CaptainRant>
So let _ = is equal to let () =
<Drup>
No, it's not
<Drup>
"let _ = 3" is valid, "let () = 3" is not
<Drup>
the second version ensure that the return type is unit
rand000 has joined #ocaml
<Drup>
It's what you want in most cases, if you are doing stuff by side effects, it should return unit.
axiles has quit [Remote host closed the connection]
<dmbaturin>
Drup: So there's no direct way to do it in oasis and you need to write _tags by hand? Also, where does the "# DO NOT EDIT (digest: d41d8cd98f00b204e9800998ecf8427e)" part come from?
<CaptainRant>
And i use modules when i seperate files to compilation units ? Simmiliar like a .h + .c file in C produces a .o ?
<Drup>
dmbaturin: It's oasis's part, oasis fills it by itself
<Drup>
I could actually remove the "DO NOT EDIT", I think. I never bothered
<Drup>
dmbaturin: and yes, you need the _tags
<Drup>
CaptainRant: yes
<dmbaturin>
CaptainRant: ocamlc -i file.ml will produce a .mli for it.
<Drup>
well, there is two concepts, compilation units, aka files, that define a module, and module defined literally inside a file, you can use both.
<dmbaturin>
Drup: Thanks, let me try.
G4143 has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
G4143 has quit [Client Quit]
SethTIsue has quit [Quit: SethTIsue]
rgrinberg has joined #ocaml
zpe has joined #ocaml
ggole has quit []
parcs has quit [Remote host closed the connection]
zpe has quit [Remote host closed the connection]
hhugo has joined #ocaml
gerard has joined #ocaml
gerard is now known as g4143
g4143 has quit [Client Quit]
ontologiae_ has joined #ocaml
parcs has joined #ocaml
fantazo has joined #ocaml
<fantazo>
Hi, does anybody know how Wojciech Meyer also known as Daniel or on github danmey died? I knew him, but we lost contact and then I today found out that he died.
<adrien>
I've never asked and it's probably not something to put out in public if it hasn't already been don
<adrien>
e
tani has quit [Quit: Verlassend]
<adrien>
you can try asking the author of the email which was sent to the caml-list about his death last year
g4143 has joined #ocaml
g4143 has quit [Client Quit]
<dmbaturin>
Drup: For manual build, I use "use-menhir -menhir "menhir -v --external-tokens Lexer"". How do I specify the external tokens in ocamlbuild or oasis configs?
<Drup>
no idea.
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
<fantazo>
adrien, thx for the tip.
Hannibal_Smith has quit [Quit: Sto andando via]
avsm has quit [Quit: Leaving.]
fantazo has quit [Quit: Verlassend]
hhugo has quit [Quit: Leaving.]
rand000 has quit [Ping timeout: 246 seconds]
avsm has joined #ocaml
rand000 has joined #ocaml
<dmbaturin>
Drup: Managed to do that with some flags in myocamlbuild.ml
CaptainRant has quit [Quit: WeeChat 0.4.3]
<Denommus>
hm, does Array and List share a common sig?
<dmbaturin>
Well, list and array functions sure can't have the same type. Or you mean something else?
gabemc has joined #ocaml
zpe has joined #ocaml
<Denommus>
dmbaturin: I mean if they have a common sig that I can use in a functor
<mrvn>
Like an AbstractContainer type?
<mrvn>
YOu can declare one.
thomasga has quit [Ping timeout: 260 seconds]
zpe has quit [Ping timeout: 245 seconds]
<Denommus>
hm, ok
avsm has quit [Quit: Leaving.]
Thooms has joined #ocaml
rand000 has quit [Quit: leaving]
rgrinberg has joined #ocaml
gabemc has quit [Ping timeout: 240 seconds]
msaegesser has quit [Ping timeout: 240 seconds]
gabemc has joined #ocaml
gabemc has quit [Client Quit]
yomimono has quit [Ping timeout: 246 seconds]
gabemc has joined #ocaml
gabemc has quit [Client Quit]
gabemc has joined #ocaml
<gabemc>
Hello, I am having a very basic compilation problem that I can't seem to sort out. I have an opam repository here: https://github.com/gabemc/ocaml-ntp . I'm using the cstruct library, and I believe that the parser is encountering an error because the caml4p syntax extension for the cstruct library is correctly being set by ocamlbuild. I'm basically copying the _oasis configuration file from https://github.com/avsm/ocaml-dns/blob/master/