jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.5, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
<sjl> they don't have *anything* in common
pjb has quit [Ping timeout: 252 seconds]
robotoad has quit [Quit: robotoad]
* jcowan nods
<jcowan> What they have in common is that aref and (setf aref) that works on one will work on the other, but that's not enough for Liskov substitutability.
<jcowan> just a brain fart
<jcowan> (on my part)
nirved has quit [Ping timeout: 252 seconds]
<jasom> If there were a type "all simple vectors with at least 5 elements" then (simple-vector 10) would be a subtype of it
<PuercoPop> Why would one prefer to use (mapc ...) vs (map nil ...)?
<jasom> PuercoPop: mapc existed first?
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shifty has joined #lisp
<stacksmith> In SBCL, (incf-pointer *foo*) causes "doing SAP to pointer coercion (cost 14)"... Even when *foo* is a SAP... Does anyone have any ideas of how to fix it? (sb-sys::sap+ *foo* 1) seems to do the same.
Essadon has quit [Quit: Qutting]
<PuercoPop> jasom: in the context of non pre-90's Lisp code?
<stacksmith> Pls disregard my question - it was a declaration problem.
Mr-Potter has quit [Ping timeout: 240 seconds]
ryan_vw has joined #lisp
wusticality has quit [Read error: Connection reset by peer]
<stacksmith> I take it back. It is really strange, but SAP-to-pointer conversion note comes up - I think in all cases where the new SAP is stored...
npr has joined #lisp
<stacksmith> so (setf *foo* ptr) is fine, but (setf *foo* (inc-pointer ptr 4)) is a problem. (type-of ptr) is SB-SYS:SYSTEM-AREA-POINTER; (type-of (inc-pointer ptr 4)) is also SB-SYS:SYSTEM-AREA-POINTER and I am a bit stumped.
resttime has joined #lisp
dale has quit [Quit: dale]
frgo has joined #lisp
<jasom> PuercoPop: it's possible that some implementaions mapc will be faster since it takes a list, not a sequence.
<sjl> They also return different things.
<sjl> If I want to make it clear I'm mapping for side-effects only, I'd use (map nil)
<sjl> If I want to return the first list, mapc
frodef has quit [Ping timeout: 268 seconds]
frgo has quit [Ping timeout: 244 seconds]
_spm has joined #lisp
dddddd has quit [Remote host closed the connection]
arescorpio has joined #lisp
<PuercoPop> sjl: ah, mapc returns something? Then yeah map nil would be a better fit for this case (stumpwm::raise-top-windows)
<oni-on-ion> aeth ping
sielicki has joined #lisp
ryan_vw has quit [Ping timeout: 252 seconds]
impulse has quit [Quit: Lost terminal]
jochens has joined #lisp
d4ryus has quit [Ping timeout: 272 seconds]
d4ryus has joined #lisp
rumbler31 has joined #lisp
jochens has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Ping timeout: 244 seconds]
<LdBeth> pong
<oni-on-ion> hmm same 'eth' nick suffix ... =P
_spm has quit [Remote host closed the connection]
esrse has joined #lisp
<sielicki> I've been working on a homework assignment tonight and I thought it might be a good opportunity to practice lisp.
<sielicki> I rewrote the C-like code in there into lisp. The idea is that I want to write a lisp function that takes in an arbitrary function and makes it either pass by reference or pass by value.
<LdBeth> No, that's cheating
<sielicki> Okay, forget I said anything about homework. I'm already done with the assignment, the class has nothing to do with lisp, it's trivial to rewrite that c-like function with pointers to make it give the results.
<sielicki> Just on the question of an arbitrary lisp function that makes another function pass by value or pass by reference, is this possible with creative usage of quoting? I feel like it is but I'm too new to lisp to understand it.
<LdBeth> the easiest way is write a simple lisp interpreter
<LdBeth> There's a historical reason that compiler technology was not advanced to handle call by name, so macro comes out to completly replace the use of NLAMBDA
<aeth> oni-on-ion: pong
<no-defun-allowed> sielicki: an array with 1 element works well to fake a pointer
<no-defun-allowed> i think racket's box works the same way
elfmacs has joined #lisp
sjl has quit [Quit: WeeChat 2.2-dev]
<aeth> not just 1 element also a 0D array
<aeth> (make-array '())
<no-defun-allowed> true
<aeth> you can even give it an element type and override the box for 64-bit integers or double-float with your own manual box
rpg has joined #lisp
<sielicki> I'm giving up on my idea but I learned a lot tonight. Interesting link above, LdBeth, thanks for linking to it.
mcurry has joined #lisp
robotoad has joined #lisp
mejja has quit [Quit: mejja]
dkmueller has joined #lisp
ryan_vw has joined #lisp
arescorpio has quit [Remote host closed the connection]
mcurry has quit [Ping timeout: 268 seconds]
<beach> Good morning everyone!
dale has joined #lisp
Bike has quit [Quit: leaving]
SaganMan has joined #lisp
<elderK> beach: Good morning :)
<SaganMan> Morning beach
<SaganMan> Morning lispers ()
<SaganMan> elderK: where's your (
<LdBeth> evening
<elderK> (greet '(SaganMan LdBeth beach))
<elderK> :P
<elderK> There you go
<elderK> Or maybe even, (mapcar #'greet '(SaganMan LdBeth beach))
<elderK> :P
<LdBeth> greet[SaganMan; elderK; beach];
<LdBeth> GG
<SaganMan> XD
<elderK> :P
<elderK> :P BLASPHEMER! :P
Inline has joined #lisp
<SaganMan> lol LdBeth
elfmacs has quit [Ping timeout: 260 seconds]
elderK has quit [Quit: WeeChat 1.9]
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
<drmeister> Is it fair to return something like "#.(FOO x y)" from print-object if *print-readably* is T?
wanz has quit [Quit: wanz]
<drmeister> Not x and y of course - arguments that can be evaluated in the top level environment.
<LdBeth> CCL does so
rozenglass has joined #lisp
<drmeister> Good to know - thank you very much!
ryan_vw has quit [Ping timeout: 244 seconds]
elderK has joined #lisp
elderK has quit [Client Quit]
<no-defun-allowed> drmeister: sbcl does so with internal objects, like SAPs iirc
elderK has joined #lisp
<drmeister> That's what I'm using it for - internal objects that need to be literals within fasl files.
<drmeister> It sounds like it's not a terrible idea - I'll run with it.
<no-defun-allowed> hm, i appear to have broken swank trying to make a sap value
<no-defun-allowed> my lisp still responds to http requests but the swank repl is dead :(
elderK has quit [Client Quit]
elderK has joined #lisp
dkmueller has quit [Quit: Lost terminal]
pierpal has joined #lisp
<fiddlerwoaroof> #.(FOO x y) is better than #<....>
<fiddlerwoaroof> Especially when it doesn't matter whether the object is created at read time or not
<fiddlerwoaroof> If the object is likely to be mutated, it might be a bit surprising
dale has quit [Quit: dale]
Roy_Fokker has quit [Read error: Connection reset by peer]
<elderK> fiddlerwoaroof: That raises a good question. When should you provide specializations for make-load-form and suchlike?
<elderK> Is it something you should always do for every class you create?
equwal has quit [Remote host closed the connection]
<elderK> Should you do the same for print-object and such, too?
<elderK> As a newcomer, I'd be interested to hear :)
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
npr has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
frgo has joined #lisp
shka_ has joined #lisp
frgo has quit [Ping timeout: 240 seconds]
shifty has quit [Ping timeout: 244 seconds]
<fiddlerwoaroof> I like specializing print-object, because it makes values of a particular easier to understand
<fiddlerwoaroof> I've never used make-load-form because I've never run into a situation where adding a new loadable object was the right solution
matzy_ has joined #lisp
<fiddlerwoaroof> I use #. occasionally in print-object, when the object being printed is not supposed to be mutable
<beach> During SICL bootstrapping, customizing print-object is a must. Otherwise, in phases 3 and 4 all objects (generic functions, classes, slot objects, methods, method combinations) print as <HEADER>. :)
<fiddlerwoaroof> In my experience, people don't specialize print-object often enough
<fiddlerwoaroof> even if you use PRINT-UNREADABLE-OBJECT, it makes your classes a lot nicer to use in the repl
* beach totally agrees.
<SaganMan> beach: still not yet done with bootstrapping?
<beach> SaganMan: No, but making fantastic progress. I finished phase 4, and now I am working on the necessary conditions for being able to "tie the knot", i.e. converting my acyclic graph of objects to a normal-looking cyclic graph as Common Lisp expects.
<SaganMan> beach: woah, hasn't it been more than 4weeks since you started working on it? I don't know what kind of difficulties are, I bet it's tough
<beach> Yes, I think it is one of the hardest things I have ever attempted. And I am quit serious about that.
<beach> The main reason is that it has not been done before, and that involves 4 different versions of every MOP metaobject.
<beach> It confuses the hell out of me about a dozen times a day.
<beach> But it will be great when it is done.
<SaganMan> beach: woah so no one has done this before you? that's awesome man, you're breaking the boundaries
<beach> Yes, I am totally convinced that nobody has tried to build a Common Lisp system this way. Not even the AMOP suggests such a possibility.
<SaganMan> beach: it might be difficult and confusing but after all the ordeal, you'll be master of the domain.
<beach> And the paper we are working on that describes this bootstrapping procedure shows that all the examples in the "Living with Circularity" appendix in the AMOP just disappear.
<SaganMan> I see
<beach> SaganMan: Sure, but the main purpose is that one should be able to modify the source code of even the most basic MOP features, like adding a slot to a metaclass, and then just re-run the bootstrapping procedure.
sauvin has joined #lisp
<fiddlerwoaroof> It's sounds more interesting than my last four weeks :)
<beach> Plus, by doing it this way, I can skimp on A LOT OF maintenance problems that other systems require.
<LdBeth> such as CCL's level-0 level-1 problem
<beach> My absolute favorite is this: (defclass t () () (:metaclass built-in-class))
<SaganMan> beach: I don't understand the technical stuff but from what I've worked on programming in past, it's okay if the model/system is crude or ineficient, you will make things better later
<beach> LdBeth: Actually, I haven't looked much at CCL or any other implementation.
<beach> I just imagine what they must go through.
<beach> SaganMan: Sure. Once I fully understand what I did AND once I am able to describe it fully in written form, I think it will be quite beautiful.
<SaganMan> beach: I bet it is.
<LdBeth> that's like (defflavor vanilla () () :none-vanilla-flavor) :D
<beach> Oh dear.
<SaganMan> beach: will you also present this in annual lisp symposium?
Inline has quit [Quit: Leaving]
<beach> SaganMan: I hope so. We are working on the paper. http://metamodular.com/bootstrapping.pdf
<fiddlerwoaroof> I suppose you're also implementing your gf dispatch algorithm as part of this?
<beach> fiddlerwoaroof: It is, yes.
<beach> I mean I am.
vlatkoB has joined #lisp
<beach> We are not yet taking feedback on the paper. The description of the technique is still incomplete.
<SaganMan> beach: is the final paper also free?
<beach> I always retain copyright, yes.
<beach> ... and I let people download it.
<SaganMan> beach: nice, how many international papers have you published till now?
<beach> I have no idea.
<beach> Not that many compared to some of my colleagues.
<beach> Also, ELS is not that prestigious a conference. But I am in the luxury position that I don't need a promotion, so I can publish what I think is important and where I want to publish it, as opposed to what others think is important.
samebchase has joined #lisp
dacoda has joined #lisp
<shka_> beach: born to be wild! ;-)
<beach> Just lucky.
<shka_> :-)
<SaganMan> beach: woah, really? I thought of ELS highly
<shka_> ELS talks are often interesting
<SaganMan> beach: how about publishing it with ieee?
<beach> SaganMan: Come on! Lisp is not on the radar of any research lab in the world, except possibly EPITA where Didier Verna works.
<shka_> but prestige is a funny thing
Oladon has quit [Ping timeout: 252 seconds]
<SaganMan> beach: that's sad
<beach> Sure, but we are doing our best.
<SaganMan> beach: I believe the research is going in new languages by taking concepts from lisp..
<beach> Yes, that's part of the problem. Novelty is funded, even when it is not that novel. But when Lisp is mentioned, no matter how novel some technique is, it is not funded, because Lisp is considered dead.
<shka_> i don't think that there is much of language specific research going on in the first place
<beach> I guess drmeister has been able to revive it a bit by attaching Lisp to things that do get funded, like building molecules.
<beach> shka_: Correct. Nor any system research, as Rob Pike shows in his talk.
pjb has joined #lisp
<shka_> since 90s teached everybody that innovation in languages are mostly ignored by the industry
<SaganMan> beach: aren't there any companies that are using cl mainly?
<beach> SaganMan: Sure, there are a few. Like Grammarly.
<SaganMan> If on;y we have something like sun microsystems
cross has quit [Quit: Lost terminal]
<SaganMan> oh grammarly
<SaganMan> I see, no wonder there
<shka_> just keep calm and use common lisp :-)
<LdBeth> personal computer changed everything
<beach> Anyway, time to go find my (admittedly small) family to have breakfast. And then off to the defense. I'll be back later.
<LdBeth> seeya
<SaganMan> shka_: the problem is that many companies or even programmers just see programming languages as tools for their task. They hardly care about any language in particular.
<SaganMan> beach: itadakimasu~
<shka_> SaganMan: they hardly care about anything
<SaganMan> shka_: haha, probably
<LdBeth> First: where to found?
ryan_vw has joined #lisp
chens has joined #lisp
razzy has joined #lisp
dacoda has quit [Ping timeout: 264 seconds]
matzy_ has quit [Remote host closed the connection]
elfmacs has joined #lisp
makomo has joined #lisp
<jackdaniel> pjb: these are two different "operators", lumping them together is bad, because 1) ",X" always produces a form eventually while ",@X doesn't"; 2) it is like assuming the hypothesis you try to prove, my point is that they can't be treated the same
frodef has joined #lisp
wanz has joined #lisp
smokeink has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
CrazyEddy has quit [Ping timeout: 245 seconds]
frgo has joined #lisp
meepdeew has quit [Remote host closed the connection]
ryan_vw has quit [Ping timeout: 264 seconds]
JohnMS_WORK has joined #lisp
nowhere_man has joined #lisp
_whitelogger has joined #lisp
scymtym has quit [Ping timeout: 252 seconds]
nirved has joined #lisp
yvy has joined #lisp
shka_ has quit [Read error: Connection reset by peer]
beach has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
SaganMan has joined #lisp
yvy has quit [Ping timeout: 240 seconds]
jello_pudding has joined #lisp
jello_pudding has quit [Client Quit]
shka__ has joined #lisp
yvy has joined #lisp
varjag has joined #lisp
rozenglass has quit [Remote host closed the connection]
scymtym has joined #lisp
jello_pudding has joined #lisp
jochens has joined #lisp
orivej has joined #lisp
kajo has quit [Ping timeout: 252 seconds]
schweers has joined #lisp
jello_pudding has quit [Quit: Leaving]
robotoad has quit [Quit: robotoad]
themsay has quit [Ping timeout: 272 seconds]
fikka has quit [Ping timeout: 272 seconds]
<aeth> I've used make-load-form before
solyd has joined #lisp
<aeth> It's imo good if you want to create something constant and immutable (obviously just by convention) in a macro. I also wrap that object in a defun so you have to call a function to get it.
yvy has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
hhdave has joined #lisp
nokdoot has joined #lisp
elfmacs has quit [Read error: Connection reset by peer]
elfmacs has joined #lisp
Zaab1t has joined #lisp
shrdlu68 has joined #lisp
Mr-Potter has joined #lisp
robdog has joined #lisp
ak5 has joined #lisp
eMBee has quit [Ping timeout: 252 seconds]
shifty has joined #lisp
eMBee has joined #lisp
hhdave_ has joined #lisp
hhdave has quit [Ping timeout: 268 seconds]
hhdave_ is now known as hhdave
chens has quit [Remote host closed the connection]
Zaab1t has quit [Ping timeout: 268 seconds]
mejja has joined #lisp
elfmacs has quit [Ping timeout: 252 seconds]
Bike has joined #lisp
heisig has joined #lisp
gravicappa has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
m00natic has joined #lisp
mejja has quit [Quit: mejja]
jochens has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 268 seconds]
esrse has quit [Ping timeout: 264 seconds]
<elderK> Hey guys, another day studying macros and reading papers. Reread Bawden's paper. Studied CLtL2 and CLHS more. Was able to write my own version of the "quasiquote expander" in Appendix C.
<elderK> Still, while I can "expand" a nested bunch of quasiquotes, I still can't really look at something like once-only and understand what the heck it's doing.
<elderK> :( Frustrating day.
<elderK> I am now reading through parts of On Lisp and ANSI Common Lisp, with hopes of help. Are there any other sources of information that helped any of you learn to like, understand what something like PCL's once-only expands to?
<elderK> It's mostly seeing things like ``(,,g ,,n)) that gets me. I've manually expanded that and wind up with (g n), which is... I guess, what you'd expect. Trying things out in the REPL is only so useful, as it results in things I can't really explain :( Like, extra commas appear in the output that I would not have expected.
<makomo> elderK: just keep at it is my answer :-). ONCE-ONLY is not an invention of PCL btw. it dates back to at least Norvig's PAIP (but i don't know who the original author of the macro is)
nowhere_man has quit [Ping timeout: 252 seconds]
<elderK> makomo: :( I don't know what else to do. When I saw collect ``((,,g ,,n)) in the PCL once-only, I was like... whaaaa? So, I went through the process documented in the CLHS - the one you sent linked me to with examples.
<elderK> I wound up with a surprisingly huge bunch of appends, lists, etc. Condensing it down, I wound up with (list g n)
<makomo> elderK: the double backquotes and commas in ``(,,g ,,n) are there to "force" double evaluation
<makomo> (they're not really forcing anything, it's just how the template (and the macro itself) is supposed to work)
<makomo> but it is intentional, you really need the result of the result of G
<makomo> elderK: it'll be hard to see through the logic of ONCE-ONLY once you fully expand the backquotes
<elderK> Yeah, I've found actually doing the expansions to be of limited use.
<elderK> Like, in understanding WTF is happening.
<makomo> yes, you will end up with something like (list g n), but that doesn't really tell you much
<elderK> Precisely :(
<makomo> after the 1st evaluation, somewhere within the output there'll be something like (list <result-of-g> <result-of-n>) most likely
<makomo> but still, it isn't really helpful to look at the backquote-expanded version of ONCE-ONLY
<elderK> Plugging it into the REPL, with ``(,,a ,,b) where a->1, b->2 I get `(,1 ,2)
<makomo> yes, that's correct
skeuomorf has joined #lisp
skeuomorf has left #lisp [#lisp]
smokeink has quit [Ping timeout: 245 seconds]
<makomo> elderK: once you grasp the formal rules, you should use them to derive the evaluation semantics for various "backquote idioms"
<elderK> See, even that confuses me. We're doing the expansion of one `, and then what, evaluating?
<makomo> or at least to clarify the rules to yourself and iron out any exceptions which you might be unsure about
<makomo> elderK: perhaps the pretty printing is confusing you. SBCL's backquote longform is pretty printed by SBCL back into the "backquote syntax"
<elderK> I've set print-pretty to nil but the output of that isn't that much more useful :(
<makomo> their longform consists of the SB-INT:BACKQUOTE macro and a literal structure as an argument
smokeink has joined #lisp
<makomo> ``(,,a ,,b) gets read by SBCL into some longform and then evaluated (as you typed it at the REPL)
<makomo> the evaluation of that returns code which is the longform of the inner backquote template
<makomo> but that longform is then pretty-printed by SBCL
frgo has quit [Remote host closed the connection]
<elderK> Even the long-form has SB:COMMA and stuff. Where as in my manual expansion, I didn't have any commas.
<elderK> I did have say, (append (list a) (list b) 'nil)
<elderK> and I realize that is the same as `(,a ,b)
<elderK> But what I don't get, is why the values of a and b are being substitued in - but still have commas.
<elderK> Probably because I did a full expansion I guess. I'll do some more expansions tomorrow.
<elderK> Create some simple examples of various... combinations and expand them.
<makomo> elderK: the longform is implementation-defined. the rules listed in CLHS produce just one out of infinitely many possible longforms
<elderK> as you suggested.
<makomo> you should not rely on the expansions being the same as those you get when following the CLHS' rules by hand
<makomo> what you should expect though is that the result of k nested backquotes is the same after k evaluations
<makomo> all the other results (before k evaluations) are implementation-defined
<elderK> Right, so if I evaluate the result of what SBCL gives me for ``(,,a ,,b), it should wind up eqvuialent to whatever my final result is, right?
<makomo> yup, that's the only guarantee you have
<elderK> :( This difference makes it even harder to get a good hold on this :(
<makomo> yep :-)
<elderK> It is very frustrating.
<makomo> no way around that i'm afraid
<elderK> :(
fikka has joined #lisp
<makomo> since it's implementation-defined, various implementations expand to various things
<elderK> So for instance, to get a hold on what PCL's once-only is doing, I would effectively need to expand it fully, by hand.
<elderK> And just ``(,,a ,,b) winds up a huge expansion
<elderK> I'm not sure how to best approach it, I guess.
<makomo> SBCL expands into that tricky longform with a literal structure in order to facilitate pretty printing (the other implementations can't really pretty print it once they've fully expanded it)
<makomo> (because they emostly expand to a form that's a variation of the one given by CLHS' rules)
<makomo> elderK: that is exactly what you should not do! :D
<elderK> What would you suggest?
<makomo> if by "expand" you mean "backquote expand" of course, not "macroexpand"
<makomo> you should definitely take a look at the macroexpansion of ONCE-ONLY, that *will* be helpful
<elderK> I mean BQ expand.
<elderK> But I mean, to BQ expand the entirity of once-only...
<makomo> but the backquote expansion is just too dense and hard for us humans to follow
<makomo> at least it is for me
<elderK> Likewise.
<makomo> i get lost in the details too quickly
<elderK> :( so, I'm not sure what to do :( How to proceed.
<makomo> therefore you should grasp the standard idioms such as ,, ,', etc.
<makomo> the way you grasp these is by (1) experimenting and (2) following the formal rules
<makomo> once you grasp the little pieces, compose them to grasp the bigger thing (without fully bq expanding it)
<makomo> but to understand the little pieces, you might have to bq expand them (which is the point of (2))
<elderK> Right. So, constructing some "simplified examples" of say, ,, and ,', and ,,@ and such, and BQ expanding them, to get a feel
<makomo> yes, exactly
<makomo> ``(,,g ,,n) is nothing more but an instance of the ,, idiom
<elderK> Due to implementation like, differences and all, I'll probably wind up doing this either by hand, or by writing another little BQ expander.
<makomo> elderK: note that, if you're using SBCL, the pretty-printing behavior of backquote is actually very helpful when reading macroexpansions
<elderK> makomo: I imagine it is once you... undersatnd the pieces as it were.
<makomo> (expansions of higher-order (macro-writing) macros, that is)
<elderK> I mean, I have used it to debug macros that are not nested.
fikka has quit [Ping timeout: 252 seconds]
<elderK> macroexpand and friends.
<elderK> The collect ``(,,g ,,n) threw me though
<makomo> yeah, that's probably the trickiest part of ONCE-ONLY i would say
<elderK> I still don't get exactly what it is doing. To me, it's collecting a bunch of (x y) lists, where x and y are respectively the value-of-the-value of g and n.
<jackdaniel> this one is amusing: (car (second ``(,@,@'((1 2) (3 4))))) ;-) in sbcl
<jackdaniel> regarding pretty printing
<elderK> Hey jackdaniel! :)
<elderK> makomo: I'll try the approach you suggested tomorrow. :)
<jackdaniel> hey
fikka has joined #lisp
<elderK> The Bawden paper was unfortunately, not that useful to me. I guess it /has/ however given me a nice list of standard cliches to manually BQ expand and explore.
<elderK> So I guess that will be useful.
<shka__> jackdaniel: i was not expecting that to be sure
<makomo> elderK: exactly all of those cliches are listed in cltl2
<jackdaniel> shka__: you may scroll the backlog for insight into that. it is not valid common lisp form sadly
<makomo> indeed, because (1 2) doesn't produce a list :^)
<shka__> heh
<shka__> ok
kajo has joined #lisp
<elderK> makomo: I saw ,,x and ,'x but not some of the weirder ones that are in his paper.
<makomo> which ones? maybe my memory is faulty
<elderK> ,@,x ,@',x etc
<elderK> ,@,x I see as ",@y" where y is x' value.
<elderK> Then splice y's contents into the list.
<elderK> But I'll test these all out tomorrow :)
<makomo> ,@',x does appear
<makomo> and so does ,@,x
<makomo> both of them are there
<elderK> I must have missed them :(
<elderK> Gotta say, I am thankful that both CLHS and CLtL2 are available online, free to all.
<makomo> indeed :-)
<elderK> Ah, I see. You mean they're written in his notation, like $$(@@x)
<elderK> For ``(,,x)
<makomo> yup
<elderK> Then yeah, I definitely missed these :)
<elderK> >:) Good. I have a plan for tomorrow!
<elderK> >:) We shall yet be victorious! :P
<makomo> good luck :)
<elderK> Thank you for your continued help :) I very much appreciate it.
<makomo> glad to help
<elderK> One day, I hope to be able to pay it back and help explain to newcomers :)
<makomo> that's how it works! ;-)
<elderK> :D
fikka has quit [Ping timeout: 240 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
quipa_ has joined #lisp
pjb has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
maximjaffe has joined #lisp
ak5 has quit [Ping timeout: 245 seconds]
elfmacs has joined #lisp
maximjaffe has quit [Read error: Connection reset by peer]
quipa_ has quit [Ping timeout: 252 seconds]
frgo has joined #lisp
heisig_ has joined #lisp
<ogamita> jackdaniel: What do we mean by "form"? ` produces a sexp, not necessarily a form in the sense of eval (code). if eg. X is not bound, then ,x will signal an error. Just like if X isbound to a non-list, ,@X can signal an error. This is irrelevant to the rules and their application, that is purely formal (hence the use of the term "form" to designate things that are not necessarily sexps). This is classic in formal systems and rewriting
<ogamita> rules. They may apply locally on non "well-formed forms".
<jackdaniel> form is described in a glossary, I've copied this definition to the org file I've linked yesterday
rumbler31 has joined #lisp
igemnace has quit [Quit: WeeChat 2.3]
Zaab1t has joined #lisp
<ogamita> jackdaniel: clearly, ` is unrelated to code. It's a mechanism to build sexps from a template. Therefore any use of the term "form" in that page is unrelated to the glossary definition.
another-user has joined #lisp
<jackdaniel> your "clearly" doesn't make sense to me (and isn't very compelling argument if we talk about specification, I'm not denying it appeals to your intuition though). ,@ works on a form, not on multiple forms (produces multiple forms for splicing informally speaking)
<another-user> hi, is there some documentation/guides/blog posts on MOP outside of AMOP, i can't get my hands on the book any time soon, i tried to read MOP section in SBCL manual but it's rather unhelpful
<jackdaniel> another-user: metamodular has the gist of it http://metamodular.com/CLOS-MOP/ (two chapters)
<jackdaniel> you may look up symbols on l1sp.org
robdog has quit [Remote host closed the connection]
rumbler31 has quit [Remote host closed the connection]
DGASAU has joined #lisp
arbv has joined #lisp
<ogamita> jackdaniel: ok
<ogamita> jackdaniel: ` is unrelated to code. It's a mechanism to build sexps from a template. Therefore any use of the term "form" in that page is unrelated to the glossary definition.
<ogamita> (when a demonstration is a simple implication, to me it's a clear demonstration ;-))
<another-user> jackdaniel: thanks!
scymtym has quit [Ping timeout: 276 seconds]
kajo has quit [Ping timeout: 245 seconds]
<ogamita> jackdaniel: that said, I would agree that 1- clhs in general is not formal enough. 2- the rules in 2.4.6 Backquote are not formal rules, despite the formality of the English language used in that section.
<ogamita> jackdaniel: and I could agree that either as the rules are stated, or there's an ambiguity in the rules that 3- make ,@,@form invalid.
<ogamita> jackdaniel: the question is what do you think, should ,@,@form do what it does in most implementation and what we thing it should be, or should it be invalid?
<ogamita> ie. the question is whether we should formalize 2.4.6 to ensure that ,@,@form works, or to ensure that it doesn't?
<ogamita> jackdaniel: again about "form", notice that when 2.4.6 speaks of ,form this would prevent form to be eg. (a b ,x c) because as such, this is not a valid form as per the glossary (because of the comma without a backquote!
<ogamita> jackdaniel: so if we accepted your argument using the glossary definition of form, this while restrict greatly the possible backquote templates!
<ogamita> actually, any double comma would be impossible.
shrdlu68 has quit [Ping timeout: 276 seconds]
<ogamita> `( ,x `(a ,y d) ,z) would be ok, but `(`(,',x a ,y d ,',z)) would not.
<jackdaniel> ogamita: I find your assertions unfounded in the specification. I've led my arguments in the org file. Implications you talk about are based on your intuition not on CL standard. My whole point is that conforming program can't depend on ,@,@foo doing recursive splicing.
DGASAU has quit [Read error: Connection reset by peer]
<jackdaniel> and I'm glad we can agree that rules are ambigue at best
<jackdaniel> (what is same as agreeing, that it is an undefined behavior)
DGASAU has joined #lisp
Zaab1t has quit [Quit: bye bye friends]
Essadon has joined #lisp
<Xach> Hmm, I find it a little odd to see (error 'some-condition-type-that-is-not-a-subtype-of-error)
<Xach> i'm looking at something using error for control flow. but i think it should probably use throw instead. SIGNAL isn't appropriate because control should certainly not continue.
<jackdaniel> it is indeed unsettling a little, but function error (specification-wise) has nothing to do with condition error (except that it defaults to simple-error)
DGASAU has quit [Read error: Connection reset by peer]
<Xach> What do you think about throw instead?
<jackdaniel> it is meant to invoke a debugger irrecoverably if not handled
<Bike> throw doesn't do conditions
<Colleen> Bike: drmeister said 7 hours, 37 minutes ago: In aclasp the FORMAT function is implemented in C++ and it doesn't use the printer - so it prints differently from bclasp once FORMAT is installed. different results from bclasp - that's bad for serialization in fasls.
<jackdaniel> I would expect error when I think about it
<jackdaniel> not throw
<jackdaniel> but it would be better, if condition had at least subclassed serious-condition
<Bike> oh, i misunderstood
<Xach> It's essentially something like (error 'not-applicable)
<Xach> But it's not an error situation, just decliining to handle something.
<Bike> and when it's not handled, control has to resume up the stack somewhere?
<Xach> yes.
<jackdaniel> if there is no matching catch it seems like a little abuse of throw
ggole has joined #lisp
<Bike> it seems like there is a matching catch
<jackdaniel> if you have guarantee that it is handled above, then you may safely use signal, no?
<Bike> if the guarantee is messed up i'd prefer the debugger to continuing silently
<Xach> right. that's my concern. signal could silently continue if there is a mistake in up-stack handling. throw would enter the debugger.
<Xach> it really boils down to the friction of seeing ERROR used in that type of control flow
another-user has left #lisp ["ERC (IRC client for Emacs 26.1)"]
<Bike> if the "throw" and the "catch" are in different functions i think i'd use ERROR anyway, and make the condition an error subclass, just so that if i accidentally called the throwing function by itself i'd get a coherent debugger entry
<Xach> Maybe the whole thing should be hidden by (decline-to-handle)
<Bike> instead of "tag [x] is not in scope" or w/e
<jackdaniel> I'd vote for error, because it does everything you expect from it, but throw should be fine too
<jackdaniel> (disregarding the condition class)
<Xach> (defun decline-to-handle () (signal 'declined) (error "Hey, you didn't handle the signal, dummy!"))))
<Bike> that could work too.
<jdz> Xach: how about (cerror "Ignore this thing" 'not-applicable)?
<jackdaniel> this is about refusing to continue
<jackdaniel> I think that continue restart would miss the point here
<Xach> jdz: it's bad to continue
gravicappa has quit [Remote host closed the connection]
nicksmaddog has joined #lisp
dddddd has joined #lisp
<_death> Xach: I'd go with the decline-to-handle solution
<ogamita> I would have said signal, but if it must not continue (and signal can not return anyways), perhaps defining a specific function for this kind of flow control would be indicated.
<jackdaniel> when I do (error (make-condition 'warning)) debugger doesn't say anything about error, it is simply invoked, so from the user perspective it isn't a big deal to see this
<jackdaniel> maybe (setf (fdefinition 'signal-with-debugger-fallback) #'error) ;?
<jackdaniel> or even better (setf (fdefinition 'decline-to-handle) #'error)
<heisig> Yes, this seems like the way to go (plus maybe a comment explaining why it works).
rumbler31 has joined #lisp
<Xach> ha! no way.
<jackdaniel> :)
theBlackDragon has joined #lisp
rumbler31 has quit [Ping timeout: 250 seconds]
<_death> the error (assuming it's not a string) gives another hook, but indeed you can use BREAK (like ERROR) if you don't want that hook
<_death> (well, error uses INVOKE-DEBUGGER..)
jochens has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
fikka has joined #lisp
elfmacs has quit [Ping timeout: 250 seconds]
elderK has quit [Ping timeout: 252 seconds]
elderK has joined #lisp
smokeink has quit [Remote host closed the connection]
smokeink has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
<pfdietz> You should not even depend on the expansion of ` forms to be a cons tree.
<pfdietz> SBCL changed that at one point and broke a lot of code that was making that assumption.
<pfdietz> Early 1.3.* version. I want to say... 1.3.5?
<pfdietz> Or 1.3.4
Inline has joined #lisp
<slyrus> whoa. what is this google authenticator stuff?
<slyrus> on common-lisp.net
<jackdaniel> recently introduced two factor authentication
rippa has joined #lisp
<jackdaniel> I think you may log in with other oath providers as well, but to make sure you need to ask on #common-lisp.net
<jackdaniel> or on the mailing list
<slyrus> ok, thanks jackdaniel
<dlowe> totp is a standard 2fa method - there's other apps/devices than google auth that support it
anamorphic has joined #lisp
jochens has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
smokeink has quit [Remote host closed the connection]
sjl_ has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
confusedwanderer has joined #lisp
jochens has joined #lisp
Roy_Fokker has joined #lisp
jochens has quit [Remote host closed the connection]
scymtym has joined #lisp
nokdoot has quit [Remote host closed the connection]
hr0m has joined #lisp
<jcowan> makomo: ONCE-ONLY is not in the Maclisp manual, but it is in the Chine Nual and in Genera, so it was introduce some time in the history of Lisp Machine Lisp.
<jcowan> So we are talking some time in the late 70s
rpg has joined #lisp
jochens has joined #lisp
elderK has quit [Quit: WeeChat 1.9]
cross has joined #lisp
FreeBirdLjj has joined #lisp
shifty has quit [Ping timeout: 244 seconds]
fikka has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
FreeBirdLjj has quit [Ping timeout: 272 seconds]
jochens has quit [Ping timeout: 276 seconds]
Inline has quit [Remote host closed the connection]
rumbler31 has joined #lisp
frodef has quit [Ping timeout: 240 seconds]
nowhere_man has joined #lisp
rumbler31 has quit [Ping timeout: 252 seconds]
Inline has joined #lisp
schweers has quit [Ping timeout: 260 seconds]
<dim> hi guys! Xach if you're around, I think https://pastebin.com/TjdsKfJh falls in your area, thanks to being buildapp related
<dim> (oh and it's using QL bundles too)
kinlo has joined #lisp
FreeBirdLjj has joined #lisp
jochens has joined #lisp
igemnace has joined #lisp
kajo has joined #lisp
Zaab1t has joined #lisp
<dim> it might be a CCL bug?
frodef has joined #lisp
<makomo> jcowan: wow, amazing!, thanks for the info. (at first i thought Chine Nual was a typo btw, first time i heard of it :-))
robotoad has joined #lisp
<makomo> jcowan: can you tell me which page in the Chine Nual? (i'm looking at the 3rd edition)
<makomo> a simple ctr+f doesn't help, and neither does skimming the obvious sections that have something to do with macros
lavaflow has quit [Read error: Connection reset by peer]
<jcowan> The 6th ed. is hypertext
lavaflow has joined #lisp
ak5 has joined #lisp
<dim> who's using uiop/image:dump-image rather than buildapp or something else? I'm considering dropping buildapp in pgloader, to ease building for some users...
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
<makomo> jcowan: found it, thanks
jochens has quit [Ping timeout: 245 seconds]
ak5 has quit [Ping timeout: 245 seconds]
wusticality has joined #lisp
dkmueller has joined #lisp
<Xach> dim: i think Shinmera uses dump-image
pierpal has quit [Ping timeout: 268 seconds]
<Xach> dim: hmm, i can't suss out anything from that paste, sorry.
dkmueller has quit [Client Quit]
<dim> yeah I can't either, that's why I “summoned” you ;-)
frgo has quit [Remote host closed the connection]
sigjuice has quit [Quit: ZNC - http://znc.in]
* Xach digs a lil
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
edgar-rft has quit [Quit: Leaving]
<Xach> dim: has this ever worked?
nsrahmad has joined #lisp
<dim> yeah, sure, I used to be able to build with CCL/buildapp
<dim> mmm, now that you mention, from the bundle? that's a good question
<dim> can't remember if I tried that combo before
<Xach> dim: it might help to be able to see the whole command line
<Xach> the ... cutoff hides some useful info
<dim> kinlo just joined here and is the OP in that case, I have no access to the system from which the error is generated
<Xach> or, hmm
<Xach> ok.
ggole has quit [Quit: ggole]
fikka has quit [Ping timeout: 268 seconds]
resttime has quit [Quit: resttime]
sigjuice has joined #lisp
<dim> I'm pretty happy with buildapp by the way, it mostly just does the job, and the CCL support exists… but it's still an extra step in the build process, building the buildapp binary itself…
<Xach> Yes - it would be nice if buildapp supported an "in core" buildapp library better.
<Xach> That's how it builds itself, but it's not externally supported
SaganMan is now known as e^i
<dim> yeah that's what I'm contemplating uiop:dump-image to offer, but I'm not sure it actually does that well... I remember having difficulties when trying to produce an executable image for CCL with it in another local small project
<Xach> you can see it by M-. on buildapp:build-buildapp which is very short.
<dim> in that small project I'm using #+ccl (ccl:save-application ...) #+sbcl (sb-ext:save-lisp-and-die ...) nowadays, just works
<Xach> i made buildapp because i could not understand all the features and options of cl-launch, and then cl-launch was partially absorbed and adapted into asdf, and I can't understand that either.
<Xach> it is the circle of life
<dim> it's basically 4 lines: 0. (in-package #:cl-user) 1. #-quicklisp (load it) 2. (ql:quickload "project") 3. ccl:save-application or sb-ext:save-lisp-and-die
nsrahmad has quit [Remote host closed the connection]
<dim> I'm not sure I can make heads&tails of the uiop stuff either, I mean last time I failed to use it and resorted to an 18 lines save.lisp file
<dim> now I'm wondering if 18 lines would be all it takes to build pgloader executable ;-)
<|3b|> jcowan: https://github.com/3b/package-local-nicknames/blob/master/package-local-nicknames.lisp was probably intended for non-implementation-specific parts of the lib, but there ended up not being any. I'm not very good at organizing code in files :/
FreeBirdLjj has quit [Remote host closed the connection]
DGASAU has joined #lisp
shka_ has joined #lisp
rpg has joined #lisp
wusticality has quit [Ping timeout: 252 seconds]
beach has joined #lisp
<beach> Good evening everyone!
<shka_> beach: good evening
troydm has quit [Ping timeout: 246 seconds]
FreeBirdLjj has joined #lisp
<beach> Hey shka_.
<beach> All went well.
pierpal has joined #lisp
frgo has joined #lisp
clintm has joined #lisp
<clintm> Do any of you happen to have experience with the LispWorks mobile runtime? Specifically, android.
<beach> Hmm. You understand that this is freenode, right?
lavaflow has quit [Read error: Connection reset by peer]
lavaflow has joined #lisp
<clintm> Yea, true. Not sure what I was expecting.
<oni-on-ion> =)
<beach> I like their stuff, and I have dinner with Martin Simmons and his charming wife as often as possible.
frgo has quit [Ping timeout: 268 seconds]
malice has joined #lisp
Zaab1t has quit [Ping timeout: 245 seconds]
esper0s has joined #lisp
hhdave has quit [Ping timeout: 268 seconds]
dacoda has joined #lisp
clintm has quit [Remote host closed the connection]
Lycurgus has joined #lisp
skeuomorf has joined #lisp
varjag has joined #lisp
skeuomorf has left #lisp [#lisp]
pjb has joined #lisp
frgo has joined #lisp
m00natic has quit [Remote host closed the connection]
cage_ has joined #lisp
doubledup has joined #lisp
<Xof> evening. I feel like I participated in the lisp community today
<Xof> go me
<Xof> (also go Dr Jim Newton)
<LdBeth> Good morning
fikka has joined #lisp
<shka_> Xof: good evening dear doctor
<beach> Xof: You did. Good work.
FreeBirdLjj has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #lisp
Inline has quit [Read error: Connection reset by peer]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jcowan> beach: Freenode's policy page says "freenode provides facilities to peer-directed project communities, including those of free and open source software (FOSS)." That means "including but not limited to". Discussion of proprietary software, like discussion of closed-copyright books, is not banned. https://freenode.net/policies
<beach> OK
<beach> jcowan: You seem disconnected. You need to attend ELS.
<jcowan> I no longer fly except under duress.
<Xach> A place where it's explicitly fine to bring a scheme perspective into every discussion
<jcowan> I *don't* do that, Xach.
anamorphic has quit [Quit: anamorphic]
<beach> jcowan: I recommend you move to a more reasonable continent then.
<jcowan> By boat?
<jcowan> Anyway, I love NYC and don't intend to leave except feet first.
<beach> jcowan: I have moved in 5 countries on 4 continents. I made my choice.
<beach> lived not moved
<jcowan> I moved from one state to an adjacent state, and made my choice also some 40 years ago.
<beach> I am so sorry to hear you made your choice after that little experience.
<jcowan> I did travel in earlier years, but now I would only go somewhere I can reach by train, which in the U.S. is rather limited, even on the East Coast.
<aeth> jcowan: On the other hand, few people here are qualified to talk about implementations they don't use (the commercial ones), but many FOSS implementations have authors here.
pjb has quit [Read error: Connection reset by peer]
<jcowan> aeth: Fair point
<jcowan> https://genius.com/Stan-rogers-lock-keeper-lyrics is not precisely on point, but relevant.
pjb has joined #lisp
e^i has quit [Quit: WeeChat 1.6]
<beach> Anyway, my (admittedly) small family is due in a matter of minutes.
beach has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
wanz has quit [Remote host closed the connection]
Inline has joined #lisp
<aeth> jcowan: There are probably enough northeast Lispers that a meeting in the geographic middle would be possible. I guess Philadelphia?
<jcowan> That would be great!
<aeth> Now the real question is if any are actually in Philadelphia, which I'm guessing would be the convenient geographic average of DC, Pittsburgh, NYC, and Boston.
<Lycurgus> surely some
<dlowe> I'm betting the geographic average is closer to Boston
<dlowe> at least of people in the area
<aeth> dlowe: Boston is an outlier, we weight it less
scymtym has quit [Ping timeout: 264 seconds]
<aeth> as in, it's (probably) the least convenient for everyone outside of Boston
<dlowe> Xach and jcowan are equidistant
<dlowe> (roughly)
lavaflow has quit [Read error: Connection reset by peer]
<jcowan> all four cities are in fact connected by train
lavaflow has joined #lisp
Zaab1t has joined #lisp
anamorphic has joined #lisp
<anamorphic> Hi, bit confused on array types... how come I can (typep #2A((1 0 0) (0 1 0) (0 0 1)) '(simple-array number 2)) => T, but not (typep #2A((1 0 0) (0 1 0) (0 0 1)) '(simple-array bit 2))?
rpg has joined #lisp
<Bike> #a makes a T array
<Bike> (simple-array number) is probably (simple-array T) on your implementation- you can check with (upgraded-array-element-type 'number)
<Bike> but (simple-array bit) is not.
<anamorphic> Ahh OK that makes sense, thanks!
<Bike> the element-type of an array is a property of the array itself, not whatever it happens to have in it.
Kevslinger has quit [Quit: Connection closed for inactivity]
Lycurgus has quit [Quit: Exeunt]
frodef has quit [Ping timeout: 250 seconds]
<pjb> Inded. Notably: (let ((a (make-array 1 :element-type 'integer :initial-element 42))) (list (type-of a) (type-of (aref a 0)))) #| --> ((simple-vector 1) (integer 0 1152921504606846975)) |#
<pfdietz> What it CAN store, not what it IS storing.
<pjb> I mean: (let ((a (make-array 1 :element-type 'integer :initial-element 42))) (list (array-element-type a) (type-of (aref a 0)))) #| --> (t (integer 0 1152921504606846975)) |#
<pjb> Or even: (let ((a (make-array 1 :element-type 'fixnum :initial-element 42))) (list (array-element-type a) (type-of (aref a 0)))) #| --> (fixnum (integer 0 1152921504606846975)) |#
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
<pjb> (subtypep '(integer 0 1152921504606846975) 'fixnum) #| --> t ; t |#
<pfdietz> That depends on the implementation, though.
<pjb> Yes, but not the relationship. (assert (every (lambda (element) (subtypep (type-of element) (array-element-type vector))) vector))
<jcowan> The implementation-dependence is encoded into the implementation of subtypep.
wheelsucker has joined #lisp
<pfdietz> All sorts of invariants for subtypep, though. Which is delightful for property-based testing.
* jcowan nods
<jcowan> I think the only things you need to parameterize a portable subtypep on are (a) what array element types exist and (b) what types of floats and complex numbers exist.
<jcowan> (and obviously what structure and class types exist, which is not known until run time)
pierpal has quit [Read error: Connection reset by peer]
yvy has joined #lisp
<jcowan> Am I right to think that an implementation can return an object of type (complex float) even if the arguments to `complex` are rational numbers, provided the imaginary part is not rational 0? There seems to be nothing to forbid it.
mathrick has quit [Ping timeout: 260 seconds]
anniepoo has quit [Ping timeout: 250 seconds]
rjid has joined #lisp
<pfdietz> Complex is all screwed up, unfortunately.
rjid has left #lisp [#lisp]
mathrick has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
<pfdietz> Read carefully the part on complex numbers under TYPEP.
<pfdietz> clhs typep
<Xach> Boston may as well be on another planet right now, sadly - wish I could make it to a Lisp pal gathering but it requires much more planning than before.
wusticality has joined #lisp
varjag has quit [Ping timeout: 252 seconds]
wusticality has quit [Ping timeout: 268 seconds]
pierpal has joined #lisp
<pjb> jcowan: I don't see anything that allows it.
<pjb> jcowan: see 12.1.5.3
sauvin has quit [Read error: Connection reset by peer]
<pjb> #c(5 1) is not eql to #c(5.0 1.0)
<pjb> notably, clhs complex says: Type upgrading implies a movement upwards in the type hierarchy lattice.
<pjb> But single-float or double-float, or even float, are not a supertype of integer!
<pjb> There is real above both integer and float, but you're considering (complex float), not (complex real), and ther is no direct instance of real, it's an abstract class.
<pfdietz> I don't think the standard prohibits the existence of direct instances of REAL.
<pjb> Actually, it would be very difficult to insert any new type in the number type hierarchy.
<pjb> Look for example, the problem clisp has with its variable-length long-floats!
akovalenko has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
<pjb> or consider inserting real real numbers (like with realib).
varjag has joined #lisp
pierpal has quit [Ping timeout: 268 seconds]
<jcowan> I don't think that sentence about "movement upwards" means what you think it means.
terpri_ has quit [Ping timeout: 272 seconds]
<jcowan> after all, single-float and double-float are not subtypes of each other either, and cannot be.
<pjb> Indeed.
<pjb> So you can't upgrade one to the other.
<pjb> There's no upgrading there, since float and real are abstract, and you cannot make a complex of complex…
<Bike> i thought they could be if there was only one float type.
<pjb> Yes, of course, but then it doesn't change anything.
bheesham has joined #lisp
cage_ has quit [Quit: Leaving]
LiamH has joined #lisp
terpri has joined #lisp
pfdietz has quit [Remote host closed the connection]
pfdietz has joined #lisp
anamorphic has quit [Quit: anamorphic]
anamorphic has joined #lisp
vlatkoB has quit [Remote host closed the connection]
rumbler31 has joined #lisp
<jcowan> Sure. Upgrading is about actual implemented types as opposed to describable CL types
troydm has joined #lisp
pierpal has joined #lisp
bheesham has quit [Quit: WeeChat 1.4]
DGASAU has quit [Read error: Connection reset by peer]
pierpal has quit [Read error: Connection reset by peer]
RichardWurth has joined #lisp
doubledup has quit [Quit: Leaving]
pierpal has joined #lisp
pierpal has quit [Ping timeout: 268 seconds]
pierpal has joined #lisp
pierpal has quit [Ping timeout: 245 seconds]
pierpal has joined #lisp
heisig has quit [Quit: Leaving]
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
anamorphic has quit [Quit: anamorphic]
pierpal has quit [Read error: Connection reset by peer]
confusedwanderer has quit [Remote host closed the connection]
pierpal has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
shka_ has quit [Ping timeout: 268 seconds]
pierpal has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
lavaflow has quit [Quit: WeeChat 2.2]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
anamorphic has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
Zaab1t has quit [Quit: bye bye friends]
pierpal has quit [Read error: Connection reset by peer]
shifty has joined #lisp
pierpal has joined #lisp
didi has joined #lisp
pierpal has quit [Ping timeout: 268 seconds]
wilfredh has quit [Quit: Connection closed for inactivity]
crsc has quit [Quit: leaving]
crsc has joined #lisp
pierpal has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
RichardWurth has left #lisp ["Leaving"]
mejja has joined #lisp
pierpal has joined #lisp
nicksmaddog has quit [Quit: Leaving]
anamorphic has quit [Quit: anamorphic]
pierpal has quit [Ping timeout: 240 seconds]
<dim> Xach: FYI following-up on our chat about buildapp earlier, I did something very simple for pgloader, for testing: https://github.com/dimitri/pgloader/blob/master/src/save.lisp
anamorphic has joined #lisp
<dim> it seems to work ok for now
<dim> if I can get enough testing, it might replace the whole Makefile that I have now... well after adding a couple features (DYNSIZE comes to mind)
wheelsucker has quit [Quit: Client Quit]
<Xach> dim: cool! sorry that buildapp didn't always help but i understand
Yaargh has joined #lisp
pierpal has joined #lisp
yvy has quit [Read error: Connection reset by peer]
lavaflow has joined #lisp
<aeth> As far as northeast Lisp meetups go, the fairest thing to do might be to rotate cities along this line: https://upload.wikimedia.org/wikipedia/commons/7/70/Boswash.png
pierpal has quit [Ping timeout: 268 seconds]
robdog_ has joined #lisp
<jcowan> Agreed.
pierpal has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
<stylewarning> Any BABEL users? I'm curious how one might write strings to a stream that get encoded per an encoding like ASCII or UTF-8 without generating intermediate data.
pierpal has quit [Ping timeout: 268 seconds]
notzmv has joined #lisp
cmjones has quit [Quit: Lost terminal]
anunnaki has joined #lisp
Essadon has quit [Quit: Qutting]
varjag has quit [Quit: ERC (IRC client for Emacs 26.1)]
pierpal has joined #lisp
robdog_ has quit [Remote host closed the connection]
pierpal has quit [Read error: Connection reset by peer]
<White_Flame> stylewarning: I think flexi-streams will output without creating intermediate buffers, but that doesn't mean it won't cons at all
<stylewarning> I'm OK with some consing.
<stylewarning> Just not writing to a sequence, then doing something with that
shifty has quit [Ping timeout: 246 seconds]
<Xach> babel and flexi-streams are pretty slow and trivial-utf-8 is not slow.
<Xach> but they also do different things
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
anamorphic has quit [Quit: anamorphic]
pierpal has joined #lisp
anamorphic has joined #lisp
<anamorphic> fyi, there is a new common lisp meetup in austin, texas
sjl has joined #lisp
LiamH has quit [Quit: Leaving.]
esper0s has quit [Read error: No route to host]
sjl_ has quit [Ping timeout: 246 seconds]
pierpal has quit [Ping timeout: 245 seconds]
<Xach>
anunnaki is now known as cmjones
<White_Flame> Xach: it's also buffer-to-buffer
<White_Flame> ideally, the best performance route would be buffer-to-buffer with reused buffers, so it's not constantly consing
Kaisyu has joined #lisp
<White_Flame> oh, trivial-utf-8 does have write-utf-8-bytes that takes a string and an output stream, so it's not all just buffers
frodef has joined #lisp
rumbler31 has quit [Remote host closed the connection]
kooga has quit [Ping timeout: 260 seconds]
jochens has joined #lisp
kooga has joined #lisp
pierpal has joined #lisp
jochens has quit [Ping timeout: 260 seconds]
pierpal has quit [Ping timeout: 268 seconds]
ryan_vw has joined #lisp
Yaargh has quit [Quit: Going offline, see ya! (www.adiirc.com)]
resttime has joined #lisp
rpg has joined #lisp
pjb has quit [Ping timeout: 252 seconds]
robotoad has quit [Quit: robotoad]
rumbler31 has joined #lisp