Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Ivo Balbaert committed Jul 28, 2024
2 parents 1269aca + 2fd0b8c commit 27a3ab9
Show file tree
Hide file tree
Showing 121 changed files with 524 additions and 253 deletions.
92 changes: 48 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,53 +7,57 @@ If you find mistakes, ambiguities, things that are not clear, please create an i
The text is backed by some 300 complete working Jai examples and growing. They are all tested at each new version of the Jai compiler, so this text and code will never get outdated.

Many thanks to Daniel Tan for setting up the [Jai-Community](https://jai.community/) and the [Jai Wiki](https://github.com/Jai-Community/Jai-Community-Library/wiki).
Also thanks to mehlian, seneca and Jakub Arnold(@darthdeus) for their remarks and contributions.
Also thanks to mehlian, seneca, ramin-asadi-2021 and Jakub Arnold(@darthdeus) for their remarks and contributions.

[Contents adapted and code tested to compile/run with Jai version beta 0.1.059, built on 17 March 2023]
[Text content adapted and code tested to compile/run with Jai version beta 0.1.072]

_Table of Contents_

[0 - Preface](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/0_Preface.md)
[1 - What is Jai?](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/1_What_is_Jai.md)
[2 - Setting up a Jai development environment](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/2_Setting_up_a_Jai_Development_Environment.md)
[3 - Compiling and running your first program](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/3_Compiling_and_running_your_first_program.md)
[4 - More info about the compiler](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/4_More_info_about_the_compiler.md)
[5 - Constants, variables, types and operations](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/5_Constants%2C%20variables%2C%20types%20and%20operations.md)
[6 - Bool and number types](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/6_bool_and_number_types.md)
[7 - Scope of variables](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/7_Scope_of_Variables.md)
[8 - Modules - Structuring the code of a project](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/8_Modules_-_Structuring_the_code_of_a_project.md)
[9 - More about types](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/9_More_about_types.md)
[10 - What are pointers?](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/10_What_are_pointers.md)
[11 - Memory allocations](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/11_Allocating%20and%20freeing%20memory.md)
[12 - Basics of structs](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/12_Basics%20of%20structs.md)
[13 - Unions and enums](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/13_Unions%20and%20enums.md)
[14 - Branching with if else](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/14_Branching_with_if_else.md)
[15 - Looping with while and for](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/15_Looping%20with%20while%20and%20for.md)
[16 - Types in depth](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/16_Types%20in%20depth.md)
[17 - Basics of procedures](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/17_Basics%20of%20procedures.md)
[18 - Arrays](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/18_Arrays.md)
[19 - Working with strings](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/19_Working_with_Strings.md)
[20 - Debugging](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/20_Debugging.md)
[21 - Memory Allocators and Temporary Storage](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/21_Memory_Allocators_and_Temporary_Storage.md)
[22 - Polymorphic procedures](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/22_Polymorphic%20procedures.md)
[23 - Polymorphic arrays and structs](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/23_Polymorphic%20arrays_and_structs.md)
[24 - Operator overloading](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/24_Operator_Overloading.md)
[25 - Context](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/25_Context.md)
[26 - Metaprogramming](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/26_Metaprogramming.md)
[0 - Preface](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/00A_Preface.md)
[1 - What is Jai?](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/01A_What_is_Jai.md)
[2 - Setting up a Jai development environment](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/02A_Setting_up_a_Jai_Development_Environment.md)
[3 - Compiling and running your first program](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/03A_Compiling_and_running_your_first_program.md)
[4 - More info about the compiler](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/04A_More_info_about_the_compiler.md)
[5 - Constants, variables, types and operations](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/05A_Constants_variables_types_and_operations.md)
[6 - Bool and number types](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/06A_bool_and_number_types.md)
[7 - Scope of variables](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/07A_Scope_of_Variables.md)
[8 - Modules - Structuring the code of a project](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/08A_Modules_-_Structuring_the_code_of_a_project.md)
[9 - More about types](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/09A_More_about_types.md)
[10 - What are pointers?](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/10A_What_are_pointers.md)
[11 - Memory allocations](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/11A_Allocating_and_freeing_memory.md)
[12 - Basics of structs](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/12A_Basics_of_structs.md)
[13 - Unions and enums](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/13A_Unions_and_enums.md)
[14 - Branching with if else](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/14A_Branching_with_if_else.md)
[15 - Looping with while and for](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/15A_Looping_with_while_and_for.md)
[16 - Types in depth](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/16A_Types_in_depth.md)
[17 - Basics of procedures](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/17A_Basics_of_procedures.md)
[18 - Arrays](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/18A_Arrays.md)
[19 - Working with strings](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/19A_Working_with_Strings.md)
[20 - Debugging](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/20A_Debugging.md)
[21 - Memory Allocators and Temporary Storage](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/21A_Memory_Allocators_and_Temporary_Storage.md)
[22 - Polymorphic procedures](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/22A_Polymorphic_procedures.md)
[23 - Polymorphic arrays and structs](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/23A_Polymorphic_arrays_and_structs.md)
[24 - Operator overloading](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/24A_Operator_Overloading.md)
[25 - Context](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/25A_Context.md)
[26 - Metaprogramming](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/26A_Metaprogramming.md)
[26B - Macros](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/26B_Macros.md)
[26C - Applications of Metaprogramming](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/26C_Applications%20of%20Metaprogramming.md)
[27 - Working with files](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/27_Working_with_Files.md)
[28 - Inline assembly](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/28_Inline_Assembly.md)
[29 - Interacting with C](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/29_Interacting%20with%20C.md)
[30 - Integrated build system](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/30_Integrated_build_system.md)
[30B - Manipulating the build process](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/30B_Manipulating%20the%20build%20process.md)
[31 - Working with threads](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/31_Working%20with%20threads.md)
[32 - Working with processes](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/32_Working%20with%20processes.md)
[33 - Graphical(GUI) modules](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/33_Graphical%20modules.md)
[35 - External modules](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/35_External_modules.md)
[36 - Plugins](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/36_Plugins.md)

[50 - The guessing game](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/50_The%20guessing%20game.md)
[51 - The game of life](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/51_The%20Game%20of%20Life.md)
[52 - The pong game](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/52_The%20Pong%20game.md)
[26C - Applications of Metaprogramming](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/26C_Applications_of_Metaprogramming.md)
[27 - Working with files](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/27A_Working_with_Files.md)
[28 - Inline assembly](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/28A_Inline_Assembly.md)
[29 - Interacting with C](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/29A_Interacting_with_C.md)
[30 - Integrated build system](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/30A_Integrated_build_system.md)
[30B - Manipulating the build process](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/30B_Manipulating_the_build_process.md)
[31 - Working with threads](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/31A_Working_with_threads.md)
[32 - Working with processes](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/32A_Working_with_processes.md)
[33 - Graphical(GUI) modules](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/33A_Graphical_modules.md)
[35 - External modules](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/35A_External_modules.md)
[36 - Plugins](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/36A_Plugins.md)

[50 - The guessing game](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/50A_The_guessing_game.md)
[51 - The game of life](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/51A_The_Game_of_Life.md)
[52 - The pong game](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/52A_The_Pong_game.md)

[65 - Applications written in Jai](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/65A_Applications_written_in_Jai.md)


File renamed without changes.
2 changes: 1 addition & 1 deletion book/1_What_is_Jai.md → book/01A_What_is_Jai.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ Why is Jai ground-breaking? Jai is so important because it is an effort to build

Don’t worry if some concepts are not yet clear! We will experience these characteristics first hand as we grow more and more acquainted with Jai in the coming chapters.

[1B - What is Jai - more in depth](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/1B_What_is_Jai%20-%20more%20in%20depth.md)
[1B - What is Jai - more in depth](https://github.com/Ivo-Balbaert/The_Way_to_Jai/blob/main/book/01B_What_is_Jai_-_more_in_depth.md)
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ Jai will be released gradually, in this order:
- Licensing to prevent `embrace, extend, extinguish `tactics of larger companies will be added.

Jai is pronounced /dʒɑɪ/ 1, rhyming with ‘chai’, like the tea.
The name "Jai" means victory (जय) in Hindi, Indian languages, or also "Just Another Idea", or j.a.i. - Jonathan’s awesome idea. The Jai language is also often called The Language by Jonathan Blow, indicating that the name could be changed.
The name "Jai" means victory (जय) in Hindi, Indian languages, or also "Just An Identifier" or "Just Another Idea", or j.a.i. - Jonathan’s awesome idea. The Jai language is also often called The Language by Jonathan Blow, indicating that the name could be changed.

## 1.5 Specific Jai features

Expand Down Expand Up @@ -197,4 +197,5 @@ Blow's videos about the design and making of Jai are very popular: They get view
2022 Nov 13: 300 people on Discord
2022 Dec 12: 328 people enrolled in the closed beta
2023 Jan 2: 349 people enrolled in the closed beta
2023 Feb 21: Reddit subscribers: 1762
2023 Feb 21: Reddit subscribers: 1762
2023 Jun 20: 550 people enrolled in the closed beta
Loading

0 comments on commit 27a3ab9

Please sign in to comment.