arquebus has quit [Quit: Konversation terminated!]
shinnya has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
racycle has quit [Quit: ZZZzzz…]
maattdd_ has joined #ocaml
dant3_ has joined #ocaml
dant3_ has quit [Read error: Connection reset by peer]
segmond has joined #ocaml
hhugo has joined #ocaml
Tamae has quit [Read error: Connection reset by peer]
hhugo has quit [Read error: Connection reset by peer]
ustunozgur has joined #ocaml
hhugo has joined #ocaml
Tamae has joined #ocaml
demonimin has quit [Quit: No Ping reply in 180 seconds.]
maattdd_ has quit [Ping timeout: 252 seconds]
dinosaure has quit [Ping timeout: 272 seconds]
dinosaure has joined #ocaml
ustunozgur has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
ousado has quit [Remote host closed the connection]
ousado has joined #ocaml
shinnya has quit [Ping timeout: 264 seconds]
shinnya has joined #ocaml
claudiuc has quit [Remote host closed the connection]
claudiuc has joined #ocaml
hhugo has quit [Quit: Leaving.]
claudiuc has quit [Ping timeout: 255 seconds]
q66 has quit [Quit: Leaving]
studybot_ has joined #ocaml
tlockney_away is now known as tlockney
huza has joined #ocaml
hhugo has joined #ocaml
arquebus has joined #ocaml
arquebus has quit [Quit: Konversation terminated!]
studybot_ has quit [Remote host closed the connection]
hhugo has quit [Quit: Leaving.]
jao has quit [Ping timeout: 240 seconds]
alinab has quit [Remote host closed the connection]
dsheets has quit [Ping timeout: 272 seconds]
shinnya has quit [Ping timeout: 252 seconds]
shinnya has joined #ocaml
dsheets has joined #ocaml
manizzle has quit [Ping timeout: 244 seconds]
BitPuffin has quit [Ping timeout: 240 seconds]
venk has quit [Remote host closed the connection]
venk has joined #ocaml
shinnya has quit [Ping timeout: 255 seconds]
Eyyub has quit [Ping timeout: 240 seconds]
racycle has joined #ocaml
Eyyub has joined #ocaml
axiles has joined #ocaml
alpounet has joined #ocaml
huza has quit [Ping timeout: 240 seconds]
alpounet has quit [Remote host closed the connection]
alpounet has joined #ocaml
alpounet has quit [Ping timeout: 245 seconds]
BitPuffin has joined #ocaml
alpounet has joined #ocaml
tlockney is now known as tlockney_away
wwilly has joined #ocaml
alpounet has quit [Remote host closed the connection]
wwilly has quit [Quit: This computer has gone to sleep]
Eyyub has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
Chrix has joined #ocaml
S11001001 has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<Chrix>
Hi guys, is true that ocaml has been abandoned by inria?
racycle has quit [Quit: ZZZzzz…]
<Drup>
huh, no
<Drup>
well, it depends what you mean by "abandoned". Inria has never been extremely active in developing ocaml, but the core maintainers of OCaml are still mainly inria people (that created it).
<Chrix>
really?
<Drup>
why this question ?
slash^ has joined #ocaml
WraithM has joined #ocaml
slash^ has quit [Client Quit]
<Chrix>
I was talking with some people and they said that, then I've been looking for more information about it..
<Drup>
at this level of misinformation, it's barely even funny =')
<Chrix>
:-)
<Chrix>
I'm migrating from python to Ocaml and python is in very active development, then naturally I want a solid ground to build on it, I really like Ocaml.
<Chrix>
by the way, at some point I'll have to see how to replace twisted in my code
<def`>
(I see more OCaml than Haskell here in Cambridge :))
<Drup>
Chrix: do you need more than http ?
<Chrix>
that's good
<Drup>
if you don't, cohttp + Lwt (or Async)
<Chrix>
yeah, tcp and udp socket libs
<Chrix>
I was thinking in Async, but I have not tried it yet
<Drup>
then just Lwt (or Async)
<Chrix>
sounds good to me, thanks
Arsenik has joined #ocaml
slash^ has quit [Quit: Leaving.]
alpounet has joined #ocaml
slash^ has joined #ocaml
hhugo has joined #ocaml
Simn has joined #ocaml
Kakadu has joined #ocaml
ollehar has joined #ocaml
dsheets has quit [Ping timeout: 252 seconds]
huza has joined #ocaml
hhugo has quit [Quit: Leaving.]
ygrek has joined #ocaml
shinnya has quit [Ping timeout: 240 seconds]
<gasche>
Chrix: how did you find that Youtube video? I find it rather curious that it even exists
shinnya has joined #ocaml
pyon has quit [Quit: restart]
pyon has joined #ocaml
<adrien>
:))
pyon has quit [Read error: Connection reset by peer]
<gasche>
(I'm wondering where the content comes from; it looks like someone's business model is to put up crappy videos on Youtube and get a good Google ranking, but the content makes enough sense that it has been written by a human that remotely knows both languages, so it's strange it hasn't appeared in some other forms in either communities.)
<adrien>
but when I look for "ocaml abandoned inria" in duckduckgo, the youtube video is the first link
<gasche>
my own google search didn't turn this page up
<adrien>
errr
<adrien>
third link
<gasche>
so this particular bullshit is spread by Norman Ramsey, of all people
<gasche>
funny
<gasche>
so
<gasche>
I'm not sure whether the video's text was computer-generated or whether a human actually wrote that by mixing up content that turned up in a quick search
<gasche>
but both options are possible and reasonable
<adrien>
ah, found
<gasche>
wait
<gasche>
Ramsey does *not* say that OCaml was abandoned by inria
huza has quit [Ping timeout: 255 seconds]
<gasche>
he just points out that it's not a research vehicle anymore, which is about correct
pyon has joined #ocaml
<gasche>
(or at least it used to be perfectly correct at the time the original post was written)
<gasche>
I read this reply of Norman before and it is reasonable
<gasche>
I'm not convinced that this is the source for the video
<adrien>
having some doubts too
<adrien>
I'm wondering if this is not "original" content
<adrien>
Chrix: yeah, wondering now more than ever: where did you get the link to that video?
<adrien>
I'm under the impression the business model is as gasche described and also involves buying ads to the video to get a better ranking
divyanshu has joined #ocaml
pminten has joined #ocaml
maattdd_ has joined #ocaml
huza has joined #ocaml
lordkryss has joined #ocaml
hhugo has joined #ocaml
venk has quit [Remote host closed the connection]
Arsenik has quit [Remote host closed the connection]
venk has joined #ocaml
maattdd_ has quit [Ping timeout: 252 seconds]
slash^ has quit [Read error: Connection reset by peer]
<companion_cube>
I don't even understand why it's a video and not just a crappy blog post
dant3_ has quit [Remote host closed the connection]
hhugo has quit [Read error: Connection reset by peer]
sheijk_ has joined #ocaml
slash^ has left #ocaml [#ocaml]
<orbitz>
I think the author is trying to be the next Garret Smith
<Kakadu>
btw, Is it common to pronounce ócaml instead ocáml?
<def`>
who is garret smith?
* companion_cube
pronounces ocaml
<orbitz>
def`: the mongodb is webscale video guy
<orbitz>
Kakadu: i pronounce it oh-camel
<companion_cube>
such webscale
<def`>
orbitz: haha, but this one was nice :]
<orbitz>
well, not everyone *can* be Garret Smith
<orbitz>
although everyone can try :)
sheijk has quit [Ping timeout: 240 seconds]
pminten has quit [Remote host closed the connection]
<Drup>
gasche: in the answer you link, I don't really understand the whole "OCaml is not quite consistent on whether it thinks variants should be statically typed or dynamically typed, so it provides both." comes from. poly variant were never dynamically typed, that's just silly =__=
<whitequark>
the phrase "dynamically typed variants" is absurd
<whitequark>
"dynamically typed static type"
hhugo has joined #ocaml
struktured has quit [Ping timeout: 240 seconds]
slash^ has joined #ocaml
ebzzry has joined #ocaml
<def`>
"dynamically typed"
<whitequark>
def`: hm?
<def`>
"dynamically typed" is absurd =)
<whitequark>
why? it refers to a perfectly defined technique
<def`>
which one?
<Drup>
encode type error as runtime failure :3
<def`>
so my _ -> assert false is the dynamically typed part of variants :)
<ggole>
There's more than one meaning of the word "type", and "dynamically typed" doesn't refer to the type theory one.
<ggole>
(Although lots of people seem to think it does.)
<def`>
yeah I agree, I was just easy-trolling ;)
<ggole>
Right, right.
<Drup>
ggole: that's what dynamically typed people try to make everyone else think
<Drup>
(and they are wrong, they just mostly don't know what a type is)
<ggole>
Well, they are usually pretty confused
<def`>
but it's especially confusing when the "two meanings" are used in the same sentence
<whitequark>
orbitz: if CS had custom method lookup rules, I probably would call it so, because the majority of code would be just calling back to runtime functions
<whitequark>
which, in my view, is the hallmark of a directly threaded interpreter
<orbitz>
ok
* whitequark
hides before some interpreter guys show up
<whitequark>
(because it's a rather... creative interpretation of the concept. but I think still valuable.)
<orbitz>
well, we're talking abotu the same gneral idea, so the words don't matter so much
<def`>
(but if the host langage offer a meta-object protocol, you can encode those custom method lookup rules)
<whitequark>
def`: what I really mean is that the majority of time will be spent in the implementation of these method lookup rules in the runtime
<whitequark>
(and other runtime-provided APIs)
<def`>
whitequark: a clever runtime can inline the lookup rules if it observes some static behaviors
<whitequark>
so since they're currently in optimized C in python... I don't see any benefit versus a directly threaded interpreter, or only a marginal benefit (one extra jump table) versus a bytecode interpreter
<whitequark>
def`: I assumed "python to ocaml compiler" wouldn't include much of analysis, and orbitz' "just badly written Ocaml code" seems to confirm that
<def`>
whitequark: on a totally unrelated subject, are you still interested in bringing merlin to sublime-text?
<whitequark>
def`: somewhat
<whitequark>
ocp-index is slow on a moderate amount of packages
<def`>
whitequark: right for the badly written ocaml code :)
<def`>
we are preparing a release for ocaml 4.02
<whitequark>
also, ugh, ocp-build. I reinstalled my switch and now I can't build it again for some reason
ygrek has quit [Ping timeout: 240 seconds]
<def`>
the question now is whether you have suggestions for easing sublime-text interop ?
<whitequark>
def`: I think we've already discussed it?
<def`>
whitequark: yep, I only remember "a way to reload the whole file"
<whitequark>
def`: how does merlin currently interoperate with vim or emacs?
<def`>
whitequark: through a json or sexp protocol over pipes
<def`>
the editor tells the name of the buffer being edited and has to remember what changed since last synchronization
<def`>
then, when calling features like completion, it sends a delta
<def`>
(in practice the editor only remembers the position of the first part of the buffer that has changed)
lordkryss has quit [Ping timeout: 244 seconds]
<ggole>
It's pretty simple. merlin.el is ~1500 lines.
<ggole>
And a lot of that is emacs junk.
<whitequark>
def`: just add the "here is the complete file" command
<def`>
whitequark: with a path on the filesystem or the content of the buffer?
<whitequark>
content of the buffer
<ggole>
If it's the latter, can't you just send the whole thing?
<def`>
ok
<ggole>
There's little difference between "whole buffer" and "fragment of a buffer" than happens to cover the entire thing, after all
<whitequark>
(filesystem path would require me to re-save the file. which is clearly undesirable)
tlockney_away is now known as tlockney
<def`>
(I agree)
ollehar has quit [Ping timeout: 244 seconds]
<def`>
ggole: yeah, I won't change the api, just do a preprocessing to detect changes rather than redoing everything
<def`>
and this is almost implemented since I remembered this use case from previous discussion, but I forgot the details
avsm has joined #ocaml
Eyyub has quit [Ping timeout: 245 seconds]
maattdd_ has joined #ocaml
<orbitz>
does anyone have strong preferences towrads config file format and parsers?
<orbitz>
I generally prefer ini file (but with actual namespacing, unlike Windows)
<orbitz>
Although YAML might be ok...
<whitequark>
json is ok
<whitequark>
yaml is far too weakly defined
<orbitz>
I don't think json is very friendly for humans though
<whitequark>
sublime's config is in json
<whitequark>
(with comments)
<whitequark>
it's not *perfect*, but it's very standard and very simple
<Hannibal_Smith>
I'm unsure how comments in json are standard
<orbitz>
I thought yaml was well a welldefined superset of JSON?
<ggole>
Something turing complete - how about lisp?
* ggole
trolls it up
<def`>
yeah… comments are not standard json
<def`>
ggole: just a shell script, producing the actual config file
<orbitz>
hah
agarwal1975 has quit [Quit: agarwal1975]
<whitequark>
orbitz: there's several issues
<orbitz>
looks like nothing with YAML in it in opam
<whitequark>
first, therea re multiple versions of yaml
<whitequark>
and they're NOT compatible, rather, they silently parse same thing in different ways
<whitequark>
also, syck has its own incompatibilities even with standard it pretends to implement
<orbitz>
Ok
<whitequark>
there's ocaml-syck but please don't use it
<orbitz>
I don't want to go with JSON though, it's just too unfriendly. Maybe I'l ljust stick to ini
Eyyub has joined #ocaml
<adrien>
irk
<companion_cube>
is writing a YAML parser with menhir difficult?
<companion_cube>
(I mean, maybe the lexer part is the hard part)
<whitequark>
not difficult
<whitequark>
I just dislike the format, where "true1" is string but "true" is boolean
<whitequark>
it has actually caused me quite a lot of problems in our rails app
<orbitz>
inifile options are weak for ocaml aswell unfortunatly
<whitequark>
hence my dislike is not only conceptual but also very practical
<Kakadu>
I was trying to write YAML parser some time ago
<whitequark>
Kakadu: I'm sorry
<Kakadu>
I don't remember where I paused
<orbitz>
off to go for a walk! seeya
<Kakadu>
Ah, on newlines preserved/folded part
<Drup>
YAML grammar is horrible
<Drup>
I was interested to write one at some point
<Drup>
I read the standard
<Drup>
I was not interested anymore
<Drup>
it's to the point where the official grammar is an implementation in haskell, because the guy who did yaml couldn't write a proper grammar for it.
<companion_cube>
.
<Drup>
it's just .. terrifying
<reynir>
you could also invent your own configuration language. Extra credit if you accidentally make it turing complete.
<companion_cube>
I suggest a mix of scheme and prolog
<Drup>
sql is my favoriate accidentally turing complete language
<companion_cube>
I think there's a Ocaml version of TML
<companion_cube>
TOML
hhugo has quit [Quit: Leaving.]
<Drup>
memory pages being the second
<companion_cube>
hey, TOML doesn't look that bad actually
cthuluh has quit [Remote host closed the connection]
cthuluh has joined #ocaml
maattdd_ has quit [Ping timeout: 252 seconds]
cthuluh has quit [Quit: leaving]
alpounet has joined #ocaml
cthuluh has joined #ocaml
cthuluh has quit [Client Quit]
alpounet has quit [Ping timeout: 245 seconds]
avsm has quit [Quit: Leaving.]
Kakadu has quit [Quit: Konversation terminated!]
avsm has joined #ocaml
maattdd_ has joined #ocaml
Kakadu has joined #ocaml
Submarine has joined #ocaml
Submarine has joined #ocaml
Submarine has quit [Changing host]
tane has joined #ocaml
ustunozgur has joined #ocaml
penglingbo has quit [Ping timeout: 240 seconds]
maattdd_ has quit [Ping timeout: 244 seconds]
testcocoon has quit [Quit: Coyote finally caught me]
<def`>
whitequark: I implemented what you asked for sublime, but 1. alpha quality :P, 2. this branch only support ocaml 4.02-trunk at the moment
testcocoon has joined #ocaml
maattdd_ has joined #ocaml
maattdd_ has quit [Ping timeout: 255 seconds]
ustunozgur has quit [Remote host closed the connection]
tnguyen has joined #ocaml
ustunozgur has joined #ocaml
ollehar has joined #ocaml
ustunozgur has quit [Ping timeout: 240 seconds]
cthuluh has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
shinnya has joined #ocaml
avsm has quit [Quit: Leaving.]
<whitequark>
that's ok
<whitequark>
Drup: I think SQL wasn't accidentally turing complete...
<whitequark>
I mean, it's pretty clear, with stored procedures and something
Anarchos has joined #ocaml
<whitequark>
they never really aimed for query sublanguage to explicitly *not* be turing-complete, because, well, what's the point?
<whitequark>
also it's only the x86 paging that is T-C
penglingbo has joined #ocaml
q66 has quit [Ping timeout: 252 seconds]
<Drup>
whitequark: since it's only in latest version of SQL, yes, I think it's accidental
<whitequark>
SQL globally includes stored procedures
<whitequark>
what you're talking about are recursive queries
<Drup>
of course
<whitequark>
and I actually think that the fact that queries can be recursive (it's basicaly a let..and) is quite deliberate
bbarker has joined #ocaml
<whitequark>
they just never thought of it in terms of "would this make our query sublang turing-complete", because it already was, in a way--you can invoke arbitrary procedures!
Hannibal_Smith has quit [Quit: Sto andando via]
<ggole>
Hmm, syntax errors are a bit more informative now
* ggole
approves
<def`>
ggole: what error message did you got ?
<ggole>
Syntax error: pattern expected
<def`>
:-) ok
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
q66 has joined #ocaml
ustunozgur has joined #ocaml
Puffin has joined #ocaml
BitPuffin has quit [Ping timeout: 245 seconds]
penglingbo has quit [Ping timeout: 272 seconds]
ustunozgur has quit [Remote host closed the connection]
ustunozgur has joined #ocaml
ustunozgur has quit [Ping timeout: 272 seconds]
ustunozgur has joined #ocaml
Arsenik has quit [Remote host closed the connection]
fx has joined #ocaml
<fx>
hiya, I'm getting started with OCaml and right now I feel like I'm hitting a wall
<fx>
I've declared an int list, and OCaml and I agrees about the presence of this
<fx>
but why can't I call methods like l#rev ();;
<Kakadu>
because list is not an object
<fx>
Ah
<Drup>
call it like that : "List.rev l"
<fx>
ah, thanks
<Drup>
(cute :D)
alpounet has joined #ocaml
<mrvn>
Hey, one could write a OO flavour of the stdlib. :)
<Drup>
Nope.
dsheets has joined #ocaml
<companion_cube>
it's already been done, I think
<whitequark>
it was
alpounet has quit [Ping timeout: 272 seconds]
<adrien>
and redone
weykent has joined #ocaml
<weykent>
it's been a while since i wrote any ocaml programs--could someone look over my code and tell me if there's any obvious improvements i could make? https://paste.weasyl.com/show/7wY3VxnDoaWueIFybhKU/
<mrvn>
weykent: doesn't Batteries have Sets with option based find?
<weykent>
mrvn, hmm, maybe. one sec
<weykent>
mrvn, you mean maps?
<def`>
and since String already has the fields t and compare, you don't need OrderedString
<weykent>
oh, i see. so i can just pass the String module directly
<def`>
whitequark: are you using sublime-text 2 or 3? (and which one should I use)
<weykent>
also, is there an easy way to declare that a function returns a particular type without using an mli file?
<def`>
let f arg : type = …
<mrvn>
weykent: yes
<weykent>
perfect, thanks
<mrvn>
or let f arg = ... (res : type)
<mrvn>
weykent: note: that is only a hint and the annotated type is unified with the infered type. The ifered type can be more specific. E.g. you annotate 'a list and it inferes int list.
<weykent>
ah, okay
<weykent>
this was just to get merlin's show-type keybinding to not have a huge type signature on e.g. cardinality_aggregate
<weykent>
i annotated it Yojson.Safe.json
<def`>
weykent: use 'a. 'a list if you want the actual type to be really polymorphic
<def`>
ah, fine :)
Eyyub has joined #ocaml
Submarine has quit [Remote host closed the connection]
<whitequark>
def`: 3
<whitequark>
def`: the python apis is pretty much the same
<def`>
ok
<whitequark>
there are a few trivial tricks you can do to make code compatible with both. you may not bother, I'll do that if necessary
<def`>
yeah, I'll try 3
pyon has quit [Remote host closed the connection]
wwilly has quit [Remote host closed the connection]
pyon has joined #ocaml
Anarchos has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
mbac_ has quit [Remote host closed the connection]
axiles has quit [Remote host closed the connection]
cthuluh_ has joined #ocaml
racycle has joined #ocaml
cthuluh has quit [Disconnected by services]
cthuluh_ is now known as cthuluh
agarwal1975 has joined #ocaml
ggole has quit []
hhugo has joined #ocaml
racycle has quit [Quit: ZZZzzz…]
rand000 has joined #ocaml
Kakadu has quit [Quit: Konversation terminated!]
rand000 has quit [Quit: leaving]
maattdd_ has joined #ocaml
tane has quit [Quit: Verlassend]
Eyyub has quit [Ping timeout: 240 seconds]
inr has quit [Ping timeout: 245 seconds]
avsm has joined #ocaml
Eyyub has joined #ocaml
ustunozgur has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
ustunozgur has joined #ocaml
<Chrix>
and why Ocaml isn't a research vehicle for INRIA anymore?
hhugo has quit [Quit: Leaving.]
<Chrix>
@adrien using google
Simn has quit [Quit: Leaving]
<companion_cube>
Chrix: most of Gallium's research is oriented toward Coq, compCert (compilation with coq) and Mezzo
hhugo has joined #ocaml
ustunozgur has quit [Ping timeout: 240 seconds]
Eyyub has quit [Ping timeout: 240 seconds]
hhugo has quit [Quit: Leaving.]
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
Thooms has quit [Quit: WeeChat 0.3.8]
Eyyub has joined #ocaml
maattdd_ has quit [Ping timeout: 244 seconds]
maattdd_ has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
lordkryss has joined #ocaml
typedlambda has quit [Ping timeout: 252 seconds]
typedlambda has joined #ocaml
bjorkintosh has quit [Ping timeout: 245 seconds]
Eyyub has quit [Ping timeout: 272 seconds]
<_habnabit>
so it looks like postgresql-ocaml has a 'socket' method that returns an integer, but i can't seem to find a method to convert from an integer to a socket that lwt can select on
<_habnabit>
should i use the "%identity" thing to make a converter, or what?
darkf has joined #ocaml
Eyyub has joined #ocaml
<Drup>
why do you want to do that ?
<_habnabit>
Drup, i want to do async postgres queries
<Drup>
then you just use pgsql's foncteur
<_habnabit>
Drup, sorry, i'm not sure what you mean by that