Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/unit_tests_with_coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
if: steps.cache.outputs.cache-hit != 'true'

- name: Run unit tests and generate tarpaulin report
run: cargo tarpaulin --timeout 30000 --verbose --lib --out Xml --output-dir ./coverage
run: cargo tarpaulin --timeout 80000 --verbose --lib --out Xml --output-dir ./coverage

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 MEDIUM RISK

Suggestion: The Tarpaulin timeout value of 80,000 is excessive (22+ hours). Use a more reasonable value like 300 seconds.

Suggested change
run: cargo tarpaulin --timeout 80000 --verbose --lib --out Xml --output-dir ./coverage
run: cargo tarpaulin --timeout 300 --verbose --lib --out Xml --output-dir ./coverage



- name: Upload to Codacy
Expand Down
17 changes: 8 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,20 @@
- Documentation is forced for functions, structs, and constants.
- No type inference, everything must be explicilty stated (this prevents common errors that stems especially from numeric types and assumptions.).
- No overshadowing allowed. Making codebases easier to audit, and reducing likelyhood of logic bugs.
- `lock` and `unlock` statements allow you to declare "zones" where variables behave as constants.
- `lock` and `unlock` statements allow you to declare "zones" where variables behave as constants, protecting you from yourself .


**GoldLang**'s bootstrap compiler transpiles down to pure Rust for a mathematical guarantee of safety: `"If Rust is safe, then GoldLang must also be at least as safe as Rust"`.

# Work-in-progress
This bootstrap compiler implements parser, semantic analysis and enforcement, and the transpiler.
It still lacks: structs and methods, enums, sin (unsafe) blocks.
It still lacks: structs and methods, enums, danger blocks.

**NOTE**: **This project is just a hobby language** with design objective of being the safest and most readable systems programming language, but ***there is no legal guarantees that comes with using this project***

**NOTE**: This compiler is a *phase 1* bootstrap compiler, it's not meant for developing production software, ***it's only meant for bootstrapping the language***



# Compiling the bootstrap compiler.
**Note**: The latest commit in main branch is always the latest stable release.
Expand All @@ -47,13 +53,6 @@ The compiler binary will be located in `target/release/goldlang`. Feel free to m
That will compile a GoldLang file, and produce a binary at `TARGET_BINARY_PATH`.


**NOTE**: **This project is just a hobby language** with design objective of being the safest and most readable systems programming language!
**There is no guarantees that comes with using this project, I am just 1 person making this programming language for myself, and I've decided to open-source it for others, because I was looking for a language just like this, and I couldn't find, so I decided to make it.**

**NOTE**: **This compiler is a phase 1 bootstrap compiler, it's not meant for systems development. it's only meant for bootstrapping the language**



# Example syntax
```
# This is a comment
Expand Down
3 changes: 3 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ pub mod consts;
pub mod ast;
#[cfg(test)]
mod tests_consts;
#[cfg(test)]
mod semantic_test_helpers;


pub enum CompileInfo {
CompileTo(String),
Expand Down
194 changes: 62 additions & 132 deletions src/semantic.rs

Large diffs are not rendered by default.

Loading
Loading