Skip to content

Conversation

@shadaj
Copy link
Member

@shadaj shadaj commented Jul 1, 2022

No description provided.

@shadaj shadaj force-pushed the datalog-compiler branch 2 times, most recently from 2e6adb9 to 6eebb2a Compare July 1, 2022 04:07
@shadaj shadaj force-pushed the datalog-compiler branch from e54ada0 to 5c62cbe Compare August 3, 2022 23:15
@shadaj shadaj force-pushed the datalog-compiler branch 3 times, most recently from 6de39f3 to 3ef6e89 Compare August 18, 2022 23:34
@shadaj shadaj marked this pull request as ready for review August 23, 2022 04:22
Copy link
Member

@MingweiSamuel MingweiSamuel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!!

Couple comments before diving in:

let (in_send, in_recv) = tokio::sync::mpsc::unbounded_channel::<(usize, usize)>();
...
.input in

Wouldn't it make sense to make the input .input in_recv so no _send/_recv convention needs to be enforced?

  1. Snapshot testing will be fragile and the codegen will definitely change in the future so we should eventually find a better way to test

@shadaj
Copy link
Member Author

shadaj commented Aug 23, 2022

Yeah perhaps we should snashot test the surface syntax or something higher level. Since we do have runtime tests, snapshots are mostly for my sanity of manually inspecting how changes affect different examples.

Copy link
Member

@MingweiSamuel MingweiSamuel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be good to have some high-level comments through the big function. Or split into a few smaller functions if that makes sense.

got a bit nit-ey in the review :P

@shadaj shadaj merged commit fd3867f into main Aug 24, 2022
@shadaj shadaj deleted the datalog-compiler branch August 24, 2022 05:53
nickjiang2378 pushed a commit to nickjiang2378/hydroflow that referenced this pull request Jan 24, 2024
* Implement parser for datalog and set up proc macro infra

* Eliminate boxing of fields in Datalog grammar

* Allow Souffle style trailing dot

* Update rust-sitter

* Initial graph creation logic

* Update snapshots

* Update to latest main

* cargo fmt

* Initial hacked up join implementation

* Properly handle target bindings

* Fix rules without a join

* Move grammar to separate file

* Add tees so that relations can be used multiple times

* Fix other tests

* Tee all relations

* Support multiple contributors to one relation

* Add transitive closure test

* Support single column relations

* Emit outputs to mpsc

* Don't augment input/output names

* Expand transitive closure test

* Add join-with-self test that requires deterministic codegen

* Address feedback

* Extract join generation logic to a separate function

* Eliminate assumption of usize columns

* Rename datalog_compiler => hydroflow_datalog
nickjiang2378 pushed a commit to nickjiang2378/hydroflow that referenced this pull request Jan 25, 2024
* Implement parser for datalog and set up proc macro infra

* Eliminate boxing of fields in Datalog grammar

* Allow Souffle style trailing dot

* Update rust-sitter

* Initial graph creation logic

* Update snapshots

* Update to latest main

* cargo fmt

* Initial hacked up join implementation

* Properly handle target bindings

* Fix rules without a join

* Move grammar to separate file

* Add tees so that relations can be used multiple times

* Fix other tests

* Tee all relations

* Support multiple contributors to one relation

* Add transitive closure test

* Support single column relations

* Emit outputs to mpsc

* Don't augment input/output names

* Expand transitive closure test

* Add join-with-self test that requires deterministic codegen

* Address feedback

* Extract join generation logic to a separate function

* Eliminate assumption of usize columns

* Rename datalog_compiler => hydroflow_datalog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants