<< Back to previous view

[TANAL-85] enhance validations in t.a.js Created: 10/Aug/14  Updated: 17/Oct/14

Status: Open
Project: tools.analyzer
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Critical
Reporter: Nicola Mometto Assignee: Nicola Mometto
Resolution: Unresolved Votes: 0
Labels: None


 Description   

This includes:

  • validating :new nodes
  • validating protocol/types usage
  • better error messages on non-valid 'ns forms





[TANAL-84] Simplify tag handling for castings/nil insertion/value popping Created: 25/Jul/14  Updated: 25/Jul/14

Status: Open
Project: tools.analyzer
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Major
Reporter: Nicola Mometto Assignee: Nicola Mometto
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Currently the compiler uses the op type, o-tag, tag and the context to figure out where to put casts, where to insert nils or where to pop a value off the stack.
This doesn't work well as it's really hard to figure out when it's actually necessary to e.g. pop a value or if it has already been removed from the stack.
Ideally the analyzer should provide more information to the emitter so that it's easier to understand when and where a casting/nil insertion/value popping is necessary






[TANAL-42] Document the AST nodes && the passes Created: 03/Jan/14  Updated: 02/Aug/14

Status: Open
Project: tools.analyzer
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Minor
Reporter: Nicola Mometto Assignee: Nicola Mometto
Resolution: Unresolved Votes: 0
Labels: None


 Comments   
Comment by Max Kreminski [ 19/Apr/14 5:11 PM ]

I put together a quick reference to the AST node structures a few days ago when trying to identify discrepancies between the tools.analyzer AST format and the internal AST format used by the ClojureScript compiler. It's nowhere near as complete as it could be, but I figured I'd post it here just in case it winds up being useful when writing official docs.

http://mkremins.github.io/clojure-ast-ref/

Comment by Nicola Mometto [ 19/Apr/14 5:36 PM ]

At first glance it looks really well done.
I'll take some time to review it and contribute if necessary, in the mean time if you want you can add a link pointing at your quickref in the tools.analyzer wiki.

Thanks

Comment by Ian Tegebo [ 29/May/14 12:59 AM ]

It appears incomplete, e.g. :static-call is missing. This appears to be because it's added not by tools.analyzer but by tools.analyzer.jvm; is the intention that platform-specific AST nodes are to be considered hidden implementation details?

If not, should a separate issue requesting documentation be filed with the "concrete" platforms, e.g. jvm.tools.analyzer?

Comment by Max Kreminski [ 02/Jun/14 11:49 AM ]

I haven't yet had time to document the platform-specific node types added by tools.analyzer.{jvm,js}, although I do intend to add them to the quickref in the near future.

jvm.tools.analyzer appears to use a similar but incompatible AST format, which I currently don't plan on trying to document in the quickref. Filing a separate issue on that project might be the best way to move forward there.

Comment by Andy Fingerhut [ 03/Jun/14 11:21 AM ]

jvm.tools.analyzer is probably not worth documenting at this time, except for historical purposes. tools.analyzer.{jvm,js} are far more likely to be maintained and enhanced in the future.

Comment by Ian Tegebo [ 03/Jun/14 11:58 AM ]

Oops, I think I introduced some confusion when I mistakenly referenced jvm.tools.analyzer. I did so because I didn't see a JIRA project for tools.analyzer.jvm.

On 29/May14 12:59 AM, I meant "... the 'concrete' platforms, e.g. tools.analyzer.{jvm,js} ...".

As an aside, had anyone considered a slight rewrite of the code so that AST (reference) documentation can be extracted rather than separately maintained?

Comment by Nicola Mometto [ 02/Aug/14 7:12 AM ]

This has been addressed mostly with the official AST quickrefs: http://clojure.github.io/tools.analyzer/doc/quickref.html and http://clojure.github.io/tools.analyzer.jvm/doc/quickref.html

I'm changing the priority to minor





Generated at Thu Oct 30 10:35:40 CDT 2014 using JIRA 4.4#649-r158309.