freenode/#lisp - IRC Chatlog
Search
2:19:30
mfiano
White_Flame: Instead of emoji, just use combinations of unicode whitespace and non-printable character symbol names.
2:21:58
mfiano
You'd be left with a series of parens, and you could change the dispatching characters for them to be similar
2:31:21
kmeow
I have an array defined like (defvar arr #('(5 "David") '(3 "Sarah") '(2 "Alex"))), but doing a (car (elt arr 2)) gives me QUOTE, which is not what I was expecting [since (car '(3 "Sarah")) gives 3]
2:32:23
kmeow
I know how to get the numbers out of those lists in the array, but I don't understand what's going on exactly
2:34:44
White_Flame
try (vector '(5 "David") ...). That's a function that will evalate them as parameters.
4:48:15
no-defun-allowed
fengshaun: Wikipedia tells me the name beach had in mind "is the French certification granted to certain French geographical indications for wines, cheeses, butters, and other agricultural products."
4:55:26
fengshaun
I don't have any projects that lend themselves to high level languages, so AoC is a good place to do some lisp
4:56:01
beach
fengshaun: I have a web page of suggested project in case you are looking for something.
4:58:46
aeth
fengshaun: one of these days some unfortunate person is going to read 'a web browser' from the list, not realize how hard it is, and 5 years later actually have one written
5:14:52
beach
And "web browser" can be thought of as a collection of modules for displaying text, images, movies, PDF documents, etc.
7:26:35
mfiano
Is McCLIM usable on modern displays yet? I had tried a couple months ago and it was not.
7:31:38
mfiano
CLX does not properly consult the X resource database. As such, on a high DPI display, the cursor size is so tiny that you can barely see it, let alone accurately manipulate it. The same for font sizes, etc, although there are workaround hacks for them, unlike the cursor.
7:39:42
mfiano
CLX. X11 apps are to query the X resource manager for information such as the DPI. CLX does not
7:40:16
beach
It is true that CLX has not kept up with X11 evolution. An update is needed. I would like to see it use more generic functions as well.
7:47:14
MichaelRaskin
email client for the modern mess would probably be fine-ish, given it can just refuse to do any scripting. A Web browser nowadays is not a collection of modules for displaying sane documents, it's a damned operating system with API creep and compatibility expectations creeping apparently beyond the scope of POSIX…
7:48:38
beach
MichaelRaskin: Is your description of the current state of things a necessity, or just the result of the use of traditional language and linker technology?
7:49:23
MichaelRaskin
It is not a necessity for bulding a useful Web, but it is a necessity to use modern government Web services
7:49:26
mfiano
I did get a chance to learn McCLIM on a friend's computer, and it was nice. Although sometimes it would crash X11 completely with a memory error, so I'm sure CLX can be made more correct on multiple counts.
7:50:28
MichaelRaskin
(and many commercial services are worse, not better, than the government ones)
7:50:51
beach
mfiano: Some of those problems have been fixed by avoiding the execution of code that would make the server crash.
7:51:54
beach
MichaelRaskin: What I meant to ask was whether it is a necessity for a web browser to not be modular.
7:52:26
mfiano
I'm not sure whose fault it was, but I could reliably crash the X server by resizing a McCLIM window.
7:52:29
beach
I fail to see how such a property could be the fault of the particular web sites being consulted.
7:53:11
beach
mfiano: It is definitely a server problem, but like I said, things have been fixed with workarounds.
7:54:10
mfiano
I wouldn't know. I haven't had a computer where McCLIM renders visibly in about a year.
7:54:20
no-defun-allowed
A web browser is modular (one may decompose one into rendering engines, parsers and script interpreters/compilers, at least) but the stages one would also imagine (read the file from the server, read any dependencies like scripts and stylesheets, then render it) are expected to be very interleaved.
7:56:06
MichaelRaskin
Browsers are kind of modular, but in your classification most of the complexity is just one part, Web APIs. Then there is CSS. Then there are some small and nice additional modules.
7:56:52
MichaelRaskin
And of course modern browsers try to do Web API implementations kind of modular (however they are eventually brought together), but it is a huge mess just by size
8:01:10
MichaelRaskin
Well, CSS might just be a small number of huge modules that are hard to modularise further, and in Web APIs there are large chunks where Blink breaks the spec, and Gecko implements both the proper and Blink behaviour, and to test the result you need enough APIs to test against the trash-quality websites that actually use this API (and a ton of others)
8:03:56
beach
I shall have to take your word for it. I don't know enough of web technology to understand.
8:07:46
MichaelRaskin
I agree that Web APIs are just a large pile of kind-of-modularisable things with imprecise spec and compatibility concerns, so they can be written part-by-part. But for that level of modularity Object Pascal is enough.
8:08:23
MichaelRaskin
I guess adding just enough JavaScript support that Lobste;rs submission form works is nice and doable and modularisable
8:08:30
beach
I don't understand why you brought up Object Pascal. Is that what things are typically written in?
8:08:56
MichaelRaskin
Just to say that facilities for modularisation have not be a bottleneck in the last 30 years
8:09:36
MichaelRaskin
These things are written in C++, or in Rust nowadays. It looks like Rust has enough memory safety to be a fully sufficient choice for them
8:10:26
beach
I don't know Object Pascal, but anything with manual memory management or that does not use uniform reference semantics is going to be problematic for modularity.
8:13:40
Shinmera
Implementing an HTML renderer is a big task, but doable. Implementing an HTML5 renderer probably already not. Implementing a CSS renderer is a gigantic task not even the big players can keep up with.
8:16:58
MichaelRaskin
I think one can list «pretty damn bad» Web APIs for a long time without much effort…
8:18:51
no-defun-allowed
The part I dislike the most is that whitespace is significant. If I write <span>foo</span><span>bar</span>, it is different to <span>foo</span> <span>bar</span>, which is sometimes what I want, but also sometimes not.
8:20:01
no-defun-allowed
Or maybe that's a CL-WHO problem for not letting me choose in places where it matters, like disabling whitespace between elements which I use to create a bar graph, but keeping it everywhere else to make the source more readable.
10:53:55
edgar-rft
The funny thing is that HTML originally was meant to be a *simple* markup language.
10:56:19
no-defun-allowed
All of cl-who is compile-time, right? So I couldn't set some magic variable or something to change the whitespace mode?
10:57:22
no-defun-allowed
I could probably embed another with-html-output macro inside the body with different settings though.
13:26:33
kmeow
so I guess the optional extension argument to vector-push-extend is for reserving space in advance
13:54:58
_death
if you know the size in advance you can also create a vector with just a fill-pointer and use vector-push