
Native CLient (NaCl) [1] is a technology very cool which lets to run native code in web applications, and it's being integrated in some languages as Python [2]. Go [3] already has rudimentary support for Native Client (and it's logical since that both technologies are from Google) I hope that Haskell also gets support for NaCl and doesn't loose this train else a language as Go could get every time more users that until now they had gone to Haskell or Erlang mainly for its concurrency. [1] http://code.google.com/p/nativeclient/ [2] http://lackingrhoticity.blogspot.com/2009/06/python-standard-library-in-nati... [3] http://golang.org/pkg/exp/nacl/

I guess I'm confused by what it means to "support" this in a language.
My understanding is this is using lightweight virtualization technology
(perhaps via segment register hacks on x86, and something else on ARM) to
provide a safe sandbox to run native code in a browser. If I had to guess,
I'd say you could run an entire virtualized OS in there, similar to the way
it was done for vx32 with the Plan 9 port to it. (9vx is a port of the plan
9 operating system to vx32, allowing it to run as a user process on linux,
freebsd, and Mac OS X)
Are you talking about porting the GHC Haskell runtime to NaCL? If so, then
I think I understand, but the language itself doesn't really need to do
anything special to support this as far as I can tell.
Dave
On Tue, Dec 29, 2009 at 5:26 AM, Joan Miller
Native CLient (NaCl) [1] is a technology very cool which lets to run native code in web applications, and it's being integrated in some languages as Python [2]. Go [3] already has rudimentary support for Native Client (and it's logical since that both technologies are from Google)
I hope that Haskell also gets support for NaCl and doesn't loose this train else a language as Go could get every time more users that until now they had gone to Haskell or Erlang mainly for its concurrency.
[1] http://code.google.com/p/nativeclient/ [2] http://lackingrhoticity.blogspot.com/2009/06/python-standard-library-in-nati... [3] http://golang.org/pkg/exp/nacl/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

"Each component runs in its own private address space. Inter-component
communication is based on Native Client’s reliable datagram service,
the IMC (Inter-Module Communications). For communications between the
browser and a NaCl module, Native Client provides two options: a
Simple RPC facility (SRPC), and the Netscape Plugin Application
Programming Interface (NPAPI), both implemented on top of the IMC. The
IMC also provides shared memory segments and shared synchronization
objects, intended to avoid messaging overhead for high-volume or
high-frequency communications." [1]
The Native Client modules can communicate with the browser using
either NPAPI or simple RPC (SRPC) [2] so there would be that implement
that in Haskell.
[1] http://nativeclient.googlecode.com/svn/data/docs_tarball/nacl/googleclient/n...
[2] http://nativeclient.googlecode.com/svn/trunk/src/native_client/documentation...
2009/12/29 David Leimbach
I guess I'm confused by what it means to "support" this in a language. My understanding is this is using lightweight virtualization technology (perhaps via segment register hacks on x86, and something else on ARM) to provide a safe sandbox to run native code in a browser. If I had to guess, I'd say you could run an entire virtualized OS in there, similar to the way it was done for vx32 with the Plan 9 port to it. (9vx is a port of the plan 9 operating system to vx32, allowing it to run as a user process on linux, freebsd, and Mac OS X) Are you talking about porting the GHC Haskell runtime to NaCL? If so, then I think I understand, but the language itself doesn't really need to do anything special to support this as far as I can tell. Dave On Tue, Dec 29, 2009 at 5:26 AM, Joan Miller
wrote: Native CLient (NaCl) [1] is a technology very cool which lets to run native code in web applications, and it's being integrated in some languages as Python [2]. Go [3] already has rudimentary support for Native Client (and it's logical since that both technologies are from Google)
I hope that Haskell also gets support for NaCl and doesn't loose this train else a language as Go could get every time more users that until now they had gone to Haskell or Erlang mainly for its concurrency.
[1] http://code.google.com/p/nativeclient/ [2] http://lackingrhoticity.blogspot.com/2009/06/python-standard-library-in-nati... [3] http://golang.org/pkg/exp/nacl/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Ah, I see now. Thanks for going deeper on that.
I did eventually find the RPC stuff for Go, and thought that that might be
interesting to implement.
On Tue, Dec 29, 2009 at 8:31 AM, Joan Miller
"Each component runs in its own private address space. Inter-component communication is based on Native Client’s reliable datagram service, the IMC (Inter-Module Communications). For communications between the browser and a NaCl module, Native Client provides two options: a Simple RPC facility (SRPC), and the Netscape Plugin Application Programming Interface (NPAPI), both implemented on top of the IMC. The IMC also provides shared memory segments and shared synchronization objects, intended to avoid messaging overhead for high-volume or high-frequency communications." [1]
The Native Client modules can communicate with the browser using either NPAPI or simple RPC (SRPC) [2] so there would be that implement that in Haskell.
[1] http://nativeclient.googlecode.com/svn/data/docs_tarball/nacl/googleclient/n... [2] http://nativeclient.googlecode.com/svn/trunk/src/native_client/documentation...
I guess I'm confused by what it means to "support" this in a language. My understanding is this is using lightweight virtualization technology (perhaps via segment register hacks on x86, and something else on ARM) to provide a safe sandbox to run native code in a browser. If I had to guess, I'd say you could run an entire virtualized OS in there, similar to the way it was done for vx32 with the Plan 9 port to it. (9vx is a port of the
9 operating system to vx32, allowing it to run as a user process on
freebsd, and Mac OS X) Are you talking about porting the GHC Haskell runtime to NaCL? If so,
2009/12/29 David Leimbach
: plan linux, then I think I understand, but the language itself doesn't really need to do anything special to support this as far as I can tell. Dave On Tue, Dec 29, 2009 at 5:26 AM, Joan Miller
wrote: Native CLient (NaCl) [1] is a technology very cool which lets to run native code in web applications, and it's being integrated in some languages as Python [2]. Go [3] already has rudimentary support for Native Client (and it's logical since that both technologies are from Google)
I hope that Haskell also gets support for NaCl and doesn't loose this train else a language as Go could get every time more users that until now they had gone to Haskell or Erlang mainly for its concurrency.
http://lackingrhoticity.blogspot.com/2009/06/python-standard-library-in-nati...
[3] http://golang.org/pkg/exp/nacl/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (2)
-
David Leimbach
-
Joan Miller