mirror of
https://github.com/AppleCommander/bastools.git
synced 2026-04-20 08:16:33 +00:00
Working on Graal native image capabilities. 'bt' looks stable at this point.
This commit is contained in:
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash +x
|
||||
|
||||
JAR="$(find tools/bt/build/libs/ -type f -not -name '*-plain.jar')"
|
||||
|
||||
function bt() {
|
||||
java -agentlib:native-image-agent=config-merge-dir=tools/bt/src/main/resources/META-INF/native-image \
|
||||
-jar "${JAR}" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
printf "\n\n*** RUNNING BT THROUGH A NUMBER OF COMMANDS TO CAPTURE DETAILS FOR NATIVE IMAGE ***\n\n"
|
||||
|
||||
bt --version
|
||||
bt --optimize tools/bt/src/test/resources/alien-drizzle.bas --output=alien-drizzle.out
|
||||
bt --applesingle tools/bt/src/test/resources/route6502.bas --output=route6502.as
|
||||
bt --wrapper tools/bt/src/test/resources/test.bas --hex
|
||||
bt tools/bt/src/test/resources/embed-example.bas --copy
|
||||
bt tools/bt/src/test/resources/mouse.bas --copy
|
||||
@@ -0,0 +1,10 @@
|
||||
# Graal Native Image configuration
|
||||
|
||||
To _update_ the configurations, use:
|
||||
|
||||
```declarative
|
||||
-agentlib:native-image-agent=config-merge-dir=tools/bt/src/main/resources/META-INF/native-image
|
||||
```
|
||||
|
||||
Note that there is a script to exercise a good set options in `scripts/capture-bt.sh`.
|
||||
Run it from the project root.
|
||||
@@ -0,0 +1,6 @@
|
||||
[
|
||||
{
|
||||
"name":"java.lang.Boolean",
|
||||
"methods":[{"name":"getBoolean","parameterTypes":["java.lang.String"] }]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
[
|
||||
{
|
||||
"type":"agent-extracted",
|
||||
"classes":[
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
[
|
||||
]
|
||||
@@ -0,0 +1,140 @@
|
||||
[
|
||||
{
|
||||
"name":"groovy.lang.Closure"
|
||||
},
|
||||
{
|
||||
"name":"io.github.applecommander.bastools.api.directives.EmbeddedBinaryDirective",
|
||||
"methods":[{"name":"<init>","parameterTypes":["io.github.applecommander.bastools.api.Configuration","java.io.OutputStream"] }]
|
||||
},
|
||||
{
|
||||
"name":"io.github.applecommander.bastools.api.directives.EmbeddedShapeTable",
|
||||
"methods":[{"name":"<init>","parameterTypes":["io.github.applecommander.bastools.api.Configuration","java.io.OutputStream"] }]
|
||||
},
|
||||
{
|
||||
"name":"io.github.applecommander.bastools.tools.bt.IntegerTypeConverter",
|
||||
"methods":[{"name":"<init>","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"io.github.applecommander.bastools.tools.bt.Main",
|
||||
"allDeclaredFields":true,
|
||||
"queryAllDeclaredMethods":true,
|
||||
"methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
|
||||
},
|
||||
{
|
||||
"name":"io.github.applecommander.bastools.tools.bt.OptimizationTypeConverter",
|
||||
"methods":[{"name":"<init>","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"io.github.applecommander.bastools.tools.bt.VersionProvider",
|
||||
"allDeclaredFields":true,
|
||||
"queryAllDeclaredMethods":true,
|
||||
"methods":[{"name":"<init>","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"java.io.Console",
|
||||
"methods":[{"name":"isTerminal","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"java.lang.Object",
|
||||
"allDeclaredFields":true,
|
||||
"queryAllDeclaredMethods":true
|
||||
},
|
||||
{
|
||||
"name":"java.lang.Runtime",
|
||||
"methods":[{"name":"version","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"java.lang.Runtime$Version",
|
||||
"methods":[{"name":"major","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"java.lang.System",
|
||||
"methods":[{"name":"console","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"name":"java.nio.file.Path"
|
||||
},
|
||||
{
|
||||
"name":"java.nio.file.Paths",
|
||||
"methods":[{"name":"get","parameterTypes":["java.lang.String","java.lang.String[]"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.sql.Connection"
|
||||
},
|
||||
{
|
||||
"name":"java.sql.Driver"
|
||||
},
|
||||
{
|
||||
"name":"java.sql.DriverManager",
|
||||
"methods":[{"name":"getConnection","parameterTypes":["java.lang.String"] }, {"name":"getDriver","parameterTypes":["java.lang.String"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.sql.Time",
|
||||
"methods":[{"name":"<init>","parameterTypes":["long"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.sql.Timestamp",
|
||||
"methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.Duration",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.Instant",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.LocalDate",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.LocalDateTime",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.LocalTime",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.MonthDay",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.OffsetDateTime",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.OffsetTime",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.Period",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.Year",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.YearMonth",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.ZoneId",
|
||||
"methods":[{"name":"of","parameterTypes":["java.lang.String"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.ZoneOffset",
|
||||
"methods":[{"name":"of","parameterTypes":["java.lang.String"] }]
|
||||
},
|
||||
{
|
||||
"name":"java.time.ZonedDateTime",
|
||||
"methods":[{"name":"parse","parameterTypes":["java.lang.CharSequence"] }]
|
||||
},
|
||||
{
|
||||
"name":"picocli.CommandLine$AutoHelpMixin",
|
||||
"allDeclaredFields":true,
|
||||
"queryAllDeclaredMethods":true
|
||||
}
|
||||
]
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"resources": {
|
||||
"includes": [
|
||||
{
|
||||
"pattern": "META-INF/MANIFEST.MF"
|
||||
}
|
||||
]
|
||||
},
|
||||
"bundles": []
|
||||
"resources":{
|
||||
"includes":[{
|
||||
"pattern":"META-INF/MANIFEST.MF"
|
||||
}, {
|
||||
"pattern":"\\QMETA-INF/services/java.lang.System$LoggerFinder\\E"
|
||||
}, {
|
||||
"pattern":"\\QMETA-INF/services/java.time.zone.ZoneRulesProvider\\E"
|
||||
}]},
|
||||
"bundles":[]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"types":[
|
||||
],
|
||||
"lambdaCapturingTypes":[
|
||||
],
|
||||
"proxies":[
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
1 GOSUB 10
|
||||
2 PRINT "BEFORE CALL"
|
||||
3 CALL 768
|
||||
4 PRINT "AFTER CALL"
|
||||
5 END
|
||||
10 $embed file="embed-rts.bin", moveto="$300"
|
||||
@@ -0,0 +1 @@
|
||||
`
|
||||
@@ -0,0 +1,6 @@
|
||||
10 gosub 100
|
||||
20 hgr:hcolor=3
|
||||
30 draw m at 100,100
|
||||
40 end
|
||||
|
||||
100 $shape src="mouse.st", init=yes, assign=(m="mouse"), address=ad
|
||||
@@ -0,0 +1,13 @@
|
||||
; extracted from NEW MOUSE
|
||||
|
||||
.bitmap mouse
|
||||
..........*X..
|
||||
....XXXX.XX...
|
||||
...XXXXXXXX...
|
||||
.XXXXXXXXXXX..
|
||||
XX.XXXXXXX.XX.
|
||||
X...XXXXXXXXXX
|
||||
XX............
|
||||
.XXX.XX.......
|
||||
...XXX........
|
||||
|
||||
@@ -1,21 +1,10 @@
|
||||
# Graal Native Image configuration
|
||||
|
||||
This is a mish-mash of manual and automatic code generation.
|
||||
|
||||
To _update_ the configurations, use:
|
||||
|
||||
```declarative
|
||||
-agentlib:native-image-agent=config-merge-dir=tools/st/src/main/resources/META-INF/native-image
|
||||
```
|
||||
|
||||
Please delete empty files and reformat the JSON!
|
||||
|
||||
When running the JAR from the command line. This particular pathing, suggests that it be run from the root of the project.
|
||||
|
||||
Note: With `st` every subcommand should be executed to capture all the pieces!
|
||||
|
||||
For example:
|
||||
|
||||
```shell
|
||||
TODO
|
||||
```
|
||||
Note that there is a script to exercise a good set options in `scripts/capture-st.sh`.
|
||||
Run it from the project root.
|
||||
|
||||
Reference in New Issue
Block a user