Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upAdded current objects #225
Conversation
bvssvni
added some commits
May 24, 2016
bvssvni
merged commit 83f5370
into
PistonDevelopers:master
May 24, 2016
bvssvni
deleted the
bvssvni:current
branch
May 24, 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
bvssvni commentedMay 24, 2016
•
edited
Closes #224
This PR adds current objects to Dyon.
What are "current objects"?
"Current objects" is a similar concept to globals in other languages, but better and more powerful. They are inspired by the current library, but for names instead of types.
A current object is a way to pass information "outside" function arguments.
One common use of current objects is when some objects are initialized at the start, but needed deep down without the middle layers needing to know about them.
Things this is useful for:
How to use Current Objects in Dyon
To set a current object, you put a
~in front of a variable when declaring it:Use a current object by putting a
~and a list of variables after the function arguments:Design
The implementation of current objects uses these rules:
Motivation
The benefit of current objects over globals are: