<< Back to previous view

[MATCH-108] Upgrade org.clojure/tools.analyzer.jvm dependency to "0.6.6" Created: 20/May/15  Updated: 20/May/15

Status: Open
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Minor
Reporter: Matt Foster Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Currently core.match depends on tools.analyzer.jvm "0.6.5", the latest release is "0.6.6". The outdated dependency on tools.analyzer.jvm conflicts with core.async's dependency on version "0.6.6". This can cause unexpected behavior when a project depends on both core.match and core.async.



 Comments   
Comment by David Nolen [ 20/May/15 3:03 PM ]

In the meantime you can use Leiningen or Maven to control what you get.





[MATCH-105] Regex: only attempt to match string values. Created: 06/Mar/15  Updated: 06/Mar/15

Status: Open
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Pavel Repin Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: None

Attachments: Text File regex-match-safely.patch    
Patch: Code and Test

 Description   

Before this fix, matching a regex pattern against a non-string value would crash like so:

java.lang.ClassCastException: clojure.lang.Keyword cannot be cast to java.lang.CharSequence
 at clojure.core$re_matcher.invoke (core.clj:4460)
    clojure.core$re_matches.invoke (core.clj:4497)
...





[MATCH-103] Support for lists in patterns. Created: 18/Dec/14  Updated: 18/Dec/14

Status: Open
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Jan-Paul Bultmann Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Currently it is not possible to use list literals with or without variables in a pattern.
Thus something like this

(match ['(1 2 3)]
       ['(a b c)] a)

will result in a failing assert.

AssertionError Invalid list syntax (a b c) in (quote (a b c)).

There is a workaround for this by using `:seq` and `:guard`, as in

(match ['(1 2 3)]
       [(([a b c] :seq) :guard list?)] a)

but it is rather tedious to write.

List matching would be very useful when writing macros and compilers.






[MATCH-72] complexity analysis Created: 18/Jun/13  Updated: 18/Jun/13

Status: Open
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: David Nolen Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: None


 Description   

For smaller matches avoid backtracking actually greatly improves performance at the potential cost of code size. Perhaps we can devise a heuristic such that we employ the the best option available? Would need some serious hammock time.






[MATCH-64] Improve match compile times Created: 15/Aug/12  Updated: 15/Jun/13

Status: Open
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: David Nolen Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: None





[MATCH-8] Implement (p|q)ba heuristics Created: 04/Sep/11  Updated: 04/Sep/11

Status: Open
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: David Nolen Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: None


 Description   

We should implement the rest of Maranget's suggested heuristics.

p - needed prefix
q - constructor prefix
b - branching factor
a - constructor arity






[MATCH-2] Matching Diagnostics Created: 04/Sep/11  Updated: 16/Jun/13

Status: Open
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: David Nolen Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Communicate to the user precisely what failed to match. Conversation here: http://groups.google.com/group/clojure/browse_thread/thread/675456fba1712214. We adopt the behavior of condp since that is closer to what match does and will do (predicate dispatch)



 Comments   
Comment by David Nolen [ 05/Sep/11 10:40 AM ]

Continuing the conversation from GitHub - concerning your changes, we should probably show what current occurrence failed to match as well as the breadcrumb.

Comment by David Nolen [ 26/Sep/11 7:10 AM ]

Matching diagnostics will be complicated by MATCH-1. Clojure doesn't yet support simple data conveying exceptions. Will probably have to use a combination of proxy and definterface.

Comment by Ambrose Bonnaire-Sergeant [ 30/Sep/11 4:39 AM ]

I haven't yet kept up with your backtracking changes, and I just noticed this conversation, so I'll have to have another look at diagnostics with backtracking.

Comment by David Nolen [ 16/Jun/13 1:57 PM ]

Lowering priority. Happy to take a patch, but I don't think I'll be looking into this myself in the near future.





Generated at Sat Sep 05 07:29:50 CDT 2015 using JIRA 4.4#649-r158309.