freenode/#lisp - IRC Chatlog
Search
12:33:14
mgsk
What's the "best" / "lisponic" way to do the equivalent of (in python) `for idx, elt in enumerate(list)'?
12:36:20
Shinmera
Which is mostly irrelevant nowadays as the symbols are few and the memory is plenty.
12:45:33
KZiemian
JuanDaugherty: this is one year old, partly outdated manifesto https://github.com/phoe/clus-data/blob/master/paper.pdf
12:55:06
KZiemian
if we don't find more acctive contributors we need at least few months to end prepering new framework (in broad sens of word) to CLUS
13:37:23
francogrex
phoe and continue loading asdf as usual using for example: (asdf:operate 'asdf:load-op :ALEXANDRIA) ?
13:39:58
francogrex
because I use step afterwards. if i load the compiled I won't be able to single step unless....
13:44:40
francogrex
(declaim (optimize (debug 3))) I have that. but still if i only load-op it won't single-step unless load-source-op. however with SB-EXT:RESTRICT-COMPILER-POLICY maybe it will directly on the compiled allow me to single step
13:50:17
oleo
#.(declaim (optimize (safety 3) (debug 3) (space 0) (speed 0) (compilation-speed 0) (inhibit-warnings 3)))
14:27:11
phoe
that's where RESTRICT-COMPILER-POLICY comes in, as it's stronger than individual OPTIMIZE declarations.
14:27:34
phoe
so you restrict it in .sbclrc, recompile everything once just to be sure, and boom, debug 3 everywhere.
14:48:52
beach
KZiemian: Here is another item for CLUS: On the dictionary page for FORMAT, it doesn't say what stream is designated when T is given. It would be good to mention that.
15:47:17
flip214
Xach: in https://www.xach.com/naggum/articles/3179815377988891@naggum.net.html, I guess that the
15:48:12
flip214
I've seen a few more similar HTML "injections", but a few of them matched the content or tone so I didn't wonder that much
15:50:35
flip214
(as #:Erik is famous for not loving Perl, I can't resist the guess that this is some Perl-RE-blunder? ;)
15:56:10
Xach
That won't be fixed, sorry. That happens to a small number of articles with ambiguous date fields.
15:57:20
flip214
the number is not that small... from memory, I'd guess I've seen some 30 or 40 mixed up posts, and I'm in Oct 2000 right now... but never mind, I can manage.
16:39:04
sigjuice
why (funcall (intern "INSTALL-REPL" :linedit)))) instead of simply (linedit:install-repl) ?
16:42:03
Bike
probably because that code is read before the linedit package is defined, e.g. in an asd file.
16:43:15
Bike
so if it was just (linedit:install-repl) sbcl would complain that there is no linedit package
16:47:59
sigjuice
the cliki page has (require :linedit) before (funcall (intern "INSTALL-REPL" :linedit) :wrap-current t)
16:49:00
phoe
as long as you don't do stuff like (progn (require :linedit) (linedit:install-repl)) because that will crash
16:49:43
minion
jmercouris, memo from jasom: https://github.com/crategus/cl-cffi-gtk/pull/56 <-- this fixes the ccl issue; I'll post my synchronous gtk solution later tonight
16:50:21
jasom
jmercouris: you were right, as a point of fact, that the ccl crash when not waiting was caused by an upstream bug
16:52:01
jmercouris
jasom: Yeah, I had a strong feeling because at that point I was doing nothing non-standard with the code
16:52:56
jmercouris
I wasn't sure how much was due to my VM setup, SSH X Forwarding, some other config etc
16:53:44
jmercouris
jasom: I'm thinking of maybe using Fereda's version since he accepts PRS/ is updating it, what do you think?
17:03:11
phoe
simplifying things, there's three times: read-time, compilation-time, execution time. There are some other times as well, but let's skip them for now.
17:03:25
phoe
during read-time, Lisp reads your data from strings or streams and turns them into objects.
17:04:10
phoe
then it reads "linedit:install-repl", which means, find me a symbol named "INSTALL-REPL" in package named "LINEDIT".
17:04:51
phoe
It doesn't matter that you had (require :linedit) before. It was only read, but not evaluated.
17:05:31
phoe
when you split your input into (require :linedit) (linedit:install-repl), Lisp first reads the first form, compiles it, evaluates it.
17:05:56
phoe
Then reads the second form - successfully this time, because the first form created the LINEDIT package and all the symbols in it - compiles it, evaluates it. No error.
17:06:41
Xach
mfiano: I don't have cmucl handy at the moment. but in my experience most software is not tested with cmucl and problems can sneak in.
17:09:04
mfiano
Xach: I really haven't tried...this is a remote log from TravisCI that doesn't even get to the loading part.
17:15:25
jmercouris
interesting, so use does get executed it seems, unless I don't understand the docs
17:16:23
phoe
(defpackage foo (:use (concatenate 'string "COMMON-" "LISP"))) ;=> error, (CONCATENATE 'STRING "COMMON-" "LISP") does not designate a package
17:16:48
phoe
so you need to put package designators there, not something that evaluates to package designators.
17:18:35
jmercouris
if you have a defpackage, and you :use something, how does it know what symbols exist from that given :use?
17:20:21
Bike
use is just a list of packages, though. packages have a use-list. when you try to find a symbol in a package, it'll check the use list if it has to, so whatever symbols the used packages define are available, it's not set in stone at defpackage time or anything.
17:22:35
Shinmera
defpackage essentially just expands into an eval-when with all clauses and the respective package operations like export, import, use-package, etc.
17:24:12
jmercouris
I've noticed it doesn't complain about symbols not defined if I :use them in a package
17:24:38
Xach
jmercouris: that's because it's just using the symbols for the strings that are their names.
17:25:10
Xach
FOO is not a variable reference because it's not evaluated normally. defpackage is a macro.
17:26:33
Xach
i wrote a simplified clone of the package system to understand it better and i am happy to answer questions!
17:30:29
dmiles
oh good .. ok so i have this lisp impl i created.. and when i am at startup i have a flag that lets me intern and export new symbols like sys:%foo wi5thout giving an error that %foo does not exist in system .. in cases %foo did exist I export it if the initial bootstrap code used : instead of :: .. al this was of my own design .. but is there some defparameter or some other variable that i could
17:32:50
Bike
you can intern symbols whenever, dmiles. or do you mean that you want something like package locks, so that the user can't intern/etc symbols in certain system packages?
17:33:49
dmiles
the sys::%foo i support fine.. it interns .. but i wanted a way that the user would already know how to export as well as intern
17:35:02
dmiles
https://github.com/TeamSPoon/wam_common_lisp/blob/master/prolog/wam_cl/prologfns.pl#L75 <- here is sone intenral code where i have symbols getting exported
17:37:19
Bike
Which relates to how the reader treats case in symbols, something that intern and find-symbol are completely independent of?
17:38:19
dmiles
so i was more asking if anohter impl uses the same hack i do and what they did to support
17:38:55
Bike
I'm not sure what you're trying to do. Do you want the reader to see a symbol, intern, and export it?
17:39:00
dmiles
correct.. other then the readtable actualyl intially deciding what the string will look like
17:39:21
Bike
Yes the readtable controls how the READER gets a string that is passed to intern. Intern doesn't do any case conversions or anything.
17:40:12
dmiles
yes i'd like it so the user can tell the reader to see a symbol, intern, and export it
17:41:05
Bike
Okay. I don't think anybody does that. Why can't you just specify the package definition with all the exported symbols earlier?
17:43:22
dmiles
but then i was thinking it be nice to not depend on packagfe locks to decide when i ignore that flag
17:43:57
dmiles
thats what i meant " <dmiles> right the interner would be independant of technically"
17:44:39
Bike
This *export-symbols* flag is the one that tells the reader to export symbols sometimes, right? I'm saying you should not have such a flag and the reader should not export symbols.
17:47:22
dmiles
eveytime i make a defparameter like *export-symbols* i have to write docs on it.. i am hoping someone lese did this as well and i could use their docs
17:48:44
Bike
So here's what I"m saying. Don't have any flag like that. If you want a symbol to be exported, just export it, like call the cl:export function on it, or if you have defpackage specify it in :export.
17:49:15
dmiles
so you are saying the better elegant design would be to yave it set up in defpackage .. right on
18:14:21
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSmtbpk: varjag smurfrobot M â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:14:25
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSbplxkfh: spoken-tales knobo2 jmercouris â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:14:30
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSpnyhh: varjag Khisanth EvW â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:14:36
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILShgwojzwsj: fluke` Khisanth varjag â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:14:40
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSbfpqzei: jmercouris spoken-tales smurfrobot â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:14:46
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILShgfcdel: smurfrobot damke_ ym â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:14:50
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSxnpunnwys: M varjag fluke` â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:14:56
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSlccsywl: varjag knobo2 smurfrobot â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:15:01
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSlaezhs: ym knobo2 EvW â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:15:05
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSnkmusqkan: jmercouris varjag EvW â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:15:10
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSkkmeadkan: varjag ym jmercouris â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:15:15
Bookimp175
â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSatzvyau: ym Khisanth knobo2 â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„
18:30:17
jmercouris
He would have the knowledge and the desire to do something like that, maybe it is him
18:39:42
jmercouris
DeadTrickster: Did you get a chance to try the new GTK version? There's a couple features missing yet, like parenscript execution, and callback for "onload" of a webview, but is "kind-of" working
18:47:01
knobo
I was thinking of what was mentioned here: http://blog.quicklisp.org/2017/12/december-2017-quicklisp-dist-update-now.html
18:52:03
dmiles
for my auto-export thing (which i only use for the cold system right) now i swistched over the a primordial **BOOT-STATE**.. but of course the symbol (like before) have to trigger a PACKAGE-ERROR like "Symbol "XXXX" not found in the YYYY package"
19:01:14
jmercouris
DeadTrickster: Yeah, it works, I changed a bunch of things to make it work per jasoms instruction
19:05:19
jmercouris
I see, so you know how to make a standalone executable or one that uses shared libraries?
19:06:21
jmercouris
If you don't want to do it, that's of course no problem, I am just asking if you can since I'm a BSD/MacOS user
19:06:55
jmercouris
So, I'm not exactly 7 days like I said in the issue on github, but pretty close :D
19:26:53
sigjuice
jmercouris the 'Memory pressure relief' messages are coming from here. https://anonscm.debian.org/git/pkg-webkit/webkit.git/tree/Source/WTF/wtf/MemoryPressureHandler.cpp?h=webkitgtk-2.18#n280
19:31:50
jmercouris
sigjuice: It doesn't look like anything unusual I guess, do you know under which condition this log is fired off?
19:33:03
jmercouris
It's possible that it's just a standard debug message do to the way the process is launched
19:33:28
jmercouris
I'll take a look later into cl-webkit and see how the webview is actually instantiated
19:39:08
sigjuice
I guess that is how the gtk window is created. (make-instance 'gtk:gtk-window ... :default-width 250)
21:34:22
Ardx
Can anyone direct me to a lisp/scheme that can be used in a proven, robust and modern IDE? These include vscode, visual studio, intellij, atom. Not emacs, or dr racket
21:37:23
jmercouris
Visual Studio is used for .net mostly, and Intellij is used basically just for Java, so what are you asking for?
21:37:27
Ardx
_death point me to a plugin with syntax highlighting, autocomplete, debugging, and error underlining?
21:38:09
Ardx
In an IDE that has a file tree, can support multiple tabs, and has a working dark theme?
21:38:59
jmercouris
Ardx: Do you think it is just one huge coincidence that we are mostly using Emacs?
21:39:21
Ardx
I just hate emacs tbh, tried to use it with clojure for ages and hate all the keyboard commands i need to remember
21:39:56
jmercouris
There are no keyboard commands you have to remember, if you have vanilla emacs, you can type into it with normal keys, and there is even a menu bar with File-> Save, etc
21:40:31
jmercouris
The latest release of Emacs was within the past year, and why does modern equate to better?
21:40:58
jmercouris
Ardx: Except for that Ctrl+C and Ctrl+V can be made as copy/paste keys, and there are Windows versions that have that built in by default
21:41:17
aeth
Emacs is a lot more modern when (1) you turn off tool-bar-mode and menu-bar-mode and (2) you give it a dark theme and (3) you shrink the font
21:42:23
Ardx
I like having drag drop panes that show me file tree, document tabs, code, menu with debugging options etc
21:43:00
jmercouris
Ardx: If you just don't feel like learning it, that's fine, but you can't argue that emacs is less capable
21:44:14
Ardx
not here to learn keyboard shortcuts and how to hide everything away, just want to edit lisp in a regular enviroment that I work in all day too
21:45:29
jmercouris
Ardx: Not all interfaces have to be so strange looking: https://imgur.com/a/LhCA6
21:45:54
jmercouris
Ardx: I'm just suggesting keep an open mind, it is not a coincidence that the best developers are using heavily modified emacs and vi
21:47:45
jmercouris
Ardx: I would say you rather prefer your editor as simple as possible, and making all decisions for you, and that's fine, but you won't score any points by criticizing emacs (unless of course your criticisms are accurate)
21:49:26
aeth
Ardx: The problem is that every language that has an IDE has a different best IDE. And IDEs make a huge difference. C# in Emacs isn't a good experience, just like Common Lisp in Visual Studio isn't a good experience. The recommended IDE for CL is SLIME, which does many cool things. There are ports of SLIME outside of Emacs (e.g. vim), but they're not as featureful at the moment.
21:50:00
aeth
Emacs is both a text editor and a platform, and it happens to be the platform for the Common Lisp IDE.
21:51:07
Ardx
all languages have the same core concepts though: a set of files, code to syntax highlight, autocompletion on type, error underlining, a repl, and a compilation step
21:51:08
rme
And that is, IMO, somewhat unfortunate. Emacs and SLIME do a lot, but you can write CL using any tool you like.
21:51:46
Ardx
Thats why things like the language service exist, and how a vscode/sublime can suport a lot of different languages
21:51:47
aeth
Ardx: Yes, all languages have the same core concepts, but they all tend to have a different "best" IDE. That's definitely unfortunate.
21:52:32
aeth
Ardx: There is a server that CL can speak, used by SLIME and other IDEs. It's called swank. https://github.com/slime/slime/blob/master/swank.lisp
21:52:45
_death
Ardx: this is wrong, and if you want to learn why, you need to suspend your disbelief and pick the environment that tends to be used by practitioners of a language
21:52:59
aeth
Ardx: The problem is that people hav eto support swank, and I don't think Microsoft (creators of Visual Studio) have an interest in CL.
21:54:27
aeth
CL is a fairly unique language, so converting it to something designed for a C# or Java workflow is probably not going to work. Common Lisp is unlike almost every other language because it's based on an interactive image. Smalltalk is also like that, and Smalltalk is the only other language I know like that.
21:54:54
aeth
Smalltalk is probably the only language more interactive than CL (it did it first, and it did it better)
21:55:24
jmercouris
Ardx: Did you try something like spacemacs? That seems to cater to the Atom type crowd
21:55:56
jmercouris
You can't tell me the aesthetics of that look bad, though I don't even see why that should be an issue
21:56:26
jmercouris
At the end of the day, the choice is yours, but I cannot in good conscience reccommend another platform/editor
21:57:41
random-nick
if you don't like keyboard shortcuts then you can always execute a command by name using M-x
21:57:48
Ardx
Heres the modern approach: Have menus , buttons etc interactive things. Also allow keyboard shortcuts. voila
21:58:04
jmercouris
Ardx: That's just the thing though, emacs DOES come with a menu bar and buttons if you want
21:58:27
random-nick
Ardx: well, that seems to be what you want, since using the mouse is just extra work
21:58:46
jmercouris
I'm at a loss as to whether you are trolling or not, if you are, you did an excellent job, because this whole time I've been taking you seriously :D
21:58:48
p_l
Ardx: most editors don't provide enough stuff to implement comparable interfaces, or just require too much work (Eclipse)
21:59:03
p_l
Ardx: that said, I do seem to recall some pretty recent Atom and VSCode integration work
21:59:13
phoe
since it's about if emacs is outdated or not, and certainly doesn't concern itself directly with Common Lisp
21:59:32
jmercouris
phoe: Well, the conversation is about the best Lisp Editor, it's ALMOST offtopic, but not quite
21:59:36
aeth
The real problem Common Lisp has is that its unique characteristics (shared with one of its main inspirations, Smalltalk) really works best with its own enviornment. And that environment doesn't exist. If you've looked into Smalltalks, you've probably noticed that they tend to come with IDEs because that's a big part of the Smalltalk experience. GNU Emacs is old, and it uses Emacs Lisp, which is basically Lisp stepping in a time machine bac
21:59:55
aeth
Lisp stepping in a time machine back 30+ years. But it's close enough, so people use it.
22:00:40
aeth
But if you really get used to the Emacs+SLIME workflow, it provides a glimpse into what could have been, if there was more development effort in that direction. An experience you don't really get elsewhere, even though GNU Emacs really isn't perfect
22:00:45
Ardx
jmercouris this https://static.thegeekstuff.com/wp-content/uploads/2010/05/emacs-editor-gui.png vs this https://i.stack.imgur.com/Ne3qd.png
22:01:19
Ardx
Just because emacs come with buttons doesnt make it better, though tbf spacemacs seemed to hide them from me too
22:03:00
_death
aeth: this is also wrong.. realize that Emacs Lisp is developed and gains more features every day, unlike Common Lisp which is stable and standardized.. there are IDEs for Common Lisp, like LispWorks and Allegro.. (there was that Cusp thingy some years ago)
22:03:59
aeth
_death: IDEs that cost hundreds/thousands of dollars in 2017 might as well be considered non-existant for most people.
22:05:05
__rumbler31
tbf the money spent on developing vs is enormous, and the whole vs ecosystem does cost thousands to truly leverage
22:05:13
aeth
_death: Emacs Lisp was made intentionally archaic, e.g. dynamic scoping. RMS was an old Lisper. He was aware of the future of Lisp and rejected it. Emacs Lisp still gains features because it's so far behind Common Lisp and Scheme.
22:05:38
__rumbler31
ms just subsidizes the costs of giving away a free version of their editor since they need to provide a polished experience in order to drive users/devs to their platform
22:05:41
Ardx
This sums it up: "There is a time limit of 5 hours for each session, after which LispWorks Personal exits, possibly without saving "
22:06:07
__rumbler31
there is no such thing for lisp, so allegro/LW ides for a couple hundred bucks seem out of place
22:06:39
aeth
__rumbler31: Microsoft killed a lot of markets like the commercial web browser market and the commercial IDE market (although the latter has somewhat made a comeback in recent years).
22:08:23
__rumbler31
Ardx: the value proposition for emacs is thus: this tool might be clunky at first, but its so configurable that you end up making a custom fit glove over the course of your career
22:09:43
aeth
_death: Afaik, Emacs Lisp can now sort of emulate Common Lisp, as quite possibly the slowest Common Lisp implementation out there, because it's emulating Common Lisp.
22:09:52
_death
Ardx: if you're allergic to the free, unlimited, hackable and customizable lisp env..
22:09:54
__rumbler31
since we edit text as a regular part of our work, once you can create modes that distill your editing down to your other mental models (like browsing between forms), you get to leverage your knowledge in a new domain, which is powerful
22:11:16
aeth
__rumbler31: Emacs is a good example of why defaults matter. Default Emacs is terrible, but every Emacs user doesn't realize this because Emacs users have a mandatory 100+ line .emacs file and, these days, probably at least a dozen packages from M-x package-list-packages
22:11:20
__rumbler31
I imagine one uses menus to discover what an interface can do. If it never changes, eventually the most common commands will be memorized as key combinations anyways. So imagine that your interface no longer EVER changes (like emacs) what you are left with after several years of use is exactly the environment you need
22:11:51
_death
aeth: not claiming it's more performant, or that it should be used for general purpose programming.. just that it's not stuck in the past as you described it
22:12:28
aeth
_death: It's still stuck in the past. It's more modern features bolted onto a Lisp that was outdated at the start in its design.
22:13:00
jmercouris
Unless they introduce some sort of "compatibility" layer or something I don't know
22:13:06
__rumbler31
aeth: yes, although I would say that sometimes with long enough timelines, getting the defaults right can be hard. IIR the most popular editing constructs like copy/paste existed in emacs and vi before they became known as copy and paste and associated with C-v. C-c etc
22:13:10
_death
aeth: fine.. believe what you want.. me, I try to learn from the changes people (Lisp hackers, after all) make to it..
22:14:11
aeth
_death: All I know is that the style of CL I write is essentially impossible in Emacs Lisp, and even if it isn't, it wouldn't be fast at all.
22:16:19
jasom
Ardx: and by that I mean 80% of why I use common lisp over other tools is that SLIME is the best development environment I've ever used, and lighttyears ahead of any freely available one.
22:16:35
aeth
jmercouris: That's what they're doing. They're switching everything over to Guile (???) with a compatibility layer. Which is strange since elisp is almost CL-compatible and GNU has not one, but two CLs.
22:16:57
__rumbler31
to finish my point, your emacs will never change. VS will change, while that timeline is covered in years, I don't care to keep chasing down where vs decided to hide that feature under whatever menu.
22:17:55
aeth
I suspect if Emacs picked CL, they could have made the transition 10+ years ago instead of still having a work-in-progress Guile port.
22:20:19
aeth
jmercouris: I believe I read an FSF or GNU article about how Guile was going to become the standard GNU scripting language... and that article was from the 90s.
22:21:26
aeth
The whole implementation-in-C, scripting-in-interpreted-Lisp approach is flawed imo. Just writing the whole thing in SBCL will probably as a whole be faster than mixing very fast with slow.
22:22:25
_death
sure, that's one thing that separates the boy languages from the men languages.. the former are written in some other language..
22:23:13
p_l
Ardx: https://atom.io/packages/atom-slime might be of interest to you, it's afaik "still usable"
22:24:40
aeth
jasom: Yeah. We finally have the fast implementations and fast hardware to do things properly today. A lot of strange decisions made 30 years ago were for performance issues that no longer matter, but we're stuck with those decisions, unfortunately.
22:25:15
p_l
aeth: a bit of the problem is that GNU Emacs harks in its history to before Common Lisp and evolved separately
22:25:28
_death
jasom: if rms wanted to pick the CL route, a GNU CL would've been developed.. gcl/clisp came afterwards
22:27:05
aeth
Yeah, Emacs's history goes back a long way. GNU Emacs's tutorial is actually mostly compatible with the tutorial for the original (not in Lisp) Emacs. I don't know if the tutorial was modified from the original Emacs or backported from GNU Emacs with minor changes made. https://github.com/PDP-10/its/blob/master/src/emacs/teach.1
22:27:47
p_l
jasom: the GNU branding might have happened after CLtL1, but the implementation is older
22:28:32
jasom
And CLISP is older than Guile, but was not licensed under GPL until about the same time that Guile was released
22:29:18
aeth
Early GNU Emacs is still inferior to Lisp Machine Lisp, though. And RMS was aware of that. His name is on the later manuals.
22:30:12
jasom
Don't link with readline, or your entire program becomes a derivitive work of readline...
22:31:01
p_l
jasom: it's interpretation that is arguably thrown out today (case in point: Illumos and KVM, Linux and AFS/ZFS)
22:31:17
random-nick
_death: I am not sure where I've heard that, but you can always ask him about that using email
22:32:14
random-nick
well, you can send a mail to rms@gnu.org and he will probably respond in up to 2 days
22:38:46
Ardx
well the atom lisp plugin is super nice, uses slime in the background too so finally I have all the features of a modern IDE with the power of lisp language. Sweet
22:41:51
aeth
Well, to be fair, Emacs bloated 10x since the "Eight Megabytes and Constantly Swapping" joke. I now open a fresh emacs to 81.5 MB RAM usage.
22:45:34
_death
just think, when you want to hack your own package or the editor's or someone else's, you need to write javascript :(
23:13:01
makomo
jmercouris: Ardx: Did you try something like spacemacs? That seems to cater to the Atom type crowd
23:18:51
makomo
i really like the philosophy of having the keybinds of vim and extensibility of emacs
23:34:57
jmercouris
makomo: I was saying the people who like a pre-built config would be more likely to be atom users
23:35:51
jmercouris
makomo: Nothing wrong with evil mode, but spacemacs makes 100% of decisions for you, and I find that people who use spacemacs don't deviate from that a lot, it's not a bad thing, it's just a different way of doing things
23:36:26
p_l
jmercouris: it's less "100% of decisions" and more "customizing spacemacs is an extra level of work"
23:36:48
p_l
and more related to how, for example, most people don't change basic emacs keybinds either
23:37:08
jmercouris
Well, I try not to change the core ones, I just add to them so that I can still use vanilla emacs
23:37:26
jmercouris
nothing terrible about c-n, c-p, c-x c-f, though I'll usually use s-f for projectile instead etc
23:37:43
p_l
jmercouris: so on top of already complex beast (Emacs) you add essentially a whole application (spacemacs) which has its own approach to configuration logic
23:43:37
p_l
well, I find it quite interesting, just didn't get around to setting myself up, because the defaults support CL and Org quite well
23:53:05
Shinmera
I'm still waiting on people to give feedback on Portacle's key set and help document.
0:01:16
p_l
Many of the more knowledgeable people tend to have their idiosyncratic ways of setting up
0:02:09
Shinmera
p_l: Yes. I expect most people to just drop it without a word if they don't like it. That's one of my "fears" about all projects I have.
0:02:46
Shinmera
For Portacle (and most things, really) I don't even know how many people use it, let alone how many of those are beginners.
0:03:23
jmercouris
Shinmera: This is not just a "fear" this is a reality, if people don't like a piece of software they'll just loook for another instead of leaving feedback
0:03:44
Shinmera
I know, what I meant is that I fear most people will react that way, rather than a minority.
0:04:57
p_l
Shinmera: I think some work on getting Portacle in front of users is needed, not because of anything you do, but because gigamonkeys.com/book still gets people to look at Lisp in a Box
0:05:12
jmercouris
you could do a bunch of user studies, individually interviewing programmers to see if there is a need for such a tool, you could do test balloon posts on media platforms and see how people react to them, surveys you submit to a mailing list, etc
0:05:38
jmercouris
If you believe you've made a good piece of software, and no doubt you have, the second part that is necessary is marketing
0:05:47
Shinmera
p_l: Yeah. I've also seen a couple of posts on reddit where people suggest some complicated manual setup rather than just linking to Portacle, so it's still obscure even among people already familiar with lisp and willing to help.
0:06:24
jmercouris
Shinmera: If your interested in marketing, there's a lot of good resources on /r/startups
0:07:33
jmercouris
it is a shame that you produce so many packages that are not well known, because they are quite useful
0:08:10
Shinmera
Reforming the lisp community or whatnot isn't one of my goals. I made Portacle primarily for myself :^)
0:08:23
jmercouris
I don't know what your goals are, but I think if you are writing software that you hope other people will find useful, it follows that you'd want as many people as possible to benefit from those pieces of software
0:09:03
jmercouris
you are not trying to sell them some useless bs, but you can provide tangible value to their lives by informing them of products that you make that they may be interested in
0:09:18
jmercouris
Shinmera: Well, at least one person thinks your software isn't shit, and that's me
0:10:18
Shinmera
Anyway, I'm aware marketing and all that can be beneficial for the target audience as well, it's just really not my deal. If someone else wants to do that, I don't mind, as long as I deem the thing being advertised as "ready".
0:10:50
Shinmera
I'll just continue on my (not so) merry way hammering out software, whether people use it or not.
0:23:47
aeth
How does Portacle differ from Roswell? I use Roswell to test my code on a bunch of implementations I wouldn't otherwise have easy access to