libera/#commonlisp - IRC Chatlog
Search
5:25:39
beach
phantomics: What would be the point of breaking backward compatibility for the very minor convenience to a very small number of users of Common Lisp?
8:05:28
hayley
I think I found the one good use for SIMPLE-BASE-STRING: one can scan at about 11 Gcharacters/second with BASE-CHAR, as opposed to "only" 4.7 Gcharacters/second with CHARACTER, because one can stuff more characters in a vector register.
8:47:53
hayley
Now that you mention it, I guess my Xorg.0.log nearly fits in L1 cache then (just 2KB short or so). Though I don't think I'm memory bound still.
10:20:59
rain3
- I had tried Paredit, Lispy, and 2 other similar packages ... too complicated, (and lispy too restrictive) - I hate them;there's also smartparens or smth like that, some people like to build atomic bombs to kill a fly; what always strikes me that usually those are exactly the people that don't know about the built-in "emacs" way of doing it
10:30:53
jackdaniel
Guest74: how clim model is broken? and do you have some specification draft that addresses these isses in your grand project?
10:35:12
beach
jackdaniel: I think we are supposed to read the IRC logs and make suggestions, rather than read a document with one or more proposals comparing pros and cons of each alternative.
10:36:40
hayley
To do the classic joke for the day (which I forgot the original form of): I have never used Paredit and never needed it.
10:36:46
contrapunctus
rain3: most of the time I get by with Boon - combined commands for movement over words and s-expressions, which combine with composable commands to provide killing/copying of s-expressions. But Paredit/SP splice operations are very useful. I also like Lispy's commands to move an s-expression forward and back, and the Lispy eval command is useful because it evaluates the s-expression before or aft
10:37:38
jackdaniel
beach: Im still waiting for some interesting idea to steal though. sadly until now only superficial complaints were presented
10:41:21
beach
jackdaniel: I don't think the main point was to complain about CLIM or anything else, but to come up with a good design. But then there was disappointment expressed about the lack of feedback, and I was trying to explain why no feedback can be expected unless there is a serious documented analysis of the problem and alternative solutions.
10:53:40
rain3
VincentVega: I forgot the details, I think it was the fact that it doesn't allow me to type a single paren and things like that , which weren't even easily configurable
10:57:38
VincentVega
rain3: Oh, I hear you. I did find that infuriating myself at first, with the " especially, but I did manage to turn that off (I think through a custom binding). Although I think it just takes getting used to.
11:01:47
VincentVega
rain3: No persuasion on my part, the only reason I am using it is because of lispyville which makes lispy usable with evil.
11:02:51
rain3
I was also curious about lispyville , but never gathered enough courage to install it , or I tried and I failed
11:04:06
rain3
I was using evil mode with lispy and bindings such as this: (evil-define-key 'insert evil-lispy-mode-map "}" #'lispy-brackets
11:04:55
rain3
"Most people use a package called paredit. I find it too complicated, I just just the following: (info "(emacs) Parentheses") Basically C-M-{n,p;f,b;u,d}"
11:05:22
VincentVega
rain3: I see. I got custom bindings going for the whole deal myself, a strange mix of lispy and paredit and lispiville's own commands. I do find it satisfactory enough by now, though.
11:07:00
VincentVega
rain3: I do those through a leader key for sexps, chords are far too cumbersome to my taste.
11:08:08
rain3
VincentVega: how about connecting an external usb keyboard and assigning actions to single keys
11:09:56
VincentVega
rain3: well, that doesn't sound like something I would go for, if I were to keep a hold of my sanity
11:10:02
rain3
an ordinary keyboard which you can program; it's easier and better than to use 'macro keyboards' because their programming interface is limited
11:10:14
rain3
"Personally, I think of attempts to keep parens balanced automatically as unlispy - something that might be helpful for, say, C programming, but more harmful than helpful for Lisp. I tend to think that all of the slurping, burping, gurgling, snorting, and barfing, which devotees consider handy, are just contrivances to try to make a virtue out of necessity. From the moment that you've automatically, prematurely introduced a
11:10:14
rain3
closing paren, you naturally find a need to try to find a way to work around it. If you don't box yourself in, in the first place, then there's no such need. Not that I'm trying to convince anyone. But since you asked, I don't need to "handle parentheses". There's no real problem to solve, IMO. Or if the question about "handling" parens is more general, then my answer is that Emacs lets me know whether parens are balanced. I
11:10:14
rain3
don't need or want them balanced "ahead of time". I use show-paren-mode, blink-matching-paren, and blink-matching-open. And I sometimes double-click a paren to go to its match (and select the whole sexp)."
11:12:24
rain3
"FWIW, in the 80s there was a certain amount of interest in "structural editing" in languages like Lisp. (And later, that really took off in non-developer or not-much-developer contexts such as XML editing.) At the time, I realized that that approach was unnecessarily restraining/restrictive - like always being in prison, just to avoid the possibility, even temporarily, of creating something syntactically invalid. When
11:12:24
rain3
enthusiasts of Lisp structural editing who weren't familiar with Emacs were shown Emacs they sometimes realized they were on the wrong track. The point isn't to prevent you from ever creating something invalid. The point is to let you easily do anything - general text editing, and at the same time (1) let you check validity on demand, on the fly and (2) provide automatic feedback about validity (e.g. font-lock), without
11:12:24
rain3
imposing continual validity. (Plain) Emacs gives you just that: unlimited, general text editing, but also feedback about validity and language-specific structure and syntax."
11:18:51
lisp123win
rain3: Yeah, many people don't know that the standard SEXP manipulation of Emacs are already quite good. Once you get used to paredit's extra features, its hard to go back. But to me, the best combination is evil mode + paredit, heaven on earth
11:20:55
VincentVega
rain3: I take it this is not a first time you are having this argument : D I am not going to argue extensively, because that would require an article on its own, which I will hopefully write at some point. But let it be known that I don't find myself having to "work around" a closing parens. Just a matter of habit and I say that as someone who hated paredit when I first tried it. As that one emacs rocks episode quoted, "if you think
11:20:55
VincentVega
that paredit is not for you, then you need to become the kind of person that paredit is for."
11:23:07
rain3
it is the first time I am discussing about this topic; just sharing some quotes here , and also reading with interest what you are sharing
11:23:38
VincentVega
rain3: "who weren't familiar with Emacs were shown Emacs they sometimes realized they were on the wrong track" I would like to read up on this.
11:26:38
lisp123win
A lot of lisp programmers didn't use paredit in the old days I'm assuming (Emacs has always been one of the significant platforms of choice), so its not necessary. For example, I think Guy Steele programs on Emacs, so I don't think he used paredit
11:27:47
rain3
VincentVega: https://i.reddit.com/r/emacs/comments/l7khmk/what_key_binding_scheme_do_you_use_to_handle/
11:35:55
contrapunctus
VincentVega, rain3: if you don't have a keyboard which places Ctrl under your thumb, I highly recommend using this program called kmonad to configure Space to act as Ctrl when held. This is my configuration for it - https://tildegit.org/contrapunctus/dotfiles/src/branch/production/kmonad.kbd
11:40:33
rain3
I had heard some people say they prefer capslock to act as ctrl , never heard about space -> ctrl , thanks for the tip . What are the benefits of it?
11:41:10
VincentVega
contrapunctus: Thanks, but I dig modal editing, I barely ever need ctrl, and I use space for a leader key. I did remap ralt to escape though.
11:41:31
lisp123win
VincentVega: Apparently paredit brought some functionality from some of the older lisp systems (might be Interlisp but don't quote me on that), but naturally that part wasn't in Emacs otherwise we wouldn't have Paredit until 2005
11:43:53
rain3
someone told me this: "despite what poeple say emacs is also modal, but it achieves modal editing with another mindset"
11:45:13
contrapunctus
rain3: before Space-as-Ctrl, I used setxkbmap+xcape to have Caps Lock as both Esc and Ctrl. It's better-placed - less disruptive to the home row position - than Ctrl on most keyboards, but Space-as-Ctrl takes it to the next level. No more straining the pinky, better utilization of the thumbs, and opens up many more Ctrl bindings. (And it makes Ctrl bindings the most comfortable ones, only behind
11:49:31
pdietz
Structure editing as done on Interlisp wouldn't really work with Common Lisp, since one can arbitrarily redefine the character-level syntax of Common Lisp with the readtable. Interlisp didn't have that; indeed, comments in Interlisp were parts of the s-exprs of the code (using the * symbol as a special operator; TIMES was used for
11:50:41
hayley
Could you write a * at the end and pretend you have Pascal? e.g. (PLUS (* woo quadratic equation *) (TIMES A X X) (TIMES B X) C)
11:50:55
pdietz
That said, readtable shenanigans can confuse emacs as well (but one can customize emacs to take such things into account.)
12:12:26
contrapunctus
I wish Common Lisp tools used Common Lisp contructs themselves to work with Common Lisp code, so you could e.g. change the readtable and your tooling would automatically be aware of it and go on working as usual...but beach is working on something like that, right? 🤔
12:14:20
hayley
"We got incremental parsing to work, and now you want me to solve the halting problem at typing speed?" - roughly paraphrasing beach
13:25:16
MichaelRaskin
I have a page or so in my paper… basically interactions of macros and lexical environments and macrolet are already a mess, and then there is a question to what defun expands…