organized issues authored by Aftab Hussain's avatar Aftab Hussain
......@@ -6,7 +6,7 @@
- [Issues](#issues)
- [Test IDL samples](#test-idl-samples)
# <a name="peg-syntax"></a> Peg Syntax
# <a name="peg-syntax"></a> Peg Syntax [⬆](#jump-to-section)
Non-terminals that can take in values are preceded by an identifier
keyword, for example,
......@@ -19,7 +19,7 @@ storing the values obtained from processing the `ChanInits` non-terminal.
new_chans = result_peg_3.getValues();
```
# Parser code generation
# <a name="parser-code-generation"></a> Parser code generation [⬆](#jump-to-section)
When a certain rule matches the input, parser code is generated (which builds the AST). Let's take a look at what code is generated for the `Interface`rule:
```
......@@ -48,7 +48,7 @@ Inside the parser code of `Interface` we use the value of `m` to set the scope o
LexicalScope *module_scope = (LexicalScope*) m.getValue();
```
## Glue code generation
## <a name="glue-code-generation"></a> Glue code generation [⬆](#jump-to-section)
Glue code is generated for each module. This is where the names of the files are generated in `main/main.cpp` (they are appended with the original name of the module):
......@@ -58,9 +58,14 @@ Glue code is generated for each module. This is where the names of the files are
...
```
## Issues
## <a name="issues"></a> Issues [⬆](#jump-to-section)
### 1. Always asks for an rpc.
1. [Always asks for an rpc.](#issue-1)
2. [Does not detect an rpc, when require is put.](#issue-2)
3. [fsanitize in Makefile leads to a flurry of indirect leaks.](#issue-3) **IGNORE NOW**
### 1. <a name="issue-1"></a> Always asks for an rpc.
If the line with the rpc statement is not there, we get a segfault in
main.cpp:144: `ccst_caller_h->write(ofs_caller_h, 0);`
......@@ -82,7 +87,7 @@ module nullnet(channel c) {
}
```
### 2. Does not detect an rpc, when require is put.
### 2. <a name="issue-2"></a> Does not detect an rpc, when require is put.
```c
include <kernel.idl>
......@@ -100,7 +105,7 @@ require kernel
}
```
### 3. fsanitize in Makefile
### 3. <a name="issue-3"></a> fsanitize in Makefile leads to a flurry of indirect leaks.
If `fsanitize` option is used in `Makefile`:
......@@ -113,9 +118,7 @@ we get lots of indirect leaks reported in the output for `nullnet-require.idl` (
...
SUMMARY: AddressSanitizer: 140005 byte(s) leaked in 1624 allocation(s).
```
____
## Test IDL samples
## Test IDL samples [⬆](#jump-to-section)
`nullnet-require.idl`
```c
module nullnet(channel c) {
......
......