Gues_____ has quit [Quit: Computer has gone to sleep.]
michael_lee has joined #ocaml
Gues_____ has joined #ocaml
michael_lee has quit [Max SendQ exceeded]
dant3 has joined #ocaml
michael_lee has joined #ocaml
srcerer_ has joined #ocaml
Simn has joined #ocaml
srcerer has quit [Ping timeout: 252 seconds]
dant3 has quit [Ping timeout: 248 seconds]
dant3 has joined #ocaml
michael_lee has quit [Max SendQ exceeded]
michael_lee has joined #ocaml
ggole_ has joined #ocaml
sagotch has joined #ocaml
ggole has quit [Ping timeout: 264 seconds]
dsheets has quit [Ping timeout: 245 seconds]
zRecursive has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
Kakadu has joined #ocaml
nikki93 has quit [Remote host closed the connection]
sw1nn has joined #ocaml
zpe has joined #ocaml
uggwar_ is now known as uggwar
ggole_ is now known as ggole
zpe has quit [Ping timeout: 260 seconds]
dsheets has joined #ocaml
yacks has quit [Ping timeout: 252 seconds]
ikaros has joined #ocaml
q66 has quit [Quit: Leaving]
ollehar has joined #ocaml
yacks has joined #ocaml
nikki93 has joined #ocaml
nikki93 has quit [Ping timeout: 260 seconds]
mika1 has joined #ocaml
r0b1 has quit [Ping timeout: 272 seconds]
yacks has quit [Ping timeout: 248 seconds]
yacks has joined #ocaml
vpm has quit [Read error: Operation timed out]
vpm has joined #ocaml
dsheets has quit [Ping timeout: 245 seconds]
angerman has quit [Read error: Connection reset by peer]
angerman has joined #ocaml
avsm has joined #ocaml
milosn has quit [Ping timeout: 252 seconds]
milosn has joined #ocaml
angerman has quit [Read error: Connection reset by peer]
angerman has joined #ocaml
sagotch has quit [Ping timeout: 245 seconds]
dsheets has joined #ocaml
thomasga has joined #ocaml
zarul has quit [Ping timeout: 272 seconds]
sagotch has joined #ocaml
avsm has quit [Quit: Leaving.]
rom1504 has quit [Read error: Operation timed out]
rom1504 has joined #ocaml
skchrko has joined #ocaml
ollehar has quit [Ping timeout: 246 seconds]
<Drup>
ggole: french vs english typography rules =)
kyrylo has joined #ocaml
<adrien_oww>
hehe
<Drup>
(french ones are prettier)
<Drup>
(but I'm totally biased)
<adrien_oww>
you cannot think english ones aren't crazy when you think about how you're supposed to handle punctuation in quotes
<adrien_oww>
if you want to quote someone who said "I love chocolate," and then want to put a comma, you are supposed to put it inside the quotation marks!
csakatoku has quit [Remote host closed the connection]
yellowfish has quit [Ping timeout: 260 seconds]
<ggole>
Drup: ah, ok
<ggole>
adrien_oww: that's considered obsolete by many
<fds>
If I see someone punctuating inside quotes like that, it makes me think that they're American.
yellowfish has joined #ocaml
dant3 has quit [Remote host closed the connection]
dant3 has joined #ocaml
_andre has joined #ocaml
talzeus has quit [Remote host closed the connection]
hyperboreean has quit [Ping timeout: 272 seconds]
Gues_____ has quit [Quit: Computer has gone to sleep.]
sagotch has quit [Ping timeout: 245 seconds]
_________ has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
thomasga has quit [Quit: Leaving.]
avsm has joined #ocaml
thomasga has joined #ocaml
Thooms has joined #ocaml
thomasga has quit [Quit: Leaving.]
wolfnn has joined #ocaml
angerman has quit [Read error: Connection reset by peer]
The-Mad-Pirate has quit [Read error: Connection reset by peer]
shinnya has joined #ocaml
michael_lee has quit [Remote host closed the connection]
angerman has joined #ocaml
<hcarty>
companion_cube: Have you done a performance test on Gen vs BatSeq?
r0b1 has joined #ocaml
<companion_cube>
vs BatSeq, I didn't, but I think Drup did
<companion_cube>
\o hcarty btw
njcomsec has joined #ocaml
dant3 has quit [Remote host closed the connection]
<hcarty>
companion_cube: Hello!
thomasga has joined #ocaml
<hcarty>
I'm very happy to see smaller, more focused libraries/modules popping up on opam. While I like Batteries, being able to pick and choose smaller pieces seems more friendly.
<companion_cube>
hcarty: I'm still planning to split batteries into smaller, friendlier pieces
<hcarty>
And a monolithic wrapper is still possible if the IO piece can be figured out.
<flux>
I guess the namespace discussion lead to nowhere
<hcarty>
companion_cube: I've been lurking on that conversation. I haven't had any time to spend on it so I haven't wanted to chime in yet.
<hcarty>
flux: module aliases in their place IIRC
<flux>
we've had module aliases before, or is this something new?
<hcarty>
flux: That's a good question that I don't know the answer to :-)
<rks_>
flux: what do you mean "we've had module aliases before"?
<flux>
ok, so this is something new? I thought my 'module aliases' hcarty meant the something like module Baz = Batteries_foo
<rks_>
it's "something new", but it's about that kind of thing yes
<flux>
as I haven't read of module aliases from the mailing list, or it was so long time ago I don't remember anymore :)
<companion_cube>
I thought module aliases were purely at the optimization level?
<companion_cube>
like, to avoid duplicating modules everywhere
<rks_>
there is nothing new at the user end indeed
<rks_>
and I think it's more about avoiding the duplication of the signatures
<rks_>
(than the code in itself, which I don't think is duplicated)
<rks_>
oh and, when I said « nothing new at the user end » that was probably wrong, I think I read something about being able to write « module X = Y » in an mli
<rks_>
s/mli/signature
<companion_cube>
oh
<companion_cube>
cool
<rks_>
which you couldn't do before, what you had was "module X : module type of Y" which isn't the same thing.
<hcarty>
Drup: Do you have a Gen vs BatSeq performance comparison?
<adrien_oww>
iirc "module X = Y" made your code inflate
<Drup>
hcarty: no, but I can make one easily
_________ has quit [Quit: Computer has gone to sleep.]
<rks_>
adrien_oww: ok
<companion_cube>
Drup: just throw together all the structures you know :D
<companion_cube>
in a big benchmark
<Drup>
hcarty: actually ... I did, it's in my email on the batteries-devel ml
krono has joined #ocaml
<Drup>
it's not the lastest version of Gen, but I think it didn't change anything ( companion_cube ?)
<companion_cube>
Drup: if the type is unit -> 'a option, no
<companion_cube>
if you use Gen.persistent be sure to use the last version
<Drup>
hcarty: do you need a copy of the email or are you on the mailing list already ?
<Drup>
yes
<hcarty>
Drup: Thanks - I am on the list. I must have missed that thread.
<hcarty>
Drup: So Sequence is faster than Seq which is faster than Gen according to this benchmark - correct?
<Drup>
yes
<hcarty>
Thank you
<Drup>
however, the difference between Gen and BatSeq is less than 20%, so it's start being very dependent of external factors
kyrylo has quit [Quit: Viva la revolucion!]
<Drup>
I'm sure I could inverse the relation with just word alignment by inserting comments :)
<hcarty>
Drup: Probably so :-) The implementation difference is somewhat subtle.
<companion_cube>
Seq is a bit weird imho, it looks like it's persistent but nothing guarantees it
<Drup>
and also, Gen is destructive, BatSeq is not
<Drup>
companion_cube: like Sequence
dant3 has joined #ocaml
<companion_cube>
hcarty: also, Sequence is faster but intrinsically less powerful
<companion_cube>
Drup: indeed
<Drup>
hcarty: imho, Gen and BatSeq shouldn't really be compared directly. On the other hand, BatSeq and Sequence are really very close
<Drup>
(feature-wise)
<Drup>
hcarty: I'm also quite convinced that on "one shot" iterators, Gen would take the lead. But I didn't benchmarked that very properly
<hcarty>
I've found Seq to be closer to what I want in general than Enum or Gen. Gen.Restart looks like it acts similar to Seq.
<Drup>
just use Sequence in this case
<companion_cube>
Drup: not really, you still can't write zip for Sequence
<hcarty>
'In general' in my case doesn't involve IO or other side effects though. Enum has been fine for that use.
<companion_cube>
whereas you can with Gen.Restart
<Drup>
companion_cube: hum, yeah
hyperboreean has joined #ocaml
<companion_cube>
that's why I say that Sequence is less powerful
_________ has joined #ocaml
<companion_cube>
Gen has things like merge, tee, sorted_merge...
<hcarty>
companion_cube: What does Gen offer over Seq?
<Drup>
Gen is destructive
<hcarty>
Gen.Restart rather
<companion_cube>
Gen.Restart is compatible with Gen ;)
<hcarty>
I haven't played with Gen yet so I may be missing something obvious
<Drup>
if you use only Gen.Restart, I don't think you are going to have great performances
<companion_cube>
Drup: depends on what you need, but there's one more closure, indeed
<thomasga>
so batteries is splitting up ?
<Drup>
companion_cube: what datastructure do you use internally ?
<Drup>
thomasga: companion_cube is trying, at least :D
<companion_cube>
thomasga: I meant into sub-libraries batteries.foo, batteries.bar
<companion_cube>
but that's not done yet (at *all*)
<thomasga>
cool
<thomasga>
try to split the unix bits out as well :p
<companion_cube>
Drup: currently I use Sequence in my prover, mostly for flatMap and append
<companion_cube>
thomasga: that's part of the point ;)
<thomasga>
nice!
<Drup>
(personally, I'm trying to convince them that Enum is bad)
<companion_cube>
:D
<companion_cube>
and Enum might become optional (but that's probably going to lead to heavy discussions)
<Drup>
(without that much success, I might say)
<njcomsec>
i think you mean "I'm trying to convince them that that Enum is bad"
<njcomsec>
your english is bad
<companion_cube>
?
<hcarty>
njcomsec: I don't think so.
<Drup>
njcomsec: I agree that my english is terrible, but in this case, I'm not sure I see the issue
<companion_cube>
hcarty: any opinion of making IO.output/input object types, so that they don't depend on BatIO anymore?
<adrien_oww>
njcomsec: "Enum" is a specific module from Batteries; what Drup said is correct
<Drup>
(It wouldn't be capitalized otherwise :D)
<companion_cube>
it could be a person
<hcarty>
companion_cube: Something along the lines of the object wrappers in BatIO?
<companion_cube>
yep, or the channels in ocamlnet
<companion_cube>
(which are surprisingly close)
<hcarty>
companion_cube: That seems like a reasonable approach. Are there any significant performance concerns?
<Drup>
dynamic dispatch is slow, so yes
<Drup>
but I think the IO cost is far higher anyway
<companion_cube>
I'm not sure the performance are so bad for IO
<companion_cube>
exactly
thomasga has quit [Quit: Leaving.]
<hcarty>
companion_cube: It seems like the best option
<hcarty>
companion_cube: Any other reasonable option seems like it would require a BatIOTypes module which seems excessive and unfriendly to iteroperability with modules outside of Batteries.
<flux>
wasn't it so, though, that if you do object calls in a loop, they get cached?
<flux>
in other words, situations demanding high performance probably stay pretty fast
<companion_cube>
hcarty: indeed. and having compatibility with ocamlnet wouldn't be bad ;)
<companion_cube>
I'll think about it
<hcarty>
flux: I read something along those lines but I don't have a reference.
<hcarty>
companion_cube: Exactly. If it can be made to work easily with Lwt then I'm completely for it :-)
<companion_cube>
we need to ask gasche or some other compiler person
<companion_cube>
hcarty: sounds harder, you have to abstract over a monad
<companion_cube>
:s
<Drup>
I don't think that's compiler related, just processor caching
ygrek has joined #ocaml
<adrien_oww>
method calls are cached
<adrien_oww>
but that doesn't make them free
<companion_cube>
for IO, the most commonly called methods would be write:string -> int -> int -> int and read:string -> int -> int -> int
<companion_cube>
so...
<companion_cube>
(interesting symmetry, actually)
avsm has quit [Quit: Leaving.]
<adrien_oww>
it's memory offsets and lengths all the way down
shinnya has quit [Ping timeout: 264 seconds]
dant3 has quit [Remote host closed the connection]
yellowfish has quit [Ping timeout: 264 seconds]
_________ has quit [Quit: Computer has gone to sleep.]
<companion_cube>
adrien_oww: yes, so you don't necessarily have many method calls
<hcarty>
companion_cube: A nice first step toward splitting Batteries may be creating stand-alone versions of the problematic modules (IO and Enum or whatever replaces it)
<flux>
so what will be the module names after this renaming?
<flux>
Batteries_Module?
<hcarty>
companion_cube: That gives something to test against, both from an interface and a performance perspective
<companion_cube>
hcarty: hmmm, interesting
<Drup>
flux: why do you want to rename ?
<Drup>
BatThingy is nice
<flux>
drup, well they cannot be Batteries.* all, can they?
<companion_cube>
at least compiling them separately...
dant3 has joined #ocaml
<flux>
'open Batteries' is nice as well :)
<companion_cube>
flux: open Batteries;; open BatteriesIO;;
<hcarty>
flux: I think the intent is to still provide the ability to "open Batteries"
<Drup>
I don't like "open Batteries" and I never used it
<flux>
I used to use Bat*-modules, but then I just let it go :)
<companion_cube>
or maybe open BatteriesAll;; if you want the full package
<hcarty>
flux: But if you don't want all of Batteries you'll be able to more efficiently grab smaller pieces
<flux>
the most sensible place for such would be libraries
<flux>
otherwise, well, I don't think there's really benefit
<hcarty>
companion_cube: "open Batteries" seems like a good way to spell "open BatteriesAll"
<companion_cube>
hcarty: maybe. Pervasives is also a tough topic, because it depends on many things.
<hcarty>
companion_cube: If you're already pulling in all of Batteries, what does that matter?
<hcarty>
If you're trying to pull in a subset then being more explicit is probably a good thing
<companion_cube>
hcarty: well the point is, you shouldn't link against all batteries
<companion_cube>
unless you want it all, indeed
<companion_cube>
I keep your idea of first making IO/Enum separate
<companion_cube>
I'm currently (well, on my free time) trying to split in several parts already, but that's tough
<hcarty>
companion_cube: I've tried to do the same in my free time. It's too much for a free time project I think :-) Starting with a core module should be easier though as it requires tracking fewer moving parts.
<companion_cube>
you mean making things separate one by one?
dant3 has quit [Remote host closed the connection]
<hcarty>
companion_cube: Yes. In particular starting with IO since it is one of the major trouble spots when trying to split Batteries effectively.
dant3 has joined #ocaml
<hcarty>
companion_cube: Splitting out the modules one at a time also allows users to take advantage of the work as its done rather than requiring a grand 3.0.0 release before anyone can try things out and comment.
dant3_ has quit [Remote host closed the connection]
nataren has joined #ocaml
dant3 has joined #ocaml
avsm has joined #ocaml
dant3 has quit [Ping timeout: 252 seconds]
sw1nn` has joined #ocaml
sw1nn` is now known as Guest80997
sw1nn has quit [Ping timeout: 245 seconds]
Guest80997 is now known as sw1nn_
sw1nn_ is now known as sw1nn
sw1nn has quit [Remote host closed the connection]
tianon has quit [Ping timeout: 248 seconds]
tianon has joined #ocaml
Kakadu has quit [Ping timeout: 245 seconds]
aurynj has joined #ocaml
palomer has joined #ocaml
thomasga has joined #ocaml
mmachenry has quit [Quit: Leaving.]
skchrko has quit [Ping timeout: 260 seconds]
arj has joined #ocaml
mmachenry has joined #ocaml
mort___ has joined #ocaml
nataren has quit [Remote host closed the connection]
mort___ has quit [Remote host closed the connection]
mort___ has joined #ocaml
sw1nn has joined #ocaml
krono has quit [Ping timeout: 252 seconds]
yellowfish has joined #ocaml
watermind has joined #ocaml
dant3 has joined #ocaml
mrhmouse has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
srcerer_ is now known as srcerer
ygrek has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
Kakadu has joined #ocaml
avsm has joined #ocaml
avsm has quit [Ping timeout: 272 seconds]
mmachenry has quit [Quit: Leaving.]
dsheets_ has joined #ocaml
dsheets has quit [Ping timeout: 264 seconds]
yacks has quit [Quit: Leaving]
Anarchos has joined #ocaml
ollehar has joined #ocaml
thomasga has quit [Ping timeout: 245 seconds]
thomasga has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
mrhmouse has left #ocaml []
mort___ has quit [Ping timeout: 260 seconds]
thomasga has quit [Quit: Leaving.]
zpe has joined #ocaml
arj has quit [Quit: Leaving.]
mmachenry has joined #ocaml
Eyyub has joined #ocaml
Myk267 has quit [Quit: Myk267]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
thomasga has joined #ocaml
rand000 has quit [Ping timeout: 264 seconds]
ollehar has quit [Quit: ollehar]
thomasga has quit [Client Quit]
thomasga has joined #ocaml
sw1nn has quit [Ping timeout: 252 seconds]
mathieui has joined #ocaml
rand000 has joined #ocaml
zxqdms has quit [Quit: leaving]
thomasga has quit [Quit: Leaving.]
mathieui has left #ocaml []
q66 has joined #ocaml
Arsenik has joined #ocaml
q66 has quit [Remote host closed the connection]
devn has joined #ocaml
<devn>
Silent name conflict resolution: Is this still a thing in OCaml?
<adrien>
what do you mean?
<devn>
No warning when opening two modules which contain a definition of x.
<adrien>
ah, "shadowing"
<devn>
yes.
<devn>
is there still no warning or option to warn?
<adrien>
the second definition hides the first one
<adrien>
I think there's one now but I can't tell if it's in 4.01 (released) or only in SVN
<smondet>
devn: a *lot* of people use that as a feature
<devn>
adrien: sure, last one wins, but it's a bummer there's no warning. i figured maybe that was something that was fixed.
<devn>
smondet: wait, what is the feature?
<adrien>
there's nothing to fix, it's a feature
<adrien>
mostly
<devn>
oof
<adrien>
let x = foo bar in
<adrien>
let x = baz in
<adrien>
...
<smondet>
for example Core and Batteries, there "shadow" the standard library
<adrien>
but as I said, maybe something has change not very long ago but I can't tell for sure
<nlucaroni>
you would get an unused varibale warning for something like that adrien.
<devn>
I guess I just expect the best practice to be that people namespace qualify symbols to avoid /accidentally/ shadowing
<adrien>
nlucaroni: oh, I meant "baz x" instead of only "baz" :)
<devn>
is that not true?
<adrien>
devn: it's not a common concern
<adrien>
the previous definition is still accessible through its full path
<devn>
so instead of using xyz(1,2,3). I'd use Mine.xyz(1,2,3)
<nlucaroni>
I thought there were warnings for shadowing
<smondet>
or if you define a module for some math object and you define '*', '+', etc then you can My_ring.(some + expression * in_the_ring)
<devn>
adrien: yeah, i guess im just coming out against namespace polution as a general practices. nlucaroni i was reading there weren't
<adrien>
devn: yes, if there's a shadowing, yes
<adrien>
it's also a reason "open" should not be abused
<devn>
smondet: yeah i have no issue with any of that. shadowing is dandy.
<devn>
i just want a warning
<nlucaroni>
44 Open statement shadows an already defined identifier.
<devn>
nlucaroni: what version are you on?
<nlucaroni>
4.01.0
<adrien>
- PR#5980: warning on open statements which shadow an existing identifier (if it is actually used in the scope of the open); new open! syntax to silence it locally (Alain Frisch, thanks to a report of Daniel Bünzli)
<devn>
i was reading an article that is probably outdated
<adrien>
in 4.01.0
<devn>
i hesitate to post this in here because i'm seriously not trolling
<devn>
now, if you finish reading it you'll realize he's a lisp weenie. I'm something of a lisp weenie myself. I think many of his arguments are legitimate, but he is referring to 3.0 in some cases
<devn>
I have a feeling a lot of this has been taken care of, but I would love to know which parts of it are true
<devn>
for instance, the warning for shadowed vars when using open
thomasga has joined #ocaml
<nlucaroni>
updated last week! that guy didn't update his compiler though :)
<nlucaroni>
err last year*
<devn>
So, like: silent integer overflow, module immutability, polymorphism run-time type errors
<palomer>
one of his arguments is that ocaml doesn't have a built in matrix type
<palomer>
I don't know very many languages that do
<palomer>
silent integer overflow is a problem, but it's also a problem in many languages
<adrien>
devn: this page is well-know, no worries
<adrien>
it's also, 10yo now?
<palomer>
you should probably use a more sophisticated number type
<adrien>
oh and its authors does ocaml nowadays, or did last year
<devn>
palomer: yeah i think that's nonsense
<nlucaroni>
the page has an updated time of feb 2013. but it looks like a lot of the content is the same.
<devn>
a built-in matrix type is something id rather grab as a library
<palomer>
module immutability: define a new module, open the old module, and redefine whatever functions you want
<devn>
palomer: yeah, but i think his argument is that it doesn't have something like haskell's typeclasses, or clojure's deftype/defprotocol
<palomer>
"cannot compare hash table" isn't much of a problem
<devn>
where you can extend behavior to a type without modifying the original
<palomer>
devn: if you want that, use classes
<palomer>
there was actually some discussion on combining modules and classes
<devn>
palomer: i think they're prone to the same issue
<devn>
it's the expression problem
<palomer>
xavier even had a grad student working on it I think
<devn>
palomer: interesting
<palomer>
with a class you can redefine whatever virtual functions you need
<devn>
i'd like to check that out
<palomer>
devn, don't think it went anywhere
<palomer>
he even mentioned it at the ocaml meetup in paris
<devn>
ah, yeah, it seems like there are other options which are well understood and could be stolen from other languages like Haskell, Clojure, etc.
<palomer>
"no macros": see camlp4 or the new binary thing from ocamlpro
<adrien>
part of this page is "ocaml is not lisp"
<devn>
yeah, macros wouldn't be a big thing for me in ocaml
<devn>
adrien: yeah i find that distasteful too
<adrien>
and some things really need a more serious update
<devn>
in lisp i want macros. i expect them.
<devn>
in ocaml, meh
<devn>
i mean, they're nice to have. i like them.
<devn>
but they're not a deal breaker
<palomer>
"generalized references" <-- meh, if your code has too many references you probably shouldn't be using ocaml
zxqdms has joined #ocaml
<palomer>
record field naming is a good point
<devn>
what do you think about "record field naming hell"
<palomer>
unfortunately, there's no good solution to this
<palomer>
and many people have tried coming up with stuff
<adrien>
20:34 palomer : record field naming is a good point
<adrien>
see trunk
<adrien>
or >= 4.01
<palomer>
yeah, i heard there's a new thing
<palomer>
so how does it work?
<palomer>
it uses type information to disambiguate?
<palomer>
breaks a few nice properties of the type system :/
<palomer>
but it's convenient, I can agree with that
<palomer>
the big problem is that when you start moving code around, you'll start seeing type errors because it can't disambiguate any more
<palomer>
that's the big problem with record field disambiguation
<palomer>
"no polymorphism" is a problem for some, an advantage for others. Personally, I don't mind.
<palomer>
Inconsistent function sets: true, but there are very few functions
<palomer>
I don't know what he means by dynamic variables
<adrien>
palomer: it tries to disambiguiate
* adrien
afk
<palomer>
optional arguments is a whole can of worms
<devn>
palomer: perhaps he means that you can dynamically /rebind/ a bound var
<palomer>
Jacques Garrigue wanted to keep some nice theoretical properties
<palomer>
(it's based on his PhD work)
<palomer>
devn, what does that mean?
mmachenry has quit [Quit: Leaving.]
<palomer>
so optional arguments + partial application = complicated stuff
<palomer>
Alain Frisch once proposed that were we to replace ocaml with something better, we should eliminate partial application
<palomer>
to make optional arguments more useful
mmachenry has joined #ocaml
<palomer>
arithmetic readability: I found that list code unreadable, so I guess readability is in the eye of the beholder. That being said, we can do stuff like Int32.(a + b) now
<palomer>
silent name conflict has been taken care of
<palomer>
order of evaluation is undefined last I checked
<palomer>
so I don't know what he's smoking
<palomer>
if you're code depends on the order of evaluation, you probably shouldn't be using ocaml
<palomer>
the whole no object input/output is a very big question. There was some talk of introducing generics into ocaml. I don't know what the statis of that is, but it's pretty exciting stuff. The big application is type safe marshalling
<palomer>
compiler stops after first error: I don't think this is true
<palomer>
no stack trace: fixed
<nlucaroni>
lists are immutable!!
<palomer>
debugger sucks: I know some people that are big fans
<palomer>
GC sucks: many people would disagree about this
<palomer>
no implicit forward declaration: needed for shadowing. also makes compilation faster
<palomer>
(well, type checking at least)
smerz has joined #ocaml
<palomer>
standard library sucks: I prefer the term "minimal"
<palomer>
but yeah, someone should make a new document so we have a better idea of what to improve
<palomer>
taking into account the newer versions and with better knowledge of the stuff that was done _on purpose_
malo has joined #ocaml
angerman has quit [Quit: Gone]
nikki93 has joined #ocaml
nikki93 has quit [Ping timeout: 265 seconds]
<devn>
hey, sorry, i have to dip back into work
<devn>
palomer: adrien: nlucaroni: thanks for your responses. I wasn't trying to drop that link and just bounce. I really appreciate having a discussion about it. I'm thinking about picking up some OCaml and wanted to know where the landmines and landlines are.
ggole has quit []
<palomer>
the biggest hurdle is the learning curve
<palomer>
the biggest weaknesses aren't even mentioned in that document
<palomer>
poor windows support
<palomer>
(no debugger on windows I think)
<palomer>
no multi threading
<palomer>
those are the only ones I can thing of off the top of my head
comacat has joined #ocaml
comacat has quit [Client Quit]
comacat_ has joined #ocaml
comacat_ has quit [Client Quit]
comacat has joined #ocaml
dant3 has quit [Read error: Connection reset by peer]
dant3 has joined #ocaml
yellowfish has quit [Ping timeout: 248 seconds]
ollehar has joined #ocaml
_andre has quit [Quit: leaving]
claudiuc has joined #ocaml
arjunguha has joined #ocaml
<devn>
palomer: any suggested reading or toy projects worth learning on?
<palomer>
I just want to write the key and the number of the bar the note is on
<palomer>
(and its length)
<palomer>
but, uhh, that's probably rather hard :P
<palomer>
go for IRC
arjunguha has joined #ocaml
arjunguha has quit [Client Quit]
sw1nn has joined #ocaml
arjunguha has joined #ocaml
arjunguha has quit [Client Quit]
sw1nn` has joined #ocaml
<smondet>
devn: looooong time ago, I played with MIDI stuff in OCaml, https://code.google.com/p/locoseq/ there is a parser/writer for midifiles and other things
sw1nn` is now known as Guest17503
<smondet>
(the project itself is dead)
r0b1 has quit [Ping timeout: 252 seconds]
sw1nn has quit [Ping timeout: 260 seconds]
thomasga has quit [Quit: Leaving.]
arjunguha has joined #ocaml
SrPx has joined #ocaml
smondet has quit [Quit: leaving]
smondet has joined #ocaml
Guest17503 has quit [Ping timeout: 248 seconds]
r0b1 has joined #ocaml
thomasga has joined #ocaml
thomasga has quit [Client Quit]
thomasga has joined #ocaml
SrPx has quit [Quit: Page closed]
passiveobserver has quit [Ping timeout: 272 seconds]
passiveobserver has joined #ocaml
Guest17503 has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest17503 has quit [Ping timeout: 264 seconds]
rand000 has quit [Quit: leaving]
dant3 has quit [Ping timeout: 260 seconds]
Anarchos has quit [Quit: Vision[0.9.7-H-20131020]: i've been blurred!]
rand000 has joined #ocaml
rand000 has quit [Client Quit]
arjunguha has joined #ocaml
nikki93 has joined #ocaml
nikki93 has quit [Ping timeout: 269 seconds]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
Kakadu has quit [Quit: Konversation terminated!]
axiles has quit [Remote host closed the connection]
S11001001 has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
Thooms has quit [Quit: WeeChat 0.3.8]
Guest17503 has joined #ocaml
nikki93 has joined #ocaml
mreca has joined #ocaml
mreca has quit [Client Quit]
thomasga has quit [Quit: Leaving.]
Guest17503 has quit [Ping timeout: 240 seconds]
jao has quit [Ping timeout: 248 seconds]
nlucaroni has quit [Quit: leaving]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
dsheets_ has quit [Ping timeout: 264 seconds]
Eyyub has quit [Read error: Operation timed out]
yellowfish has joined #ocaml
Eyyub has joined #ocaml
yellowfish has quit [Changing host]
yellowfish has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lostcuaz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mmachenry has quit [Quit: Leaving.]
smondet has quit [*.net *.split]
hyperboreean has quit [*.net *.split]
smondet has joined #ocaml
hyperboreean has joined #ocaml
maxibolt has joined #ocaml
dsheets_ has joined #ocaml
arjunguha has joined #ocaml
thomasga has joined #ocaml
thizanne has quit [Ping timeout: 272 seconds]
Arsenik has quit [Remote host closed the connection]
palomer has quit [Remote host closed the connection]
smerz has quit [Ping timeout: 264 seconds]
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
arjunguha has joined #ocaml
zRecursive has joined #ocaml
passiveobserver has quit [Ping timeout: 260 seconds]
palomer has joined #ocaml
mfp has quit [Read error: Connection reset by peer]
mfp has joined #ocaml
passiveobserver has joined #ocaml
gambogi has quit [Ping timeout: 260 seconds]
gambogi has joined #ocaml
darkf has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shinnya has joined #ocaml
madroach has quit [Ping timeout: 252 seconds]
madroach has joined #ocaml
arjunguha has joined #ocaml
NoNNaN has quit [Remote host closed the connection]