Skip to content
Open

Test #118

Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
206 commits
Select commit Hold shift + click to select a range
ae05312
First draft of Even-Shiloach trees
l4haie Oct 6, 2024
d0e6fd0
Remove unused tagging
l4haie Oct 6, 2024
98fdfbe
Fixed edge addition for Even-Shiloach trees
l4haie Oct 11, 2024
feaa5cf
ES: Add bucket implementation of the pqueue
l4haie Oct 13, 2024
50cd188
ES: Added a write barrier
l4haie Oct 15, 2024
f824b30
Add ref count GC to EST RVM
l4haie Nov 5, 2024
c5e2107
ES: Fixed write barrier and added some tests
l4haie Nov 6, 2024
67952b5
ES: partially working GC
l4haie Nov 25, 2024
711b9a6
ES: small optimizations to edge removal
l4haie Nov 25, 2024
75d8b2a
ES: optimize bulk pop
l4haie Nov 25, 2024
381f217
ES: optimize stack deallocation
l4haie Nov 26, 2024
1e3be60
ES: add preprocessor instruction for ref count
l4haie Nov 26, 2024
00b9c4a
ES: avoid redundant co-friends
l4haie Nov 27, 2024
7b7949d
ES: doubly linked list priority queue and minor bugs
l4haie Nov 28, 2024
482bc8e
Fixed ref count, mark-sweep GC used only for cycles now
l4haie Nov 29, 2024
0e93dad
ES: WIP
l4haie Dec 1, 2024
cfdfd33
ES: remove is_cofriend check
l4haie Dec 2, 2024
777f31f
ES: fixed set_parent and cyclic co-friends
l4haie Dec 2, 2024
acce4bc
ES: fixed continuation rib deallocation
l4haie Dec 3, 2024
a6b45d0
ES: small modifications
l4haie Dec 4, 2024
a4e39b0
ES: fixed rank update after init phase
l4haie Dec 8, 2024
ac34ff0
ES: removed temp variable for newly allocated rib
l4haie Dec 8, 2024
6e41bf1
ES: removed some unnecessary rank updates
l4haie Dec 8, 2024
4d93743
ES: removed duplicate code
l4haie Dec 8, 2024
7bb07f9
ES: small optimizations for pop
l4haie Dec 9, 2024
5d6bbd9
ES: Fixed some bugs
l4haie Dec 18, 2024
9378208
ES: Minor bugs and count uncollected ribs
l4haie Dec 19, 2024
deea120
ES: Remove compiler warnings
l4haie Dec 20, 2024
ba30e67
ES: Fixed parent updates when setting program counter
l4haie Dec 27, 2024
89231b0
ES: Fixed rib deallocation
l4haie Dec 27, 2024
e98a402
Fix bug where multiple field pointed to the same rib in add_cofriend
leo-ard Jan 6, 2025
aaea244
ES: Always remove before writing and fixed remove_cofriends
l4haie Jan 7, 2025
e742658
ES: Remove parent only if there's only one ref to its child in remove…
l4haie Jan 7, 2025
dab60fa
ES: Fixed the track reference vs track referrers problem (hopefully)
l4haie Jan 7, 2025
7e86596
ES: Removed some unnecessary remove_ref calls
l4haie Jan 8, 2025
45e7573
ES: Fixed unnecessary remove_edge calls for null_rib
l4haie Jan 8, 2025
e3e8610
ES: add original encoding and clear deallocated ribs without viz
l4haie Jan 9, 2025
29f4c99
ES: add some TODOs
l4haie Jan 9, 2025
e920b04
ES: remove circularity check for mirror field
l4haie Jan 11, 2025
c1fc39f
ES: update ranks whenever there's a mutation
l4haie Jan 11, 2025
be6bb12
ES: only update rank when parent's rank was updated
l4haie Jan 11, 2025
3053a8a
ES: adapt r4rs io primitives
l4haie Jan 11, 2025
a09020f
ES: update rank only if parent's rank was updated
l4haie Jan 12, 2025
151f0c5
ES: Cleanup
l4haie Jan 12, 2025
f91e9cf
ES: typo in prim-io
l4haie Jan 13, 2025
cd991c2
ES: remove add_cofriend (add by rank version)
l4haie Jan 16, 2025
5882532
ES: Fixed rank update
l4haie Jan 16, 2025
9d37f51
ES: Trigger a drop phase when modifying a root
l4haie Jan 16, 2025
aaa511d
ES: Fixed root update
l4haie Jan 16, 2025
d5d77f4
ES: Add cleanup_cofriends procedure
l4haie Jan 16, 2025
2886616
ES: Trigger a drop phase when removing a root 2
l4haie Jan 16, 2025
87e0945
ES: Remove unused tests
l4haie Jan 16, 2025
be8c856
ES: Cleanup a bit
l4haie Jan 17, 2025
0c173b5
ES: Fixed bug caused by init_global
l4haie Jan 17, 2025
12e6f3e
ES: Fixed uncollected ribs pointing to a root
l4haie Jan 17, 2025
5bc4f03
ES: Adapt apply primitive to ES garbage collector
l4haie Jan 18, 2025
d03a5d1
ES: Fixed apply primitive
l4haie Jan 18, 2025
cbf7074
ES: update TODO
l4haie Jan 19, 2025
6b5ba47
ES: Remove remove_stack
l4haie Jan 20, 2025
eafa388
ES: Add potential bug to TODO
l4haie Jan 20, 2025
a07db33
ES: Fixed io and apply primitives
l4haie Jan 20, 2025
2011bfe
ES: No rank updates, spanning tree doesn't need to be minimal
l4haie Jan 20, 2025
b4793ee
ES: Don't drop the subgraph rooted at the symbol table
l4haie Jan 20, 2025
1f2c4ec
ES: Use the same field for the queue and priority queue
l4haie Jan 21, 2025
dd965a8
ES: Avoid drop phase when pushing to the stack
l4haie Jan 21, 2025
8953acf
ES: Only clear a rib's fields during allocation, not deallocation
l4haie Jan 22, 2025
91dd305
ES: remove some TODOs
l4haie Jan 22, 2025
f1cf927
ES: Remove call to remove_edge in dealloc_rib
l4haie Jan 24, 2025
4697921
Add locations to es.c to be compatible with the time library
leo-ard Jan 23, 2025
3c52901
ES: Remove call to remove_edge in dealloc_rib
l4haie Jan 24, 2025
9f588d9
ES: Small fix
l4haie Jan 24, 2025
ec4e479
ES: Fix typos
l4haie Jan 24, 2025
303f079
ES: Don't remove co-friend in dealloc_rib if not a co-friend
l4haie Jan 24, 2025
9564c12
ES: Garbage collect the world! Fixed last bug from the ribbit/r4rs tests
l4haie Jan 24, 2025
fda8f1b
ES: New data structures for anchors/catchers
l4haie Jan 25, 2025
f64b9a1
Add better test for es host
leo-ard Jan 24, 2025
ebbf380
Add sample test
leo-ard Jan 24, 2025
7f4a4a4
Add c/gc/es
leo-ard Jan 24, 2025
ede96c7
fix big ranks
leo-ard Jan 27, 2025
8c63dcf
ES: Add unsafe feature to test optimizations
l4haie Jan 27, 2025
08ac673
ES: Adopt when it matters and don't set the rank of pc or stack to 0
l4haie Jan 30, 2025
b19b5c7
ES: Add remove_node to GC time
l4haie Jan 30, 2025
181b0e8
ES: Fix small bug
l4haie Jan 30, 2025
6e9f5bc
ES: Adopt pc
l4haie Jan 30, 2025
0d9c765
ES: Generalized adoption and passive roots
l4haie Jan 31, 2025
91c6573
ES: Optimize push2 and get_mirror_field
l4haie Feb 3, 2025
e847fe6
Add varients for ci
leo-ard Jan 27, 2025
35f1ecc
Add fuzzing
leo-ard Jan 30, 2025
3dab4e2
update fuzzing
leo-ard Jan 31, 2025
899666f
add another root (#t)
leo-ard Jan 31, 2025
e30a32d
update fuzz.sh
leo-ard Jan 31, 2025
fbcb760
Improving fuzz script
leo-ard Feb 1, 2025
970571e
Randomize number of roots
leo-ard Feb 1, 2025
b160598
Change timeout to 3 minutes
leo-ard Feb 1, 2025
323cd9b
Modify Makefile
leo-ard Feb 1, 2025
010858e
Parallel fuzzing
leo-ard Feb 1, 2025
38dd697
Fix bug with fuzzing and choose better defaults
leo-ard Feb 1, 2025
9e0db82
ES: Don't update rank after adoption
l4haie Feb 4, 2025
b4009ed
ES: Don't force parent-child relationship when pushing on the stack
l4haie Feb 4, 2025
6b4e82f
ES: Don't protect popped ribs in prim if not necessary
l4haie Feb 4, 2025
13c94ee
ES: Fix cyclic co-friends bug
l4haie Feb 6, 2025
7d3bfbc
ES: Use wipe_parent instead of remove_parent in dealloc_rib
l4haie Feb 6, 2025
2c74042
ES: Add partial support for tagging
l4haie Feb 7, 2025
327d7ea
ES: Add an important note
l4haie Feb 8, 2025
423e7a9
ES: Extend the adoption range
l4haie Feb 8, 2025
3a8a5ad
ES: Push down parents, more adoptions
l4haie Feb 8, 2025
8f01149
ES: Cleanup adoption feature
l4haie Feb 8, 2025
5a16e48
ES: Fix potential bug in dealloc_rib
l4haie Feb 8, 2025
ee1a3a9
ES: Remove outdated features
l4haie Feb 14, 2025
d888331
ES: Cleanup
l4haie Feb 14, 2025
da27447
ES: Negative ranks
l4haie Feb 14, 2025
4ca72cc
ES: Fix typo
l4haie Feb 14, 2025
2e4589e
ES: Experimental adoption
l4haie Feb 14, 2025
a1c018f
ES: Fix typo
l4haie Feb 14, 2025
7ffc0a3
ES: Update TODO
l4haie Feb 15, 2025
cc5e9e9
ES: Update TODO
l4haie Feb 15, 2025
33160fa
ES: Small fix in remove_node
l4haie Feb 15, 2025
50ebc61
ES: Faster edge addition
l4haie Feb 15, 2025
71e3ac1
ES: Macrofy set_pc and set_sym_tbl
l4haie Feb 15, 2025
65165c5
ES: Make tagging the main protection method
l4haie Feb 15, 2025
2698dac
ES: Push on the stack more efficiently
l4haie Feb 16, 2025
31e96aa
ES: Push more efficiently on the stack, the return
l4haie Feb 16, 2025
1d631bc
ES: Fix small bug
l4haie Feb 16, 2025
6e91a39
ES: Update TODO
l4haie Feb 17, 2025
820be16
ES: Priority queue with highest rank first
l4haie Feb 17, 2025
5f19a85
ES: Remove buckets and lazy linked list and refactoring
l4haie Feb 17, 2025
4d23fda
ES: Overflow check when setting rank
l4haie Feb 17, 2025
0ebbb47
ES: Fixed issue with co-friend not found when removing
l4haie Feb 17, 2025
b1cbf2f
ES: Fix typo
l4haie Feb 17, 2025
280e672
ES: Small fix in adoption
l4haie Feb 18, 2025
afea783
ES: Remove notion of dirtiness
l4haie Feb 18, 2025
8da5d1a
ES: Decrement allocation rank with overflow check
l4haie Feb 19, 2025
331f41c
ES: Add parent field
l4haie Feb 20, 2025
d1cd0d8
ES: Faster overflow test
l4haie Feb 22, 2025
f2fead3
ES: Fixed preprocessor instructions
l4haie Feb 22, 2025
e63797d
ES: Faster deallocation when using parent field feature
l4haie Feb 22, 2025
31808d8
ES: Fix typos
l4haie Feb 24, 2025
b612d97
ES: Remove GC timer
l4haie Feb 24, 2025
e9736c5
ES: Increase max rank value
l4haie Feb 25, 2025
852b547
ES: Update TODO
l4haie Feb 28, 2025
9ccfc74
Add flat closures to es.c
leo-ard Feb 27, 2025
e2ecfeb
remove redundant check in enqueue
omelancon Mar 1, 2025
e57a12e
Merge pull request #94 from omelancon/omelancon/es-optims
l4haie Mar 1, 2025
ac8b913
ES: Don't chain TRUE or NIL's referrers
l4haie Mar 1, 2025
6a1c791
ES: Rib struct and mirror fields notation
l4haie Mar 1, 2025
da5890a
ES: Add basic documentation to keep track of features
l4haie Mar 2, 2025
6ba30a4
ES: adUpt, the first
l4haie Mar 3, 2025
aae9c9a
Fix adupt
leo-ard Mar 3, 2025
21cd049
Add limit-adopt option
leo-ard Mar 3, 2025
a3705fc
Make drop clearer
leo-ard Mar 4, 2025
2febc05
Remove limit adopt
leo-ard Mar 4, 2025
0605ad8
Add always-adupt
leo-ard Mar 4, 2025
e950902
Add always-adupt in tests
leo-ard Mar 4, 2025
89c3ccf
Add no-global-rank-counter option
leo-ard Mar 4, 2025
0a3e62d
ES: Collect queue
l4haie Mar 4, 2025
18e4e3a
Fix maj error: global_rank_counter -> GLOBAL_RANK_COUNTER
leo-ard Mar 4, 2025
65d2f06
add tests
omelancon Mar 5, 2025
ef09939
shorten tests
omelancon Mar 5, 2025
aa92f44
Add remove_node in add_cofriend
leo-ard Mar 5, 2025
2a8bad2
Remove PARENT_FIELD
leo-ard Mar 5, 2025
c06057d
Fix bug where roots would still have a parent
leo-ard Mar 5, 2025
95212d9
Add a debug field
leo-ard Mar 5, 2025
12149b9
Add check-spanning-tree macro
leo-ard Mar 5, 2025
495ee0b
Add dprint debugging
leo-ard Mar 5, 2025
050eda3
Fix bug with adUption
leo-ard Mar 5, 2025
7bf961b
Add benchmarks as tests
leo-ard Mar 5, 2025
3c84b6c
Change check-es to test benchmarks with check-spanning-tree
leo-ard Mar 5, 2025
e32dc7b
No adupt feature
leo-ard Mar 5, 2025
b55e27a
Add cycle detection to vizualizer
leo-ard Mar 5, 2025
43317ef
Add check-es back and check-es-bench
leo-ard Mar 6, 2025
23ca2bb
Don't follow is_protected nodes for now
leo-ard Mar 6, 2025
f3a55cf
Fix bug with cycle detection
leo-ard Mar 6, 2025
ecf6329
Fix protect/unprotect
leo-ard Mar 6, 2025
fa30790
check-spanning-tree less frequently
leo-ard Mar 6, 2025
eacc704
make push2 faster (with some bugs)
leo-ard Mar 6, 2025
0249ba4
Launch tests before sleep
leo-ard Mar 6, 2025
e18f7ca
ES: remove_node replaced by remove_root
l4haie Mar 6, 2025
872bc80
ES: Fixed protection logic
l4haie Mar 6, 2025
dd56c6b
ES: Remove unused collect queue
l4haie Mar 7, 2025
1afcf50
ES: Don't chain FALSE referrers
l4haie Mar 7, 2025
96c30dc
Fix bug causing cycles in scheme
leo-ard Mar 7, 2025
8c40756
Add flush at the end of dprints
leo-ard Mar 7, 2025
1a34f18
Add signal.h as a feature for debugging
leo-ard Mar 7, 2025
6bb9295
Merge bench with other benchmarks in makefile + add always-adupt/chec…
leo-ard Mar 7, 2025
f612af4
Change ovf_set_rank to ovf_inc_rank
leo-ard Mar 8, 2025
f31caa4
Add Runtime check
leo-ard Mar 10, 2025
1484480
Add underflow checks
leo-ard Mar 10, 2025
7b338de
Add runtime-checks to tests
leo-ard Mar 10, 2025
90b9919
Implement better upwards adupt
leo-ard Mar 10, 2025
f9376f4
Add adupt-N-first for 10, 100 and 1000
leo-ard Mar 10, 2025
47bd590
implement parametrizable heuristic for depth of rerank(adupt)
omelancon Mar 11, 2025
e639fc4
add es tests
omelancon Mar 11, 2025
9a19888
avoid-list-heuristic
omelancon Mar 12, 2025
bd7bcfc
fix typos and safer macros
omelancon Mar 12, 2025
ba6d9e8
Use test_feature instead of makefiles
leo-ard Mar 13, 2025
c6c32b3
fix warning
omelancon Mar 13, 2025
a75de93
Add stack-pair-tag feature
leo-ard Mar 13, 2025
4683c65
Fix bug with stack relying on the pair being 0
leo-ard Mar 13, 2025
4abef38
Add push function to rvm.c
leo-ard Mar 13, 2025
121ae83
add adupt heuristic
omelancon Mar 13, 2025
a743f7d
fix macro order
omelancon Mar 13, 2025
115fa1d
typo
omelancon Mar 13, 2025
2d057f1
fix macro order again!
omelancon Mar 13, 2025
2e57765
Merge pull request #103 from omelancon/omelancon/heuristic-no-adupt-a…
l4haie Mar 14, 2025
6860c3a
Define heap size by number of bytes instead of objects
l4haie May 5, 2025
e2df65f
set_field test
l4haie May 5, 2025
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
Prev Previous commit
Next Next commit
add adupt heuristic
  • Loading branch information
omelancon committed Mar 13, 2025
commit 121ae837dbf9e93b21d0153eab047e890e191055
11 changes: 11 additions & 0 deletions src/host/c/es.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,13 @@ void check_spanning_tree_impl();
// )@@

static inline bool adupt_start_heuristic(obj adoptee, int depth) {
#ifdef NO_RERANK_FROM_ATOMIC
obj tag = get_field(rib, 2);
if (tag != PAIR_TAG || tag != CLOSURE_TAG) {
return false;
}
#endif

#ifdef ADUPT_DROP_DEPTH_ALWAYS
return true;
#endif
Expand Down Expand Up @@ -165,6 +172,10 @@ static inline bool adupt_start_heuristic(obj adoptee, int depth) {
#endif
// )@@

// @@(feature adupt-no-rerank-from-atomic (use stack-pair-tag)
#define NO_RERANK_FROM_ATOMIC
// )

static inline bool adupt_continue_heuristic(int depth) {
#ifdef ADUPT_RERANK_DEPTH
return depth < ADUPT_RERANK_DEPTH;
Expand Down
2 changes: 1 addition & 1 deletion src/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ check-es: rsc.exe
HOST=c \
RSC_COMPILER="./rsc.exe --rvm ./host/c/es.c -f+ c/gc/es -f+ check-spanning-tree -f+ runtime-checks" \
POST_TEST_VALIDATION="***REMAINING_RIBS = 0\n***ALIVE_BUT_COLLECTED = 0" \
TEST_FEATURES="-f+ adupt-drop-depth-25 -f+ adupt-rerank-depth-25,-f+ adupt-avoid-lists,-f+ adupt-drop-depth-always, -f+ stack-pair-tag" \
TEST_FEATURES="-f+ adupt-drop-depth-25 -f+ adupt-rerank-depth-25,-f+ adupt-avoid-lists,-f+ adupt-no-rerank-from-atomic,-f+ adupt-drop-depth-always, -f+ stack-pair-tag" \
TEST_TAGS="c core variadics r4rs flat-closure bench" \
make check

Expand Down