libera/#commonlisp - IRC Chatlog
Search
8:35:19
pjb
nij-: When the answer is "No", it means it's not trivial to do. You can always do it, with sufficient work. If you want to change the evaluation rules, you may do something like in cl-stepper. https://gitlab.com/com-informatimago/com-informatimago/-/tree/master/common-lisp/lisp
8:36:08
pjb
nij-: then instead of (defpackage "MY-PROGRAM" (:use "CL")) you'd write: (defpackage "MY-PROGRAM" (:use "MY-RULES-LISP"))
8:41:55
pjb
nij-: as mentionned, there's no standard way to change the evaluator (ie. EVAL, COMPILE and COMPILE-FILE). BUT you can either feed the evaluator some changed code like cl-stepper does, thru different macro expansions, OR you can use a different evaluator: write your own MY-RULE:EVAL, MY-RULE:COMPILE, MY-RULE:COMPILE-FILE, and the functions that call them such as MY-RULE:LOAD, and use them instead of CL:EVAL, … CL:LOAD.
8:42:53
pjb
nij-: note: this is a common occurence, for example, CLIM defines its own objects and methods. A clim application (:use "CLIM") instead of "CL", and you get clim:defmethod instead of cl:defmethod, etc.
9:04:03
pjb
Hmm, in McCLIM, there's both a CLIM-LISP and a CLIM package, that re-exports most of CLIM-LISP stuff.
11:01:59
jcowan
One issue with rewriting code (and this applies both to macros and to run-time rewrites) is that all's well when the input is fine, but a compile-time or run-time error will be given in terms of the transformed code rather than the original code. C and Scheme both have facilities to help with this.
11:10:53
dirtcastle
I want to get stumpwm running. it works but the modules don't work. stumpwm-ql in community package loads properly but I think it's not working as intended.
11:32:12
jackdaniel
the package CLIM exports CLIM symbols, CLIM-LISP is a drop-in replacement for the package COMMON-LISP
11:54:15
contrapunctus
dirtcastle: removing Arch's SBCL is an Arch package management question (which I'm not knowledgeable about). SBCL has binary releases on its website IIRC.
12:17:10
AadVersteden[m]
dirtcastle: if you installed from the AUR you can remove it that way. If you are installing manually because the AUR installation doesn't do what you want, you should be able to build a different release that does do what you want.
12:17:45
AadVersteden[m]
I have extra/sbcl installed and it seems to work fine for me, but I'm not running stumpwm.
12:23:49
pjb
jcowan: granted. The same is true when you compile natively to assembly. Then the debugger could give you assembly and hex dumps. In both cases, meta data is addded to the code, to be processed by a source-level debugger. So it's a consideration to take, and add a debugger for your new language.
12:27:25
jcowan
Racket has the advantage that it doesn't require any such thing: source information is generated by the front end and the compiler believes it. Similarly, a C preprocessor, either cpp or something else, generates lines of the form "# foo.x 32", meaning that errors in the following line are to be reported as coming from line 32 of the file foo.x. (Note that this is not a preprocessor directive: that is spelled "#line".)
12:28:15
jcowan
Granted, debuggers like gdb can't handle just any language: you'd hardly expect them to work correctly with a Prolog compiler, e.g.
14:20:27
Bike
i don't understand how "source information is generated by the front end and the compiler believes it" is different from what most lisps do