libera/#lisp - IRC Chatlog
Search
15:06:05
Josh_2
When connected to a remote lisp image can I get output to from functions like trace to go into my sly repl instead of having to view it with journalctl?
15:18:54
rain3
then why doesn't it output to the repl when you actually trace the functions? check the value of *trace-output* during those funcalls
15:32:31
rain3
This variable controls the global redirection of the the standard streams (*standard-output*, etc) to the REPL in Emacs. https://joaotavora.github.io/sly/
15:44:41
Josh_2
https://plaster.tymoon.eu/view/2567#2567 how do I fix this?? Getting an condition telling me that urandom was shut by save-lisp-and-die...
16:01:30
rain3
does that error happen when you load a fresh sbcl image and quicload ironclad and eval (ironclad:random-bits 13) ?
16:02:02
xaltsc
Hey, having used macros only in LaTeX and, to a lesser extent, in C, I had a really bad opinion of them. Now that I'm learning several Lisp dialects, I see that they are an important idiom, yet, I still see them as a bad programming practice, quite antiquated, just like gotos. Can someone explain me why I am wrong ? Thanks :D
16:04:53
dash[m]
xaltsc: It's a tradeoff of power vs readability. Lisps tend to be biased towards power/flexibility instead of towards readability/auditabilty
16:06:55
Josh_2
There is nothing inherently dangerous about a macro.. in fact I would argue that lots of the time its more dangerous to *not* use them
16:07:25
Josh_2
if you find yourself writing the same piece of code over and over and over you are more likely to make a mistake by doing that than hiding that piece of code behind a macro.
16:08:07
rain3
xaltsc: lisp macros don't operate on text, they operate on the abstract syntax tree of the program . so it's programming the program itself
16:09:39
dash[m]
Josh_2: I recommend this classic essay. http://www.erights.org/data/irrelevance.html
16:21:09
xaltsc
Josh_2: if you find yourself writing the same code, why use make a macro rather than a function. Concerning the "danger" macro pose, it kind of the same thing I guess that untyped languages vs languages with a powerful typesystem (eg. python vs haskell)
16:24:14
xaltsc
But there would always be a workaround with functions, deep down, it's nothing but Turing machines or Lambda calculus. Do macros really save time ? So far, I haven't witnessed a single instance of that, but I've probably only seen really simple examples.
16:25:49
Josh_2
I have 96 'commands' that are invokable by an external user, each time I need a new command I simply write (new-X-command <command-name> (<variables and their validators>) <body>) and I have a new command that is accessible to the relevant user by authentication level
16:27:10
jcowan
xaltsc: I recommend reading https://google.github.io/styleguide/lispguide.xml#Macros carefully
16:29:10
Josh_2
Now I have a nice syntactic abstraction for defining external commands that are validated when invoked, provide a few universal arguments that can be used in body and automatically grabs all output that is sent to *standard-output* and sends it to the room where the command was invoked
16:29:33
Josh_2
Sure I could do this with a function, but why? You dont need to know the workings of the macro to see how to use it by example
16:32:23
jcowan
you have let-bindings for a couple of gensyms, which is a style I haven't seen before.
16:35:06
wasamasa
xaltsc: so when you are limited by your lisp of choice and a function does not help, you can write a macro generating that code for you
16:35:23
Josh_2
jcowan: you can see the gensyms in use here https://plaster.tymoon.eu/view/2569#2569
20:07:32
makomo
mfiano: what happened to your common-lisp-sly layer for spacemacs? is it still available somewhere, and what's the best way of installing sly for spacemacs?
20:29:31
mfiano
It's been broken and unmaintained for a few years now, due to Spacemacs introducing too many breaking changes for me to continue using it. I would recommend Doom Emacs where Sly is built-in
20:31:27
wasamasa
> One of the greatest hacking programming languages, LISP was the go-to solution for crafting innovative solutions to software problems among old-school hackers. Although the language has lost most of its appeal due to its somewhat complicated programming style and the emergence of verbose languages like Python and Ruby, those who know LISP are the most respected in the hacker community.
20:31:27
wasamasa
> It is the best programming language for hacking into complex networks and will also earn you notoriety among fellow hackers.
20:31:57
wasamasa
not the kind of lisp endorsement I expected, most likely written by a marketing drone
20:32:57
wasamasa
> The scheme offers delayed evaluation, meaning you can develop asynchronous software with it pretty easily.
21:04:18
mdhughes
"The scheme emphasizes functional programming and recursive algorithms, making it a suitable choice for forging high-tech hacking programs. "