Skip to content
This repository

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

..
Octocat-spinner-32 builtin
Octocat-spinner-32 capi
Octocat-spinner-32 codegen
Octocat-spinner-32 drivers
Octocat-spinner-32 external_libs
Octocat-spinner-32 gc
Octocat-spinner-32 instruments
Octocat-spinner-32 llvm
Octocat-spinner-32 super-instruction
Octocat-spinner-32 test
Octocat-spinner-32 util
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README
Octocat-spinner-32 agent.cpp
Octocat-spinner-32 agent.hpp
Octocat-spinner-32 ar.cpp
Octocat-spinner-32 ar.hpp
Octocat-spinner-32 arguments.cpp
Octocat-spinner-32 arguments.hpp
Octocat-spinner-32 async_message.hpp
Octocat-spinner-32 call_frame.cpp
Octocat-spinner-32 call_frame.hpp
Octocat-spinner-32 call_frame_list.hpp
Octocat-spinner-32 compile.sh Compile the kernel, and load it in August 01, 2008
Octocat-spinner-32 compiled_file.cpp
Octocat-spinner-32 compiled_file.hpp
Octocat-spinner-32 config.h
Octocat-spinner-32 config_parser.cpp
Octocat-spinner-32 config_parser.hpp
Octocat-spinner-32 configuration.hpp
Octocat-spinner-32 detection.hpp Revert "Disable fibers on >= 10.7. Fixes #815" August 21, 2013
Octocat-spinner-32 dispatch.cpp
Octocat-spinner-32 dispatch.hpp
Octocat-spinner-32 environment.cpp
Octocat-spinner-32 environment.hpp
Octocat-spinner-32 event.cpp
Octocat-spinner-32 event.hpp
Octocat-spinner-32 exception.cpp
Octocat-spinner-32 exception.hpp
Octocat-spinner-32 exception_point.cpp
Octocat-spinner-32 exception_point.hpp
Octocat-spinner-32 executor.hpp
Octocat-spinner-32 ffi.cpp
Octocat-spinner-32 ffi.hpp
Octocat-spinner-32 ffi_util.cpp
Octocat-spinner-32 ffi_util.hpp
Octocat-spinner-32 field_offset.hpp Add missed file April 13, 2009
Octocat-spinner-32 flags.hpp
Octocat-spinner-32 global_cache.cpp
Octocat-spinner-32 global_cache.hpp
Octocat-spinner-32 global_lock.cpp
Octocat-spinner-32 global_lock.hpp
Octocat-spinner-32 globals.hpp
Octocat-spinner-32 helpers.cpp
Octocat-spinner-32 helpers.hpp
Octocat-spinner-32 inline_cache.cpp
Octocat-spinner-32 inline_cache.hpp
Octocat-spinner-32 instructions.cpp
Octocat-spinner-32 instructions.def
Octocat-spinner-32 instructions.hpp
Octocat-spinner-32 instructions_util.hpp
Octocat-spinner-32 jit_state.h
Octocat-spinner-32 kcode.cpp
Octocat-spinner-32 kcode.hpp
Octocat-spinner-32 linkedlist.cpp
Octocat-spinner-32 linkedlist.hpp
Octocat-spinner-32 lookup_data.hpp
Octocat-spinner-32 maps.hpp
Octocat-spinner-32 marshal.cpp
Octocat-spinner-32 marshal.hpp
Octocat-spinner-32 native_libraries.cpp
Octocat-spinner-32 native_libraries.hpp
Octocat-spinner-32 native_thread.cpp
Octocat-spinner-32 native_thread.hpp
Octocat-spinner-32 object_position.hpp Fix memory corruption bug, improve immix metadata March 27, 2009
Octocat-spinner-32 object_types.hpp Automate object_type enum and kind_of<> September 22, 2008
Octocat-spinner-32 object_utils.hpp
Octocat-spinner-32 object_watch.hpp Add new Immix GC as the mature GC March 09, 2009
Octocat-spinner-32 objectmemory.cpp
Octocat-spinner-32 objectmemory.hpp
Octocat-spinner-32 on_stack.hpp
Octocat-spinner-32 ontology.cpp
Octocat-spinner-32 oop.cpp
Octocat-spinner-32 oop.hpp
Octocat-spinner-32 prelude.hpp
Octocat-spinner-32 primitives.cpp
Octocat-spinner-32 primitives.hpp
Octocat-spinner-32 raise_reason.hpp
Octocat-spinner-32 shared_state.cpp
Octocat-spinner-32 shared_state.hpp
Octocat-spinner-32 signal.cpp
Octocat-spinner-32 signal.hpp
Octocat-spinner-32 stack_variables.cpp
Octocat-spinner-32 stack_variables.hpp
Octocat-spinner-32 symboltable.cpp
Octocat-spinner-32 symboltable.hpp
Octocat-spinner-32 testable.hpp Fixed profiler. April 22, 2009
Octocat-spinner-32 thread_state.cpp
Octocat-spinner-32 thread_state.hpp
Octocat-spinner-32 type_info.cpp
Octocat-spinner-32 type_info.hpp
Octocat-spinner-32 unwind_info.hpp
Octocat-spinner-32 virtual.cpp Renamed vm/object.hpp to vm/object_utils.hpp. File/#include shuffling. October 19, 2008
Octocat-spinner-32 virtual.hpp Changed all OBJECT, SYMBOL, FIXNUM, INTEGER to normal syntax. October 19, 2008
Octocat-spinner-32 vm.cpp
Octocat-spinner-32 vm.hpp
Octocat-spinner-32 vmmethod.cpp
Octocat-spinner-32 vmmethod.hpp
README
 VM: a C++ VM for running ruby code
------------------------------------
(Could probably use a better name than VM)


 Prerequisites
---------------

* LLVM 2.3 or later, http://llvm.org


 Building
----------

You should be in the vm directory for all of these.

`rake build`


 Running
---------

For now, just run the tests.


 Tests and Specs
-----------------

* `rake test` builds and runs all of the tests in test/test_*
* `rake coverage` runs the tests as above and then generates
  a coverage report based on those in coverage/index.html.


 Notes
-------

* Classes defined in builtin/*.hpp are C++ classes mapped directly to ruby
  objects.

* Because of the previous point, NO virtual functions are allowed in these
  classes. C++ inserts a pointer into every object which has virtual functions
  and we must have complete control over the body of an object.

* Similarly, only use single inheritance. This keeps the order of data
  members consistent.

Something went wrong with that request. Please try again.