test commit
removed test file
Add OpcodeList.txt file, that we wrote together.
First prototype of the 'interpreter-based compiler'. More work is needed, but it
Some additional notes.
Added paper Optimizing direct threaded code by selective inlining
Some changes, split opcode_handler.h away.
Add the first paper on code-copying.
Added paper Optimizing direct threaded code by selective inlining
New paper A survey of instruction dispatch techniques for byte-code interpreters (1996)-10.1.1.53.9849.pdf
Improve Makefile
opcode_handler.h: change the type of stack pointer to int*, and fix the code for
Commit today's work, not yet perfect (we do not skip over the code, and execute the inline invocation).
Disable -O, add -Wall -W, try to make optimization-proof
Add 'tags' to .hgignore.
Make code work even with optimizations, and enable them in the Makefile. There
Cleanup a lot more the code. Now we have a function which can either compile or
Improve comment about asm volatile semantics and a likely gcc bug.
main.c: reindent code correctly, no code change (verified with 'hg diff -b').
Start generalizing a bit the code.
Try fixing the previous problem. However, the called code still clobbers too
Go back to the original solution. NOTE THAT THIS IS NOT SAFE YET: we have to
BINARY_PLUS -> BINARY_ADD
Makefile: a few cleanups, add main.s target.
Add LABEL_BEGIN and LABEL_END macros to create our assembler labels for opcode
Add documentation comments for LABEL_BEGIN and LABEL_END.
Add a 'bytecode' parameter to the interpreter, don't use it for now.
Move lots of utility code to util.h
* Update Makefile for util.h
Slow down the code even more (not a lot, just microoptimization concerns) (didn't test it) by making it more genetic.
Copy my version of the 1st handin into sample, to get ideas for the
Added Sigurd's hand in and report for week 2
Added emacs indentation style hint to main.c
Backed out changeset 4b8b70678273
Corrected printf parameter type
Paolo's version of the threading handin (week 1).
Makefile: change compilation flags, structure better.
main.c: some more experiments
Makefile: disable linker script, allow user to specify additional CFLAGS.
Make util.h work on both 32- and 64-bit platforms (this is about whether the
Make it compile on x86 (hopefully) and disable code copying.
Commented out nonworking bit
Added prototype compiler
Updated the compiler with constants, and outputting a human readble format
util.h: the definition needs to be conditional on Linux, not on 32/64 bit.
merge
made compiler executable
made compiler print disassembly
main.c: parse compiler output
Not-so-simple testfile.
Simple testfile.
Add opcodes from Python 2.5 - the file has been converted to define its
Added nlocals to the bytecode format
Merge
Did more interpreter routines
main.c: add more debugging (including opcode names), avoid placing the 'stack'
added missing breaks
test email
removed test-file
If you get this I have set the emailing up correctly
Add stuff to .hgignore.
We can now run a simple while-loop (testwhile.py)
merge
time a loop
Makefile: remove infamous UCFLAGS, just say, for instance:
merge
small corrections an testwhileimport
First support for threading, still not working
Off by one error for fetching corrected
Added script for running the testwhile test to Makefile
Add the schedule we handed in to the repo as docs/schedule.pdf
merge
Various comment cleanups
Remove unused for loops for N_ITERS and N_COPIES iterations, unused while(true)
Merge
Compiler.py, still work in progress
Changed program counter to a pointer (so it can point into any array of bytecodes.
Renamed k to program_counter
Makefile: add missing newline at the end
Makefile: allow disabling DEBUG with DEBUG= on cmd line
* Convert the code parsing routines to use the new general structure.
Remove the 'unitialized variable parameter' warning from GCC output, and ensure that if it is ever unitialized, we notice that (hopefully by a crash in most cases)
Merge
main.c: allow using the same code for multiple opcodes again, add more opcodes
main.c, OpcodeList.txt: more opcodes and comments
Merge - still problems
Fix segmentation faults caused by mistakes with pointers - the result is still
Added function constants to the compiler
main.c: read function constant pool, improve the behaviour on the example (i.e.
Fix bug in JUMP_IF_FALSE - it popped the top of the stack like Java but unlike
Makefile: have "runtime" and "runtest" target (with and without NDEBUG).
Remove debug printf's, cleanup code about PAGE_SIZE
Move various unused files (which may be needed again for code copying in the
main.c: remove inclusion of opcode_handler.h, since code-copying is disabled,
Cleanup Makefile - now the executables are no more called 'main', but 'interp'
Add and use SHOW debugging macro.
added testlist.py
Added null at bottom of stack, removed prints from main.c.
Initial pieces for the object model
Improved Makefile with seperation of headers and other source files.