diff --git a/src/api/environment/command-line-arguments.md b/src/api/environment/command-line-arguments.md index b9a6ee2..360f9ec 100644 --- a/src/api/environment/command-line-arguments.md +++ b/src/api/environment/command-line-arguments.md @@ -26,6 +26,6 @@ int main(int argc, char *argv[], char *envp[]) { } ``` -::: tip +::: info JuleC generates IR wich is calls the setup function in entry point by default. ::: diff --git a/src/api/environment/environment-variables.md b/src/api/environment/environment-variables.md index ebe54f0..33baffe 100644 --- a/src/api/environment/environment-variables.md +++ b/src/api/environment/environment-variables.md @@ -26,6 +26,6 @@ int main(int argc, char *argv[], char *envp[]) { } ``` -::: tip +::: info JuleC generates IR wich is calls the setup function in entry point by default. ::: diff --git a/src/common-concepts/enums.md b/src/common-concepts/enums.md index c7a1ede..b090508 100644 --- a/src/common-concepts/enums.md +++ b/src/common-concepts/enums.md @@ -14,7 +14,7 @@ fn main() { } ``` As seen in the example above, there is an enumeration definition. If you do not assign a value to the enumeration elements, the index value is automatically assigned. In this case, the element `both` in the example above has the value `2`. -::: tip +::: info - You can use an element before them as a value in enumerations. - Enumerations has `int` data type by default. ::: diff --git a/src/common-concepts/maps.md b/src/common-concepts/maps.md index 233eeec..9483a33 100644 --- a/src/common-concepts/maps.md +++ b/src/common-concepts/maps.md @@ -1,6 +1,6 @@ # Maps Maps is a hashmap. Maps a unique key value to a value. -::: tip +::: info Map values ​​are not kept in the inserted order. Hence iterations etc. It's very likely that you don't get a sequential output in actions. ::: diff --git a/src/common-concepts/variables.md b/src/common-concepts/variables.md index 6c6d06c..8449722 100644 --- a/src/common-concepts/variables.md +++ b/src/common-concepts/variables.md @@ -69,7 +69,7 @@ For example: static my_int: int = 20 ``` -::: tip +::: info C++ linked variables can't be static. ::: @@ -110,7 +110,7 @@ fn main() { } ``` -::: tip +::: info C++ linked globals can be declare via `let` keyword. ::: diff --git a/src/compiler/backend/cpp-backend-compilers/clang.md b/src/compiler/backend/cpp-backend-compilers/clang.md index 7478acb..ef65583 100644 --- a/src/compiler/backend/cpp-backend-compilers/clang.md +++ b/src/compiler/backend/cpp-backend-compilers/clang.md @@ -2,6 +2,13 @@ Clang is a C/C++ compiler using LLVM. Jule gives priority support to Clang and is recommended to be used with Clang whenever possible. Jule and related projects use Clang as the backend compiler and are primarily tested for Clang. +## Why Do We Recommend Clang? + +- Clang has descriptive and informative compiler messages. +- Clang has fast compilation performance. +- Clang has low memory footprint. +- Clang provides a reliable experience for Jule. + ## Clang on Windows The [MSVC](/compiler/backend/cpp-backend-compilers/#msvc-compatibility) section mentions Jule's support for MSVC. You may want to use Clang on Windows. There is a Clang build we recommend so you can do this. It uses the MinGW toolchain. Compatible with compiling Jule IRs by default. diff --git a/src/compiler/directives.md b/src/compiler/directives.md index 47023c1..0eb96a7 100644 --- a/src/compiler/directives.md +++ b/src/compiler/directives.md @@ -1,7 +1,7 @@ # Directives Compiler directives (or pragma), they are statements that describe how the compiler should handle the source code. Directives are safe to use. Each one is essentially a comment. Any part or directive that is incorrect is considered invalid. You won't get a headache with any compiler errors. -::: tip +::: info Incorrect directives will cause compiler errors if necessary. ::: @@ -67,7 +67,7 @@ Directive pass is a top directive. Passes compiler flags to generated compile command for compiling source code. Passes are must be start with dash. -::: tip +::: info There are no issue if you are using same passes. The compiler eliminates duplicate passes. ::: diff --git a/src/cpp/interoperability/types.md b/src/cpp/interoperability/types.md index 830d756..f125fe1 100644 --- a/src/cpp/interoperability/types.md +++ b/src/cpp/interoperability/types.md @@ -9,7 +9,7 @@ cpp type char: byte ``` ::: tip -If the types you use do not belong to Jule, if you are linking from C/++, make sure to use the types you link, even if you have a compatible Jule type. This is important for your type safety. +If the types you use do not belong to Jule, if you are linking from C/C++, make sure to use the types you link, even if you have a compatible Jule type. This is important for your type safety. ::: ## Linking Type Aliases diff --git a/src/getting-started/install-from-source/manual-compilation.md b/src/getting-started/install-from-source/manual-compilation.md index 0006825..bb75caa 100644 --- a/src/getting-started/install-from-source/manual-compilation.md +++ b/src/getting-started/install-from-source/manual-compilation.md @@ -15,9 +15,9 @@ julec -o ./bin/julec ./src/julec There are a few recommendations for getting the best JuleC build for manual compilation and Jule developers. Considering these recommendations can help the JuleC build you use during development to offer the best performance. -### C++ Version +### C++ Standard -Instead of the default version, it would be better for you to use ``c++17``. +Instead of the default standard, it would be better for you to use ``c++17``. JuleC is dependent on several headers from ``c++17``. Even if you can compile with ``c++14``, compiling with ``c++17`` can provide a smoother experience for you. diff --git a/src/standard-library/std-jule-sema.md b/src/standard-library/std-jule-sema.md index f28b539..279af90 100644 --- a/src/standard-library/std-jule-sema.md +++ b/src/standard-library/std-jule-sema.md @@ -80,7 +80,7 @@ struct Enum { } ``` Enum. -::: tip +::: info **Implemented Traits**\ - Kind ::: @@ -116,7 +116,7 @@ struct Data { } ``` Value data. -::: tip +::: info **Implemented Traits**\ - Kind ::: @@ -577,7 +577,7 @@ struct ParamIns { } ``` Parameter instance. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -600,7 +600,7 @@ struct FnIns { } ``` Function instance. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -675,7 +675,7 @@ struct ImportInfo { ``` Import information.\ Represents imported package by use declaration. -::: tip +::: info **Implemented Traits** - Lookup ::: @@ -688,7 +688,7 @@ struct Package { } ``` Package. -::: tip +::: info **Implemented Traits** - Lookup ::: @@ -995,7 +995,7 @@ struct StructIns { } ``` Structure instance. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1037,7 +1037,7 @@ struct SymbolTable { } ``` Structure instance. -::: tip +::: info **Implemented Traits** - Lookup ::: @@ -1055,7 +1055,7 @@ struct Trait { } ``` Trait. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1085,7 +1085,7 @@ struct TypeAlias { } ``` Type alias. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1100,7 +1100,7 @@ struct TypeKind { } ``` Type alias. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1164,7 +1164,7 @@ struct Prim { } ``` Primitive type. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1227,7 +1227,7 @@ struct Slc { } ``` Slice type. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1240,7 +1240,7 @@ struct Tuple { } ``` Tuple type. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1254,7 +1254,7 @@ struct Map { } ``` Map type. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1267,7 +1267,7 @@ struct Arr { } ``` Array type. -::: tip +::: info **Implemented Traits** - Kind ::: @@ -1280,7 +1280,7 @@ struct Ptr { } ``` Pointer type. -::: tip +::: info **Implemented Traits** - Kind :::