madroach has quit [Read error: Connection reset by peer]
unbalancedparen has joined #ocaml
Reshi has joined #ocaml
manizzle has quit [Ping timeout: 250 seconds]
mistermetaphor has quit [Remote host closed the connection]
madroach has joined #ocaml
manud has quit [Quit: manud]
madroach has quit [Read error: Connection reset by peer]
ztennix has joined #ocaml
toomuchtvrotsurb has quit [Remote host closed the connection]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
Reshi has quit [Ping timeout: 260 seconds]
d0nn1e has quit [Ping timeout: 240 seconds]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
d0nn1e has joined #ocaml
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
groovy2shoes has quit [Quit: Leaving]
groovy2shoes has joined #ocaml
pierpa has quit [Ping timeout: 250 seconds]
AltGr has joined #ocaml
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
toomuchtvrotsurb has joined #ocaml
doecnt has joined #ocaml
thomasga has quit [Quit: Leaving.]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
unbalancedparen has quit [Quit: WeeChat 1.5]
madroach has joined #ocaml
yunxing has quit [Remote host closed the connection]
madroach has quit [Read error: Connection reset by peer]
doecnt has quit [Ping timeout: 246 seconds]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
Reshi has joined #ocaml
Algebr has joined #ocaml
darkf has quit [Quit: Leaving]
darkf has joined #ocaml
rgrinberg has joined #ocaml
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
hay207_ has joined #ocaml
hay207 has quit [Ping timeout: 260 seconds]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
doecnt has joined #ocaml
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
ygrek has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
gasche has left #ocaml ["ERC (IRC client for Emacs 24.5.1)"]
walter|r has quit [Ping timeout: 276 seconds]
jeffmo has quit [Quit: jeffmo]
FreeBirdLjj has joined #ocaml
madroach has joined #ocaml
hay207__ has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
hay207_ has quit [Ping timeout: 252 seconds]
ztennix has quit [Ping timeout: 276 seconds]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
doecnt has quit [Ping timeout: 244 seconds]
madroach has joined #ocaml
ygrek has quit [Ping timeout: 244 seconds]
madroach has quit [Read error: Connection reset by peer]
<apache2>
I like how they replace =/== with ==/===, I always screw that up
hay207 has joined #ocaml
hay207__ has quit [Ping timeout: 260 seconds]
manizzle has joined #ocaml
<apache2>
not sure the most sane solution is = as much as making (==) distinctly different
<apache2>
changing (=)* -- I mean it's kind of rare that you actually want to use (==) in ocaml, and most other languages uses (==) to test for structural equality, so the naming of (==) in ocaml is rather stupid. imho.
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
<tautologico>
the syntax was made to look like javascript
<tautologico>
there are lots of people familiar with js
madroach has joined #ocaml
scarygelatin has quit [Quit: Leaving]
madroach has quit [Read error: Connection reset by peer]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
hay207_ has joined #ocaml
hay207 has quit [Ping timeout: 260 seconds]
toomuchtvrotsurb has quit [Remote host closed the connection]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
walter|r has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
dsheets has joined #ocaml
ztennix has joined #ocaml
dsheets has quit [Ping timeout: 250 seconds]
nicholasf has quit [Remote host closed the connection]
<sgronblo>
anyone know if the FUN Ocaml course is still available online to people who didnt do the first session?
nicholasf has joined #ocaml
nicholasf has quit [Remote host closed the connection]
nicholasf has joined #ocaml
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
sh0t has quit [Remote host closed the connection]
manud has joined #ocaml
manud has quit [Client Quit]
ztennix has quit [Ping timeout: 260 seconds]
ztennix has joined #ocaml
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
toomuchtvrotsurb has joined #ocaml
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
toomuchtvrotsurb has quit [Ping timeout: 250 seconds]
madroach has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
walter|r has quit [Remote host closed the connection]
manud has joined #ocaml
madroach has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
_y has quit [Ping timeout: 244 seconds]
tobiasBora has quit [Ping timeout: 265 seconds]
sgnb has quit [Read error: Connection reset by peer]
sgnb has joined #ocaml
MercurialAlchemi has joined #ocaml
rgrinberg has quit [Ping timeout: 260 seconds]
tobiasBora has joined #ocaml
_y has joined #ocaml
yunxing has joined #ocaml
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
tmtwd has joined #ocaml
mistermetaphor has joined #ocaml
AltGr has left #ocaml [#ocaml]
manud has quit [Quit: Leaving.]
kushal has joined #ocaml
mengu has joined #ocaml
mengu has quit [Ping timeout: 244 seconds]
Mercuria1Alchemi has joined #ocaml
d0nn1e has quit [Ping timeout: 250 seconds]
<struk|desk>
wait there's two orbit[zx]?
ztennix has quit [Quit: WeeChat 1.5]
d0nn1e has joined #ocaml
d0nn1e has quit [Ping timeout: 252 seconds]
Mercuria1Alchemi has quit [Ping timeout: 276 seconds]
Mercuria1Alchemi has joined #ocaml
mistermetaphor has quit [Remote host closed the connection]
kushal has quit [Read error: Connection reset by peer]
Reshi has quit [Quit: WeeChat 1.4]
tmtwd has quit [Ping timeout: 276 seconds]
yunxing has quit [Remote host closed the connection]
Maxdaman1us has joined #ocaml
yunxing has joined #ocaml
kushal has joined #ocaml
Maxdamantus has quit [Ping timeout: 244 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
toomuchtvrotsurb has joined #ocaml
yunxing has quit [Ping timeout: 276 seconds]
wolfcore has quit [Ping timeout: 260 seconds]
toomuchtvrotsurb has quit [Ping timeout: 250 seconds]
ygrek has joined #ocaml
wolfcore has joined #ocaml
clog has quit [Ping timeout: 252 seconds]
nicholasf has quit [Remote host closed the connection]
nicholasf has joined #ocaml
aantron has quit [Remote host closed the connection]
aantron has joined #ocaml
toolslive has quit [Quit: Leaving]
toomuchtvrotsurb has joined #ocaml
A1977494 has joined #ocaml
mengu has joined #ocaml
nicholasf has quit [Remote host closed the connection]
tmtwd has joined #ocaml
mengu has quit [Ping timeout: 246 seconds]
kolko has joined #ocaml
yunxing has joined #ocaml
yunxing_ has joined #ocaml
kushal has quit [Quit: Leaving]
yunxing has quit [Ping timeout: 250 seconds]
nicholasf has joined #ocaml
aantron_ has joined #ocaml
aantron has quit [Quit: Leaving...]
aantron_ is now known as aantron
yunxing_ has quit [Ping timeout: 260 seconds]
kushal has joined #ocaml
yunxing has joined #ocaml
toboggan has joined #ocaml
yunxing_ has joined #ocaml
yunxing has quit [Read error: Connection reset by peer]
ygrek has quit [Ping timeout: 246 seconds]
yunxing has joined #ocaml
yunxing_ has quit [Read error: Connection reset by peer]
tmtwd has quit [Ping timeout: 244 seconds]
tmtwd has joined #ocaml
mengu has joined #ocaml
mengu has quit [Ping timeout: 250 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
manud has joined #ocaml
FreeBirdLjj has joined #ocaml
tmtwd has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
manud has left #ocaml [#ocaml]
clog has joined #ocaml
ollehar1 has joined #ocaml
dsheets has joined #ocaml
yunxing has quit [Remote host closed the connection]
yunxing has joined #ocaml
nicholasf has quit [Remote host closed the connection]
larhat has joined #ocaml
nicholasf has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
yunxing has quit [Ping timeout: 276 seconds]
rand__ has joined #ocaml
Maxdaman1us is now known as Maxdamantus
jwatzman|work has joined #ocaml
orbifx has joined #ocaml
toomuchtvrotsurb has quit [Remote host closed the connection]
nicholasf has quit []
<orbifx>
Any thread safe containers?
<flux>
in general I don't think it's such a great idea to embed threadsafety to a container
<flux>
but in principle most immutable containers are thread safe
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
<orbifx>
Why not?
<companion_cube>
not many people use threads anyway
<flux>
orbifx, if you want to, say, update a value in a container, you need to manage the lock externally anyway
<flux>
orbifx, all while everyone using the same container in a single-threaded manner would pay for the locking in performance
<companion_cube>
I have a blokcing queue, but that's about it
<orbifx>
I've been using Queue with threads, but haven't needed to lock it.. am I just very lucky?
<companion_cube>
(because it's not a container, more a synchronisation primitive)
<flux>
orbifx, yes
<orbifx>
Ok, and is there a convention on doing locks, or just manually doing lutes calls?
<flux>
I don't know how others do it but for simple cases I usually use a with_mutex mutex f -kind of function
<orbifx>
Ok, so you are saying that since the compiler won't necessarily produce atomic instructions that lock free structures need, someone would need to do them in C?
<flux>
orbifx, yes
<flux>
preferably they would be ocaml compiler primitives
<flux>
so they can be inlined
<companion_cube>
flux: yeah, reagent would become (hopefully) the new interface for threading
<flux>
hmm, I seem to remember having browsed that paper through earlier.. :)
<orbifx>
I get the whole forking for multicore approach. But cooperative threading can still gain from mitigate locking
<flux>
ocaml-multicore comes with both afaik
<flux>
co-operative multithreading within a domain, and domain ~ core
<flux>
perhaps not completely unlike the n:m threading model
toomuchtvrotsurb has joined #ocaml
<flux>
except in regards that it is tightly integrated on how the GC works :)
<orbifx>
What's the multicore status?
<flux>
seems to be progressing.
<flux>
they just recently got in a first for-review stab on native support from some other repo
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
<orbifx>
Cool
<orbifx>
In terms of ocaml, is there an immutable way to have communication between threads?
toomuchtvrotsurb has quit [Ping timeout: 276 seconds]
troydm has quit [Ping timeout: 244 seconds]
<flux>
I'm not sure what immutable communication would be. I suppose it would involve monads.. :)
<flux>
maybe you mean message passing?
jimt has quit [Ping timeout: 276 seconds]
<flux>
you can use the Event module for that
jimt has joined #ocaml
troydm has joined #ocaml
<orbifx>
Let me check
<flux>
it comes from concurrent ml
<flux>
it might be difficult to understand how it's to be used without some cml documentation :)
RTL8723XE has joined #ocaml
ygrek has joined #ocaml
amnn has joined #ocaml
<flux>
but I think the basic idea is that you might have a let rec loop () = Event.select [Event.receive channel1 |> Event.wrap (fun x -> `Channel1 x); Event.receive channel2 |> Event.wrap (fun x -> `Channel2 x )] with `Channel1 x -> Printf.printf "Hello %s\n%!" x; loop () | `Channel2 x = Printf.printf "World %d\n%!" x; loop ()
<flux>
personally I find its synchronous send a bit tricky in absence of garbage-collected threads such as in cml
<orbifx>
It looks a bit like how I've implementates my queue based communication
<flux>
oh funny I didn't have msgqueue.mli there
amnn has quit [Client Quit]
<flux>
I wonder where I might have a copy.. :)
<orbifx>
By synchronous you mean it triggers the receiving as soon as the event is sent?
<flux>
I mean that both the receiving and sending party proceed synchronously
<flux>
when sending to a channel the send progresses when the message is received
<flux>
but that's ok, because Event.select can select on that operation
<orbifx>
Any tutorials? Or use guides?
amnn has joined #ocaml
<flux>
search for concurrent ml docs/tutorials/examples
<orbifx>
And would you say that it's better than using queues of events?
<flux>
no, it's a drag :-), but it's doable
ollehar1 has left #ocaml [#ocaml]
<flux>
and you can write a buffering thread that does queuing for you
<flux>
perhaps not even a thread is required for that now that I think of it..
<flux>
another thing is that ocaml doesn't provide timeouts for the Event module
<flux>
and it's a bit annoying to implement them efficiently
tennix has joined #ocaml
<orbifx>
So no gain with the event module?
<flux>
not sure what kind of gain were you searching for
<flux>
I think it's pretty elegant way to write threaded apps
<orbifx>
I want to avoid unnecessary complexity. One being managing semaphores for something which should be trivial
dsheets_ has joined #ocaml
<orbifx>
I also want to practice functional & algebraic approaches as much as possible
<orbifx>
Queues are mutable.. some infinite lazy event lists may have been the ideal..
<flux>
I actually sometimes wonder, are OCaml lazy values thread-safe?
<flux>
ie. they don't crash and the function is evaluated at most once
dsheets has quit [Ping timeout: 276 seconds]
RTL8723XE has quit [Quit: RTL8723XE]
<orbifx>
Dunno, I'm new here. I just liked them in Haskell.:-P
dsheets_ has quit [Remote host closed the connection]
mengu has joined #ocaml
dsheets has joined #ocaml
<orbifx>
I need a recap flux, not easy to find enough justification on the web. Queue or Event for thread communication in a functional manner and why?
<orbifx>
Also I found an Oreilly book hosted by Inria which demonstrates Event.
pierpa has joined #ocaml
kakadu has joined #ocaml
toomuchtvrotsurb has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
tennix has quit [Quit: WeeChat 1.5]
toomuchtvrotsurb has quit [Ping timeout: 260 seconds]
ansiwen_ is now known as ansiwen
RTL8723XE has joined #ocaml
sz0 has quit [Quit: Connection closed for inactivity]
RTL8723XE has quit [Quit: RTL8723XE]
NingaLeaf has quit [Quit: Leaving]
tautologico has quit [Quit: Connection closed for inactivity]
unbalanced has joined #ocaml
jwatzman|work has joined #ocaml
unbalanced has quit [Ping timeout: 260 seconds]
mengu has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
dsheets has quit [Remote host closed the connection]
copy` has joined #ocaml
kushal has quit [Quit: Leaving]
rand__ has quit [Ping timeout: 250 seconds]
dexterph has joined #ocaml
ygrek has quit [Ping timeout: 260 seconds]
dexterph has quit [Remote host closed the connection]
dexterph has joined #ocaml
dsheets has joined #ocaml
rand__ has joined #ocaml
toboggan has quit [Read error: Connection reset by peer]
bba has joined #ocaml
dsheets has quit [Ping timeout: 276 seconds]
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bba has quit [Read error: Connection reset by peer]
bba has joined #ocaml
toboggan has joined #ocaml
sepp2k has joined #ocaml
dexterph has quit [Remote host closed the connection]
dexterph has joined #ocaml
Reshi has joined #ocaml
dexterph has quit [Remote host closed the connection]
dexterph has joined #ocaml
nopf has quit [Remote host closed the connection]
kushal has joined #ocaml
nopf has joined #ocaml
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
jeffmo has joined #ocaml
jeffmo has quit [Client Quit]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
dsheets has joined #ocaml
th5 has joined #ocaml
amnn has joined #ocaml
ggole has joined #ocaml
amnn has quit [Client Quit]
mengu has joined #ocaml
mengu has joined #ocaml
unbalancedparen has joined #ocaml
BitPuffin has joined #ocaml
ygrek has joined #ocaml
amnn has joined #ocaml
toomuchtvrotsurb has joined #ocaml
BitPuffin has quit [Ping timeout: 244 seconds]
bba has joined #ocaml
toomuchtvrotsurb has quit [Ping timeout: 260 seconds]
kushal has quit [Quit: Leaving]
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0_ has joined #ocaml
infinity0 has quit [Ping timeout: 260 seconds]
voglerr has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
voglerr has left #ocaml [#ocaml]
voglerr has joined #ocaml
kushal has joined #ocaml
infinity0_ has quit [Remote host closed the connection]
infinity0 has joined #ocaml
atbagautdinov has joined #ocaml
sh0t has joined #ocaml
infinity0_ has joined #ocaml
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0 has quit [Ping timeout: 260 seconds]
jwatzman|work has joined #ocaml
dsheets has quit [Remote host closed the connection]
<voglerr>
how do I make ocamlbuild use ocamlopt? it defaults to ocamlc.opt (even with `-ocamlopt ..`) which does not know how to deal with -O3.
<Drup>
what are you building ?
<Drup>
ocamlbuild will use the appropriate compiler for the target, if you are building a .byte, it uses ocamlc, if .native, then ocamlopt
Mercuria1Alchemi has quit [Ping timeout: 276 seconds]
troydm has quit [Ping timeout: 244 seconds]
troydm has joined #ocaml
<voglerr>
haha, I wasn't looking in _build :)
<voglerr>
thank you!
bjorkintosh has quit [Quit: Leaving]
<voglerr>
-tags works with and without commas btw
sh0t has joined #ocaml
dexterph has quit [Ping timeout: 276 seconds]
Reshi has quit [Ping timeout: 250 seconds]
ygrek has quit [Ping timeout: 260 seconds]
ygrek has joined #ocaml
yunxing has joined #ocaml
scarygelatin has joined #ocaml
darkf has quit [Quit: Leaving]
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
yunxing has quit [Ping timeout: 250 seconds]
kushal has quit [Ping timeout: 246 seconds]
rand__ has quit [Quit: leaving]
sz0 has joined #ocaml
mengu has quit [Remote host closed the connection]
A19774941 has joined #ocaml
toomuchtvrotsurb has joined #ocaml
A1977494 has quit [Ping timeout: 240 seconds]
bba has joined #ocaml
toomuchtvrotsurb has quit [Ping timeout: 244 seconds]
unbalancedparen has quit [Quit: WeeChat 1.5]
unbalancedparen has joined #ocaml
cojy has left #ocaml [#ocaml]
toomuchtvrotsurb has joined #ocaml
unbalancedparen has quit [Client Quit]
mengu has joined #ocaml
yomimono has joined #ocaml
unbalancedparen has joined #ocaml
yomimono has quit [Ping timeout: 244 seconds]
kolko has quit [Ping timeout: 260 seconds]
yomimono has joined #ocaml
yomimono has quit [Ping timeout: 250 seconds]
tmtwd has joined #ocaml
wiredsister has joined #ocaml
voglerr has quit [Remote host closed the connection]
voglerr has joined #ocaml
voglerr has quit [Remote host closed the connection]
voglerr_ has joined #ocaml
mistermetaphor has joined #ocaml
struk|work has quit [Quit: Page closed]
struk|work has joined #ocaml
amnn has joined #ocaml
tane has joined #ocaml
tmtwd has quit [Ping timeout: 246 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBird_ has joined #ocaml
amnn has quit [Read error: Connection reset by peer]
amnn has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 252 seconds]
FreeBird_ has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
slash^ has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
amnn has quit [Read error: Connection reset by peer]
amnn has joined #ocaml
infinity0_ is now known as infinity0
voglerr_ has quit [Remote host closed the connection]
voglerr has joined #ocaml
mengu has quit [Remote host closed the connection]
voglerr has quit [Remote host closed the connection]
voglerr has joined #ocaml
amnn has quit [Read error: Connection reset by peer]
ygrek has quit [Ping timeout: 246 seconds]
amnn has joined #ocaml
amnn has quit [Read error: Connection reset by peer]
amnn has joined #ocaml
aantron has left #ocaml ["Leaving..."]
aantron has joined #ocaml
yunxing has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
thomasga has joined #ocaml
sgnb has quit [Remote host closed the connection]
sgnb has joined #ocaml
voglerr has quit [Remote host closed the connection]
voglerr has joined #ocaml
voglerr_ has joined #ocaml
voglerr has quit [Read error: Connection reset by peer]
yunxing has quit [Remote host closed the connection]
yunxing has joined #ocaml
voglerr has joined #ocaml
voglerr_ has quit [Ping timeout: 244 seconds]
yunxing has quit [Remote host closed the connection]
voglerr has quit [Ping timeout: 260 seconds]
dsheets has quit [Remote host closed the connection]
wiredsister has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
larhat has quit [Quit: Leaving.]
ygrek has joined #ocaml
toomuchtvrotsurb has quit [Remote host closed the connection]
ygrek has quit [Ping timeout: 276 seconds]
ggole has quit []
dsheets has joined #ocaml
mengu has joined #ocaml
mengu has joined #ocaml
sepp2k has quit [Quit: Leaving.]
<j0sh>
is anyone able to install atdgen from opam on 4.03?
<j0sh>
i am getting "atdgen is not available because your system doesn't comply with ocaml-version < "4.03"." but don't see any such constraint in the opam file, nor in any of the dependencies
dsheets has quit [Ping timeout: 260 seconds]
<j0sh>
pinning master and installing from there works though. so i wonder whats up
mengu has quit [Remote host closed the connection]
<j0sh>
struk|work: ah. seems that github search gives an outdated tree, so i didn't spot those changes. that's... annoying
orbifx has quit [Ping timeout: 246 seconds]
ygrek has quit [Ping timeout: 246 seconds]
yunxing has joined #ocaml
ollehar has joined #ocaml
toomuchtvrotsurb has joined #ocaml
<struk|work>
j0sh: yeah I went write to the opam repo :)
<struk|work>
*right
shinnya has joined #ocaml
<ollehar>
I am very surprised with how calm people are about Reason.
<ollehar>
s/very/slightly
<companion_cube>
some of us were prepared psychologically in advance
<ollehar>
oh?
<ollehar>
merlin devs etc, I guess.
<ollehar>
you should've stopped them :(
<ollehar>
you = anyone
<companion_cube>
one doesn't simply stop FB developers :)
<ollehar>
sigh
mengu has joined #ocaml
mengu has joined #ocaml
<ollehar>
I made this thread one year ago on reddit: "If OCaml had been made with curly braces, it had been more popular than Java by now."
<ollehar>
careful what you wish for...
dsheets has joined #ocaml
<ollehar>
"ocaml looks good - but its syntax does not webscale"
<ollehar>
that's as close to rape you get in software engineering.
toomuchtvrotsurb has quit [Remote host closed the connection]
voglerr has joined #ocaml
<companion_cube>
sadly, not for women
<profan>
ah, webscale lol
<profan>
my favourite term to use ironically
dsheets has quit [Ping timeout: 250 seconds]
<ollehar>
companion_cube: yeah, I know, not respectful analogy. still.
<ollehar>
ugh
<bitbckt>
... wow.
scarygelatin has quit [Quit: Leaving]
mengu has quit []
voglerr has quit [Ping timeout: 244 seconds]
<Algebr>
uh, crappy analogy
<thomasga>
ollehar: what's the problem. More people are using the OCaml compiler and types.
<thomasga>
that's good
<ollehar>
yeah, but facebook is completely taking over the initiative. if people start to adopt their dialect.
<thomasga>
and they will deal with the firehose
<ollehar>
just imagine 50% ocaml devs use Reason, the other use traditional OCaml.
<thomasga>
and the OCaml community will benefit from better tooling
<ollehar>
tooling is awesome.
<thomasga>
I think you are very far off
<thomasga>
lots of people do not use OCaml (and even don't know about that language)
<ollehar>
sure.
<thomasga>
nothing bad if they come to approach the concepts through an other channel
<ollehar>
concepts like type-safety?
<thomasga>
yes
<thomasga>
and pattern matching and algebric datatypes
<ollehar>
yes, but how superficial is this change?
<thomasga>
same AST
<Algebr>
ollehar: look at the docs and you'll see
<ollehar>
no, I mean, culturally.
<Algebr>
New blood is always good
<ollehar>
hype ocaml in 5 min with a javascript-ish syntax.
<Algebr>
I don't understand what you think is lost
<mfp>
ollehar: the way things look now, it's more likely pre-existent OCaml users will keep the old syntax. As for those who start using Reason, a fraction could end up switching to the original syntax. But it wouldn't really matter as long as the conversion between both syntaxes is 100% reliable.
<thomasga>
yes, it just doesn't matter
<thomasga>
both languages are fully compatible
<Algebr>
I wish try Reason for new projects
<Algebr>
will try*
<thomasga>
you can even use the 2 languages in the same project
<ollehar>
that's so pointless I don't even...
<mfp>
if you think "newcomers" will write bad code and contaminate the ecosystem, just consider the new syntax a useful warning sign
<ollehar>
nope, I don't think that.
<thomasga>
so what's wrong?
<hcarty1>
I've already had a handful of people I work with read Reason and go "Oh, that's what this OCaml code means..." - so there are a lot of direct and indirect benefits to what Reason is doing
<mfp>
if on the other hand new ppl bring useful things along (more likely I'd say), profit from it :)
<Algebr>
everyone in OCaml land stands to benefit from Reason
hcarty1 is now known as hcarty
<thomasga>
personaly I don't care about the syntax, I just want to have good tooling
<thomasga>
and types
<mfp>
plus there's something you've been overlooking: the tooling (refmt etc) is designed to allow syntax changes (and it's been stated the syntax is going to evolve)
<companion_cube>
I'm a bit afraid by the power it gives FB, personally, like ollehar
<Algebr>
what power
<thomasga>
the power to deal with the open-source firehose? great :-)
<ollehar>
it gives fb power, and they might decide to scrap the project anytime.
<Algebr>
no wear near power of js
<Algebr>
so what
<mfp>
so all you'll have to do is convince this one guy working on the parser to make refmt change the syntax a bit at a time until it becomes identical to the classic one ;-)
<companion_cube>
well, if the community is half split between the syntax, they will have a strong influence on the part that uses reason
<companion_cube>
if only by the default choices they make
<thomasga>
it's not half split at all
<struk|work>
Algebr: what is your interest in early adoption?
<companion_cube>
look at RWO and the influence it had on people perceiving Core as "the standard library"
<mfp>
companion_cube: yes, that's the one thing that frightens me a bit
<Algebr>
struk|work: i think its a great way to introduce OCaml to many many more people
<Algebr>
and thus bringing more attention, $$$ to OCaml itself
<Algebr>
and improving the general state of OCaml adoption
<Algebr>
So that we all can get OCaml jobs
<ollehar>
Algebr: even if that's true, it should be a decision made by the ocaml community or the core maintainers.
<Algebr>
and write more OCaml
<pierpa>
algebr, you mean reason jobs :)
<mfp>
e.g. it's clear FB doesn't care about Windows (as Jane Street), so it's likely they'll pick Core
<Algebr>
and who is to say they aren't part of the OCaml community?
<Algebr>
Reason is OCaml
<Algebr>
Infer, Flow, all these awesome things fb has done that improve the name and recogition of OCaml
<mfp>
that'd mean I might not be able to reuse code from the Reason ecosystem if I want my code to run on windows
<companion_cube>
or on old versions of OCaml, they are considering > 4.03 only
<struk|work>
I am 100% ok with all of javascript becoming reason instead, but not sure how I feel about replacing ocaml w/reason
<mfp>
but on the whole the visibility and new blood it gives to OCaml probably makes it an overall win, still
<Algebr>
tomorrow 30 people are signed up to the OCaml meetup in SF, that's more than for any other OCaml meetup so far. That's already a win
<Algebr>
Many are new members to the group
<mfp>
the critical thing is compatibility being kept
<struk|work>
wait...when is that? i'll be in SF by 1:30ish
<companion_cube>
I'm still happy about reason for those reasons(!), indeed, if it makes OCaml more popular
<mfp>
I'm not sure whether the decision to release Reason at such an early stage was the right choice though. Since there's not much beyond the syntax (and some tooling), people are going to talk mainly about... the syntax (plus bikeshed etc.)
<companion_cube>
but it's supposed to be only syntax, isn't it?
<mfp>
no, also tooling, conventions, build system
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<ollehar>
are they using opam?
<Algebr>
thomasga: ahh, you're in town??
<mfp>
module vibility rules, stuff for sandboxing code, distributing, etc.
<ollehar>
so, another f#?
<ollehar>
*ml-dialect
<companion_cube>
mfp: really? I thought they were using OCaml tooling
<struk|work>
Algebr: signed up.
<mfp>
they're going to bless a build system + set of conventions as The way to build, I believe
<Algebr>
mfp: I like that it was released as it is now, gives everyone a chance to mold it
<companion_cube>
ah yes, blessing
<companion_cube>
that's what I meant by power, above
<Algebr>
a reference build system would be something very welcomed by me
<companion_cube>
we're probably going to see more and more JST libs
<companion_cube>
(although, well, if they target javascript it would be an odd choice)
<mfp>
oh indeed
<ollehar>
what's JST?
<Algebr>
compiled to JS probably
<ollehar>
or this: imagine if Microsoft had adopted Java instead of building C#.
<ollehar>
or OCaml instead of making F#.
<ollehar>
Algebr: ok
<mfp>
we don't know how they plan to use Reason internally though
<ollehar>
no, I guess.
<Algebr>
I would love ReactJS in Reason
bba has joined #ocaml
<thomasga>
mfp: they use it for their OCaml projects
<mfp>
any signs they could transition away from Hack for newer projects?
<thomasga>
e.g. Infer, Flow and Hack
<Algebr>
that alone would triple the OCaml community instantly
<companion_cube>
ollehar: janestreet
<mfp>
thomasga: right, I'm talking about the sort of things that'd benefit from the JS target
<companion_cube>
I use `JST` because `JS` is too confusing imho
<mfp>
thomasga: which are those that would ensure they don't go Unix-only / give a thought to portability
<ollehar>
ah ok ^^
<thomasga>
I don't see the point with Unix-only. OCaml is not Unix only.
<thomasga>
we use OCaml to ship Docker for Mac/Windows. Works perfectly fine :-)
<mfp>
thomasga: things like JST (Core) code not working on Windows because that's not their primary target
<thomasga>
well, Reason is not using Core as far as I know.
<Algebr>
that would be a huge dependency, I don't think they want that
<mfp>
thomasga: imagine if Reason blessed Core as THE standard library, and then you have a whole ecosystem built around it
<Algebr>
misplaced fear, and open an issue I guess to say I hope you don't use core
<thomasga>
well if they do that, they will make sure that it works everywhere for their use-case, so they will contribute and improve.
<mfp>
thomasga: right, but they might be in a position of power to take such decisions (which is what companion_cube alluded to)
<mfp>
exactly
<thomasga>
which will be good for the community
<mfp>
it'd be problematic if their use case didn't include Windows for instance
<thomasga>
which is my whole point :p
<mfp>
(as happened with Core)
<thomasga>
I'm not sure what I'm arguing about.
<thomasga>
:p
<mfp>
thomasga: the problem is not FB's work as such, it's e.g. FB picking Async and then locking all the Lwt users (currently more numerous in the wild) away from the new ecosystem, since Reason users will build atop whatever FB picks
<thomasga>
well if they've picked OCaml instead of Reason, the problem would still be the same, right?
<mfp>
right :-)
<thomasga>
so are you arguing that they should not use OCaml?
<thomasga>
but Javascript?
govg has quit [Ping timeout: 260 seconds]
copy` has quit [Quit: Connection closed for inactivity]
<mfp>
no, just saying that they're likely going to have a lot of power and that's a bit of a concern, but that overall it's a good thing they're building atop OCaml
dsheets has joined #ocaml
<companion_cube>
exactly
<Algebr>
nuanced.
<thomasga>
well anyone using OCaml has a lot of power
<ollehar>
if Reason overshadows OCaml, and then Reason develops to be incompatible with OCaml, isn't that a threat to OCaml?
toomuchtvrotsurb has joined #ocaml
<ollehar>
they could basically kill OCaml that way.
<Algebr>
that would mean needing to fork OCaml itself
<Algebr>
which even JS hasn't done
<thomasga>
if I had superpower I could make everyone use OCaml
<Algebr>
thomasga: EXACTLY
<mfp>
in the worst case, there's a closely related ecosystem you can tap into to some extent, in the best case they pour resources into OCaml and help things like multicore happen
<thomasga>
but basically anyone has the power to influence the language
<Algebr>
And isn't it nice to hear functional programming in the mainstream and its not Haskell =P
<companion_cube>
well OCaml would remain an obscure language, is all
<ollehar>
yes, but if that happened, they would steal a lot of energy that potentially could've gone into OCaml.
<thomasga>
also the "they will fork the compiler" is a bit silly argument
<thomasga>
jane-street is using OCaml and they never forked the compier
<ollehar>
so?
<ollehar>
fb made hack.
<thomasga>
well Julien don't want to maintain OCaml :p
<Algebr>
ollehar: this is energy that never would have reached OCaml on its own anyway
<mfp>
lexifi is forking (internally) the compiler all the time, and then bringing things back to trunk :)
toomuchtvrotsurb has quit [Ping timeout: 250 seconds]
<Algebr>
+1
<pierpa>
they could fund some development in ocaml. That would be good
<thomasga>
the Reason team have a lot of respect for the work of Inria's folks. They don't want to do that work.
<ollehar>
Algebr: sure, but it's a lot of lost potential.
<ollehar>
*would be
<ollehar>
thomasga: I don't know if that decision is up to Julien.
<ollehar>
maybe it is.
<thomasga>
sure
<profan>
ollehar: microsoft was actually trying to adopt java in the beginning
<profan>
yeaah, it got shot down partially because they were trying to bring in things that would only work under their platform
misterme_ has joined #ocaml
mistermetaphor has quit [Read error: Connection reset by peer]
sspi has quit [Ping timeout: 276 seconds]
chenglou has quit [Ping timeout: 276 seconds]
_habnabit has joined #ocaml
mankyKitty has quit [Ping timeout: 276 seconds]
emmanueloga has quit [Ping timeout: 276 seconds]
<ollehar>
well, that's good news. if fb starts to extend Reason in ways not compatible with ocaml, inria can just sue.
oldmanistan_ has quit [Ping timeout: 276 seconds]
bigs has quit [Ping timeout: 276 seconds]
seako has quit [Ping timeout: 276 seconds]
Algebr has quit [Ping timeout: 276 seconds]
bigs has joined #ocaml
sspi has joined #ocaml
mankyKitty has joined #ocaml
seako has joined #ocaml
chenglou has joined #ocaml
emmanueloga has joined #ocaml
oldmanistan_ has joined #ocaml
<Drup>
I agree with thomasga that the syntax itself is not important and that the improved tooling is good, as long as it's going to work with normal OCaml, I'm just a bit wary of the "walled garden" approached that jordan seems to like.
<Drup>
I don't see the point with bundling the syntax change and the blessed buildsystem, though *shrug*
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Drup>
(and I have this one big issue with the symbols transliteration)
<ollehar>
Drup: what's with the walled garden?
<Drup>
ollehar: we will see how it goes :)
<thomasga>
btw, exciting time for OCaml :p
unbalancedparen has quit [Ping timeout: 260 seconds]
toolslive has joined #ocaml
<ollehar>
another problem is that ocaml developers might have to choose between which syntax to use.
<ollehar>
be forced to choose, I mean.
unbalancedparen has joined #ocaml
<ollehar>
so, there's a lot of uncertainty.
<theblatt1>
you can automatically convert between syntaxes, so you can write ocaml and send reason diffs
theblatt1 is now known as theblatte
<ollehar>
theblatt1: yes, but you still have to choose.
<flux>
just because facebook has Reason doesn't mean it will automatically gain following. or does someone use hack :)
<theblatte>
choosing is good, or did I miss something?
<flux>
but I doubt interest in it will be a bad thing for OCaml.
<theblatte>
flux: shots fired ^^
ril has joined #ocaml
<ollehar>
hack competes with PHP, which is massively more used than ocaml.
<ollehar>
it also requires hhvm.
<ollehar>
so it's a big commitement.
<ollehar>
commitment*
<pecan>
also Hack was mostly made since PHP doesn't scale to large projects at all
<ollehar>
and how much would it take? say parallelism gets delayed for whatever reason, Reason develops their own lib for it, and there you go.
<ollehar>
completely speculative, of course.
<pecan>
OCaml does scale, so they probably needn't fork ocaml as drastically
<Drup>
ollehar: please stop speculating then
<theblatte>
a reason lib is an ocaml lib...
<pecan>
if they wanted to add threads they'd have to modify more than the frontend anyway
<Drup>
reason is a parser that produces the ocaml parsetree ..
<pecan>
which they'd presumably contribute
<ollehar>
Drup: ok
<flux>
I think parallellism isn't that much of a priority for Facebook..
<flux>
or maybe they would use Reason for things other than they use Hack for
<theblatte>
"say parallelism gets delayed for whatever reason" << surely that won't happen, it's not like we've been waiting a long time already ;)
<flux>
even if they did do some parallellism changes, I quite doubt the meat would be in the language, but in the compiler side
<struk|work>
flux: well hack is really for php replacement, while reason is for javascript replacement..right?
<flux>
hmm, I wonder if this means Facebook will do ReactNativeReason
<Drup>
flux: it's the same author =)
<Drup>
(react and reason)
<Drup>
(react.js*)
manud has joined #ocaml
darkf has joined #ocaml
manud has quit [Client Quit]
thomasga has quit [Quit: Leaving.]
kakadu has quit [Quit: Page closed]
yomimono has joined #ocaml
ril is now known as ril[away]
<struk|work>
flux: honestly I was a little confused as I met the hack developer and it sounded like he's working on his own thing (w/react + ocaml concepts incorporated).
kushal has joined #ocaml
copy` has joined #ocaml
ril[away] is now known as ril
ril is now known as ril[away]
ril[away] is now known as ril
ril is now known as ril[away]
toomuchtvrotsurb has joined #ocaml
toomuchtvrotsurb has quit [Ping timeout: 240 seconds]
<reynir>
Is react (js) inspired by react (ocaml)?
amnn has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
<toolslive>
what about checked exceptions or a noexcept that unlike C++'s actually works ?
ril is now known as ril[away]
ril[away] is now known as ril
ril is now known as ril[away]
ril[away] is now known as ril
<bitbckt>
j
<bitbckt>
heh
Sorella has joined #ocaml
ollehar has quit [Quit: ollehar]
thomasga has joined #ocaml
ril is now known as ril[away]
ril[away] is now known as ril
ril is now known as ril[away]
ril[away] is now known as ril
ril is now known as ril[away]
MercurialAlchemi has quit [Ping timeout: 244 seconds]
sh0t has quit [Ping timeout: 250 seconds]
atbagautdinov has quit [Quit: atbagautdinov]
misterme_ has quit [Read error: Connection reset by peer]
ril[away] is now known as ril
MercurialAlchemi has joined #ocaml
mistermetaphor has joined #ocaml
kushal has quit [Ping timeout: 276 seconds]
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
shinnya has quit [Ping timeout: 250 seconds]
freehck has quit [Ping timeout: 260 seconds]
<mfp>
this settles it facebook/react 986 stars ocaml/ocaml 775 stars hah
ril is now known as ril[away]
voglerr has joined #ocaml
th5 has quit [Remote host closed the connection]
amnn has joined #ocaml
<hcarty>
mfp: s/react/reason/
<mfp>
oops indeed
<hcarty>
mfp: react has > 42k :-)
ril[away] is now known as ril
<mfp>
"hands slipped" :)
MercurialAlchemi has quit [Ping timeout: 276 seconds]
amnn has quit [Client Quit]
xenthree3 has joined #ocaml
xenthree3 has left #ocaml [#ocaml]
voglerr has quit [Ping timeout: 244 seconds]
<Drup>
mfp: :D
kushal has joined #ocaml
ril is now known as ril[away]
ril[away] is now known as ril
ollehar has joined #ocaml
toomuchtvrotsurb has joined #ocaml
dsheets has quit [Remote host closed the connection]
ollehar has quit [Client Quit]
osa1 has joined #ocaml
<osa1>
I'm trying to try Reason, I'm following the instructions in the readme but switch command is failing with `[ERROR] available is not a valid variable.` any ideas?
dsheets has joined #ocaml
<osa1>
actually, after that line it's printing `[WARNING] Invalid variable available in filter` and I guess technically it's not really failing as it's returning 0
<osa1>
sorry if opam questions are not welcome here
dsheets has quit [Remote host closed the connection]
thomasga has quit [Quit: Leaving.]
<mfp>
osa1: it's failing on step #2? (opam switch 4.02.3, after opam init)
<osa1>
mfp: I realized that it's failing on pretty much every command with the same message. seems like it's harmless though
<mfp>
something strange in your bashrc or something?
<smondet>
osa1: what's your opam version? (`available` was not available in very old opams)
<osa1>
smondet: 1.2.0
octachron has joined #ocaml
kushal has quit [Quit: Leaving]
thomasga has joined #ocaml
manud has joined #ocaml
osa1 has left #ocaml ["Konversation terminated!"]
kayceesrk has joined #ocaml
kayceesrk has quit [Quit: kayceesrk]
kayceesrk has joined #ocaml
andreypopp___ is now known as andreypopp
kayceesrk has quit [Client Quit]
ewanas has joined #ocaml
monod has joined #ocaml
toomuchtvrotsurb has quit [Remote host closed the connection]
<chenglou>
hey folks! We're made a dedicated #reasonml channel so that we don't have to disturb this one
<pierpa>
I don't consider talk about Reason here a disturb, FWIW
thomasga has joined #ocaml
unbalancedparen has quit [Ping timeout: 252 seconds]
<chenglou>
pierpa: cool. I myself will keep sitting here too then
thomasga has quit [Client Quit]
toomuchtvrotsurb has joined #ocaml
thomasga has joined #ocaml
<mfp>
chenglou: was going through the syntax description... Are there any plans to incorporate other OCaml features like labels, polymorphic variants, first-class modules or objects, or is the feature set cast in stone?
<chenglou>
mfp: they're already in there, just not documented because we're still debating about it actually
<chenglou>
I have this extremely handy script: alias mlre="pbpaste | refmt -use-stdin true -parse ml -print re -is-interface-pp false | pbcopy"
ewanas has quit [Ping timeout: 260 seconds]
<chenglou>
(^ pbpaste/copy mac-only I think)
<chenglou>
turns an ocaml snippet into a reason one
<chenglou>
literally my way of converting ocaml code for now
<mfp>
so all OCaml code can be expressed in Reason, but some features are hidden :)
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
amnn has joined #ocaml
hcarty has quit [Ping timeout: 260 seconds]
<chenglou>
yes, until we're more satisfied with the syntax of these particular features
NingaLeaf has joined #ocaml
<mfp>
chenglou: the goal is 100% coverage and documentation then?
<mfp>
or will you leave e.g. (wild guess :-) objects out?
<chenglou>
leaving out is a bit un-pragmatic. If people want to convert their syntax over, having objects being a show-stopper kinda sucks
<chenglou>
but we do have lots of thoughts on what the objects' syntax will be. That part's undecided
<chenglou>
something something record syntax =]
iosys has left #ocaml ["Leaving"]
<mfp>
I meant leaving them undocumented so as to discourage their use
<octachron>
speaking of documentation, if reason ever gain any traction, having to make documentation available in both dialect will be ugly
<mfp>
(don't know if you're using objects, first-class modules or such in infer, etc)
unbalancedparen has joined #ocaml
<mfp>
JST for instance has got a stance against objects
leyyin has quit [Quit: So Long, and Thanks for All the Fish]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
A19774941 has quit [Quit: Leaving.]
<chenglou>
mfp: yeah I don't use objects either. But I don't wanna take a stance on dictating an opinionated conversion. Jordan has more to say on this when he gets on
<chenglou>
@octachron yes. But we've thought about a few solutions. Will tell more about this later
<pierpa>
do Reason have any opinion about the standard library?
<companion_cube>
objects are a really advanced feature, but are nice from time to time
<chenglou>
pierpa: discussing about stdlib is a huge rabbit hole that we've mostly avoided until now. But we're thinking about it
<pierpa>
k
<companion_cube>
this is going to lead to so much troll
sh0t has joined #ocaml
<chenglou>
¯\_(ツ)_/¯
mistermetaphor has quit [Read error: Connection reset by peer]
NingaLeaf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mistermetaphor has joined #ocaml
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<mfp>
Leonidas: looks like the OCaml code was copy-pasted + modified from the original Reason, there are typos here and there (Reason syntax used in "Comment escaping", extra ; in prefix operators, and the one you found
hcarty has joined #ocaml
<chenglou>
Leonidas: thanks, fixed
hcarty has quit [Ping timeout: 260 seconds]
<mfp>
chenglou: the "as precedence" section is also typoed (Reason snippet uses "match", OCaml uses => )
<pecan>
chenglou: Incidentally, thanks for being so responsive to comments. I'll probably not use Reason (I *like* OCaml syntax) but it's pretty neat.
<mfp>
I don't get the point about as' precedence, the OCaml could be written as let ppp = match MyThing 20 with MyThing _ | YourThing _ as ppp -> ppp fwiw
amnn has quit [Read error: Connection reset by peer]
amnn has joined #ocaml
<mfp>
(no parentheses needed)
mistermetaphor has quit [Remote host closed the connection]
octachron has quit [Quit: Leaving]
<chenglou>
pecan: you're welcome! And most of the progress toward reason's ecosystem is really progress toward the ocaml ecosystem too
<companion_cube>
I'll wait until I see the boatloads of new developers bringing us shiny libraries