-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
rework async function semantics #3033
Commits on Jul 19, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 54e716a - Browse repository at this point
Copy the full SHA 54e716aView commit details
Commits on Jul 21, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 72e9836 - Browse repository at this point
Copy the full SHA 72e9836View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27a5f2c - Browse repository at this point
Copy the full SHA 27a5f2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6053ca4 - Browse repository at this point
Copy the full SHA 6053ca4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 56c08eb - Browse repository at this point
Copy the full SHA 56c08ebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 78e03c4 - Browse repository at this point
Copy the full SHA 78e03c4View commit details
Commits on Jul 22, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 11bd50f - Browse repository at this point
Copy the full SHA 11bd50fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 59bf9ca - Browse repository at this point
Copy the full SHA 59bf9caView commit details -
Configuration menu - View commit details
-
Copy full SHA for 32d0ac1 - Browse repository at this point
Copy the full SHA 32d0ac1View commit details -
disable segfault handler when panicking
this prevents a segfault in stack trace printing to activate the segfault handler.
Configuration menu - View commit details
-
Copy full SHA for 5b69a9c - Browse repository at this point
Copy the full SHA 5b69a9cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 650e07e - Browse repository at this point
Copy the full SHA 650e07eView commit details -
Configuration menu - View commit details
-
Copy full SHA for fcadeb5 - Browse repository at this point
Copy the full SHA fcadeb5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 317d1ec - Browse repository at this point
Copy the full SHA 317d1ecView commit details
Commits on Jul 23, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 7e9760d - Browse repository at this point
Copy the full SHA 7e9760dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 19ee495 - Browse repository at this point
Copy the full SHA 19ee495View commit details
Commits on Jul 24, 2019
-
Configuration menu - View commit details
-
Copy full SHA for e220812 - Browse repository at this point
Copy the full SHA e220812View commit details
Commits on Jul 25, 2019
-
Configuration menu - View commit details
-
Copy full SHA for ead2d32 - Browse repository at this point
Copy the full SHA ead2d32View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70bced5 - Browse repository at this point
Copy the full SHA 70bced5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 538c0cd - Browse repository at this point
Copy the full SHA 538c0cdView commit details
Commits on Jul 26, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 7b36868 - Browse repository at this point
Copy the full SHA 7b36868View commit details -
Configuration menu - View commit details
-
Copy full SHA for 018a89c - Browse repository at this point
Copy the full SHA 018a89cView commit details -
Configuration menu - View commit details
-
Copy full SHA for ee64a22 - Browse repository at this point
Copy the full SHA ee64a22View commit details
Commits on Jul 29, 2019
-
improve support for anyframe and anyframe->T
* add implicit cast from `*@frame(func)` to `anyframe->T` or `anyframe`. * add implicit cast from `anyframe->T` to `anyframe`. * `resume` works on `anyframe->T` and `anyframe` types.
Configuration menu - View commit details
-
Copy full SHA for dbdc4d6 - Browse repository at this point
Copy the full SHA dbdc4d6View commit details
Commits on Aug 1, 2019
-
Configuration menu - View commit details
-
Copy full SHA for e7ae4e4 - Browse repository at this point
Copy the full SHA e7ae4e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1dd0c3d - Browse repository at this point
Copy the full SHA 1dd0c3dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0f879d0 - Browse repository at this point
Copy the full SHA 0f879d0View commit details
Commits on Aug 2, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 056c4e2 - Browse repository at this point
Copy the full SHA 056c4e2View commit details -
Configuration menu - View commit details
-
Copy full SHA for f07f09a - Browse repository at this point
Copy the full SHA f07f09aView commit details -
Configuration menu - View commit details
-
Copy full SHA for b3b6a98 - Browse repository at this point
Copy the full SHA b3b6a98View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5bd330e - Browse repository at this point
Copy the full SHA 5bd330eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0920bb0 - Browse repository at this point
Copy the full SHA 0920bb0View commit details
Commits on Aug 3, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 24d7817 - Browse repository at this point
Copy the full SHA 24d7817View commit details -
Configuration menu - View commit details
-
Copy full SHA for e444e73 - Browse repository at this point
Copy the full SHA e444e73View commit details -
Configuration menu - View commit details
-
Copy full SHA for c879209 - Browse repository at this point
Copy the full SHA c879209View commit details -
Configuration menu - View commit details
-
Copy full SHA for 87710a1 - Browse repository at this point
Copy the full SHA 87710a1View commit details
Commits on Aug 4, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 1292447 - Browse repository at this point
Copy the full SHA 1292447View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa30ebf - Browse repository at this point
Copy the full SHA fa30ebfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 042914d - Browse repository at this point
Copy the full SHA 042914dView commit details -
Configuration menu - View commit details
-
Copy full SHA for fbf21ef - Browse repository at this point
Copy the full SHA fbf21efView commit details -
Configuration menu - View commit details
-
Copy full SHA for b7c94be - Browse repository at this point
Copy the full SHA b7c94beView commit details
Commits on Aug 5, 2019
-
Configuration menu - View commit details
-
Copy full SHA for f27e5d4 - Browse repository at this point
Copy the full SHA f27e5d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0d8c9fc - Browse repository at this point
Copy the full SHA 0d8c9fcView commit details -
delete IrInstructionMarkErrRetTracePtr
this IR instruction is no longer needed
Configuration menu - View commit details
-
Copy full SHA for a7763c0 - Browse repository at this point
Copy the full SHA a7763c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for dfe8c5a - Browse repository at this point
Copy the full SHA dfe8c5aView commit details -
async functions have error return traces where appropriate
however the traces are not merged on `await` or async function calls yet. When an async function has an error set or error union as its return type, it has a `StackTrace` before the args in the frame, so that it is accessible from `anyframe->T` awaiters. However when it does not have an errorable return type, but it does call or await an errorable, it has a stack trace just before the locals. This way when doing an `@asyncCall` on an async function pointer, it can populate the args (which are after the `StackTrace`) because it knows the offset of the args based only on the return type. This sort of matches normal functions, where a stack trace pointer could be supplied by a parameter, or it could be supplied by the stack of the function, depending on whether the function itself is errorable.
Configuration menu - View commit details
-
Copy full SHA for 20f63e5 - Browse repository at this point
Copy the full SHA 20f63e5View commit details
Commits on Aug 6, 2019
-
improve async function semantics
* add safety panic for resuming a function which is returning, pending an await * remove IrInstructionResultPtr * add IrInstructionReturnBegin. This does the early return in async functions; does nothing in normal functions. * `await` gets a result location * `analyze_fn_async` will call `analyze_fn_body` if necessary. * async function frames have a result pointer field for themselves to access and one for the awaiter to supply before the atomic rmw. when returning, async functions copy the result to the awaiter result pointer, if it is non-null. * async function frames have a stack trace pointer which is supplied by the awaiter before the atomicrmw. Later in the frame is a stack trace struct and addresses, which is used for its own calls and awaits. * when awaiting an async function, if an early return occurred, the awaiter tail resumes the frame. * when an async function returns, early return does a suspend (in IrInstructionReturnBegin) before copying the error return trace data, result, and running the defers. After the last defer runs, the frame will no longer be accessed. * proper acquire/release atomic ordering attributes in async functions.
Configuration menu - View commit details
-
Copy full SHA for 400500a - Browse repository at this point
Copy the full SHA 400500aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 17199b0 - Browse repository at this point
Copy the full SHA 17199b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 966c9ea - Browse repository at this point
Copy the full SHA 966c9eaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1afbb53 - Browse repository at this point
Copy the full SHA 1afbb53View commit details
Commits on Aug 7, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 7e1fcb5 - Browse repository at this point
Copy the full SHA 7e1fcb5View commit details -
Configuration menu - View commit details
-
Copy full SHA for f587fa1 - Browse repository at this point
Copy the full SHA f587fa1View commit details -
Configuration menu - View commit details
-
Copy full SHA for e11cafb - Browse repository at this point
Copy the full SHA e11cafbView commit details
Commits on Aug 8, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 34bfdf1 - Browse repository at this point
Copy the full SHA 34bfdf1View commit details -
Configuration menu - View commit details
-
Copy full SHA for d813805 - Browse repository at this point
Copy the full SHA d813805View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d4cb85 - Browse repository at this point
Copy the full SHA 8d4cb85View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8be95af - Browse repository at this point
Copy the full SHA 8be95afView commit details -
Configuration menu - View commit details
-
Copy full SHA for bfa1d12 - Browse repository at this point
Copy the full SHA bfa1d12View commit details -
Configuration menu - View commit details
-
Copy full SHA for cfe8442 - Browse repository at this point
Copy the full SHA cfe8442View commit details -
Configuration menu - View commit details
-
Copy full SHA for 93840f8 - Browse repository at this point
Copy the full SHA 93840f8View commit details -
Configuration menu - View commit details
-
Copy full SHA for da56959 - Browse repository at this point
Copy the full SHA da56959View commit details -
Configuration menu - View commit details
-
Copy full SHA for 614cab5 - Browse repository at this point
Copy the full SHA 614cab5View commit details
Commits on Aug 9, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 2e7f53f - Browse repository at this point
Copy the full SHA 2e7f53fView commit details
Commits on Aug 10, 2019
-
Configuration menu - View commit details
-
Copy full SHA for b9d1d45 - Browse repository at this point
Copy the full SHA b9d1d45View commit details -
Configuration menu - View commit details
-
Copy full SHA for 22428a7 - Browse repository at this point
Copy the full SHA 22428a7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 77d098e - Browse repository at this point
Copy the full SHA 77d098eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f5c6d7 - Browse repository at this point
Copy the full SHA 3f5c6d7View commit details
Commits on Aug 11, 2019
-
Configuration menu - View commit details
-
Copy full SHA for af8c6cc - Browse repository at this point
Copy the full SHA af8c6ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4d8d513 - Browse repository at this point
Copy the full SHA 4d8d513View commit details
Commits on Aug 12, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 62c5bc6 - Browse repository at this point
Copy the full SHA 62c5bc6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 911b1a0 - Browse repository at this point
Copy the full SHA 911b1a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 24d5ec0 - Browse repository at this point
Copy the full SHA 24d5ec0View commit details
Commits on Aug 13, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 8a92899 - Browse repository at this point
Copy the full SHA 8a92899View commit details -
alignment of structs no longer depends on LLVM
fixes async function tests in optimized builds
Configuration menu - View commit details
-
Copy full SHA for 12ff91c - Browse repository at this point
Copy the full SHA 12ff91cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 82d4ebe - Browse repository at this point
Copy the full SHA 82d4ebeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5092634 - Browse repository at this point
Copy the full SHA 5092634View commit details -
Configuration menu - View commit details
-
Copy full SHA for dd8c8c0 - Browse repository at this point
Copy the full SHA dd8c8c0View commit details
Commits on Aug 14, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 5749dc4 - Browse repository at this point
Copy the full SHA 5749dc4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7799423 - Browse repository at this point
Copy the full SHA 7799423View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3f838c - Browse repository at this point
Copy the full SHA f3f838cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 64c293f - Browse repository at this point
Copy the full SHA 64c293fView commit details
Commits on Aug 15, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 13b5a4b - Browse repository at this point
Copy the full SHA 13b5a4bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 55f5cee - Browse repository at this point
Copy the full SHA 55f5ceeView commit details -
Configuration menu - View commit details
-
Copy full SHA for d367249 - Browse repository at this point
Copy the full SHA d367249View commit details