2009-11-26 18 views

Respuesta

110

V8 es fácil de construir y no viene con la sobrecarga de Java VM del intérprete de JavaScript independiente de Mozilla. Afortunadamente, V8 viene con código para construir una consola. Aquí es cómo construir este:

 
$> 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 

Ahora, tenemos un binario independiente llamada v8-shell.

Ejecución de la consola:

 
$> ./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() 

La ejecución de Javascript desde la línea de comandos:

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

Muchas más características están documentados en la ayuda:

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

Gracias para la propina y las instrucciones explícitas. Tuve que agregar la opción '-lpthread' al comando' g ++ 'bajo ubuntu 10.04. – intuited

+1

scons falló para mí en Ubuntu, pero al ejecutar sudo apt-get install libc6-dev-i386 se solucionó eso. –

+2

y si su en x86_64 hacer a: 'scons arch = x64' hasta que se solucione en el tronco http://code.google.com/p/v8/issues/detail?id=429#c1 – EdH

57

para construir la consola del programador , en lugar de la aplicación de ejemplo 'shell', copie y pegue los comandos siguientes en su terminal.

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

Estas instrucciones funcionarán para Ubuntu/Debian con un kernel "genérico". Para otras distribuciones, deberá reemplazar el comando apt-get con cualquier herramienta de paquete que tenga disponible. En los sistemas de 64 bits, es posible que deba agregar arch=x64. La opción console=readline habilita el sistema readline, para que se sienta un poco más como un shell estándar.

documentación más completa aquí: http://code.google.com/apis/v8/build.html


Nota:

enter image description here

Consulte también: Building v8 with GYP

+9

Tuve que agregar 'arch = x64' para compilar en ubuntu de 64 bits. – projectshave

+0

¿Qué hace la opción console = readline? – Hugh

+0

@Hugh: habilita el sistema readline; esto es lo que le permite usar la flecha hacia arriba para obtener el comando anterior, entre otras cosas. – bukzor

22

En Mac OS X Asegúrese de tener instalado brew. A continuación, ejecute el comando (sudo) brew install v8, dependiendo de su máquina, esto puede llevar algo de tiempo. Para iniciar la consola V8, simplemente ejecute v8 - Voilà!

Consejo: Para salir de la consola, basta con ejecutar quit() y no olvides los paréntesis!

+1

O simplemente presione 'Ctrl-D' para salir :) – Dogbert

+0

O' Ctrl-C' para matarlo –

+0

Puede construir v8 por sí mismo y es bastante simple, usar brew es demasiado engorroso. – b01

3

Si utiliza ArchLinux, puede usar pacman -S v8 para instalarlo. Luego use d8 para iniciarlo en su caparazón. Disfrútalo.

+0

Eso parece estar en el AUR así que no se puede instalar con pacman. – Colliot

41

¿Qué tal si ejecuta V8 Javascript a través de la línea de comando usando node.js?

node.js usa v8 como motor y agrega mucha funcionalidad encima.


Por ejemplo en Mac OS X si tiene Homebrew instalado, simplemente cuestión:

$ brew install node 
    $ node 
    > 
+1

IMHO node.js es el nuevo estándar de facto cuando se trata de consolas de JavaScript. Utiliza v8, y es probablemente la mejor opción para usar para esto. – Tracker1

1

Si usted está planeando para incrustar V8, entonces por todos los medios construirlo y jugar con "D8".

Si, por otro lado, no tiene previsto extender el V8 o tratarlo como opcional, , simplemente utilice Node.JS. No te molestes con V8 puro.

Node.js tiene E/S verdaderamente completas, extensiones, bibliotecas (como Perl CPAN, Python Eggs, Ruby Gems) y comunidad.

+0

No necesita usar node.js, es solo un contenedor y una dependencia adicional. – b01

4

Después de seguir las instrucciones de compilación (Google's V8 Build Docs) para su sistema;

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

Creé un alias en mi .bash_profile para facilitar la invocación del shell.

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

v8 Typing en la CLI (en un nuevo terminal o shell - para recargar su perfil de golpe) produce el shell v8. JavaScript en el símbolo del sistema! :)

4

Creo que esto podría haber cambiado. Me read the manual v8 y construir de esta manera:

[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 

añade export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.release a mi .bashrc

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

(con javascript de aditsu y A-small-practice.in de Google Code Jam)

+2

Una página llena de respuestas y la tuya, la menos considerada, contiene el consejo final que necesitaba. –