-
Notifications
You must be signed in to change notification settings - Fork 122
Allocate just one ClosureTable entry per self-send
#2663
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
65 commits
Select commit
Hold shift + click to select a range
643a4d6
a bit of nix gardening
ggreif 8bec1ca
simplify nix/xargo.nix
ggreif 8967dc1
first draft of a oneshot_ping testcase
ggreif 2d1e626
reproduce the callback table growth
ggreif c2dc791
smething more interesting
ggreif b700116
add the ok/ files
ggreif a59ebd0
patch this based on the raw log
ggreif e94aa7a
this too
ggreif 0ef6f23
use compile_exp_vanilla where possible
ggreif da004b9
Merge remote-tracking branch 'origin/master' into gabor/cleanup
ggreif aa03c04
install cleanup_callback to be called when either reply or reject traps
ggreif 6504a1e
add makefile helper to only run a single test
ggreif 7396ab4
register cleanup for async sends
ggreif 06394cb
fix
ggreif 00e25cb
WIP: checkpoint
ggreif 42cfa93
WIP: prototype quick'n'dirty way of plugging the second ClosureTable …
ggreif aee0943
exercise the reject path
ggreif 97315b4
beef-up the testcase
ggreif 804964d
WIP: don't serialise at all when self-sending
ggreif dfc02fa
WIP: transition to a single closure table index scheme
ggreif dfc3f87
clean up and fmt
ggreif 6368748
another cleanup
ggreif 70444fe
more cleanup
ggreif 7a555a5
fmt
ggreif f9bca48
undo the butcher job I inflicted on poor @reject_callback
ggreif f9d7839
update test to reflect the low number of allocated slots
ggreif d921c44
Merge branch 'master' into gabor/cleanup
ggreif ef92fa5
diversify this test
ggreif 4e33e5d
Merge branch 'master' into gabor/cleanup
ggreif 7d26efe
eliminate the indirection
ggreif 7d52193
update this one too
ggreif 90e4754
cleanups
ggreif 22f4740
tweak
ggreif 7128720
type inference is good enough now
ggreif bc7c86b
Merge branch 'master' into gabor/cleanup
ggreif d96bc2f
clean up this test a bit
ggreif f07b9b0
re-add the `add_cycles` functionality to self-calls
ggreif c04cc9e
Merge branch 'master' into gabor/cleanup
ggreif 5a209be
Revert "add makefile helper to only run a single test"
ggreif 3d3449d
Revert "simplify nix/xargo.nix"
ggreif 38db666
Revert "a bit of nix gardening"
ggreif 5b76ab1
remove _faulting_callback
ggreif ca54510
comment on the future_array_index invariant
ggreif 39a4a6d
note fixed issue in changelog
ggreif 90e9d33
Merge branch 'master' into gabor/cleanup
ggreif 1ab060f
Update Changelog.md
ggreif 5c46dc0
Update test/run-drun/oneshot-callbacks.mo
ggreif 7c300d4
Update src/codegen/compile.ml
ggreif 4cd1852
Update test/run-drun/oneshot-callbacks.mo
ggreif 93342e2
Merge branch 'master' into gabor/cleanup
ggreif cdf94f6
add a recursive invocation test with futures
ggreif 0fb93b4
make the test more interesting
ggreif 3d6323b
update test output
ggreif 40a6d15
WIP: factor out stash_closures
ggreif 9adabc1
break out stash_closures_pushing_callbacks
ggreif 8b8660b
WIP: partial application, less of a cool trick
ggreif 1b17d1d
WIP: break out `message_reject_callback`
ggreif 3c1fee0
clean up
ggreif 8f48924
WIP: sync
ggreif 251207f
move stuff back into `closures_to_reply_reject_callbacks`
ggreif cf91635
tidy up the comments
ggreif 27ab45a
WIP: factor out `ic_call_threaded`
ggreif 34a2c7a
tweak the comments and clean up
ggreif dacf7cc
reindent
ggreif 418dced
Merge branch 'master' into gabor/cleanup
ggreif File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| ingress Completed: Reply: 0x4449444c016c01b3c4b1f204680100010a00000000000000000101 | ||
| ingress Completed: Reply: 0x4449444c0000 | ||
| debug.print: drill! 42 0 | ||
| debug.print: drill! 41 2 | ||
| debug.print: drill! 40 4 | ||
| debug.print: drill! 39 6 | ||
| debug.print: drill! 38 8 | ||
| debug.print: drill! 37 10 | ||
| debug.print: drill! 36 12 | ||
| debug.print: drill! 35 14 | ||
| debug.print: drill! 34 16 | ||
| debug.print: drill! 33 18 | ||
| debug.print: drill! 32 20 | ||
| debug.print: drill! 31 22 | ||
| debug.print: drill! 30 24 | ||
| debug.print: drill! 29 26 | ||
| debug.print: drill! 28 28 | ||
| debug.print: drill! 27 30 | ||
| debug.print: drill! 26 32 | ||
| debug.print: drill! 25 34 | ||
| debug.print: drill! 24 36 | ||
| debug.print: drill! 23 38 | ||
| debug.print: drill! 22 40 | ||
| debug.print: drill! 21 42 | ||
| debug.print: drill! 20 44 | ||
| debug.print: drill! 19 46 | ||
| debug.print: drill! 18 48 | ||
| debug.print: drill! 17 50 | ||
| debug.print: drill! 16 52 | ||
| debug.print: drill! 15 54 | ||
| debug.print: drill! 14 56 | ||
| debug.print: drill! 13 58 | ||
| debug.print: drill! 12 60 | ||
| debug.print: drill! 11 62 | ||
| debug.print: drill! 10 64 | ||
| debug.print: drill! 9 66 | ||
| debug.print: drill! 8 68 | ||
| debug.print: drill! 7 70 | ||
| debug.print: drill! 6 72 | ||
| debug.print: drill! 5 74 | ||
| debug.print: drill! 4 76 | ||
| debug.print: drill! 3 78 | ||
| debug.print: drill! 2 80 | ||
| debug.print: drill! 1 82 | ||
| debug.print: drill! 0 84 | ||
| ingress Completed: Reply: 0x4449444c0000 | ||
| debug.print: go 0: 0 | ||
| debug.print: ping! 1 | ||
| debug.print: go 1: 1 | ||
| debug.print: ping-async! 1 | ||
| debug.print: go 2: 1 | ||
| ingress Err: IC0502: Canister rwlgt-iiaaa-aaaaa-aaaaa-cai trapped: integer division by 0 | ||
| debug.print: go 0: 0 | ||
| debug.print: ping! 1 | ||
| debug.print: go 1: 1 | ||
| debug.print: ping-async! 1 | ||
| debug.print: go 2: 1 | ||
| ingress Completed: Reply: 0x4449444c0000 | ||
| debug.print: go 0: 0 | ||
| debug.print: ping! 1 | ||
| debug.print: go 1: 1 | ||
| debug.print: ping-async! 1 | ||
| debug.print: go 2: 1 | ||
| ingress Err: IC0502: Canister rwlgt-iiaaa-aaaaa-aaaaa-cai trapped: integer division by 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,70 @@ | ||
| → update create_canister(record {dnczaeh = null}) | ||
| ← replied: (record {hymijyo = principal "cvccv-qqaaq-aaaaa-aaaaa-c"}) | ||
| → update install_code(record {arg = blob ""; kca_xin = blob "\00asm\01\00\00\00\0… | ||
| ← replied: () | ||
| → update drill((42 : nat8)) | ||
| debug.print: drill! 42 0 | ||
| debug.print: drill! 41 2 | ||
| debug.print: drill! 40 4 | ||
| debug.print: drill! 39 6 | ||
| debug.print: drill! 38 8 | ||
| debug.print: drill! 37 10 | ||
| debug.print: drill! 36 12 | ||
| debug.print: drill! 35 14 | ||
| debug.print: drill! 34 16 | ||
| debug.print: drill! 33 18 | ||
| debug.print: drill! 32 20 | ||
| debug.print: drill! 31 22 | ||
| debug.print: drill! 30 24 | ||
| debug.print: drill! 29 26 | ||
| debug.print: drill! 28 28 | ||
| debug.print: drill! 27 30 | ||
| debug.print: drill! 26 32 | ||
| debug.print: drill! 25 34 | ||
| debug.print: drill! 24 36 | ||
| debug.print: drill! 23 38 | ||
| debug.print: drill! 22 40 | ||
| debug.print: drill! 21 42 | ||
| debug.print: drill! 20 44 | ||
| debug.print: drill! 19 46 | ||
| debug.print: drill! 18 48 | ||
| debug.print: drill! 17 50 | ||
| debug.print: drill! 16 52 | ||
| debug.print: drill! 15 54 | ||
| debug.print: drill! 14 56 | ||
| debug.print: drill! 13 58 | ||
| debug.print: drill! 12 60 | ||
| debug.print: drill! 11 62 | ||
| debug.print: drill! 10 64 | ||
| debug.print: drill! 9 66 | ||
| debug.print: drill! 8 68 | ||
| debug.print: drill! 7 70 | ||
| debug.print: drill! 6 72 | ||
| debug.print: drill! 5 74 | ||
| debug.print: drill! 4 76 | ||
| debug.print: drill! 3 78 | ||
| debug.print: drill! 2 80 | ||
| debug.print: drill! 1 82 | ||
| debug.print: drill! 0 84 | ||
| ← replied: () | ||
| → update go(true) | ||
| debug.print: go 0: 0 | ||
| debug.print: ping! 1 | ||
| debug.print: go 1: 1 | ||
| debug.print: ping-async! 1 | ||
| debug.print: go 2: 1 | ||
| ← rejected (RC_CANISTER_ERROR): canister did not respond | ||
| → update go(false) | ||
| debug.print: go 0: 0 | ||
| debug.print: ping! 1 | ||
| debug.print: go 1: 1 | ||
| debug.print: ping-async! 1 | ||
| debug.print: go 2: 1 | ||
| ← replied: () | ||
| → update go(true) | ||
| debug.print: go 0: 0 | ||
| debug.print: ping! 1 | ||
| debug.print: go 1: 1 | ||
| debug.print: ping-async! 1 | ||
| debug.print: go 2: 1 | ||
| ← rejected (RC_CANISTER_ERROR): canister did not respond |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.