Skip to content

Commit

Permalink
minor improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
mertcandav committed Aug 12, 2023
1 parent c1a85ba commit 83ad9bb
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
13 changes: 10 additions & 3 deletions src/index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
# The Jule Programming Language
This version of the text assumes you're using the latest version of the JuleC compiler (compiled from source).\
\
\

Jule is a statically typed, compiled programming language. It's designed for systems programming, and for building maintainable and reliable software. Its goal is safe programming, memory safety, no undefined behavior and fast speed. It also integrates well with C/C++, making it easy to integrate and interop Jule code with existing C/C++ code.

Jule focuses on key features such as simplicity, maintainability, speed, performance, safety, efficiency and interoperability with C/C++. It uses reference counting for memory management. Immutable by default, and has no undefined behavior.

If you have used another programming language before, Jule's syntax will be familiar to you. It is readable and simple as possible. Since it has similar features to C++, it is compatible with popular compilers such as Clang and GCC, and Jule is self-compiling thanks to a bootstrapped compiler. The fact that the language has reached this level shows that it has matured. Also, compiler components such as lexer, parser and ast are provided as part of the standard library.

Cross-platform support is provided, making it easy to write platform-specific code and implement standard library functions such as file deletion, cross-platform. It supports most popular operating systems such as Windows, Linux and macOS, and most popular architetures such has ARM64, AMD64 and intel 386. Jule also provides cross-transpile support to compile your code on different systems.

::: tip
This version of the text assumes you're using the latest version of the JuleC compiler (compiled from source).

If you want to see the current manual version for the release, you can select the relevant version from the list below. But for this you will be redirected to the source code on GitHub and you will need to read the content from markdown.

List of manual version for each Jule releases:
- [Beta 0.0.3](https://github.com/julelang/manual/tree/jule-beta-0.0.3/src)
:::
5 changes: 2 additions & 3 deletions src/memory/memory-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Example to reference data type anotations:
You can't use as reference these types:
- Enum
- Pointer
- Reference
- Reference Type
- Array

### Initialization
Expand Down Expand Up @@ -130,9 +130,8 @@ All of these are minor overheads, but for performance-critical software, the dev
Some data types of Jule also use references in the background. This is because they reference each other the space they allocate. This is why some types use background references to minimize the amount of allocations. Therefore, they have additional overhead such as the additional atomicity of references and the memory space allocated for reference counting.

List of all types which is performs reference counting:
- Reference
- Reference Type
- Slice
- Any
- Trait

### Using References with Reference-Counted Types
Expand Down

0 comments on commit 83ad9bb

Please sign in to comment.