Запуск V8 Javascript Engine Автономний


Відповіді:


115

V8 простий у створенні і не постачається з накладними витратами Java VM від автономного інтерпретатора Javascript від Mozilla. На щастя, V8 поставляється з кодом для побудови консолі. Ось як це зробити:

$> svn co http://v8.googlecode.com/svn/trunk v8-trunk
...
$> cd v8-магістраль
$> scons
$> g ++ ./samples/shell.cc -o v8-shell - я включаю libv8.a 

Тепер у нас є окремий двійковий код, який називається v8-shell.

Запуск консолі:

$> ./v8-shell 
V8 версія 2.0.2
> var x = 10;
> х
10
> функція foo (x) {return x * x; }
> foo
функція foo (x) {повернення x * x; }
> вийти ()

Виконання Javascript з командного рядка:

$> ./v8-shell -e 'print ("10 * 10 =" + 10 * 10) "
10 * 10 = 100

У довідці задокументовано багато інших функцій:

$> ./v8-shell - допомогти
Використання:
...

9
Дякуємо за пораду та чіткі вказівки. Мені довелося додати параметр -lpthreadдо g++команди під ubuntu 10.04.
інтуїтивно,

1
на Ubuntu мені не вдалось отримати, але це вирішило запуск sudo apt-get install libc6-dev-i386.
Торстен Лоренц

2
і якщо ваш на x86_64 зробити: «SCons НЕ вигнути = 64» до його фіксованої в багажник code.google.com/p/v8/issues/detail?id=429#c1
ед

4
Зверніть увагу, що ця v8-оболонка призначена для прикладу іграшки. Викликається "справжня" оболонка v8 d8. Дивіться мою відповідь для отримання додаткової інформації.
bukzor

2
Спосіб отримання вихідного коду, здається, змінився. Дивіться тут .
Colliot

59

Щоб створити консоль розробника, а не приклад прикладної програми для іграшок «оболонка», скопіюйте наступні команди у свій термінал.

sudo apt-get install subversion scons libreadline-dev
svn co http://v8.googlecode.com/svn/trunk v8
cd v8/
scons console=readline d8

Ці інструкції будуть працювати для Ubuntu / Debian з "загальним" ядром. Для інших дистрибутивів вам потрібно буде замінити команду apt-get будь-яким пакетом інструменту, який у вас є. У 64-бітних системах вам може знадобитися додати arch=x64. Ця console=readlineопція дозволяє системі читання ліній , щоб вона відчувала себе трохи більше як стандартна оболонка.

Більш повна документація тут: http://code.google.com/apis/v8/build.html


Примітка:

введіть тут опис зображення

Дивіться також: Побудова v8 з GYP


9
Мені довелося додати, arch=x64щоб створити 64-бітний ubuntu.
Проекти мають

@Hugh: це дозволяє система читання ліній; саме це дозволяє використовувати стрілку вгору, щоб отримати попередню команду, серед інших вигод.
bukzor

Після завершення будівництва запустіть оболонку, ввівши ./d8.
Mathias Bynens

в ubunt 12.04: фатальна помилка: readline / readline.h: Немає такого файлу чи каталогу - жодних ідей?
pguardiario

44

Як щодо запуску V8 Javascript через командний рядок за допомогою node.js ?

node.js використовує v8 в якості свого двигуна і додає багато функціональних можливостей.


Наприклад, на Mac OSX, якщо у вас встановлений Homebrew , просто видайте:

    $ brew install node
    $ node
    > 

1
IMHO node.js - це новий стандарт дефакто, що стосується консолей JavaScript. Він використовує v8, і, мабуть, найкращий варіант для цього.
Tracker1

23

На Mac OS X обов'язково brewвстановлено. Потім просто запустіть команду (sudo) brew install v8, залежно від вашої машини це може зайняти деякий час. Для запуску консолі V8 просто запустіть v8- Voilà!

Порада: Щоб вийти з консолі, просто запустіть quit()і не забудьте дужки!


1
Або просто натисніть, Ctrl-Dщоб вийти :)
Догберт

Або Ctrl-Cвбити його
Braden Best

Ви можете створити v8 самостійно, і це досить просто, використання варіння є занадто громіздким.
b01

4
Яким чином громіздкий "встановити заварку v8"?
Devan Buggay

5

Я думаю, це могло змінитися. Я читав посібник і будую v8 так:

moose@pc08$ svn co http://v8.googlecode.com/svn/trunk v8-trunk
moose@pc08$ cd v8-trunk
moose@pc08$ make dependencies
moose@pc08$ make ia32.release

додано export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.releaseдо мого .bashrc

moose@pc08 ~ $ source ~/.bashrc
moose@pc08 ~ $ d8 A_tic_tac_toe_Tomek.js < A-small-practice.in

(З JavaScript від aditsu та A-small-practice.in від Google Code Jam)


2
Сторінка, наповнена відповідями, і Ваша, найменш розглянута, містить останню необхідну пораду.
Сет Діфлі

4

Дотримуючись інструкцій по збірці ( Google V8 Build Docs ) Google для вашої системи;

[v8 directory]$ cd out/native
[v8 directory]$ ./shell (sample shell)
[v8 directory]$ ./d8 (console: dumb)

Я створив псевдонім у своєму .bash_profile, щоб полегшити виклик оболонки.

alias v8='/Volumes/Dev/GitHub/v8/out/native/shell'

Введення v8 в CLI (у новому терміналі або оболонці - для перезавантаження вашого bash профілю) дає оболонку v8. JavaScript в командному рядку! :)


3

Якщо ви використовуєте ArchLinux, ви можете використовувати його pacman -S v8для встановлення. Потім використовуйте d8для запуску в оболонці. Насолоджуйся цим.


1
Це, мабуть, є на AUR, тому його не можна встановити разом з Pacman.
Colliot

3

Якщо ви хочете запустити свій вихідний код JavaScript за допомогою двигуна v8 або будь-якої його версії, ви можете скористатися інструментом командного рядка jsvu . Він розроблений та підтримується інженерами Google, і, крім того, він пропонує функцію встановлення інших двигунів javascript крім v8 , таких як spidermonkey , chakracore , javascriptcore та xs .


2

Якщо ви плануєте вставляти V8, то будь-яким чином будуйте його та грайте з "d8".

Якщо, з іншого боку, ви не плануєте поширювати V8 або вважати його необов'язковим, тоді просто використовуйте Node.JS. Не турбуйтеся з чистим V8.

Node.js має справді багатий введення-виведення, розширення, бібліотеки (наприклад, Perl CPAN, Python Eggs, Ruby Gems) та спільноту.


Вам не потрібно використовувати node.js, це лише обгортка та додаткова залежність.
b01
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.