You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Originally, I'd set up the most basic set of constraints in an ILP program and pushed it through the solver. I realized, though, that without an objective function, it will just set all of the values to 1.0. So I chose the most basic objective I could: minimize the sum of all of the eclass boolean variables. In some sense, it's like extracting the smallest program, as we do with the normal egg extractor.
I started running into a bunch of problems, though, with the stack overflowing.
First, some routines inside of lp-modeler were not happy with the size of the model, it seemed. I was running into this problem: rust-or/rust-lp-modeler#37
Then, though I think (I'm not sure, should check) that I sidestepped those issues by avoiding having the problematic routines run in lp-modeler, I'm still getting stack overflows. Strangely, I'm having trouble tracking them down, too. They may also be happening during panic!(), as I've put some panic!()s in for testing. (A solution Jared suggested is to use exit() instead of panic!() to avoid unwinding the stack...there may be issues with this still on Mac).
I've tried upping the stack size, but initial testing doesn't seem to indicate that it's helping. Also, doing this in a sustainable way with cargo seems like a pain! I've been avoiding doing it, but may be stuck now.
I am also going to try running on the linux machine. Maybe the easiest way out.
The text was updated successfully, but these errors were encountered:
This seems to all be related to the fact that I need to recurse through the egraph, which is seemingly always going to cause a stack overflow on my Mac. And upping the stack size on Mac doesn't seem trivial.
Strange bug I've been hunting all day.
Originally, I'd set up the most basic set of constraints in an ILP program and pushed it through the solver. I realized, though, that without an objective function, it will just set all of the values to 1.0. So I chose the most basic objective I could: minimize the sum of all of the eclass boolean variables. In some sense, it's like extracting the smallest program, as we do with the normal egg extractor.
I started running into a bunch of problems, though, with the stack overflowing.
First, some routines inside of
lp-modeler
were not happy with the size of the model, it seemed. I was running into this problem: rust-or/rust-lp-modeler#37Then, though I think (I'm not sure, should check) that I sidestepped those issues by avoiding having the problematic routines run in
lp-modeler
, I'm still getting stack overflows. Strangely, I'm having trouble tracking them down, too. They may also be happening duringpanic!()
, as I've put somepanic!()
s in for testing. (A solution Jared suggested is to useexit()
instead ofpanic!()
to avoid unwinding the stack...there may be issues with this still on Mac).I've tried upping the stack size, but initial testing doesn't seem to indicate that it's helping. Also, doing this in a sustainable way with cargo seems like a pain! I've been avoiding doing it, but may be stuck now.
I am also going to try running on the linux machine. Maybe the easiest way out.
The text was updated successfully, but these errors were encountered: