Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
334 commits
Select commit Hold shift + click to select a range
b369bb3
[wip]
profMagija May 13, 2022
d54e801
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija May 13, 2022
0c45539
[wip] small changes
profMagija May 16, 2022
763d904
[wip] short circuiting
profMagija May 16, 2022
7f21bd5
[wip] be on primitives
profMagija May 17, 2022
79c3e82
[wip] store child/const offsets
profMagija May 19, 2022
9ba6235
[wip] raw load problem
profMagija May 27, 2022
4bbc792
[wip]
profMagija May 30, 2022
ccdbd12
[wip] aaaaaaaaaaaaa
profMagija Jun 1, 2022
d3c1d57
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Jun 1, 2022
3d76b28
[wip] changes
profMagija Jun 16, 2022
e727b96
[wip] changes
profMagija Jun 21, 2022
99a37c5
[wip] new instruction gen
profMagija Jun 21, 2022
14e78a1
[wip] new instruction gen
profMagija Jun 23, 2022
07cda2f
[wip] cache ordering
profMagija Jun 23, 2022
c932cbc
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Jun 23, 2022
602f5d1
[wip] fix shortcircuiting ops
profMagija Jun 23, 2022
21d7ef3
Operation builder fixes.
chumer Jun 23, 2022
8528545
[wip] update tests
profMagija Jun 27, 2022
84793f7
Merge branch 'nbebic/GR-32682/operations_dsl' of ssh://ol-bitbucket.u…
profMagija Jun 27, 2022
204139f
[wip] rename LocalSetterRun => Range
profMagija Jun 27, 2022
917251a
[wip] add null checks for caches in Operation DSL
profMagija Jun 28, 2022
8ff5c13
[wip] add copyObject and copyPrimitive to Frame
profMagija Jun 28, 2022
9c79445
[wip] clear object slot on copyPrimitive
profMagija Jun 28, 2022
4383568
[wip] fix boundary calls
profMagija Jun 29, 2022
5aad2a2
[wip] new generator
profMagija Jul 1, 2022
7aa046a
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Jul 1, 2022
86bc8d6
[wip] remove removed types
profMagija Jul 4, 2022
e343c92
[wip] fixes
profMagija Jul 7, 2022
8d33257
[wip] different loop code gen
profMagija Jul 7, 2022
3f831ee
[wip]
profMagija Jul 7, 2022
4fa6e84
[wip] fix quickening decisions
profMagija Jul 13, 2022
83bc2f7
[wip] GenerateUncached for operations
profMagija Jul 18, 2022
70003da
[wip]
profMagija Jul 19, 2022
ce13864
[wip] serialization prototype
profMagija Jul 20, 2022
102df02
[wip] SL serialization
profMagija Jul 20, 2022
07f3af3
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Jul 20, 2022
7e4cf03
[wip] fix serialization
profMagija Jul 20, 2022
a81f680
[wip] fix NodeFactory breaking operations gen
profMagija Jul 21, 2022
37d33e2
[wip] move safepoint poll and enable OSR
profMagija Jul 21, 2022
6b3895b
[wip] fix uncached generation
profMagija Jul 21, 2022
459159b
[wip] fix codegen
profMagija Aug 3, 2022
87d054e
[wip] serialization changes
profMagija Aug 4, 2022
c64342f
[wip] fix tests and osr
profMagija Aug 9, 2022
fc99473
[wip] make non-node spec instances work
profMagija Aug 9, 2022
72bd278
[wip] fix BE when first arg is nog BEd
profMagija Aug 11, 2022
b37fb9a
[wip] remove local boxing elim until fixed
profMagija Aug 12, 2022
240dc6e
Merge remote-tracking branch 'origin/master' into nbebic/GR-32682/ope…
profMagija Aug 12, 2022
ea4a6e1
[wip] fix error
profMagija Aug 12, 2022
871a065
[wip] refactored API
profMagija Aug 19, 2022
6be7c3a
[wip] update tests
profMagija Aug 19, 2022
d65d0f8
[wip] new rootnode api
profMagija Aug 23, 2022
a48916b
[wip] more error reporting
profMagija Aug 29, 2022
17760e0
[wip] benchmark tests
profMagija Aug 29, 2022
edc56fa
[wip] yields and unsafes
profMagija Aug 30, 2022
9979324
[wip] we are C now
profMagija Aug 30, 2022
8f86109
[wip] fix codegen bug
profMagija Aug 30, 2022
9d17e89
[wip] nicer bench
profMagija Sep 20, 2022
b94be65
[wip] begin/endRoot
profMagija Sep 21, 2022
0441a0d
[wip] tests & serialization fix
profMagija Sep 22, 2022
c73fc5b
[wip] fix compilation of tests
profMagija Sep 22, 2022
402b4c4
Merge branch 'master' of github.com:oracle/graal into nbebic/GR-32682…
profMagija Sep 22, 2022
64f7f4b
[wip] more yielding
profMagija Sep 26, 2022
6ba7e51
[wip] nonlocal reads/writes
profMagija Sep 27, 2022
9f416e2
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Sep 27, 2022
775d8aa
[wip] remove boxing elimination since it is borked
profMagija Sep 27, 2022
a7ee1ff
[wip] rename serializers
profMagija Sep 28, 2022
1d7b923
[wip] handle variadics in separate function
profMagija Sep 28, 2022
1c81d02
[wip] boxing elimination v981273
profMagija Oct 3, 2022
d4964f7
[wip] boxing elimination again
profMagija Oct 5, 2022
e65136f
[wip]
profMagija Oct 7, 2022
08b37f9
[wip] cleanup
profMagija Oct 7, 2022
b8ef46c
[wip] visibility check
profMagija Oct 7, 2022
8feb899
[wip] toString & make ctor optional
profMagija Oct 7, 2022
292d2cc
[wip] fix tests
profMagija Oct 10, 2022
90297b1
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Oct 11, 2022
88ea8a1
[wip] fix tests
profMagija Oct 11, 2022
dd82337
[wip] add error tests
profMagija Oct 11, 2022
0a94f4a
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Oct 12, 2022
0623618
[wip] superinstruction detection
profMagija Oct 13, 2022
e285ca4
[wip] add generated file
profMagija Oct 13, 2022
fb730c2
[wip] error and serialization changes
profMagija Oct 17, 2022
52d464c
[wip] add introspection & change boxing bits
profMagija Oct 19, 2022
bfb6ac2
[wip] decision ordering
profMagija Oct 19, 2022
6a4283a
[wip] serialize si
profMagija Oct 20, 2022
a65df1c
[wip] remove variadics from si
profMagija Oct 20, 2022
57716be
[wip] first SI impl
profMagija Oct 24, 2022
0270371
[wip] si + decisions logging
profMagija Oct 25, 2022
c0b8e1d
[wip] wrap executions into methods
profMagija Oct 25, 2022
27e30e6
[wip] fix everything last addition broke
profMagija Oct 25, 2022
ec85232
[wip] more fixes
profMagija Oct 25, 2022
891f299
[wip] superinstructions & common instructions
profMagija Oct 26, 2022
48964c7
[wip] decisions decisions
profMagija Oct 27, 2022
e1e0620
[wip] place common behind a feature flag
profMagija Oct 27, 2022
91579b7
[wip] separate out even more
profMagija Oct 27, 2022
642cbf2
Merge branch 'master' of ssh://ol-bitbucket.us.oracle.com:7999/g/graa…
profMagija Oct 27, 2022
266bf25
[wip] new generated file location
profMagija Oct 27, 2022
3af56e1
[wip] bunch
profMagija Nov 16, 2022
1736804
Merge remote-tracking branch 'origin/master' into nbebic/GR-32682/ope…
profMagija Nov 16, 2022
94d3ca9
Merge remote-tracking branch 'origin/master' into nbebic/GR-32682/ope…
profMagija Nov 17, 2022
6bf1e90
[wip] do the split thing
profMagija Nov 17, 2022
69d1c39
asdf
profMagija Nov 17, 2022
c6ba6d9
[wip] changes
profMagija Nov 21, 2022
2aa3abe
[wip] separate instrs and normalize stats
profMagija Nov 21, 2022
5c05a4f
[wip]
profMagija Nov 22, 2022
953c15c
[wip] Fix parsing proxied descriptions
profMagija Nov 23, 2022
6aa6937
[wip] Fix some issues
profMagija Nov 23, 2022
5659313
[wip] stuff
profMagija Nov 23, 2022
bd7999d
[wip] Instrumentation
profMagija Nov 24, 2022
13ecfb9
[wip] fixes
profMagija Nov 24, 2022
95fd8b1
[wip] new parser & generator
profMagija Dec 20, 2022
3ddd9b6
[wip] remove old generator
profMagija Dec 20, 2022
3b45243
[wip] more generator
profMagija Dec 20, 2022
9736b33
[wip] fixes to new generator
profMagija Dec 21, 2022
b8a7fc3
[wip] exceptions
profMagija Dec 23, 2022
c0ece2c
[wip] Source sections
profMagija Dec 26, 2022
71cd73b
[wip] Boxing Elimination except locals
profMagija Dec 27, 2022
e731d73
[wip] Local boxing elimination
profMagija Dec 28, 2022
ba6e1df
Make checkstyle checks less strict for Truffle.
chumer Aug 8, 2022
741c028
Ensure unsafe accesses are tried to be transformed to loads/stores be…
chumer Dec 4, 2022
99478ae
Implemented node object inlining and other features for Truffle DSL.
chumer Dec 5, 2022
671a9c8
Refactor TruffleString for node object inlining.
chumer Nov 19, 2022
069fda6
Disable selected DSL warnings for Sulong. (GR-42838)
chumer Dec 3, 2022
bc9a5ca
Disable selected DSL warnings for TRegex (GR-42839)
chumer Dec 3, 2022
ea0d1da
Disable selected DSL warnings in NFI (GR-42818)
chumer Dec 5, 2022
a173e7e
Fix DSL warnings for wasm.
chumer Dec 3, 2022
eac39a1
Improve changelog entry.
chumer Dec 5, 2022
45cccdb
Improve documentation.
chumer Dec 5, 2022
a8e6fe3
Fix project canonicalization.
chumer Dec 5, 2022
06caf79
Fix deprecation warning.
chumer Dec 5, 2022
da1e320
Fix formatting.
chumer Dec 5, 2022
cd4c209
TruffleStrings: remove redundant node annotations
djoooooe Dec 6, 2022
4420528
Fix -Atruffle.dsl.GenerateSlowPathOnly=true.
chumer Dec 6, 2022
4da0877
Fix -Atruffle.dsl.StateBitWidth=1.
chumer Dec 6, 2022
29714dc
TruffleStrings: remove unused code
djoooooe Dec 6, 2022
5a2dc7d
Fix import.
chumer Dec 6, 2022
ab6d111
Remove DSL workaround.
chumer Dec 6, 2022
2492a52
Fix host interop test that fails differently JDT vs javac. (GR-42882)
chumer Dec 6, 2022
753f172
Findbugs fixes.
chumer Dec 6, 2022
455e28f
Fix spotbugs problems.
chumer Dec 7, 2022
51c0985
Remove commented code.
chumer Dec 7, 2022
35ab243
Add error for libraries that do not use @Bind("$node"). Add some more…
chumer Dec 7, 2022
1e36f26
Improve documentation.
chumer Dec 7, 2022
23af9d9
Fix node object descriptor can use inlined profiles.
chumer Dec 7, 2022
14d9324
Fix guard expressions must not be folded on the fast-path if they rea…
chumer Dec 8, 2022
34fa788
Fix invalid test modification.
chumer Dec 8, 2022
d2b2164
Improve validation of specializations that use cached inlined nodes.
chumer Dec 8, 2022
70cd994
Remove debug output.
chumer Dec 12, 2022
7718059
Add @NeverDefault to create methods of nodes of TruffleString.
chumer Dec 12, 2022
b126025
ECJ warning fix.
chumer Dec 12, 2022
010c38a
Fix user defined static create method should not imply never-default.
chumer Dec 12, 2022
f210342
Fix invalid estimated size for char primitive types.
chumer Dec 12, 2022
8b7018e
Fix signatures.
chumer Dec 12, 2022
7abd6bb
Fix unit test failures with state bit width set to one.
chumer Dec 12, 2022
505eacb
Fix recursion error.
chumer Dec 12, 2022
55d9afd
Show inclusive ranges instead of exclusive ranges in state javadoc.
chumer Dec 12, 2022
18e7e16
Fix cache class was not passed for boundary extraction.
chumer Dec 12, 2022
efd2b96
Fix warnings.
chumer Dec 12, 2022
fecab7e
Fix compile error when cache wrappers were used in fallback guards.
chumer Dec 13, 2022
5fea604
Fix enum encoding should not imply never default, but instead just no…
chumer Dec 13, 2022
145a7ec
Fix gate problems.
chumer Dec 13, 2022
de61f2a
Fix thread-safety for replaces of specializations from different stat…
chumer Dec 14, 2022
4b28e33
Fix always use blocks for prepareForAOT().
chumer Dec 14, 2022
b2a1073
Ignore more warnings in Sulong.
chumer Dec 14, 2022
477ee66
Fix missing never default in wasm.
chumer Dec 15, 2022
f8f0a53
Fix migrate profile in nfi.
chumer Dec 15, 2022
0bf817b
Fix use accessor to inline to host node.
chumer Dec 15, 2022
570216b
Fix non-determinism in code generation.
chumer Dec 15, 2022
5f51eff
Fix warning in MemoryDump class.
chumer Dec 15, 2022
0c4a1db
Fix import.
chumer Dec 15, 2022
83bf2ee
Fix unused implicit casts should not be loaded on the slow-path and a…
chumer Dec 15, 2022
37655bd
Fix aot helper in sulong.
chumer Dec 15, 2022
2fe5e76
Fix compilation error.
chumer Dec 16, 2022
e1f9ba1
Fix sulong copyrights.
chumer Dec 16, 2022
59536d3
Fix warning in runner.
chumer Dec 16, 2022
013970d
Fix parallel node tests should not trigger compilation.
chumer Dec 16, 2022
ac5aab3
Fix decoding of inlined parent lookups is broken.
chumer Dec 16, 2022
fcd10e9
Fix no need to run state bit width tests with 64 bits anymore.
chumer Dec 16, 2022
b6f066f
Fix typo.
chumer Dec 16, 2022
d6f7c1d
Remove strict compliance from regex downstream gate.
chumer Dec 16, 2022
f920bbb
Ignore and fix some warnings for Espresso. (GR-43114)
chumer Dec 16, 2022
cdad065
Fix license headers in Espresso.
chumer Jan 3, 2023
c44bef7
Improve SpecializationInfo.toString().
chumer Jan 3, 2023
cc2c461
Register unsafe fields as unsafe accessed.
chumer Jan 3, 2023
8f223db
Improve generated code by using Objects.requireNonNull for reference …
chumer Jan 3, 2023
1d88753
Fix Espresso warnings.
chumer Jan 3, 2023
c278781
Simplify code layout for optional casts.
chumer Jan 3, 2023
fa5459e
Fix missing guard in TruffleString.parseLong.
chumer Jan 4, 2023
b8d7260
Slightly bump Truffle required runtime compiled methods due to Truffl…
chumer Jan 4, 2023
7f66e4a
Fix state active bit might not be set in introspection data.
chumer Jan 4, 2023
6b2915d
Better error handling if introspection data is invalid.
chumer Jan 4, 2023
818d949
Move unsafe canoncialization into SimplifyingGraphDecoder.
chumer Jan 4, 2023
613899d
Mark unsafe accessed fields for easier obfuscator detection.
chumer Jan 4, 2023
5b177e7
Avoid passing null to uncached nodes in TruffleString.
chumer Jan 4, 2023
91cde67
Add no warning as error to the regex down stream gate.
chumer Jan 5, 2023
0429558
Update overlay
chumer Jan 5, 2023
673e78a
Fix always pass down -ea for tck runs.
chumer Jan 5, 2023
2087a0c
Fix race condition in fallback guards with caches; Force specializati…
chumer Jan 5, 2023
03c3790
Better debug output for errors.
chumer Jan 5, 2023
14aaf2e
Fix active check; Add fallback test.
chumer Jan 6, 2023
dd9984f
Fix import.
chumer Jan 6, 2023
798c7b6
Fix fallback test.
chumer Jan 6, 2023
35a7c93
More consistent naming in InlineSupport.
chumer Jan 6, 2023
b8af0c2
Update ci-overlay.
chumer Jan 6, 2023
1802bd2
Fix reviewer comment.
chumer Jan 6, 2023
3ed9436
Fix reviewer comment.
chumer Jan 6, 2023
a3ddff9
Fix typo in changelog.
chumer Jan 6, 2023
c7d8689
Strengthen checks for UnsafeField.
chumer Jan 6, 2023
b184789
Add storeStore fences for cache initializers if there is no specializ…
chumer Jan 6, 2023
630d390
Clear all caches and specialization classes when replaced.
chumer Jan 6, 2023
da608fd
Update overlay.
chumer Jan 6, 2023
4ac9f62
Revert "Fix always pass down -ea for tck runs."
chumer Jan 8, 2023
ad0541c
[wip] Fixing BE & scope checking
profMagija Jan 9, 2023
c48e0ad
Fix missing license header.
chumer Jan 9, 2023
912e1ca
Fix formatting.
chumer Jan 9, 2023
80e3fec
[wip] Fix typo
profMagija Jan 10, 2023
08ce2e8
Merge branch 'origin/nbebic/GR-32682/operations_dsl' into nbebic/GR-3…
profMagija Jan 10, 2023
fc52995
Add Operation DSL documentation
profMagija Jan 11, 2023
efb4f74
Merge remote-tracking branch 'origin/chumer/GR-31342/dsl-object-inlin…
profMagija Jan 12, 2023
0e471a6
FIx after-merge errors
profMagija Jan 12, 2023
4b62994
Merge remote-tracking branch 'origin/chumer/GR-31342/dsl-object-inlin…
profMagija Jan 12, 2023
8c7c1d1
Fix merge errors again
profMagija Jan 12, 2023
e2c11c9
More merge fixes
profMagija Jan 12, 2023
1793715
Merge remote-tracking branch 'origin/master' into nbebic/GR-32682/ope…
profMagija Jan 13, 2023
a43a227
Merge remote-tracking branch 'origin/master' into nbebic/GR-32682/ope…
profMagija Jan 13, 2023
ca7a8dd
Fixes to generator
profMagija Jan 16, 2023
34d57fa
Fix leaf operations that have LocalSetters
profMagija Jan 17, 2023
107a247
Implement tracing collection
profMagija Jan 18, 2023
d2ef780
Implement FinallyTry
profMagija Jan 19, 2023
2c04612
Document decisions and tracing
profMagija Jan 19, 2023
43dcdcb
Document exception handling operations
profMagija Jan 19, 2023
4632ed0
Write desugaring example
profMagija Jan 19, 2023
e335298
Reading of decisions
profMagija Jan 19, 2023
5036829
Implement serialization.
chumer Jan 19, 2023
e8695ff
Fix bitmask issue
profMagija Jan 20, 2023
40f6671
Merge branch 'origin/nbebic/GR-32682/operations_dsl' into nbebic/GR-3…
profMagija Jan 20, 2023
a337144
Fix bug in decision deserialization, add required fields
profMagija Jan 20, 2023
5e572c5
Fix missing check for builder usage.
chumer Jan 20, 2023
66aceda
Decision parsing and boxing elimination
profMagija Jan 20, 2023
86e9c33
Fix LocalSetters in uncached
profMagija Jan 20, 2023
0a80600
Merge branch 'origin/nbebic/GR-32682/operations_dsl' into nbebic/GR-3…
profMagija Jan 20, 2023
adeec98
Add test for LocalSetterRange and fix serialization
profMagija Jan 20, 2023
0d7e46e
Implement quickening tracing
profMagija Jan 20, 2023
8a94b13
Implement yield
profMagija Jan 20, 2023
cedb066
Implement stack cleanup
profMagija Jan 20, 2023
417cdf3
Remove metadata key.
chumer Jan 20, 2023
d245101
Add object size estimate class.
chumer Jan 20, 2023
4efe401
Implement new variadic layout.
chumer Jan 21, 2023
9e4a76a
Add a few tests, fix a few bugs
profMagija Jan 23, 2023
2c57e16
Add decision tests
profMagija Jan 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
692 changes: 692 additions & 0 deletions truffle/docs/OperationDSL.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion truffle/mx.truffle/mx_truffle.py
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ def create_dsl_parser(args=None, out=None):

def create_sl_parser(args=None, out=None):
"""create the SimpleLanguage parser using antlr"""
create_parser("com.oracle.truffle.sl", "com.oracle.truffle.sl.parser", "SimpleLanguage", COPYRIGHT_HEADER_UPL, args, out)
create_parser("com.oracle.truffle.sl", "com.oracle.truffle.sl.parser", "SimpleLanguageOperations", COPYRIGHT_HEADER_UPL, ['-visitor'] + args, out)

def create_parser(grammar_project, grammar_package, grammar_name, copyright_template, args=None, out=None, postprocess=None):
"""create the DSL expression parser using antlr"""
Expand Down
45 changes: 43 additions & 2 deletions truffle/mx.truffle/suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@
"sdk:GRAAL_SDK",
"com.oracle.truffle.api.instrumentation",
"com.oracle.truffle.api.exception",
"com.oracle.truffle.api.operation",
],
"requires" : [
"java.logging",
Expand Down Expand Up @@ -344,6 +345,42 @@
"javaCompliance" : "11+",
"workingSets" : "API,Truffle",
},

"com.oracle.truffle.api.operation" : {
"subDir" : "src",
"sourceDirs" : ["src"],
"dependencies" : [
"com.oracle.truffle.api",
"com.oracle.truffle.api.library",
"com.oracle.truffle.api.interop",
"com.oracle.truffle.api.exception",
"com.oracle.truffle.api.instrumentation",
"TruffleJSON",
],
"requires" : [
"jdk.unsupported", # sun.misc.Unsafe
],
"checkstyle" : "com.oracle.truffle.api",
"annotationProcessors" : ["TRUFFLE_DSL_PROCESSOR"],
"javaCompliance" : "11+",
"workingSets" : "API,Truffle",
},

"com.oracle.truffle.api.operation.test" : {
"subDir" : "src",
"sourceDirs" : ["src"],
"dependencies" : [
"TRUFFLE_API",
"mx:JUNIT",
"mx:JMH_1_21",
],
"checkstyle" : "com.oracle.truffle.dsl.processor",
"javaCompliance" : "11+",
"annotationProcessors" : ["mx:JMH_1_21", "TRUFFLE_DSL_PROCESSOR"],
"workingSets" : "API,Truffle,Codegen,Test",
"testProject" : True,
"jacoco" : "exclude",
},

"com.oracle.truffle.api.dsl" : {
"subDir" : "src",
Expand Down Expand Up @@ -412,7 +449,8 @@
"subDir" : "src",
"sourceDirs" : ["src"],
"dependencies" : [
"truffle:ANTLR4"
"truffle:ANTLR4",
"TruffleJSON",
],
"requires" : [
"java.compiler",
Expand Down Expand Up @@ -1058,7 +1096,7 @@
"jdk.unsupported", # sun.misc.Unsafe
"java.logging",
"java.management",
"java.sql" # java.sql.date java.sql.Time
"java.sql", # java.sql.date java.sql.Time
],
"exports" : [
# Qualified exports
Expand Down Expand Up @@ -1091,6 +1129,7 @@
"com.oracle.truffle.api",
"com.oracle.truffle.api.instrumentation",
"com.oracle.truffle.api.dsl",
"com.oracle.truffle.api.operation",
"com.oracle.truffle.api.profiles",
"com.oracle.truffle.api.interop",
"com.oracle.truffle.api.exception",
Expand All @@ -1110,6 +1149,7 @@
"dependencies" : [
"com.oracle.truffle.api",
"com.oracle.truffle.api.exception",
"com.oracle.truffle.api.operation",
"com.oracle.truffle.api.dsl",
"com.oracle.truffle.api.profiles",
"com.oracle.truffle.api.debug",
Expand Down Expand Up @@ -1393,6 +1433,7 @@
"com.oracle.truffle.api.instrumentation.test",
"com.oracle.truffle.api.debug.test",
"com.oracle.truffle.api.strings.test",
"com.oracle.truffle.api.operation.test",
"com.oracle.truffle.object.basic.test",
"com.oracle.truffle.nfi.test",
"com.oracle.truffle.api.staticobject.test",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
import com.oracle.truffle.api.dsl.NodeChild;
import com.oracle.truffle.api.dsl.NodeChildren;
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.dsl.TypeSystem;
import com.oracle.truffle.api.dsl.TypeSystemReference;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.UnexpectedResultException;
Expand Down Expand Up @@ -81,6 +83,17 @@ public String executeString(VirtualFrame frame) {
}
}

public static class ChildExecutionChildNodeWithError extends Node {

public int executeInt(VirtualFrame frame) throws UnexpectedResultException {
throw new UnexpectedResultException(null);
}

public Object executeObject(VirtualFrame frame) {
return 0;
}
}

@ExpectError("Child execution method: String ChildExecutionChildNode2::executeString(VirtualFrame) called from method: boolean TestNode2::executeBool(boolean) requires a frame parameter.")
@NodeChildren({
@NodeChild(value = "first", type = ChildExecutionChildNode2.class),
Expand Down Expand Up @@ -131,4 +144,28 @@ protected boolean doIt(String a, String b) {
return a.isEmpty() && b.isEmpty();
}
}

@TypeSystem({int.class})
public static class ChildTestTypeSystem {
}

@NodeChildren({
@NodeChild(value = "first", type = ChildExecutionChildNodeWithError.class),
@NodeChild(value = "second", type = ChildExecutionChildNode2.class)
})
@TypeSystemReference(ChildTestTypeSystem.class)
public abstract static class TestNode4 extends Node {

public abstract Object execute(VirtualFrame frame);

@Specialization
protected boolean doItPrim(int a, String b) {
return true;
}

@Specialization
protected boolean doIt(String a, String b) {
return true;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@

import org.junit.Test;

import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.ImplicitCast;
import com.oracle.truffle.api.dsl.NodeChild;
import com.oracle.truffle.api.dsl.NodeChildren;
import com.oracle.truffle.api.dsl.Specialization;
Expand Down Expand Up @@ -269,7 +271,11 @@ public int executeInt() throws UnexpectedResultException {

@TypeSystem
static class TypeBoxingTypeSystem {

@ImplicitCast
@TruffleBoundary
public static int castInt(byte b) {
return b;
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
* Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* The Universal Permissive License (UPL), Version 1.0
*
* Subject to the condition set forth below, permission is hereby granted to any
* person obtaining a copy of this software, associated documentation and/or
* data (collectively the "Software"), free of charge and under any and all
* copyright rights in the Software, and any and all patent rights owned or
* freely licensable by each licensor hereunder covering either (i) the
* unmodified Software as contributed to or provided by such licensor, or (ii)
* the Larger Works (as defined below), to deal in both
*
* (a) the Software, and
*
* (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
* one is included with the Software each a "Larger Work" to which the Software
* is contributed by such licensors),
*
* without restriction, including without limitation the rights to copy, create
* derivative works of, display, perform, and distribute the Software and make,
* use, sell, offer for sale, import, export, have made, and have sold the
* Software and the Larger Work(s), and to sublicense the foregoing rights on
* either these or other terms.
*
* This license is subject to the following condition:
*
* The above copyright notice and either this complete permission notice or at a
* minimum a reference to the UPL must be included in all copies or substantial
* portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.oracle.truffle.api.dsl;

import com.oracle.truffle.api.nodes.ControlFlowException;

//TODO delete
public final class BoundaryCallFailedException extends ControlFlowException {
private static final long serialVersionUID = 4967477438708874100L;

public static final BoundaryCallFailedException INSTANCE = new BoundaryCallFailedException();

private BoundaryCallFailedException() {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public interface ExecuteTracingSupport {
/**
* Invoked by the generated code to determine whether tracing is enabled. If tracing is
* disabled, no other methods in this interface will be invoked.
*
*
* @return {@code true} if tracing is enabled
* @since 21.3
*/
Expand All @@ -73,7 +73,7 @@ public interface ExecuteTracingSupport {
* Invoked by the generated {@code execute} methods before any {@link Specialization} is called,
* but after all {@link NodeChildren} are evaluated. Called only if {@link #isTracingEnabled()}
* returns {@code true}.
*
*
* @param arguments the arguments of the specialization except the frame, if any
* @since 21.3
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.oracle.truffle.api.operation.test;

public @interface ExpectError {
public String[] value() default {};
}
Loading