Voglio eseguire una console Javascript sulla parte superiore del V8. Come faccio a fare questo?Running V8 Javascript Engine Standalone
risposta
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: ...
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:
Consulta anche: Building v8 with GYP
Ho dovuto aggiungere 'arch = x64' per costruire su ubuntu a 64 bit. – projectshave
Cosa fa l'opzione console = readline? – Hugh
@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
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!
Se si utilizza ArchLinux, è possibile utilizzare pacman -S v8
per installarlo. Quindi utilizzare d8
per avviarlo nella shell. Buon divertimento.
Questo sembra essere su AUR quindi non può essere installato con pacman. – Colliot
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
>
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
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à.
Non è necessario utilizzare node.js, è solo un wrapper e una dipendenza extra. – b01
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! :)
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)
Una pagina piena di risposte e la tua, la meno considerata, contiene il consiglio finale di cui avevo bisogno. –
Grazie per la punta e le istruzioni esplicite. Ho dovuto aggiungere l'opzione '-lpthread' al comando' g ++ 'sotto ubuntu 10.04. – intuited
scons non è riuscito su Ubuntu, ma eseguendo sudo apt-get install libc6-dev-i386 l'ha risolto. –
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