-
Notifications
You must be signed in to change notification settings - Fork 8
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
Systematic support for call-by-value vs call-by-reference in EVM backend #81
Comments
In GitLab by @fahree on Dec 15, 2020, 01:44
Example builtin non-immediate types:
And then at some point we need to handle strings: immediate, non-immediate? A new kind of "indirect" values?
Methods?
|
In GitLab by @fahree on Dec 15, 2020, 03:50 assigned to @AlexKnauth and @Akaa |
In GitLab by @kwanzknoel on May 10, 2021, 20:55 assigned to @kwanzknoel |
In GitLab by @kwanzknoel on May 11, 2021, 01:33 marked this issue as related to #68 |
In GitLab by @kwanzknoel on May 11, 2021, 01:33 marked this issue as related to #115 |
In GitLab by @kwanzknoel on May 11, 2021, 01:47 Note: as mentioned by @fahree, until we have user-defined data structures, the only data structure in need of references is Signature. |
In GitLab by @kwanzknoel on May 11, 2021, 16:34 Type descriptors are similar to typeclasses in Haskell. |
In GitLab by @kwanzknoel on May 11, 2021, 20:47 EVM backends and other similar backends define a predicate: We will choose an indirect type representation for those which cannot fit. |
In GitLab by @kwanzknoel on May 11, 2021, 20:48 Task prerequisites: understanding of EVM, glow type descriptors, glow consensus code gen. |
In GitLab by @kwanzknoel on Jun 2, 2021, 03:55 marked this issue as related to #191 |
In GitLab by @kwanzknoel on Jun 2, 2021, 16:25 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 16:31 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 19:03 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:10 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:12 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:13 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:15 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:17 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:17 marked the task |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:52 changed the description |
In GitLab by @kwanzknoel on Jun 2, 2021, 21:54 changed the description |
In GitLab by @kwanzknoel on Jun 25, 2021, 01:51 marked the task |
In GitLab by @kwanzknoel on Jun 25, 2021, 03:17 changed the description |
In GitLab by @kwanzknoel on Jun 25, 2021, 03:18 changed the description |
1 similar comment
In GitLab by @kwanzknoel on Jun 25, 2021, 03:18 changed the description |
In GitLab by @kwanzknoel on Jul 7, 2021, 03:11 changed the description |
In GitLab by @kwanzknoel on Jul 7, 2021, 03:21 changed the description |
In GitLab by @kwanzknoel on Jul 7, 2021, 04:04 changed the description |
In GitLab by @kwanzknoel on Jul 7, 2021, 04:17 changed the description |
In GitLab by @kwanzknoel on Jul 7, 2021, 23:05 changed the description |
In GitLab by @kwanzknoel on Jul 10, 2021, 02:21 changed the description |
In GitLab by @kwanzknoel on Jul 10, 2021, 02:22 changed the description |
In GitLab by @kwanzknoel on Jul 10, 2021, 02:23 changed the description |
1 similar comment
In GitLab by @kwanzknoel on Jul 10, 2021, 02:23 changed the description |
In GitLab by @kwanzknoel on Jul 10, 2021, 02:52 changed the description |
In GitLab by @fahree on Dec 15, 2020, 01:25
Description
We would like to support boxed types in addition the current support for unboxed types.
Example builtin non-immediate types:
Signature
(65 bytes, r, s, v fields)And then at some point we need to handle strings: immediate, non-immediate? A new kind of "indirect" values?
ByteString
has a length + an offset in memory.What we need
Type descriptors with methods for storing / loading etc...
Patches for gerbil-ethereum
Tracked here.
Patches for Glow
Type descriptors (See: https://gitlab.com/mukn/glow/-/merge_requests/158)
Refactor current handling
Consensus code generator handles variables in the following way:
lookup-type
:param-length
:lookup-variable-offset
.mloadat
/mstoreat
to handle the variable's loading / storing.Once EVM type descriptor interface is stabilized, we should use its methods instead.
In consensus code generator:
define-small-functions
to use EVM type descriptor methods.compile-consensus-statement
to use EVM type descriptor methods.load-immediate-variable
to use EVM type descriptor methods.add-local-variable-to-frame
to use EVM type descriptor methods.add-temporary-variable-offset
to use EVM type descriptor methods.trivial-expression
to use EVM type descriptor methods.setup-tail-call
to use EVM type descriptor methods.compute-variable-offsets
to use EVM type descriptor methods.TODO how to integrate with EVM type descriptor methods?
TODO any other areas we need to handle?
The text was updated successfully, but these errors were encountered: