libera/#commonlisp - IRC Chatlog
Search
13:05:14
jackdaniel
fwiw implementations that share the runtime with languages like c or c++ may be debugged with gdb
13:06:03
beach
Don't you then have to know how your implementation represents objects in order to inspect them?
13:08:33
jackdaniel
isn't that true generally for gdb? (i.e can you inspect a struct object without knowing how it is represented)?
13:11:33
_death
it may also be the case that the constraint of not having such debuggers creates incentives that may actually be considered good, such as using small named functions that are repl-friendly (don't assume too much context)
13:11:34
hayley
Or, if lazy, one can use the print() function in SBCL to do something between printing and inspecting a tagged pointer.
13:11:34
jackdaniel
perhaps a clever macro that calls into the runtime's type-of could automate that in gdb
13:13:05
beach
Hey everyone, we want you to use Common Lisp because it has a lousy development environment. But that's good, because then your code will be better!
13:13:28
_death
beach: this is just a hypothesis that I've not tried to test.. I often see analogues of what Don Norman called "affordances" everywhere
13:13:53
hayley
a la "p print(0x100001337)" prints a cons cell somewhere in dynamic space. (Please help, I remember those numbers.)
13:14:14
_death
beach: it's not that DE is lousy, but that it provides enough alternative (repl, first-class functions, expression oriented..)
13:14:27
jackdaniel
it is true that the value of a good debugger grows when: 1) the recompilation cost is big, 2) it is hard to interact with the environment otherwise
13:14:41
hayley
I have heard someone say that expressive languages and GC are only good for large programs, so inexpressive languages encourage smaller programs. And this was a good thing to that someone.
13:14:59
jackdaniel
in this sense debuggers are more important for embedded platforms accessed via jtag than for lisp environment with slime and repl attached
13:15:31
hayley
They missed that expressive languages prevent large programs from becoming huge programs.
13:15:32
jackdaniel
that's not to say that a good debugger is not valuable, it is just about how critical it is to have it
13:28:57
_death
and then, we also have some nice inspectors, which are often a big part of a debugger
13:35:58
jcowan
beach: "Members" is the term used by the C standards, except for bit fields, which are called fields for some reason.