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 packages #390

Merged
merged 21 commits into from Apr 20, 2023
Merged

Support packages #390

merged 21 commits into from Apr 20, 2023

Conversation

MarcelGarus
Copy link
Member

@MarcelGarus MarcelGarus commented Apr 16, 2023

This adds support for package markers and managed packages.

By having a _package.candy file in a Candy module (aka, having a folder with both a _.candy and a _package.candy file), this module is turned into a package. Modules from inside the package can't relatively import anything outside of the module.

Also, there now exists a package folder (which is just hardcoded to our packages folder relative to the executable). If you just use "Something", then the Something folder is included.

This PR also makes the CLI easier to use. In particular, you can now just cargo run anywhere in our repo without any additional options to build and run the CLI. If you execute cargo run -- run without additional parameters, the package surrounding the current working directory is run.

@jwbot jwbot added P: Compiler: CLI Package: Candy's command-line interface P: Compiler: Frontend Package: The compiler frontend P: Compiler: Language Server Package: The Candy Language Server P: Compiler: VM Package: The VM executing Candy byte code (LIR) P: Compiler: VS Code Extension Package: The Candy VS Code Extension P: Core Package: Candy's standard library labels Apr 16, 2023
compiler/cli/Cargo.toml Show resolved Hide resolved
compiler/cli/src/main.rs Outdated Show resolved Hide resolved
compiler/cli/src/main.rs Outdated Show resolved Hide resolved
compiler/frontend/src/module/module.rs Outdated Show resolved Hide resolved
compiler/frontend/src/module/use_path.rs Outdated Show resolved Hide resolved
compiler/language_server/src/features_ir.rs Show resolved Hide resolved
compiler/language_server/src/server.rs Outdated Show resolved Hide resolved
Co-authored-by: Jonas Wanke <contact@jonas-wanke.com>
@jwbot jwbot added the P: Compiler: Fuzzer Package: Candy's built-in fuzzer fuzzing Candy code label Apr 19, 2023
@jwbot jwbot added the P: Compiler: Formatter Package: Candy's formatter label Apr 20, 2023
@MarcelGarus MarcelGarus merged commit f4f673c into main Apr 20, 2023
6 checks passed
@MarcelGarus MarcelGarus deleted the package-marker branch April 20, 2023 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P: Compiler: CLI Package: Candy's command-line interface P: Compiler: Formatter Package: Candy's formatter P: Compiler: Frontend Package: The compiler frontend P: Compiler: Fuzzer Package: Candy's built-in fuzzer fuzzing Candy code P: Compiler: Language Server Package: The Candy Language Server P: Compiler: VM Package: The VM executing Candy byte code (LIR) P: Compiler: VS Code Extension Package: The Candy VS Code Extension P: Core Package: Candy's standard library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants