tyson2 has joined #commonlisp
Lord_of_Life has quit [Read error: Connection reset by peer]
Lord_of_Life has joined #commonlisp
random-nick has quit [Ping timeout: 252 seconds]
Izem has quit [Ping timeout: 252 seconds]
char has joined #commonlisp
cammie has joined #commonlisp
gioyik_ has quit [Ping timeout: 244 seconds]
gioyik_ has joined #commonlisp
cammie has quit [Read error: Connection reset by peer]
akoana has left #commonlisp [Leaving]
Oladon has quit [Quit: Leaving.]
prxq_ has joined #commonlisp
prxq has quit [Ping timeout: 265 seconds]
waleee has quit [Ping timeout: 246 seconds]
derelict has quit [Ping timeout: 240 seconds]
bpanthi977 has joined #commonlisp
gioyik_ is now known as gioyik
Devon7 has joined #commonlisp
Devon7 is now known as Devon
<beach> Good morning everyone!
<Josh_2> Good mornin'
<Devon> Good evening
tyson2 has quit [Remote host closed the connection]
Josh_2 has quit [Ping timeout: 252 seconds]
Josh_2 has joined #commonlisp
Josh_2 has quit [Remote host closed the connection]
char has quit [Ping timeout: 252 seconds]
Alfr has quit [Quit: Leaving]
bpanthi977 has quit [Ping timeout: 252 seconds]
srhm has quit [Remote host closed the connection]
karlosz has joined #commonlisp
Inline has quit [Quit: Leaving]
etiago- has quit [Quit: ZNC 1.8.2 - https://znc.in]
etiago has joined #commonlisp
dsk has joined #commonlisp
easye has joined #commonlisp
shka has joined #commonlisp
pjb has joined #commonlisp
<^[> didi: No reason it shouldn't work, as far as I can tell.
bpanthi977 has joined #commonlisp
CrashTestDummy3 has joined #commonlisp
CrashTestDummy2 has quit [Ping timeout: 252 seconds]
wilfred has joined #commonlisp
CrashTestDummy2 has joined #commonlisp
CrashTestDummy3 has quit [Ping timeout: 240 seconds]
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
Cymew has joined #commonlisp
pve has joined #commonlisp
azimut_ has quit [Remote host closed the connection]
azimut has joined #commonlisp
bldr has quit [Ping timeout: 252 seconds]
derelict has joined #commonlisp
bldr has joined #commonlisp
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
treflip has joined #commonlisp
makomo has joined #commonlisp
etimmons has quit [Ping timeout: 246 seconds]
<beach> Here is a project for a relative newbie who wants to learn more about Common Lisp: Create a site that contains definitions of standard Common Lisp macros that are truly portable, i.e. where there is no implementation-specific machinery required, neither for the expander nor in the expansion.
<beach> I am thinking DEFSETF, PROG1, PROG2, etc.
<beach> The license should be very general so that these macros can be used in most Common Lisp implementations.
<beach> The macros should have good comments and good documentation, including documentation strings.
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
<beach> And the code should be easy to read.
<beach> The best way to establish these macros would be to look at the most common free Common Lisp implementations and then choose a general technique accordingly, while taking care not to violate any copyright.
<beach> There should be a test suite too of course.
<beach> Not that anybody usually decides to work on any of the things I suggest (other than myself), but I think this is an easy one that could cut the collective maintenance burden of maintainers of Common Lisp implementations.
<pjb> beach: that said some important macros have to deal with environments, and cannot be completely independent from the implementation.
<pjb> Defering to functions with thunks wouldn't be fair.
<pjb> (and a b c) --> (and* (lambda () a) (lambda () b) (lambda () c)) ; !
<pjb> but this is what we have to do for portability for defmacro, defun, defvar, etc.
<beach> Right. I specifically wanted to distinguish those macros that do not require any particular machinery.
<pjb> Then they're there. They could be extracted.
<beach> Maybe there are not enough of them though.
<pjb> (and some from sicl too).
<beach> Heh, OK.
<pjb> I've not implemented the most complex ones yet, (setf, defsetf, typecase, etc).
<pjb> and none about clos either.
<beach> There are obviously several implementation of these macros in different Common Lisp implementations, but I wanted a separate repository for them, and documentation and such.
<beach> And I was thinking that a relative newbie looking for a project could figure out what macros are truly portable, centralize them, write documentation strings and comments, etc.
silasfox has joined #commonlisp
<beach> But I realize it is not going to happen, of course.
hendursa1 has joined #commonlisp
pjb has quit [Ping timeout: 252 seconds]
CrashTestDummy3 has joined #commonlisp
hendursaga has quit [Ping timeout: 244 seconds]
cjb has quit [Quit: rcirc on GNU Emacs 28.0.50]
CrashTestDummy2 has quit [Ping timeout: 240 seconds]
<splittist> beach: [not volunteering] So essentially nothing from Chapters 1-4 of the Spec; some from Chapter 5 (?); all of Chapter 6; some (?) of Chapter 7; Chapter 8 (defstruct); phoe's done Chapter 9 (conditions); nothing in Chapter 10; some of Chapter 11 (?); the handful of macros in Chapters 12-21; Chapter 22 (reader) is mainly the pretty printer (?); Chapter 23 (reader - with-standard-io-syntax) ; then Chapters 24 and 25 are pretty
<splittist> system dependent, I would imagine.
<beach> Looking now...
<beach> Looks about right.
<beach> That's already quite a few.
derelict has quit [Ping timeout: 246 seconds]
<splittist> Are things like SETF expansions treated specially by source tracking?
<beach> I think in SICL/Cleavir we just use the usual technique for preserving source information in macro expansions.
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 252 seconds]
lisp123 has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
selwyn has joined #commonlisp
attila_lendvai has joined #commonlisp
prxq_ is now known as prxq
dsk has quit [Ping timeout: 246 seconds]
<lisp123> Ok to write a few paragraphs within a doc string?
<lisp123> Or should we keep them short. Issue with comments is that they may not be discoverable outside of the file
<beach> lisp123: The target audience for the two is not the same.
<beach> lisp123: The documentation string is meant for clients and are mainly useful on protocol functions and classes. Comments are meant for the same people who read the code.
<beach> lisp123: And the problem with documentation strings is that they are largely noise to the person reading the code.
<lisp123> beach: Ah, so doc strings, I should explain INPUT & OUTPUT and comments I can do whatever is helpful?
<beach> Input, output, preconditions, side effects, etc.
wilfred has quit [Quit: Connection closed for inactivity]
<lisp123> thanks, that's a good rule of thumb to follow
<beach> lisp123: So, ideally the documentation strings should be long-ish, but the problem with that is precisely the noise aspect.
<lisp123> beach: i know what you mean, for lisp coders, one can read the code and understand exactly what its doing, doc strings are just repeating oneself in another (inexact) form for that purpose
<beach> So I tend to use (SETF DOCUMENTATION) in a separate file so as to avoid the noise. But then there is the problem of keeping them synchronized instead.
<lisp123> oh so that is possible? not a bad idea, to keep it all in a seperate file.
<lisp123> or at the bottom of the current file
<beach> Yes, DOCUMENTATION is an "accessor" generic function, so it works with SETF.
<splittist> Or have tooling to get them out of the way if they offend you.
<beach> That works too.
<lisp123> beach: thanks, that's going to be very helpful. Time to seperate out docstrings and only do them for exported functions :)
<beach> lisp123: I tend to use #.(format nil "...") for documentation strings, so that I can use ~<newline> with the @ modifier, so that subsequent lines can be indented without changing the output of DOCUMENTATION.
<lisp123> I will do that as well, it will help make it easier to write multi-line doc strings
<beach> Exactly.
<lisp123> thanks beach
<beach> Pleasure.
bpanthi977 has quit [Ping timeout: 252 seconds]
<beach> splittist: That would be an excellent feature for Second Climacs.
<beach> I guess one could either hide the documentation string in the definition, or provide a way to access the (separate) place where the documentation string is located, in a separate buffer.
<splittist> In CLOSOS, will forms only be incarnated in 'files' to e.g. feed to compile-file?
<splittist> (actually, that question doesn't seem to make sense - why deal with files at all?)
<beach> The idea is to have source code in the form of strings ("files"), yes.
<moon-child> why strings?
<beach> What would you suggest instead?
<moon-child> ah that's right, I forgot you don't like images
<moon-child> beach: syntax trees
<beach> ?
<beach> Well, we still tend to like to edit code as text.
<beach> And the incremental reader we designed makes it efficient to do so.
<moon-child> 'we' are not universally representative, apparently :)
<moon-child> why do you prefer text?
<beach> Me and my favorite coauthor, I mean.
<beach> moon-child: That's just my default choice. If you can convince me otherwise, I am all ears.
<jackdaniel> it's simple. you have an ascii table printed on your desk an you edit the file with a hexeditor
lisp123 has quit [Remote host closed the connection]
<moon-child> no convincing needed, was just curious if there was a particular reason
<beach> None other than that editing source code in the form of text still seems to be the most common way.
derelict has joined #commonlisp
lisp123 has joined #commonlisp
<beach> I did attempt to design a "structure editor" at some point. The idea was to have a bunch of keystrokes valid in different contexts, so that the editing experience would resemble that of a text editor, but with fewer possibilities of making mistakes. It turned out to be too complicated though. Probably because I didn't find the right data structures for it.
<splittist> The most interesting times in the life of a form is when it is invalid.
<splittist> s/is/are/
pjb has joined #commonlisp
<shka> paredit is a pseudo-structural editing of lisp code in emacs
<shka> the best part of it is that you can back off to the text editing if need be
<jackdaniel> and the worst is that it doesn't "get" block comments correctly
<lisp123> jackdaniel: amen to that, my only issue with paredit
<shka> jackdaniel: that's why backing off to the text editing is a nice feature to have :D
gioyik has quit [Quit: WeeChat 3.1]
karlosz has quit [Quit: karlosz]
<pjb> block comments: #| -*- mode:org -*- ** some document in org mode |# ;-)
<pjb> And mumamo mmm or page mode.
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
treflip has left #commonlisp [ERC (IRC client for Emacs 27.2)]
lisp123 has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Xach has joined #commonlisp
Xach has quit [Changing host]
random-nick has joined #commonlisp
tyson2 has joined #commonlisp
lisp123 has joined #commonlisp
selwyn has quit [Ping timeout: 246 seconds]
Seok__ has joined #commonlisp
seok- has quit [Ping timeout: 256 seconds]
kakuhen has quit [Read error: Connection reset by peer]
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
selwyn has joined #commonlisp
dsk has joined #commonlisp
scymtym has quit [Ping timeout: 246 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
scymtym has joined #commonlisp
<splittist> (DEFSTRUCT should obviously be in brackets)
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<beach> Brackets mean "implementation specific"?
<splittist> beach: I think so - or "implementation support/internals required". As a first approximation.
<beach> Right.
didi has left #commonlisp [O bella ciao bella ciao bella ciao, ciao, ciao.]
Lycurgus has joined #commonlisp
aeth has quit [Read error: Connection reset by peer]
aeth has joined #commonlisp
Bike has joined #commonlisp
<jcowan> beach: if you are interested in a simple yet capable structure editor, I recommend taking a good look at Medley Interlisp's S-EDIT
<jcowan> it is thoroughly documented (UI and API) in pp. 247-262 of https://interlisp.org/docs/IRM.pdf, the Interlisp Reference Manual
<beach> Thanks.
derelict has quit [Ping timeout: 252 seconds]
derelict has joined #commonlisp
IAmRasputin has joined #commonlisp
scymtym has quit [Ping timeout: 246 seconds]
scymtym has joined #commonlisp
Lycurgus has quit [Quit: Exeunt]
selwyn has quit [Read error: Connection reset by peer]
whosit has quit [Ping timeout: 258 seconds]
notzmv has quit [Ping timeout: 252 seconds]
selwyn has joined #commonlisp
<lisp123> My friend of 20 years wanted to learn programming. Naturally I recommend Common Lisp, he's going to use Kotlin instead "lisp doesn't sound practical"
<lisp123> such is life
<beach> It is very hard to change people with a closed mindset. Carol Dweck has done research in the area.
<splittist> You'll never convince me of that.
<lisp123> He's new to programming, so i thought it wouldn't be hard
<beach> splittist: :)
<lisp123> Not sure how he got his preconception to begin with
<splittist> to be fair, Kotlin has an object oriented 'Hello world' and co-routines on its homepage. Oh - and a homepage.
<beach> Then Kotlin has to be a better choice.
<_death> Naggum said that Common Lisp is the language you graduate into... most people first need to experience the misery of other languages
<_death> then again, the reasons people want to learn programming nowadays may be more.. varied.. than they used to be
scymtym has quit [Ping timeout: 252 seconds]
<lisp123> _death: honestly I never felt _too_ bad in other languages. lisp was a natural move for me after getting used to generics & protocols in Swift
<lisp123> jave is probably the only language I really hated
ec has quit [Quit: ec]
phantomics has joined #commonlisp
<beach> "jave"?
<beach> [who knows what languages were invented last week]
<splittist> you missed the whole javb, javc and javd evolution
<beach> Should I be worried about that?
<splittist> No - they're sort of the Delta-variants of enterprise software engineering.
<beach> Whew!
yitzi has joined #commonlisp
<IAmRasputin> At least Kotlin is less likely to put him off programming forever than Jav*, imho
<dim> imagine you're new to programming in 2021, what kind of basic UI would you expect? I think web site or mobile app, I don't think terminal based keyboard driven...
OlCe has quit [Remote host closed the connection]
OlCe has joined #commonlisp
<splittist> for the junior splittists, programming (or, at least, the motivating type of programming) is about making game-like things happen on a tablet or phone. (Having said which, as the least junior ages, things happening on PCs with keyboards become interesting, too.)
silasfox has quit [Ping timeout: 252 seconds]
waleee has joined #commonlisp
<_death> tic80?
<splittist> Having started with Scratch, it's now more Construct and Unity. /I/ enjoyed TIC-80 (:
<_death> I thought Unity at first, but then considered that it may be way too complicated
<splittist> _death: I'm sure it's insanely complicated, but if one is motivated, and no-one tells you it's complicated...
<_death> I see ;)
OlCe has quit [Remote host closed the connection]
OlCe has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
hineios has joined #commonlisp
raeda has quit [Remote host closed the connection]
raeda has joined #commonlisp
OlCe has quit [Remote host closed the connection]
derelict has quit [Ping timeout: 246 seconds]
derelict has joined #commonlisp
<jcowan> God help me if I have to do professional programming on a mobile device (unless it has a proper keyboard and screen, which to me removes it from the category "mobile device")
raeda has quit [Ping timeout: 252 seconds]
dlowe has quit [Remote host closed the connection]
<dim> it's not about using the mobile as a dev environment as much as producing an app that fits the mobile, I suppose
<dim> though I would like that it would be possible to code an app from the mobile device itself, it would make the mobile device into an actual computer
<dim> (apparently next iOS/iPadOS versions are going in that direction)
derelict has quit [Quit: WeeChat 3.2]
srhm has joined #commonlisp
<pve> Hi, does anyone know if there exists an extension to ASDF that would let me compile/load all lisp files in a directory in no particular order? Perhaps as a subclass of "asdf:module".. This is something I might use when doing prototyping or other less serious things (not that anything I do is very serious :)
<Bike> if you don't specify :serial t or dependencies for a component, asdf will just do some arbitrary order
<Bike> do you want it to generate a component from a directory for you rather than having to write it out?
<pve> Bike: I understand, I meant I'm too lazy to go and edit the asd file every time I want to add a file :)
<pve> obviously for personal stuff only
<pve> I don't think it would be *too* difficult to write this extension myself though
<pjb> pve: something like: :components #.(mapcar (lambda (path) `(:file (pathname-name path))) (directory #P"./*.lisp"))
<pjb> I wonder if *load-pathname* applies while loading the asd file… (with asdf).
<pve> pjb: hmm well if that works, then I'm fine with it
<pve> never occurred to me to do #.( ... ) in an asd file
<pjb> you may have to tune the path in DIRECTORY.
<pve> pjb: thank you, I will experiment.. worst case I make my own subclass of "asdf:module"
<pjb> check whether *load-pathname* is bound when you do asdf:oos 'asdf:load-op or asdf:compile-op (or the new API asdf-load).
waleee has quit [Ping timeout: 252 seconds]
<pve> will do
<pjb> pve: there's also the option of writting a little lisp script to generate a plain asd file.
<pve> also a good idea
<dim> I though one of the advantages of ASDF would be to avoid the Makefile/autoconf/automake/... situation ;-)
<dim> having lisp all the way down including the build system is a very nice property, I believe
OlCe has joined #commonlisp
kevingal has joined #commonlisp
amb007 has quit [Ping timeout: 258 seconds]
amb007 has joined #commonlisp
Danishman has joined #commonlisp
bhaible has quit [Ping timeout: 240 seconds]
AnimalClatter has joined #commonlisp
AnimalClatter has quit [Client Quit]
AnimalClatter has joined #commonlisp
kevingal has quit [Remote host closed the connection]
notzmv has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
srhm has quit [Ping timeout: 252 seconds]
dsk has quit [Ping timeout: 240 seconds]
etimmons has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
cuz has joined #commonlisp
amb007 has joined #commonlisp
notzmv has quit [Ping timeout: 246 seconds]
raeda has joined #commonlisp
Lycurgus has joined #commonlisp
<lisp123> #lisp seems dead
<lisp123> can we take it over again?
<Lycurgus> #lisp is ##lisp from freenode
<Lycurgus> and it's more lively here than it was there
<lisp123> Lycurgus: Ah cool, thats good
notzmv has joined #commonlisp
<pjb> we're home here!
<lisp123> Indeed :)
<Lycurgus> yeah no telling people all the time this is about cl
selwyn has quit [Read error: Connection reset by peer]
tyson2 has quit [Remote host closed the connection]
derelict has joined #commonlisp
<pve> pjb: the #. trick you suggested (in the asd file) works
tyson2 has joined #commonlisp
<pve> one minor issue is that it wont detect newly added files in the directory when I reload the system, because it doesn't think that the system has changed
Lycurgus has quit [Quit: Exeunt]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
srhm has joined #commonlisp
lisp123 has quit [Quit: Leaving...]
selwyn has joined #commonlisp
Inline has joined #commonlisp
varjag has joined #commonlisp
jackdaniel is now known as polygon-op
cuz has quit [Ping timeout: 252 seconds]
cage has joined #commonlisp
cuz has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
mister_m` has joined #commonlisp
pjb has quit [Ping timeout: 252 seconds]
terrorjack4 has joined #commonlisp
mister_m` has quit [Remote host closed the connection]
terrorjack has quit [Ping timeout: 240 seconds]
terrorjack4 is now known as terrorjack
mister_m` has joined #commonlisp
mister_m` has quit [Remote host closed the connection]
scymtym has joined #commonlisp
notzmv has quit [Ping timeout: 246 seconds]
notzmv has joined #commonlisp
waleee has joined #commonlisp
<etimmons> pve: I'm working on an extension to ASDF that I think would do what you want.
<etimmons> It's not quite ready yet (requires the latest version of ASDF that just got released)
<etimmons> And I'm traveling right now, so it won't be ready for a bit
<etimmons> You reminded me that I should make sure it detects newly added files... Can't remember if I already handled that or not
pjb has joined #commonlisp
dsk has joined #commonlisp
karlosz has joined #commonlisp
notzmv has quit [Ping timeout: 240 seconds]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
IAmRasputin has quit [Ping timeout: 258 seconds]
Cymew has quit [Ping timeout: 240 seconds]
gosukiwi has joined #commonlisp
Josh_2 has joined #commonlisp
<Josh_2> hi hi, anyone know how to contact Sabra Crolleton?
<Josh_2> Sometimes they come in here
shka has quit [Ping timeout: 246 seconds]
<pve> etimmons: Thanks for the link. I took a quick glance, but wasn't able to determine exactly how it handles directories. I'll look closer tomorrow.
gosukiwi has left #commonlisp [#commonlisp]
sjl has joined #commonlisp
rgherdt has joined #commonlisp
cuz has quit [Remote host closed the connection]
cuz has joined #commonlisp
hendursa1 has quit [Remote host closed the connection]
hendursa1 has joined #commonlisp
yitzi has quit [Quit: Leaving]
edgar-rft has quit [Quit: Leaving]
dsk has quit [Ping timeout: 252 seconds]
edgar-rft has joined #commonlisp
attila_lendvai has quit [Ping timeout: 246 seconds]
selwyn has joined #commonlisp
pve has quit [Quit: leaving]
tyson2 has quit [Ping timeout: 252 seconds]
cuz has quit [Ping timeout: 246 seconds]
edgar-rft has quit [Remote host closed the connection]
lottaquestions_ has quit [Ping timeout: 256 seconds]
lottaquestions has joined #commonlisp
edgar-rft has joined #commonlisp
frgo has quit [Read error: Connection reset by peer]
frgo has joined #commonlisp
azimut has quit [Ping timeout: 244 seconds]
azimut has joined #commonlisp
akoana has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
luis0 has joined #commonlisp
luis has quit [Ping timeout: 272 seconds]
luis0 is now known as luis
subst has joined #commonlisp
varjag has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
tyson2 has joined #commonlisp
amb007 has quit [Ping timeout: 246 seconds]
amb007 has joined #commonlisp
srhm has quit [Quit: Konversation terminated!]
pjb has quit [Remote host closed the connection]
cjb has joined #commonlisp
waleee has quit [Ping timeout: 246 seconds]
waleee has joined #commonlisp
char has joined #commonlisp
hendursa1 has quit [Remote host closed the connection]
hendursa1 has joined #commonlisp
akoana has quit [Quit: leaving]
taiju has joined #commonlisp