-
Notifications
You must be signed in to change notification settings - Fork 2
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
Inline app3/_app3/nodes code. #120
Labels
perf
This issue is about improving performance of the implementation in general
Comments
make-github-pseudonymous-again
added
the
perf
This issue is about improving performance of the implementation in general
label
Jan 16, 2021
This comment has been minimized.
This comment has been minimized.
For ii: If implementing the |
6 tasks
iii. is actually Exercise 3 (page 9) in Hinze and Paterson (see README for link). |
make-github-pseudonymous-again
added a commit
that referenced
this issue
Sep 2, 2021
This is progress on #120.
Draft
make-github-pseudonymous-again
added a commit
that referenced
this issue
Sep 2, 2021
This is progress on #120.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
With the current implementation we have
assert(3 <= list.length && list.length <= 12)
insrc/0-core/concatenate/nodes.js
.Plan:
nodes
(fromlist.length = 3
tolist.length = 12
) 38b9e05concat
methodnodes
,_app3
,app3
shows up as a bottleneck, profile these implementations:nodes
(max iterations is fixed)list.length
innodes
7362602nodes
: First implicit branch on the protototype ofB
, then implicit branch on the prototype ofA
(e.g.A._nodes_from_list_and_Two(list, B)
whereB instanceof Two
), and finally explicit branch onlist.length
using aswitch
Also the current base cases in
app3
use the generic_append
and_prepend
wherelist
has a size between 1 and 4.The text was updated successfully, but these errors were encountered: