Esecuzione del motore JavaScript V8 autonomo


128

Voglio eseguire una console Javascript su V8. Come faccio a fare questo?

Risposte:


115

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

$> 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 autonomo chiamato v8-shell.

Esecuzione della console:

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

Esecuzione di Javascript dalla riga di comando:

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

Molte altre funzioni sono documentate nella guida:

$> ./v8-shell --help
Uso:
...

9
Grazie per il suggerimento e le istruzioni esplicite. Ho dovuto aggiungere l'opzione -lpthreadal g++comando in Ubuntu 10.04.
intuito il

1
scons fallito per me su Ubuntu, ma eseguendo sudo apt-get install libc6-dev-i386 è stato risolto.
Thorsten Lorenz,

2
e se sei su x86_64 fai un: 'scons arch = x64' fino a quando non viene risolto nel trunk code.google.com/p/v8/issues/detail?id=429#c1
EdH

4
Nota che questa shell v8 vuole essere un esempio di giocattolo. Viene chiamata la shell "reale" v8 d8. Vedi la mia risposta per maggiori informazioni.
Bukzor,

2
Il metodo per recuperare il codice sorgente sembra cambiato. Vedi qui .
Colliot

59

Per creare la console per sviluppatori, anziché l'applicazione giocattolo 'shell' di esempio, copia e incolla i seguenti comandi 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 per Ubuntu / Debian con un kernel "generico". Per altre distribuzioni, sarà necessario sostituire il comando apt-get con qualsiasi strumento pacchetto disponibile. Sui sistemi a 64 bit potrebbe essere necessario aggiungere arch=x64. L' console=readlineopzione abilita il sistema readline , per renderlo un po 'più simile a una shell standard.

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


Nota:

inserisci qui la descrizione dell'immagine

Vedi anche: Creazione di v8 con GYP


9
Ho dovuto aggiungere arch=x64per costruire su Ubuntu a 64 bit.
progetti hanno il

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

Al termine della costruzione, esegui la shell inserendo ./d8.
Mathias Bynens,

su ubunt 12.04: errore fatale: readline / readline.h: nessun file o directory simile - qualche idea?
pguardiario,

44

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

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


Ad esempio su Mac OSX se hai installato Homebrew , emetti semplicemente:

    $ brew install node
    $ node
    > 

1
IMHO node.js è il nuovo standard defacto per quanto riguarda le console JavaScript. Utilizza v8 ed è probabilmente l'opzione migliore da utilizzare per questo.
Tracker 1

23

Su Mac OS X assicurati di aver brewinstallato. Quindi esegui semplicemente il comando (sudo) brew install v8, a seconda del tuo computer questo potrebbe richiedere del tempo. Per avviare la console V8, basta eseguire v8- Voilà!

Suggerimento: per uscire dalla console, basta eseguire quit()e non dimenticare le parentesi!


1
Oppure premi Ctrl-Dper uscire :)
Dogbert,

O Ctrl-Cper ucciderlo
Braden Best

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

4
Come è ingombrante 'brew install v8'?
Devan Buggay,

5

Penso che questo potrebbe essere cambiato. Ho letto il manuale e ho creato v8 in questo modo:

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

aggiunto export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.releaseal mio .bashrc

moose@pc08 ~ $ source ~/.bashrc
moose@pc08 ~ $ 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.
Seth Difley,

4

Dopo aver seguito le istruzioni di compilazione ( Google V8 Build Docs ) per il tuo 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 l'invocazione della shell.

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

Digitando v8 nella CLI (in un nuovo Terminale o shell - per ricaricare il profilo bash) si ottiene la shell v8. JavaScript al prompt dei comandi! :)


3

Se usi ArchLinux, puoi usarlo pacman -S v8per installarlo. Quindi utilizzare d8per avviarlo nella shell. Divertirsi.


1
Questo sembra essere sull'AUR, quindi non può essere installato con pacman.
Colliot

3

Nel caso in cui desideri eseguire il tuo codice sorgente javascript utilizzando il motore v8 o una sua versione, puoi utilizzare lo strumento da riga di comando jsvu . È sviluppato e gestito dagli ingegneri di Google e, inoltre, offre la funzione di installare altri motori javascript oltre a v8 , come spidermonkey , chakracore , javascriptcore e xs .


2

Se hai intenzione di incorporare V8, allora costruiscilo e gioca con "d8".

Se, d'altra parte, non hai intenzione di estendere V8 o trattarlo come facoltativo, usa semplicemente Node.JS. Non preoccuparti del V8 puro.

Node.js ha I / O, estensioni, librerie davvero ricchi (come Perl CPAN, Python Eggs, Ruby Gems) e community.


Non è necessario utilizzare node.js, è solo un wrapper e una dipendenza aggiuntiva.
b01,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.