Skip to content

Commit 75230d7

Browse files
authored
Merge pull request #35 from Mufi-Lang/next
Update to v0.8.0
2 parents a6da00e + e5e31de commit 75230d7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+45019
-1230
lines changed

.clang-tidy

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
Checks: >
2+
-*,
3+
bugprone-*, # Checks for common bugs
4+
cert-*, # CERT C Secure Coding Standard checks
5+
clang-analyzer-*, # Clang Static Analyzer checks
6+
cppcoreguidelines-*, # C++ Core Guidelines checks
7+
google-*, # Google coding style checks
8+
llvm-*, # LLVM coding style checks
9+
misc-*, # Miscellaneous checks
10+
modernize-*, # Modernize code (use C++11/14/17 features)
11+
performance-*, # Performance-related checks
12+
portability-*, # Portability-related checks
13+
readability-* # Readability improvements
14+
15+
WarningsAsErrors: '*' # Treat all warnings as errors
16+
17+
HeaderFilterRegex: '.*' # Analyze all files
18+
AnalyzeTemporaryDtors: false # Skip temporary destructor analysis
19+
CheckOptions:
20+
- key: readability-identifier-naming.NamespaceCase
21+
value: lower_case
22+
- key: readability-identifier-naming.ClassCase
23+
value: CamelCase
24+
- key: readability-identifier-naming.StructCase
25+
value: CamelCase
26+
- key: readability-identifier-naming.FunctionCase
27+
value: camelBack
28+
- key: readability-identifier-naming.VariableCase
29+
value: lower_case
30+
- key: readability-identifier-naming.ParameterCase
31+
value: lower_case
32+
- key: readability-identifier-naming.ClassMemberCase
33+
value: mCamelCase
34+
- key: readability-identifier-naming.GlobalConstantCase
35+
value: UPPER_CASE
36+
37+
- key: readability-braces-around-statements.ShortStatementLines
38+
value: 1
39+
- key: readability-magic-numbers.IgnoreSimpleAssignments
40+
value: true
41+
- key: readability-magic-numbers.IgnoredIntegerValues
42+
value: '0,1,2,3,4,5,6,7,8,9,10,16,32,64,128'
43+
- key: readability-function-size.StatementThreshold
44+
value: 800
45+
46+
- key: cert-dcl03-c.ProhibitNamespacesInHeaders
47+
value: true
48+
- key: cert-env33-c.ProhibitEnvironmentVariables
49+
value: true
50+
- key: cert-err33-c.ProhibitErrno
51+
value: true
52+
53+
- key: modernize-use-auto.MinTypeNameLength
54+
value: 5
55+
56+
- key: performance-unnecessary-value-param.UseConstRef
57+
value: true
58+
59+
- key: portability-simd-intrinsics.UsePortableHeader
60+
value: true
61+
62+
- key: cppcoreguidelines-pro-type-member-init.MemberInit
63+
value: true
64+
- key: cppcoreguidelines-avoid-magic-numbers.IgnoreCppOneLiners
65+
value: true
66+
67+
- key: google-readability-function-size.LineThreshold
68+
value: 80
69+
- key: google-readability-namespace-comments.ShortNamespaceLines
70+
value: 10
71+
72+
- key: clang-analyzer-core.CallAndMessage
73+
value: true
74+
- key: clang-analyzer-core.DivideZero
75+
value: true
76+
- key: clang-analyzer-core.NullDereference
77+
value: true
78+
- key: clang-analyzer-core.UndefinedBinaryOperatorResult
79+
value: true
80+
- key: clang-analyzer-core.VLASize
81+
value: true
82+
83+
FormatStyle: file # Use clang-format style from .clang-format

.fpm

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
--prefix /usr/bin
2+
--maintainer 'Mustafif Khan <me@mustafif.com>'
3+
--description 'The Mufi Programming Language'
4+
--url 'https://mufiz.mustafif.com'
5+
-s zip
6+
-n mufiz

.github/workflows/new_release.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ on:
99
- main
1010

1111
env:
12-
codename: 'Jade'
12+
codename: "Ruby"
1313

1414
jobs:
1515
build:
1616
name: Create Release
17-
runs-on: ubuntu-latest # Switched to Ubuntu environment
17+
runs-on: ubuntu-latest # Switched to Ubuntu environment
1818
steps:
1919
- name: Checkout code
2020
uses: actions/checkout@v2
@@ -27,12 +27,12 @@ jobs:
2727
- name: Set up Python
2828
uses: actions/setup-python@v2
2929
with:
30-
python-version: '3.x'
30+
python-version: "3.x"
3131

3232
- name: Set up Ruby
3333
uses: ruby/setup-ruby@v1
3434
with:
35-
ruby-version: '3.0'
35+
ruby-version: "3.0"
3636

3737
- name: Install fpm and unzip
3838
run: |
@@ -43,7 +43,7 @@ jobs:
4343
4444
- name: Run Build Multi
4545
run: zig build --build-file build_multi.zig
46-
46+
4747
- name: Run Package Man
4848
run: python3 pkgman.py
4949

@@ -52,8 +52,8 @@ jobs:
5252
uses: softprops/action-gh-release@v1
5353
with:
5454
token: ${{secrets.SECRET}}
55-
tag_name: v0.7.0
56-
name: v0.6.0 ${{env.codename}} Release
55+
tag_name: v0.8.0
56+
name: v0.8.0 ${{env.codename}} Release
5757
generate_release_notes: true
5858
draft: true
5959
prerelease: false

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ grammar.y
1616
update_apt.sh
1717
__pycache__
1818
ctests/hashdict.c
19+
20+
dist/

README.md

+6-88
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
44
🌐 [mufiz.mustafif.com](https://mufiz.mustafif.com)
55

6-
This project aims to integrate the Mufi-Lang compiler with the Zig language by using the
7-
Zig Build system. We hope to integrate more features with this language and see how nicely
6+
This project aims to integrate the Mufi-Lang compiler with the Zig language by using the
7+
Zig Build system. We hope to integrate more features with this language and see how nicely
88
we can utilize both languages in unity. The advantage of Zig's Build system is easy cross-compatibility and caching, and as we integrate more,
99
we can ensure more memory safety.
1010

1111
## Usage:
1212

1313
```shell
14-
$ mufiz --help
14+
$ mufiz --help
1515
-h, --help
1616
Displays this help and exit.
1717

@@ -30,90 +30,9 @@ $ mufiz --help
3030

3131
---
3232

33-
## Debug vs Release Modes
34-
35-
Now when building under the `Debug` optimize mode, MufiZ will contain the debugging macros
36-
that shows GC tracing, and chunk disassembly. These will be turned off when built under any of
37-
the other `Release*` optimize modes with command `zig build -Doptimize=`.
38-
39-
> Note: The following components are built under a specific optimize mode:
40-
>
41-
> - `libmufiz_scanner`: `ReleaseFast`
42-
> - Since this library doesn't involve memory management on the Zig side, we can prioritize performance.
43-
> - `libmufiz_table`: `ReleaseFast`
44-
> - Since this library doesn't involve memory management on the Zig side, we can prioritize performance.
45-
> - `clap`: `ReleaseSafe`
46-
> - Since this library involves components that require allocations, we prioritize safety.
47-
48-
---
49-
50-
## Installation
51-
52-
### Deb Package
53-
54-
```shell
55-
$ sudo dpkg -i mufiz_{version}_{target}.deb
56-
```
57-
58-
## APT
59-
60-
We host our official APT repository on Github on the [MufiZ-APT](https://github.com/Mustafif/MufiZ-APT) repository. To install using `apt` follow the instructions below:
61-
62-
```bash
63-
$ echo "deb [arch= {arch}, trusted=yes] https://mustafif.github.io/Mufi-APT mufiz main" | sudo tee /etc/apt/sources.list.d/mufiz.list
64-
$ sudo apt update && sudo apt upgrade
65-
$ sudo apt install mufiz
66-
```
67-
68-
Where `{arch}` is the architecture of your system.
69-
70-
Supported architectures are:
71-
72-
- amd64
73-
- i386
74-
- arm64
75-
- mipsel
76-
- mips64el
77-
- mips64
78-
- mips
79-
- powerpc
80-
- powerpc64
81-
- powerpc64le
82-
- riscv64
83-
84-
### RPM Package
85-
86-
```shell
87-
$ sudo rpm -i mufiz_{version}_{target}.rpm
88-
```
89-
90-
### Linux/MacOS Zip
91-
92-
```shell
93-
$ unzip mufiz_{version}_{target}.zip
94-
$ mv mufiz /usr/local/bin
95-
```
96-
97-
### Windows
98-
99-
- Download the `mufiz_{version}_{target}.zip` file from the releases page.
100-
- Extract the zip file to a directory of your choice.
101-
- Add the directory to your PATH environment variable.
102-
- Open a new terminal and run `mufiz --version` to verify the installation.
103-
104-
### Scoop
105-
You can also install on Windows for 64/32 bit and `arm64` using the Scoop package manager:
106-
107-
```pwsh
108-
scoop bucket add mufi-bucket https://github.com/mustafif/mufi-bucket
109-
scoop install mufi-bucket/MufiZ
110-
```
111-
112-
---
113-
11433
## Goal
11534

116-
> View [MufiZ Project Roadmap](https://github.com/users/Mustafif/projects/1) to see current goals I am currently working on or planning to implement for the current or next versions.
35+
> View [MufiZ Project Roadmap](https://github.com/users/Mustafif/projects/1) to see current goals I am currently working on or planning to implement for the current or next versions.
11736
11837
---
11938

@@ -127,8 +46,8 @@ scoop install mufi-bucket/MufiZ
12746
| 0.4.0 | [Voxl](https://github.com/Mustafif/MufiZ/releases/tag/v0.4.0) | Released |
12847
| 0.5.0 | [Luna](https://github.com/Mustafif/MufiZ/releases/tag/v0.5.0) | Released |
12948
| 0.6.0 | [Mars](https://github.com/Mustafif/MufiZ/releases/tag/v0.6.0) | Released |
130-
| 0.7.0 | [Jade](https://github.com/Mustafif/MufiZ/releases/tag/v0.7.0) | Latest |
131-
| 0.8.0 | [Ruby](https://github.com/Mustafif/MufiZ/releases/tag/next-experimental) | In Progress|
49+
| 0.7.0 | [Jade](https://github.com/Mustafif/MufiZ/releases/tag/v0.7.0) | Released |
50+
| 0.8.0 | [Ruby](https://github.com/Mustafif/MufiZ/releases/tag/v0.8.0) | Latest |
13251

13352
---
13453

@@ -141,6 +60,5 @@ To support various toolchains, we have added the following features to the proje
14160

14261
## Related Repositories
14362

144-
- [MufiZ-APT](https://github.com/Mustafif/MufiZ-APT): The official APT repository for MufiZ.
14563
- [homebrew-mufi](https://github.com/Mustafif/homebrew-mufi): The official Homebrew Tap for MufiZ.
14664
- [mufi-bucket](https://github.com/Mustafif/mufi-bucket): The official Scoop bucket for MufiZ.

ReleaseNotes/v0.8.0.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Release Notes for Ruby (0.8.0)
2+
3+
- Started on July 6th 2024.
4+
- Released on Dec 31 2024.
5+
6+
## New Features
7+
8+
- MufiZ is completely written in Zig now!
9+
10+
## Other Changes
11+
12+
- Better error messages and handling in `reallocate`
13+
- Changed to incremental GC from mark-sweep for better performance and less memory usage (has to be tested)
14+
- Simpler `fpm` command using `.fpm` file
15+
- Better `Value` organization and will continue to better organize Objects using bounded methods
16+
- Enabled `arm` to be compiled under `ReleaseSafe` optimization
17+
- Enabled `mipsel` toolchain
18+
19+
## Removals
20+
- Removed Array and Matrix support

bin/act

-15.7 MB
Binary file not shown.

0 commit comments

Comments
 (0)