-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update std support var params
- Loading branch information
Showing
28 changed files
with
983 additions
and
553 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# function call rule | ||
|
||
The order that values be pushed into the stack is the same as the order that you defined in your code. | ||
|
||
So you can get function arguments like this: | ||
|
||
If arguments is `a,b,c` | ||
|
||
You should let valc = stack.pop().let valb = stack.pop(),let vala = stack.pop(); | ||
|
||
The order you read is opposite to the order you define. | ||
|
||
You can define an interface class and use it to define your class. | ||
|
||
by this way,we call the fuction by read the vtable. | ||
|
||
We will store the functions in a table,no matter what is the kind of your function. | ||
|
||
because we just allow one-depth class,so we just store a table like this: | ||
|
||
A large table of different interface.A global alloc id of any class is the difference of this, | ||
|
||
So we should first find the right interface of this.Then we should call the right function of the right interface. | ||
|
||
By the following instructions,LOAD_INTERFACE XXX and CALL_METHOD XXX to call the right function. | ||
|
||
The common method is just called by CALL_METHOD,so virtual function is slower than common function. |
Oops, something went wrong.