jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
<aeth> so usocket *is* insufficient, and it uses https://github.com/sionescu/iolib to work around the same issue I encountered.
<aeth> which... requires the user to install libfixposix :-/
<char[m]> aeth: for a read-byte-no-hang that doesn't depend on listen, what about a flexi stream that is latin1 external format that is read-char-no-hang ed from then convert that latin1 char to byte?
<aeth> it's workable on a server, perhaps, but for something distributed to end users, libfixposix makes things approximately 87,000,000x more complicated than having no foreign dependencies
<aeth> char[m]: could work if usocket works like that... I think gilberth in #lispcafe suggested something similar
<aeth> ages ago
cosimone has quit [Ping timeout: 252 seconds]
<char[m]> aeth: it would still require the usocket stream to be bytes so that flexi stream can wrap it.
<char[m]> Bytes to char then back to bytes
antonv has quit [Remote host closed the connection]
<aeth> but there is no read-char-no-hang for bytes and any kind of timeout at this level of abstraction will eventually have a race condition that eats a PING (and thus doesn't PONG and thus times the bot out)
<aeth> The central issue is simply that LISTEN is ambiguous between a hypothetical alternative of having, say, no-message-p and end-of-file-p which apparently makes usocket unusable alone.
<aeth> At least if you need to be able to both read and write like IRC. Hanging a READ-BYTE in another thread is an easy solution if you don't afaik.
psf has quit [Read error: Connection reset by peer]
<char[m]> aeth: are you aware of clisp's read-byte-no-hang; could that help at all?
<aeth> not portable
notzmv has joined #commonlisp
psf has joined #commonlisp
<fe[nl]ix> aeth: what Lisp implementations do you use ?
<aeth> SBCL, but I also test in ECL and sometimes CCL
waleee has quit [Ping timeout: 246 seconds]
<fe[nl]ix> I'm the author of iolib/libfixposix. if I provived an SBCL/x86_64 with libfixposix statically compiled, would you use it ?
<aeth> yes
psf has quit [Read error: Connection reset by peer]
<aeth> because I would package SBCL
<aeth> which means end user IRC client code could use it
<fe[nl]ix> how old are the Linux distros where you want it deployed ?
<fe[nl]ix> more exactly, what's the oldest you want to support
aartaka has joined #commonlisp
<fe[nl]ix> I need to choose a host compilation system, to avoid problems of unresolved symbols in glibc
makomo has quit [Ping timeout: 246 seconds]
<aeth> I don't know anything about packaging C
psf has joined #commonlisp
<aeth> All I know is that iolib as far as I know contains the only portable (how portable? Windows, too?) solution to detecting an IRC ping out without hanging used in code that I know of.
psf has quit [Read error: Connection reset by peer]
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
psf has joined #commonlisp
<aeth> fe[nl]ix: my assumption is that it would have to go back 5 years? or would that be too stable?
aartaka has quit [Ping timeout: 246 seconds]
<yitzi> fe[nl]ix: Do you maintain bordeaux-threads? If so, I opened a PR to add atomic support for Clasp if have time to review sometime.
<yitzi> s/if have/if you have/
<aeth> fe[nl]ix: Is it worth supporting Debian 8 (7 years) instead of Deiban 9 (5 years)? I'm assuming that's going to be the oldest.
gxt has quit [Read error: Connection reset by peer]
anticomputer has quit [Remote host closed the connection]
psf has quit [Read error: Connection reset by peer]
anticomputer has joined #commonlisp
gxt has joined #commonlisp
psf has joined #commonlisp
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
ober has left #commonlisp [#commonlisp]
pickanick has joined #commonlisp
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
<fe[nl]ix> yitzi: merged
<yitzi> Thanks, much appreciated
<fe[nl]ix> aeth: that seems too old. I'll compile it on a Ubuntu 18.04 LTS and you'll tell me if any users complains
<aeth> OK
tyson2 has joined #commonlisp
<aeth> well, I don't have the client yet because I couldn't get it to not disconnect
<aeth> so it'll be a bit before someone can complain
<aeth> although in theory just a text frontend and logging is needed
tyson2 has quit [Remote host closed the connection]
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
psf has quit [Read error: Connection reset by peer]
ttree has joined #commonlisp
psf has joined #commonlisp
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
VincentVega has quit [Ping timeout: 252 seconds]
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
psf has quit [Read error: Connection reset by peer]
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
psf has joined #commonlisp
tyson2 has joined #commonlisp
bilegeek has joined #commonlisp
nij- has joined #commonlisp
<nij-> Hi! A new line is printed whenever the main function is called. This gets annoying when the main function has to be called several times. However, I cannot locate where the printer is..
<nij-> Is there any programmatic way to find out why?
<aeth> yes
<nij-> How :)?
<aeth> trace
<aeth> (defun foo () (print "hi")) (defun bar () (print "hello")) (defun main () (foo) (bar)) (trace main) (main)
<aeth> I guess you need to trace foo and bar, too
<aeth> this will insert side effects
<aeth> so you'll see where in the program the newline shows up
<aeth> if there are a lot of functions you can binary search with it
<aeth> you could also manually insert print statements
nexalam_ has joined #commonlisp
<Bike> honestlly, whenever i've run into this i just grep my sources for whatever's being printed.
nexalam__ has quit [Ping timeout: 260 seconds]
<nij-> hmmm.. the code base is large.. lemme think
psf has quit [Read error: Connection reset by peer]
psf has joined #commonlisp
epony has quit [Ping timeout: 252 seconds]
Oladon has joined #commonlisp
<aeth> nij-: trace what you think the midpoint call is, see if the newline shows before or after the midpoint
<aeth> (although it might be called multiple times)
<aeth> or just insert a print into it
akoana has quit [Quit: leaving]
<doulos05> Anybody here using sbcl on a server running oracle linux?
<doulos05> I cannot figure out how to install it. I've tried `yum install sbcl`, but it didn't work.
<doulos05> I tried adding the EPEL repo from fedoraproject.org, but it still cannot find sbcl
<beach> Can't you just copy a binary SBCL from sbcl.org?
<doulos05> beach: Yeah, I was just hoping to be able to use a package manager to handle keeping it up to date
<doulos05> But since it isn't really wanting to work, I'm just going to curl the binary onto the server
<doulos05> If I figure out how to get it via dnf or yum, I can always just rm the binary and that should work
xlarsx has joined #commonlisp
<aeth> doulos05: is it new enough to have podman?
tyson2 has quit [Ping timeout: 246 seconds]
<aeth> that's probably the modern Red Hat approach and Oracle Linux is just Ctrl+C Ctrl+V RHEL so that would be the way to go, I think.
<doulos05> aeth: Ought to be. It's OL8. I'll check it
tyson2 has joined #commonlisp
<aeth> then you'd just take the smallest docker image (but through podman) that has the latest SBCL
<aeth> I use https://hub.docker.com/r/daewok/lisp-devel in CI but that might be too heavyweight and it might not have the latest
<doulos05> aeth: That makes sense and I'm pretty sure I can handle that
<aeth> some people may say, yuck, containers, but hey, Red Hat is *really* pushing podman
<doulos05> yeah, it wasn't install by default but podman is installing now
<doulos05> Meh. Having programmed in python, I can definitely see the appeal.
<aeth> mason: that is really, really old
<mason> as such, you should be able to request it for 8 and/or 9
<doulos05> I was developing a project in Django (only because I didn't have time to learn Hutchentoot before the deployment date) and despite using a venv, managed to get all my system packages into my virtual env
<mason> aeth: Yeah, but if it's there, it can be updated.
<aeth> Fedora has 2.0.1
<doulos05> Ment I had to spend about 20 minutes going through my requirements.txt nuking `thefuck` and other apps that I don't need on a server.
<aeth> not sure who used to package SBCL
<aeth> but even in Fedora it's getting increasingly dated
<aeth> (that also shows the EPEL one)
<mason> hrm
<doulos05> mason: Yeah, I think I'll just do the podman setup. Part of the point of these servers is to figure out proper partitioning for services, and docker/pods is one of the more straightforward way to do that.
<aeth> but just about everything RH/Fedora is trying to push people into podman these days.
<kakuhen> I would help maintain the Fedora package but I have no idea where to even begin with the package repos... that and I need to learn how RPMs work.
<aeth> Fedora doesn't package a lot of CL
<aeth> mostly maxima
<kakuhen> MacPorts is also fairly out of date (2.2.6 i believe?) but I won't comment on it to prevent venting frustration with the process of updating it.
<aeth> s/mostly maxima/mostly for maxima/
<mason> doulos05: Hrm, another option would be to download https://sourceforge.net/projects/sbcl/files/sbcl/2.2.8/sbcl-2.2.8-x86-64-linux-binary.tar.bz2/download and manage it with GNU Stow or something. Fewer moving parts than a container.
<mason> Bedtime here. Good luck whichever you choose.
<doulos05> mason: Thanks! The joy of learning on hardware you aren't using for anything important is that if I fuck it up, I can just nuke the instance and start over.
<aeth> Fedora has clisp, ecl, and sbcl, but no ccl. Only the sbcl seems particularly out of date. The clisp is a random one from git rather than the last stable version (from July 2010).
<kakuhen> Bruno Haible created specific branches as "unofficial" releases
<kakuhen> the commits aren't as random as they seem
<aeth> ah
<kakuhen> They are very likely just the HEAD of e.g. the clisp-2.50 branch
<kakuhen> I know this because I recently modified the MacPorts package to pull source code from that commit
<kakuhen> FreeBSD does a similar thing, iirc
<aeth> well, it looks like only SBCL and CCL would need packaging in Fedora/EPEL
<aeth> (well, clisp isn't in EPEL)
<aeth> (nor is ecl)
<fiddlerwoaroof> ?fsock
tyson2 has quit [Remote host closed the connection]
Oladon has quit [Quit: Leaving.]
bilegeek has quit [Quit: Leaving]
masinter has joined #commonlisp
bilegeek has joined #commonlisp
razetime has joined #commonlisp
specbot has quit [Remote host closed the connection]
minion has quit [Read error: Connection reset by peer]
minion has joined #commonlisp
specbot has joined #commonlisp
aartaka has joined #commonlisp
epony has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
ttree has quit [Ping timeout: 246 seconds]
igemnace has joined #commonlisp
enzuru has quit [Quit: ZNC 1.8.2 - https://znc.in]
Andrew is now known as haxcpu
enzuru has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
xlarsx has joined #commonlisp
aartaka has joined #commonlisp
xlarsx has quit [Ping timeout: 246 seconds]
pve has joined #commonlisp
attila_lendvai has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
causal has quit [Quit: WeeChat 3.6]
anticomputer has joined #commonlisp
igemnace has quit [Remote host closed the connection]
klm2is_ has joined #commonlisp
klm2is has quit [Ping timeout: 265 seconds]
bilegeek has quit [Quit: Leaving]
xlarsx has joined #commonlisp
razetime has quit [Ping timeout: 265 seconds]
_cymew_ has joined #commonlisp
xlarsx has quit [Ping timeout: 246 seconds]
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
xlarsx has joined #commonlisp
razetime has joined #commonlisp
makomo has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
aartaka has quit [Ping timeout: 265 seconds]
aartaka has joined #commonlisp
rgherdt has joined #commonlisp
xlarsx has quit [Ping timeout: 246 seconds]
xlarsx has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
verisimilitude has joined #commonlisp
cage has joined #commonlisp
verisimilitude has left #commonlisp [ERC (IRC client for Emacs 27.2)]
frgo has quit [Ping timeout: 246 seconds]
mmk2410 has quit [Quit: ZNC - https://znc.in]
mmk2410 has joined #commonlisp
chipxxx has joined #commonlisp
chipxxx has quit [Remote host closed the connection]
chipxxx has joined #commonlisp
chipxxx has quit [Remote host closed the connection]
chipxxx has joined #commonlisp
shka has joined #commonlisp
<pkal> Is there some way to reload the current file without hard-coding the file name?
shka has quit [Ping timeout: 246 seconds]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
VincentVega has joined #commonlisp
cosimone has joined #commonlisp
<pve> pkal: do you mean something like (defun reload () (load *current-file*))?
<pjb> pkal: what is the current file?
<pjb> pkal: I use: (define-symbol-macro ll (load "loader.lisp")) so I only have to type ll to load the loader.lisp file in the current directory.
Dynom_ has joined #commonlisp
Dynom_ is now known as Guest6688
<pjb> If you use slime, you can use C-c C-k or C-c C-l in the current lisp file buffer.
<pjb> pkal: if you want to reload the file while loading the file: (load *load-pathname*) but beware of infinite recursive loads!
<pjb> Again, what is the current file?
puchacz has joined #commonlisp
aartaka has quit [Ping timeout: 265 seconds]
aartaka has joined #commonlisp
<pkal> pve: Yes exactly
<pkal> pjb: By current file I mean the file that is currently being loaded. I want to have a function that will reload the file it was defined in.
cosimone has quit [Read error: Connection reset by peer]
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
VincentVega has quit [Remote host closed the connection]
aartaka has joined #commonlisp
jmdaemon has quit [Ping timeout: 246 seconds]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
<nij-> Hmm I'm running a very long test for a whole night but it took longer than I thought.
<nij-> It has completed 20% of its task. In the end, it should return a hash table that contains all info I want.
<nij-> But I need to kill it now. Is there anyway to peek into the hash table?
<nij-> (No, the hash table isn't assigned to a global variable.)
<hayley> You might be able to find it in the debugger.
<nij-> I use sly. How to do that?
<nij-> I tried (break)ing in the inferior lisp, but it doesn't let me inspect the hash table :(
<hayley> C-c C-c in the REPL should work.
<hayley> Assuming Sly has the SLIME fancy REPL, which I think it does?
<nij-> Oh, I can peek into the info :) But is there anyway to dump those into a file from the debugger?
<beach> nij-: In SLIME, you go back to the REPL window and hit return.
<beach> nij-: Then you get an ordinary REPL and you can do what you want.
<beach> nij-: Or you can it `e' in a debugger stack frame and evaluate a form relative to that frame.
<nij-> Saved my day <3 Thank you very much :) :)
<beach> Me? Sure.
<nij-> you and hayley, yes.
<nij-> Just curious. Suppose I hit C-c C-c during (let ((x 3)) (sleep 3)), is there any way to inspect the local var X?
<beach> With a high enough DEBUG quality, the variable might be available for inspection in the stack frame where it is created.
<beach> But most people tend to use the SBCL default value, which is not always high enough.
<beach> I set mine to 3 in my .sbclrc.
<nij-> I have it as 3.. but still.
<beach> The compiler can still eliminate it if it is not used after the call.
<nij-> Can I press 'e', evaluate some form, and write the value of the local X into some file?
<beach> Sure, evaluate a form that writes the value of X into the file.
<nij-> Right, so to be sure, let's use (let ((x 3)) (sleep 5) x) instead.
<beach> That might work if the value of the LET is also used.
<nij-> I evaluate X with `e` but it says the variable X is unbound.
<beach> Make sure you respect the package.
<beach> And make sure you are in the right frame.
<beach> `n' and `p' will let you select the right frame.
<pve> pkal: in that case, you might want to have a look at *load-pathname* and *compile-file-pathname* or the truename variants.
<beach> ... and RETURN will let you see the available contents of the frame you selected.
xlarsx has quit [Remote host closed the connection]
random-nick has joined #commonlisp
xlarsx has joined #commonlisp
<nij-> beach do you happen to know the function name bound with the key n, p?
<beach> 'fraid not.
<beach> You can probably use C-n and C-p too.
cercopith has quit [Remote host closed the connection]
<beach> And I could remember wrong. My fingers know these things, but I don't. :)
cercopith has joined #commonlisp
<nij-> Oh, it's in the doc.. sldb-down/up
<nij-> Wow.. that's amazing...
<kaskal-> quick question, I did not find any info on cffi docs or source about static library archives, like `libblas.a`, is there not support for it ?
xlarsx has quit [Ping timeout: 246 seconds]
shka has joined #commonlisp
<nij-> I'm deeply amazed. Is this feature available for other langs, like python? I never thought I could do this..
<beach> nij-: It is not so much a language question as an implementation question.
<beach> nij-: I am pretty sure you can do it in GCC with GDB.
<nij-> You can also evaluate something else in a frame and print result to file?!
<beach> Well, with GCC and GDB, the functions have to be in the program for you to be able to call them. But if the program is linked with the right stuff, then sure.
<beach> When I taught a course in development tools, I had the students link with Xlib, and from GDB in an empty main() I had them open windows and such.
<kaskal-> beach yes I think so too, however I would have expected cffi to be passed a static archive or `.so` without much trouble, or at least if the implementation supports it that cffi wraps it, just like in gcc and clang I can just compile like `$CC my-file.o whatever.a`
<beach> kaskal-: I was answering nij-. Sorry. I know nothing about FFI.
<kaskal-> oh I see, my mistake ;)
<hayley> beach: In my GC foolery with SBCL I keep a few useful functions for debugging with me. One prints out a "visualisation" of the page table, and another generates a Netpbm image file of the line table.
<hayley> When things go wrong, I call those functions from GDB to figure out help what went wrong.
<beach> I see.
<hayley> There was a story that Marvin Minsky did the same sort of debugger programming, but starting from an empty program and writing more and more assembler code.
<jackdaniel> (handler-case (run) (undefined-function () (ed) (invoke-restart 're-run)))
nij- has quit [Ping timeout: 265 seconds]
xlarsx has joined #commonlisp
<beach> I guess nij- fainted from all the amazement.
nij- has joined #commonlisp
xlarsx has quit [Ping timeout: 252 seconds]
<nij-> Got it, thanks beach :)
<nij-> I need to get some experience with C and gdb as well.. lacking of motivation though :/
<beach> I fully understand. My experience with it is from a few decades ago.
<beach> What amazes me more, and I have said this repeatedly, is that with out FLOSS Common Lisp implementations and our best IDE to go with them, we still can't do what I could do with GDB at the time. For example set a breakpoint and have the program stop there.
<beach> And most Common Lisp users still think we have the greatest environment of all, all languages concerned.
<beach> *with our FLOSS
<nij-> We can't?
<nij-> Isn't that just (break)?
<pjb> nij-: you may try a C interpreter instead. Cint or eis, etc?
<beach> Oh, sure, if you want to recompile your code.
<pjb> then you'd have a repl and a controlled environment.
<beach> nij-: But then you are not debugging the same code.
<pjb> gdb doesn't recompile, but it still mutates the code. It could as well be recompiling.
<pjb> Unless you run more slowly, step by step. Which you could also do in lisp with the right VM.
<beach> pjb: I am pretty sure you know that that is not true. If you recompile, you can get a totally different code.
<beach> But I'll quit here. Otherwise, I know where this discussion is going to end up.
<pjb> The option of working at the processor level (VM level) is probably the best, even if slower, since you don't need to patch the code with debugger traps.
<nij-> I'm a bit confused here
<nij-> What does (break) lack?
<beach> nij-: For it to take effect, you need to recompile the code.
<beach> nij-: But then you are not debugging the same code that made you want to put in that (BREAK).
<_death> in high debug settings, sbcl inserts step instrumentation code.. maybe that could be used to selectively set a breakpoint without recompilation
<beach> _death: When I wrote my paper about debugging, I investigated and SBCL breakpoitns are used only by TRACE. The step instrumentation uses a different mechanism.
cls has joined #commonlisp
<_death> right, I'm talking about something that does not yet exist afaik
<beach> Oh, sure. I am pretty sure you could set breakpoints in CMUCL.
<beach> And they kept the mechanism.
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
<cls> Hi, I'm trying Lisp for the first time and I'm wondering if there's a standard easy way to extend a defsetf. I've got (defun node-port (port-id) (aref (node-ports (car port-id)) (cdr port-id))), which works fine for access, but all I need to do for update is put the 'value' on the end of the parameters and the aref call. It feels like there should be a straightforward function to define both at once?
<beach> nij-: Imagine the following scenario: You ended up in the debugger, but there is a restart that makes the computation continue. On the stack there is an invocation of a function FOO, and some BAR that it calls so that you eventually ended up there.
<beach> Now, you want to set a breakpoint in FOO, after BAR returns. You can't. If you insert a (break) and recompile FOO, it will not be the same function as is on the stack.
<_death> then, there are different kinds of breakpoints.. breakpoint on execution is one, but what about breakpoint on variable access (maybe just for specials?) or region access (of an array) or some arbitrary condition (slow ;)
<cls> That is, (defsetf access-node-port update-node-port) seems a bit longwinded
<beach> _death: Sure.
<beach> cls: You can define a function (defun (setf node-port) (new-value ...) ...)
<beach> cls: Then the SETF macro will find it automatically.
tyson2 has joined #commonlisp
<nij-> I see..
tibfulv has quit [Ping timeout: 260 seconds]
xlarsx has joined #commonlisp
<_death> in the old days I used debuggers a lot (turbo debugger, watcom debugger, softice, visual c++'s, etc.) .. but when writing lisp I often just insert a break form or do print debugging (incl. tracing).. the lisp debugger (sldb) is useful of course, but its operation is different
<beach> I do too, but only because that's my only choice.
tibfulv has joined #commonlisp
aartaka has quit [Ping timeout: 265 seconds]
xlarsx has quit [Ping timeout: 246 seconds]
<jackdaniel> fwiw implementations that share the runtime with languages like c or c++ may be debugged with gdb
<beach> Don't you then have to know how your implementation represents objects in order to inspect them?
thuna` has joined #commonlisp
aartaka has joined #commonlisp
<jackdaniel> isn't that true generally for gdb? (i.e can you inspect a struct object without knowing how it is represented)?
<beach> You can use a symbolic expression for that, like the name of the field.
* beach can't remember whether struct elements are called "fields" in C.
<jackdaniel> in this sense you can use that as well for ecl (I'm not sure about clasp)
<beach> But if you have a tagged point, you need to remove the tag manually, no?
<beach> *pointer
<beach> And then you have to cast to the right struct pointer.
<hayley> You can do that in SBCL, but you do have to manually untag pointers and cast them.
<jackdaniel> sure
<beach> Like ((struct bla *) (((int) var) + tag)) -> field or something like that.
<_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)
<hayley> Or, if lazy, one can use the print() function in SBCL to do something between printing and inspecting a tagged pointer.
<jackdaniel> perhaps a clever macro that calls into the runtime's type-of could automate that in gdb
<beach> _death: Oh, come on!
<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!
<_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
<hayley> a la "p print(0x100001337)" prints a cons cell somewhere in dynamic space. (Please help, I remember those numbers.)
<_death> beach: it's not that DE is lousy, but that it provides enough alternative (repl, first-class functions, expression oriented..)
<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
<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.
<jackdaniel> in this sense debuggers are more important for embedded platforms accessed via jtag than for lisp environment with slime and repl attached
<hayley> They missed that expressive languages prevent large programs from becoming huge programs.
<jackdaniel> that's not to say that a good debugger is not valuable, it is just about how critical it is to have it
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
pickanick has quit [Ping timeout: 265 seconds]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
aartaka has quit [Ping timeout: 244 seconds]
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
aartaka has joined #commonlisp
<_death> and then, we also have some nice inspectors, which are often a big part of a debugger
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
<jcowan> beach: "Members" is the term used by the C standards, except for bit fields, which are called fields for some reason.
chipxxx has quit [Quit: Leaving]
chipxxx has joined #commonlisp
<beach> jcowan: I see. Thanks!
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
nij- has quit [Ping timeout: 252 seconds]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
qhong has quit [Ping timeout: 268 seconds]
ttree has joined #commonlisp
ttree has quit [Read error: Connection reset by peer]
pickanick has joined #commonlisp
frgo has joined #commonlisp
Everything has joined #commonlisp
chipxxx has quit [Read error: Connection reset by peer]
hrberg has quit [Ping timeout: 246 seconds]
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
anticomputer has quit [Ping timeout: 258 seconds]
attila_lendvai_ has joined #commonlisp
attila_lendvai has quit [Ping timeout: 252 seconds]
hineios9 has joined #commonlisp
hineios has quit [Ping timeout: 264 seconds]
hineios9 is now known as hineios
hrberg has joined #commonlisp
Hrodgar has joined #commonlisp
Hrodgar has quit [Remote host closed the connection]
Hrodgar has joined #commonlisp
epony has quit [Remote host closed the connection]
epony has joined #commonlisp
causal has joined #commonlisp
pickanick has quit [Ping timeout: 246 seconds]
attila_lendvai_ has quit [Ping timeout: 260 seconds]
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 246 seconds]
gxt has quit [Ping timeout: 258 seconds]
attila_lendvai_ has joined #commonlisp
xlarsx has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
xlarsx has quit [Ping timeout: 244 seconds]
xlarsx has joined #commonlisp
shka has quit [Quit: Konversation terminated!]
xlarsx has quit [Ping timeout: 264 seconds]
shka has joined #commonlisp
xlarsx has joined #commonlisp
notzmv has quit [Ping timeout: 264 seconds]
tyson2 has quit [Remote host closed the connection]
zyni-moe has joined #commonlisp
cage has quit [Remote host closed the connection]
zyni-moe has quit [Quit: died]
szkl has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
_cymew_ has quit [Quit: Konversation terminated!]
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
_cymew_ has joined #commonlisp
qhong has joined #commonlisp
_cymew_ has quit [Ping timeout: 244 seconds]
xlarsx has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 260 seconds]
dtman34 has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
dtman34 has joined #commonlisp
puchacz has quit [Quit: Client closed]
tyson2 has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
jmdaemon has joined #commonlisp
Lord_of_Life has joined #commonlisp
thuna` has quit [Ping timeout: 265 seconds]
aartaka has quit [Ping timeout: 246 seconds]
xlarsx has joined #commonlisp
aartaka has joined #commonlisp
xlarsx has quit [Ping timeout: 244 seconds]
cercopith_ has joined #commonlisp
cercopith has quit [Read error: Connection reset by peer]
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 246 seconds]
_cymew_ has joined #commonlisp
xlarsx has joined #commonlisp
_cymew_ has quit [Ping timeout: 244 seconds]
xlarsx has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 265 seconds]
verisimilitude has joined #commonlisp
Oladon has joined #commonlisp
zyni-moe has joined #commonlisp
zyni-moe has quit [Client Quit]
aartaka has joined #commonlisp
xaltsc has joined #commonlisp
aartaka has quit [Ping timeout: 265 seconds]
Lycurgus has joined #commonlisp
notzmv has joined #commonlisp
anticomputer has joined #commonlisp
mathrick has quit [Ping timeout: 268 seconds]
smlckz has quit [Quit: WeeChat 3.6]
nullsh has quit [Quit: WeeChat 3.5]
tyson2 has quit [Remote host closed the connection]
gxt has joined #commonlisp
VincentVega has joined #commonlisp
Guest6688 has quit [Quit: WeeChat 3.6]
Everything has quit [Quit: leaving]
danishman has joined #commonlisp
zyni-moe has joined #commonlisp
zyni-moe has quit [Client Quit]
shka has quit [Ping timeout: 265 seconds]
Lycurgus has quit [Quit: Exeunt juan@acm.org]
an_origamian has joined #commonlisp
pve has quit [Quit: leaving]
attila_lendvai_ has quit [Ping timeout: 244 seconds]
xlarsx has joined #commonlisp
tyson2 has joined #commonlisp
pjb has quit [Ping timeout: 268 seconds]
xlarsx has quit [Ping timeout: 246 seconds]
waleee has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
cercopith_ has quit [Remote host closed the connection]
cercopith_ has joined #commonlisp
SAL9000 has quit [Ping timeout: 250 seconds]
makomo has quit [Ping timeout: 265 seconds]
Oladon has quit [Quit: Leaving.]
SAL9000 has joined #commonlisp
masinter has quit [Remote host closed the connection]
pillton has joined #commonlisp
cercopith__ has joined #commonlisp
cercopith_ has quit [Ping timeout: 260 seconds]
nexalam__ has joined #commonlisp
nexalam_ has quit [Ping timeout: 246 seconds]
Brucio-61 has quit [Remote host closed the connection]
Brucio-61 has joined #commonlisp
cercopith__ has quit [Ping timeout: 246 seconds]
cercopith has joined #commonlisp
nexalam__ has quit [Quit: Leaving]
random-nick has quit [Ping timeout: 260 seconds]
xlarsx has joined #commonlisp
Oladon has joined #commonlisp
xlarsx has quit [Ping timeout: 268 seconds]