Sunday 1 May 2011

Crazy JIT Prototype - resurrection!


Couple of weeks ago I've put Parrot's jit prototype on hold. One of the major issue was C macro preprocessor. Now, it's time to unhold it

Monday 18 April 2011

Crazy JIT Prototype is on hold.


“Crazy JIT prototype” is on hold. I found 2 big problems with current approach. Which will require a quite big effort from me (or anyone else) to “fix”.

  • Parsing of larger subset of C. Mostly of struct definitions and preprocessor.
  • Type analyzes.

Tuesday 5 April 2011

Crazy JIT Prototype. Part 4.


I'm little bit tired and doesn't have energy to write lengthly post about “Crazy JIT prototype”. And I didn't make a lot of progress since last post. But still there is some good news and some roadblocks.

Monday 28 March 2011

Crazy JIT Prototype. Part 3.

Hi there

Since last post about “Crazy JIT Prototype” and progress of opsc_llvm branch I moved little bit further. Two major achievements:
  • Skeleton for generating JITted Subs is done.
  • JITting of simple ops with function calls and constants
  • Emulator of Parrot's runcore from within Parrot it self.

Tuesday 22 March 2011

LLVM in Parrot is getting even closer!


After my post about finishing opsc_llvm branch few things happened.

  • Luben Karavelov jumped on this branch and implemented writing and reading LLVM bitcode. It will allow faster turn-around for crazy JIT prototype branch. Just because I don't have to spend time on generating quite complex Parrot's structures like VTABLE (which is auto-generated during build from template by some dark magic) and parrot_interp_t. Just load pre-compiled LLVM bitcode and lookup type by name.
  • James Keenan (aka jkeenan, aka kid51) stepped on “infrastructure” tasks. E.g. proper Configure/Makefile generating, testing and LLVM version check.
  • Jonathan “Duke” Leto did initial changes for “Module Navigational Methods”, but looks like he was sidetracked by other issues.

Kudos for every contributor! Not only including someone who committed changes, but everyone involved.