Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
9d54013
add GroupIndex function
Apr 30, 2026
925d8fc
add ListGroup function
Apr 30, 2026
571673f
revert -Rpass=loop-vectorize
Apr 30, 2026
3655056
remove useless file
Apr 30, 2026
54d5608
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
Apr 30, 2026
0d20a39
optimize FilterByBitmap function
Apr 30, 2026
1fb46f0
fix cmake build engine_benchmark
Apr 30, 2026
b43161e
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
Apr 30, 2026
dbfc16b
add ListLookup, ListCompactPositions, ListCompactIndex, ListGather fu…
May 6, 2026
b24ed2e
revert build
May 6, 2026
a0b2f5e
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 6, 2026
ef4fc22
add Find function
May 6, 2026
03351d9
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 6, 2026
bdd8986
add CrossJoin function
May 6, 2026
5fa713b
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 6, 2026
f8f3618
add ZipConcat
May 6, 2026
bbe0fd4
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 6, 2026
724277b
add Bucketize function
May 6, 2026
144fe19
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 6, 2026
edbd0a0
fix comment
May 6, 2026
f24daec
optimize scope_stack
May 6, 2026
1660ba8
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 7, 2026
13a803d
in function change to exact match
May 7, 2026
15b7617
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 7, 2026
42fc271
const list type and const string type optimize with llvm::constant type
May 7, 2026
9bb275e
remove useless option
May 7, 2026
7b29b76
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 7, 2026
ee61301
engine support save and load
May 7, 2026
55246ac
format
May 7, 2026
45bac1b
format code
May 7, 2026
eba8155
remove useless code
May 7, 2026
e8ad4f5
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 7, 2026
f598d56
fix readme
May 7, 2026
23db0b8
add sign
May 7, 2026
57feb2e
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 7, 2026
e8419de
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 7, 2026
36d5b18
disassembling Athena
May 8, 2026
d010645
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 8, 2026
511a2ff
support skip LoadCompiled check with LoadCompiledOptions
May 8, 2026
061798e
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 8, 2026
a8a7566
update gh_pages
May 8, 2026
640709c
fix deploy
May 8, 2026
0f9e767
fix deploy
May 8, 2026
2b94b66
fix deploy
May 8, 2026
6284728
fix deploy
May 8, 2026
bd798d7
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 8, 2026
4cafbe3
Revert "fix delpoy (#256)" (#257)
viktorika May 8, 2026
fc1f6fd
revert
May 8, 2026
6d25adf
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 8, 2026
2504f11
optimize FilterByBitmap
May 8, 2026
ab7ee55
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 8, 2026
fc5135f
Athena DSL support comment
May 9, 2026
667336d
add sign
May 9, 2026
9528f17
update readme
May 9, 2026
ee383a4
remove useless comment
May 9, 2026
9818e75
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 9, 2026
678a48a
update version to 1.3.0
May 9, 2026
a299a53
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 9, 2026
21050a6
optimize ListLookupIndex
May 11, 2026
19e7ffd
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 11, 2026
35c752f
remove transfer exec_ctx args
May 11, 2026
c88793f
test and benchmark remove exec_ctx node
May 11, 2026
d08b221
README update exec_ctx description
May 11, 2026
387639d
update remove exec_ctx use
May 11, 2026
e803b1c
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 11, 2026
7b40525
update version
May 11, 2026
63970a9
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
May 11, 2026
3a4bc41
optimize hashmap reserve
Jul 7, 2026
48ea55e
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
Jul 7, 2026
0ff58bb
array instead of vector
Jul 9, 2026
bdaf803
Merge branch 'main' of https://github.com/viktorika/JitFusion into dev
Jul 9, 2026
c18845b
remove useless code
Jul 14, 2026
fe1b3d0
support let syntax for athena
Jul 15, 2026
d7ae166
readme update let syntax describe
Jul 15, 2026
8003257
solve conflict
Jul 15, 2026
9764c29
optimize code
Jul 15, 2026
b26e481
clang-tidy fix
Jul 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion athena/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Both classes live in `namespace athena`, are declared in the same header

* 1.The execution process of the entire program is determined by each statement, with each statement ending with a semicolon ";".

* 2.The format of a statement must be constructed as follows: {ID} = {Expression}, where ID is understood as a variable name and Expression is an expression. Of course, you can also use just an expression without an ID, and it is still valid.
* 2.The format of a statement must be constructed as follows: {ID} = {Expression}, where ID is understood as a variable name and Expression is an expression. Of course, you can also use just an expression without an ID, and it is still valid. You can also use `let` to declare a constant variable: `let {ID} = {Expression}`. A `let`-declared variable cannot be reassigned later (including inside `when` branches). Attempting to reassign a `let` variable or redeclare an existing variable with `let` will result in a compile-time error.

* 3.In addition to supporting various operations, expressions also support several types of special syntax. Function syntax: {function_name}({arg1}, {arg2}, ...). It also supports switch statements and if statements. Following the principle of simplicity, the syntax for switch and if statements is similar to function syntax: if({condition}, {true_expression}, {false_expression}), switch({case1}, {value1}, {case2}, {value2}..., {default_value}).

Expand Down
16 changes: 8 additions & 8 deletions athena/ast_builder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Status ProgramAstBuilder::BuildExpression(const std::string& code, std::unique_p
}

Status ProgramAstBuilder::BuildPipeline(const std::string& code, std::unique_ptr<ExecNode>* result) {
std::vector<std::string> names;
std::vector<jitfusion::VarInfo> var_infos;
std::vector<std::unique_ptr<ExecNode>> args;
statements_.clear();
var2index_.clear();
Expand All @@ -51,13 +51,13 @@ Status ProgramAstBuilder::BuildPipeline(const std::string& code, std::unique_ptr
if (!custom_error_message_.empty()) {
return Status::ParseError(custom_error_message_);
}
names.reserve(statements_.size());
var_infos.reserve(statements_.size());
args.reserve(statements_.size());
for (auto& statement : statements_) {
names.emplace_back(std::move(statement.var_name));
var_infos.emplace_back(std::move(statement.var_name), statement.is_const);
args.emplace_back(std::move(statement.expression));
}
auto root = std::unique_ptr<ExecNode>(new NoOPNode(std::move(names), std::move(args)));
auto root = std::unique_ptr<ExecNode>(new NoOPNode(std::move(var_infos), std::move(args)));
*result = std::move(root);
return Status::OK();
}
Expand Down Expand Up @@ -102,15 +102,15 @@ void ProgramAstBuilder::EnterBlock() {
}

std::unique_ptr<ExecNode> ProgramAstBuilder::LeaveBlock() {
std::vector<std::string> names;
std::vector<jitfusion::VarInfo> var_infos;
std::vector<std::unique_ptr<ExecNode>> args;
names.reserve(statements_.size());
var_infos.reserve(statements_.size());
args.reserve(statements_.size());
for (auto& stmt : statements_) {
names.emplace_back(std::move(stmt.var_name));
var_infos.emplace_back(std::move(stmt.var_name), stmt.is_const);
args.emplace_back(std::move(stmt.expression));
}
auto block_node = std::unique_ptr<ExecNode>(new NoOPNode(std::move(names), std::move(args)));
auto block_node = std::unique_ptr<ExecNode>(new NoOPNode(std::move(var_infos), std::move(args)));

auto& outer = block_stack_.back();
statements_ = std::move(outer.statements);
Expand Down
3 changes: 3 additions & 0 deletions athena/ast_builder.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,16 @@ struct Statement {
Statement() = default;
Statement(std::string vname, std::unique_ptr<jitfusion::ExecNode> exp)
: var_name(std::move(vname)), expression(std::move(exp)) {}
Statement(std::string vname, std::unique_ptr<jitfusion::ExecNode> exp, bool is_const_var)
: var_name(std::move(vname)), expression(std::move(exp)), is_const(is_const_var) {}
explicit Statement(std::unique_ptr<jitfusion::ExecNode> exp) : expression(std::move(exp)) {}
~Statement() = default;
Statement(Statement&& s) = default;
Statement& operator=(Statement&& other) = default;

std::string var_name;
std::unique_ptr<jitfusion::ExecNode> expression;
bool is_const{false};
};

class ProgramAstBuilder {
Expand Down
Loading
Loading