Skip to content
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

Support Exportable modules (like Oberon '*'). As an output, create a DLL #41

Open
steven-r opened this issue Nov 18, 2018 · 2 comments
Open
Milestone

Comments

@steven-r
Copy link
Owner

steven-r commented Nov 18, 2018

The follwing will create a DLL instead of an executable...

MODULE export;

PROCEDURE x*;
BEGIN
END x;

BEGIN
  (* init code *)
END export;

The code will emit one external static function ('x'). The init code will be executed as part of system initialization.

@steven-r steven-r added this to the v0.4 milestone Nov 18, 2018
@steven-r steven-r changed the title Support Exportable modules (like Oberon ' Support Exportable modules (like Oberon '*'). As an output, create a DLL Nov 18, 2018
@steven-r
Copy link
Owner Author

steven-r commented Nov 18, 2018

Tasks:

  • Grammar adaptions (* on module, * on type, const, var name)
  • Handle type/var/const .Exportable flag
  • Handle proc .Exportable flag
  • check logic (const as exportable, module not marked)
  • IMPORT statement
  • MSIL code generation
  • prevent parameters to be marked as exportable (i.e. global only)
  • Command line addons
    - [ ] Generate warning in case MODULE is marked as exportable and no type/var/const/proc is marked

@steven-r
Copy link
Owner Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant