Uruchamianie samodzielnego silnika Javascript V8

128

Chcę uruchomić konsolę Javascript na V8. Jak mam to zrobic?

Manuel
źródło

Odpowiedzi:

116

V8 jest łatwy do zbudowania i nie zawiera narzutu Java VM z samodzielnego interpretera JavaScript Mozilli. Na szczęście V8 jest dostarczany z kodem do zbudowania konsoli. Oto jak to zbudować:

$> svn co http://v8.googlecode.com/svn/trunk v8-trunk
...
$> cd v8-trunk
$> scons
$> g ++ ./samples/shell.cc -o v8-shell-Dołączam libv8.a 

Teraz mamy samodzielny plik binarny o nazwie v8-shell.

Uruchomienie konsoli:

$> ./v8-shell 
V8 w wersji 2.0.2
> var x = 10;
> x
10
> funkcja foo (x) {return x * x; }
> foo
funkcja foo (x) {return x * x; }
> zakończ ()

Wykonywanie JavaScript z wiersza poleceń:

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

Wiele innych funkcji opisano w pomocy:

$> ./v8-shell --help
Stosowanie:
...
Georg Schölly
źródło
9
Dzięki za wskazówkę i wyraźne instrukcje. Musiałem dodać opcję -lpthreaddo g++polecenia pod Ubuntu 10.04.
intuicja
1
scons zawiódł dla mnie na Ubuntu, ale uruchomienie sudo apt-get install libc6-dev-i386 rozwiązało ten problem.
Thorsten Lorenz
2
i jeśli na x86_64 zrobić: „scons arch = 64” aż do jego stałe w bagażniku code.google.com/p/v8/issues/detail?id=429#c1
EDH
4
Należy pamiętać, że ta powłoka v8 ma być przykładem zabawki. Nazywa się „prawdziwa” powłoka v8 d8. Zobacz moją odpowiedź, aby uzyskać więcej informacji.
bukzor
2
Wydaje się, że metoda pobierania kodu źródłowego uległa zmianie. Zobacz tutaj .
Colliot
59

Aby zbudować konsolę programisty, zamiast przykładowej aplikacji zabawkowej „shell”, skopiuj i wklej poniższe polecenia do swojego terminala.

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

Ta instrukcja będzie działać na Ubuntu / Debian z „ogólnym” jądrem. W przypadku innych dystrybucji będziesz musiał zastąpić polecenie apt-get dowolnym dostępnym narzędziem do tworzenia pakietów. W systemach 64-bitowych może być konieczne dodanie arch=x64. console=readlineOpcja umożliwia readline systemu, aby czuć się nieco bardziej jak standardowy powłoki.

Pełniejsza dokumentacja znajduje się tutaj: http://code.google.com/apis/v8/build.html


Uwaga:

wprowadź opis obrazu tutaj

Zobacz też: Tworzenie wersji 8 z GYP

bukzor
źródło
9
Musiałem dodać, arch=x64aby zbudować na 64-bitowym systemie Ubuntu.
projectshave
@Hugh: Włącza system readline; dzięki temu możesz użyć strzałki w górę, aby uzyskać poprzednie polecenie, między innymi.
bukzor
Po zakończeniu budowy uruchom powłokę, wprowadzając ./d8.
Mathias Bynens,
na ubunt 12.04: błąd krytyczny: readline / readline.h: Nie ma takiego pliku lub katalogu - jakieś pomysły?
pguardiario
44

Co powiesz na uruchomienie V8 Javascript za pomocą wiersza poleceń przy użyciu node.js ?

node.js używa wersji 8 jako swojego silnika i dodaje do niego wiele funkcji.


Na przykład w systemie Mac OSX, jeśli masz zainstalowany Homebrew , po prostu wydaj:

    $ brew install node
    $ node
    > 
mniej
źródło
1
IMHO node.js to nowy standard defacto, jeśli chodzi o konsole JavaScript. Używa v8 i jest prawdopodobnie najlepszą opcją do tego.
Tracker1
23

W systemie Mac OS X upewnij się, że masz brewzainstalowany. Następnie po prostu uruchom polecenie (sudo) brew install v8, w zależności od komputera może to zająć trochę czasu. Aby uruchomić konsolę V8, po prostu uruchom v8- Voilà!

Wskazówka: aby zamknąć konsolę, po prostu uruchom quit()i nie zapomnij o nawiasach!

Mario Uher
źródło
1
Lub po prostu naciśnij, Ctrl-Daby zakończyć :)
Dogbert
Albo Ctrl-Cgo zabić
Braden Best
Możesz sam zbudować v8 i jest to dość proste, używanie naparu jest po prostu zbyt kłopotliwe.
b01
4
Jak uciążliwa jest funkcja „brew install v8”?
Devan Buggay
5

Myślę, że to mogło się zmienić. I przeczytać instrukcję i zbudować V8 takiego:

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

dodane export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.releasedo mojego .bashrc

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

(Z javascript od aditsu i A-small-practice.in z Google Code Jam)

Martin Thoma
źródło
2
Strona pełna odpowiedzi, a twoja, najmniej szanowana, zawiera ostatnią radę, której potrzebowałem.
Seth Difley
4

Po wykonaniu instrukcji kompilacji ( Dokumentacja kompilacji V8 firmy Google ) dla Twojego systemu;

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

Utworzyłem alias w moim .bash_profile, aby ułatwić wywołanie powłoki.

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

Wpisanie v8 w CLI (w nowym terminalu lub powłoce - aby przeładować swój profil bash) daje powłokę v8. JavaScript w wierszu poleceń! :)

Joe Johnson
źródło
3

Jeśli używasz ArchLinux, możesz pacman -S v8go zainstalować. Następnie użyj, d8aby uruchomić go w swojej powłoce. Ciesz się tym.

alswl
źródło
1
Wygląda na to, że znajduje się na AUR, więc nie można go zainstalować z pacmanem.
Colliot
3

Jeśli chcesz uruchomić kod źródłowy javascript przy użyciu silnika v8 lub dowolnej jego wersji, możesz skorzystać z narzędzia wiersza poleceń jsvu . Jest rozwijany i utrzymywany przez inżynierów Google, a poza tym oferuje możliwość instalowania innych silników javascript poza v8 , takich jak spidermonkey , chakracore , javascriptcore i xs .

sgeorgiou
źródło
2

Jeśli planujesz osadzić V8, to zdecydowanie zbuduj go i baw się z "d8".

Jeśli z drugiej strony nie planujesz rozszerzać V8 lub traktować go jako opcjonalnego, po prostu użyj Node.JS. Nie przejmuj się czystym V8.

Node.js ma naprawdę bogate we / wy, rozszerzenia, biblioteki (takie jak Perl CPAN, Python Eggs, Ruby Gems) i społeczność.

AR
źródło
Nie musisz używać node.js, to tylko opakowanie i dodatkowa zależność.
b01