[Previous meeting notes](https://hackmd.io/1mygARNjQlO8L0algCVwkQ)
## Attendees
- gnidan
- Daniel
- Marko
- Raoul
- Rahul
- Victor
-
## Agenda
- Playground PR?
- Function call operations design
## Outstanding items
- Reminder to please review the **ethdebug/format/type** schema draft: https://ethdebug.github.io/format/spec/type/overview
- Reminder to please review the **ethdebug/format/pointer** schema draft: https://ethdebug.github.io/format/spec/pointer/overview
- gnidan: Implement type schema for custom error types
- **Interested in trying out Simbolik?** Reach out to Raoul on Matrix.chat or at https://twitter.com/RaoulSaffron
## Notes
### Function call operations design
- Does it make sense to divide operations into these:
- "start" (point at which code leaves caller)
- "enter" (point at which code enters function body)
- "exit" (point at which code leaves function body)
- "return" (point at which code returns to caller)
My reasoning for this distinction is that I want to
indicate both the function being called, and the
context where the call happens... perhaps something like:
```json
{
"domain": "function-call",
"begin": {
"name": "transfer",
"parameters": [
...
]
},
"from": {
"name": "constructor"
}
}
{
"domain": "function-call",
"enter": {
"name": "transfer",
"parameters": [
{
"name": "recipient",
"scope": {
"source": 1,
"range": {
"offset": ...
}
}
"type": {
"kind": "address",
"payable": true
}
"pointer": {
"location": "stack",
"slot": 0
}
}
]
}
}
```
```solidity
function foo() {
if (x == 0) {
return false;
}
throw Error();
}
```
This ``"from"`` information is likely not available except
at the "begin" point. (Conversely, maybe `"from"` is
overkill, and we can skip this complexity... but seems
useful to include.)
#### Discussion
- Marko: Would be nice to annotate where things are inlined!
(mostly re: parameters)
- Daniel: `"from"` is useful because if you call _from_ an inlined function, there is no other way to get that information.