Skip to content
danieltan1517 edited this page Aug 31, 2022 · 102 revisions

Welcome

Welcome to the Jai Community Library Wiki!

This is the place to learn about Jai. Content will be developed by the community for the community.

If you are a Jai beta user and want to contribute, ask for an invite in the Jai Secret Beta Discord! Only members of the Jai-beta have writing access.

The awesome-jai repository collected resources regarding Jai up to now. This Wiki will continue the effort.

Table of Contents

  1. Home
  2. Overview
    1. History
    2. Licensing
    3. Current State
    4. Performance
    5. Compiler Internals
    6. Features
    7. What will NOT be in Jai
    8. Comparison with Other Languages
    9. Compiler Videos vs Current State of the Language
  3. Getting Started
    1. Running Jai
    2. Hello, World!
    3. #import and #load
    4. Variables, constants, and types
    5. Reserved Keywords and Identifiers
    6. Arrays
    7. Loops and Branching
    8. Functions
    9. Macros
    10. Structures
    11. Unions
    12. Enums
    13. Types and Type Info
  4. Advanced
    1. void Type and return
    2. Operator Overloading
    3. Polymorphism
    4. Context
    5. Modules
    6. Module Parameters
    7. Temporary Storage
    8. Stack Trace
    9. Compiler directives
    10. Program Entry Point Details
    11. Cache Alignment
    12. Inline Assembly
    13. Deprecated
  5. Metaprogramming
    1. Introduction
    2. Directives
    3. Default Metaprogram
    4. Workspaces
    5. Build Options
    6. Compiler Message Loop
    7. Compiler Messages
    8. Debug and Production Builds
    9. Running Tests
    10. Enforcing House Rules
    11. Generating and Using LLVM Bitcode
  6. Modules and Libraries
    1. Preload
    2. Basic
    3. Array
    4. File
    5. String
    6. Time
    7. Math
    8. GLFW
    9. SIMP
    10. Machine x64
    11. Process
    12. Threads
  7. Snippets
    1. println
    2. Swap Macro
    3. Resizable Arrays with Initial Size
    4. Pool Memory
    5. Measure Code Performance
    6. Blocking Console Input
    7. Abstracting Loops
    8. Ad-hoc Print Debugging
    9. Bytecode Debugger
    10. Unrolling Loops
    11. Using defer to Close Files
    12. Adding Import Path
    13. Relative Pointer-Based Strings
    14. Bake Structs
    15. Check if Variable on Stack
    16. Tagged Union
    17. BLSR Reset Lowest Set Bit
    18. Reversing 64-bits (asm)
    19. Intel Intrinsic SIMD
    20. Go-Style Channels
    21. for_each_member
    22. Interface/Trait
    23. Writing & Loading dynamic libraries
    24. OO with Macros
    25. Parent Type from Inner
    26. Optional
    27. Broadcaster
    28. Macro Pointer Cast
  8. References
    1. Community Libraries
    2. Example Code
    3. Other Guides and Documentation
    4. Tooling Ecosystem
    5. Resources
Clone this wiki locally