[TNS-1] Workaround to Clojure 1.2 reader bug Created: 14/Dec/11 Updated: 24/Apr/12 Resolved: 24/Apr/12 |
|
| Status: | Resolved |
| Project: | tools.namespace |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | Sam Ritchie | Assignee: | Stuart Sierra |
| Resolution: | Completed | Votes: | 2 |
| Labels: | None | ||
| Environment: |
Mac OS X, Clojure 1.2.1, Leiningen 1.6.2 |
||
| Attachments: |
|
| Patch: | Fixed |
| Description |
|
The clojure 1.2 reader will allow invalid forms like {:key} to be read in, and only throw an exception on printing. Currently clojure.tools.namespace calls (read rdr) within a try form; the bug means that this particular type of error is never caught. This patch forces the reader to try and resolve with str, allowing clojure.tools.namespace to catch and bury the error. I was running into this with moustache templates from lein-newnew on the classpath; these contain namespace headers that look like (ns name.core). This would cause (clojure.tools.namespace/find-namespaces-on-classpath) to fail when printing its results but not when actually running. |
| Comments |
| Comment by Sam Ritchie [ 14/Dec/11 4:55 PM ] |
|
Funny, jira picked up the moustache markup. a bad namespace looks like (ns { { name } } . core). |
| Comment by Sam Ritchie [ 11/Jan/12 3:59 PM ] |
|
Ping – Stuart, any thoughts on this? |
| Comment by Stuart Sierra [ 11/Jan/12 6:09 PM ] |
|
Why should tools.ns do this? If the syntax is wrong, it's wrong. |
| Comment by Sam Ritchie [ 11/Jan/12 6:43 PM ] |
|
Because without this patch, it's impossible to catch and bury errors from invalid reader syntax. I believe this comes from a bug in the reader that was fixed with 1.2. |
| Comment by Stuart Sierra [ 27/Jan/12 9:44 AM ] |
|
Declined. It is not the responsibility of this library to catch errors in old versions of Clojure. |
| Comment by Stuart Sierra [ 24/Apr/12 2:01 PM ] |
|
Reopening because this is still a visible issue for some libraries. I still don't like it, but I'm going to include it. |
| Comment by Stuart Sierra [ 24/Apr/12 2:04 PM ] |
|
Patch applied. |
| Comment by Sam Ritchie [ 24/Apr/12 2:07 PM ] |
|
Great, thanks! |
[TNS-2] Add function to parse dependencies from namespace declarations Created: 16/May/12 Updated: 16/May/12 Resolved: 16/May/12 |
|
| Status: | Resolved |
| Project: | tools.namespace |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Stuart Sierra | Assignee: | Stuart Sierra |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Patch: | Code |
[TNS-3] refresh-dirs not used Created: 08/Oct/12 Updated: 08/Oct/12 Resolved: 08/Oct/12 |
|
| Status: | Resolved |
| Project: | tools.namespace |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Stuart Sierra | Assignee: | Stuart Sierra |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Submitted by Mika Raento as a GitHub pull request: https://github.com/clojure/tools.namespace/pull/1 |
| Comments |
| Comment by Stuart Sierra [ 08/Oct/12 4:59 PM ] |
|
Fixed in commit bc9d5c1a6f191070a425b04feda9e2d3c2eb6928 https://github.com/clojure/tools.namespace/commit/bc9d5c1a6f191070a425b04feda9e2d3c2eb6928 |
[TNS-4] Eliminate several uses of reflection in tools.namespace Created: 28/Oct/12 Updated: 28/Oct/12 Resolved: 28/Oct/12 |
|
| Status: | Resolved |
| Project: | tools.namespace |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Andy Fingerhut | Assignee: | Stuart Sierra |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
There are several reflection warnings when compiling tools.namespace, all of which can be eliminated with fairly straightforward additions of type hints. |
| Comments |
| Comment by Andy Fingerhut [ 28/Oct/12 8:08 PM ] |
|
tns-4-eliminate-reflection-v1.txt dated Oct 28 2012 adds the necessary type hints to eliminate reflection warnings in tools.namespace. |
| Comment by Stuart Sierra [ 28/Oct/12 9:14 PM ] |
|
Patch applied. Thanks! |