Skip to content

Commit 9dbeb8d

Browse files
authored
upgrade for 11.3.2
Includes version bumps for JRuby, Groovy, and Kotlin, as well as bug fixes for Ruby on non-Windows and the Kotlin interpreter startup time.
1 parent 0e4bf1c commit 9dbeb8d

File tree

5 files changed

+48
-5
lines changed

5 files changed

+48
-5
lines changed

.github/workflows/build.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,23 @@ jobs:
1212
runs-on: "ubuntu-latest"
1313
strategy:
1414
matrix:
15-
ghidra: ["11.3"]
15+
ghidra: ["11.3", "11.3.1", "11.3.2"]
1616
include:
1717
- ghidra: "11.3"
1818
ghidra-url: "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.3_build/ghidra_11.3_PUBLIC_20250205.zip"
1919
ghidra-sha256: "73b42cec587f370bfef49809ae55d2c7a3db689e8f164a1e7d7b8de295b6359f"
2020
ghidra-filename: "ghidra_11.3_PUBLIC_20250205.zip"
2121
ghidra-folder: "ghidra_11.3_PUBLIC"
22+
- ghidra: "11.3.1"
23+
ghidra-url: "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.3.1_build/ghidra_11.3.1_PUBLIC_20250219.zip"
24+
ghidra-sha256: "bcda0a9de8993444766cc255964c65c042b291ddaf6c50d654e316e442b441fa"
25+
ghidra-filename: "ghidra_11.3.1_PUBLIC_20250219.zip"
26+
ghidra-folder: "ghidra_11.3.1_PUBLIC"
27+
- ghidra: "11.3.2"
28+
ghidra-url: "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.3.2_build/ghidra_11.3.2_PUBLIC_20250415.zip"
29+
ghidra-sha256: "99d45035bdcc3d6627e7b1232b7b379905a9fad76c772c920602e2b5d8b2dac2"
30+
ghidra-filename: "ghidra_11.3.2_PUBLIC_20250415.zip"
31+
ghidra-folder: "ghidra_11.3.2_PUBLIC"
2232

2333
env:
2434
GHIDRA_INSTALL_DIR: /home/runner/ghidra/${{ matrix.ghidra-folder }}

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77

8+
## [5.0.0] - 2025-04-25
9+
### Changed
10+
- Upgrade to JRuby 10.0.0.0 (Ruby 3.4.2)
11+
- Upgrade to Groovy 4.0.26
12+
- Upgrade to Kotlin 2.1.20
13+
14+
### Fixed
15+
- Ruby console errors on non-Windows systems related to the terminal not using
16+
the typical STDIN file descriptor.
17+
- Kotlin engine startup now includes a warm-up evaluation so that the first
18+
user expression does not have to wait for this.
19+
20+
821
## [4.2.0] - 2025-02-14
922
### Changed
1023
- Upgrade to JRuby 9.4.12.0 (Ruby 3.1.4)

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ plugins {
1919
}
2020

2121
dependencies {
22-
implementation('org.jruby:jruby-complete:9.4.12.0')
22+
implementation('org.jruby:jruby-complete:10.0.0.0')
2323
implementation('org.clojure:clojure:1.12.0')
24-
implementation('org.apache.groovy:groovy:4.0.25')
25-
implementation('org.apache.groovy:groovy-groovysh:4.0.25')
24+
implementation('org.apache.groovy:groovy:4.0.26')
25+
implementation('org.apache.groovy:groovy-groovysh:4.0.26')
2626
testImplementation('junit:junit:4.13.2')
27-
runtimeOnly('org.jetbrains.kotlin:kotlin-scripting-jsr223:2.1.10')
27+
runtimeOnly('org.jetbrains.kotlin:kotlin-scripting-jsr223:2.1.20')
2828
}
2929

3030
test {

src/main/java/com/goatshriek/rubydragon/kotlin/KotlinGhidraInterpreter.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,17 @@ public void initInteractiveInterpreter() {
208208
setVariables.forEach((name, value) -> {
209209
engine.put(name, value);
210210
});
211+
212+
// evaluate a dummy expression to warm up the engine
213+
// without this, the first expression evaluated by the user will take
214+
// much longer to come back
215+
try {
216+
engine.eval("\"warm up\"");
217+
} catch (ScriptException e) {
218+
219+
errWriter.append("could not warm up Kotlin interpreter \n");
220+
errWriter.flush();
221+
}
211222
}
212223

213224
/**

src/main/resources/scripts/ruby-init.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1+
# before we require irb, we need to make sure that io-console uses the stub
2+
# console, since the STDIN stream we are using isn't a normal terminal
3+
host_os = RbConfig::CONFIG['host_os']
4+
RbConfig::CONFIG['host_os'] = 'windows'
5+
16
require 'irb'
7+
8+
# now that irb has loaded, we can switch the host os back
9+
RbConfig::CONFIG['host_os'] = host_os
10+
211
require 'irb/completion'
312

413
# allow java-like package names, and import irb and completions

0 commit comments

Comments
 (0)