POMDPs.jl
POMDPs.jl copied to clipboard
Improvements to requirements
If the requirements system turns out to be useful, the following improvements could be made
- [ ] Smartly and optionally print module names (easy)
- [ ] Allow parameters throughout (I think they will break some functions now) (medium)
- [ ] Print requirements even if there is an error in get_requirements. Currently, if there is an error in a
@POMDP_require
block, it will not show any@req
s that come after the error. A better way to fail would be to show the requirement (but possibly without all the type information). It is not clear how to handle cases when a@req
is in an if statement or has some other conditionality (difficult) - [ ] Use static analysis to determine the requirements instead of specifying them manually (difficult)
- [ ] One should also be able to specify requirements with a function call and have the types inferred, e.g
@POMDP_require f(a::A) begin
@req f(a)
end
should work in addition to
@POMDP_require f(a::A) begin
@req f(::typeof(a))
end
which already works. (easy)
- [ ] Might be able to unify
@req
and@subreq
- do they need to be different? (meidum)
This is great, and the new requirements functionality is awesome! Can we merge the improvements checklist into the original post to make it easier to track.
Done. BTW, I personally don't ever expect to get around to doing any of these tasks, haha - it will only happen if someone else gets deeply involved with this.
Seems like code_typed
works pretty well now, so it should be pretty easy to automate more things