2011-12-11 12 views
14

Ho cercato per un po 'di tempo, ma non sono riuscito a trovare alcun motore che emettesse il bytecode LLVM. Ma in qualche modo non posso credere che non esiste un motore del genere :)Esiste un motore JavaScript che emette un bytecode LLVM?

+0

IIRC mozilla ha studiato la possibilità di utilizzare LLVM come backend per il loro JIT, ma governato fuori, dicendo che sarebbe essere troppo lento o qualcosa del genere – CAFxX

+0

@CAFxX: hai qualche riferimento a riguardo? – Albert

+2

@Albert sure: https://hacks.mozilla.org/2009/07/tracemonkey-overview/comment-page-2/#comment-67629 – CAFxX

risposta

1

JXCore (una forcella di Nodejs) sostiene di aver attuato tale here. Dal Feb 2015, è open source, il codice è here on GitHub.

+0

Dove si afferma, che JXcore è un fork commerciale? Al contrario - è un progetto open source https://github.com/jxcore/jxcore (a partire da metà febbraio 2015, ma non è mai stato commerciale) – infografnet

+0

Ma lo hanno spostato su "da qualche parte lungo la strada" e utilizzare V8 e SpiderMonkey ora – Josef

4

JXcore sarà la soluzione migliore in corso IMHO - quando convertono da V8 a LLVM, che è un loro obiettivo quando raggiungono la versione 2 (in base al loro roadmap), esso quindi compilerà le sorgenti javascript nel codice nativo .

È possibile ottenere maggiori informazioni su JXcore here.

Questa parte della risposta è in una risposta alla risposta di Albert:

Secondo ktrzeciaknubisa di post che pubblicheranno la fonte, non appena sono fuori delle fasi di beta ed avere codice pulito ... questo potrebbe prendere a volte.

+0

Nubisa ha interrotto lo sviluppo attivo sulla piattaforma JXcore. –

1

Risulta Webkit ora include questa funzionalità a partire da maggio 2014:

... il progetto WebKit ha unificato la propria infrastruttura di compilazione JavaScript esistente con lo stato-of-the-art LLVM ottimizzatore.

https://webkit.org/blog/3362/introducing-the-webkit-ftl-jit/

Il codice per questa sembra essere qui:

http://www.opensource.apple.com/source/JavaScriptCore/JavaScriptCore-7600.1.4.17.5/ftl/FTLLowerDFGToLLVM.cpp

+1

Da allora hanno sostituito LLVM con il backend Bare Bones. https://webkit.org/blog/5852/introducing-the-b3-jit-compiler/ –

Problemi correlati