freenode/#lisp - IRC Chatlog
Search
8:28:59
no-defun-allowed
it still shows up, but both arrows are emboldened, presumably cause it scans for ===> from the left and <=== from the right and the lambda list isn't escaped in any way
8:36:32
no-defun-allowed
it seems to me like passing the sexp instead of a string representation would be less painful
8:51:30
beach
dim: The input-editor of McCLIM is Drei, which is an extraction of the basic editing features of (first) Climacs.
8:52:29
dim
beach: oh make sense, so in the vision, Climacs is the editor “widget” that McCLIM uses?
8:53:21
beach
shka_: I think it is when shared-initialize is executed on the instance, but you can check that by printing something in the initform.
8:53:54
beach
dim: Emacs did it the other way around, but that's just because nothing like CLIM existed at the time.
8:56:39
jackdaniel
I have plans to replace Drei though with something less overengineered. Drei served a good purpose for Emacs clone, but it is not very good as a default editor substrate
8:58:49
beach
The listener is a bit special because it accepts Common Lisp forms, which is not typical for other applications.
8:59:23
jackdaniel
it will be possible to coerce listener to use it I suppose, but I didn't pay much thought to that
9:00:11
jackdaniel
right now listener uses clim (without drei extensions), so it doesn't matter what is baking editor substrate for it
9:02:54
beach
Are you saying we have more than one place where keyboard gestures such as C-M-f C-M-a, etc are defined?
9:03:56
jackdaniel
(to be clear, I'm not proposing drei removal, I'm proposing removing dependency between mcclim and drei in the former's core module)
9:04:43
beach
I see. I am still puzzled though that the listener is not using Drei, because that would mean that we have several places where pretty specialized gestures like that are defined.
9:06:29
jackdaniel
it is possible for drei to add some gestures to pure clim (and if they are defined solely in drei then they could be moved to core), so with a simple replacement you'd lose these gestures. that doesn't mean that listener depends on drei in any way, it just means that drei has side-effects which influence mcclim behavior.
9:07:01
jackdaniel
I don't know if they are defined elsewhere, I'm sure it is fairly easy to scope the codebase to check this out though
9:16:41
beach
I am also interested in knowing in which ways you think Drei is over-engineered, and how you would do it differently. It is a serious question. I wrote (first) Climacs, but Athas extracted the part of it that is now Drei, and I am not sure exactly what he did.
9:20:27
jackdaniel
one infuriating part is the notion of having buffer-pane mixup (for some reason drei doesn't keep notion of a pane separate from a buffer, so you can't freely operate on drei panes using clim primitives. Keep in mind, I don't remember drei code details, I'm fixing parts of it sporadically, but I remember finding quite a few assumptions like that in drei
9:21:54
jackdaniel
another thing (but this is not drei's issue per se, I'm just mentioning it since we are at gestures) is that not everyone is fond with mcclim key combinations, it would be nice to be able to switch input pane to use other gestures
9:24:52
jackdaniel
also there is modual-class metaclass which doesn't really benefit text-field in any way I can imagine (but it makes perfect sense for Emacs-like editor)
9:31:57
dim
what I mean is that given that “trick” it should be easy enough to maintain more than one keymap in the editor, right?
9:35:04
dim
so all it needs is for one of the regular contributors to use an alternative command table I guess
9:35:43
jackdaniel
that's why I've said it is not a big problem, just mentioned it since we were at gestures
9:36:28
jackdaniel
in perfect world that would be simply configurable, so the user enters McCLIM configuration screen and picks preferable editor bindings
9:37:04
dim
self-insert-command is the command that inserts a into the buffer at the current position when you hit the 'a' key, and in Emacs if you're using a read-only mode (Gnus or something) it might be something else, such as 'a runs the command gnus-summary-post-news'
10:50:09
shka_
beach: btw, don't feel preasured in any manner, but you often already have those things done. What about case study of first climacs and what needs to be redesigned for the second climacs?
10:55:04
beach
In Emacs, (first) Climacs, and other editors, Common Lisp code is parsed using regular expressions, or something with similar power.
10:57:18
beach
This technique then opens up interesting possibilities. The plan is to adapt Cleavir (which it was written to facilitate, so no big deal here) to invoke the first few passes of the compiler to analyze the code at typing speed.
10:57:37
dim
usually editors refrain from using the language's parser not because it's complex to call a READ function, but because the job is to parse incomplete forms while the user is typing them...
10:58:59
dim
I remember mostly about the speed of typing vs the speed of figuring out what you typed, not about adapting read to invalid input
11:01:25
scymtym
the support for incomplete input needs more work. it is definitely a high-priority feature
11:04:06
jackdaniel
"Thoughts on the Formalization of Program Construction" here https://european-lisp-symposium.org/static/proceedings/2018.pdf was also an interesting talk
11:10:05
heisig
I loved that talk. The author also has a website for the project: http://www.expressionsofchange.org
11:29:55
jmercouris
so, I'm running Lisp in a production setting as a webserver, and what I usually do is ssh into the box, run screen, and then start my lisp application
11:30:27
jmercouris
this however means that whenever I want to restart the server, I have to ssh onto the machine, connect to the running screen session C-d and then restart the program
11:32:41
otwieracz
jmercouris: if this is recently-dated operating system, you probably have `systemd`.
11:34:07
shrdlu68
jmercouris: Start your program with a swank listener. Then daemonize it with your system's init mechanism (probably systemd, upstart, sysv, openrc, etc.)
11:36:02
jackdaniel
jmercouris: running it from screen is hardly a practice at all, especially for a "production" setting. you need to write a service file for your application (that depends on your init system) and run it like any other daemon on it
11:36:29
jackdaniel
keep in mind, that to be able to restart it properly you need to handle certain (operating-system dependent) signals inside the application
11:37:10
jmercouris
jackdaniel: properly being a "clean" restart, instead of a kill -9, is what you mean?
11:38:21
otwieracz
jmercouris: one more question - are you delivering it as binary image (like `saves-lisp-and-die`) or running it from source?
11:38:57
jmercouris
because I would be compiling on macOS, and running on FreeBSD, not sure the SBCL kernel can do that
11:44:56
jmercouris
I'll also probably want to compile the application in the make and add a make install to put it into the path
11:46:13
jmercouris
heisig: I'm familiar with cl-launch, it's not really applicable here, unfortunately
15:46:08
beach
Sometimes, ordering something from Amazon is strange. A few years back when I ordered the book Advanced Compiler Design Implementation by Muchnick, it came with a Cover with Chinese characters on it.
15:46:09
beach
Today I received Modern Operating Systems by Banenbaum and Bos, and it has a text on the cover: Circulation of this edition outside the Indian subcontinent is UNAUTHORIZED.
15:47:01
Quike
in college i got an "international" version of a class's discrete math textbook and it turned out they just removed a chapter and otherwise it was the same
15:48:06
beach
I am convinced these books are the same no matter where I buy them. But it is strange to order from the French branch of a large international company, and have them ship me an unauthorized edition.
15:51:23
warweasle
Generally international textbooks are printed in black and white and are much cheaper.
15:55:52
jcowan
Note that "unauthorized" does not mean "illegal". Circulation of books in the U.S., if they are published by the legitimate publisher, can't be limited.
15:57:03
beach
But I assume in this case that the publisher only makes it available in India, and considers exporting it to be unauthorized.
15:58:55
fiddlerwoaroof
I believe it was the exact same book and I got the edition that was meant for distributing in China
15:59:26
shka_
Quike: copyrights belong to the author, but the remark suggests publishing rights, but publishing rights already belong to the publisher
16:00:08
Quike
Well I was thinking the publisher is doing whatever price discrimination, then another firm buys books from them in India and sells them in France.
16:18:16
jcowan
Quike: Really? You can't sell a painting you have bought without the painter's consent?
16:44:59
jmercouris
Quike: I don't think things are so simple, consider the recent scandal with the John Cena's reselling of his Ford GT
16:45:18
jmercouris
here's a quick link for those curious: https://jalopnik.com/john-cena-is-being-sued-by-ford-for-reselling-his-new-f-1820913011
16:47:21
jmercouris
does Ford not own Copyright on a "published" (manufactured) instance of each Ford-GT they produce?
17:47:00
jmercouris
shka_: sounds pretty wieldy to me, actually seems like it would be really clean, probably you had a comment on almost every line since assembler is pretty hard to decipher without comments
17:47:24
jmercouris
shka_: so it most likely looked like a table, on the left hand code, and on the right hand explanations
17:48:04
jmercouris
also assembler functions, from what I understand RARELY would need to be wide enough to be multiple lines
17:49:40
edgar-rft
God never documented his code when he created earth. That's why it's such a mess.
17:52:11
jackdaniel
comments, assembler, religion, and god put a close paren to end it. https://www.xkcd.com/312/
17:56:59
edgar-rft
In early programming languages it wasn't important to have a special comment char because the program text was written to be read by humans, not computers. The programmer had to look-up the CPU op-codes in the CPU manual and program the machine via hex numbers (memory address + op-code). No joke.
18:13:05
zigpaw
eight bit zx spectrum was great in this, as you had every op code translated directly to a single byte; you could literally learn most of those often used so you could transliterate asm code to hex on the paper (probably other 8bit computers too, but I had only experience with this one).
18:29:06
edgar-rft
jmercouris: I was talking about assembly language, too. On my first two computers it was *me* who was the assembler.
18:29:57
edgar-rft
I first wrote the assembly program on a piece of paper, then I programmed the computer via hexdumps.
18:56:49
oni-on-ion
i realised my positive perspectives on C are related to how it "let" me feel like half computer half human
19:03:25
jcowan
More accurately: "The name of Poet was almost forgotten; that of Orator was usurped by the sophists. A cloud of critics, of compilers, of commentators, darkened the face of learning, and the decline of genius was soon followed by the corruption of taste."