owenradcliffe has quit [Ping timeout: 252 seconds]
XXLU86 has joined #commonlisp
skeemer has quit [Ping timeout: 265 seconds]
<aeth>
I already made a better defstar, as define-function... I need to finish it up and spin it off into its own library at some point.
<aeth>
There's an annoyingly large amount of edge cases.
<aeth>
I think I didn't even add support for &aux yet
<aeth>
I doubt any library does this sort of thing perfectly considering how annoyingly large the amount of edge cases are
<aeth>
It's the things inline (e.g. the already kind of long AREF in CL vs the imo awfully named vector-ref in Scheme) that need short names and only those.
<aeth>
as in, used inline rather than taking up its own line
owenradcliffe has joined #commonlisp
XXLU86 has quit [Remote host closed the connection]
<aeth>
oh oops, those last two lines were supposed to go to #lisp not #commonlisp
<elderK>
aeth: I'd love to see your version of defstar :)
<elderK>
I should note, however, that I'm not building it for people to really use: I'm building it just to learn, really.
<elderK>
My goal is simply to implement defstar in a way that is hopefully cleaner. When I reviewed defstar's source, I mean, it was pretty neat but I found that some of the code did too much all in one place, which made it difficult to reason about.
<elderK>
So, I thought I'd see if I could do that maybe in a way that was a little cleaner. That, and I'm itching to play with macros and stuff.
<elderK>
I'm hoping it will help act as a springboard for more interesting projects :)
<elderK>
Clean is subjective, though, so my version will probably be horrific to others :D
random-nick has quit [Ping timeout: 260 seconds]
<aeth>
well, my code is beyond hopeless as far as that's concerned, not clean at all
<aeth>
It has to be in a separate file or else EVAL-WHEN would be needed for functions called by a DEFMACRO
owenradcliffe has quit [Ping timeout: 260 seconds]
<paulapatience>
aeth: Ooh, I'd definitely use it if it were spinned off
<aeth>
The problem is that you don't know how to write it until you wrote it because you don't really understand what the full requirements are. If I rewrote everything several times, I'd get clean code.
<paulapatience>
I've looked at it in the past
<paulapatience>
Anyway, the most important thing is the public interface. If that's good, you can rewrite it whenever.
<aeth>
Yes, and for functions with typed arguments, the good thing is that the interface is basically already settled... use the same order as DEFMETHOD for classes (which is the opposite as C, so about half of these sorts of macros do _not_ do it this way)
<aeth>
The only hard part is extending &key and &rest, and finding room for more options, which I personally do by replacing foo with (foo :option-1 option-1 :option-2 option-2 ...)
<aeth>
which is how you find out edge case #37 of 100, which is that sometimes functions are named by lists instead of symbols, i.e. when it's (setf foo)
<aeth>
so you need to special case (setf foo) and make sure that it doesn't think you're trying to define setf with the option foo
<aeth>
But I personally prefer (define-function (foo :inline t) ...) to (declaim (inline foo)) (defun foo ...)
semz has quit [Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in]
<aeth>
so the macro serves a double purpose between that and typed arguments
semz has joined #commonlisp
<paulapatience>
Does it have an option to declaim inline and right below declaim notinline? ;p
<paulapatience>
But yeah, I like the interface you chose
<aeth>
looks like I didn't add notinline... probably because I couldn't decide whether to turn :inline into some sort of ternary (inline/notinline/nothing) or whether to add a :notinline
<aeth>
the kind of thing I'd have to deal with if I actually finalized the interface
<paulapatience>
I think a ternary would be better, since :notinline would be useless without a prior :inline t
Akbar-Birbal has joined #commonlisp
<paulapatience>
Maybe :inline nil/:by-requestl/t
<paulapatience>
s/:by-requestl/:by-request/
<paulapatience>
Or nil/:inlinable/t
drewjose has quit [Ping timeout: 272 seconds]
drewjose has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
troojg has joined #commonlisp
Akbar-Birbal has left #commonlisp [#commonlisp]
rtypo has quit [Ping timeout: 265 seconds]
NotThatRPG has joined #commonlisp
menad has quit [Ping timeout: 248 seconds]
menad has joined #commonlisp
owenradcliffe has joined #commonlisp
owenradcliffe has quit [Ping timeout: 272 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
NotThatRPG has joined #commonlisp
troojg has quit [Ping timeout: 260 seconds]
Sario is now known as Scario
owenradcliffe has joined #commonlisp
meaty has quit [Ping timeout: 248 seconds]
meaty has joined #commonlisp
Akbar-Birbal has joined #commonlisp
owen has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
NotThatRPG has joined #commonlisp
kurfen has quit [Ping timeout: 265 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
owenradcliffe has quit [Ping timeout: 244 seconds]
elderK has quit [Quit: WeeChat 4.4.2]
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life has joined #commonlisp
shawnw has joined #commonlisp
decweb has quit [Ping timeout: 252 seconds]
shawnw has quit [Ping timeout: 265 seconds]
anticomputer_ has joined #commonlisp
anticomputer has quit [Ping timeout: 260 seconds]
<paulapatience>
NotThatRPG: Also, it seems to me that the specializations of UIOP:VOMIT-OUTPUT-STREAM and UIOP:SLURP-INPUT-STREAM to pathnames are identical. Which seems like a bug.
<paulapatience>
I think VOMIT-OUTPUT-STREAM should be calling WITH-INPUT-FILE rather than WITH-OUTPUT-FILE
shawnw has joined #commonlisp
owenradcliffe has joined #commonlisp
kurfen has joined #commonlisp
owenradcliffe has quit [Ping timeout: 244 seconds]
wacki has joined #commonlisp
alcor has joined #commonlisp
dtman34 has quit [Ping timeout: 248 seconds]
dtman34 has joined #commonlisp
X-Scale68 has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
owenradcliffe has joined #commonlisp
Pixel_Outlaw has quit [Quit: Leaving]
owenradcliffe has quit [Ping timeout: 265 seconds]
amb007 has quit [Ping timeout: 265 seconds]
menad has quit [Ping timeout: 265 seconds]
menad has joined #commonlisp
owenradcliffe has joined #commonlisp
mgl has joined #commonlisp
owenradcliffe has quit [Ping timeout: 272 seconds]
scymtym has quit [Remote host closed the connection]
scymtym has joined #commonlisp
amb007 has joined #commonlisp
Th30n has joined #commonlisp
owenradcliffe has joined #commonlisp
owenradcliffe has quit [Ping timeout: 255 seconds]
owenradcliffe has joined #commonlisp
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
X-Scale68 has quit [Quit: Client closed]
shka has joined #commonlisp
owenradcliffe has quit [Ping timeout: 265 seconds]
amb007 has quit [Ping timeout: 244 seconds]
owenradcliffe has joined #commonlisp
alternateved has joined #commonlisp
owenradcliffe has quit [Ping timeout: 260 seconds]
<jackdaniel>
some names in uiop hit the nail (in the coffin)
mgl has quit [Ping timeout: 252 seconds]
awlygj has joined #commonlisp
mgl has joined #commonlisp
donleo has joined #commonlisp
drewjose has quit [Quit: Ping timeout (120 seconds)]
drewjose has joined #commonlisp
owenradcliffe has joined #commonlisp
varjag has joined #commonlisp
pve has joined #commonlisp
owenradcliffe has quit [Ping timeout: 252 seconds]
prokhor has joined #commonlisp
ingeniot has joined #commonlisp
owenradcliffe has joined #commonlisp
owenradcliffe has quit [Ping timeout: 260 seconds]
szkl has quit [Quit: Connection closed for inactivity]
owenradcliffe has joined #commonlisp
owenradcliffe has quit [Ping timeout: 248 seconds]
prokhor has quit [Ping timeout: 252 seconds]
owenradcliffe has joined #commonlisp
prokhor has joined #commonlisp
owenradcliffe has quit [Ping timeout: 252 seconds]
scymtym has quit [Remote host closed the connection]
scymtym has joined #commonlisp
meaty has quit [Ping timeout: 244 seconds]
nani has quit [Ping timeout: 252 seconds]
molson_ has joined #commonlisp
molson has quit [Ping timeout: 272 seconds]
nani has joined #commonlisp
owenradcliffe has joined #commonlisp
prokhor has quit [Remote host closed the connection]
owenradcliffe has quit [Ping timeout: 255 seconds]
owenradcliffe has joined #commonlisp
prokhor has joined #commonlisp
owenradcliffe has quit [Ping timeout: 244 seconds]
pkal has joined #commonlisp
ingeniot has quit [Ping timeout: 256 seconds]
rtypo has joined #commonlisp
owenradcliffe has joined #commonlisp
istewart has quit [Quit: Konversation terminated!]
owenradcliffe has quit [Ping timeout: 260 seconds]
owenradcliffe has joined #commonlisp
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
owenradcliffe has quit [Ping timeout: 244 seconds]
random-nick has joined #commonlisp
treflip has joined #commonlisp
random-nick has quit [Ping timeout: 252 seconds]
owenradcliffe has joined #commonlisp
owenradcliffe has quit [Ping timeout: 255 seconds]
treflip has quit [Remote host closed the connection]
treflip` has joined #commonlisp
menad has quit [Remote host closed the connection]
owenradcliffe has joined #commonlisp
<paulapatience>
Heh, I also found them unorthodox, but I guess I got used to them
owenradcliffe has quit [Ping timeout: 272 seconds]
owenradcliffe has joined #commonlisp
owenradcliffe has quit [Ping timeout: 252 seconds]
owenradcliffe has joined #commonlisp
edgar-rft_ has joined #commonlisp
molson__ has joined #commonlisp
owenradcliffe has quit [Ping timeout: 246 seconds]
molson_ has quit [Ping timeout: 260 seconds]
edgar-rft has quit [Ping timeout: 246 seconds]
decweb has joined #commonlisp
Th30n has quit [Quit: upgrading]
owenradcliffe has joined #commonlisp
treflip`` has joined #commonlisp
owenradcliffe has quit [Ping timeout: 260 seconds]
treflip` has quit [Ping timeout: 252 seconds]
Th30n has joined #commonlisp
X-Scale has joined #commonlisp
Demosthe1ex is now known as Demosthenex
owenradcliffe has joined #commonlisp
owenradcliffe has quit [Ping timeout: 244 seconds]