Skip to content

[Feature Request] Add per file flag for #+package and #+local #174

Open
@clsource

Description

@clsource
  • #+package at the start of the file will mark any defined symbol as the package only scope. A file defined with #+package flag can use #local flag for scoping at the file level for individual symbols.

  • #+local at the start of the file will mark any defined symbol as the file only scope. A file defined with #+local flag can use #package flag for scoping at the package level for individual symbols.

A file with flags #+package or #+local cannot make its symbols public in any way. Another public file should be created.

Motivation

By using a file level fiag we can separate our APIs with public and private (package and file only) scopes, and avoid saturating our public files and symbols with scope attributes.

Example

By using this flag we can cleary separate scopes in our package.

- api.onyx // public apis
- api.pkg.onyx // package scope apis
- api.local.onyx // file (local) scope apis

Syntax

It was preferred the syntax #+ instead of //+ since it has less characters and promotes the meaning of a compiler directive instead of a comment.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions