Extern support #89

Closed
opened 2023-01-20 12:56:46 +00:00 by deavmi · 3 comments
Owner

What is this?

Adding support for external symbols through the use of extern efunc (for functions) and extern evar (for variables).

### What is this? Adding support for external symbols through the use of `extern efunc` (for functions) and `extern evar` (for variables).
deavmi added reference extern_symbols 2023-01-20 12:56:50 +00:00
Author
Owner

Solution

PsuedoEntities

  • It seems basically done, we added isExternal() and makeExternal() to the Entity type to get this working.
  • We made a new PseudoEntity type which is created in parseExtern() in the parser.

What does processPseudoEntities() do?

  • We also had to add code that runs before anything else in beginCheck() in the typechecker/core.d to ensure that PseudoEntitys are unpacked, and then have embedded Entity have their parenting copied over.

  • All completed with 9e79bc6f8b0808d485093587f11777583703f17f on branch extern_symbols.
  • Merged extern_symbols -> varass_vardec_dependency
  • Make some tests
    • efunc
    • evar
    • extern_test.sh
## Solution ✅ ### PsuedoEntities * It seems basically done, we added `isExternal()` and `makeExternal()` to the `Entity` type to get this working. * We made a new `PseudoEntity` type which is created in `parseExtern()` in the parser. ### What does `processPseudoEntities()` do? * We also had to add code that runs before anything else in `beginCheck()` in the `typechecker/core.d` to ensure that `PseudoEntity`s are unpacked, and then have embedded `Entity` have their parenting copied over. --- - [x] All completed with `9e79bc6f8b0808d485093587f11777583703f17f` on branch `extern_symbols`. - [x] Merged `extern_symbols` -> `varass_vardec_dependency` - [x] Make some tests - [x] `efunc` - [x] `evar` - [x] `extern_test.sh`
deavmi self-assigned this 2023-01-20 12:59:36 +00:00
deavmi added this to the Dependency tree, type-checking and codegen project 2023-01-20 12:59:46 +00:00
deavmi added this to the Basics milestone 2023-01-20 12:59:49 +00:00
deavmi added the
typing
parser
emit
labels 2023-01-20 13:00:03 +00:00
deavmi added the due date 2023-01-22 2023-01-20 13:03:18 +00:00
deavmi modified the due date from 2023-01-22 to 2023-01-25 2023-01-22 13:17:02 +00:00
deavmi modified the due date from 2023-01-25 to 2023-01-22 2023-01-27 10:33:39 +00:00
Author
Owner

We have done testing of evar so that works as of commit d548a066a63add60c2d587a8ad42ef04cd685e5c on this branch

We have done testing of `evar` so that works as of commit `d548a066a63add60c2d587a8ad42ef04cd685e5c` on this branch
Author
Owner

This is all done

This is all done
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

2023-01-22

Dependencies

No dependencies set.

Reference: tlang/tlang#89
No description provided.