Skip to content
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

Explicit Tail Calls #3407

Open
wants to merge 86 commits into
base: master
Choose a base branch
from
Open
Changes from 74 commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
68572cc
[WIP] start writing an initial draft
Apr 1, 2023
59345b2
[WIP] keep writing on RFC
Apr 2, 2023
6d24e88
add some more TODOs
Apr 2, 2023
72209f8
rationale and alternatives
Apr 3, 2023
4beeedd
finish up rationale and alternatives
Apr 3, 2023
60c0242
fix some formatting issues
Apr 3, 2023
7fecbad
prior art add links
Apr 4, 2023
ff899fd
finish up prior-art
Apr 5, 2023
98dfe99
add reference-level explanation
Apr 5, 2023
6233cc3
add unresolved questions and future possibilities
Apr 5, 2023
dde8305
final pass
Apr 6, 2023
03bdd9f
update based on reviews
phi-go Apr 6, 2023
30967a7
remove stray TODO
phi-go Apr 7, 2023
53a15cc
add TailCall MIR node
phi-go Apr 7, 2023
ce069c4
update implementation
phi-go Apr 7, 2023
ae2f3b8
gcc supports require tail call
phi-go Apr 7, 2023
377268e
indirect and external functions are supported
phi-go Apr 7, 2023
046b5e4
whitespace changes
phi-go Apr 7, 2023
f8da276
fix grammar
phi-go Apr 7, 2023
0d3589a
fix typo
phi-go Apr 7, 2023
0d1c3bd
make section on difference between return and become clearer
phi-go Apr 7, 2023
6f313d6
update use case 1 description
phi-go Apr 7, 2023
9482ad2
reword impact
phi-go Apr 7, 2023
3e7c384
improve wording of type checking section
phi-go Apr 7, 2023
46d8db3
update example illustrating the difference between return and become
phi-go Apr 9, 2023
12b028c
update comments on use case examples
phi-go Apr 9, 2023
b0c869e
correct grammar mistake
phi-go Apr 9, 2023
fd35d0f
change example in semantics section to ref
phi-go Apr 9, 2023
bef3933
rewrite to use TCE
Apr 11, 2023
e03c869
change feature name
phi-go Apr 17, 2023
86ad37b
use the term TCE correctly
phi-go Apr 17, 2023
c55c189
add more unresolved questions
phi-go Apr 17, 2023
77f93ac
update attribute on return section
phi-go Apr 17, 2023
417aa48
fix wrong link
phi-go Apr 18, 2023
9a24c19
add another reference to question regarding lints
phi-go Apr 18, 2023
f23c09e
expand on why operators are not supported
phi-go Apr 19, 2023
8ab2fbd
simplify reference-level explanation
phi-go Apr 20, 2023
0df947b
do another writing pass
phi-go Apr 20, 2023
0abc63a
passing borrows of local variables is not allowed
phi-go Apr 20, 2023
b263a9d
add example for arguments that are calls
phi-go Apr 22, 2023
70c0748
fix typo in example
phi-go Apr 22, 2023
d17ba51
reword sentence
phi-go Apr 22, 2023
0b47449
merge borrow checking and difference sections
phi-go Apr 22, 2023
1b4b6c2
do a grammar pass
phi-go Apr 22, 2023
578b33f
improve accuracy of steps done by become
phi-go Apr 22, 2023
dae7085
fix mistake in drop order example
phi-go Apr 22, 2023
acef709
be more clear on where become can be used
phi-go Apr 24, 2023
e8df199
update description comparing return and become
phi-go Apr 24, 2023
4dc10e8
add return become alternative
phi-go Apr 24, 2023
3c20119
add alternative: explicit dropping of variables
phi-go May 3, 2023
f46aa13
fix date formatting
phi-go May 5, 2023
b6b3094
update with discussion on WebAssembly
phi-go May 6, 2023
94916aa
update summary and motivation
phi-go May 12, 2023
ae758f5
update tail call elimination section
phi-go May 12, 2023
2824fc9
use slice instead of list example
phi-go May 12, 2023
da261a4
update wording for use case 1
phi-go May 12, 2023
5c2485e
update alternating example description
phi-go May 12, 2023
0e4a645
add impl effort for explicit drop alternative
phi-go May 12, 2023
eeaa80c
resolving unresolved questions
phi-go May 12, 2023
18ec62d
add resolved questions section
phi-go May 13, 2023
36d4734
expand reference-level explanation
phi-go May 15, 2023
7354862
remove unneeded comment
phi-go May 15, 2023
c647332
add type comment to example
phi-go May 15, 2023
e7bc960
update description of return type coercion
phi-go May 15, 2023
c5301f2
add pointer coercions
phi-go May 15, 2023
12c495b
mismatches in mutability
phi-go May 16, 2023
4b18487
update generators
phi-go May 16, 2023
b3dc340
update async
phi-go May 16, 2023
3010c2e
add future possibilities to relax requirements
phi-go May 17, 2023
60a290b
remove async as open question
phi-go May 17, 2023
72f8e4a
remove open question on functions that abort
phi-go May 17, 2023
980ebeb
fix typos
phi-go May 17, 2023
51ecc12
update zig example
phi-go May 17, 2023
dfcf7e8
extend rationale and alternatives section
phi-go May 21, 2023
f7652a9
update async description
phi-go May 23, 2023
0533221
update async description
phi-go May 23, 2023
8706d7b
fix typo
phi-go May 23, 2023
0b61f07
update reference-level explanation
phi-go May 23, 2023
b7c69e4
move mutability mismatch to future
phi-go May 23, 2023
23106d2
add fn tokens
phi-go May 23, 2023
2946d63
performance guarantee
phi-go May 24, 2023
cdac5c2
lint unresolved question to future possibilites
phi-go May 24, 2023
c7e4ea7
expand motivation section
phi-go May 25, 2023
b4b3db4
update wasm3 description
phi-go May 25, 2023
e548a96
Update wasm3 link
phi-go May 25, 2023
d38ba99
update motivation examples
phi-go May 26, 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
Loading