Jiyu is an LLVM-powered, low-level language being developed for fun, with the following subgoals:
-Implement an appealing syntax that reduces friction and enables ease of refactoring.
-Have the ability to just drop the compiler and its dependencies into existing toolchains for cross-compiling.
-Be able to manipulate memory unencumbered.
Jiyu supports a full compile-time execution model along with a built-in API to harness the compiler as a library, and one may build a robust build-system in Jiyu for their project. However, for those that need to integrate Jiyu code into a pre-existing code-base with an already established build system, Jiyu also supports common command-line switches for generating just a .o/.obj file, setting the target triple for cross-compiling, or just specifying the name of the output executable. This makes Jiyu simple to integrate into an IDE, such as Xcode, a CMake system, or a script.
The language currently features:
-Syntax inspired by Swift and Jai
-Swift-style polymorphic/template functions
-Compile-time execution
-Cross-compilation
-Scope-relative static-if
-Type-aliases and structs
-Struct-member functions
-Calling into C-code
-Self-contained modules
-Multiline strings
-Importing C declarations and headers
Runtime-type-infomation, template structs, and strict-type-aliases are planned features.
1
2
3
4
5
6
7
8
9
10
11
12 | #clang_import
"""
#include <stdio.h>
""";
func @metaprogram main(argc: int32, argv: **uint8) {
printf("Hello, Sailor!\n");
var file = fopen("myfile.txt", "wb");
fwrite("Hello, Pilot!\n".data, 1, 14, file);
fclose(file);
}
|