Подтвердить что ты не робот

Может ли программа Native Client (NaCl) записываться на языках, отличных от C или С++?

Можно ли написать собственное клиентское приложение в Python или Go, которое затем может быть запущено в браузере?

4b9b3361

Ответ 1

Go используется для компиляции NaCl, но NaCl была такой движущейся мишенью, что поддержка была удалена из Go. Вероятно, он будет воскрешен в какой-то момент, если/когда NaCl опустится.

Ответ 2

Это архитектурно возможно, но в текущем SDK есть только C/С++ toolchains, насколько я могу судить. У них Python REPL работает как клиент на основе браузера (в комплекте со стандартной библиотекой и sqlite http://lackingrhoticity.blogspot.com/2009/06/python-standard-library-in-native.html).

Ответ 3

NaCL (снова) поддерживается с Go 1.3.

Смотрите заметки о выпуске Golang 1.3.


Устаревший ответ по адресу Go 1.2:

NaCl будет поддерживаться в Go 1.3, как сообщается:

Цитата из Перейти 1.3 Поддержка собственного клиента:

Go 1.3 будет включать поддержку для запуска программ командной строки в   Собственный клиент, песочница для исполняемого файла на основе SIP на основе Google.

Цитата из Внутри игровой площадки Go Go Go Go:

Собственный клиент (или "NaCl" ) - технология, разработанная Google для обеспечения безопасного выполнения программ x86 внутри веб-браузеров.

     

(Эта специальная цепочка инструментов будет объединена с базой для Go 1.3. Чтобы узнать больше, прочитайте проектный документ. Если вы хотите играть с NaCl до этого момента, вы можете проверить вилку, которая имеет все изменения.)

См. Перейти 1.3 NACL fork.

Ответ 4

если вы загрузите инструментальную цепочку NaCl, вы увидите:

$ ls toolchain/linux_x86/bin
i686-nacl-addr2line  i686-nacl-objcopy      x86_64-nacl-gcc-4.4.3
i686-nacl-ar         i686-nacl-objdump      x86_64-nacl-gccbug
i686-nacl-as         i686-nacl-ranlib       x86_64-nacl-gcov
i686-nacl-c++        i686-nacl-readelf      x86_64-nacl-gfortran
i686-nacl-c++filt    i686-nacl-size     x86_64-nacl-gprof
i686-nacl-cpp        i686-nacl-strings      x86_64-nacl-ld
i686-nacl-g++        i686-nacl-strip        x86_64-nacl-nm
i686-nacl-gcc        x86_64-nacl-addr2line  x86_64-nacl-objcopy
i686-nacl-gcc-4.4.3  x86_64-nacl-ar     x86_64-nacl-objdump
i686-nacl-gccbug     x86_64-nacl-as     x86_64-nacl-ranlib
i686-nacl-gcov       x86_64-nacl-c++        x86_64-nacl-readelf
i686-nacl-gfortran   x86_64-nacl-c++filt    x86_64-nacl-size
i686-nacl-gprof      x86_64-nacl-cpp        x86_64-nacl-strings
i686-nacl-ld         x86_64-nacl-g++        x86_64-nacl-strip
i686-nacl-nm         x86_64-nacl-gcc

Примечание. gfortran уже присутствует. Аналогично, доступна моно поддержка (см. https://github.com/elijahtaylor/mono), и поэтому любой язык .net также в принципе возможен. Рамка движка Unity3d использует С# и моно и экспортирует в NativeClient.