Domanda

Voglio eseguire una console Javascript sopra V8. Come posso farlo?

È stato utile?

Soluzione

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:

<*>gt; ./v8-shell --help
Usage:
...
gt; ./v8-shell -e 'print("10*10 = " + 10*10)' 10*10 = 100
gt; ./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()
gt; svn co http://v8.googlecode.com/svn/trunk v8-trunk ... <*>gt; cd v8-trunk <*>gt; scons <*>gt; g++ ./samples/shell.cc -o v8-shell -I include libv8.a

Ora abbiamo un binario autonomo chiamato v8-shell .

Esecuzione della console:

<*>

Esecuzione di Javascript dalla riga di comando:

<*>

Molte altre funzioni sono documentate nella guida:

<*>

Altri suggerimenti

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 " generico " kernel. 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'opzione console = readline consente al sistema readline di farlo sembra 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

Che ne dici di eseguire V8 Javascript dalla 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 Homebrew installato, pubblica semplicemente:

    $ brew install node
    $ node
    > 

Su Mac OS X assicurati di avere brew installato. Quindi esegui il comando (sudo) brew install v8 , a seconda del tuo computer potrebbe richiedere del tempo. Per avviare la console V8, basta eseguire v8 - Voil & # 224 ;!

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

Penso che questo potrebbe essere cambiato. Ho 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.release nel 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. da Google Code Jam)

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 proprio profilo bash) si ottiene la shell v8. JavaScript al prompt dei comandi! :)

Se usi ArchLinux, puoi usare pacman -S v8 per installarlo. Quindi usa d8 per avviarlo nella tua shell. Divertiti.

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

Se, d'altra parte, non prevedi di estendere V8 o trattarlo come facoltativo, quindi basta usare 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.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top