<flux>
the page has some pretty convincing examples of how seemingly complicated operations boil down into one round-trip
<flux>
..but one always wonders how it would work in 'real life'
<kaustuv>
I think the only difference between futures-as-chr and futures-as-aliceml-futures is that the 'app' constructor is implicit in the latter. In other words, futures are silently coerced in Alice when there is a data dependency.
<kaustuv>
Otherwise, I think you can definitely weave the equivalent of a chr using client code and then execute it in a single swoop.
<kaustuv>
(note, I don't know AliceML that well and have only briefly scanned Oleg's page, so I might be talking nonsense as usual.)
hyperboreean has quit [Quit: leaving]
hyperboreean has joined #ocaml
<flux>
kaustuv, I got the idea that the differences are:
<kaustuv>
Futures are actually pretty neat devices. One can write a perfectly type-safe tail recursive List.map because futures let you implement the one-shot setcdr needed for it. I don't know why no "serious" ML dialect uses them (I'm guessing because of performance reasons)
<flux>
1) one .force forces all pending evaluations (maybe..?)
<flux>
2) one cahn bind the result of a remote opertation into the argument of a following remote op
<flux>
3) there is operation "guard"
<flux>
and these together enable batching a greater number of even dependant ops into one round-trip
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
<Axioplase_>
maybe because the user base itself is not comfortable with futures…
<kaustuv>
flux: Well, strictly speaking you can just ship arbitrary code to the server using Remote.proxy in AliceML, so I think you should be able to do at least the limited computations supported by the CHR DSL.
<kaustuv>
flux: But having the DSL explicitly might make the programmer more aware of what's going on, so it might be a better approach overall.
<flux>
k, this approach is interesting in that it could work even in c++ ,)
<kaustuv>
except for the type-safe bit, presumably
<flux>
i think templates could help with that
caligula has quit [Ping timeout: 276 seconds]
caligula has joined #ocaml
caligula has quit [Remote host closed the connection]
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
<avsm>
it's not that easy it seems
<avsm>
If I compile a/b/c with -for-pack A.B.C
<avsm>
you can't -pack A
<avsm>
so hierarchies dont work
ftrvxmtrx has joined #ocaml
<avsm>
hah, so ocamlopt -pack -for-pack works
<avsm>
so if you go up the tree packing and repacking, it all seems to hold. now to get ocamlbuild to do that :)
lloydmoore has joined #ocaml
lloydmoore has left #ocaml []
lloydmoore has joined #ocaml
<gildor>
avsm: humm, hierarchy don't work even wo ocamlbuild ?
lloydmoore has left #ocaml []
_andre has joined #ocaml
rgrig has joined #ocaml
th5 has quit [Ping timeout: 272 seconds]
th5 has joined #ocaml
mfp has quit [Quit: Leaving]
mfp has joined #ocaml
ttamttam has quit [Remote host closed the connection]
mnabil has joined #ocaml
seafood has joined #ocaml
th5 has quit [Quit: th5]
seafood has quit [Quit: seafood]
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
ttamttam has joined #ocaml
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
rgrig has left #ocaml []
ttamttam has quit [Remote host closed the connection]
ttamttam has joined #ocaml
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
mnabil has quit [Ping timeout: 245 seconds]
thelema has quit [Remote host closed the connection]
Yoric has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
thelema has joined #ocaml
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
avsm has quit [Quit: Leaving.]
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
thelema has quit [Remote host closed the connection]
zzz_ has quit [Quit: Ctrl-C at console.]
thelema has joined #ocaml
zzz_ has joined #ocaml
zzz_ has quit [Client Quit]
zzz_ has joined #ocaml
zzz_ has quit [Client Quit]
zzz_ has joined #ocaml
oriba has joined #ocaml
joewilliams_away is now known as joewilliams
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
drunK has joined #ocaml
oriba has quit [Quit: Verlassend]
clog has joined #ocaml
<adrien>
is js_of_ocaml (or any other) able to interact with the system? like run a program or anything like that? (yeah, I *really* don't know js :-) )
joewilliams_away is now known as joewilliams
init1 has quit [Remote host closed the connection]
init1 has joined #ocaml
<hcarty>
adrien: My understanding is that most browsers have security layers which prevent that from happening.
<adrien>
but does the language allow it?
<hcarty>
That's a good question :-)
<adrien>
bah, I'll google :P
<adrien>
I need a graphical interface for a program and I don't want deps but it has to be portable too =/
<adrien>
bah, I'll just use sdl or Graphics =P
<mfp>
adrien: you could distribute the app as a web server
<adrien>
mfp: yes, that was the initial plan but it doesn't look like a lot of fun and I was wondering if the various javascript "interfaces" could be good for making interfaces
<mfp>
adrien: well, you'd use the JS "interfaces" you refer to, with the server providing the interaction with the system you needed
<mfp>
ocsigen's dev branch has got some funky Eliom client integration to run code on the client but it's not really documented yet
<mfp>
"...use Eliom for mixing client side and server side programming. Eliom allows to write the client and server parts of a Web application fully in Objectice Caml..."
<adrien>
right, that'd probably be better than only doing it from the webserver (I haven't tried it but doing it all in the webserver doesn't sound like something very nice)
<adrien>
hmmm, that sounds interesting, will probably try during the holidays :P
<adrien>
the biggest problem will probably to get it running on windows :-)
<adrien>
as for the javascript part, I could also use the standalone interpreters/whatever from the various engines
<adrien>
well, still not sure what I'll use in the end but it sounds like it should be possible to get something nice =)
rixed_ has joined #ocaml
Yoric has joined #ocaml
ulfdoz has joined #ocaml
ulfdoz_ has joined #ocaml
thelema has quit [Remote host closed the connection]
thelema has joined #ocaml
ulfdoz has quit [Ping timeout: 240 seconds]
ulfdoz_ is now known as ulfdoz
<flux>
kaustuv, something said by dmarbour @ ltu about the meta-future vs code sending: Sending code to the server is more general and powerful, but introduces concerns about security (sending malicious or buggy code), resource management (divergent code), and complexity (embedding an interpreter in the server app). By comparison, the promise pipelining style is a lot easier to reason about for security, has a resource cost no different from processing the ...
<flux>
... remote calls individually, and has a simpler implementation that can be quite small and easily embedded in an RPC element without any significant interpretation.
<hcarty>
flux: Is the meta-future option the Oleg link you posted?
<hcarty>
flux: Nevermind - from the ltu comments it looks like it is
<flux>
yes :)
_andre has quit [Quit: leaving]
Yoric has quit [Quit: Yoric]
eldragon has joined #ocaml
Submarine has joined #ocaml
Yoric has joined #ocaml
Snark has quit [Quit: Ex-Chat]
init1 has quit [Quit: Quitte]
ulfdoz has quit [Ping timeout: 260 seconds]
rixed_ has quit [Ping timeout: 260 seconds]
seafood has joined #ocaml
Yoric has quit [Quit: Yoric]
mfp has quit [Ping timeout: 245 seconds]
seafood has quit [Quit: seafood]
ikaros has quit [Quit: Leave the magic to Houdini]