กำลังรัน V8 Javascript Engine แบบสแตนด์อโลน


128

ฉันต้องการเรียกใช้คอนโซล Javascript ที่ด้านบนของ V8 ฉันต้องทำอย่างไร

คำตอบ:


115

V8 นั้นสร้างได้ง่ายและไม่มีโอเวอร์เฮด Java VM จากตัวแปล Javascript แบบสแตนด์อโลนของ Mozilla โชคดีที่ V8 มาพร้อมกับรหัสสำหรับสร้างคอนโซล นี่คือวิธีการสร้างสิ่งนี้:

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

v8-shellขณะนี้เรามีไบนารีแบบสแตนด์อโลนที่เรียกว่า

การเรียกใช้คอนโซล:

$> ./v8-shell 
V8 เวอร์ชัน 2.0.2
> var x = 10;
> x
10
> ฟังก์ชัน foo (x) {return x * x; }
> ฟู
ฟังก์ชัน foo (x) {return x * x; }
> เลิก ()

การเรียกใช้ Javascript จากบรรทัดคำสั่ง:

$> ./v8-shell -e 'พิมพ์ ("10 * 10 =" + 10 * 10)'
10 * 10 = 100

คุณสมบัติอื่น ๆ อีกมากมายได้รับการบันทึกไว้ในวิธีใช้:

$> ./v8-shell - help
การใช้งาน:
...

9
ขอบคุณสำหรับเคล็ดลับและคำแนะนำที่ชัดเจน ฉันต้องเพิ่มตัวเลือก-lpthreadให้กับg++คำสั่งภายใต้ ubuntu 10.04
หยั่งรู้

1
scons ล้มเหลวสำหรับฉันบน Ubuntu แต่การเรียกใช้ sudo apt-get install libc6-dev-i386 แก้ไขได้
Thorsten Lorenz

2
และถ้าคุณบน x86_64 ทำ a: 'scons arch = x64' จนกว่าจะแก้ไขใน trunk code.google.com/p/v8/issues/detail?id=429#c1
EdH

4
โปรดทราบว่า v8-shell นี้มีไว้เพื่อเป็นตัวอย่างของเล่น "ของจริง" หอย v8 d8เรียกว่า ดูคำตอบของฉันสำหรับข้อมูลเพิ่มเติม
bukzor

2
ดูเหมือนว่าวิธีการดึงซอร์สโค้ดจะเปลี่ยนไป ดูที่นี่ .
Colliot

59

ในการสร้างคอนโซลนักพัฒนาแทนที่จะเป็นแอปพลิเคชันของเล่น 'เชลล์' ตัวอย่างให้คัดลอกและวางคำสั่งด้านล่างลงในเทอร์มินัล

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

คำสั่งเหล่านี้จะใช้ได้กับ Ubuntu / Debian ที่มีเคอร์เนล "ทั่วไป" สำหรับการแจกแจงอื่น ๆ คุณจะต้องแทนที่คำสั่ง apt-get ด้วยเครื่องมือแพ็คเกจใด ๆ ที่คุณมี บนระบบ 64 arch=x64บิตคุณอาจจำเป็นต้องเพิ่ม console=readlineตัวเลือกที่ช่วยให้การReadLineระบบที่จะทำให้มันรู้สึกบิตมากขึ้นเช่นเปลือกมาตรฐาน

เอกสารเพิ่มเติมที่สมบูรณ์ที่นี่: http://code.google.com/apis/v8/build.html


บันทึก:

ป้อนคำอธิบายภาพที่นี่

ดูเพิ่มเติม: การสร้าง v8 ด้วย GYP


9
ฉันต้องเพิ่มarch=x64เพื่อสร้างบน ubuntu 64 บิต
ฉาย

@ ฮิวจ์: เปิดใช้งานระบบ Readline; นี่คือสิ่งที่ช่วยให้คุณสามารถใช้ลูกศรขึ้นเพื่อรับคำสั่งก่อนหน้ารวมถึงสิ่งอื่น ๆ
bukzor

./d8เมื่ออาคารเสร็จเรียบร้อยแล้วใช้เปลือกโดยการป้อน
Mathias Bynens

บน ubunt 12.04: ข้อผิดพลาดร้ายแรง: readline / readline.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว - ความคิดใด ๆ ?
pguardiario

44

วิธีการเกี่ยวกับการทำงาน V8 จาวาสคริปต์ผ่านบรรทัดคำสั่งโดยใช้Node.js ?

node.js ใช้ v8 เป็นเอนจิ้นและเพิ่มฟังก์ชันมากมายที่ด้านบน


ตัวอย่างเช่นบน Mac OSX หากคุณติดตั้งHomebrewเพียงแค่ออก:

    $ brew install node
    $ node
    > 

1
IMHO node.js คือมาตรฐาน defacto ใหม่เมื่อใช้กับคอนโซล JavaScript มันใช้ v8 และน่าจะเป็นตัวเลือกที่ดีที่สุดสำหรับสิ่งนี้
Tracker1

23

บน Mac OS X อย่าลืมbrewติดตั้ง จากนั้นเรียกใช้คำสั่ง(sudo) brew install v8ขึ้นอยู่กับเครื่องของคุณซึ่งอาจใช้เวลาสักครู่ ในการเริ่มคอนโซล V8 เพียงแค่เรียกใช้v8- Voilà!

เคล็ดลับ:ในการออกจากคอนโซลเพียงแค่เรียกใช้quit()และอย่าลืมวงเล็บ!


1
หรือแค่กดCtrl-Dเพื่อออก :)
Dogbert

หรือCtrl-Cจะฆ่ามัน
Braden Best

คุณสามารถสร้าง v8 ได้ด้วยตัวเองและมันง่ายพอที่จะใช้การชงเป็นวิธีที่ยุ่งยากเกินไป

4
'brew install v8' ยุ่งยากแค่ไหน?
Devan Buggay

5

ฉันคิดว่าสิ่งนี้อาจมีการเปลี่ยนแปลง ฉันอ่านคู่มือและสร้าง v8 ดังนี้:

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

เพิ่มexport PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.releaseใน. bashrc ของฉัน

moose@pc08 ~ $ source ~/.bashrc
moose@pc08 ~ $ d8 A_tic_tac_toe_Tomek.js < A-small-practice.in

(ด้วย javascript จากaditsuและ A-small-practice.in จาก Google Code Jam)


2
หน้าที่เต็มไปด้วยคำตอบและของคุณซึ่งได้รับการยอมรับน้อยที่สุดมีคำแนะนำสุดท้ายที่ฉันต้องการ
Seth Difley

4

หลังจากทำตามคำแนะนำการสร้าง ( V8 Build Docs ของ Google ) สำหรับระบบของคุณ

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

ฉันสร้างนามแฝงใน. bash_profile ของฉันเพื่ออำนวยความสะดวกในการเรียกเชลล์

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

การพิมพ์ v8 ที่ CLI (ใน Terminal หรือ shell ใหม่ - เพื่อโหลดโปรไฟล์ bash ของคุณใหม่) จะให้ v8 shell JavaScript ที่พรอมต์คำสั่ง! :)


3

หากคุณใช้ ArchLinux คุณสามารถใช้pacman -S v8เพื่อติดตั้งได้ จากนั้นใช้d8เพื่อเริ่มต้นในเปลือกของคุณ สนุกกับมัน.


1
ที่ดูเหมือนจะอยู่ใน AUR จึงไม่สามารถติดตั้งกับ pacman ได้
Colliot

3

ในกรณีที่คุณต้องการรันซอร์สโค้ดจาวาสคริปต์โดยใช้เอ็นจิ้นv8หรือเวอร์ชันใด ๆ คุณสามารถใช้เครื่องมือบรรทัดคำสั่งjsvu มันได้รับการพัฒนาและดูแลโดยวิศวกรของ Google และนอกจากจะมีคุณสมบัติในการติดตั้งเครื่องมือจาวาสคริปต์อื่น ๆ นอกเหนือจากv8เช่นspidermonkey , chakracore , JavaScriptCoreและXS


2

หากคุณวางแผนที่จะฝัง V8 ให้สร้างและเล่นด้วย "d8"

หากในทางกลับกันคุณไม่ได้วางแผนที่จะขยาย V8 หรือถือว่าเป็นทางเลือกจากนั้นใช้ Node.JS. ไม่ต้องกังวลกับ V8 บริสุทธิ์

Node.js มี I / O ที่สมบูรณ์ส่วนขยายไลบรารี (เช่น Perl CPAN, Python Eggs, Ruby Gems) และชุมชน


คุณไม่จำเป็นต้องใช้ node.js มันเป็นเพียง Wrapper และการพึ่งพาเพิ่มเติม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.