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
<ebrasca> So 1 option it to left code and make new code better and other is make old code better but less code.
* Xach just got to use ldiff for real
<aeth> ebrasca: Why not both?
robotoad has quit [Quit: robotoad]
<aeth> ebrasca: When writing something new, you'll eventually have a realization that something old you wrote should be rewritten. At that point, do it.
<aeth> (As long as it's not a library that someone else is using. Then you're restricted because you can't break the API.)
mooshmoosh has joined #lisp
<pjb> elderK: instead of prefix symbols for different uses or protection leves, you can define different packages, for users, developers, etc.
<whartung> since I write code not for the sake of writing code, I tend to put time in new software to do new things than updating old software to do the same thing it always has done before. If I have to modify older software, then I would certainly consider incorporatng whatever I’ve learned since I wrote in to the new changes I’m making, if appropriate.
Bicyclidine is now known as Bike
<pjb> elderK: (defpackage "YOUR.IMPLEMENTATION" (:use "CL") (:intern "FOO" "BAR" "BAZ")) (defpackage "YOUR.API" (:use) (:import-from "YOUR.IMPLEMENTATION" "FOO" "BAR") (:export "FOO" "BAR")) (defpackage "YOUR.USER" (:use) (:import-from "YOUR.IMPLEMENTATION" "BAZ") (:export "BAZ"))
<pjb> So you can write your code in the package, YOUR.IMPLEMENTATION, and develoers can use YOUR.API:FOO and YOUR.API.BAR, while users would use YOUR.USER:BAZ.
<pjb> elderK: you would never export a %foo symbol: it would be for internals of internals.
Kundry_Wag has joined #lisp
<ebrasca> aeth: But it take time from writing new code. But yea I think I undestand.
Kundry_Wag has quit [Client Quit]
fikka has joined #lisp
<elderK> pjb: :P Damn, I'm using % as a marker to say "internal, but you can use it if you're doing something weird."
<elderK> Other than this, I think I'm starting to gain speed with CL. :)
bradfonseca has quit [Quit: Konversation terminated!]
jack_rabbit has joined #lisp
anamorphic has quit [Quit: anamorphic]
Demosthenex has quit [Ping timeout: 245 seconds]
Demosthenex has joined #lisp
<|3b|> elderK: yeah, that's how i interpret exported %foo
<|3b|> "this is dangerous, so make sure you know what you are doing if you call it, but it is exported so it is a supported API"
gxt has quit [Ping timeout: 250 seconds]
iAmDecim has quit [Ping timeout: 268 seconds]
robotoad has joined #lisp
<elderK> Is there any effective difference to like, adding something to a symbol's plist in the macro expander itself, to doing the same in the expansion in an eval-when (:compile-toplevel)?
<elderK> Assuming the expander itself doesn't use the thing I'm adding to the plist.
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
<Bike> macro forms might be expanded more than once, or at weird times
lnostdal has quit [Remote host closed the connection]
<elderK> Bike: By macro forms, do you mean that the macro expansion function might be invoked in weird times and stuff?
<elderK> Or do you mean the expansion it generates?
<Bike> the first
lnostdal has joined #lisp
<elderK> Ah, thanks :)
<Bike> like in an editor for example
<Bike> so usuallya void side effects in macroexpanders
<whartung> depends on the macro. Some macros may be part of a larger context that makes sense to capture context level state.
<whartung> contrived case (with-field-set ‘my-set (field ‘one) (field ‘two))
<Bike> what?
nirved has quit [Ping timeout: 252 seconds]
meepdeew has joined #lisp
<jcowan> The main thing is not to do anything in a macro (except for debugging etc.) that is not idempotent.
TMA has quit [Ping timeout: 264 seconds]
<whartung> well, in my field example, you could see the “my-set” field set could contain a list of fields that are defined within the scope of “with-field-set”, so you need a list, or vector, or something to capture them. field would be an example of a macro with a side effect.
<Bike> i don't see how i'm supposed to figure that, and it doesn't seem like a side effect
<whartung> but the field macro wouln’t make any sense outside of the with-field-set macro
<whartung> like jcowan said, macros should be idemptoent.
<whartung> but in the field case, it’s not.
<Bike> lexically binding a macro isn't a side effect
<whartung> it’s not a lexical bind in this contrived case
<Bike> i don't understand the contrivance.
<whartung> the entire “field set” is a contrived example (I have no code defining fields sets, I can’t expand on the detail as to what a field-set is, or does, or when you would use one, etc.)
rumbler31 has joined #lisp
<Bike> this is kind of an unhelpful example.
<whartung> it’s simply demonstrative of a rare case where you may have macros that work together.
<Bike> it's not, because the demonstration is not at all clear
<whartung> the “with-field-set” creates a context within which the “field” macro works at aiding in the defintion of the field set.
<Bike> so where's the side effect
<whartung> the side effect is how the individual “field” macros affect the context created by “with-field-set"
<Bike> at compile time?
<whartung> for example if you have 2 field macros, then the list of fields in the field-set will be 2 fields long. If you define 3, then it’s 3 fields long. That list is an attribute of the field-set that the field macro affects.
elfmacs has joined #lisp
jack_rabbit has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 250 seconds]
anewuser has joined #lisp
mooshmoosh has quit [Ping timeout: 246 seconds]
mooshmoosh has joined #lisp
<jcowan> whartung: Consider using symbol macros in that case.
orivej has joined #lisp
<no-defun-allowed> wait what i updated slime and it didn't need a restart?
Demosthenex has quit [Ping timeout: 268 seconds]
Demosthenex has joined #lisp
Necktwi has quit [Ping timeout: 268 seconds]
Necktwi has joined #lisp
fikka has joined #lisp
[X-Scale] has joined #lisp
igemnace has joined #lisp
X-Scale has quit [Ping timeout: 268 seconds]
[X-Scale] is now known as X-Scale
chens has joined #lisp
Demosthenex has quit [Ping timeout: 268 seconds]
<dlowe> I'm trying mcclim for the first time, and I type in the first example in the manual (sbcl/linux x86-64)
<dlowe> Unhandled memory fault at #x0 (oh noes)
<dlowe> But! Use the SKIP-REDISPLAY restart and it works fine.
Demosthenex has joined #lisp
<dlowe> the other restarts just bring me back to the condition
Necktwi has quit [Quit: leaving]
<dlowe> It is not filling me with confidence
Bronsa` has quit [Ping timeout: 252 seconds]
krwq has joined #lisp
* dlowe tries updating sbcl to latest.
Necktwi has joined #lisp
permagreen has joined #lisp
orivej has quit [Ping timeout: 268 seconds]
nicksmaddog has joined #lisp
<dlowe> Okay, updating sbcl to latest fixed it. *sigh*
nicksmaddog has quit [Quit: Leaving]
Necktwi has quit [Ping timeout: 268 seconds]
mooshmoosh has quit [Read error: Connection reset by peer]
Necktwi has joined #lisp
mooshmoosh has joined #lisp
lmy9900_ has joined #lisp
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
mooshmoosh has quit [Ping timeout: 250 seconds]
lmy9900_ has joined #lisp
thodg has joined #lisp
lmy9900 has quit [Ping timeout: 268 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 246 seconds]
lmy990___ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
mejja has quit [Remote host closed the connection]
lmy9900 has joined #lisp
lmy990___ has quit [Ping timeout: 246 seconds]
rpg has joined #lisp
lmy9900_ has joined #lisp
lmy9900__ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
rpg has quit [Client Quit]
dddddd has quit [Remote host closed the connection]
lmy9900_ has quit [Ping timeout: 246 seconds]
<elderK> Man, anyone here available for brainstorming? :)
graphene has quit [Remote host closed the connection]
lmy9900 has joined #lisp
graphene has joined #lisp
lmy9900__ has quit [Ping timeout: 246 seconds]
chens has quit [Remote host closed the connection]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 246 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
<pillton> Just ask your question. Questions about future questions are .... questionable.
<loke`> If I were to ask a whether I can ask a question about asking questions in the possible future, would I be asking too much?
lmy9900_ has quit [Ping timeout: 246 seconds]
<pillton> I haven't had enough coffee for meta-questions.
<elderK> pillton: It's not that I really have a concrete question, it's that I want to brainstorm with someone more experienced than I am :D
<pillton> elderK: Google image search "rubber duck" and try it first.
<pillton> Or is it yellow duck.
<loke`> elderK: If you want to lure someone into a discussion like that, it's better to ask a question than to request people to allocate personal time for something which they don't even know the topic of. :-)
<elderK> :P Thanks a lot, pillton :P
<elderK> And thank you, loke`
equwal has joined #lisp
chens has joined #lisp
equwal has quit [Ping timeout: 250 seconds]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
<aeth> loke`: but I thought with #lisp we didn't have to request allocation?
<loke`> aeth: Correct.
<loke`> aeth: And that's what pillton suggested, wasn't it? To simply ask and not ask permission to ask
Lycurgus has joined #lisp
lmy9900 has joined #lisp
Jesin has joined #lisp
elfmacs has quit [Ping timeout: 268 seconds]
Jesin has quit [Remote host closed the connection]
Necktwi has quit [Quit: leaving]
Necktwi has joined #lisp
kqr has joined #lisp
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 268 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
rumbler31 has quit [Remote host closed the connection]
nika has joined #lisp
wigust has quit [Ping timeout: 252 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 268 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 246 seconds]
Jesin has joined #lisp
lmy9900_ has joined #lisp
meepdeew has quit [Remote host closed the connection]
mooshmoosh has joined #lisp
lmy9900 has quit [Ping timeout: 268 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
orivej has joined #lisp
lmy9900_ has joined #lisp
shka_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900 has joined #lisp
SaganMan has joined #lisp
lmy990___ has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
lmy9900__ has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
krwq has quit [Remote host closed the connection]
lmy9900 has joined #lisp
lmy990___ has quit [Ping timeout: 268 seconds]
lmy9900__ has quit [Ping timeout: 246 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900__ has joined #lisp
sonologico has joined #lisp
nikka has joined #lisp
Inline has quit [Quit: Leaving]
lmy9900_ has quit [Ping timeout: 250 seconds]
nika has quit [Ping timeout: 250 seconds]
nikka has quit [Ping timeout: 246 seconds]
lmy9900 has joined #lisp
lmy990___ has joined #lisp
lmy9900__ has quit [Ping timeout: 268 seconds]
lmy9900__ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
nikka has joined #lisp
quazimodo has quit [Ping timeout: 246 seconds]
lmy990___ has quit [Ping timeout: 250 seconds]
lmy9900 has joined #lisp
lmy9900_ has joined #lisp
lmy9900__ has quit [Ping timeout: 250 seconds]
lmy9900__ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900 has joined #lisp
pjb has quit [Ping timeout: 252 seconds]
lmy9900_ has quit [Ping timeout: 246 seconds]
lmy9900__ has quit [Ping timeout: 246 seconds]
nikos has joined #lisp
nikos is now known as Guest58038
nikka has quit [Ping timeout: 268 seconds]
lmy9900_ has joined #lisp
<fiddlerwoaroof> elderK: as a general rule you ask your question and if anyone can think of anything to say you might get a flameware out of it
<fiddlerwoaroof> ;)
lmy9900 has quit [Ping timeout: 246 seconds]
<aeth> fiddlerwoaroof: Everyone knows that the only valid programming style is my style and the only valuable problems to solve are the problems I find interesting!
<aeth> fiddlerwoaroof: Also, the only editor one should use is the editor I use (well, at least the Lisp community doesn't have a debate there)
<fiddlerwoaroof> aeth: I assume you agree with all my opinions then
<fiddlerwoaroof> because I think the same thing
lmy9900 has joined #lisp
vlatkoB has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
lmy9900_ has joined #lisp
chens has quit [Read error: Connection reset by peer]
chens has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
lmy9900 has joined #lisp
<fiddlerwoaroof> aeth: As far as editors go, I assume you use slimv or maybe atom-slime?
<aeth> fiddlerwoaroof: I thought Microsoft VS Code was the only way to write CL?
chens has quit [Ping timeout: 246 seconds]
lmy9900_ has quit [Ping timeout: 268 seconds]
lmy9900__ has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
<no-defun-allowed> ed
<no-defun-allowed> that is all
<no-defun-allowed> (lol our computering teacher told the class to install vs code today)
<fiddlerwoaroof> I use VS Code almost exclusively for JS because I haven't been able to find a good emacs setup for react that works with aggressive-indent-mode
<fiddlerwoaroof> (the automatic indentation is always a bit wrong)
lmy9900 has joined #lisp
<aeth> You can't mention ed without mentiong that ed is the standard text editor.
panji has joined #lisp
solyd has joined #lisp
lmy9900__ has quit [Ping timeout: 268 seconds]
<elderK> fiddlerwoaroof: :P Quite right :P
<elderK> fiddlerwoaroof: Thing is, well, iono. I wish I had someone to talk about the idea with. I know what I want to do, hell, I even know the expansion I want. But every way I do it feels nasty in some way.
<elderK> :P I'm surprised Alexandria doesn't a have function that like, creates a lot with N of whatever you specify.
<aeth> *mentioning... for some reason my n key hasn't registered all of the n's today. Not reason why an i also got dropped
graphene has quit [Remote host closed the connection]
<aeth> s/Not/No/
lmy9900_ has joined #lisp
graphene has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lvmbdv has joined #lisp
lmy9900 has joined #lisp
chens has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
<LdBeth> hello all
<beach> Good morning everyone!
<beach> Hello LdBeth.
hiroaki has joined #lisp
<makomo> morning
elfmacs has joined #lisp
angavrilov has joined #lisp
<elderK> Greeting LdBeth, beach and makomo :)
slyrus has quit [Ping timeout: 250 seconds]
slyrus1 is now known as slyrus
esrse has joined #lisp
brettgilio has joined #lisp
slyrus1 has joined #lisp
razzy has quit [Ping timeout: 250 seconds]
brettgilio has quit [Remote host closed the connection]
lmy9900 has quit [Ping timeout: 268 seconds]
lmy990___ has joined #lisp
lmy9900 has joined #lisp
JohnMS_WORK has joined #lisp
lmy990___ has quit [Ping timeout: 250 seconds]
lmy9900_ has joined #lisp
lmy9900__ has joined #lisp
nikka has joined #lisp
robotoad has quit [Quit: robotoad]
lmy9900 has quit [Ping timeout: 268 seconds]
lmy990___ has joined #lisp
robotoad has joined #lisp
lmy9900_ has quit [Ping timeout: 246 seconds]
robotoad has quit [Client Quit]
Guest58038 has quit [Ping timeout: 268 seconds]
lmy9900 has joined #lisp
lmy9900__ has quit [Ping timeout: 246 seconds]
lmy9900_ has joined #lisp
lmy990___ has quit [Ping timeout: 246 seconds]
shka_ has quit [Ping timeout: 250 seconds]
frgo has joined #lisp
lmy9900__ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900_ has quit [Ping timeout: 246 seconds]
frgo has quit [Ping timeout: 268 seconds]
kajo has quit [Ping timeout: 260 seconds]
<LdBeth> What's the (probably terminal) setting to let lisp eval a form immediately after parenthesis pair up without send return?
dale has quit [Quit: dale]
<pillton> I think you need to use read-preserving-whitespace.
jcowan has quit [Quit: Connection closed for inactivity]
mooshmoosh has quit [Ping timeout: 250 seconds]
lmy9900__ has quit [Ping timeout: 246 seconds]
shrdlu68 has joined #lisp
mooshmoosh has joined #lisp
lmy99____ has joined #lisp
sauvin has joined #lisp
frgo has joined #lisp
lmy9900 has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
lmy99____ has quit [Ping timeout: 246 seconds]
Lycurgus has quit [Quit: Exeunt]
<pillton> I think you would have to use read-preserving-whitespace and a terminal setting. See chapter 17.3 of The GNU C Library.
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900__ has joined #lisp
lmy9900 has joined #lisp
lmy9900__ has quit [Ping timeout: 268 seconds]
mooshmoosh has quit [Ping timeout: 268 seconds]
<LdBeth> so it's stty
mooshmoosh has joined #lisp
lmy9900_ has joined #lisp
heisig has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
mooshmoosh has quit [Quit: Quit]
lmy990___ has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
panji has left #lisp [#lisp]
lmy9900_ has joined #lisp
lmy990___ has quit [Ping timeout: 246 seconds]
lmy990___ has joined #lisp
lmy99____ has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
Zaab1t has joined #lisp
lmy990___ has quit [Ping timeout: 250 seconds]
frgo has quit [Read error: Connection reset by peer]
frgo_ has joined #lisp
frgo_ has quit [Remote host closed the connection]
<shka__> good morning
<beach> Hello shka__.
lmy9900 has joined #lisp
lmy99____ has quit [Ping timeout: 246 seconds]
chens has quit [Read error: Connection reset by peer]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 268 seconds]
lmy9900_ has quit [Ping timeout: 250 seconds]
graphene has quit [Remote host closed the connection]
lmy99____ has joined #lisp
graphene has joined #lisp
lmy9900 has joined #lisp
lmy99____ has quit [Ping timeout: 268 seconds]
eagleflo has quit [Ping timeout: 252 seconds]
lmy9900_ has joined #lisp
eagleflo has joined #lisp
lmy9900__ has joined #lisp
varjag has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
lmy9900__ has quit [Ping timeout: 246 seconds]
lmy9900_ has joined #lisp
solyd has quit [Remote host closed the connection]
lmy9900 has quit [Ping timeout: 268 seconds]
lmy9900 has joined #lisp
<no-defun-allowed> LdBeth: i think you'd want to put it into raw mode
<no-defun-allowed> no! not that
lmy9900_ has quit [Ping timeout: 268 seconds]
<no-defun-allowed> dunno sorry
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 268 seconds]
razzy has joined #lisp
frodef has joined #lisp
jochens has joined #lisp
lmy9900__ has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
lmy9900_ has joined #lisp
lmy9900__ has quit [Ping timeout: 250 seconds]
Necktwi has quit [Quit: leaving]
yvy has joined #lisp
Necktwi has joined #lisp
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 246 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
brettgilio has joined #lisp
<brettgilio> Hi all.
lmy9900 has joined #lisp
<elderK> Hey brettgilio
<brettgilio> elderK: How are you?
<elderK> Frustrated but otherwise fine.
<brettgilio> elderK: Frustrated by the code, or by life? Or both ;)
<elderK> Mostly by code. Perhaps it is my inexperience, I'm not sure.
<shka__> elderK: what is wrong?
<brettgilio> elderK: What is going on?
lmy9900_ has quit [Ping timeout: 246 seconds]
<brettgilio> I'm mostly a schemer, but I wouldn't mind taking a look.
<elderK> I've been working on a system that'll allow me to do, like, the kind of work I wanna do.
<elderK> I've been working on "binary structures" for most of the day today. It winds up being a much more uh, detailed, problem than it first appears. Taking a peek at other such systems, many sidestep some tough stuff.
fikka has quit [Ping timeout: 268 seconds]
<elderK> Like, not allowing a structure "slot" to be an array. (binary-types)
<elderK> Or doing most of their stuff by way of type info at runtime, rather than actually generating efficient "readers" with the important stuff baked i n
lmy9900_ has joined #lisp
<elderK> Of course, you also want to be able to have structures in structures, or arrays of structures in structures :P
<elderK> And be able to correctly parse them. Conceptually, it winds up pretty straight forward. But, I have not yet been able to implement it in a way I feel happy with.
<shka__> well, i think that you are doing it wrong ;-)
<elderK> It all feels nasty :(
<elderK> shka__: Why is that?
<brettgilio> elderK: Mind sharing a paste of the code?
<shka__> elderK: can you show your code, please?
<brettgilio> Don't bother making it look nice. Just share.
<brettgilio> The dirtier the better.
<elderK> I erased what (little) I wrote for define-binary-structure. Instead, I just wound up documenting the core ideas.
<elderK> Like, what generics I need, the general stuff I have to do, etc.
<elderK> What I want to achieve.
<jackdaniel> actually no, minimal cases which illustrate the problem which are well formated increase likehood of someone looking at them
<elderK> So that tomorrow, maybe I'll have a better chance.
<jackdaniel> brettgilio: also it is the minimum level of politeness to prepare clean example if you request help/review
<brettgilio> jackdaniel: I was trying to be approachable.
lmy9900 has quit [Ping timeout: 268 seconds]
<elderK> brettgilio: I appreciate that :) THank you
<jackdaniel> yes, but doing that lowers overall standard requirements on the channel
<jackdaniel> and people who count on approachable people will lose big because non-approachable (yet kind) experts won't bother to look at that
<shka__> elderK: i think that metaclasses is the way to go here
<brettgilio> The gate keeping is strong hre.
<brettgilio> I apologize, I guess.
fikka has joined #lisp
<jackdaniel> no need to apologise, that was general remark
lmy9900 has joined #lisp
<_death> elderK: have you read Practical Common Lisp
<elderK> Yes...
lmy9900_ has quit [Ping timeout: 240 seconds]
<elderK> I have seen and studied his "binary type" thing, too.
<jackdaniel> (and I understand your point of view - it is very kind one, hard to criticize it, I've just provided argumentation, that "dirtier the better" may wrong headed if you think about consequences)
<elderK> I have been studying pretty hard, tbh. Not just books, but also other systems.
<jackdaniel> approach may be wrong*
nirved has joined #lisp
<brettgilio> jackdaniel: Understood. Appreciate it.
beach has quit [Ping timeout: 252 seconds]
lmy9900_ has joined #lisp
<elderK> Well, I'd like to discuss the design as it were, but I'd prefer to do that in private with someone. I came here earlier hoping to chat with someone about it all but I was shot down for it.
<elderK> Because you're right, it may be a design issue more than code.
<_death> elderK: the issues you talk about are both about design and implementation.. in this case, I suggest you figure out the right syntax describing the binary structures, sketching a simple implementation and leave the efficiency issues for later
lmy9900 has quit [Ping timeout: 250 seconds]
<elderK> _death: I know /exactly/ what I want to generate. That hasn't been the problem. The problem has simply been that each implementation I've written to do what I want to do, feels horrible :P So, I have cycled over and over trying to do it differently, do it better.
<elderK> I'm happy with the simpler parts of my system so far. Just, structures, atm are the interesting thing. Mostly because I want to allow stuff as mentioned earlier.
<brettgilio> I'm off to bed for now. Goodnight elderK jackdaniel .
<elderK> Goodnight brettgilio. :)
<_death> well, I suggest you put your code in a repository and ask questions here..
lmy9900 has joined #lisp
beach has joined #lisp
<elderK> _death: I have been. And for the most part, everyone here has been extremely useful. I appreciate it.
<elderK> :) Ah well, tomorrow's another day. I'll give it another crack tomorrow :)
lmy9900_ has quit [Ping timeout: 268 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
lmy990___ has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
robdog_ has joined #lisp
lmy9900_ has joined #lisp
lmy990___ has quit [Ping timeout: 268 seconds]
lmy9900 has joined #lisp
rozenglass has quit [Remote host closed the connection]
lmy9900__ has joined #lisp
<fiddlerwoaroof> elderK: fwiw, if you already know what the generated code should look like, you should build up your higher-level interface incrementally
lmy9900_ has quit [Ping timeout: 244 seconds]
lmy9900 has quit [Ping timeout: 250 seconds]
<jackdaniel> brettgilio: 'night
lmy9900 has joined #lisp
lmy9900__ has quit [Ping timeout: 268 seconds]
lmy9900_ has joined #lisp
yvy has quit [Ping timeout: 240 seconds]
lmy9900 has quit [Ping timeout: 250 seconds]
lmy9900 has joined #lisp
lmy9900__ has joined #lisp
lmy990___ has joined #lisp
lmy9900_ has quit [Ping timeout: 268 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 250 seconds]
lmy9900__ has quit [Ping timeout: 268 seconds]
lmy990___ has quit [Ping timeout: 250 seconds]
lmy9900_ has quit [Ping timeout: 246 seconds]
lmy9900_ has joined #lisp
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
jellopudding has joined #lisp
jellopudding has quit [Client Quit]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
fikka has quit [Ping timeout: 250 seconds]
lmy9900__ has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
dddddd has joined #lisp
lmy9900 has joined #lisp
lmy9900__ has quit [Ping timeout: 268 seconds]
elfmacs has quit [Ping timeout: 260 seconds]
lmy990___ has joined #lisp
Zaabtop has joined #lisp
lmy9900 has quit [Ping timeout: 268 seconds]
Zaab1t has quit [Ping timeout: 268 seconds]
Zaabtop is now known as Zaab1t
fikka has joined #lisp
lmy9900 has joined #lisp
lmy990___ has quit [Ping timeout: 250 seconds]
Zaab1t has quit [Ping timeout: 268 seconds]
lmy9900__ has joined #lisp
lmy9900 has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 240 seconds]
hhdave has joined #lisp
lmy9900 has joined #lisp
nikos_ has joined #lisp
lmy9900__ has quit [Ping timeout: 268 seconds]
lmy9900_ has joined #lisp
nikka has quit [Ping timeout: 268 seconds]
lmy9900 has quit [Ping timeout: 246 seconds]
lmy9900 has joined #lisp
lmy9900_ has quit [Ping timeout: 250 seconds]
lmy9900_ has joined #lisp
lmy9900 has quit [Ping timeout: 246 seconds]
Necktwi has quit [Quit: leaving]
lmy9900 has joined #lisp
SaganMan has quit [Ping timeout: 250 seconds]
lmy9900 has quit [Client Quit]
lmy9900_ has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
esrse has quit [Ping timeout: 268 seconds]
frgo has joined #lisp
fikka has quit [Ping timeout: 250 seconds]
Zaab1t has joined #lisp
kajo has joined #lisp
m00natic has joined #lisp
jmercouris has joined #lisp
fikka has joined #lisp
zooey has quit [Ping timeout: 256 seconds]
zooey has joined #lisp
kajo has quit [Ping timeout: 252 seconds]
kajo has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
frgo has quit [Remote host closed the connection]
Selwyn has joined #lisp
confusedwanderer has joined #lisp
<Selwyn> x
jcowan has joined #lisp
elfmacs has joined #lisp
fikka has quit [Ping timeout: 250 seconds]
anewuser has quit [Quit: anewuser]
lmy9900 has joined #lisp
<jmercouris> is there a lib or a hashmap that allows for my own comparator?
<jmercouris> eg. instead of make-hash-table only allowing eql equal and equalp, I could pass my-special-equal, that compares the two objects
Zaab1t has quit [Quit: bye bye friends]
lmy9900 has quit [Client Quit]
robdog_ has quit [Remote host closed the connection]
<shka__> jmercouris: well, there is trivial-hashtable that allows you to use implementation hashtable with your own comparator function
<jmercouris> shka__: that sounds useful, thank you
<jmercouris> I'll be sure to take a looksy
<shka__> there are also libs that implement dictionaries from scratch
lmy9900 has joined #lisp
<shka__> but usually sbcl hashtable will be faster if you care about that
<shrdlu68> SBCL
<shka__> so trivial-hashtable is probabbly way to go
xkapastel has joined #lisp
<shrdlu68> Oops
<shka__> shrdlu68: it's all right
<shka__> :-)
<jmercouris> I prefer implementation independent
<shka__> trivial-hashtable fixes that
<shka__> it is compability layer
<ogamita> jmercouris: you must provide both a hash function and a comparator.
<shka__> i have my own library called cl-data-structures with HAMT implementation so you can also use that
<jmercouris> ok, all sounds good to me
gypsydave5 has joined #lisp
<gypsydave5> Hi - I was wondering if I could get some help using ASDF for the first time?
<shka__> gypsydave5: certainly
<gypsydave5> I'm trying to load the tests of the parenscript project
<gypsydave5> (asdf:load "parenscript") works just fine
fikka has joined #lisp
<gypsydave5> but when I try (asdf:load "parenscript.tests") it can't find the component
<gypsydave5> here's the project if that's any help: https://gitlab.common-lisp.net/parenscript/parenscript
<gypsydave5> I don't see what I'm doing wrong that's the difference between the two commands - I've tried a few variations on the 'parenscript.tests' name - is there some subsystem syntax or detail that I'm missing)
<thodg> gypsydave5: try to load parenscript.tests.asd
<thodg> and then try again
gxt has joined #lisp
<gypsydave5> so (asdf:load "parenscript.tests.asd")
varjag has quit [Read error: Connection reset by peer]
<gypsydave5> sorry - I should have said - I've been using (asdf:load-system ...) not (asdf:load ...)
varjag has joined #lisp
<gypsydave5> (asdf:load-system "parenscript.tests.asd") also came up 'not found'
<thodg> gypsydave5: nope, (load ".asd")
<thodg> with the right path
<thodg> then it should find the system defined there
<thodg> for you to asdf:load-system
<gypsydave5> sure
<gypsydave5> So (load "parenscript.tests.asd") comes up with a compiled program error, illegal function call
<jackdaniel> (asdf:load-asd "parenscript.asd") ; to be ASDF3-conforming (asdf since version 3 says, that it is best to leave (in-package asdf-user) at the beginning, so load won't do)
<jackdaniel> that it is best to not put it there*
<jackdaniel> I personally always put (in-package asdf-user) to allow cl:load, but not all developers do that
<thodg> i found most code defines a system package using asdf
<gypsydave5> so I just changed package to asdf, went with load again and (behold) it worked
<jackdaniel> yes, asdf is used by majority of FOSS developers
Bike is now known as Bicyclidine
<gypsydave5> I guess that gets me out of the gates :D
<jackdaniel> that confirms, that this "asd" file doesn't have (in-package asdf) or (in-package asdf-user) at the top
<jackdaniel> gypsydave5: correct way of loading it would be (asdf:load-asd "file.asd") without changing package in your repl
<jackdaniel> in principle asdf may introduce its own reader at some point and load simply won't cut it (even from asdf package)
asymptotically2 has joined #lisp
<gypsydave5> OK - I get that. I'll stick that in my notes. Thanks jackdaniel
<jackdaniel> I wouldn't be very suprised, if one day defsystem will start to expand to (progn (unless *load-asd* (error "boo")) (do-defsystem …)) ;-)
gxt has quit [Quit: WeeChat 2.3]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
varjag has quit [Read error: Connection reset by peer]
<gypsydave5> jackdaniel: just wondering why the first system load worked - (asdf:load-system "parenscript") - and the second didn't. I can't see what the significant difference is between the two.
varjag has joined #lisp
<jackdaniel> "parenscript" is a system name
<jackdaniel> in second case you have given a file name "parenscript.tests.asd"
<jackdaniel> also these are completely different operations
<jackdaniel> load-asd loads only system definition (it doesn't load the code!)
<jackdaniel> while load-system loads the code based on *known* system definition
<gypsydave5> Ahhhhh
varjag has quit [Client Quit]
<gypsydave5> So ASDF already _knew_ about the parenscript system, but not about the parenscript.tests system
<thodg> gypsydave5: yes for some strange reason asdf is wrongly configured
<thodg> it should find and load the test asd
<gypsydave5> OK - I'm clear now: first load-asd, then load-system.
<thodg> truth is parenscript should be patched
kajo has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
<jackdaniel> gypsydave5: does (asdf:load-system 'parenscript.test) work though?
<jackdaniel> I think you might have added unnecessary .asd postfix there
<gypsydave5> jackdaniel: it didn't last time I tried - let me have another go
<jackdaniel> thodg: why should it be patched? parenscript.test is defined in its own file parenscript.test.asd, so it conforms to asdf requirements
<jackdaniel> and it loaded just fine here
<gypsydave5> jackdaniel: just ran (asdf:load-system 'parenscript.test) on a fresh SBCL
<jackdaniel> I did, and it works
<gypsydave5> and I got a Component :EOS not found, required by ... error
<jackdaniel> ah, then you don't have one of the system dependencies
<jackdaniel> try (ql:quickload 'parenscript.test) ; (if you have QL) - that will fetch dependencies for you
<gypsydave5> Nice
<thodg> tests.
<gypsydave5> didn't realize I could use ql to bring in the tests
<jackdaniel> "parenscript.test" depends on systems "parenscript", "eos" and "cl-js"
<gypsydave5> yes, that worked just fine
<jackdaniel> :-)
* jackdaniel fades away (work work)
<gypsydave5> (and it's test (singular) in QL... because... reasons :D)
<thodg> are there lisp events in paris ?
<gypsydave5> OK - I am now less stupid than 20 minutes ago - success. Thanks jackdaniel and thodg!
<thodg> cheers gypsydave5
<jackdaniel> don't confuse stupidity with lack of knowledge (about some particular behavior)
<jackdaniel> one doesn't imply the other one (in any order)
<thodg> gaining motion allright
fikka has quit [Ping timeout: 268 seconds]
<gypsydave5> jackdaniel: Fair correction! I'm definitely less _ignorant_ about ASDF now!
hypnon has left #lisp [#lisp]
gxt has joined #lisp
bitmapper has joined #lisp
troydm has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
TMA has joined #lisp
troydm has joined #lisp
fikka has quit [Ping timeout: 250 seconds]
fikka has joined #lisp
ggole has joined #lisp
jkordani_ has quit [Ping timeout: 245 seconds]
steiner has joined #lisp
nicksmaddog has joined #lisp
shifty has quit [Ping timeout: 250 seconds]
Bike has joined #lisp
asymptotically2 has quit [Quit: Leaving]
kjeldahl has quit [*.net *.split]
pillton has quit [*.net *.split]
fikka has quit [Ping timeout: 268 seconds]
nicksmaddog has quit [Ping timeout: 268 seconds]
astronavt has joined #lisp
jochens has quit [Remote host closed the connection]
astronavt has quit [Client Quit]
jochens has joined #lisp
m00natic has quit [Ping timeout: 250 seconds]
varjag has joined #lisp
warweasle has joined #lisp
thodg has quit [Ping timeout: 250 seconds]
fikka has joined #lisp
Essadon has joined #lisp
thodg has joined #lisp
anamorphic has joined #lisp
Demosthenex has quit [Ping timeout: 268 seconds]
elfmacs has quit [Ping timeout: 268 seconds]
ravndal has joined #lisp
FreeBirdLjj has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
Zaab1t has joined #lisp
jochens has quit [Ping timeout: 250 seconds]
ravndal has quit [Ping timeout: 250 seconds]
steiner has quit [Remote host closed the connection]
ravndal has joined #lisp
beach has quit [Ping timeout: 252 seconds]
sjl_ has joined #lisp
ravndal has quit [Ping timeout: 246 seconds]
Inline has joined #lisp
aindilis has quit [Remote host closed the connection]
razzy has quit [Ping timeout: 246 seconds]
aindilis has joined #lisp
shrdlu68 has quit [Ping timeout: 268 seconds]
libre-man has quit [Ping timeout: 246 seconds]
SaganMan has joined #lisp
kajo has joined #lisp
nika has joined #lisp
igemnace has quit [Ping timeout: 268 seconds]
jochens has joined #lisp
nikos_ has quit [Ping timeout: 250 seconds]
beach has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
rippa has joined #lisp
libre-man has joined #lisp
jkordani has joined #lisp
marvin2 has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
Lycurgus has joined #lisp
jochens has quit [Ping timeout: 268 seconds]
<shka__> jmercouris: hey, i pointed you to wrong library!
jcowan has quit [Quit: Connection closed for inactivity]
robotoad has joined #lisp
<jmercouris> shka__: it's okay, I hadn't checked it out yet :D
<jmercouris> I've been still busy with something else
<jmercouris> thank you for the correction though!
heisig has quit [Quit: Leaving]
elderK has quit [Ping timeout: 246 seconds]
frgo has joined #lisp
bitmapper has quit [Ping timeout: 250 seconds]
frgo has quit [Remote host closed the connection]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
astronavt has joined #lisp
frgo has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
lmy9900 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nika has quit [Quit: Konversation terminated!]
easye has quit [Remote host closed the connection]
jochens has joined #lisp
scymtym has quit [Ping timeout: 268 seconds]
Lycurgus has quit [Ping timeout: 268 seconds]
razzy has joined #lisp
edgar-rft has quit [Quit: Leaving]
frodef has quit [Ping timeout: 246 seconds]
steiner has joined #lisp
robotoad has quit [Quit: robotoad]
robotoad has joined #lisp
scymtym has joined #lisp
marvin2 has quit [Ping timeout: 244 seconds]
eminhi has joined #lisp
Zaab1t has quit [Quit: bye bye friends]
shka_ has joined #lisp
kyby64 has joined #lisp
JohnMS_WORK has quit [Read error: Connection reset by peer]
kajo has quit [Ping timeout: 268 seconds]
moei has joined #lisp
Lycurgus has joined #lisp
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
ggole has quit [Quit: ggole]
Inline has quit [Read error: Connection reset by peer]
FreeBirdLjj has quit [Remote host closed the connection]
Inline has joined #lisp
LiamH has joined #lisp
lumm has joined #lisp
Inline has quit [Ping timeout: 264 seconds]
Inline has joined #lisp
Selwyn has quit [Ping timeout: 250 seconds]
Zaab1t has joined #lisp
gypsydave5 has quit [Ping timeout: 246 seconds]
hhdave has quit [Ping timeout: 268 seconds]
anamorphic has quit [Quit: anamorphic]
jcowan has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
marvin2 has joined #lisp
jochens has quit [Ping timeout: 250 seconds]
knicklux has joined #lisp
anamorphic has joined #lisp
Demosthenex has joined #lisp
jkordani_ has joined #lisp
kajo has joined #lisp
pjb has joined #lisp
frodef has joined #lisp
<rk[ghost]> anyone know how to set a favicon with Hunchentoot?
jkordani has quit [Ping timeout: 246 seconds]
<Xach> rk[ghost]: yes!
<pjb> rk[ghost]: same as with any other web site.
Demosthenex has quit [Ping timeout: 250 seconds]
<Xach> rk[ghost]: well, sort of. a favicon is just responding to a request for "GET /favicon.ico" So a handler that matches that will return the result that the browser displays.
<pjb> Add those head tags: <link rel="icon" href="/favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<pjb>
<rk[ghost]> ah, OK..
* rk[ghost] knows NOTHING about web
<rk[ghost]> and to be honestly, i don't really /want/ to know
fikka has quit [Ping timeout: 246 seconds]
<pjb> It's not necessarily /favicon.ico, it can be some other path.
<rk[ghost]> i try to know the least possbile.
Demosthenex has joined #lisp
<pjb> rk[ghost]: Everthing is at http://w3.org
<rk[ghost]> furthermore, i can use hunchentoot, but i don't fully get how it works.
<rk[ghost]> pjb: thanks much
<rk[ghost]> Xach: and to you, thaaankyou!
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
<rk[ghost]> also, someone mentioned that my text files are being given as octet stuff, so their browsers defaulting based on memetypes is trying to make 'em download
<rk[ghost]> which, mostly on their end as i see it, but.. if i have a file.. can i choose how it is served?
<rk[ghost]> i don't fully understand mimes and browsers, so my questiosn may be murky at best
<pjb> Yes, you should specify a "Content-Type: text/plain; charset=utf-8" or something like that.
<rk[ghost]> pjb: i appreciate you showing me that, because i would rather organize the location myself as, i have multiple pages that use the same base /var/www/
<rk[ghost]> pjb: how do i do that if i am just sharing via having the files in /var/www
<rk[ghost]> and linking to http://$IP/filename ?
<pjb> So searching for Content-Type and hunchentoot on google, and searching for Content-Type on w3.org, should give you all the info.
<rk[ghost]> right o
<rk[ghost]> i wish searching for $x on google was consistent though XD
<pjb> I used hunchentoot a long time ago, before it changed a lot…
<rk[ghost]> thanks much for the directives!
Demosthenex has quit [Ping timeout: 240 seconds]
<rk[ghost]> sorry that this isn't lisp specific, but since i changed the topic to www.. (XD) is there a suggest size for the favicon?
Demosthenex has joined #lisp
bsimjoo has joined #lisp
bsimjoo has quit [Client Quit]
fikka has joined #lisp
<tumdum> I followed instructions from https://lispmethods.com/libraries.html and got bobbio working, but when I try to do those steps for my own project something (most likely trivial that I fail to spot) fails: https://gist.github.com/tildecat/0ad15a773327946defedf62d7f85c1cf any ideas?
astronavt has quit [Ping timeout: 246 seconds]
graphene has quit [Remote host closed the connection]
<jackdaniel> tumdum: try (ql:register-local-systems) ; (it is enough to call it once)
Demosthenex has quit [Ping timeout: 268 seconds]
<jackdaniel> sorry, (ql:register-local-projects)
Necktwi has joined #lisp
graphene has joined #lisp
varjag has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
<jackdaniel> tumdum: ah, also another thing may be wrong. your symlink doesnt' seem to point to a directory, notice that /home/t/dev/euler vs /home/t/dev/bobbio/ (latter is a directory)
pbodev1 has joined #lisp
<jackdaniel> so you should `ln -s /home/t/dev/euler/` instead of `ln -s /home/t/dev/euler` (I think this may be important wrt symlink following)
<tumdum> jackdaniel: thanks, register-local-projets helped, I will also check that symlink
<jackdaniel> symlinks are nasty (especially if you try to depend on them with code which is meant to run on different implementations)
malice has joined #lisp
<tumdum> yeah, with fixed symlink there is no need for register-local-projects
<Xach> I don't think that matters.
<Xach> It is entirely related to the timestamp of the directory vs the timestamp of the index file.
<Xach> If the former is newer than the latter, it scans automatically. If not, it doesn't.
[X-Scale] has joined #lisp
X-Scale has quit [Ping timeout: 244 seconds]
[X-Scale] is now known as X-Scale
SaganMan has quit [Quit: WeeChat 1.6]
ym has quit [Remote host closed the connection]
Necktwi has quit [Quit: leaving]
Necktwi has joined #lisp
eminhi has quit [Ping timeout: 246 seconds]
eminhi has joined #lisp
Necktwi has quit [Quit: leaving]
Necktwi has joined #lisp
khisanth_ has quit [Ping timeout: 252 seconds]
neosloth has quit [Remote host closed the connection]
LdBeth has quit [Remote host closed the connection]
Manny8888 has quit [Remote host closed the connection]
Gnuxie[m] has quit [Read error: Connection reset by peer]
xylef has quit [Write error: Connection reset by peer]
sielicki has quit [Write error: Connection reset by peer]
irdr has quit [Max SendQ exceeded]
no-defun-allowed has quit [Read error: Connection reset by peer]
siraben has quit [Remote host closed the connection]
robdog_ has joined #lisp
<ebrasca> Hi
<makomo> \o
irdr has joined #lisp
fikka has joined #lisp
jmercouris has quit [Remote host closed the connection]
frgo has quit []
khisanth_ has joined #lisp
frgo has joined #lisp
Necktwi has quit [Quit: leaving]
Necktwi has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
Manny8888 has joined #lisp
razzy has quit [Ping timeout: 246 seconds]
Necktwi has quit [Client Quit]
jellopudding has joined #lisp
sauvin has quit [Read error: Connection reset by peer]
jello_pudding has quit [Ping timeout: 264 seconds]
eminhi has quit [Ping timeout: 268 seconds]
jello_ has joined #lisp
jellopudding has quit [Remote host closed the connection]
eminhi has joined #lisp
robdog_ has quit [Remote host closed the connection]
xylef has joined #lisp
no-defun-allowed has joined #lisp
siraben has joined #lisp
sielicki has joined #lisp
neosloth has joined #lisp
shka_ has quit [Ping timeout: 250 seconds]
sunset_NOVA has joined #lisp
anamorphic has quit [Quit: anamorphic]
Necktwi has joined #lisp
malice has quit [Ping timeout: 256 seconds]
anamorphic has joined #lisp
nika has joined #lisp
shifty has joined #lisp
kajo has quit [Ping timeout: 252 seconds]
robdog_ has joined #lisp
fikka has joined #lisp
robdog_ has quit [Remote host closed the connection]
nika has quit [Ping timeout: 246 seconds]
pfdietz has quit [Remote host closed the connection]
nika has joined #lisp
pfdietz has joined #lisp
kjeldahl has joined #lisp
Necktwi has quit [Quit: leaving]
fikka has quit [Ping timeout: 250 seconds]
sielicki has quit [Remote host closed the connection]
neosloth has quit [Remote host closed the connection]
Manny8888 has quit [Remote host closed the connection]
siraben has quit [Read error: Connection reset by peer]
no-defun-allowed has quit [Read error: Connection reset by peer]
xylef has quit [Remote host closed the connection]
irdr has quit [Max SendQ exceeded]
slaterr has joined #lisp
<slaterr> hi
<slaterr> anything similar to clojure's # macro in CL?
<slaterr> #(* 10 %) expands to (lambda (x) (* 10 x))
irdr has joined #lisp
<dlowe> there's a library called positional-lambda that is pretty nice
<dlowe> (plambda (* 10 :1))
<dlowe> you could make such a thing with reader macros
Necktwi has joined #lisp
<slaterr> is it possible to make it nestable?
<slaterr> (map #(map #(* 10 %) %) '((1 2) (3 4)))
<slaterr> is plambda nestable?
<dlowe> Yes, it's possible
<_death> the plain lambda is clearer, better leave this clojurism behind
Necktwi has quit [Client Quit]
<dlowe> I like plambda for short things :p
<slaterr> plain lambda is verbose and has redundant information
Zaab1t has quit [Ping timeout: 246 seconds]
kajo has joined #lisp
<slaterr> # is not nestable in clojure btw. but I want it to be nestable in CL
gxt has quit [Ping timeout: 250 seconds]
<dlowe> verbosity isn't considered necessarily bad in common lisp
Manny8888 has joined #lisp
<slaterr> it isn't good either if it adds no value
<dlowe> we're not running out of bytes any time soon
<slaterr> naming argument x above has no value, for example
<slaterr> it is just read noise
<dlowe> you named it that
<slaterr> do you know if plambda is nestable?
<dlowe> you could have named it widget-count or glitter-starlight-coeff
<dlowe> yes, it's nestable
<slaterr> using such a long name for a one-off function written in lambda form is not warranted
<_death> yes, better name it "%"
<dlowe> programs are written for humans to read, and incidentally for computers to execute
<slaterr> (map (lambda (widget-count) (* widget-count 10)) widget-counters)
<slaterr> you see any value there?
<confusedwanderer> slaterr: maybe you can steal some code from https://lispcookbook.github.io/cl-cookbook/cl21.html#shorter-lambda
<dlowe> no, but I wouldn't use a lambda there either
<dlowe> I can come up with terrible code too
<dlowe> and then say it proves I'm right
<slaterr> I can't think of an example where naming a single element would be necessary. if verbose name is warranted, list of those things already has such a name in plural form
<slaterr> confusedwanderer looks good
sunset_NOVA has quit [Quit: leaving]
quazimodo has joined #lisp
* ebrasca likes normal lambda.
* dlowe likes named top-level functions.
<dlowe> and loop
<dlowe> and partial application
<dlowe> (map (papply map (papply * 10)) '((1 2) (3 4))) has even less extra
<confusedwanderer> yeah, in this example partial application is great
<slaterr> yes it works well here. but it doesn't take much to make macro version nicer
<slaterr> #(- % 10)
xylef has joined #lisp
Gnuxie[m] has joined #lisp
no-defun-allowed has joined #lisp
siraben has joined #lisp
neosloth has joined #lisp
sielicki has joined #lisp
<pjb> You probably want ##lisp.
<dlowe> if you like line noise, I guess
<slaterr> what would you do there?
<dlowe> pjb: complaining about common lisp is still common lisp :D
<pjb> Talk about clojure, instead of CL.
<pjb>
<pjb>
<pjb>
<_death> I guess it's hard to unlearn clojure aesthetics because you consider it part of the same family.. but really, it's not idiomatic CL
<pjb>
<pjb>
<pjb>
<slaterr> pjb I am implementing clojure's # reader macro in CL. I don't know syntax of CL equivalents well
<pjb>
<pjb>
<slaterr> so I am just using #
<pjb>
<pjb>
<pjb>
<pjb>
<pjb>
<pjb>
<pjb>
<slaterr> you are typing empty lines
<pjb>
<pjb>
<pjb> map takes a type argument.
<pjb> clhs map
<pjb> I
<pjb> 'm not sure how.
<dlowe> True, and not necessarily relevant to a discussion of hypotheticals
<slaterr> agreed
<confusedwanderer> i think the freedom to change these things is part of what makes lisp fun. you shouldn't introduce notation like that in someone else's projects without asking, but for your stuff it's your choice
<dlowe> I assume map to stand in for any number of mapping things that takes a function and a sequence
<pjb> A lot of lisp code is packaged into libraries distributed thru quicklisp. A lot of problems with those libraries come from bad handling of reader macros in the source code of those libraries.
<no-defun-allowed> CL21 isn't standard Common Lisp.
<no-defun-allowed> Why is it even in the book?
pfdietz has quit [Remote host closed the connection]
<pjb> (second bad problem, is nickname collision! Fucking don't use short package names or nicknames!)
Necktwi has joined #lisp
<dlowe> CL21 is a CL library. *shrug*
<dlowe> what's not standard about it
fikka has joined #lisp
<stylewarning> Does ASDF allow exact versions to be specified? It seems to do >= matching.
<pjb> AFAIK, it doesn't.
lumm has quit [Ping timeout: 252 seconds]
lumm has joined #lisp
confusedwanderer has quit [Remote host closed the connection]
nikka has joined #lisp
thodg has quit [Ping timeout: 250 seconds]
<no-defun-allowed> I didn't name it anything.
nika has quit [Ping timeout: 250 seconds]
thodg has joined #lisp
<dlowe> It doesn't bother me when people want to tinker in weird ways with lisp syntax. I love it. Why program in lisp, otherwise? However, I am annoyed when a stylistic opinion is asserted forcefully as an obvious and irrefutable fact with which only a moron could disagree.
<pjb> Additions are possible. Changes are probably bad.
<dlowe> Could be! I support the experimentation.
gxt has joined #lisp
<drmeister> Hi - does anyone like programming in assembly language and want to contribute to an open source Common Lisp project?
<dlowe> It's a trap!
<drmeister> We need to implement an x86-64 APPLY function.
<dlowe> doesn't LLVM IR have something that will already work?
<drmeister> I'm pretty sure it's gotta be implemented in assembly language.
<drmeister> Nope.
orivej has quit [Ping timeout: 250 seconds]
<dlowe> So, APPLY with LLVM calling conventions?
<drmeister> LLVM can be used to create function invocations with a fixed number of arguments.
<slaterr> dlowe if you scroll up, it wasn't me who started challenging "stylistic opinions" of others. it was you and _death
<drmeister> But creating a call with variable number of arguments assembled from a fixed argument call where the last argument is either a Common Lisp list or a va_list (C++ ism).
<dlowe> slaterr: Yes, your irrefutable facts were challenged.
<sjl_> slaterr: #() already means something in Common Lisp. Changing it would be confusing, even if you managed to make it work. If you pick a different character, and use the named-readtables library to make sure not to pollute unsuspecting readtables, it should be possible to implement.
<slaterr> dlowe actually, yours were
Lycurgus has quit [Quit: Exeunt]
thodg has quit [Ping timeout: 264 seconds]
<dlowe> slaterr: that happens all the time and I don't get butthurt about it
<slaterr> sjl_ I know. the name of the read macro character is completely irrelevant
<dlowe> I just stated what I like, not that things were worthless or valueless
<sjl_> Well, not completely. If you try to name it ( you're going to have a bad time.
<slaterr> dlowe yeah? it seems like you did get butthurt, protecting 15 minutes after discussion ended
<sjl_> But if you just pick something else, e.g. λ, you should be fine.
rippa has quit [Ping timeout: 250 seconds]
<slaterr> sjl_ I mean it doesn't matter to me. I am fine using something other than #. redefining # would be bad, assuming it is even possible
<sjl_> (mapcar λ(+ (x %) (y %)) points) or something
<dlowe> slaterr: I wanted to make sure you were pushed back on a bit. Anyway, it might not have been about you.
jello_ is now known as jello_pudding
<_death> I guess every Lisper has this phase of experimentation and fascination with microsyntactic "optimizations" at some point.. then you grow up
<slaterr> dlowe, you should have pushed back when I shot down your silly widget-count example. but, because you didn't (and couldn't), we are still discussing this 45 minutes later
<dlowe> Yes, I should have.
<ebrasca> mmm I think whe need more 1 character functions names.
<dlowe> That's a lot of function names if you include emoji
<slaterr> so you think simple, one-off few characters anonymous functions should have very verbose names for their arguments? no wonder you like loop, you have no sense of style or aesthetics
yvy has joined #lisp
<dlowe> Guess not :D
<rk[ghost]> hmm, i am currently using CLL. my typical strategy for reloading my program is to (quit) and then (load "file") again. i am working on ways to modularize and load bits and have it do things from within modules.. however, is there a REPL command to "unload everything" (to prevent clobbering) so to avoid quitting and returning back to shell?
<dlowe> rk[ghost]: there is not, but you don't necessarily need to prevent clobbering
<dlowe> rk[ghost]: many times you can reload source code without even stopping execution of the program
<rk[ghost]> dlowe: i just don't want to remove extra variables in the debugging process. would be really annoying to be doing things and then find out it is because something old was still loaded in.
igemnace has joined #lisp
<rk[ghost]> i am trying to slowly migrate my program to use as many OTP principles
<_death> rk[ghost]: usually you evaluate definition by definition, not by loading files
<rk[ghost]> however, it is an interative process of refinement.
<dlowe> rk[ghost]: yeah, that does happen. The usual method of development is to use "system" files like asdf that can track what files have changed
<rk[ghost]> i see.. i will probably get there in time, but sometimes it is useful to know the hacky solutions XD
<dlowe> but you can also compile and load individual functions and variable declarations into your running image
nicksmaddog has joined #lisp
<_death> rk[ghost]: then you have a good idea what you just redefined and what is the current state of the system should be
<slaterr> dlowe this was forcefully asserting my stylistic opinion, just so you can tell the difference. as opposed to just explaining why I'd prefer clojure-like macro, when being told that I shouldn't
<dlowe> slaterr: I never said you shoudn't
<dlowe> er, shouldn't
<rk[ghost]> right but for instance what if the second run of a file doesn't have a defparameter *var*..
<slaterr> _death did. and then you pilled in
<rk[ghost]> in such case i wouldn't expect *var* to be visible anymore, but yet it should be, eh?
<rk[ghost]> err, my wording was really bad on that..
vlatkoB has quit [Remote host closed the connection]
<rk[ghost]> slowly i am attempting to have my modules have "upgrade" functions like in OTP.. i'll probably eventually try to migrate things to lisp-flavoured-erlang XD
<rk[ghost]> but then again, i don't suspect i'll dedicate that much time to it.
<rk[ghost]> plus, then i would have to migrate things like Hunchentoot, which i don't fully understand.
<rk[ghost]> anyhoot thanks for the potential "options"
<dlowe> slaterr: it can really suck to feel piled upon, but there's a lot of different opinions in the channel, and I was just saying how much I liked the (shorter) plambda
smazga has joined #lisp
<slaterr> dlowe yeah, one second you liked shorter plambda, then next second you recommended an even longer than necessary lambda variant. it seems you just like to argue for the sake of it
<brettgilio> Hey all
gigetoo has quit [Ping timeout: 252 seconds]
<rk[ghost]> ... not having luck with the favicon.. just aesthetics, so i guess i will just abandon it..
thodg has joined #lisp
gigetoo has joined #lisp
<dlowe> slaterr: I figured there was an understanding that these example bits of code were stand-ins for something potentially more complex, where a longer name would have value, contrary to your assertion that the specification of the argument was completely lacking in worth.
<dlowe> and I have seen a lot of complex code that used single letter a-z variable names and it was terrible
<slaterr> then your understanding was poor. and if function arguments warrants a verbose name then it shouldn't even be a lambda
<dlowe> that's a limited view of what lambdas are good for
<slaterr> a-z variable names are excellent in very short functions. your proposed variable name was several times longer than the useful characters in the body of a function
malice has joined #lisp
<slaterr> and you have to repeat variable name twice.. completely drowning the actual useful code in that snippet with unnecessarily long variable names.
<_death> right, there are many times where a lambda expression is stylistically suboptimal.. and using something like #(... % ...) only makes it more difficult to recognize
warweasle has quit [Quit: ok, gotta go.]
<slaterr> _death only if you are unfamiliar with the syntax. and the same argument can be used against any user-defined macro with non-standard naming convention and semantics
brettgilio has quit [Remote host closed the connection]
pfdietz has joined #lisp
robdog_ has joined #lisp
<_death> every abstraction has a cost, and such crutches (and clojure has more of them, unfortunately) add up.. they help keep the code short at the price of hiding more useful abstractions
<_death> so locally they seem nice (if you don't mind cryptic names like "%" or "->") and short, but overall they get you boilerplatish low-level code..
<slaterr> what more useful abstraction would you use here? we are just passing a 3 character function to map
<_death> slaterr: your example is a toy example, so your toy solution looks clever.. instead of trying to come up with something better for the toy example, I am just sharing my experience with such things
dale has quit [Quit: dale]
<slaterr> a toy example? so you never had to do some simple operation to a list of things? you never use map?
<_death> slaterr: so my experience tells me that a plain lambda there is OK.. and then when there's more code and it things get more complex, it's easier to see the patterns
<slaterr> once code gets complex enough lambda shouldn't even be used
<_death> right
<slaterr> so we agree that # is better at lambda's job, than lambda. creating simple, short functions on the fly
<_death> so instead of trying to optimize lambda syntax, keep it plain and optimize when it counts
<slaterr> I use lambda sufficiently often that I think it is worth optimizing in all cases
<pjb> slaterr: better use α-ω
<pfdietz> Don't know if this was mentioned: https://github.com/eschulte/curry-compose-reader-macros
Jesin has quit [Quit: Leaving]
<_death> slaterr: for reading, I do use pretty-lambda which substitutes the greek letter for the word
<slaterr> pfdietz that is nice. I'd argue even nicer if you are just using lambda or # to emulate partial application
<slaterr> is the use of { name for reader-macro problematic?
<dlowe> nope. it's free to use.
<dlowe> the main problem is that it's also popular
<dlowe> (though not as popular as [)
<pjb> slaterr: it's reserved for the user. So don't use it in libraries!
<pjb> []{}!? are reserved for the user.
Jesin has joined #lisp
<dlowe> well, no library should enable reader macros just by virtue of being loaded
angavrilov has quit [Remote host closed the connection]
<pjb> clhs 2.4.8
<slaterr> {+ 1} syntax for partial application comes very close to haskell's (+ 1). it also supports positional arguments, and function composition. a lot nicer and more powerful than #'s
<pjb> Well, it's #{ #} #[ #] #? and #! that are explicitely reserved to the user.
<slaterr> is that a popular package?
<slaterr> than clojure's #, even
<pjb> slaterr: playing with readtables breaks a lot of packages in quicklisp.
<p_l> slaterr: named-readtables got quite popular among readtable-manipulating libs, afaik
<slaterr> pjb enabling {} syntax in my own source file could break packages in quicklisp?
<p_l> slaterr: manipulating global readtable could
<pfdietz> Which is why one should not do that. :)
<p_l> named-readtables help with implementing it in a way that is nice to end user
<pjb> slaterr: only in end-user sources!
<pjb> slaterr: if you publish your sources (eg. to quicklisp), then yes, if you do it naively.
<pjb> slaterr: the point here is that LOAD specifies that the file is loaded in the context of a (let ((*readtable* *readtable*)) …)
<pjb> but that doesn't prevent the file being loaded to MUTATE the *readtable*!
<jcowan> smh mutability
<jcowan> the lesser curse of lisp
<jcowan> the greater curse is playing out right here
<pjb> Instead, you must SET the *readtable*. (eval-when (:compile-toplevel) (setf *readtable* *my-file-readtable*))
lumm has quit [Quit: lumm]
<pjb> And obviously, there are a lot of systems that don't do that :-(
<_death> and that is what named-readtable's in-readtable does
<pjb> Not all systems use it.
<_death> right.. but new code likely should
<pjb> asdf should issue a warning if *readtable* is mutated…
<pjb> But issues are not allowed on gitlab asdf.
<p_l> last time I looked, new code did tend to use named-readtable
lumm has joined #lisp
lumm has quit [Client Quit]
lumm has joined #lisp
<_death> well, the library linked by pfdietz does, so that's a good sign :)
emar has quit [Quit: WeeChat 2.3]
<pfdietz> Both LOAD and COMPILE-FILE bind both *PACKAGE* and *READTABLE* (to themselves) before processing the file, so changes to either during the load/compile do not escape.
<pfdietz> Changes as in changes to the variable, not changes to the package or to the readtable objects.
<pfdietz> Moral of the story: don't mutate readtables.
emar has joined #lisp
scymtym has quit [Ping timeout: 268 seconds]
<pjb> or the package!
<pjb> (defpackage "FOO" (:export "BAR")) (use-package "FOO" *package*) would be bad too…
<fiddlerwoaroof> An alternative to messing with the lambda syntax is to define higher order functions that combine other functions to produce the lambda you want
<_death> or a macro
<fiddlerwoaroof> So, (funcall (over '1+) '(2 3 4)) would produce '(3 4 5)
rumbler31 has joined #lisp
<_death> fiddlerwoaroof: this reminded me of this snippet https://gist.github.com/death/34d4bd499b323016fa65be5ba72fabc1
rumbler31 has quit [Remote host closed the connection]
nicksmaddog has quit [Quit: Leaving]
anamorphic has quit [Quit: anamorphic]
nikka has quit [Quit: Konversation terminated!]
<rk[ghost]> ha.. gee.. changed the .ico to a .png.. maybe ff doesn't support the x-icon type.. it just worked.. yaay:D
CrazyEddy has joined #lisp
hiroaki has quit [Ping timeout: 250 seconds]
arbv has quit [Ping timeout: 252 seconds]
arbv has joined #lisp
yvy has quit [Read error: Connection reset by peer]
mathrick has quit [Ping timeout: 264 seconds]
moei has quit [Quit: Leaving...]
scymtym has joined #lisp
igemnace has quit [Quit: WeeChat 2.3]
kyby64 has quit [Ping timeout: 246 seconds]
Bronsa` has joined #lisp
Elephant454 has joined #lisp
kooga has quit [Ping timeout: 260 seconds]
kooga has joined #lisp
jkordani has joined #lisp
LdBeth has joined #lisp
jkordani_ has quit [Ping timeout: 246 seconds]
kyby64 has joined #lisp
lumm has quit [Remote host closed the connection]
Bike has quit []
shifty has quit [Ping timeout: 252 seconds]
jmercouris has joined #lisp
<jmercouris> so in an ASDF file you can include a version
<jmercouris> is there any way to access that version after you've loaded the system?
anamorphic has joined #lisp
Jesin has quit [Quit: Leaving]
<jmercouris> I did see asdf:system-license etc, and it expects "object"
<jmercouris> looked at the source, not sure how to use it
Bronsa` has quit [Ping timeout: 252 seconds]
varjag has quit [Ping timeout: 268 seconds]
sjl_ has quit [Ping timeout: 268 seconds]
<jmercouris> no one has every had to use these functions?
<jmercouris> all I see is a very old/no longer valid stack overflow question
<fortitude> jmercouris: I suspect ASDF/COMPONENT:COMPONENT-VERSION might do the trick
<fortitude> since the system definition itself is considered a component
<jmercouris> but what is a "component"?
<fiddlerwoaroof> _death: yeah, I have a library that implements this pattern: https://github.com/fiddlerwoaroof/data-lens
<fiddlerwoaroof> jmercouris: it is a part of an ASDF system
<fiddlerwoaroof> :)
<jmercouris> let's say I've done (ql:quickload :some-library), how can I get the system-version loaded
<fortitude> ASDF defines systems as a tree of components; each component might be something more specific like a module or a file definition
<fortitude> my guess would be (asdf:component-version (asdf:find-system :some-library))
<jmercouris> fiddlerwoaroof: yeah, but I don't even know how to get an asdf system object :O
<jmercouris> fortitude: you are correct in your reasoning
<jmercouris> that worked
<fiddlerwoaroof> Ah, fortitude beat me to it :)
* fiddlerwoaroof never actually uses versions in my systems
<jmercouris> man that is such an obtuse way to get the version of a system
<jmercouris> I was hoping I could have typed (asdf:system-version :some-system)
<fiddlerwoaroof> you could define a method on component-version for keywords
<fiddlerwoaroof> although, that shouldn't be in library code since it breaks the rules
<jmercouris> which rules?
<fiddlerwoaroof> (defining methods for generic functions you don't own for classes you don't own)
<fiddlerwoaroof> On the other hand, "someone" could define a library for querying ASDF for various bits of information
<jmercouris> "someone" could do so indeed
<jmercouris> I'm imagining someone French, who has since moved onto another language :D
<fiddlerwoaroof> I find that "someone"'s backlog is pretty full of unpleasant tasks
<jmercouris> I'm certainly not the guy, I'm not skilled enough to even try
<fiddlerwoaroof> (to be clear I'm not referring to anyone in particular, just making a joke about every annoying problem being someone else's problem)
<jmercouris> oh I see :D
<jmercouris> I thought you were saying I could do it
<fiddlerwoaroof> No
<jmercouris> that's too bad, for a moment I felt like someone believed in me :\
<fiddlerwoaroof> It's the kind of thing I'm interested in, but I never seem to have the time for
<fiddlerwoaroof> But, honestly, you could probably do it.
<jmercouris> ah, well :D
<jmercouris> we shall see, Next is priority #1
<jmercouris> release 1.0.0 is complete today, we just haven't pushed onto main branch master
<fiddlerwoaroof> At a very simple level, just define some functions (asdf-query:system-version :alexandria)
<fiddlerwoaroof> And add to the list of functions as you find useful ones
<fiddlerwoaroof> Anyways, Next is a cool project
<jmercouris> thanks, have you seen the branch? it is quite different than the current incarnation
<fiddlerwoaroof> I don't know if you've run into the little bug where the start-swank command seems to kill the app on mac
<fiddlerwoaroof> no
<jmercouris> I'm embarassed of current code master, which means I have grown a lot
<jmercouris> fiddlerwoaroof: the bug has been solved
<fiddlerwoaroof> That's the best part of programming
<fiddlerwoaroof> anyways, back to clojure
<fiddlerwoaroof> ... or javascript
<jmercouris> so many bugs have been solved
<jmercouris> I'm curious to see how many new ones I've created though...
<jmercouris> I mean features
<jcowan> fiddlerwoaroof: Monkey-patching
mrpat has joined #lisp
<jcowan> Some code cultures favor it, some don't
slyrus1 has quit [Quit: slyrus1]
<jmercouris> monkey-patching, that's a term I haven't heard in a long time
<jmercouris> is Lisp the king of monkey-patching?
<jmercouris> is that elisp perhaps?
quazimodo has quit [Ping timeout: 250 seconds]
quazimodo has joined #lisp
kushal has quit [Remote host closed the connection]
malice has quit [Ping timeout: 256 seconds]
kushal has joined #lisp
jmercouris has quit [Remote host closed the connection]
thinkpad has quit [Quit: lawl]
<mrpat> What is the best package for downloading https sites? It seems cl+ssl is messing with my Drakma and Dexador.
<mrpat> I am not sure if I need to set up cl+ssl before using it. Does that seem right?
<jcowan> No, Smalltalk and Ruby are the kings of monkey-patching. You can do it in pretty much any dynamic language, but in a lot of langs the culture won't let you.
<fortitude> mrpat: drakma and dexador should both work without having to set up cl+ssl first, but cl+ssl can have issues on some systems (windows)
<fortitude> I think dexador bundles its own certificate store, which should avoid most of the problems if its recent enough
anamorphic has quit [Quit: anamorphic]
<mrpat> I'm on Linux. Thanks, I will download the latest dex
anamorphic has joined #lisp
pillton has joined #lisp
anamorphic has quit [Client Quit]
Essadon has quit [Quit: Qutting]