anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
igemnace_ has joined #commonlisp
trumae has quit [Read error: Connection reset by peer]
random-nick has quit [Ping timeout: 240 seconds]
igemnace has quit [Ping timeout: 240 seconds]
trumae has joined #commonlisp
X-Scale` has joined #commonlisp
trumae has quit [Read error: Connection reset by peer]
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale` is now known as X-Scale
trumae has joined #commonlisp
hunger has joined #commonlisp
<hunger>
hello! is land of lisp still a good book to learn lisp and its syntax? I know how to program but I only dabbled in lisp many many many moons ago
<hunger>
i found lisp in small pieces, seems interesting, i have also tried reading PCL but found myself not into it, should i just force myself through it?
<mfiano>
It is the best learning material apart from the ANSI standard which will take time to learn how to use effectively.
igemnace_ has quit [Remote host closed the connection]
igemnace has joined #commonlisp
<hunger>
thanks!
hunger has quit [Quit: Leaving]
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life has joined #commonlisp
karlosz has quit [Ping timeout: 252 seconds]
igemnace has quit [Remote host closed the connection]
igemnace has joined #commonlisp
igemnace has quit [Read error: Connection reset by peer]
phantomics has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
Lycurgus has joined #commonlisp
Bike has quit [Quit: Lost terminal]
Bike has joined #commonlisp
<dbotton>
hunger there are other paths, I didn't like PCL at all
<dbotton>
if you see it doesn't work try one of the many other books, just don't give up
<dbotton>
there are many "styles" of learning and the books all reach different people
igemnace has joined #commonlisp
<mason>
We're just going to use them all, here. ALL OF THEM, ALL AT ONCE.
<dbotton>
that worked for me
<mason>
The two older kids and I will each have copies of LoL, PAIP, and PCL as soon as the final copies of PAIP arrive.
<mason>
And then I'll take the game examples from LoL and use Armchair Universe (they have their own copies) for more projects.
igemnace has quit [Remote host closed the connection]
<dbotton>
I personally liked best object-oriented common lisp (slade)
<dbotton>
and Lisp 3ed
<dbotton>
I put a request in to get permission to distribute a pdf of object-oriented common lisp
<mason>
Hm, which is Lisp? CL:tL? Or something else?
<dbotton>
Winston and Horn's
<mason>
Ah, kk.
<dbotton>
Slade's book sadly was given that name OO
<dbotton>
there is like one chapter on OO in the book
jolby has joined #commonlisp
<dbotton>
but it has tons of practical examples of everything
<dbotton>
and written like an old school computer manual you can quickly go through
<dbotton>
covers things like format in detail etc
<mason>
Ah, I have the first edition of Winston and Horn and was thinking of it more as historical than practical. Didn't realize it was republished and revised.
akoana has quit [Ping timeout: 255 seconds]
<mason>
Also have one copy of Graham. Hadn't considered either for the class with the kids.
<dbotton>
the only free one is the 1st as far as I can tell
trumae has quit [Ping timeout: 260 seconds]
trumae has joined #commonlisp
asen has joined #commonlisp
irc_user has joined #commonlisp
igemnace has joined #commonlisp
igemnace_ has joined #commonlisp
Lycurgus has quit [Quit: Exeunt juan@acm.org]
igemnace has quit [Ping timeout: 246 seconds]
trumae has quit [Remote host closed the connection]
pfd has quit [Quit: Client closed]
causal has joined #commonlisp
igemnace_ has quit [Remote host closed the connection]
<beach>
Good morning everyone!
igemnace_ has joined #commonlisp
<mason>
o/
igemnace has joined #commonlisp
igemnace_ has quit [Ping timeout: 255 seconds]
kiki_lamb has joined #commonlisp
igemnace_ has joined #commonlisp
igemnace has quit [Ping timeout: 255 seconds]
igemnace has joined #commonlisp
<contrapunctus>
hunger: I use cl-cookbook when making things, and PCL when I want to understand something in detail
igemnace_ has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
aartaka has quit [Ping timeout: 244 seconds]
aartaka has joined #commonlisp
ec_ has joined #commonlisp
jolby has quit [Quit: Client closed]
mrcom has quit [Quit: Leaving]
mrcom has joined #commonlisp
igemnace_ has joined #commonlisp
igemnace_ has quit [Remote host closed the connection]
igemnace_ has joined #commonlisp
igemnace has quit [Ping timeout: 258 seconds]
Bike has quit [Quit: Connection closed]
igemnace_ has quit [Remote host closed the connection]
Furor has joined #commonlisp
livoreno has quit [Read error: Connection reset by peer]
livoreno has joined #commonlisp
Colere has quit [Ping timeout: 258 seconds]
igemnace_ has joined #commonlisp
irc_user has quit [Quit: Connection closed for inactivity]
igemnace_ has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
igemnace_ has joined #commonlisp
ec_ has quit [Ping timeout: 240 seconds]
Fare has quit [Quit: Leaving]
igemnace has joined #commonlisp
igemnace_ has quit [Ping timeout: 244 seconds]
igemnace has quit [Read error: Connection reset by peer]
ttree_ has quit [Ping timeout: 255 seconds]
tyson2 has quit [Remote host closed the connection]
igemnace has joined #commonlisp
igemnace_ has joined #commonlisp
karlosz has joined #commonlisp
igemnace has quit [Ping timeout: 255 seconds]
karlosz_ has joined #commonlisp
igemnace has joined #commonlisp
karlosz has quit [Ping timeout: 246 seconds]
karlosz_ is now known as karlosz
igemnace_ has quit [Ping timeout: 240 seconds]
asen has quit [Quit: Leaving]
igemnace has quit [Read error: Connection reset by peer]
karlosz has quit [Ping timeout: 246 seconds]
Krystof has quit [Ping timeout: 260 seconds]
karlosz has joined #commonlisp
tychoish has quit [Remote host closed the connection]
tychoish has joined #commonlisp
igemnace has joined #commonlisp
igemnace has quit [Remote host closed the connection]
karlosz has quit [Ping timeout: 276 seconds]
karlosz has joined #commonlisp
Posterdati has joined #commonlisp
rotateq has joined #commonlisp
Cymew has joined #commonlisp
igemnace has joined #commonlisp
karlosz_ has joined #commonlisp
karlosz has quit [Ping timeout: 244 seconds]
karlosz_ is now known as karlosz
rainthree has joined #commonlisp
Furor has quit [Ping timeout: 256 seconds]
karlosz_ has joined #commonlisp
karlosz has quit [Ping timeout: 256 seconds]
karlosz_ is now known as karlosz
Colere has joined #commonlisp
lottaquestions_ has joined #commonlisp
lottaquestions has quit [Ping timeout: 240 seconds]
MajorBiscuit has joined #commonlisp
MajorBiscuit has quit [Client Quit]
MajorBiscuit has joined #commonlisp
karlosz_ has joined #commonlisp
karlosz has quit [Ping timeout: 276 seconds]
karlosz has joined #commonlisp
karlosz_ has quit [Ping timeout: 240 seconds]
shka has joined #commonlisp
karlosz_ has joined #commonlisp
karlosz has quit [Ping timeout: 240 seconds]
karlosz_ is now known as karlosz
MajorBiscuit has quit [Quit: WeeChat 3.5]
MajorBiscuit has joined #commonlisp
karlosz has quit [Ping timeout: 246 seconds]
karlosz has joined #commonlisp
rogersm has quit [Quit: Leaving...]
Oddity has quit [Remote host closed the connection]
Posterdati has quit [Read error: Connection reset by peer]
karlosz has quit [Ping timeout: 246 seconds]
treflip has joined #commonlisp
Posterdati has joined #commonlisp
masinter__ has joined #commonlisp
Colere has quit [Remote host closed the connection]
Colere has joined #commonlisp
masinter_ has quit [Ping timeout: 258 seconds]
frgo has quit [Ping timeout: 272 seconds]
prokhor has joined #commonlisp
prokhor has quit [Client Quit]
prokhor has joined #commonlisp
Krystof has joined #commonlisp
jmiven has quit [Quit: reboot]
jmiven has joined #commonlisp
Brucio-61 has quit [Ping timeout: 255 seconds]
scymtym has quit [Ping timeout: 256 seconds]
Brucio-61 has joined #commonlisp
rainthree has quit [Read error: Connection reset by peer]
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has joined #commonlisp
Brucio-61 has joined #commonlisp
jmdaemon has quit [Ping timeout: 260 seconds]
aartaka has quit [Ping timeout: 240 seconds]
random-nick has joined #commonlisp
aartaka has joined #commonlisp
karthink has left #commonlisp [ERC 5.4 (IRC client for GNU Emacs 28.0.91)]
Simoneee has joined #commonlisp
<Simoneee>
Does the author of Land of Lisp post here?
<Simoneee>
I want to interview him for my dev.to article
<beach>
I don't think he is here, no.
<Simoneee>
ok thank you
<beach>
Are you aware of my partial review of the book?
<beach>
It is absolutely horrible and should not have been published in its current form.
<Simoneee>
err
Simoneee has quit [Quit: Client closed]
<beach>
I see, we didn't want to know that.
<jackdaniel>
that depends what's the goal of the book - if it is entertainment then it surely achieved its goal; the fact that it made common lisp more approachable is just a side benefit
Krystof has quit [Ping timeout: 246 seconds]
rainthree has joined #commonlisp
Krystof has joined #commonlisp
pfd has joined #commonlisp
frgo has joined #commonlisp
rodicm has joined #commonlisp
flip214 is now known as flip768
aartaka has quit [Ping timeout: 276 seconds]
dre has quit [Ping timeout: 256 seconds]
flip768 is now known as flip214
aartaka has joined #commonlisp
<luis>
It's understandable that a book like Land of Lisp isn't very rigorous wrt terminology.
<luis>
it's certainly arguable that using some sort of simplified terminology is desirable even
tyson2 has joined #commonlisp
aartaka has quit [Ping timeout: 258 seconds]
<beach>
It is not simpler. It is just wrong and ambiguous.
<beach>
CAR is a "command", but CDR is a "function", for instance.
<beach>
And, sure, it is "understandable" since the author probably does not have the training that (say) engineers do.
<beach>
So it's "understandable", but absolutely not "acceptable".
<jackdaniel>
understandable often beats technically correct. for example "symbols in cl are case-insensitive" (the very first remak) - technically wrong, in practice correct and conveys the essence (being technically correct would make much longer description that would only leave the not-trained reader confused)
<jackdaniel>
s/description/explanation/
<rotateq>
The book gave me a good intro back then, but it didn't take long since I started using other sources and got more confident piece by piece.
<jackdaniel>
I'm not aware of any library that would switch the readtable-case to :preserve
<jackdaniel>
"pedagogical lie" of sort
<rotateq>
Yeah, never have seen it myself, but can be useful when reading other things or writing a special DSL.
<mfiano>
Indeed. If such an introductory book started off with the first chapter of CLR, it would dissuade them from continuing quite quickly.
aartaka has quit [Ping timeout: 246 seconds]
<mfiano>
(CLR starts off by explaining case sensitivity of symbols)
Th30n has joined #commonlisp
Posterdati has quit [Read error: Connection reset by peer]
<dbotton>
Ladies and gentlemen: the story you are about to hear is true. Only the terms have been changed to protect the innocent.
<dbotton>
Perhaps that is a better start for LOL.. lol
<ck_>
"I just look at the pictures"
<Nilby>
i'm biased from all the times i was grievously injured by a wumpus, and mocked by how much i look the caricature of the old lisper
<dbotton>
The audience was of lol was always hobbyists that would go on if got excited to something more
aartaka has joined #commonlisp
rainthree has quit [Read error: Connection reset by peer]
ebrasca has joined #commonlisp
Posterdati has joined #commonlisp
<semz>
"by default, the symbols you enter are converted to upper case first" would be just as understandable without being incorrect imo
<semz>
going into full detail on read-case and print-case at the start is silly obviously since they're barely ever used, but this is a case where the pedagogical lie seems kind of pointless to begin with
<jackdaniel>
that would not be technically correct. 'by default reader upcases the symbol name before interning the symbol'
Bike has joined #commonlisp
livoreno has quit [Ping timeout: 260 seconds]
<jackdaniel>
then, what is interning? why does it upcase the symbol name? what is a difference between a symbol and its name? yada yada ,)
<luis>
semz: you don't want to play the "technically correct" game with a lisp implementor :D
<semz>
sure but that'd be just as understandable since you can't really talk about symbols without interning
<jackdaniel>
sure you can
<semz>
luis: channeling don quixote here ;)
<jackdaniel>
(unless we assume the thesis we argue about, that all description must be technically correct)
<semz>
well i'd expect an intro to symbols to mention what makes them special. I'd have to check if land of lol talks about interning but surely?
<semz>
...land of lisp*
<luis>
Anyway, I've never read Land of Lisp so I don't know whether the technical incorrectness pays off
<jackdaniel>
when I was learning common lisp I've first picked "gentle introduction", I fell asleep in the middle of the first chapter explaining what makes symbols special ,)
* flip214
is reminded of physical models... the more exact, the harder to understand and predict
<jackdaniel>
then I've started reading ANSI CL (by Graham) and that was a very good introduction book; later I've read PCL that was also excellent
<luis>
Yeah, same. I actually ignored Lisp for a while because of that book.
<semz>
Take in mind that I'm slightly biased - I see plenty of "pedagogical lies" in bad math books which backfire spectacularly
<flip214>
semz: OTOH, you can't start with the _total_ complexity anywhere - think of CS starting with field-effect transistors and their nonlinearity?
<flip214>
so there has to be a kind of abstraction level from which you can go up (and, later on, down as well)
AadVersteden[m]1 has joined #commonlisp
<semz>
sure, I'm not arguing to dump the clhs parts verbatim into the intro
<semz>
my point is that in this case you can avoid incorrect things pretty easily
<luis>
I've heard other people enjoyed the Gentle Introduction to Symbolic Computation book, though. lichteblau for instance.
<beach>
semz: Exactly my point. It takes more work of course.
<luis>
Fair enough.
<beach>
I am baffled by the number of people who argue in favor of incorrect and ambiguous terminology, even though it would be quite possible to use correct terminology while keeping things simple.
<Guest74>
wait, we're supposed to read books to learn lisp?
<beach>
Guest74: No, you can do what you want, but I would like to make sure that those who do read books get quality information.
<jackdaniel>
I'm surpised that lax terminology is enough to dub a book 'horrible' to the extend of being unpublishable - especially a book that was very well received among novice hobby programmers
<Guest74>
I dunno. Do you give a calculus book to a kindergartner?
<rotateq>
Good that there aren't so much like sand in the sea, plus good ones and timeless, like PAIP or the Keene book.
<beach>
jackdaniel: It is not "lax". It is wrong, and ambiguous for no reason that laziness on the part of the author.
<Guest74>
I'm not sure any introduction I had to anything, that wasn't boring to tears, was actually factual.
<beach>
no reason other than
<Guest74>
beach: you're making assumptions.
<beach>
I think I have had enough of this conversation this time around. Have fun!
<jackdaniel>
I stick to my comment about the first "wrongness" pointed out in the book (and I still argue that a technically correct explanation would be harder to a non-trained reader)
<jackdaniel>
thanks, you too
<Guest74>
I wonder how much of life is that feeling of enjoyment when you've learned the inaccuracies of your introductions to subjects.
<Guest74>
Anyways, I'd probably argue in favour of a 'incorrect' introductory text that gets people interested to explore than a dry book that dissuades someone from learning by trying to stick every single piece of correct knowledge into a person before they start doing things.
<Guest74>
I mean, who are we to argue what works for one person or another. There are different teachers, and there are different students.
<jackdaniel>
sure, I'm certain I would not enjoy reading 'land of lisp' book myself
<Guest74>
nah, I didn't either.
<Nilby>
i'm somehow still suprised when people think it's their duty, or even possible, to make sure everyone shares their opinion of quality
<AadVersteden[m]1>
Sholud anyone have intricate knowledge of cl-ppcre: are equivalent solutions expected to yield vastly different speeds or would it be expected that the compiler merges it all? Eg: `([ab])` versus `(a|b)`
<Guest74>
Though In my youth when I was autistic I very much understood insisting everything must be done in the manner I believed to be correct. Several decades of interacting with normal intelligence humans has very much dissuaded me from that naive notion.
<AadVersteden[m]1>
I can benchmark this, but my benchmarks would mostly go towards a specific case and I'm curious to know if the whole difference is moot.
<jackdaniel>
AadVersteden[m]1: recently no-defun-allowed wrote a library that beats cl-ppcre by a big margin
<jackdaniel>
let me look for it
<Bike>
i believe ppcre will not attempt to convert a|b into a character range, so yeah, it could be slower
<AadVersteden[m]1>
jackdaniel: oh... more to check then :-)
<AadVersteden[m]1>
Bike: Thank you!
<mfiano>
AadVersteden[m]1: Did you retire your other name?
<AadVersteden[m]1>
mfiano: I'm on Matrix here, joining this channel. I like it but I'm not sure if I can merge both names. Not sure what I look like on IRC now
<Bike>
equivalence of regexes is, let's see, PSPACE-complete, so in general i'd watch out
<semz>
Guest74: There are different notions of quality sure, but "it's all relative so who knows" is just cheap sophistry
<Bike>
though i think that's only in the weird cases that would be hard generally when building an NFA
<mfiano>
AadVersteden[m]1: AadVersteden[m]1
<Guest74>
semz: good thing I never said something so silly.
<madnificent>
mfiano: That looks quite horrid :/ Might keep using it if people here don't mind.
<semz>
then I'm not sure what your point was with "who are we to argue what works for one person or another. There are different teachers, and there are different students"
<madnificent>
Bike: The approach used in one-more-re-nightmare might create less context-switches. Inlining things helps the compiler.
<Guest74>
semz: how can you judge the correctness of something without knowing everything involved? This does not necessarily imply everything is relative. It does imply we do not know what is relative and what isn't. Relative would be a person that needs correct information insisting that correct information always be given.
<jackdaniel>
semz: what a professional would find not acceptable could suit perfectly an amateur, likewise what a professional would find as an acceptable minimum would be too hard for an amateur; from a hindsight many concepts seem clear and should be described as true to the core as possible, but that's only a knowledge bias
<Guest74>
^
<jackdaniel>
s/would be too hard/could be too hard/
<madnificent>
Given the structure of the SPARQL EBNF, I guess this approach could be faster here too. Thanks!
<rotateq>
And who understands something can explain it well too, so also a kid might get it confidently after some time. Or do you see it differently?
<jackdaniel>
well, there is a thing called "the curse of knowledge"
<madnificent>
rotateq: I'm not sure you can lump all people under that umbrella. I know people that are perfectly able to use technologies in depth with a good understanding of them, but that wouldn't explain them well to people not in the know.
<Guest74>
When I teach I usually try and insert some non-detrimental errors. It gives those students who enjoy pouncing on incorrect information something to live for.
<jackdaniel>
I'd argue that that's a case more often than not (what madnificent said)
<rotateq>
madnificent: Yeah you can't do it too generally of course.
<madnificent>
Not sure if this is the only thing but: Being good at explaining things _also_ requires to know what context the listener starts from. Some people clearly don't have a clue about the rest of the world XD
<Guest74>
Those Ivory Towers sure have good insulation.
<Guest74>
especially built by physicists.
<mason>
So, I think it's safe to assume that LoL has higher-quality and more extensive cartoons than any other book out there.
<mason>
I just re-read the critique, and I'm not sure I'd catch on "command" versus "function" myself. Adaptive processing.
<rotateq>
madnificent: That even more. :) Not often easy here. And no, I'm also near to physics and concrete math, the Feynman view is good.
<mason>
If he said "method" that might tickle a bit since it has a more specific meaning.
<mason>
...or "instruction" which has a more specific meaning in the other direction.
<jackdaniel>
mason: 'function' is a specified term in the ansi standard, while 'command' is a common word
<semz>
Guest74: I'm not sure what you're trying to say with that tbh, it sounds exactly like what I was criticising except shifted up one level on the meta scale. Although I get jackdaniel's point and don't disagree (in the abstract; obv. disagree how it applies here but then we talked about that already), so if that was the point I guess we don't disagree too much.
<mason>
jackdaniel: But it's hard to not know what he means.
<jackdaniel>
I'm not sure whether it is put like "bla bla `command` doobie dooh", but if it is not, then I'd treat it as an English word
<Guest74>
I thought he used it as in it's the 'command' in the game?
<mason>
First example, "the commands you enter need to be structured as forms"
<Guest74>
you store the command(game use) in the car and the cdr holds the funciton.
<jackdaniel>
mason: I'm talking about typeface used for particular words. i.e in documentation you may CAPTIALIZE forms, or `backtick` them to signify that they are a formal term
<Guest74>
page number? Though you really need the context. If he's talking about a game command, that has nothing to do with lisp
<mason>
Guest74: I think one of the complaints is that he uses the term in a relaxed manner, describing different things.
<Guest74>
nevermind 36
<jackdaniel>
either way, I don't have anything to add from my side; I'm just sorry that Simoneee got scared and probably will discourage people from joining this channel in the future
<Guest74>
I'd have to actually read the book, but I seem to recall it's about issuing game commands and little to do with lisp.
<rotateq>
command may be more a CLIM terminology
<Guest74>
or command like pick up bucket.
<mfiano>
This discussion really went off the rails huh?
<mason>
Oh, that's unfortunate about Simoneee. I didn't see that.
<madnificent>
Hey, that's good to start a new tangent.
<madnificent>
Anyone know of things that visualize Common Lisp code? For instance, something that generates class diagrams or which functions/methods call which other functions/methods.
<qhong>
Is there a util library somewhere that have a multiple-value version of MAPCAR?
<Guest74>
Sure, there's this 4 decade old library that graphs things out to postscript.
<qhong>
e.g. (mapcar-values (lambda (x) (values x (1+ x))) '(1 2)) => (1 2) (2 3)
<madnificent>
I recently found something like it for Elixir. Because I didn't know too much about Elixir when I got started I noticed a bunch of things that looked like a bad interface. So I guess such tools have value after all. Was curious to run something similar on some of my Lisp code.
akoana has quit [Ping timeout: 276 seconds]
<rotateq>
madnificent: You could look for the clouseau inspector or there's one McCLIM example "draggable graph" which shows a class tree. (in default from NUMBER as the root)
<madnificent>
rotateq: thank you :D
<rotateq>
Was useful when I showed a friend how the number classes are connected.
<jackdaniel>
n.b in the "Show" menu there are predefined commands (ha!) that display hierarchies like this one
<madnificent>
That's nice! Wonder if I can just run McCLIM
<rotateq>
ahh, one of my newer favorite CLIM applications, of course
<rotateq>
madnificent: On which platform are you?
<jackdaniel>
with mcclim you can use also output-only backends, like svg or png, disregarding of the platform
<madnificent>
I'm on Linux, using EXWM
<rotateq>
Ah cool, so the main backend for McCLIM is xserver. Try (ql:quickload :mcclim) in your implementation.
<Guest74>
"A form is simply a list with a special command at the beginning—typically
<Guest74>
the name of a function." It seems they're using 'command' as in what you want to command the computer to do. sorry about kicking the horse again.
<madnificent>
clouseau is quite cool at first sight :D
<masinter__>
looks like it was derived from Interlisp
<jackdaniel>
masinter__: it is scymtym's original work
<beach>
Is one of you talking about the listener and the other about Clouseau? Just checking.
<beach>
I forget who wrote the CLIM listener. Maybe hefner?
<jackdaniel>
yes, hefner
<masinter__>
not the code, the name "command" and the idea that when you type in, it isn't REPL it's read / interpret / print loop where interpret looks at the first typed on the line and sees if it matches a "command" name
<masinter__>
and before, the "grapher" function that took a list representation of a graph and gave you an interactive display layed out
<beach>
masinter__: We just implemented the CLIM II specification. It is entirely possible that it was inspired by Interlisp.
<beach>
The listener is not part of the specification, though.
rotateq has quit [Quit: ERC (IRC client for Emacs 26.3)]
<masinter__>
i imagine it was a much cleaner design
<jackdaniel>
I think that the term 'command' predatest interlisp too
<masinter__>
sure, interlisp took it from Tenex OS from PDP-10s; i'm not sure multix had a command loop
<jackdaniel>
the working paper is from 1981 so it is possible that it got inspired by interlisp indeed
<beach>
masinter__: Multics had an interactive command processor.
<Nilby>
lisp people have a long history of copying stuff. the tree graphing on lispworks looks similar, as well as symbolics and interlisp
<Guest74>
it's graphing
<Guest74>
they kinda all look the same. biggest difference being those with and without curves.
rainthree has joined #commonlisp
<Guest74>
So I've got a dilemma with type-1 fonts in how do I store the glyph data? It's rather elegant the way you can call subroutines to draw specific parts of a font, and makes manipulating those parts easier. But it's not a very practical format.
Th30n has quit [Quit: WeeChat 3.5]
<Guest74>
Do I convert every glyph and subroutine into a cl-vectors path so it's easy for anyone to deal with as nobody seemed to suggest any other formats?
<Guest74>
and? They still exist. they're quite elegant, and don't require a ps interpretor.
<masinter__>
sorry i just came across that
<madnificent>
jackdaniel: do you know by accident if one-more-re-nightmare (what a negative name -_-) is known to work with multi-byte characters? I mean this as a generic question on how stable this solution is expected to be with respect to edge cases.
<Guest74>
They also have easier to apply hinting that what you'd have to write to hint a ttf or otf.
<jackdaniel>
madnificent: I have no idea, I have not used it myself; I've just remembered reading about it
<Guest74>
type-1 -> otf is like opengl ->vulkan.
<Nilby>
with postscript, it's typical to turn everything display lists that are just vectors (i.e. curves are rendered to vectors), which can then be rendered as trapazoids meshes. for modern graphics drivers, it would probably end up as triangle strips
<madnificent>
jackdaniel: okay, hope I can make some time for it. I really like the approach to the problem. I'm using this for LL(1) parsing based on a FSA myself.... assuming I remember my code.
<Guest74>
The plan is to have that conversion possible at the path level. While this is more about construction of the paths. i.e. do I construct the path or leave the commands to construct the path and reconstruct it on demand.
<Guest74>
or, have the user deal with constructing the paths. Which is a hard question since I'm the only user right now.
<Guest74>
Though I guess if someone writes a vector library that runs on the gpu they could probably want the simple postscript.
<Nilby>
of course it depends on what you're doing with it. unless your making a font editor, usually the goal is to get to rendering quickly, and perhaps to stick in a font cache
<Guest74>
font editor and inspector are required.
<Guest74>
the point is probably moot at the font:atlas stage.
<Nilby>
ah, well then you probably want to keep in the abstract way that calls out to letter forms, since that's a big thing about the way it's designed
<Nilby>
i assume you've use fontforge?
<Guest74>
yes, the generic font interface will hide all the transformations necessary.
<Guest74>
once, long ago.
<Nilby>
it's very educational to examine all the details, and the differences in the font design. some fonts, despite how they look, are internally designed like crap, other very elgantly
<Guest74>
Thankfully I managed to find a postscript name to unicode list buried in archive.org.
<Guest74>
elegance is what I see in the type-1 fonts, or it's just because it's probably how I would define it.
<masinter__>
? i didn't think there was a standard postscript name to unicode mapping
<Guest74>
yes, two of them.
<Guest74>
for glyph names
<Guest74>
you wouldn't think it using google, but that's because most of the information has been removed.
Posterdati has quit [Read error: Connection reset by peer]
<masinter__>
didn't postscript and type 1 fonts predate unicode?
<Guest74>
I guess the overhead to generate the path will be immaterial to the rendering when doing text layout in a vector program, and if you're not using font atlases for fonts what are you doing??
<Guest74>
besides getting beautiful text layout.
<Nilby>
masinter__: yes, they basically had to make up their own encodings for everything
<Guest74>
I guess I'll keep the data raw...ish, just decoded. It'll probably make for a better font inspector when you can visually tell which parts of the glyph are common subroutines.
<Guest74>
double encryption and encoding, they seemed kind of paranoid.
* semz
had no idea Postscript fonts had built-in encryption
<Nilby>
Guest74: it's very expensive to create japanese outline font. but yeah, they were too paranoid because it turned out you could program the printer to upload the raw font data to anything
<masinter__>
different licensing terms -- in the US, there's an exception for raster fonts in the copyright law, but not in Japan
<Guest74>
lol, didn't know that. The early days of encryption and protection always seemed to be circumvented by something trivial.
<Guest74>
I think I'll add a segment browser as well. It's probably education to see the parts that make up a font.
<Nilby>
sometimes fonts have weird hidden easter eggs in characters that aren't used
<Guest74>
I don't know why, but this Agora font has things like "donot.bleach" "dryclean.petroleumsolventonly"
<Nilby>
Guest74: heh, those are the wierd symbols for clothing labels
<Nilby>
it don't think those are unicode
<Guest74>
no, that's adobes ps glyph names
Posterdati has joined #commonlisp
<Guest74>
I'm guessing the real reason they killed type-1 is because the glyph index is only 8 bits and you had to look everything up by ps names.
<masinter__>
there were two standards: ISO 10646 unicode for character codes and names, and iso 10036 for glyphs
<Nilby>
the real reason is adobe, apple, and microsoft and their battling software monoplies
<Guest74>
So I'm just storing glyphs like this then. (66 696 :HSBW 476 360 :RMOVE-TO 39 :CALLSUBR -279 -67 :RMOVE-TO 40 :CALLSUBR 419 :VMOVETO 41 :CALLSUBR :ENDCHAR) which seems very unwelcoming.
<Nilby>
Guest74: that's nice and compact, when you have the rendering part
<Nilby>
masinter__: that turned out to be an ahead of it's time proposal, since we can still use most of it now. i'm happy the extended-char got in there, but i'm sad that most implementations still don't use it. an impressive body of work
<Guest74>
huh, neutered of all abilities to deal with fonts and glyphs.
aartaka has quit [Ping timeout: 272 seconds]
<masinter__>
medley uses the Xerox XCCS internally, but we've added Unicode UTF-8 support as an external-format
Posterdati has quit [Read error: Connection reset by peer]
aartaka has joined #commonlisp
<masinter__>
guest174; it was before most people didn't have raster displays so "neutered" => "before"
<Guest74>
I really wonder where Xach is. He's the only person I know who has dealt with path building and I'm wondering about how to deal with construction of multiple paths.
Brucio-61 has quit [Quit: Application exit]
<Guest74>
Right now I just keep track of one path, you close it, you get it, or can see it at any time with vg:show-path.
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
<Guest74>
but with fonts, you're usually dealing with multiple paths. Do I keep a stack? Do I allow access to the stack or just what's at the top? If I start a new path without having closed the previous path, do I implicitly close it? Do I allow further additions to it when the path above it has been popped?
Brucio-61 has joined #commonlisp
random-nick has quit [Ping timeout: 258 seconds]
Posterdati has joined #commonlisp
random-nick has joined #commonlisp
ttree_ has joined #commonlisp
<random-nick>
tyson2 has quit [Remote host closed the connection]
cosimone` has joined #commonlisp
orestarod has joined #commonlisp
cosimone has quit [Ping timeout: 244 seconds]
karlosz has joined #commonlisp
ec_ has joined #commonlisp
karlosz_ has joined #commonlisp
karlosz has quit [Client Quit]
ebrasca has quit [Remote host closed the connection]
karlosz_ is now known as karlosz
Guest74 has quit [Quit: Connection closed]
rainthree3 has joined #commonlisp
rainthree has quit [Read error: Connection reset by peer]
razetime has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
tyson2 has joined #commonlisp
<contrapunctus>
Is there a tool which warns you about symbols you have imported into a package, but never used?
<mfiano>
Yes
<mfiano>
SBCL's deterministic profiler will list all unused symbols of the packages you ask to be profiled.