freenode/#clasp - IRC Chatlog
Search
3:26:32
Bike
for example there's a compiler macro on typep to expand it into primitive operations if the type is constant, and it signals a style warning if the type is undefined.
3:27:37
Bike
also, cleavir does the same thing for macro functions and it's definitely useful there, since syntax errors can be localized
3:28:27
Bike
e.g. if you write a case or cond with a clause malformed it will even specifically locate which clause is the problem.
3:29:37
beach
I have always been thinking that compiler macros should just give up and return the original form if it detects a problem. I may have to rethink that.
3:30:30
Bike
another one i just remembered is there's a compiler macro on format to detect the common (format "format-string-here" ...) typo
3:30:48
Bike
some people might find these annoying, i guess, so ideally they'd be able to specify classes of warning to muffle
3:31:31
Bike
that could get kind of tricky since cleavir wraps the original condition in its own condition type, so regular type discrimination doesn't work exactly
3:31:58
drmeister
Can you keep posting stuff. irccloud goes "bloop" and I have to track down which computer is making the sound.
3:38:11
beach
Bike: Now that you mention it, the compiler macro seems to be the right place to detect those situations.
3:40:05
beach
I hadn't thought much about it before, but error/warning signaling and reporting is an important part of a Common Lisp system and it requires a lot of code to do it right.
3:41:56
beach
As karlosz pointed out, SBCL is not very helpful when it comes to locating the origin of the message.
3:42:35
Bike
well, it depends on the message. for typep and cond/case like i've been talking about it's pretty well located. but for "deleting unreachable code" it doesn't report any location really.
3:43:29
beach
Even when it reports the location, the way it reports it if you just call ASDF from the REPL is not very satisfactory.
3:44:00
Bike
asdf does... i don't know what asdf does really. i just use slime's compile-file for this.
3:44:11
Bike
https://github.com/scymtym/trivial-with-current-source-form oh and scymtym wrote this related tiny portability library
3:45:19
Bike
i think slime does some odd thing like reading a sexp forward from the reported source position
3:46:12
beach
Maybe so. Either way, I am not going to spend much time with SLIME integration of SICL.
3:57:34
Bike
compiler macros aren't used that much but it would be neat if cl-ppcre for example would warn on bad regex syntax. it would get automatically source located
12:48:39
mseddon
beach: huh, if ASDF:LOAD-SYSTEM fails for me, I get zero useful information from slime, I have to grovel through the repl error message to find the place things went wrong.