Skip to content
Navigation Menu
Sign in
Products
Platform
GitHub
Repository hosting, code review, and collaboration
Copilot
AI coding agent for tasks, projects, and automated work
Build & Ship
Actions
CI/CD and automation
Code Quality
Quality analysis, fixes, and enforcement
Codespaces
Cloud development environments
Secure
Code Security
Vulnerability detection and remediation
Secret Protection
Secret scanning and leak prevention
All Features
Developers
Learn
Documentation
Training
Certifications
Build
Build with Copilot
Customize Copilot
Integrations
Explore
Trending repos
GitHub Sponsors
Developer articles
Changelog
Changelog
Your source for the latest features, improvements, and fixes across GitHub products, all in one place.
Businesses
By Stage
Enterprises
Team
Startups
Nonprofits
By Industry
Healthcare
Financial services
Manufacturing
Government
See all industries
Evaluate GitHub
Why GitHub
Customer Stories
Business insights
Trust Center
Add-ons
GitHub Advanced Security
Enterprise-grade code security
Copilot for business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Resources
Learn & Connect
Documentation
Resource center
Blog
Events & webinars
Community Forum
Customer Stories
Integrations
Support
Customer support
Training
GitHub Status
Company
About
Partners
Changelog
GitHub Universe
GitHub Universe
The event for developers, by developers — talks, workshops, and what’s next for GitHub.
Pricing
Search
/
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
caffeinelabs
motoko-core
Repository navigation
Code
Issues
10
(10)
Pull requests
3
(3)
Discussions
Actions
Projects
Security and quality
Insights
More
items
perf(pure/Map, pure/Set): remove closures, tuple allocations and no-op path copies
- #563
#563
Draft
timohanke
wants to merge 28 commits into
caffeinelabs:main
caffeinelabs/motoko-core:main
from
research-ag:perf/pure-map-remove
research-ag/motoko-core:perf/pure-map-remove
Copy head branch name to clipboard
Conversation
Commits
28
(28)
Checks
Files changed
Draft
perf(pure/Map, pure/Set): remove closures, tuple allocations and no-op path copies
#563
timohanke
wants to merge 28 commits into
caffeinelabs:main
caffeinelabs/motoko-core:main
from
research-ag:perf/pure-map-remove
research-ag/motoko-core:perf/pure-map-remove
Copy head branch name to clipboard
Commits
Commits on Oct 19, 2026
bench: add pure/Map benchmark with remove of absent keys
Show description for 18116a8
timohanke
and
claude
committed
18116a8
View commit details
Copy full SHA for 18116a8
Browse repository at this point
perf(pure/Map): remove of an absent key returns without rebuilding the path
Show description for 6301dfb
timohanke
and
claude
committed
6301dfb
View commit details
Copy full SHA for 6301dfb
Browse repository at this point
perf(pure/Map): remove without closures
Show description for e1db2f4
timohanke
and
claude
committed
e1db2f4
View commit details
Copy full SHA for e1db2f4
Browse repository at this point
perf(pure/Map): don't switch on the tuple returned by Internal.remove
Show description for c705636
timohanke
and
claude
committed
c705636
View commit details
Copy full SHA for c705636
Browse repository at this point
Changelog: pure/Map remove
Show description for c5a8607
timohanke
and
claude
committed
c5a8607
View commit details
Copy full SHA for c5a8607
Browse repository at this point
bench: add pure/Map row for add of existing keys
Show description for c0825c8
timohanke
and
claude
committed
c0825c8
View commit details
Copy full SHA for c0825c8
Browse repository at this point
perf(pure/Map): lbalance/rbalance switch on one subtree, not on a tuple
Show description for 0eb65cd
timohanke
and
claude
committed
0eb65cd
View commit details
Copy full SHA for 0eb65cd
Browse repository at this point
perf(pure/Map): add/swap without closures
Show description for 529bc92
timohanke
and
claude
committed
529bc92
View commit details
Copy full SHA for 529bc92
Browse repository at this point
perf(pure/Map): don't project or switch on the tuple returned by swap
Show description for 6fd6399
timohanke
and
claude
committed
6fd6399
View commit details
Copy full SHA for 6fd6399
Browse repository at this point
perf(pure/Map): balLeft/balRight/append switch on one subtree at a time
Show description for d69355c
timohanke
and
claude
committed
d69355c
View commit details
Copy full SHA for d69355c
Browse repository at this point
bench: add pure/Set benchmark
Show description for 0612fb3
timohanke
and
claude
committed
0612fb3
View commit details
Copy full SHA for 0612fb3
Browse repository at this point
perf(pure/Set): contains without a closure
Show description for 77fe9b5
timohanke
and
claude
committed
77fe9b5
View commit details
Copy full SHA for 77fe9b5
Browse repository at this point
perf(pure/Set): lbalance/rbalance switch on one subtree, not on a tuple
Show description for 3755b43
timohanke
and
claude
committed
3755b43
View commit details
Copy full SHA for 3755b43
Browse repository at this point
perf(pure/Set): add/insert without closures
Show description for 44f2f48
timohanke
and
claude
committed
44f2f48
View commit details
Copy full SHA for 44f2f48
Browse repository at this point
perf(pure/Set): add of a present element returns without rebuilding the path
Show description for 96e3018
timohanke
and
claude
committed
96e3018
View commit details
Copy full SHA for 96e3018
Browse repository at this point
perf(pure/Set): remove/delete without closures
Show description for 3f121db
timohanke
and
claude
committed
3f121db
View commit details
Copy full SHA for 3f121db
Browse repository at this point
perf(pure/Set): remove of an absent element returns without rebuilding the path
Show description for 3ef827a
timohanke
and
claude
committed
3ef827a
View commit details
Copy full SHA for 3ef827a
Browse repository at this point
perf(pure/Set): balLeft/balRight/append switch on one subtree at a time
Show description for 1165f17
timohanke
and
claude
committed
1165f17
View commit details
Copy full SHA for 1165f17
Browse repository at this point
perf(pure/Set): don't project the tuples returned by insert and delete
Show description for 6be3d09
timohanke
and
claude
committed
6be3d09
View commit details
Copy full SHA for 6be3d09
Browse repository at this point
Changelog: pure/Map and pure/Set
Show description for 851cf7d
timohanke
and
claude
committed
851cf7d
View commit details
Copy full SHA for 851cf7d
Browse repository at this point
bench: add equal/compare rows to the pure/Map and pure/Set benchmarks
Show description for 035b5e6
timohanke
and
claude
committed
035b5e6
View commit details
Copy full SHA for 035b5e6
Browse repository at this point
perf(pure/Map): equal/compare switch on one iterator result at a time
Show description for 64cb2a6
timohanke
and
claude
committed
64cb2a6
View commit details
Copy full SHA for 64cb2a6
Browse repository at this point
perf(pure/Set): equal/isSubset/compare switch on one subtree or iterator result at a time
Show description for dcf1fa6
timohanke
and
claude
committed
dcf1fa6
View commit details
Copy full SHA for dcf1fa6
Browse repository at this point
Changelog: pure/Set equal/isSubset
Show description for 6206286
timohanke
and
claude
committed
6206286
View commit details
Copy full SHA for 6206286
Browse repository at this point
refactor(pure/Map, pure/Set): balLeft/balRight as two switches in a row instead of nested
Show description for dc759e2
timohanke
and
claude
committed
dc759e2
View commit details
Copy full SHA for dc759e2
Browse repository at this point
refactor(pure/Map, pure/Set): equal/compare/isSubset with let-else instead of nested switches
Show description for 7d8f9aa
timohanke
and
claude
committed
7d8f9aa
View commit details
Copy full SHA for 7d8f9aa
Browse repository at this point
Changelog: pure/Set equal/isSubset
Show description for e9b3d2d
timohanke
and
claude
committed
e9b3d2d
View commit details
Copy full SHA for e9b3d2d
Browse repository at this point
Changelog: refer to the upstream PR number
Show description for 8e3e62f
timohanke
and
claude
committed
8e3e62f
View commit details
Copy full SHA for 8e3e62f
Browse repository at this point
You can’t perform that action at this time.