freenode/#sicl - IRC Chatlog
Search
5:11:13
beach
Some of the functionality that I am currently using full function calls for, like ENCLOSE, and now CATCH and UNWIND, could be at fixed locations in the executable. They are independent of the particular environment, so they don't have to be tied to any particular global environment. And they probably don't have to be full Common Lisp function calls, so they could use a simpler (and therefore cheaper) call protocol.
5:12:02
beach
But most importantly, they don't have to become part of every static environment. And so they don't have to be processed by closure conversion.
6:26:36
beach
This time it was Emacs suddenly taking nearly 100% of the CPU and none of my Emacs windows were refreshed. It went on for several minutes, and I finally decided to restart.
6:27:24
beach
Other times it has been Xorg basically grinding my computer to a halt. I am guessing because it is leaking memory.
6:28:03
no-defun-allowed
I've had weird race (possibly) conditions running some code in the REPL and M-dotting some other function while I wait, which end up in Emacs halting.
6:28:09
beach
And Firefox that does an automatic update, but does not preserve (it can't) the workspace of each window, so when it comes back, the windows are all in one workspace.
6:30:04
no-defun-allowed
Yeah, Firefox also weirds out sometimes, but it's usually it crashing for no reason and the "Please restart Firefox now that you updated it" messages.
6:34:21
no-defun-allowed
Do you remember what the first free Common Lisp implementation was, and when it was released?
6:35:55
beach
So there must have been a time when there were several partial implementations, and of CLtL1 at the time.
6:35:56
jackdaniel
(I remember when I was making the CL implementation graph, I've memorized some of such information)
6:36:50
no-defun-allowed
Firefox was released in 2002, Mozilla 1998, Netscape 1994. My guess is someone didn't want to rewrite all that browser stuff in a higher language at some point (or to update the browser for new standards).
6:38:08
beach
Well, they are programming C++ which changes all the time. They could have used Franz Lisp and then followed evolution to CLtL1 and then CLtL2.
6:40:11
jackdaniel
thank you; the grand plan was more ambitious, I've planned to attach some historical notes to each node (like an original release year, origination etc) but I've never got to that
6:40:32
no-defun-allowed
Then I'm not sure why it could have been, since the CMUCL/SPICE compiler is pretty decent. Maybe something to do with image or memory size.
6:40:50
jackdaniel
also over time some people pointed out small inaccuracies (but only related to obsolete platforms about which I had very little info, like lisp-to-c)
6:42:01
jackdaniel
no-defun-allowed: common lisp (especially in early '90) was not very fast from what I've read. or, to be more accurate, it was very easy to write non-performant code while writing performnat code required intimate knowledge about the compiler
6:42:47
jackdaniel
add garbage-collection-phobia to that (because people didn't like stop-the-world pauses, what was more frequent on 128MB RAM machines) and there you have it
6:43:11
jackdaniel
C++ was by these metrics better choice (not to mention it was less messy language than it is today)
6:45:11
beach
So, software written more than (say) 25 years ago would not have a sufficiently good Lisp implementation available.
6:46:19
beach
And of course, it is not the case that people instantly realize that suddenly such an implementation is available, so inertia can account for another 10 years of C or C++.
6:46:19
jackdaniel
that, and the hardware was not performant enough, I'm sure even if we take today SBCL and put it on PC from that time same issues would arise
6:46:56
jackdaniel
the best indicator that "hardware is good enough" now is the fact that people write complex software with a very suboptimal (performance-wise) language like javascript
6:51:26
no-defun-allowed
(One other quirk is that I would expect that the tabs run in independent threads, but something strange happens and if I have a video playing and reload another bloated page, the video skips 200ms or so.)
6:51:27
jackdaniel
that's a nice turnaround compared to the rotten mood remarks from time to time :)
6:51:48
jackdaniel
that said I'll get back to the medium protocol documentation (from the backend writer perspective)
6:53:25
jackdaniel
I will brag a little while I'm here: I plan to make a console-medium which renders to the character cells (and to have bezier rendering and such on the medium too)
6:54:19
jackdaniel
and there is that: https://files.mastodon.social/media_attachments/files/018/554/072/small/b580c24032c9c573.png
6:55:36
jackdaniel
(motivation is as follows: console medium is an oddball enough for documenting mediums that we'll cover plenty of edge cases which are important when implementing medium)
6:57:27
beach
So I think that, with a decent development environment (for which we have certain components and a plan for the others), and a few killer applications (Climaxima is one, and I hope Clovetree can become another one), we have a good basis for claiming that Common Lisp can be used for many things, in particular for developing end-user applications.
7:00:33
jackdaniel
no-defun-allowed: n.b, gimp is a nice case study. it was originally started with CL and then they have switched to c++. afaik Xach was involved in gimp community at that time and he might have some interesting remarks
7:00:54
jackdaniel
there is a document *somewhere* where gimp authors provide a rationale why they have switched