Here is a topic to discuss the hybrid algorithm work (polonius#100).
@Albin Stjerna until Matthew's intro you can take a look at polonius-engine: your new algorithm will need to be added in the algorithms list, its behaviour hooked up here to call your function linking the "location insensitive" algorithm function to the "optimized full analysis" algorithm function — so in your variant's module, your function will basically have the same signature as those 2.
I moved your comment over here @lqd ;)
I was wondering what sort of wizardry was happening
tests are in the parent crate however, the one including a CLI, test data, etc here — but we really need to refactor them :)
tests are in the parent crate however, the one including a CLI, test data, etc here but we really need to refactor them :)
Sounds like something that could be done as part of my work? Usually refactoring things is not a bad way of getting into them as an intermediate step
I'd think so, as long as we know what to do
you could for sure, but working on the analyses themselves etc would be more interesting I presume
Yeah, there's always an infinite number of things to do I guess
in any case those pointers will give you a head start until us Europeans catch up with your time :)
Yes! And no worries, I'm visiting my girlfriend, whom I will not see again for several months, in Australia, I am perfectly fine with being very low-intensity for a few more days until I get back home
understandable :) enjoy your stay!
Ok, now I have something: https://github.com/rust-lang/polonius/pull/102
@Albin Stjerna that actually looks fairly close to what I would expect =)
Perhaps a good "next step" would be to have the compiler use it by default, as well
What do you think about this idea?
It sounds like a good idea and I’ll investigate it!
Also, please remember that I am very new to Rust itself, so if anyone notices anything weird or non-idiomatic in my code I’d really appreciate feedback!
weird or non-idiomatic
A big benefit of working in a separate crate like polonius is that you can aggressively run clippy and rustfmt to help keep you in the right area.
Right, clippy. I forgot about that!
we've never used clippy before on the crate (I do't generally run it), so it may have lots of strange lints, I don't know
though I am interested in starting to run it
Personally, I'm a fan in turning on the default Clippy recommendations in CI and perhaps allowing things as needed. I'll also sporadically add in the "all clippy warnings ever" to see if there are things I agree with.
I ran it now and there are some warnings, in my code among other things (I fixed it). Some of the warnings for the rest of the code seems worth fixing but not as part of my PR, I think.
I’ve also started working on @nikomatsakis’s idea of making
all_facts a reference to save some copying, but it wasn’t as easy as I had expected. Haven’t given up yet though!
@Albin Stjerna great; I just realized our Polonius WG meeting wasn't marked weekly
I guess I'll change that
that time still working for ya?
I changed it to 16:00-16:30 UTC-04:00, on the premise that we should need less time to "check on progress"
that said, it's probably a good idea to start looking at the next steps...
Yes! It’s 21:00 Stockholm time, which is almost guaranteed not to collide with anything ever
@Albin Stjerna I think it'll change after the next week or so when you shift to DST
Ok, a slightly-less-copying version is now pushed as well!