pedrocarlo
dc901a019c
implement true_unary + false_unary
2025-06-11 11:32:18 -03:00
pedrocarlo
176ec3b0ea
adjustments to binary functions + backtrack return Option<T> + start of unary Predicate
2025-06-11 11:32:18 -03:00
pedrocarlo
c12fc23516
extract logic for binary generation outside of predicate.rs
2025-06-11 11:32:18 -03:00
pedrocarlo
7385ac96ec
clippy
2025-06-11 11:32:18 -03:00
pedrocarlo
5a1bacc760
adjust generation for ast::Expr
2025-06-11 11:32:17 -03:00
pedrocarlo
62e7b1f64c
fix generation for string literal in a different place + simplify test assertion
2025-06-11 11:32:17 -03:00
pedrocarlo
470093ca03
fix generation for string literal
2025-06-11 11:32:17 -03:00
pedrocarlo
fac4b4e6fb
fix generation and expr evaluation
2025-06-11 11:32:17 -03:00
pedrocarlo
9f2608bded
remove previous predicate struct and rewrite generation with the new the struct
2025-06-11 11:32:17 -03:00
pedrocarlo
3e369b9dde
drop in replacement for predicate that uses ast::Expr under the hood
2025-06-11 11:32:17 -03:00
pedrocarlo
f535ff1398
add optional serde implementations for parser ast
2025-06-11 11:32:17 -03:00
pedrocarlo
f1146e716c
inital implementation for ast generation
2025-06-11 11:32:06 -03:00
Jussi Saurio
0acce8d035
Merge 'Simulator: Better Shrinking' from Pedro Muniz
...
This PR attempts to get the specific query that failed in the simulator
and get the correct tables that were used in the Query. Also, implements
a fix where after clearing miscellaneous queries, we did not check again
if the the interaction still referenced any of the tables that were
involved in the failure.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #1712
2025-06-11 09:45:48 +03:00
pedrocarlo
cf1983ccfe
retain the last failing interaction + remove select properties
2025-06-11 03:14:31 -03:00
pedrocarlo
63cf648e2e
filter for the tables that the failing query depended on + second pass after query clear
2025-06-11 02:52:26 -03:00
pedrocarlo
82538dbe8e
add integrity_check to sim
2025-06-10 12:17:59 -03:00
pedrocarlo
f3ef60e1f1
use anyhow in simulator for lazily evaluated error context instead of eager evaluation with .or
2025-06-10 10:50:39 -03:00
pedrocarlo
0f2849f7e1
serde and serde_json as workspace dependencies
2025-06-09 11:38:15 -03:00
Pekka Enberg
9f17be8162
Merge 'simulator: log the interaction about to be executed with INFO' from Jussi Saurio
...
I think this is useful to see, without having to drop down to DEBUG and
seeing all the other stuff.
Closes #1655
2025-06-04 10:20:54 +03:00
Jussi Saurio
e53ac59532
Fix assertion failing on 100 != 99.99999999999999999999
2025-06-04 09:28:26 +03:00
Jussi Saurio
5680326881
sim: add CREATE INDEX to interactions
2025-06-04 09:21:59 +03:00
pedrocarlo
1c424818aa
simulator options to disable certain query types
2025-06-03 22:21:40 -03:00
Jussi Saurio
e260a72447
sim: log the interaction about to be executed with INFO
...
I think this is useful to see, without having to drop down to DEBUG
and seeing all the other stuff.
2025-06-03 15:50:34 +03:00
Jussi Saurio
51e3a04668
simulator: add option to disable BugBase
2025-06-02 12:14:35 +03:00
Pere Diaz Bou
8ee7228c43
simulator: log to file too
...
most of the time debugging the log of a simulator run is spent reading
from a file for convinience. Let's just log to a file too.
2025-05-30 11:10:17 +02:00
Pere Diaz Bou
83db9be818
log seed creating plan
2025-05-30 11:04:19 +02:00
Pere Diaz Bou
1ca67d0092
remove dumb log
2025-05-30 11:03:09 +02:00
Pere Diaz Bou
d3495238c4
set default level info and log seed at startup
2025-05-30 11:02:05 +02:00
Pere Diaz Bou
8ec7e616b4
simulator: switch to tracing, run io.run_once and add update queries
...
* Without tracing crate we cannot log anything that happens in
limbo_core
* IO never ran in step loop inside simulator.
* Added update queries (which currently loop forever for some reason I'm
debugging).
2025-05-30 10:57:13 +02:00
Pekka Enberg
05df548b10
core/io: Add wait_for_completion() to I/O dispatcher
2025-05-27 13:47:40 +03:00
Pekka Enberg
eca9a5b703
core/io: Switch to Arc<Completion>
2025-05-27 11:28:49 +03:00
Pekka Enberg
e3f71259d8
Rename OwnedValue -> Value
...
We have not had enough merge conflicts for a while so let's do a
tree-wide rename.
2025-05-15 09:59:46 +03:00
Diego Reis
d9bf383507
core/io: Untie MemoryIO's lifetime of the IO layer
2025-04-13 11:10:06 -03:00
Diego Reis
79f8b83cbe
Fix dumb clippy errors
2025-04-13 11:10:06 -03:00
alpaylan
e13b5bc698
fix min/max-tests bug
2025-04-11 15:33:32 -04:00
alpaylan
9d08693e8f
add simulator subcommands
2025-04-11 14:10:12 -04:00
alpaylan
d4707fe391
add non-zero exit code in case of failures, remove the interactive initalization option in bug base for now, fix bugs in differential mode, add detailed information regarding runs to the bug base
2025-04-11 11:23:03 -04:00
alpaylan
d96906ebc3
update simulator readme
2025-04-09 14:02:58 -04:00
alpaylan
64c2917e81
add bug base, refactor
2025-04-08 17:48:16 -04:00
Avinash Sajjanshetty
3543e83b91
Impl Clock trait in bindings
2025-04-06 23:34:15 +05:30
Pekka Enberg
8caa234df3
simulator: Reduce info-level logging
...
Make the simulator less noisy for casual runs.
2025-03-28 08:10:57 +02:00
Pere Diaz Bou
9291f60722
Introduce Register struct
...
OwnedValue has become a powerhouse of madness, mainly because I decided
to do it like that when I first introduced AggContext. I decided it was
enough and I introduced a `Register` struct that contains `OwnedValue`,
`Record` and `Aggregation`, this way we don't use `OwnedValue` for
everything make everyone's life harder.
This is the next step towards making ImmutableRecords the default
because I want to remove unnecessary allocations. Right now we clone
OwnedValues when we generate a record more than needed.
2025-03-27 17:53:02 +01:00
Pere Diaz Bou
004dc374b2
bump rusqlite to 0.34
2025-03-25 14:17:31 +01:00
pedrocarlo
ffc2e12a83
lock anarchist generator dependecy to 0.12
2025-03-06 15:52:20 -03:00
Pekka Enberg
96175cccf7
cli: Add --experimental-mvcc option to enable MVCC
2025-03-06 10:16:42 +02:00
Pere Diaz Bou
8daf7666d1
Make database Sync + Send
2025-03-05 14:07:48 +01:00
Pekka Enberg
936ae307b7
core: Kill value type
...
We currently have two value types, `Value` and `OwnedValue`. The
original thinking was that `Value` is external type and `OwnedValue` is
internal type. However, this just results in unnecessary transformation
between the types as data crosses the Limbo library boundary.
Let's just follow SQLite here and consolidate on a single value type
(where `sqlite3_value` is just an alias for the internal `Mem` type).
The way this will eventually work is that we can have bunch of
pre-allocated `OwnedValue` objects in `ProgramState` and basically
return a reference to them all the way to the application itself, which
extracts the actual value.
2025-02-26 10:57:45 +02:00
alpaylan
39b11812ea
bump rusqlite to 0.33.0 from 0.29.0
2025-02-18 15:13:15 -05:00
meteorgan
744df6eedf
fix some typo
2025-02-13 23:03:41 +08:00
alpaylan
babf33bafa
fix formatting
2025-02-11 14:15:00 -05:00