Bytecoder

Framework to interpret and transpile JVM bytecode to JavaScript, OpenCL or WebAssembly.

APACHE-2.0 License

Stars
853
Committers
16

Bot releases are hidden (Show)

Bytecoder - 2023-12-01 Latest Release

Published by mirkosertic 11 months ago

What's Changed

  • Implemented final binary and textual representation for Wasm GC support
Bytecoder - 2023-06-15

Published by mirkosertic over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/mirkosertic/Bytecoder/compare/2023-05-19...2023-06-15

Bytecoder - 2023-05-19

Published by mirkosertic over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/mirkosertic/Bytecoder/compare/2023-05-16...2023-05-19

Bytecoder - 2023-05-16

Published by mirkosertic over 1 year ago

Changes

  • First implementation of compiler dataflow optimization stages
  • New VariableIsConstant optimizer stage
  • Prototype for InvokeVirtual optimizations
  • Prototype for ClassInit optimizations
  • Added stats for optimizer stages
  • Restructured generated JS code as a foundation for further optimizations
  • Bump kotlin.version from 1.8.20 to 1.8.21
  • Bump pitest-maven from 1.12.0 to 1.13.1
  • Bump maven-surefire-plugin from 3.0.0 to 3.1.0
  • Bump maven-gpg-plugin from 3.0.1 to 3.1.0
  • Bump jocl from 2.0.4 to 2.0.5
  • Bump selenium-chrome-driver from 4.9.0 to 4.9.1
  • Bump maven-core from 3.9.1 to 3.9.2
  • Bump selenium from 1.18.0 to 1.18.1
  • Bump maven-plugin-api from 3.9.1 to 3.9.2
  • Bump maven-artifact from 3.9.1 to 3.9.2
  • Bump maven-plugin-plugin from 3.8.2 to 3.9.0
  • Bump maven-plugin-annotations from 3.8.2 to 3.9.0
Bytecoder - 2023-04-24

Published by mirkosertic over 1 year ago

Changes

  • Various bug Fixes in JS/Wasm code generators
  • Implemented SWAP-Opcode
  • Bump pitest-maven from 1.11.7 to 1.12.0
  • Bump picocli from 4.7.1 to 4.7.2
  • Bump picocli from 4.7.2 to 4.7.3
  • Bump mockito-core from 4.9.0 to 5.3.0
  • Bump selenium-chrome-driver from 4.6.0 to 4.9.0
  • Bump jackson-databind from 2.14.2 to 2.15.0
  • Bump maven-plugin-annotations from 3.8.1 to 3.8.2
  • Bump mockito-core from 5.3.0 to 5.3.1
  • Bump maven-plugin-plugin from 3.8.1 to 3.8.2
Bytecoder - 2023-04-05

Published by mirkosertic over 1 year ago

Changes

  • Bug fix #743 Multi-threading can compile successfully, but only the data of of...
  • Bug fix #525 SourceMap Error. How do I specify the SourceMap location?
  • Bug fix #857 Testcase for record Classes
  • Bug fix #859 Testcase for yavi Validation / Invoke Dynamic
  • Bump picocli from 4.7.0 to 4.7.1
  • Bump maven-artifact from 3.8.6 to 3.9.1
  • Bump maven-plugin-annotations from 3.7.0 to 3.8.1
  • Bump maven-release-plugin from 2.5.3 to 3.0.0
  • Bump maven-surefire-plugin from 2.22.2 to 3.0.0
  • Bump clojure-maven-plugin from 1.8.4 to 1.9.2
  • Bump jme3-core from 3.5.2-stable to 3.6.0-stable
  • Bump selenium from 1.17.6 to 1.18.0
  • Bump slf4j-api from 2.0.6 to 2.0.7
  • Bump asm-analysis from 9.4 to 9.5
  • Bump batik-svggen from 1.14 to 1.16
  • Bump slf4j-jdk14 from 2.0.3 to 2.0.7
  • Bump jme3-core from 3.5.2-stable to 3.6.0-stable
Bytecoder - 2023-03-28

Published by mirkosertic over 1 year ago

Changes

  • Major refactoring of JVM bytecode parsing, now it is based on ASM
  • Major refactoring of compiler logic and IR
  • Major refactoring of structured control flow recovery logic, dropped Relooper and Stackifier algorithms completely
  • Major refactoring of JS code generator
  • Major refactoring of OpenCL code generator
  • Major refactoring of Wasm code generator, now based on latest Wasm release with exception handling
  • Wasm code now uses latest GC proposal instead of custom memory management
  • JRE classes are now based on Java 20
Bytecoder - 2021-11-02

Published by mirkosertic almost 3 years ago

Changes

Full Changelog: https://github.com/mirkosertic/Bytecoder/compare/2021-07-23...2021-11-02

Bytecoder - 2021-07-23

Published by mirkosertic about 3 years ago

Changes

  • Rename ClickEvent to MouseEvent and add type() to Event (#584)
  • Added missed methods to make gdx-backend-bytecoder work (#588)
  • Adds more attributes to KeyEvent and MouseEvent (#589)
  • Add preventDefault() and WheelEvent (#590)
  • Add WebGL classes (#592)
  • Enhance window (#598)
  • Enhance HTMLImageElement (#596)
  • Add HTMLAudioElement (#597)
  • Make HTMLImageElement extends HTMLElement (#604)
  • Bump slf4j-jcl from 1.7.30 to 1.7.31 (#581)
  • Bump maven-dependency-plugin from 3.1.2 to 3.2.0 (#574)
  • Bump maven-javadoc-plugin from 3.2.0 to 3.3.0 (#565)
  • Bump asm-analysis from 9.1 to 9.2 (#586)
  • Bump asm from 9.1 to 9.2 (#585)
  • Bump slf4j-api from 1.7.31 to 1.7.32 (#600)
  • Bump commons-io from 2.10.0 to 2.11.0 (#595)
  • Bump slf4j-jdk14 from 1.7.31 to 1.7.32 (#601)
  • Bump slf4j-jcl from 1.7.31 to 1.7.32 (#603)
  • Bump jackson-databind from 2.12.3 to 2.12.4 (#593)
Bytecoder - 2021-06-24

Published by mirkosertic over 3 years ago

Changes

  • #528 Instanceof and hashcode on any Class (without a instantion) causes a crash
  • Bump mockito-core from 3.11.0 to 3.11.2 (#575)
  • Bump slf4j-api from 1.7.30 to 1.7.31 (#577)
  • Bump commons-io from 2.9.0 to 2.10.0 (#578)
  • Bump slf4j-jdk14 from 1.7.30 to 1.7.31 (#579)
Bytecoder - 2021-06-10

Published by mirkosertic over 3 years ago

Changes

  • Update to llvm-11 (#527)
  • Added Support for Java 16 bytecode format
  • Bump mockito-core from 3.10.0 to 3.11.0 (#570)
  • Bug fix for Java 16 Lambdas (#571)
  • #549 Cannot find virtual method getDeclaredField (#561)
  • #529 Add support for Bytecode Format : 46 (#564)
  • Optimized compiler performance and size of generated code.
  • Added more analysis tags
  • Bump pitest-maven from 1.6.3 to 1.6.4 (#530)
  • Bump spring-boot-maven-plugin from 2.4.3 to 2.4.4 (#532)
  • Bump mockito-core from 3.8.0 to 3.9.0 (#537)
  • Upgrade to GitHub-native Dependabot (#547)
  • Bump junit from 4.13.1 to 4.13.2 (#544)
  • Bump spring-boot-maven-plugin from 2.4.4 to 2.4.5 (#540)
  • Bump selenium from 1.15.2 to 1.15.3 (#541)
  • Bump pitest-maven from 1.6.4 to 1.6.6 (#548)
  • Bump jackson-databind from 2.12.0 to 2.12.3 (#542)
  • Bump maven-plugin-plugin from 3.6.0 to 3.6.1 (#545)
  • Bump jackson-databind from 2.12.0 to 2.12.3 (#556)
  • Bump pitest-maven from 1.6.4 to 1.6.6 (#555)
  • Bump selenium from 1.15.2 to 1.15.3 (#551)
  • Bump maven-plugin-plugin from 3.6.0 to 3.6.1 (#557)
  • Bump maven-plugin-annotations from 3.6.0 to 3.6.1 (#553)
  • Bump mockito-core from 3.9.0 to 3.10.0 (#560)
  • Bump pitest-maven from 1.6.6 to 1.6.7 (#569)
  • Bump commons-io from 2.8.0 to 2.9.0 (#567)
Bytecoder - 2021-03-08

Published by mirkosertic over 3 years ago

Changes

  • #509 Add official support for java 15 (#516)
  • #498 [BUG] Error running bytecoder when using BigDecimal
  • #514 Cannot find static method parseLong in java/lang/Long
  • #499 [BUG] Long.toString(long val, int radix) not working correctly
  • Bump jocl from 2.0.2 to 2.0.3 (#512)
  • Bump selenium from 1.15.1 to 1.15.2 (#517)
  • Bump jocl from 2.0.3 to 2.0.4 (#518)
  • Bump asm from 9.0 to 9.1 (#513)
  • Bump clojure from 1.10.1 to 1.10.2 (#506)
  • Bump batik-svggen from 1.13 to 1.14 (#503)
  • Bump pitest-maven from 1.6.2 to 1.6.3 (#521)
  • Bump clojure from 1.10.2 to 1.10.3 (#526)
  • Bump mockito-core from 3.7.7 to 3.8.0 (#523)
  • Bump spring-boot-maven-plugin from 2.4.2 to 2.4.3 (#522)
Bytecoder - 2021-01-26

Published by mirkosertic over 3 years ago

Changes

  • #344 Implement reflection API for class and instance fields (#495)
  • #483 Why is Class.getSimpleName() not implemented? (#490)
  • #489 Pattern.compile working on JVM does not work with Bytecoder (#491)
  • Bump picocli from 4.5.2 to 4.6.1 (#494)
  • Bump pitest-maven from 1.5.2 to 1.6.2 (#493)
  • Bump selenium from 1.14.3 to 1.15.1 (#488)
  • Bump spring-boot-maven-plugin from 2.4.0 to 2.4.1 (#487)
  • Bump mockito-core from 3.6.28 to 3.7.0 (#496)
  • Bump mockito-core from 3.7.0 to 3.7.7 (#501)
  • Bump spring-boot-maven-plugin from 2.4.1 to 2.4.2 (#500)
Bytecoder - 2020-12-01

Published by mirkosertic almost 4 years ago

Changes

  • Throw proper exception when the number of arguments for a setter meth…
  • #467 add missing methods for SpriteBatch (#474)
  • added Int16Array; test, compiler code
  • added more useful methods on 2D context and HTMLImageElement (#482)
  • Bump junit from 4.13 to 4.13.1 (#468)
  • Bump mockito-core from 3.5.13 to 3.5.15 (#470)
  • Bump picocli from 4.5.1 to 4.5.2 (#469)
  • Bump spring-boot-maven-plugin from 2.3.4.RELEASE to 2.4.0 (#477)
  • Bump mockito-core from 3.5.15 to 3.6.28 (#480)
Bytecoder - 2020-10-05

Published by mirkosertic about 4 years ago

Changes

  • #465 Cannot find virtual method nextLong in non-abstract class java/util/Random with signature LONG()
Bytecoder - 2020-09-25

Published by mirkosertic about 4 years ago

Changes

  • BytecodeLoader to support Java 15 bytecode format
  • OpenCL/CPUContext: use the Common ForkJoinPool instead of a FixedThreadPool #462
  • JS-Codesize optimizations (#439)
  • Bump clojure-maven-plugin from 1.3.10 to 1.8.4 (#447)
  • Bump clojure from 1.4.0 to 1.10.1 (#446)
  • Bump picocli from 4.5.0 to 4.5.1 (#450)
  • Bump spring-boot-maven-plugin from 2.3.3.RELEASE to 2.3.4.RELEASE (#457)
  • Bump commons-io from 2.7 to 2.8.0 (#455)
  • Bump asm from 8.0.1 to 9.0 (#460)
  • Bump mockito-core from 3.5.11 to 3.5.13 (#464)
Bytecoder - 2020-07-29

Published by mirkosertic about 4 years ago

Changes

  • #431 Lua4J Demo compiled to WebAssembly does not work (#435)
  • Bump picocli from 4.3.2 to 4.4.0 (#426)
  • Bump maven-war-plugin from 3.3.0 to 3.3.1 (#428)
  • Bump mockito-core from 3.4.0 to 3.4.4 (#432)
  • Bump spring-boot-maven-plugin from 2.3.1.RELEASE to 2.3.2.RELEASE (#434)
  • Updated Guava
Bytecoder - 2020-07-01

Published by mirkosertic over 4 years ago

Changes

  • #413 Improve escape analysis (#414)
  • #412 Optimize memory free operation (#423)
  • Bump picocli from 4.3.0 to 4.3.2 (#416)
  • Bump selenium from 1.14.1 to 1.14.2 (#415)
  • Bump selenium from 1.14.2 to 1.14.3 (#419)
  • Bump commons-io from 2.6 to 2.7 (#418)
  • Bump spring-boot-maven-plugin from 2.2.7.RELEASE to 2.3.0.RELEASE (#417)
  • Bump spring-boot-maven-plugin from 2.3.0.RELEASE to 2.3.1.RELEASE (#422)
  • Bump jackson-databind from 2.9.10.4 to 2.10.0.pr1 in /core (#424)
  • Bump maven-war-plugin from 3.2.3 to 3.3.0 (#421)
Bytecoder - 2020-05-15

Published by mirkosertic over 4 years ago

Changes

  • #410 Turn off escape analysis by default (#411)
  • Bump picocli from 4.2.0 to 4.3.0 (#407)
  • Bump pitest-maven from 1.5.1 to 1.5.2 (#404)
  • Bump batik-svggen from 1.12 to 1.13 (#408)
Bytecoder - 2020-05-12

Published by mirkosertic over 4 years ago

Changes

  • #395 Perform stack allocation for non escaping objects (#397)
  • #401 String.toLong() with radix != 10 does not work
  • #405 LLVM GC must not scan the shadow stack
  • Bump maven-verifier from 1.7.1 to 1.7.2 (#398)
  • Bump spring-boot-maven-plugin from 2.2.6.RELEASE to 2.2.7.RELEASE (#400)
Package Rankings
Top 13.71% on Repo1.maven.org
Badges
Extracted from project README
Maven Central