Compile Java byte-code to native CPU's.

Related tags

Native java_grinder
Overview
Comments
  • Fix g++ compile and case sensitivity issues

    Fix g++ compile and case sensitivity issues

    This pull request enables java_grinder to compile under Ubuntu 16.04 using g++ and fixes issues triggered by case insensitive file systems. Specifically this PR:

    • Removes the leading _ character in the include header guards since g++ uses leading _ for its system headers.
    • Renames Math.h to MathUtils.h
    • Renames amiga.* to amiga_.* to avoid conflicts with Amiga.*
    • Adds entries to .gitignore to avoid checking in generated binaries
    • Fixes an issue that prevented functions from getting included in assembly output
    opened by jamieleecho 7
  • Fixes header includes to conform to Google standards

    Fixes header includes to conform to Google standards

    Fixes java_grinder include guards to conform to Google standards. See https://stackoverflow.com/questions/4867559/naming-include-guards

    Note that it is NOT legal to begin include guards with leading _ or __ because doing so causes issues with system headers. For example, Linux's math.h file looks like:

    #ifndef	_MATH_H
    #define	_MATH_H	1
    

    Because java_grinder defines Math.h with the identical header guard, it is not currently possible to compile java_grinder under Linux. This change brings java_grinder one step closer to compiling under Linux.

    opened by jamieleecho 4
  • Fix building without debug

    Fix building without debug

    When building with the -UDEBUG -DNDEBUG options set, the build fails with this error:

    /usr/local/bin/ld: common/JavaCompiler.o: in function `JavaCompiler::load_class(char const*)':
    JavaCompiler.cxx:(.text+0x7484): undefined reference to `JavaClass::print()'
    

    This patch fixes that bug.

    opened by JL2210 3
  • Just minor fixes for consistency

    Just minor fixes for consistency

    I know it does not solve any issue because it seems nakem asm reads correctly the produced asm code but other assemblers dont and it will good for consistency.

    opened by Ozzyboshi 2
  • Explicitly specify c++11 for Ubuntu g++ compatibility

    Explicitly specify c++11 for Ubuntu g++ compatibility

    This PR fixes an issue compiling java_grinder under Ubuntu 16.04 with g++ 5.4.0 by explicitly specifying to use the C++ 11 standard. The errors that would otherwise pop up typically look like:

    ../common/JavaCompiler.cxx:510:35: error: 'to_string' is not a member of 'std'
           label = method_name + "_" + std::to_string(jump_to);
    

    More information can be found here.

    This PR fixes the final compilation issue with Ubuntu 16.04 and g++ 5.4.0.

    opened by jamieleecho 2
  • Unimplemented OPCODES (187) and (1)

    Unimplemented OPCODES (187) and (1)

    Hi,

    trying to grind a Test2CPC.zip

    ** String name = ""; **

    I get "Opcode (187) 'new' unimplemented"

    Trying ** String name = NULL; **

    it states

    "Opcode (1) 'aconst_null' unimplemented"

    opened by deringenieur71 1
  • Msx.emiliano

    Msx.emiliano

    Hi Mike,

    As I announced on previous e-mail, this is my first contribution to add MSX support to java_grinder.

    I did my work on top of Giovanni's.

    As I mentioned with these changes java_grinder and naken-asm are successfully creating a .ROM (binary) file that actually runs on MSX.

    Please consider this request.

    I have some questions that I'll address in another e-mail.

    Thanks and best regards,

    Emiliano

    opened by efraga-msx 1
  • Fixes com Z80.cxx

    Fixes com Z80.cxx

    Mike,

    I fixed some issues on Z80.cxx:

    - there's no ld (hl), bc
    - there's no ld b, (hl+1), you should inc hl first
    - there's no ld d, (hl+1), you should inc hl first
    - jr z label_ --> jr z, label_
    - label_x   --> label_z:
    

    Other changes are there because my editor removes trailing white spaces.

    Thanks.

    opened by efraga-msx 0
  • X86_64 Support

    X86_64 Support

    This is an issue to track the progress for java_grinder on x86_64

    • [x] registers
    • [ ] data types/sizes
    • [ ] code generation
    • [ ] enabling support

    Please edit as progress continues, and feel free to add more goals.

    opened by JL2210 6
  • Add support for generating code to run from shared RAM.

    Add support for generating code to run from shared RAM. "LMM" mode.

    I'm led hear because java_grinder for the Parallax Propeller just got a mention on the Parallax forums. For the first time I think: http://forums.parallax.com/discussion/168101/propeller-java. An impressive piece of work.

    I don't know if you are aware but there is a way to have a very small, tight, PASM loop execute large PASM code from shared memory. Basically it fetches instructions from shared memory, one at a time, and executes them in COG. This is known in the Propeller world as LMM mode. Large Memory Model.

    The C compilers for the Propeller generate LMM code so as to allow for reasonably sized programs. Despite the fetch, execute loop they do run at a usable speed. They can also, optionally, generate COG code of course.

    GCC is extra clever optimization in that it has a thing called fcache. It will compile tight C loops into COG code and load that into into cog at run time. With fcache your Mandlebrot demo would probably run as fast in LMM mode as it does all from COG!

    Anyway, just thought you like a heads up on the Parallax forum post and wondered if you would be interested in getting java_grinder to generate LMM code.

    opened by ZiCog 1
Owner
Michael Kohn
Just your typical computer nerd.
Michael Kohn
The missing bridge between Java and native C++

JavaCPP Commercial support: Introduction JavaCPP provides efficient access to native C++ inside Java, not unlike the way some C/C++ compilers interact

Bytedeco 4k Jan 8, 2023
Java Native Access

Java Native Access (JNA) The definitive JNA reference (including an overview and usage details) is in the JavaDoc. Please read the overview. Questions

Java Native Access 7.6k Jan 1, 2023
Jssembly is a library that allows you to execute native assembly from Java.

jssembly Jssembly is a library that allows you to execute native assembly from Java via a JNI bridge. The goal is to provide wrappers and parsers for

David Titarenco 121 Jun 3, 2022
A JNI code generator based on the JNI generator used by the eclipse SWT project

HawtJNI Description HawtJNI is a code generator that produces the JNI code needed to implement java native methods. It is based on the jnigen code gen

FuseSource 153 Nov 17, 2022
Java Abstracted Foreign Function Layer

jnr-ffi jnr-ffi is a Java library for loading native libraries without writing JNI code by hand, or using tools such as SWIG. Example package hellowor

The Java Native Runtime Project 1.1k Dec 31, 2022
Java Bindings for V8

J2V8 J2V8 is a set of Java bindings for V8. J2V8 focuses on performance and tight integration with V8. It also takes a 'primitive first' approach, mea

EclipseSource 2.3k Jan 4, 2023
Low-overhead, non-blocking I/O, external Process implementation for Java

NuProcess NuProcess is proud to power Facebook's Buck build. A low-overhead, non-blocking I/O, external Process execution implementation for Java. It

Brett Wooldridge 644 Dec 29, 2022
Compile Java byte-code to native CPU's.

Java Grinder Compile Java bytecode to microcontroller assembly. Currently supporting MSP430, dsPIC, 6502/6510, 68000, MIPS, TMS9900, and Z80 with plat

Michael Kohn 396 Dec 23, 2022
A library for IDEs and Code Editors to compile java projects faster dynamically

A library for IDEs and Code Editors to compile java projects faster dynamically

omega ui 2 Feb 22, 2022
Framework for serialization to Json, XML, Byte and Excel, therefore an oviparous wool milk sow J

NetworkParser Framework for serialization from Java objects to Json, XML and Byte. NetworkParser is a simple framework for serializing complex model s

Fujaba Tool Suite 4 Nov 18, 2020
RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets, and Aeron

RSocket RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets, and Aeron. It enables the following symmetric interact

RSocket 2.2k Dec 30, 2022
Spring Native provides beta support for compiling Spring applications to native executables using GraalVM native-image compiler.

Spring Native provides beta support for compiling Spring applications to native executables using GraalVM native-image compiler.

Spring Projects Experimental 2.8k Jan 6, 2023
Catch common Java mistakes as compile-time errors

Error Prone Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time. public class ShortSet { public

Google 6.3k Dec 31, 2022
Catch common Java mistakes as compile-time errors

Error Prone Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time. public class ShortSet { public

Google 6.3k Dec 31, 2022
Download compiled jar from packages or compile it by yourself from sources

idle_codes Install Download compiled jar from packages or compile it by yourself from sources Put the jar file wherever you want. Make sure you have J

null 8 Dec 31, 2021
RestAhead - compile time generated REST client

RestAhead - compile time generated REST client This project draws inspiration from projects such as Retrofit and Feign, but with a twist: your service

Žan Skamljič 13 Dec 24, 2022
MixStack lets you connects Flutter smoothly with Native pages, supports things like Multiple Tab Embeded Flutter View, Dynamic tab changing, and more. You can enjoy a smooth transition from legacy native code to Flutter with it.

中文 README MixStack MixStack lets you connects Flutter smoothly with Native pages, supports things like Multiple Tab Embeded Flutter View, Dynamic tab

Yuewen Engineering 80 Dec 19, 2022
Sceneform React Native AR Component using ARCore and Google Filament as 3D engine. This the Sceneform Maintained Component for React Native

Discord Server Join us on Discord if you need a hand or just want to talk about Sceneform and AR. Features Remote and local assets Augmented Faces Clo

SceneView Open Community 42 Dec 17, 2022
React native wrapper for Jitsi Meet SDK Library that rely on the native view (Activity / ViewController)

react-native-jitsi-meet-sdk React native wrapper for Jitsi Meet SDK Library. This Library implements the Jitsi SDK with a native activity on the Andro

null 7 May 2, 2022
With react-native-update-in-app library you can easily implement in-app updates in your React Native app using CDN or any other file server

React Native In-App update With react-native-update-in-app library you can easily implement in-app updates in your React Native app using CDN or any o

Nepein Andrey 7 Dec 21, 2022