Lycurgus has quit [Quit: irc.renjuan.org (juan@acm.org)]
luis has joined #commonlisp
admich1 has joined #commonlisp
istewart has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
stanrifkin_ has joined #commonlisp
stanrifkin has quit [Ping timeout: 276 seconds]
jonatack has quit [Ping timeout: 265 seconds]
wohonajax has quit [Quit: leaving]
ym has joined #commonlisp
decweb has quit [Quit: Konversation terminated!]
_whitelogger has joined #commonlisp
kchanqvq has quit [Quit: Client closed]
rkazak has quit [Ping timeout: 252 seconds]
mrcom has quit [Read error: Connection reset by peer]
mrcom has joined #commonlisp
edgar-rft has joined #commonlisp
rkazak has joined #commonlisp
edgar-rft` has quit [Ping timeout: 248 seconds]
istewart has quit [Quit: Konversation terminated!]
<fosskers>
I did a review of the relationships between the various char and string types: https://imgur.com/pNmcjcT Please let me know if I've missed anything.
<beach>
SIMPLE-VECTOR is not correct, I think.
<beach>
Also, a simple array can very well be adjustable.
<beach>
fosskers: The standard says that a vector that is not adjustable, etc. is a simple vector, but it doesn't say that a simple vector is not adjustable etc.
<beach>
And a simple vector is not specialized, i.e., the element type is T.
<beach>
So a simple-string is not a subtype of simple-vector.
<fosskers>
`simple-array` being adjustable does not match my understanding, but I'm also confused by the spec with its differentiating "expressly adjustable" and "actually adjustable".
mgl has joined #commonlisp
<beach>
You need to adjust your understanding. Like I said, the implication arrow goes in one direction but not the other.
<fosskers>
You do seem to be right about `simple-vector`, I'll remove it
mgl has quit [Client Quit]
<fosskers>
With regards to adjustability, if I create a string literal, it will self-report its type as `simple-array`. If I attempt `vector-push-extend` on it, it will fail.
<beach>
"expressly adjustable" is in the glossary.
<beach>
It means that :ADJUSTABLE <true> was given at creation.
<beach>
But since an array may be adjustable without this option being supplied, it can be actually adjustable.
<fosskers>
Very well; but attempt to adjust did fail in practice.
<beach>
"actually adjustable" is also in the glossary.
<beach>
fosskers: Are you talking Common Lisp or a particular implementation?
<fosskers>
My quick tests were done on ECL.
<fosskers>
Happy to test others if it will help the discussion.
<beach>
No, I mean, is your diagram meant to represent Common Lisp or a particular implementation. If the former, you can't determine adjustability by a test.
<fosskers>
The attempt is to capture reality as implemented across the major compilers in the current year.
<fosskers>
Hence the detail w.r.t. characters on the left side of the graph.
<beach>
I see. Maybe you should make that clear. I was under the impression that you were talking about the language Common Lisp.
<fosskers>
Thanks for the feedback.
<beach>
Pleasure.
<mesaoptimizer>
"<aeth> everyone knows that Common Lisp doesn't care about encryption libraries" what about ironclad?
rkazak has quit [Ping timeout: 276 seconds]
ingeniot has joined #commonlisp
uhuh has joined #commonlisp
admich1 has quit [Ping timeout: 248 seconds]
uhuh has quit [Changing host]
uhuh has joined #commonlisp
admich1 has joined #commonlisp
<uhuh>
Would it be possible to create a commutative generic function using the MOP? eg. a generic function f where (f integer float) and (f float integer) dispatch to the same code
rgherdt has joined #commonlisp
<beach>
uhuh: Sure. You can use whatever technique you like to compute a discriminating function. It might not be simple though.
apa_c has joined #commonlisp
<uhuh>
Thank you, that's good to know.
<beach>
Sure. Good luck!
nani has quit [Ping timeout: 240 seconds]
mala has quit [Read error: Connection reset by peer]
bpanthi977 has quit [Ping timeout: 276 seconds]
mala has joined #commonlisp
nani has joined #commonlisp
apa_c has quit [Ping timeout: 272 seconds]
rkazak has joined #commonlisp
fosskers has quit [Ping timeout: 260 seconds]
rkazak has quit [Ping timeout: 245 seconds]
pve has joined #commonlisp
screwlisp has joined #commonlisp
rkazak has joined #commonlisp
ingeniot has quit [Ping timeout: 245 seconds]
ndanilov_ has joined #commonlisp
ndanilov has quit [Read error: Connection reset by peer]
<attila_lendvai>
phantomics, i'd welcome any insights which one to start with
rkazak has quit [Ping timeout: 265 seconds]
<phantomics>
That sleigh one looks the most usable but IMO none are as good as Lisp macros for the purpose
<phantomics>
I've been writing tools to convert instruction specs into the different formats used in SpecOps, for example I translated the SuperH instructions from this webpage: https://www.shared-ptr.com/sh_insns.html
<ixelp>
Renesas SH Instruction Set Summary
<attila_lendvai>
phantomics, but i want to *generate* my lisp code, not write it... my primary goal is to keep it as simple/small as possible (maru is 2-3 kLOC alltogether) while generating a good enough assembler that is usable for a toy compiler
cage has joined #commonlisp
<attila_lendvai>
the entire point of maru is to demonstrate how little code is necessary to self-host a lisp compiler/language
<phantomics>
I generated Lisp code from that page, also did System Z by converting from a PDF doc, and 6502/Z80 from other HTML pages
euandreh has joined #commonlisp
<phantomics>
So converting x86 specs at compile time would be a better fulfillment of your objective than generating Lisp files for the assembler that would be compiled into maru?
<attila_lendvai>
phantomics, aren't those two the same? i want some small code that generates (most of) the assembler
<attila_lendvai>
BTW, there's already something like that in maru, but the declarative syntax is stupid #defines from some old assembler. e.g. it's 32 bits only...
<phantomics>
They're largely the same, to me it'd be better to convert the ASM spec once and have it be a part of maru's code, that way you don't need to package an XML reader or custom parser or something along with maru
<ixelp>
maru/source/assembler/gen-asm-x86.l at maru.10 · attila-lendvai/maru
<phantomics>
They're copypasted into a C program?
<attila_lendvai>
phantomics, it's copy-pasted *from* a C program
<attila_lendvai>
maru has a (bootstrapped) PEG parser integrated, so that you can define new parser rules inline
<attila_lendvai>
the rest of the file is parsed with the new rules
<phantomics>
Ok, so the idea is to parse those #defines using the PEG rules and generate an assembler from them?
<attila_lendvai>
phantomics, yeah. that already works, but that's 32 bit only
<attila_lendvai>
i'm looking for something that has a more complete description of x86
rkazak has joined #commonlisp
<phantomics>
Gotcha, what was the source? An older assembler?
<attila_lendvai>
phantomics, see the comments at the top
<attila_lendvai>
phantomics, i'm not exactly sure, but i recorded my investigation into the comments
<phantomics>
From a NeXT emulator, neat
* attila_lendvai
is leaning towards phantomics' recommendation (Sleigh, because Sail seems to be overkill)
<phantomics>
Adding 64-bit support will be quite complicated, especially including all the extensions like SSE, AVX etc. It may not be practical with that format
<attila_lendvai>
yeah, i gave up on that #define stuff...
<phantomics>
You'll have the REX, VEX and AVEX prefixes to contend with, the differing behaviors of width bytes, and more
<ixelp>
coder64 edition | X86 Opcode and Instruction Reference 1.12
<phantomics>
Has HTML-based instruction info, may be convertable
rkazak has joined #commonlisp
rkazak has quit [Ping timeout: 272 seconds]
Lord_of_Life has quit [Ping timeout: 260 seconds]
treflip` has joined #commonlisp
inline has joined #commonlisp
rkazak has joined #commonlisp
joast has quit [Quit: Leaving.]
admich1 has joined #commonlisp
rkazak has quit [Ping timeout: 276 seconds]
yitzi has joined #commonlisp
rendar has joined #commonlisp
rkazak has joined #commonlisp
apa_c has joined #commonlisp
rkazak has quit [Ping timeout: 252 seconds]
joast has joined #commonlisp
rkazak has joined #commonlisp
matt` has joined #commonlisp
olivial has quit [Read error: Connection reset by peer]
olivial has joined #commonlisp
treflip` has quit [Changing host]
treflip` has joined #commonlisp
treflip` is now known as treflip
yitzi has quit [Remote host closed the connection]
dra has joined #commonlisp
dra has quit [Changing host]
dra has joined #commonlisp
apa_c has quit [Ping timeout: 272 seconds]
rkazak has quit [Ping timeout: 248 seconds]
rkazak has joined #commonlisp
ae-chat has joined #commonlisp
ae-chat has quit [Changing host]
ae-chat has joined #commonlisp
attila_lendvai has quit [Ping timeout: 244 seconds]
Lycurgus has joined #commonlisp
Lord_of_Life has joined #commonlisp
treflip has quit [Read error: Connection reset by peer]
skinsurf has joined #commonlisp
admich1 has quit [Ping timeout: 252 seconds]
admich1 has joined #commonlisp
<jackdaniel>
fosskers: the specification allows for a lisp to represent only a subset of characters covered by ascii (and encoding doesn't need to be ascii at all)
<jackdaniel>
there is a page in the standard that lists all standard characters
cercopith has joined #commonlisp
matt` has quit [Remote host closed the connection]
skinsurf has quit [Quit: WeeChat 4.6.3]
seagull has joined #commonlisp
seagull is now known as skinsurf
skinsurf has quit [Changing host]
skinsurf has joined #commonlisp
euandreh has quit [Remote host closed the connection]
euandreh has joined #commonlisp
<bike>
jackdaniel: the proxy GF thing is pretty cool! and one of not many cases i've seen of make-method-lambda being used in anger