2009-11-26 15 views

risposta

110

V8 è facile da compilare e non viene fornito con l'overhead Java VM dall'interprete Javascript standalone di Mozilla. Fortunatamente, V8 viene fornito con il codice per la creazione di una console. Ecco come costruire questo:

 
$> svn co http://v8.googlecode.com/svn/trunk v8-trunk 
... 
$> cd v8-trunk 
$> scons 
$> g++ ./samples/shell.cc -o v8-shell -I include libv8.a 

Ora, abbiamo un binario autonoma denominata v8-shell.

Esecuzione del console:

 
$> ./v8-shell 
V8 version 2.0.2 
> var x = 10; 
> x 
10 
> function foo(x) { return x * x; } 
> foo 
function foo(x) { return x * x; } 
> quit() 

esecuzione Javascript dalla riga di comando:

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

Molte altre caratteristiche sono documentate nella guida:

 
$> ./v8-shell --help 
Usage: 
... 
+9

Grazie per la punta e le istruzioni esplicite. Ho dovuto aggiungere l'opzione '-lpthread' al comando' g ++ 'sotto ubuntu 10.04. – intuited

+1

scons non è riuscito su Ubuntu, ma eseguendo sudo apt-get install libc6-dev-i386 l'ha risolto. –

+2

e se su x86_64 fai un: 'scons arch = x64' fino a quando è stato corretto nel bagagliaio http://code.google.com/p/v8/issues/detail?id=429#c1 – EdH

57

per costruire la Console per gli sviluppatori , piuttosto che l'applicazione giocattolo 'shell' di esempio, copia e incolla i comandi sottostanti sul tuo terminale.

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

Queste istruzioni funzioneranno con Ubuntu/Debian con un kernel "generico". Per altre distribuzioni, è necessario sostituire il comando apt-get con qualsiasi strumento di pacchetto disponibile. Sui sistemi a 64 bit potrebbe essere necessario aggiungere arch=x64. L'opzione console=readline abilita il sistema readline, per farlo sembrare un po 'più simile a una shell standard.

documentazione più completa qui: http://code.google.com/apis/v8/build.html


Nota:

enter image description here

Consulta anche: Building v8 with GYP

+9

Ho dovuto aggiungere 'arch = x64' per costruire su ubuntu a 64 bit. – projectshave

+0

Cosa fa l'opzione console = readline? – Hugh

+0

@Hugh: abilita il sistema readline; questo è ciò che ti permette di usare la freccia su per ottenere il comando precedente, tra le altre sottigliezze. – bukzor

22

Su Mac OS X Assicuratevi di avere installato brew. Quindi esegui il comando (sudo) brew install v8, a seconda della macchina, potrebbe richiedere del tempo. Per avviare la console V8, esegui semplicemente v8 - Voilà!

Suggerimento: Per uscire dalla console, è sufficiente eseguire quit() e non dimenticare le parentesi!

+1

O semplicemente premi 'Ctrl-D' per uscire :) – Dogbert

+0

Oppure' Ctrl-C' per ucciderlo –

+0

Puoi costruire v8 da solo ed è abbastanza semplice, usare la birra è troppo ingombrante. – b01

3

Se si utilizza ArchLinux, è possibile utilizzare pacman -S v8 per installarlo. Quindi utilizzare d8 per avviarlo nella shell. Buon divertimento.

+0

Questo sembra essere su AUR quindi non può essere installato con pacman. – Colliot

41

Che ne dici di eseguire V8 Javascript tramite riga di comando utilizzando node.js?

node.js utilizza v8 come motore e aggiunge molte funzionalità su di esso.


Per esempio su Mac OSX se avete Homebrew installato, è sufficiente problema:

$ brew install node 
    $ node 
    > 
+1

IMHO node.js è il nuovo standard defacto quando si tratta di console JavaScript. Usa v8, ed è probabilmente l'opzione migliore da usare per questo. – Tracker1

1

Se hai intenzione di incorporare V8, quindi con tutti i mezzi costruire e giocare con "D8".

Se invece non si prevede di estendere V8 o trattarlo come facoltativo, quindi utilizzare solo Node.JS. Non preoccuparti di V8 puro.

Node.js ha veramente ricchi I O, estensioni, librerie/(come il Perl CPAN, Python uova, Rubino gemme), e la comunità.

+0

Non è necessario utilizzare node.js, è solo un wrapper e una dipendenza extra. – b01

4

Dopo aver seguito le istruzioni di compilazione (Google's V8 Build Docs) per il sistema;

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

ho creato un alias nel mio .bash_profile per facilitare invocazione del guscio.

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

Digitando v8 alla CLI (in un nuovo terminale o shell - per ricaricare il vostro profilo bash) produce il guscio v8. JavaScript al prompt dei comandi! :)

4

Penso che questo potrebbe essere cambiato. I read the manual e costruire v8 come questo:

[email protected]$ svn co http://v8.googlecode.com/svn/trunk v8-trunk 
[email protected]$ cd v8-trunk 
[email protected]$ make dependencies 
[email protected]$ make ia32.release 

aggiunto export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.release alla mia .bashrc

[email protected] ~ $ source ~/.bashrc 
[email protected] ~ $ d8 A_tic_tac_toe_Tomek.js < A-small-practice.in 

(con JavaScript da aditsu e A-small-practice.in da Google Code Jam)

+2

Una pagina piena di risposte e la tua, la meno considerata, contiene il consiglio finale di cui avevo bisogno. –