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

Update readme with new terminology. #18

Merged
merged 3 commits into from
Apr 24, 2018
Merged

Conversation

mike-kaufman
Copy link
Owner

No description provided.

@mike-kaufman mike-kaufman changed the title Mkaufman new terminology Update readme with new terminology. Apr 16, 2018
4. `executeEnd` - indicates the end of execution of an asynchronous function
One of the key challenges with "asynchronous context" is the lack of agreed upon terminology and semantics. Let's define some:

1. `Execution Frame` - An `Execution Frame` is a period of program execution, defined precisely as the period of time that a special function, called a `Continuation`, is executing. At a lower level of abstraction, you can think of an `Execution Frame` as the period of time from when specific call frame is pushed on the stack, until that call frame is unwound off of the stack. Not all functions are `Continuations` (more on that below).
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alternative here is to call this Continuation Frame

@mrkmarron
Copy link
Contributor

I like it -- LGTM

@mike-kaufman
Copy link
Owner Author

mike-kaufman commented Apr 18, 2018

/cc @nodejs/diagnostics @digitalinfinity, @kjin

@mike-kaufman mike-kaufman merged commit b93d2aa into master Apr 24, 2018
@kjin
Copy link

kjin commented Apr 24, 2018

Sorry, missed this notification until now! I took a look and generally the definitions are understandable to me -- here are some thoughts/questions:

  • Something I'm confused by is that it seems like the word Point is overloaded here -- though it seems clear to me that Continuation Point refers to a function, Link Point and Ready Point refer to points in program execution, so not necessarily a function? Do they refer to specific statements, or call sites, instead? (I think the concept of continuation points could use a word other than "point")
  • Is my understanding correct that with the exception of the main program body, execution frames should be identifiable by a corresponding function?
  • IIUC, "ready" is the new word for "causal context". If so this is definitely an improvement because that makes it easier to prevent misstatements :)

@mike-kaufman
Copy link
Owner Author

Something I'm confused by is that it seems like the word Point is overloaded here

Yes, you're absolutely right here. I wanted to update to a different name, but couldn't come up w/ anything that resonated. I'm open to suggestions here.

Continuation Point refers to a function, Link Point and Ready Point refer to points in program execution, so not necessarily a function?

Yes, exactly. Contnuation Point is a function that takes a Continuation as a parameter, and Link Point/Ready Point are points in program execution.

Is my understanding correct that with the exception of the main program body, execution frames should be identifiable by a corresponding function?

An Execution Frame is a specific invocation of a Continuation. It is possible for an Continuation to be invoked multiple times, resulting in multiple Execution Frames.

IIUC, "ready" is the new word for "causal context".

Yup. :)

@kjin
Copy link

kjin commented Apr 24, 2018

An Execution Frame is a specific invocation of a Continuation. It is possible for an Continuation to be invoked multiple times, resulting in multiple Execution Frames.

That makes sense -- this would be helpful as part of the definition!

@mike-kaufman mike-kaufman deleted the mkaufman-new-terminology branch April 24, 2018 18:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants