POMDPs.jl icon indicating copy to clipboard operation
POMDPs.jl copied to clipboard

Improvements to requirements

Open zsunberg opened this issue 8 years ago • 3 comments

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 @reqs 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)

zsunberg avatar Dec 31 '16 21:12 zsunberg

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.

etotheipluspi avatar Jan 05 '17 01:01 etotheipluspi

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.

zsunberg avatar Jan 05 '17 20:01 zsunberg

Seems like code_typed works pretty well now, so it should be pretty easy to automate more things

zsunberg avatar Nov 17 '17 17:11 zsunberg