Giter Site home page Giter Site logo

lua-vermelha's People

Contributors

charliegracie avatar leejingbo avatar leonardo2718 avatar lmaisons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lua-vermelha's Issues

Add tests for meta-tables

New test cases need to be created that exercise JITed code involving meta-tables. These tests should all opcodes that can potentially deal with meta-tables.

cannot build from a fresh checkout

The command make gives the following error:

make[1]: Leaving directory '/home/dev/checkout/lua-vermelha/lua'
cd /home/dev/checkout/lua-vermelha/vermelha && make /home/dev/checkout/lua-vermelha/vermelha/libvermelha.a CXX="g++" CXX_FLAGS_EXTRA="-fpermissive -DLUA_C_LINKAGE -O3 -g"
make[1]: Entering directory '/home/dev/checkout/lua-vermelha/vermelha'
g++ -std=c++0x -fno-rtti -W -Wall -Wextra -fPIC -fpermissive -DLUA_C_LINKAGE -O3 -g -I../ -I../omr/jitbuilder/release/include -I../omr/jitbuilder/x/amd64 -I../omr/jitbuilder/x -I../omr/jitbuilder -I../omr/compiler/x/amd64 -I../omr/compiler/x -I../omr/compiler -I../omr -c LuaTypeDictionary.cpp -o /home/dev/checkout/lua-vermelha/vermelha/objs/LuaTypeDictionary.o
Assembler messages:
Fatal error: can't create /home/dev/checkout/lua-vermelha/vermelha/objs/LuaTypeDictionary.o: No such file or directory
Makefile:90: recipe for target '/home/dev/checkout/lua-vermelha/vermelha/objs/LuaTypeDictionary.o' failed
make[1]: *** [/home/dev/checkout/lua-vermelha/vermelha/objs/LuaTypeDictionary.o] Error 1
make[1]: Leaving directory '/home/dev/checkout/lua-vermelha/vermelha'
Makefile:74: recipe for target '/home/dev/checkout/lua-vermelha/vermelha/libvermelha.a' failed
make: *** [/home/dev/checkout/lua-vermelha/vermelha/libvermelha.a] Error 2

The problem could be solved by

mkdir vermelha/objs

Add continuous integration

A service such as Travis CI should be used to ensure that all changes submitted pass some level of testing. This will help ensure that all changes meet a certain level of quality.

A slight drawback of continuous integration is that running the tests takes time. This of course increases the waiting time for a PR to be merged. The test cases executed should be carefully chosen to avoid spending too much time testing unlikely sources of bugs.

Investigate using a proper testing framework

Currently, test cases are simple Lua scripts that exercise the code paths being tested. This is a less than ideal approach as there is no convenient way of reporting errors. Using a proper testing framework would help organize and cleanup the test cases.

Create a module for interacting with the JIT from Lua code

There are many cases where it can be useful to interact with the JIT compiler from Lua code. Some useful interactions can be:

  • checking whether a function has been compiled
  • requesting a compilation
  • turning the JIT off
  • turning the JIT on
  • blacklisting a function from compilation
  • removing a function from the compilation blacklist

A Lua module seems like a clean way to encapsulate this interface. Implementing this will likely require redesigning the API between the VM and the JIT.

Re-implement SUB, MUL, DIV, and IDIV

IL generation for the SUB, MUL, DIV, and IDIV, opcodes needs to be re-implemented to follow the style of ADD. Once this is done, the vm_sub(), vm_mul(), vm_div(), and vm_idiv() helper functions can be deleted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.