Neros has quit [Read error: Connection reset by peer]
Neros has joined #ocaml
mal`` has joined #ocaml
bkpt has quit [Quit: Leaving]
dsheets has quit [Ping timeout: 246 seconds]
ygrek has quit [Ping timeout: 245 seconds]
osa1 has quit [Ping timeout: 245 seconds]
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
darkf has joined #ocaml
q66 has quit [Quit: Leaving]
ollehar has joined #ocaml
Asmadeus has quit [Ping timeout: 260 seconds]
Asmadeus has joined #ocaml
ygrek has joined #ocaml
ousado_ has joined #ocaml
ousado has quit [Read error: Connection reset by peer]
ollehar has quit [Ping timeout: 264 seconds]
introom has joined #ocaml
MarcWeber has quit [Ping timeout: 260 seconds]
MarcWeber has joined #ocaml
Drup has quit [Quit: Leaving.]
carleastlund has joined #ocaml
csakatoku has quit [Remote host closed the connection]
tlockney has quit [Excess Flood]
tlockney has joined #ocaml
csakatoku has joined #ocaml
ski has quit [Ping timeout: 260 seconds]
ski has joined #ocaml
ggole has joined #ocaml
csakatoku has quit [Remote host closed the connection]
csakatoku has joined #ocaml
shinnya has quit [Ping timeout: 276 seconds]
csakatok_ has joined #ocaml
csakatoku has quit [Ping timeout: 264 seconds]
Neros has quit [Ping timeout: 245 seconds]
alang__ has quit [Ping timeout: 245 seconds]
zRecursive has quit [Remote host closed the connection]
zRecursive has joined #ocaml
alang has joined #ocaml
yezariaely has joined #ocaml
manud has quit [Quit: manud]
ben_zen has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 276 seconds]
Nahra has joined #ocaml
Nahra has quit [Changing host]
Nahra has joined #ocaml
ulfdoz has joined #ocaml
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
ygrek has quit [Ping timeout: 264 seconds]
Nahra has quit [Quit: leaving]
ulfdoz has quit [Ping timeout: 264 seconds]
zpe has joined #ocaml
zpe has quit [Ping timeout: 246 seconds]
djcoin has joined #ocaml
<adrien>
morning
Snark has joined #ocaml
<zRecursive>
afternoon
<introom>
afternoon + 1
<zRecursive>
Is Float.(1.2 * 1.5) right syntax ?
<sgnb>
zRecursive: (1.2 *. 1.5)
<gasche>
Float.(foo) may also make sense if the Float module defines a ( * ) operator to be ( *. )
<zRecursive>
thx
<gasche>
there is something strange
<gasche>
since I re-started participated on the #ocaml IRC channel
<gasche>
I was nearly never interested in an OCaml StackOverflow question
<gasche>
while I used to go there daily and answer questions there
<gasche>
*participating
<gasche>
I suspect I have my dose of light OCaml participation filled by the chan, and my attention to SO decreased as a purely subjective side-effect
<gasche>
I'm not sure whether that is a good thing
<adrien>
gasche: definitely, there's only so much you can do or enjoy doing
<gasche>
on one hand, StackOverflow is proprietary technology, walled-garden-ish in its technical choices, and IRC is an open standard that is free for all
<gasche>
one the other, in practice information put on StackOverflow is in a better form to be reused by future readers; I suspect it helps more people to answer one question on SO than IRC
<zRecursive>
IRC is real time
<gasche>
I don't personally care for real time
<adrien>
there can be a pretty high latency on IRC too
<sgnb>
replies on IRC need not be dissertations
<zRecursive>
i sometimes glimpse StackOverflow though
<adrien>
:)
<sgnb>
there some kind of efficiency in IRC that I prefer over StackOverflow
<sgnb>
but both are useful
<zRecursive>
sure
pango has joined #ocaml
ben_zen has quit [Quit: sleep]
zpe has joined #ocaml
tane has joined #ocaml
zpe has quit [Ping timeout: 246 seconds]
thomasga has joined #ocaml
ygrek has joined #ocaml
<ggole>
Clearly we need to add badges and reputation scores to IRC.
zRecursive has left #ocaml []
ttamttam has joined #ocaml
avsm has joined #ocaml
ttamttam has quit [Client Quit]
zpe has joined #ocaml
cago has joined #ocaml
<adrien>
that's +v and that's pretty much the only one you can get :P
cdidd has quit [Ping timeout: 264 seconds]
<gasche>
the problem with IRC is not the lack of gamification of answering questions, but the poor reusability of the content
zpe has quit [Ping timeout: 276 seconds]
<ggole>
Writing to a large audience is a careful and time consuming task, though
<ggole>
Whereas bashing junk into an irc channel is pretty easy.
zpe has joined #ocaml
* ggole
coughs
<ggole>
I tend to find wikis and other "reusable" communication structures pretty awful
<gasche>
wikis require even more effort than mailing-lists or question-answer sites
<gasche>
that tends not to work
<gasche>
(but it can in structured communities, such as a company with a clear internal wiki policy)
<gasche>
I think mailing-lists are a better compromise on the "work on the sender side" / "reusability" ratio than IRC, though
<gasche>
(or question-answer site; the point is not the push or pull model)
<ggole>
Right, they don't have the wiki problem of degenerating into mush as fifty people with subtly incompatible world views edit something to be more like the way they think.
<ggole>
The "single-shot" nature of email and IRC means that isn't a possibility: you're always looking at exactly what a single author intended (or at least, what they wrote).
Simn has joined #ocaml
fmardini has joined #ocaml
cdidd has joined #ocaml
q66 has joined #ocaml
Anarchos has joined #ocaml
avsm has quit [Quit: Leaving.]
yezariaely1 has joined #ocaml
Milca has joined #ocaml
yezariaely has quit [Ping timeout: 245 seconds]
csakatok_ has quit [Remote host closed the connection]
carleastlund has quit [Quit: carleastlund]
yezariaely1 has quit [Ping timeout: 264 seconds]
mfp has joined #ocaml
<Milca>
Hello guys
<Milca>
I wouldn't think there are so much people about Ocaml
<Milca>
I didn't touch it since my academic years
<gasche>
Milca: it's one of the most usable functional languages out there
wwilly has joined #ocaml
<wwilly>
bonjour
<Milca>
Don't worry I loved this language just thought it is not really used in a professionnal context
<Milca>
or even in any context except research
<Milca>
hi willy
<Milca>
French ?
<wwilly>
yep
<wwilly>
still on trolling research/industrial use of ocaml?
ousado_ is now known as ousado
ousado has quit [Changing host]
ousado has joined #ocaml
tane has quit [Quit: Verlassend]
mort___ has joined #ocaml
<Milca>
kind of
<Milca>
I just didn't know
<Milca>
ithas any industrial use
<Milca>
but it definitely should
<Milca>
is every one french on the chan ?
<rixed>
I don't think so, even if the french density is higher than average
<Milca>
bummer
* emias
had four years of French at school, does that count?
<Milca>
nope emias
<emias>
Okay.
<wwilly>
time for apéro
<Milca>
except if you want us all to switch to french (in fact my laziness made me hope to speak in french)
<wwilly>
:)
<wwilly>
++
<Milca>
time for pentest report :'(
<ousado>
there's #ocaml-fr
<Milca>
ho ok
<Milca>
but whatsoever i won't stay for long
<Milca>
just trolling
<Milca>
instead of working
<ousado>
yeh, I was hoping you'd continue trolling somewhere else :)
<Anarchos>
Milca i am french, why ?
<Milca>
why being so serious
<Milca>
okok
<Milca>
at least I created some movement
<Milca>
in there
<Milca>
Anarchos I am too
<Milca>
Have fun dudes
<Anarchos>
Milca sorry for you :)
<gasche>
Milca: most of us have work to do beside discussing on the IRC channel
<gasche>
using our time just for fun is not very respectful of you
<Milca>
I'm not using your time
<gasche>
I read your messages
<gasche>
I'd be happy answering any question about OCaml
<Milca>
you don't HAVE to read every thing, and I was jsut wondering if OCaml is moving or not
<gasche>
(and the reason I read messages here is that they often contain such questions)
<gasche>
I suppose it is, but you have better ways to know that than light-chatting contentless messages on an IRC channel
<Milca>
What I'm sure now is that i'm not coming back here (don't worry)
Milca has left #ocaml []
<Anarchos>
Milca just look for ocaml on google and you will find that most users are university researchers, and that industrial use of ocaml are done via coq (astrée and so on).
<kerneis>
Anarchos: and Jane Street, and Lexifi
<Anarchos>
woops, missed the troll :)
<kerneis>
etc.
<Anarchos>
kerneis yes but i don't count financial firms as industrial ;)
<kerneis>
:-)
osa1 has joined #ocaml
mcclurmc has joined #ocaml
introom has quit [Remote host closed the connection]
yezariaely has joined #ocaml
fmardini has quit [Ping timeout: 245 seconds]
avsm has joined #ocaml
asmanur_ has quit [Ping timeout: 248 seconds]
asmanur has joined #ocaml
bungley has joined #ocaml
dsheets has joined #ocaml
<kerneis>
style question: do you prefer a module providing M.t, M.add, M.delete, etc. or M.foo, M.fooAdd, M.fooDelete, etc.?
<kerneis>
:bn
<kerneis>
pff, this is not vim…
<kerneis>
the question still holds
<ousado>
I prefer the former
<kerneis>
the only issue is if people want to open it, in fact
<kerneis>
but maybe you shouldn't open too many modules
<kerneis>
and use module M = MyVeryLongModuleName instead
<ousado>
or open locally
BiDOrD has quit [Quit: No Ping reply in 180 seconds.]
BiDOrD has joined #ocaml
<Anarchos>
kerneis first option : M.add etc
<Anarchos>
because i guess M provides only a new type (as M.t) so the M.xxx functions obviously apply to this type.
<kerneis>
indeed
tane has joined #ocaml
zRecursive has joined #ocaml
weie_ has joined #ocaml
weie has quit [Ping timeout: 245 seconds]
avsm has quit [Quit: Leaving.]
amirmc has joined #ocaml
skchrko has joined #ocaml
Xom has quit [Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212]]
osa1 has quit [Ping timeout: 264 seconds]
Drup has joined #ocaml
osa1 has joined #ocaml
lifeng has quit [Quit: Ex-Chat]
_andre has joined #ocaml
manud has joined #ocaml
bondar has joined #ocaml
bondar has quit [Excess Flood]
zRecursive has left #ocaml []
amirmc has quit [Quit: Leaving.]
<ygrek>
Anarchos, what's up with that oldify?
Drup has quit [Ping timeout: 264 seconds]
testcocoon has quit [Quit: Coyote finally caught me]
testcocoon has joined #ocaml
chambart has joined #ocaml
avsm has joined #ocaml
<Anarchos>
ygrek i have troubles debugging multiple C threads calling ocaml...
amirmc has joined #ocaml
amirmc has quit [Ping timeout: 264 seconds]
<ygrek>
Anarchos, I've just had a similar issue two days ago :)
* ygrek
humbly recommends mlvalues.py - it was a tremendous help
<ygrek>
in my case it crashed in ExtHashtbl.enum and inspecting the corresponding hashtbl value showed that it had different number of elements than stored in .size
<ygrek>
after that it was easy to figure out that threads were modifying single hashtbl concurrently and it is not safe thing to do
<ygrek>
hm, actually that has nothing to do with oldify, but I had recently another crash in oldify and ml_dump local_roots was handy to see that local_roots were borked
<ygrek>
after that careful inspection of call stack led to a bug in C bindings
<Anarchos>
ygrek i know that the bug is in my binding, but where ??
<ygrek>
hm, then it is easy :)
<gasche>
I'm considering working on ocamlbuild's documentation
<gasche>
but I am not quite sure what to do to improve the current situation
<gasche>
my general idea is to come up with a basic plan and structure, write a good part of it (not necessarily all), and make a call for contributions/improvements
<gasche>
do some people have a strong opinion on what is terribly missing in OCamlbuild's manual chapter, and should absolutely be in the manual?
<gasche>
one thing I'm worried about is that everything I write turns into walls of texts, which is not good for a manual, but admittedly the existing's manual style is not perfect either
<ygrek>
gasche, I think one useful approach is to start from use-cases
<ygrek>
i.e. more in tutorial style - how to achieve this or that goal from user perspective
<Anarchos>
gasche write your wall of texts, then do a resumee, picking out every redundant sentence .
<kerneis>
gasche: findlib isn't mentioned at all
<ygrek>
referencing the "general architecture" document when needed
<ygrek>
and collecting topics for that "general architecture" while writing tutorial
<ygrek>
that way you get only what is needed both in tutorial and architecture sections
<kerneis>
gasche: the difference and/or relationship between traverse and include in _tags is extremely unclear
<kerneis>
(the note on subdirectory traversal is a real joke, coming just after include but no making the relationship clear)
<kerneis>
gasche: and it doesn't say *anything* about myocamlbuild.ml either
<kerneis>
(except in the said note, which makes it even more of a joke)
<kerneis>
those are my main three complaints
<gasche>
hm
<gasche>
the good news is that I had thought of these advices so far; I'm not terribly off base :-'
<gasche>
my idea was to have roughly
<gasche>
(1) a tutorial with three simple use-cases (only local modules, then ocamlfind packages, then ocamlfind-package syntax extension)
<kerneis>
(then, it could mention dynamic linking, cmxs, etc. but this is easier to add, it's just a section « explain the default rules »)
<gasche>
(2) a description of the mental model, followed by a complete reference of existing targets, tags and options
<gasche>
(3) some indications to plugin writers (but not much because it's hard and still in flux)
<kerneis>
sounds good
<gasche>
kerneis: a few days ago I read a bit of the source code
<gasche>
and I wrote a note about the difference between traverse and include
Drup has joined #ocaml
<kerneis>
oh, completely off-topic but before I forget: I'm a new co-maintainer of ocaml-autoconf and planning to fix some old bugs in it; if you have any remarks about it, please send me an email
<gasche>
(in short ("foo": include) allows to refer to the target `foo/bar` as just `bar`; traverse doesn't)
<kerneis>
ok
<gasche>
one thing I checked is that in the current implementation
<gasche>
even if you have ("foo": include), a tag (true: blah) in foo/_tags will not apply to targets outside foo/
<kerneis>
I believe include also really "includes" (like adding -I to the compiler switches)
<kerneis>
but I'm not sure about that one
<gasche>
that said
<kerneis>
gasche: that makes sense
<kerneis>
the contrary would be really error-prone
<gasche>
I'm not happy with the fact that traverse is set by default (in a baroque way)
<gasche>
but I'm not sure how to make that evolve
<kerneis>
my understanding is the following:
<kerneis>
- traverse used to be set by default
<kerneis>
- now it is disabled
<kerneis>
- BUT because of backward-compatibility, bloody upstream decided that it should still be "on" if you have a _tags or myocamlbuild.ml
<gasche>
hm
<gasche>
I think the reasoning was more
<kerneis>
"because you could rely on it in your tags or myocamlbuild"
<gasche>
the devs liked traverse by default because it's convenient
<kerneis>
which means that as soon as you add a _tags, you kill your efficiency
<gasche>
but people complain because running "ocamlbuild" by mistake from your $HOME directory takes hours
<gasche>
so they added this restriction as a check that "we are really in an OCaml project"
<kerneis>
I agree that traverse by default makes absolutely no sense
<gasche>
(we agree on the semantics but I have a slightly better story about how it came to be that way)
<kerneis>
it kills efficiency, and shouts about hygiene as soon as you have some test/ subdirectory, or something containing C files somewhere, etc.
<kerneis>
(yes)
<kerneis>
but it makes even less sense then
<kerneis>
because if myocamlbuild.ml or _tags are required to enable it
<kerneis>
then you can just as well put true:traverse in _tags
<kerneis>
really stupid if you ask me (and even if you don't)
<kerneis>
anyway, I bet that *now* backward-compatibility will be used to promote the fact that it should not be changed…
<gasche>
basically, yes
<gasche>
I don't think we can remove traverse by default without breaking too much user projects
<gasche>
hm
<gasche>
we should have a way to version ocamlbuild files
<mrvn>
or add a nodefaulttraverse option to _tags
<gasche>
I guess true: -traverse should work
<kerneis>
gasche: oh, you solved PR#4502 !
<kerneis>
Thanks
<gasche>
(I'm happy to see that I had to look up mantis to know which bug it was; I'd probably need holidays again if I started remembering issue numbers)
Anarchos has quit [Quit: need tot rest]
<gasche>
we could have a tag ocamlbuild_version(foo) that would only be accepted on true: and would allow to add backward-compatibility code to the implementation
<kerneis>
about my patch for mllib and mldylib from ml
<kerneis>
I need to check whether it works when you mlpack
<kerneis>
but I guess not
<kerneis>
(I thought about that this morning)
<gasche>
feel free to setup your tests directly in the testsuite instead of your filesystem :-'
<kerneis>
gasche: I don't see how it would solve the issue
<kerneis>
old code wouldn't include it
<gasche>
well
<gasche>
it's too late for this particular issue
<gasche>
but it could help in the future
<kerneis>
and for new code, you can as well add true: -traverse
<kerneis>
still, how would that work?
<kerneis>
ah, you mean that everybody should add it?
<gasche>
yeah, that would be a good idea
<gasche>
a bit like the OASIS-version field
<kerneis>
but never will everybody add it, unless you make it mandatory
<gasche>
I can add a warning
<kerneis>
and if you're not sure everybody has it, you can't rely on it for compatibility
<gasche>
but you could get even more bitter as upstream would refuse breaking changes *even though* they included versioning information!
<gasche>
one problem with such versioning information is that
<gasche>
it may make ocamlbuild's code itself harder to maintain if we have legacy-compat cruft everywhere
<kerneis>
yes
<gasche>
one other possibility would be to write programs that rewrite _tags file
<ggole>
Top-level code is run when a file (.cmo) is loaded: is that what you mean?
<technomancy>
ggole: I've got a main expression that starts a loop that reads from standard in, but when I'm in Emacs I just want to check that my file compiles and I don't want the loop to start.
travisbrady has quit [Quit: travisbrady]
<ggole>
Hmm... I'd stick it in a function and drive it from a different, trivial file
<technomancy>
hrm; kinda ruins the symmetry here
<ggole>
Compiling just the non-driver part should be easy if you've figured out build systems
<ggole>
Hmm... you could hack in a envvar check or something
<ggole>
But that's pretty awful
<technomancy>
a separate file makes sense for real-world projects, but for this maybe I'll just toggle commenting it
<ggole>
Oh wait, can't you just compile it separately? Or do you really want all the bits in the toplevel?
<technomancy>
the purpose of this particular code is to compare the same program reimplemented in 5 different languages side-by-side, so I'd rather keep everything in one file