Releases: roscopeco/jasm
Releases · roscopeco/jasm
v0.7.0
This release introduces the following new features to JASM:
- Support for Literal Names enable any name allowed by the JVM to be used in JASM code
- Support for Annotations
There are numerous smaller fixes and improvements, including:
- Better disassembly of enums & interfaces
- Fixed handling of method types with field access tags, allowing Java record classes to be assembled and disassembled
- Fixed exception statements to support Java
finally
Commits in this release
- Fix #35 by @roscopeco in #36
- Fix #38 - support literal names in disasm by @roscopeco in #39
- Implement annotations in assembler by @roscopeco in #41
- Parameter annotations and disassembly by @roscopeco in #42
- Fix #40 by @roscopeco in #43
- Fix field method handles by @roscopeco in #44
- Fix literal names in const args by @roscopeco in #45
- Fix interface & enum disassembly by @roscopeco in #46
- Cleanup tokens for better intellij integration by @roscopeco in #47
Full Changelog: v0.6.0...v0.7.0
v0.6.0
The headline of this release is the JASM disassembler, which can turn any Java .class
file into JASM code.
Also new this time are:
- Support for long and double
- New "star syntax" for explicit
InterfaceMethodref
oninvokestatic
andinvokevirtual
(e.g.invokevirtual* com/example/MyClass.method(...)
) - Fixed a bug with array types as owners for method invocations
What's Changed
- Disassemble
.class
to JASM by @roscopeco in #28 - Support Long & Double by @roscopeco in #29
Full Changelog: v0.5.0...v0.6.0
v0.5.0
This release add support for exception handling. Two styles are supported:
- Basic (manual) handler syntax with
exception
statement try
/catch
syntax for Java-like handling
What's Changed
- Add 'why not use Jasmin' section by @roscopeco in #18
- Support exception handling by @roscopeco in #21
- Fix #20 by @roscopeco in #22
- Document ldc by @roscopeco in #23
- Fix (i.e. prevent) multi-catch fallthrough by @roscopeco in #24
- Mention doc in readme by @roscopeco in #25
Full Changelog: v0.2.0...v0.5.0
v0.4.0
What's Changed
- Fix default class format to Java 11 by @roscopeco in #11
- Collect errors by @roscopeco in #10
- Better error messages by @roscopeco in #13
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
Support block comments, tweaks for better IntelliJ integration
- Whitespace & comments to hidden channel
- Previously, we skipped them in the lexer
- IntelliJ needs them not to be skipped (it needs a continuous stream)
- Explicit DQUOTE token
- Allow NAME as well as QNAME for extends and implements
- Optional comma in implements list
- Add
classbody
rule- Encapsulates the class body minus the enclosing braces
- Makes for an easier time in the PSI tree for IntelliJ
- Tidied up
stat_block
, omit opening/closing brace - Encapsulate invokedynamic body into a new rule
Full Changelog: v0.2.0...v0.3.0