libera/#sicl - IRC Chatlog
Search
8:13:26
hayley
I am working on a regular expression linter, which means I get to think about what to warn abount.
8:47:52
hayley
So far the linter detects regular expressions that will never match anything (e.g. "a&b" matches a string which is both "a" and "b", which is impossible), and submatches that will never be matched (e.g. a|(a) will always favour the choice on the left of the |), and the DO-MATCHES iteration macro will detect too many submatch registers being bound. Does it make sense to map these constructs to something similar in Lisp, and then work out how such
8:48:11
hayley
Maybe I should ask in #commonlisp, but there seems to be more discussions about linting in #sicl.
8:56:27
hayley
There are some situations which obviously should lead to an error or warning, but then there are some that aren't so clear. Should, say, DO-MATCHES with an incorrect number of bindings (and a constant regular expression, so that we can actually do analysis at compile-time) produce a compile-time error, or warning, or something else? It will certainly lead to a runtime error, and the programmer cannot do anything other than rewrite the DO-MATCHES
8:56:28
hayley
form to fix it. But Common Lisp systems can only signal a warning, when static analysis shows that some code will always lead to a runtime error, and so signalling a compile-time error could be seen as inconsistent.