[Haskell-cafe] Native CLient

Joan Miller peloko45 at gmail.com
Tue Dec 29 11:31:39 EST 2009

"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/native_client/documentation/nacl_paper.pdf
[2] http://nativeclient.googlecode.com/svn/trunk/src/native_client/documentation/npapi.html

2009/12/29 David Leimbach <leimy2k at gmail.com>:
> 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 <peloko45 at gmail.com> 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-native.html
>> [3] http://golang.org/pkg/exp/nacl/
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list