jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language<http://cliki.net/> logs:<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
sucks has joined #lisp
Folkol has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
fikka has joined #lisp
Cymew has joined #lisp
minion has quit [Remote host closed the connection]
minion has joined #lisp
tokamach has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
Cymew has quit [Ping timeout: 268 seconds]
tokamach has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
daniel-s has joined #lisp
tokamach has joined #lisp
logicmoo has quit [Ping timeout: 256 seconds]
energizer has quit [Quit: Leaving]
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
logicmoo has joined #lisp
warweasle_ has joined #lisp
Quetzal2 has quit [Read error: Connection reset by peer]
warweasle has quit [Ping timeout: 260 seconds]
warweasle_ is now known as warweasle
warweasle has quit [Client Quit]
warweasle has joined #lisp
dddddd has quit [Remote host closed the connection]
fikka has joined #lisp
warweasle_ has joined #lisp
warweasle has quit [Ping timeout: 248 seconds]
Quetzal2 has joined #lisp
Quetzal2 has joined #lisp
Quetzal2 has quit [Changing host]
fikka has quit [Ping timeout: 255 seconds]
fikka has joined #lisp
kerrhau has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 255 seconds]
trocado has quit [Remote host closed the connection]
warweasle_ is now known as warweasle
pyericz_ has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
BlueRavenGT has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
kerrhau has joined #lisp
kerrhau has quit [Changing host]
kerrhau has joined #lisp
ErynVorn has joined #lisp
makomo has quit [Ping timeout: 256 seconds]
scottj has joined #lisp
fikka has joined #lisp
Kundry_Wag has joined #lisp
sjl has joined #lisp
logicmoo has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 264 seconds]
Kundry_Wag has quit [Ping timeout: 256 seconds]
FreeBirdLjj has joined #lisp
sjl has quit [Ping timeout: 260 seconds]
jcowan has quit [Ping timeout: 248 seconds]
Quetzal2 has quit [Remote host closed the connection]
<jeosol> chls defun
<jeosol> clhs defun
jcowan has joined #lisp
FreeBirdLjj has quit [Ping timeout: 256 seconds]
pioneer42 has joined #lisp
warweasle has quit [Quit: Leaving]
warweasle has joined #lisp
fikka has joined #lisp
BitPuffin has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 248 seconds]
dtornabene has joined #lisp
d4ryus1 has joined #lisp
d4ryus has quit [Ping timeout: 240 seconds]
cmecca has joined #lisp
ak5 has joined #lisp
tokamach has quit [Quit: Textual IRC Client: www.textualapp.com]
Winterschlaf has joined #lisp
smokeink has joined #lisp
fikka has joined #lisp
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
semz has quit [Ping timeout: 260 seconds]
scottj has quit [Quit: leaving]
fikka has quit [Ping timeout: 276 seconds]
Kundry_Wag has joined #lisp
sucks has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Ping timeout: 260 seconds]
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
pyericz_ has quit [Quit: This computer has gone to sleep]
rumbler31 has joined #lisp
rumbler31 has quit [Remote host closed the connection]
pyericz has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
jcowan has quit [Remote host closed the connection]
jcowan has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
Winterschlaf has left #lisp ["Leaving"]
fikka has joined #lisp
travv0 has joined #lisp
energizer has joined #lisp
fikka has quit [Ping timeout: 276 seconds]
warweasle has quit [Quit: Leaving]
ErynVorn has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
pioneer42 has quit [Quit: Leaving.]
daniel-s has quit [Remote host closed the connection]
nika has joined #lisp
Oladon has joined #lisp
fikka has joined #lisp
dented42 has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
igemnace has joined #lisp
damke has joined #lisp
sjl has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
sjl has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 240 seconds]
drunkencoder has quit [Remote host closed the connection]
pierpa_ has quit [Quit: Page closed]
fikka has joined #lisp
drunkencoder has joined #lisp
clog has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 255 seconds]
schoppenhauer has quit [Ping timeout: 260 seconds]
BlueRavenGT has joined #lisp
schoppenhauer has joined #lisp
omilu has joined #lisp
zacts has joined #lisp
fikka has joined #lisp
shka_ has joined #lisp
travv0 has quit [Remote host closed the connection]
travv0 has joined #lisp
pierpa has joined #lisp
travv0 has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
Pixel_Outlaw has quit [Quit: Leaving]
dtornabene has quit [Quit: Leaving]
fikka has joined #lisp
wheelsucker has joined #lisp
dieggsy has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
kushal has quit [Remote host closed the connection]
DataLinkDroid has quit [Quit: Ex-Chat]
kushal has joined #lisp
fikka has joined #lisp
travv0 has joined #lisp
Oladon has quit [Quit: Leaving.]
Bike has quit [Quit: Lost terminal]
<beach> Good morning everyone!
<beach> jcowan: I don't understand your question. Cleavir is designed to be used to build the compiler(s) of Common Lisp, i.e. COMPILER-FILE, COMPILE, EVAL. So the unit to compile is either a file or a top-level lambda expression.
<jcowan> When you are using the SBCL back end, and you compile a file, do you get a file?
<beach> No, I just do it by the top-level expression. And it stays in memory.
<beach> But I could.
<beach> I could translate to Common Lisp, write it to a file, call the SBCL compiler on it.
* jcowan nods
<jcowan> I read the LispOS paper
<beach> Oh, good.
<jcowan> Something it lacks is a means to undo mutation at the user level
<beach> I think I have a phrase in there somewhere, but I haven't designed any general mechanism.
* jcowan nods
<beach> It might be tricky to do.
<jcowan> Definitely. One possibility is to use a trail a la Prolog
<jcowan> I thought at first the chapter on checkpointing would address that
<beach> Not really. That's more about keeping the system consistent in case of a crash.
<jcowan> Is a compiled top-level lambda compiled into an SBCL lambda, then?
<beach> It's more involved than that...
<beach> First the top-level lambda expression is turned into an AST, then to HIR, and that process returns a lambda expression that corresponds to a FASL file. So it has to be "tied" (or linked if you prefer) to a first-class global environment.
<beach> That lambda expression is then compiled and executed on some arguments, like the environment.
_krator44 is now known as krator44
krator44 has quit [Changing host]
krator44 has joined #lisp
krator44 has joined #lisp
<beach> The side effects from executing that function will create the functions, variables, and other side effects that would normally happen when a FASL is loaded.
<jcowan> How is the 1CGE represented in SBCL?
<jcowan> Presumably it is not SBCL's environment.
<beach> Correct.
fourier has joined #lisp
<jcowan> Good, I'll read that.
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jcowan> Some of the historical section of the LispOS paper contains errors, but I'm not going to fuss over them now
<beach> Great! If you have any questions, please don't hesitate to ask.
<beach> jcowan: OK, but I would like to know at some point.
pyericz has quit [Quit: This computer has gone to sleep]
<beach> Can you give me a hint?
<jcowan> Processes predate Unix by many years: they were already available in OS/360 (1964)
<beach> Right.
<beach> I didn't think I hinted that Unix invented them.
<jcowan> The only real novelty in Unix is pipes
<beach> But I'll check. Thanks.
<jcowan> You say that processes exist because of the limited memory of minicomputers, but they were born on mainframes
<beach> I knew they existed before. In fact Multics had them too.
<beach> That remains true though.
<beach> Oh, I should not have said mini.
<beach> Thanks.
<beach> I'll fix it.
<jcowan> Multics had typically one process per user session
<beach> It did, yes.
jcowan_ has joined #lisp
<jcowan_> HODIE NATUS EST RADICI FRATER
jcowan has quit [Ping timeout: 255 seconds]
orivej has quit [Ping timeout: 255 seconds]
<beach> jcowan_: Were you also a Multics user?
oleo has quit [Quit: Leaving]
<beach> jcowan_: I re-read that paragraph, and as a result, I removed the "mini" prefix. Thanks for pointing that out.
travv0 has quit [Remote host closed the connection]
lnostdal has quit [Ping timeout: 260 seconds]
kerrhau has quit [Ping timeout: 255 seconds]
BlueRavenGT has quit [Ping timeout: 264 seconds]
<bjorkintosh> one process per user session? what do you do with that??
clog has joined #lisp
ldb has joined #lisp
<ldb> sup
dieggsy has quit [Ping timeout: 276 seconds]
Kundry_Wag has joined #lisp
pyericz has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
Karl_Dscc has joined #lisp
nydel has quit [Ping timeout: 240 seconds]
nydel has joined #lisp
shrdlu68 has joined #lisp
lnostdal has joined #lisp
k-hos has quit [Read error: Connection reset by peer]
k-hos has joined #lisp
bkst has quit [Ping timeout: 256 seconds]
sellout has quit [Ping timeout: 256 seconds]
<beach> bjorkintosh: You have been brainwashed by UNIX.
bkst has joined #lisp
<beach> bjorkintosh: For example, when a program fails, in Multics, you have access to the stack. Then you can try to to fix the problem, say an attempt to call a function that does not exist, type `continue' and the execution continues.
<beach> bjorkintosh: In many ways, the Multics development environment was similar to our Lisp environment, and in many ways better than what our free Common Lisp implementations can do.
fikka has quit [Ping timeout: 268 seconds]
wigust has joined #lisp
<ldb> Which has been said from `the Arise of Worse is Better', included in the appendix of the UNIX Haters Handbook
<ldb> As for Multics, I prefer TOPS-20 instead.
Naergon has quit [Remote host closed the connection]
Karl_Dscc has quit [Remote host closed the connection]
fikka has joined #lisp
ancient_dog has quit [Ping timeout: 240 seconds]
DataLinkDroid has joined #lisp
<bjorkintosh> interesting.
ancient_dog has joined #lisp
<bjorkintosh> ldb, TOPS-20? was it any good?
<shrdlu68> I call CL the "undead language" - it's alive, only with an unholy, supernatural vigor.
fikka has quit [Ping timeout: 256 seconds]
angavrilov has joined #lisp
vlatkoB_ has joined #lisp
<beach> ldb: I find it more interesting to compare Multics and TOPS-20 on the one had to UNIX, Windows, MacOS, Android on the other hand, than to compare Multics and TOPS-20. My point in the LispOS specification is that we can do much better than what current systems do, and we have a good model for it, namely our Common Lisp environments.
<beach> on the one HAND
fourier has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
<ldb> beach: do you think it is a good idea to mix RAM and Disk in LispOS?
sjl has joined #lisp
<beach> "mix"?
<beach> I see RAM as a cache for disk.
<bjorkintosh> a VERY fast one.
<beach> bjorkintosh: What do you mean?
<ldb> ok, i see
fikka has quit [Ping timeout: 276 seconds]
<ldb> however i would like to see specialized device for such an environment
<beach> Why is that?
<epony> pinch of salt here, "What Every Programmer Should Know About Memory" - Ulrich Drepper (2007) https://www.akkadia.org/drepper/cpumemory.pdf
<beach> Oh, haven't seen his name for some time.
sjl has quit [Ping timeout: 256 seconds]
whonion has joined #lisp
onion has quit [Ping timeout: 255 seconds]
<epony> Not much changed since the time the paper got written, except maybe NUMA if it's not mentioned there.
<ldb> beach: beacause von neumann machine has limitations on abstraction extent
fikka has joined #lisp
<beach> ldb: That is way to vague for me to understand.
<bjorkintosh> beach isn't RAM access faster than disk access by definition?
<beach> bjorkintosh: Yes, so?
<flip214> bjorkintosh: only if the RAM being accessed is "present" and not paged out...
<beach> bjorkintosh: It is about virtual memory. We know how to do that.
<bjorkintosh> well that's its point then!
whonion is now known as whoma
<beach> bjorkintosh: We have been able to do that for half a century.
<flip214> and if your swap device is a remote iSCSI disk, the local trash /tmp might still be much faster than that
whoma is now known as whoman
<bjorkintosh> :-)
<ldb> beach: I mean, as long as we are working on it, we have to sacrifice either performance or convenience, can't detach from heavy work of dealing with ugly hardware interface
<bjorkintosh> I'd never really heard of TOPS-20. What sort of lisp did it run?
<bjorkintosh> Maclisp?
<beach> ldb: I don't believe that's true.
<ldb> yes, and interlisp
<bjorkintosh> interlisp. Interesting. you've used it, ldb?
<ldb> sure. i also looked eulisp
whoman is now known as _onion
<epony> I still think it's a funnily stupid idea to consider double trickery in application virtualisation against the host OS for the same resource abstracting away the hardware to absolutely irrelevant ideas like "unlimited transparent secondary storage".
jack_rabbit has quit [Ping timeout: 264 seconds]
_onion is now known as on_ion
<ldb> i agree
<epony> Either context switch in the OS, or the OS is the language interpreter and be done with the OS concept once and for allllllll.
<epony> (kbd stuck on l)
<ldb> common lisp's file io is poor
<ldb> any suggestions on effcient way of reading a file until certian char or EOF?
<ldb> currently i use a buffer to read each 8192 bytes into vectors and search on it
<ecraven> mmap it
<flip214> ldb: use structured data instead? Eg. via a length tag at the beginning?
<flip214> ldb: and as for ecraven's recommendation (I'd have suggested mmap, too ;), see https://github.com/zodmaner/trivial-mmap
<ecraven> also, I've read recently that mmap is not significantly faster than just reading, it just might be more convenient
<ldb> flip214: ecraven: i could do mmap, but i also want to process stream data like UNIX stdin
<on_ion> no binary stream lib ?
lagagain has joined #lisp
<ldb> good point
<flip214> ecraven: the IO access is mostly the same... spinning platter means 4-12 msec, etc.
hiroaki has joined #lisp
jack_rabbit has joined #lisp
_cosmonaut_ has quit [Ping timeout: 248 seconds]
verisimilitude has joined #lisp
<verisimilitude> Hello there.
<beach> Hello verisimilitude.
<ldb> hi
<phoe> heyyy
<beach> I think I must study this interesting psychological phenomenon that I am frequently confronted with. Like in our "incremental parsing" paper, we do orders of magnitude better than Emacs, but we are told that we must also solve the halting problem at typing speed.
Cymew has joined #lisp
<verisimilitude> I've been writing some Common Lisp programs others may find interesting and figured I maybe should mention them here, if you're interested.
<verisimilitude> Unfortunately, these aren't yet added to quicklisp, but that's in process.
<ldb> great
<beach> And in my LispOS specification, I suggest something that is way better than what we now have, and I am told I also need to solve the Von Neumann bottleneck.
<verisimilitude> So, you'd be interested, ldb?
<ldb> verisimilitude: i'm urging for text processing realated things
<verisimilitude> In that case, here are the three links:
<verisimilitude> The latter two relate to control of terminal devices, ldb.
<verisimilitude> So, in order, the first is SHUT-IT-DOWN, which is a single symbol package that can be used to exit the implementation; one of the nicknames is QUIT and so you can call it as (QUIT:QUIT).
<verisimilitude> The second is an implementation of the ECMA-48 standard, Control Characters for Coded Character Sets; surprisingly, it doesn't seem like anyone had implemented this in Common Lisp, before me.
<ldb> verisimilitude: splendid, that mean i dont have to use ncurses
<verisimilitude> Exactly, ldb.
<verisimilitude> The third and last is ACUTE-TERMINAL-CONTROL, which as an abstract program for controlling terminals; it uses CL-ECMA-48, the second.
damke_ has joined #lisp
<verisimilitude> Follows is an early excerpt from the ACUTE-TERMINAL-CONTROL documentation:
<verisimilitude> >I also have a large disgust with the use of Curses varieties in Common Lisp programs, as this unnecessarily and substantially complicates using such a program. Risking memory leaks shouldn't be necessary to control a terminal.
<shrdlu68> verisimilitude: Nice.
<verisimilitude> Thank you.
damke has quit [Ping timeout: 264 seconds]
<verisimilitude> In designing the ACUTE-TERMINAL-CONTROL interface, I naturally found myself using SETF for some functionality and so decided this was best for all functionality.
<verisimilitude> So, all current functionality can be expressed in terms of SETF, naturally.
<verisimilitude> As an example, (CURSOR) returns the cursor location corresponding to the stream argument, which defaults to *STANDARD-OUTPUT*; (SETF CURSOR) is used to reposition the cursor, similarly.
<ldb> setf is so good even emacs have absorbed it into language core
_main_ has joined #lisp
<flip214> beach: "if you're going to start work on that, do it RIGHT" is the general assumption, I guess.
shka_ has quit [Ping timeout: 264 seconds]
angelo|2 has quit [Ping timeout: 260 seconds]
__main__ has quit [Ping timeout: 240 seconds]
angelo|2 has joined #lisp
_main_ is now known as __main__
orivej has joined #lisp
<shrdlu68> verisimilitude: If I understand this right, acute-terminal-control simply spits out ANSI control codes, right?
LdBeth has joined #lisp
<shrdlu68> s/control/escape/
ldb has quit [Quit: leaving]
__main__ has quit [Read error: Connection reset by peer]
<verisimilitude> It uses ECMA-48 control functions, yes.
_main_ has joined #lisp
<shrdlu68> Ah, those have been implemented before, such as https://github.com/pnathan/cl-ansi-text
<phoe> verisimilitude: SHUT-IT-DOWN is already implemented by UIOP:QUIT, see https://github.com/fare/asdf/blob/master/uiop/image.lisp#L59
<shrdlu68> verisimilitude: What's currently missing is one such library that also has low-level control of the terminal, which would reqiure making syscalls to the OS.
<phoe> verisimilitude: your terminal stuff does look nice - please add it to quicklisp via https://github.com/quicklisp/quicklisp-projects
_main_ is now known as __main__
<verisimilitude> I've already taken a look at several of these projects, shrdlu68, and they all either use a Curses or a simply inefficient.
<LdBeth> shrdlu68: you never need syscalls to operate on terminal devices
<verisimilitude> I've been in #quicklisp trying to have it added for months now, phoe.
<verisimilitude> I don't use github.
<phoe> verisimilitude: you don't need to use github
<verisimilitude> You may be interested by taking a look at CL-ECMA-48; I implement all 162 control functions that optimize the representations sent and the code to do this is also optimized.
<beach> flip214: Yes, but that's not how things work. Incremental improvement is the key.
<phoe> simply put them on any host from where they can be cloned by git, and then ask someone who uses github to make an issue on quicklisp-projects
<verisimilitude> I know, phoe, which is why I've been using #quicklisp.
<phoe> multiple QL projects are cloned from git repos that are not hosted on many of the big git services.
<verisimilitude> I don't use version control.
<verisimilitude> I do, however, provide each of these as a gzipped tar file; currently, the latest issue Xach informed me of was that they didn't decompress into their own directory, which has been corrected.
<phoe> okiedokie.
<verisimilitude> Regardless, I appreciate your help, phoe.
<LdBeth> verisimilitude: one thing I most concern, which is lacked in ncurses, does it support Unicode display?
<verisimilitude> Does it permit sending Unicode?
<verisimilitude> There's no reason it shouldn't.
<verisimilitude> It only sends control functions through Common Lisp streams; anything that can be sent through should be fine.
<jdz> verisimilitude: Just out of curiosity: why don't you use version control?
<verisimilitude> Each of these projects is a single file; why would I?
<jdz> To do experiments, for instance.
<verisimilitude> That's what I take backups for.
<LdBeth> 👍 thumbnail up
<jdz> Git is basically a tool to make snapshots of a directory.
<verisimilitude> I also simply dislike the idea that I should manually run a version control tool; it should be handled for me, but it isn't.
<verisimilitude> Now, you touched on something interesting, shrdlu68.
<jdz> How would a tool automatically DWIM (do what i mean)?
<shrdlu68> LdBeth: Yes you do, see man 3 termios.
<verisimilitude> Here's an excerpt from the end of the ACUTE-TERMINAL-CONTROL documentation:
<verisimilitude> >The preceding functionality both cannot be implemented with purely ECMA-48 functionality nor in portable Common Lisp and so the utility of adding it is put into question. It is thought, perhaps, the functionality will always pretend to be present or not available to the environment otherwise, but this is undecided.
<verisimilitude> >Functionality which may be added is as follows: control over input echoing; control over whether input is buffered by the system and whether reading will block or not.
<verisimilitude> Well, for one, jdz, a file system should regularly take backups.
<jdz> I'm not talking about backups.
<verisimilitude> However, UNIX certainly doesn't do this and probably never will.
<verisimilitude> Then what do you mean, jdz?
<jdz> For instance, working on two different implementations of the same feature at once.
<jdz> Switching between them, merging parts eventually.
<verisimilitude> I use comments for that.
<verisimilitude> If I don't necessarily need to run the program yet, I don't even need comments.
<jdz> The next step is when your code is released, people may contribute improvements. This activity is concurrent by definition.
ak5 has quit [Ping timeout: 276 seconds]
<LdBeth> shrdlu68: well it’s OS’s job to provide a try, but I don’t think controlling display and move cursor around requires more syscalls except write to the device
<verisimilitude> That's true, but I would simply manage that manually until it became unwieldy.
<epony> verisimilitude try cvs a spin, it is designed to track progress on simple files
<LdBeth> Just like in the old days
<jdz> epony: really? CVS in 2018?
ym has quit [Remote host closed the connection]
<verisimilitude> I'd prefer to avoid complicating my setup until it's absolutely necessary, but I appreciate the suggestion, epony.
<LdBeth> Even artists use GitHub
Cymew has quit []
<verisimilitude> Now, the issue with adding that functionality to ACUTE-TERMINAL-CONTROL is that it does require syscalls; there is, however, the fact that this could still be done in a way that avoids UNIX shared library garbage does make it seem appealing if it's utterly necessary.
heisig has joined #lisp
<jdz> I personally like Git because it is a dumb tool to manage snapshots of a directory tree, with a lot of tooling built around it (including Emacs integration).
<verisimilitude> Most implementations provide some manner of syscall interface.
<verisimilitude> If I ever used version control under UNIX, it would probably be required that I could use it only from Emacs, while avoiding the tool itself as much as I can.
<verisimilitude> How many of you are using Emacs as your IRC client?
<schweers> friends don’t let friends use CVS in 2018
<jdz> verisimilitude: I use Circe.
ym has joined #lisp
* schweers uses ERC
<LdBeth> verisimilitude: for controlling low level io, please look this http://quickdocs.org/trivial-raw-io/
<jdz> I also use Gnus for email...
<schweers> ditto :)
<verisimilitude> I already did, LdBeth, and it's insufficient for my purposes.
<epony> verisimilitude you can do transparent revisioning like this https://www.emacswiki.org/emacs/VersionControl
<verisimilitude> For one, it supports very few implementations.
<LdBeth> Use Wanderlust for mail and feeds
<verisimilitude> I'll keep it in mind, epony.
<epony> verisimilitude actually rcs is pretty much sufficient for per file revisioning and is the easiest thing ever
ebzzry_ has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
<verisimilitude> Well, there's also the point that SHUT-IT-DOWN and CL-ECMA-48 probably won't see much change now; the latter in particular is rather finished, unless I discover a flaw.
<verisimilitude> So, there's no point in handling those files, now.
<LdBeth> My irc is a small script and I was looking for a good terminal interface lib for a while, and that’s why I get excited today
<verisimilitude> Regardless, I'm curious as to what you all think of these three programs, so far.
ebzzry_ has joined #lisp
eschatologist has quit [Quit: ZNC 1.6.5+deb2build2 - http://znc.in]
semz has quit [Ping timeout: 255 seconds]
<verisimilitude> That's nice, LdBeth.
eschatologist has joined #lisp
<phoe> verisimilitude: SHUT-IT-DOWN is duplicated by UIOP:QUIT, the other two are pretty fun. I might use them when I write a terminal application.
dddddd has joined #lisp
<verisimilitude> Xach also expressed this concern, phoe, but SHUT-IT-DOWN has a better interface (I think), supports far more implementations, is significantly smaller and more targeted, and is under a more permissive license.
<verisimilitude> With these arguments, Xach didn't seem opposed to adding it.
<loke> There is also a QUIT in trivial-shell
<loke> I know, because I merged that :-)
<loke> (or maybe it's called EXIT, i can't remember)
<verisimilitude> I wasn't aware of that, but would be inclined to believe SHUT-IT-DOWN supports more implementations than that as well.
<loke> I can't remember which impelemntations trivial-shell supprots.
<loke> Hmm... sbcl, allegro, clisp, cmucl, mcl, scl, openmcl, lispworks, ecl and abcl
<verisimilitude> Well, SHUT-IT-DOWN supports eighteen, if you don't count MCL variants as more than one.
mflem has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
<verisimilitude> Take a peak at it; it's very brief.
<loke> I generally use uiop these days.
<loke> verisimilitude: Looking at the code, I can see it doesn't support exit codes.
<verisimilitude> Yes.
<antoszka> huh, what's POPLOG?
<verisimilitude> I'd support MOCL, but I can't find any documentation and the developers won't respond to my emails.
<antoszka> Never heard of such an implementation ;)
<verisimilitude> Asides from MOCL, there's just Movitz and the Lisp machines I'd want to support, but those are in odd states for searching for this.
<verisimilitude> Exit codes are irrelevant to Common Lisp and I find it inelegant to have an interface like this pay them any mind.
<verisimilitude> Would an exit code make any sense under MOCL, as one example?
<verisimilitude> It's just a UNIXism.
<epony> Like processes and files.
<LdBeth> antoszka: prolog is not even Lisp
<epony> And what is this hardware that we must use then, let's run on paper.
wigust- has joined #lisp
<jackdaniel> LdBeth: poplog is not the same thing as prolog
<verisimilitude> UNIX didn't invent processes nor files, epony, but it's done a good job at implementing them poorly.
<jackdaniel> poplog is a common runtime and a compiler suite for a variety of languages, Common Lisp included
<jackdaniel> not sure how complete CL implementation in Poplog is, I'd bet on ClTl2
wigust has quit [Ping timeout: 260 seconds]
pagnol has joined #lisp
<jackdaniel> CLtL2°
<verisimilitude> Well, it also supports Emacs-CL, which certainly isn't finished.
<epony> Good ideas stick around. Missing on an idea can always be corrected.
<jackdaniel> verisimilitude: sounds like a solid task you have acomplished – congrats
<LdBeth> jackdaniel: I remember it is a implementation of several languages including prolog
makomo has joined #lisp
<jackdaniel> sure, but looking at antoszka question prolog is not very relevant, is it?
ancient_dog has quit [Ping timeout: 256 seconds]
<antoszka> Yeah, I've read up, now I know what poplog-CL is.
<antoszka> Thanks, jackdaniel.
<jackdaniel> sure
<LdBeth> I admit I misread that
<LdBeth> Sorry about that
<jackdaniel> nothing to be sorry about, there were no malicious intent
<verisimilitude> It's the same reason you should use USER-HOMEDIR-PATHNAME instead of simply hardcoding "~/", epony.
<verisimilitude> It's Common Lisp, not Common UNIX Lisp.
<epony> Right, I need a boot loader.
<jackdaniel> being correct is a matter of forward compatibility
<jackdaniel> being almost correct is a matter of current needs
makomo has quit [Ping timeout: 255 seconds]
<jackdaniel> code ceases to be maintained, but well written code works longer
<loke> jackdaniel: Like the Maxima code I'm digging through now :-)
blurgh has joined #lisp
<jackdaniel> heh
<loke> It was well written back when it was written. These days, it's... aged.
<loke> But, it still works. :-)
smokeink has quit [Ping timeout: 256 seconds]
<loke> When was macsyma written by the way? *0's?
<loke> 80's?
<LdBeth> It is by Symbolics
<blurgh> I installed stumpwm from source using make, and it gave me a warning from cl-ppcre. Nevertheless, it compiled and I set up .xinitrc. startx gave me a blank window. loke: early '70s IIRC. It predates Symbolics. I think it was made on the ITS.
<LdBeth> 80’s
<loke> right. First versions ran on ITS
<blurgh> apparently there's a wikipedia article on it: https://en.wikipedia.org/wiki/Macsyma
<blurgh> late '60s
<LdBeth> MIT has a “tradition” of selling researches to commercial companies
<blurgh> Is it still maintained?
<epony> The only problem is the I in ITS.
<loke> blurgh: Yes. It's called
<loke> blurgh: Yes. It's called Maxima now
<loke> It's actually very good
<phoe> I think I'm about to make the first funcallable-standard-class in my life.
<LdBeth> And Symbolics was dead
<blurgh> Is that the oldest app still running? That's older than Emacs. O.O
<LdBeth> phoe: congratulations
<loke> phoe: For what?
<loke> blurgh: When it comes to Open Source software, yes. I think it's likely.
<loke> At least it's up there.
<loke> There aren't many other software packages that old that are still being maintained and developed.
<phoe> loke: I basically have a server to which clients can connect, and objects that represent operations that are permitted to be done in my system by clients.
<verisimilitude> Would it be too forward of me to mention another Lisp community and see if any of you may have used it before?
<LdBeth> blurgh: we have teco, the earliest editor
<loke> LdBeth: there is a difference though. Modern versions of TECO are full rewrites. I don't think anyone maintaining the original code base.
<phoe> They need to have some state, but it also makes sense to me that they're operations, so they should be funcallable on some arguments.
<phoe> So I thought, hell, why not a funcallable instance.
<loke> phoe: Congratulations! I've never needed funcallable instances myself :-)
<blurgh> LdBeth: Have you tried entering your name as a command?
* loke actually knows a bit of TECO. I also use ITS sometimes.
<loke> Videoteco on Linux is pretty good actually.
<LdBeth> blurgh (IRC): ldb is nothing, same to eth
<blurgh> *: You can still use ITS? Is someone running an instance?
<loke> blurgh: Sure. its.pdp10.se
<loke> for example
<loke> ITS doesn't use passwords, so anyone can log in :-)
<loke> There are a whole bunch of instances
<loke> This is a good place to start if you want to follow the work on it: https://github.com/PDP-10/its
<LdBeth> loke: seems Emacs helm uses a lot of funcallable instances. Btw, I use TOPS-20 on SDF
<loke> TOPS-20 is really good.
<phoe> LdBeth: weird, emacs has funcallable instances as well? I didn't know that
<loke> I use the one at Living computer museum. Feels kinda nice to run it on real hardware.
<loke> (even though the hardware is half the world away)
<verisimilitude> Oh well.
<verisimilitude> Would you go into more detail on this program of yours, phoe?
makomo has joined #lisp
<verisimilitude> Is the source available anywhere?
<blurgh> loke: your first link only displays a picture for me.
<LdBeth> phoe: Emacs Lisp has several CLOS imitations
<loke> blurgh: It's the screenshot page for wxmaxima
fikka has quit [Ping timeout: 255 seconds]
<blurgh> Speaking of old machines, does anyone have documentation for the Lisp Machine file systems and kernels?
<loke> blurgh: There's stuff on bitsavers
<blurgh> loke: thanks
<phoe> loke: an alternative is a standard object that holds some slots, and a method specializing on that object's class. But it's a bit inelegant in my case to have a separate method if I can just invoke that.
<phoe> blurgh: also https://lm-3.github.io/
<phoe> loke: ...invoke that object via funcall.
<loke> In my experience, I've never seen the case where a funcallable instance did more than I could do with a plain closure.
<loke> Although, I guess if you need ways to manipulate the closed-over values, it can get a bit ugly with closures.
<phoe> of course they are equivalent, so it's not a matter of which one can do more
<loke> blurgh: Us this what you were looking for?
fikka has joined #lisp
<verisimilitude> I'm curious as to how old this channel is.
<blurgh> loke: Maybe. I've heard that Lisp Machines had persistent environments (similar to Smalltalk images) and were interactive throughout. Is there documentation on the design choices for implementing this? Gap buffers and system images like Emacs?
amerlyq has joined #lisp
<ecraven> blurgh: there are various lisp machines available as virtual machines, you can try one of them
<loke> blurgh: The closest in terms of current code implementing this would be CLIM.
<phoe> 10:32 -!- Channel #lisp created Sun Aug 3 23:30:32 2003
<phoe> verisimilitude: ^
<ecraven> the Open Genera sources can be found on the web, you can look at the actual source code
<loke> It's not older than that?
<phoe> I have no idea how old it is, I only know when it was registered on Freenode
<blurgh> ecraven: I thought it was still unreleased! I'll go check it out. Thanks.
<ecraven> blurgh: well, as I said, they can be found... depending on your country, that finding may be legal or illegal
<ecraven> you might still be able to buy them, too
<verisimilitude> Alright; it's appreciated, phoe.
<phoe> verisimilitude: well, it's *at least* this old
<verisimilitude> Alright.
<blurgh> ecraven: legal in USA? I remember hearing about how someone at MIT said they would release the source code for one of the machines (MIT CADR?) but hadn't followed through at the time of writing.
<ecraven> blurgh: the mit cadr sources are freely available, as far as I know, but Symbolics' Open Genera sources haven't been open sourced, I think
<verisimilitude> It's interesting; what other Lisp communities do you all use?
fikka has quit [Ping timeout: 255 seconds]
<ecraven> I think there is a never version on github somewhere for the emulator
<blurgh> ecraven: thank you! It looks like there is an MIT CADR repo: https://github.com/hanshuebner/cadr2
<loke> verisimilitude: There are a bunch of lispers on Mastodon
<ecraven> blurgh: there should be several ;)
<LdBeth> The CADR emulator works fine except it has never considered what if the user use a Japanese keyboard layout
<verisimilitude> That's interesting; I didn't see any Lisp communities when I perused things, but I also didn't look hard.
zooey has quit [Ping timeout: 268 seconds]
<ecraven> see here: https://github.com/lm-3
<blurgh> err, wrong link. There's several cadr-on-an-fpga projects, but one emulator, here: https://github.com/joshuaeckroth/cadr/tree/master/usim
<verisimilitude> I've been meaning to setup a GNU Social instance on my server, but Debian issues want a kernel upgrade and it's a mess.
<LdBeth> Yeah, usim
<verisimilitude> Now, Mastodon works with some manner of hashtag like grouping, right; is it simply #lisp, then, loke?
kushal has quit [Remote host closed the connection]
drunkencoder has quit [Remote host closed the connection]
<phoe> loke: which mastodon instance?
<LdBeth> With CHAOS support
<loke> verisimilitude: You have to follow the right people. Check the local timelines on functional.cafe and icosahedron.website. Or just search for #lisp
<phoe> okay. thanks.
<verisimilitude> I'll keep that in mind; it's appreciated, loke.
<loke> phoe: What's your name over there?
<loke> Am I following you?
<verisimilitude> Now, what of you in particular; do you use Mastodon for this as well?
fikka has joined #lisp
<loke> what is “this”?
<verisimilitude> I meant do you use it for Lisp purposes or is it more tangential to what you usually do there.
<loke> verisimilitude: I'm not sure how to answer that.
drunkencoder has joined #lisp
<phoe> loke: none yet, I must register on one of these instances.
<epony> I find the choice of words community and use together confused.
<verisimilitude> Alright; I don't mean to pry.
<LdBeth> Gopher reader
<loke> verisimilitude: It's not that. I simply don't understand your question.
kushal has joined #lisp
<verisimilitude> I'll rephrase, then.
zooey has joined #lisp
<verisimilitude> Do you use Mastodon primarily or often for Lisp discussion or not?
<verisimilitude> I suppose, in a more general way, I'm asking how the Lisp community there is.
<loke> verisimilitude: It's a group of peple, all different. Arguably there are more than one community :-)
<loke> Just follow some peopple and see.
fikka has quit [Ping timeout: 240 seconds]
<loke> verisimilitude: Mastodon is the onlt “social” media I use with any regularity.
amerlyq has quit [Ping timeout: 240 seconds]
<loke> I also check G+ once in a while, but the mountain bike community is flooded with spammers at the moment.
orivej has quit [Ping timeout: 264 seconds]
<loke> phoe: Create an account and follow me: @loke@functional.cafe
amerlyq has joined #lisp
<verisimilitude> Alright.
<shrdlu68> LdBeth: I said "low-level" control of the terminal, i.e buffering, echoing, etc.
makomo has quit [Ping timeout: 260 seconds]
energizer has quit [Ping timeout: 255 seconds]
pyericz has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
sjl has joined #lisp
amerlyq has quit [Read error: Connection reset by peer]
amerlyq has joined #lisp
<LdBeth> shrdlu68: so ncurse uses syscalls to archive these behaviors... humm
<shka> hello to all wonderfull people!
<Shinmera> No hello for me? Rude.
<verisimilitude> Hello, shka.
<verisimilitude> Hello, Shinmera.
<shrdlu68> Hello, fellow human.
<verisimilitude> My current solution to this, shrdlu68, is to simply call stty in the sh program I use to launch the Common Lisp program.
<LdBeth> Hemlock
<shka> Shinmera: and hello Shinmera
fikka has quit [Ping timeout: 260 seconds]
<verisimilitude> Yes, LdBeth; for a supposedly file-based operating system, UNIX certainly does prefer syscalls passing C structs to files for a great many things.
<schweers> under which circumstances are calls to BREAK ignored? I am trying to debug a piece of code and can’t get it to enter the debugger anymore. Yesterday it still worked.
<schweers> it does run in a background thread, but that wasn’t a problem yesterday. I’m using sbcl and slime. any ideas?
<verisimilitude> Does INVOKE-DEBUGGER work?
sjl has quit [Ping timeout: 260 seconds]
<schweers> Before someone asks: i optimize for debug and safety, both on level 3, nothing else
<schweers> um. dunno, never used that. let me check
amerlyq has quit [Ping timeout: 268 seconds]
<schweers> I also sometimes have the contrary behaviour: I have a breakpoint somewhere, but the debugger (also) enters at some other time, which I did not intend.
<verisimilitude> Have you tried other Common Lisp implementations, as well?
<schweers> not yet, as I cannot use ECL, and CCL does not support single stepping, which is the point of this excersise
<schweers> INVOKE-DEBUGGER does not seem to be what I want.
hhdave has joined #lisp
<verisimilitude> Alright.
<verisimilitude> Will you give more context, then?
<schweers> I’m not sure which context is relevant, that’s my problem
<verisimilitude> Give all of it, then.
fikka has joined #lisp
schoppenhauer has quit [Ping timeout: 240 seconds]
<schweers> I’ve got a piece of code which runs in a separate thread, which I’d like to single-step. Yesterday this worked, but now it just seems to skip the BREAK call :/
<verisimilitude> If you don't want to, simply omit date of birth and SSN information; we've trimmed the context already.
anaumov has quit [Ping timeout: 240 seconds]
anaumov has joined #lisp
<verisimilitude> Well, if it worked yesterday, then what changed since then?
d4ryus1 has quit [Ping timeout: 240 seconds]
<schweers> nothing, that’s what I find so weird
python476 has joined #lisp
<verisimilitude> Something's obviously changed if it once worked and now doesn't.
<schweers> well, nothing I can think of. something must have changed
amerlyq has joined #lisp
<verisimilitude> How long is this program running?
<schweers> not long, at least for small inputs
fikka has quit [Ping timeout: 240 seconds]
<schweers> why?
<verisimilitude> Has it been running since you last debugged it?
<verisimilitude> That is, when it behaved as wanted.
<schweers> I’ve tried to run/debug it several times
<verisimilitude> So, how large is this program?
<schweers> it has not behaved as I’d like since I started working on this new feature in an extra git branch
<schweers> a few Klines or so
<verisimilitude> How many lines have been added in this branch that seems suspect?
fikka has joined #lisp
<schweers> not many, 10?
<verisimilitude> Does it work without those ten?
<schweers> you mean the program itself, or the breakpoint?
terpri has quit [Ping timeout: 256 seconds]
<schweers> the program itself works, I might try what happens on the other branch with an added breakpoint
<verisimilitude> I meant the breakpoint.
<schweers> works
<schweers> weird
d4ryus1 has joined #lisp
<schweers> interesting. I forgot to change the optimization settings on the master branch to debugging. it still entered the debugger
<verisimilitude> I figured your carefully selected OPTIMIZE settings were being changed somewhere.
<verisimilitude> So, that solves that, right?
<schweers> not sure, let me try something
chens has joined #lisp
<schweers> I don’t get it. the debugger works on the master branch, but not on the branch where I need it
<schweers> I put a (break) call directly into the MAIN function, as the first statement, and I still don’t land in the debugger :/
schoppenhauer has joined #lisp
<verisimilitude> What is actually being loaded into the Common Lisp implementation?
<verisimilitude> Surely, it's a simple matter of locating the offending difference between these two and it doesn't seem like it's a very large difference.
<schweers> what do you mean? I have a bunch of systems and I load one of them. Now, I found out something new. Because of a bug in one of the changes I made, the code which contained the breakpoint I actually wanted to debug was never called. So that mystery is solved. BUT: the breakpoint directly in the toplevel function I called is still not triggered.
<LdBeth> I guess cached fasl files causes problems
<schweers> Also, now that I fixed the aforementioned bug, the breakpoint I was interested in all along enters the debugger.
<schweers> hm, fasls …
<schweers> let me try something
<kammd[m]> Hey guys is there any syslog (log shipper) implemented in lisp??
ghard`` has joined #lisp
<schweers> I deleted the sbcl directory in ~/.cache and I still have the same situation. While I am happy for the moment, as I can debug the code I am really interested in, I am a little confused that a previous call to BREAK does not enter the debugger, although said code is run in the repl thread and comes earlier (it’t the first thing it should do)
<verisimilitude> I was also going to mention you should clear caches, schweers.
<kammd[m]> LdBeth: I am more interested in reading logs and shipping it over to some remote entity.. Like logstash
ghard` has quit [Read error: Connection reset by peer]
<verisimilitude> This is an interesting excerpt from the HyperSpec:
<verisimilitude> >The user interface aspects of break and cerror are permitted to vary more widely, in order to accomodate the interface needs of the implementation. For example, it is permissible for a Lisp read-eval-print loop to be entered by break rather than the conventional debugger.
<verisimilitude> I'm still fuzzy on precisely what the issue could be, schweers, due to insufficient context.
<schweers> this is my main function
<LdBeth> kammd: seems you have to assemble a reader, a parser, and a mail program
<myrkraverk> Is it possible to make a local binding, something like FLET, for a function created by a macro?
<schweers> the heavy lifting is done in WAYSPLIT, which obviously calls a myriad of other functions. In one of these other functions I have a breakpoint which now works just fine (it was never reached, which was my own fault), but this is not the point. See that the very first expression in MAIN is (BREAK)? that is not triggered when I call MAIN.
<myrkraverk> That is, when the macro returns a function, can I make it a local binding for the function space?
<verisimilitude> So, Cloudflare prevents me from viewing this, schweers.
<schweers> how so?
<kammd[m]> LdBeth: Yep.. Was wondering if there is any library/tool which does some of that.. Don't want to reinvent the wheel..
<verisimilitude> Cloudflare seeks out and blocks several types of VPN and whatnot and pastebin uses Cloudflare.
<schweers> ugh
<verisimilitude> Try using this: http://paste.lisp.org/
Kundry_Wag has joined #lisp
<myrkraverk> I thought paste.lisp.org closed down.
<schweers> anyway, the function looks like this: (defun main (args) (break) (do-stuff-with args))
<verisimilitude> >Due to continued abuse, this service has been disabled
<verisimilitude> Nevermind.
* LdBeth sent a long message: LdBeth_2018-04-04_09:32:25.txt <https://matrix.org/_matrix/media/v1/download/matrix.org/kUZGRTXJfUkgmThcCexubYiA>
<verisimilitude> Well, that's certainly queer, schweers.
<schweers> I call MAIN directly, so I know for a fact that the function is called. It’s in the same file as the other code I was discussing here, i.e. same optimizations. Any ideas why this (break) call does not enter the debugger?
<verisimilitude> I'd recommend you try to use a different implementation and see how that debugs.
<schweers> mind you that I don’t need the breakpoint there, I just put it there to see if it would trigger
<verisimilitude> SBCL sometimes has bugs.
<verisimilitude> I don't know enough about this particular issue of yours to know if it's a bug, but it's a possibility.
<LdBeth> kammd: there’s not much wheels 😏
<myrkraverk> Is there a way to SETF a function, which is created by a macro, to some kind of local (not top-level) binding?
Kundry_Wag has quit [Ping timeout: 240 seconds]
<verisimilitude> Give an example of your earlier question, myrkraverk.
<kammd[m]> LdBeth: heh.. I was afraid of that..
<myrkraverk> verisimilitude: to be explicit, I want to bind locally a function (if possible) returned by postmodern:prepare
<verisimilitude> So, you want something resembling this:
<verisimilitude> (let (f) (lambda () (setf f (macro))))
<myrkraverk> yes.
<verisimilitude> Well, then do that; I don't see the issue.
<myrkraverk> the macro returns a function.
<verisimilitude> For an example of a macro that returns a function, see FORMATTER.
<verisimilitude> So, simply MACROEXPAND-1 FORMATTER.
<LdBeth> Macros is expanded before eval
<LdBeth> So from the point of view of SETF it is just a function
random-nick has joined #lisp
<myrkraverk> The function created by the macro has arguments according to $Ns in the statement.
schweers has quit [Ping timeout: 276 seconds]
nika has quit []
<verisimilitude> I'm not seeing the issue, myrkraverk.
<LdBeth> Like Clojure’s anonymous function?
<verisimilitude> Well, it's been fun; I'll probably return at some point.
verisimilitude has left #lisp ["ERC Version 5.3 (IRC client for Emacs)"]
<myrkraverk> Ok, so here's what I have currently.
<LdBeth> Me neither
<myrkraverk> (let ((foo (prepare "select $1::text"))) (format t "~a" (funcall foo "Hello, Postgres")))
<myrkraverk> Is what I have right now; since (prepare...) returns a function that takes indeterminate number of arguments, I don't know how to avoid the funcall, which I personally find ugly.
ghard``` has joined #lisp
<myrkraverk> As in, in the general case; just wrapping it isn't what I wanted originally.
schweers has joined #lisp
ghard`` has quit [Ping timeout: 255 seconds]
<LdBeth> myrkraverk: I would rewrite prepare to allow ignoring arguments
_cosmonaut_ has joined #lisp
<phoe> myrkraverk: I use CL-YESQL that automatically turns SQL queries into CL functions.
<phoe> https://github.com/TBRSS/cl-yesql Somewhat tricky to get it to run at first but fun and working.
<myrkraverk> phoe: I'm quite happy with postmodern for the most part; it's only this slight "blight" when I don't want global functions that bother me.
<phoe> myrkraverk: I remember there was a construct that allowed to lexically bind an anonymous function to a function name
<phoe> YES
<loke> phoe: (labels ((foo () (funcall fn))) ...)
<phoe> serapeum:fbind
<flip214> also, there's the (:select ...) syntax that would allow to fetch the number of parameters...
<phoe> (fbind ((my-fn (prepare "select $1::text"))) (format t "~a" (my-fn)))
<phoe> myrkraverk: this avoids an explicit funcall.
<loke> phoe: doesn't FBIND expand into something similar to what I did?
cromachina_ has joined #lisp
<phoe> loke: not really. I remember that FBIND is much more complicated than that.
stux|RC has joined #lisp
<loke> phoe: Yes. I'm looking at it. It expands your FBIND into a MACROLET
deba5e12 has joined #lisp
karswell_ has joined #lisp
<loke> I'm not sure that's what you'd expect
<loke> You won't be able to do (fbind ((foo ...)) #'foo)
Shinmera- has joined #lisp
captgector has joined #lisp
<flip214> ain't it easy to have a macro that uses a local inline function to do the FUNCALL (GENSYM)?
<loke> I guess the macro stuff will be faster, but I'd much prefer a LABELS expansion.
liead has joined #lisp
adlai has quit [Disconnected by services]
DGASAU` has joined #lisp
liead is now known as adlai
<loke> flip214: exactly.
SAL9000_ has joined #lisp
shka_ has joined #lisp
sword` has joined #lisp
sjl has joined #lisp
isoraqathedh_ has joined #lisp
himmAllRight17_ has joined #lisp
gabiruh has joined #lisp
ozzloy_ has joined #lisp
tokik_ has joined #lisp
khrbt_ has joined #lisp
arrdem_ has joined #lisp
phadthai_ has joined #lisp
tessier_ has joined #lisp
vert2 has joined #lisp
Wojciech_K has joined #lisp
omilu_ has joined #lisp
uint_ has joined #lisp
chens has quit [Remote host closed the connection]
nopf_ has joined #lisp
funnel_ has joined #lisp
nullman` has joined #lisp
cgay_ has joined #lisp
pankracy_ has joined #lisp
Cthulhux` has joined #lisp
copec_ has joined #lisp
yeticry_ has joined #lisp
dlowe_ has joined #lisp
sjl has quit [Ping timeout: 264 seconds]
flazh1 has joined #lisp
Lord_Nightmare2 has joined #lisp
tomaw_ has joined #lisp
eponym has joined #lisp
pagnol has quit [*.net *.split]
angelo|2 has quit [*.net *.split]
omilu has quit [*.net *.split]
yeticry has quit [*.net *.split]
shka has quit [*.net *.split]
nullman has quit [*.net *.split]
epony has quit [*.net *.split]
himmAllRight has quit [*.net *.split]
karswell has quit [*.net *.split]
Murii has quit [*.net *.split]
sword has quit [*.net *.split]
presiden has quit [*.net *.split]
arrdem has quit [*.net *.split]
flazh has quit [*.net *.split]
tomaw has quit [*.net *.split]
Oddity has quit [*.net *.split]
SAL9000 has quit [*.net *.split]
fouric has quit [*.net *.split]
khrbt has quit [*.net *.split]
gabiruh_ has quit [*.net *.split]
stux|RC-only has quit [*.net *.split]
cromachina has quit [*.net *.split]
nopf has quit [*.net *.split]
tokik has quit [*.net *.split]
uint has quit [*.net *.split]
isoraqathedh has quit [*.net *.split]
deba5e12_ has quit [*.net *.split]
cgay has quit [*.net *.split]
libreman has quit [*.net *.split]
ozzloy has quit [*.net *.split]
tessier has quit [*.net *.split]
vhost- has quit [*.net *.split]
dddddd has quit [*.net *.split]
igemnace has quit [*.net *.split]
dlowe has quit [*.net *.split]
vert2_ has quit [*.net *.split]
gector has quit [*.net *.split]
Shinmera has quit [*.net *.split]
Lord_Nightmare has quit [*.net *.split]
nyangawa` has quit [*.net *.split]
nhandler has quit [*.net *.split]
copec has quit [*.net *.split]
tkd has quit [*.net *.split]
phadthai has quit [*.net *.split]
funnel has quit [*.net *.split]
Cthulhux has quit [*.net *.split]
DGASAU has quit [*.net *.split]
WojciechK has quit [*.net *.split]
pankracy has quit [*.net *.split]
Lord_Nightmare2 is now known as Lord_Nightmare
dlowe_ is now known as dlowe
DGASAU` has quit [Write error: Connection reset by peer]
presiden has joined #lisp
DGASAU`` has joined #lisp
funnel_ is now known as funnel
tkd has joined #lisp
nhandler has joined #lisp
igemnace has joined #lisp
dddddd has joined #lisp
Bike has joined #lisp
nowhere_man has joined #lisp
18VADOPXF has joined #lisp
Murii has joined #lisp
FAUST|siccegge has quit [Ping timeout: 264 seconds]
DGASAU`` has quit [Write error: Connection reset by peer]
nowhereman_ has quit [Ping timeout: 240 seconds]
libreman has joined #lisp
18VADOPXF has quit [Ping timeout: 615 seconds]
pagnol has joined #lisp
angelo|2 has joined #lisp
fouric has joined #lisp
vhost- has joined #lisp
Harag1 has joined #lisp
DGASAU`` has joined #lisp
raynold has quit [Quit: Connection closed for inactivity]
Harag1 has left #lisp [#lisp]
Harag1 has joined #lisp
Harag1 has quit [Quit: Harag1]
Oddity has joined #lisp
FAUST|siccegge has joined #lisp
Harag has joined #lisp
Kundry_Wag has joined #lisp
lieven has quit [Quit: WeeChat 1.6]
vert2 has joined #lisp
vert2 has quit [Changing host]
lieven has joined #lisp
Kundry_Wag has quit [Ping timeout: 276 seconds]
pagnol has quit [Ping timeout: 256 seconds]
DGASAU`` is now known as DGASAU
damke has joined #lisp
Oddity has quit [*.net *.split]
damke_ has quit [Ping timeout: 264 seconds]
Shinmera- is now known as Shinmera
damke has quit [Ping timeout: 264 seconds]
Oddity has joined #lisp
Oddity has quit [Changing host]
Oddity has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
nowhere_man has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
m00natic has joined #lisp
damke has joined #lisp
damke_ has joined #lisp
terpri has joined #lisp
damke has quit [Ping timeout: 264 seconds]
damke_ has quit [Ping timeout: 264 seconds]
pagnol has joined #lisp
damke_ has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
damke_ has joined #lisp
EvW has joined #lisp
Bike is now known as Bicyclidine
rumbler31 has joined #lisp
rumbler31 has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 260 seconds]
wxie has joined #lisp
Colleen has quit [Quit: Colleen]
Colleen has joined #lisp
orivej has joined #lisp
fikka has joined #lisp
damke has joined #lisp
TMA has quit [Ping timeout: 256 seconds]
damke_ has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 240 seconds]
rpg has joined #lisp
TMA has joined #lisp
wxie has quit [Remote host closed the connection]
wxie has joined #lisp
damke_ has joined #lisp
damke has quit [Read error: Connection reset by peer]
fikka has joined #lisp
hiroaki has quit [Ping timeout: 255 seconds]
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Posterdati has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 268 seconds]
hiroaki has joined #lisp
kori has quit [Quit: WeeChat 1.7.1]
kori has joined #lisp
kori has quit [Changing host]
kori has joined #lisp
<phoe> beach: Have you thought about protocols in case of funcallable instances?
<phoe> Because suddenly the object itself is funcallable, which does not fully fit in the definition of protocol described as a set of generic functions and protocol classes.
Folkol has joined #lisp
<Bicyclidine> mop generic-function
<Bicyclidine> don't the generic-function-foo functions constitute a protocol?
wxie has quit [Quit: Bye.]
<phoe> yep, they do, but I don't mean a protocol for handling generic functions
<phoe> I mean a protocol where funcallable objects which are not GFs are a part of that protocol
<phoe> I just realized I'm speaking of a terribly unspecific thing; I'll try to make it more concrete and then post back
<Bicyclidine> i mean, it's a protocol where funcallable objects are important.
<Bicyclidine> it even has classes you don't instantiate, like generic-function.
<phoe> hm
<phoe> yes, I'll read into that.
Posterdati has joined #lisp
DVSSA has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
<Shinmera> b
<phoe> b?
fikka has quit [Ping timeout: 260 seconds]
igemnace has quit [Quit: WeeChat 2.1]
<Shinmera> Buffer switch failure
fikka has joined #lisp
kori has quit [Quit: WeeChat 1.7.1]
kori has joined #lisp
kori has quit [Changing host]
kori has joined #lisp
rpg has joined #lisp
tomlukeywood has joined #lisp
rpg has quit [Client Quit]
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
Kundry_Wag has joined #lisp
arbv has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
arbv has joined #lisp
<phoe> For creating a funcallable class, is it enough to subclass funcallable-standard-object?
Bike has joined #lisp
<jackdaniel> not subclass
<jackdaniel> you should make it a metaclass
<jackdaniel> like this: (defclass fclass () (:metaclass funcallable-standard-class))
<phoe> so (defclass foo (funcallable-standard-object) ()) will not do what I want, will it?
<Bike> no. having a function slot can be controlled by allocate-instance, which is specialized to do so with funcallable-standard-class.
sendai___ is now known as azimut
<phoe> so (defclass foo (funcallable-standard-object) () (:metaclass funcallable-standard-class)) it is
<Bike> i think with that metaclass the funcallable-standard-object is implied.
<phoe> yep, you are correct.
damke_ has quit [Ping timeout: 264 seconds]
EvW has quit [Read error: Connection reset by peer]
EvW has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
jcowan has joined #lisp
jcowan_ has quit [Ping timeout: 255 seconds]
makomo has joined #lisp
pagnol has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
tomlukeywood has quit [Quit: tomlukeywood]
damke_ has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 255 seconds]
_cosmonaut_ has quit [Ping timeout: 255 seconds]
orivej has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
<beach> phoe: I haven't really thought about it, but my initial reaction is that there is nothing special here.
pierpa has joined #lisp
damke_ has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
igemnace has joined #lisp
copec_ has quit [Quit: checkity check out.]
warweasle has joined #lisp
nmajo has quit [Ping timeout: 248 seconds]
copec has joined #lisp
fikka has joined #lisp
_cosmonaut_ has joined #lisp
Arcaelyx has joined #lisp
fourier has joined #lisp
sjl has joined #lisp
nmajo has joined #lisp
oleo has joined #lisp
Arcaelyx_ has quit [Ping timeout: 240 seconds]
damke has joined #lisp
damke__ has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
shrdlu68 has quit [Quit: Lost terminal]
damke has quit [Ping timeout: 264 seconds]
damke__ has quit [Ping timeout: 264 seconds]
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
damke__ has joined #lisp
Kundry_Wag has joined #lisp
Cymew has quit [Remote host closed the connection]
Cymew has joined #lisp
fikka has joined #lisp
Kundry_Wag has quit [Ping timeout: 246 seconds]
Cymew has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
<rumbler31> will ELS talks be recorded this year?
fourier has quit [Ping timeout: 276 seconds]
makomo has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
nmajo has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
jcowan has quit [Ping timeout: 240 seconds]
DVSSA has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
nmajo has joined #lisp
Cymew has joined #lisp
blurgh has quit [Remote host closed the connection]
blurgh has joined #lisp
fikka has joined #lisp
wooden_ has quit [Read error: Connection reset by peer]
wooden_ has joined #lisp
Cymew has quit [Ping timeout: 276 seconds]
Cymew has joined #lisp
<oleo> which package has the symbol distinct ?
saturn2 has quit [Ping timeout: 256 seconds]
rumbler31 has quit [Read error: Connection reset by peer]
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
CrazyEddy has quit [Read error: Connection reset by peer]
Cymew has quit [Ping timeout: 268 seconds]
damke__ has quit [Ping timeout: 264 seconds]
heisig has quit [Quit: Leaving]
Cymew has joined #lisp
CrazyEddy has joined #lisp
saturn2 has joined #lisp
fikka has joined #lisp
damke__ has joined #lisp
<pierpa> ?
DVSSA has quit [Ping timeout: 240 seconds]
Cymew has quit [Ping timeout: 240 seconds]
jcowan has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
Cymew has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
DVSSA has joined #lisp
EvW has quit [Remote host closed the connection]
fikka has joined #lisp
Denommus has joined #lisp
khisanth_ has quit [Ping timeout: 252 seconds]
EvW has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
scymtym has quit [Ping timeout: 255 seconds]
fikka has joined #lisp
phadthai_ is now known as phadthai
rumbler31 has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 240 seconds]
nmajo has quit [Ping timeout: 260 seconds]
khisanth_ has joined #lisp
fikka has joined #lisp
scymtym has joined #lisp
rpg has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
nmajo has joined #lisp
shangul has joined #lisp
fikka has joined #lisp
EvW1 has joined #lisp
EvW1 is now known as EvW
EvW has quit [Ping timeout: 255 seconds]
<shangul> What book do you suggest for someone who already had experiences with other languages(mostly C-family) to start Common Lisp?
DVSSA has quit [Ping timeout: 265 seconds]
<beach> shangul: Most people here recommend PCL.
orivej has joined #lisp
<shangul> beach, for someone like I said?
<beach> "Practical Common Lisp" by Peter Seibel.
<beach> Yes, for your situation.
fikka has quit [Ping timeout: 256 seconds]
<beach> It is also important that you consult with #lisp participants before you attempt to decide on an implementation, and editor, etc.
<beach> A lot depends on what you already know, what OS you are on, what you are willing to learn, etc.
fikka has joined #lisp
<pierpa> and what style you can bear
<beach> pierpa: What style are you referring to?
<Shinmera> A good starting point though is https://portacle.github.io
<Shinmera> For an environment to use, that is
<pierpa> I find PCL's style too condescending for my taste
<beach> pierpa: Did you read it when you had no Common Lisp experience?
* jcowan 's reader skipped over "OS" and read "what you are on"
<pierpa> No
omilu_ has quit [Read error: Connection reset by peer]
<jcowan> I wanted to get permission to rewrite it as Practical ISLisp, but apparently the rights are very tangled.
<pierpa> It came some 20 or 30 years too late for that :)
<Shinmera> PCL, condescending? really?
ldb has joined #lisp
mangul has joined #lisp
<jcowan> eventually I should get back to my ISLisp effort
shangul has quit [Disconnected by services]
<pierpa> Unknown a lot of people likes it. That's just my taste.
<pierpa> *I know
mangul is now known as shangul
<Shinmera> I don't care whether you like it or not, I'm debating your assertion that it is condescending.
<jcowan> I don't see how that can be usefully argued when it depends on perspective. One person's condescension is another person's welcomed handholding.
<Shinmera> Or questioning, rather.
<beach> Also, pierpa was in a very different situation when he read it, compared to that of shangul.
<shangul> beach, decide on an implementation?going with something other than common lisp?
<beach> shangul: Common Lisp is a language with many implementations.
<ldb> i use clozure cl on mac
<shangul> I thought Common Lisp is a Lisp implementation.
<beach> It is not.
m00natic has quit [Remote host closed the connection]
<beach> It is a standard.
<jcowan> beach: I have tried to build the papers in the SICL tree, but some have no Makefiles, some don't build, and some build but don't produce the whole paper
sauvin has quit [Read error: Connection reset by peer]
<jcowan> I see from your links that some are on metamodules, but there seems to be no index of them
<shangul> beach, the book(PCL) probably has picked one up. someone could go with that.
<beach> shangul: This channel is dedicated to Common Lisp, so that's the only language you will see discussed, but there are at least 3 reasonable general-purpose implementations, and a few more for special situations.
<beach> shangul: It pretty much follows the standard.
<jcowan> or rather there is an index, but it does not include either the LispOS or first-class environments papers
<shangul> beach, And about editor, someone could pick what they are already good with it.
<beach> shangul: That might not be a good idea for Common Lisp. Depending on what you are good at of course.
<beach> jcowan: OK, let me check...
<shangul> beach, I think you should explain these more to me.
<ldb> and you don't necessarily need emacs
<beach> shangul: Anyone here can explain it.
* jcowan is insane enough to edit Lisp with "ex"
<beach> shangul: Emacs with SLIME is probably the best environment for editing Common Lisp code.
* ldb is a TECO user
<jcowan> Coolness
* jcowan was a Teco user but not lately
<beach> shangul: If you use something else, you are not only depriving yourself of some important functionality, but are also likely to submit code that does not follow widely accepted conventions.
<beach> shangul: And that is not polite to the people you are asking for help.
<beach> shangul: So they are likely not to be polite back.
<shangul> beach, are you talking about code's cleanness?
<jcowan> Emacs sets the standard for "readable Lisp code"
<beach> shangul: To begin with, simple things like indentation and spacing.
<jcowan> or rather, its standard formatter does
sauvin has joined #lisp
<beach> shangul: corresponding to typographical conventions in a natural language.
shangul has quit [Remote host closed the connection]
<beach> shangul: Idiomatic code is at a higher level.
<ldb> jcowan: emacs doesnt work well with heavy dispatch characters
* jcowan nods
pjb has joined #lisp
<jcowan> IIRC it also has problems with vertical-barred symbols that contain spaces
quazimod1 has quit [Ping timeout: 240 seconds]
<beach> jcowan: The Bootstrapping paper is embryonic, but it has a Makefile and it builds for me.
<beach> I am doing one at a time here.
krasnal has joined #lisp
<beach> ELS is not really a paper. It seems to be some kind of presentation, but it is probably not important.
<beach> Control-flow is not yet a paper. I'll get back to you when it becomes one.
rumbler31 has joined #lisp
kushal has quit [Remote host closed the connection]
kushal has joined #lisp
<beach> Environment-info is embryonic. You don't have to worry about it at this point.
<beach> Generic-dispatch builds here.
<beach> Global-environments builds here.
<beach> LOOP build here.
<jcowan> trying those three
<beach> Merge-sort is embryonic. We don't have the research results yet. You can safely forget about it.
<beach> Partial-inlining builds here.
<jcowan> Are you familiar with Shivers's algo for mergesorting lists in constant space? It has problems when the implementation has a write barrier, as you might expect, but is very interesting
<beach> Merge sort on a list is trivial.
<beach> ... with constant additional space.
<beach> Merge sort on a vector is way trickier.
<beach> My research is about vectors.
Karl_Dscc has joined #lisp
<beach> Reverse-order builds here.
<beach> Rewrite builds here.
<beach> Satiation builds here.
Kundry_Wag has joined #lisp
<beach> Sequence-functions does not build.
<Xach> beachbuildbot
* jcowan chuckles
<jcowan> https://github.com/scheme-requests-for-implementation/srfi-32/blob/master/sort-ref-impl/lmsort.scm <-- Shivers's algorithm (should be readable even without knowing Scheme)
verisimilitude has joined #lisp
quazimodo has joined #lisp
<beach> jcowan: I can ask my favorite coauthor to do the commits so that it builds, but it won't be today.
<jcowan> Thanks
<beach> Sliding-GC builds.
<jcowan> I wouldn't call the above trivial
<verisimilitude> On the topic of how Emacs formats Common Lisp, I'm disappointed with how LOOP is done; I always manually format it.
<verisimilitude> What do you think?
fourier has joined #lisp
<Bike> there's a slime contrib that indents it differently
<dlowe> I've changed the way I break up loop statements to look pretty on emacs
<beach> verisimilitude: That's because you are not using the slime-indentation contributation.
<jcowan> beach: Obviously I gave up prematurely
<beach> Type-inference builds.
<beach> I believe that's all of them.
<verisimilitude> I'll look into that, beach; it's appreciated.
<beach> verisimilitude: Anytime.
jdz has quit [Ping timeout: 246 seconds]
eponym has quit [Quit: QUIT]
<beach> jcowan: He is optimizing by not breaking runs of ordered objects.
<beach> jcowan: But that optimization is not necessary for it to be constant space.
<jcowan> Indeed
quazimodo has quit [Ping timeout: 256 seconds]
<beach> Again, my research is about using merge sort on vectors. There are algorithms that use constant space already, but the overhead is often great.
<verisimilitude> On that further topic of looping forms, which do you find yourself using often? ITERATE is nice, but its being a library makes it much less usable in many instances. LOOP is often most brief if you can fit your loop perfectly to it. I find myself using PROG and PROG* for many loops with complex control flow needs, but also with very simple loops that aren't perfectly expressed with the other macros.
nowhere_man has joined #lisp
vibs29 has quit [Ping timeout: 264 seconds]
<beach> jcowan: The point of the research is similar to that of the Reverse-order paper. Check how much stack is available, and use a big chunk of it. That way you avoid the overhead. If little stack is available (which almost never happens), then use the high-overhead constant-space algorithm published in the literature.
vibs29 has joined #lisp
jdz has joined #lisp
<beach> verisimilitude: I use LOOP a lot. It is very rare that I have such a complex control flow that LOOP can not express it. In fact, even control flow that LOOP can express perfectly well can be too complex for the maintainer.
<beach> verisimilitude: For the others (typically state machines) I use TAGBODY.
raynold has joined #lisp
<jcowan> Is the high-overhead constant-space algo you mention stable, and if so, is it natural?
<LdBeth> verisimilitude: (loop (throw))
<pierpa> ITERATE is nice, and if you want to maintain readability for LOOPers you can restrict yourself to the common subset
<beach> jcowan: There are both stable and non stable algorithms in the literature. I don't know what "natural" means in the context of an algorithm.
<beach> I mean, algorithms are made by people who are part of nature, so in that sense they are natural.
<jcowan> exploits existing ordering, in the manner of Shivers's algorithm
<sjl> verisimilitude: I use LOOP in my libraries to avoid forcing another dependency on users, but ITERATE in my own personal code
<jcowan> which is O(n) when the input is already sorted
<beach> But some people remove people from their concept of "nature" and then no algorithm is found in nature.
<verisimilitude> Another reason I'd use PROG or PROG* over LOOP is to avoid needing to deal with the formatting issues or precede any Lisp with DO, so I'd call that a further advantage.
<beach> jcowan: I don't remember. I think getting constant space is probably hard enough as it is.
<verisimilitude> What about the algorithms animals use, beach?
<beach> verisimilitude: I think that is off topic.
<verisimilitude> Well, alright.
<pierpa> jcowan: I have seen that property called "smoothness"
markong has joined #lisp
<LdBeth> The normal distribution of random typing
<verisimilitude> I'd simply argue that algorithms are everywhere in nature, but I can see how that would diverge too much.
<jcowan> beach: AYC can you send me a pointer to a stable constant space vector merge sort, either code or description?
<beach> jcowan: You are asking a lot, especially since dinner is minutes away. I'll do my best, but you may have to remind me.
<jcowan> AYC = at your convenience
<jcowan> I will try and remind you
<beach> jcowan: Fast Stable Merging and Sorting in Constant Extra Space.
<beach> jcowan: Bin-chao Huang and Michael A Langston.
<jcowan> ta
epony has joined #lisp
pankracy_ is now known as pankracy
k-stz has joined #lisp
<beach> 24 pages.
pankracy has quit [Changing host]
pankracy has joined #lisp
damke__ has quit [Ping timeout: 264 seconds]
* jcowan fetches it with thanks to seagoing individuals everywhere
hhdave has quit [Ping timeout: 255 seconds]
<jcowan> failed, but found elsewhere
sellout- has quit [Read error: Connection reset by peer]
<beach> jcowan: If you continue with this level of intellectual curiosity, you might even want to contribute to SICL one day. :)
* jcowan is a busy, busy bee these days
<jcowan> f/t industrial job, Scheme cat-herder
sellout- has joined #lisp
<jcowan> But I always have time to learn new things
rumbler31 has quit [Read error: Connection reset by peer]
<jcowan> if nothing else, while commuting
<beach> Heh.
segmond has quit [Ping timeout: 260 seconds]
jack_rabbit has quit [Ping timeout: 276 seconds]
rumbler31 has joined #lisp
<verisimilitude> I'm curious if any of you discuss Lisp on imageboards, as there's one area in particular I believe some of you may find interesting.
jack_rabbit has joined #lisp
_cosmonaut_ has quit [Ping timeout: 240 seconds]
segmond has joined #lisp
<ldb> SICP, Industial Common Lisp and purity in Scheme
<jcowan> Purity of what?
<ldb> of the S stared word
<ldb> actually neither Scheme nor CL can be considered as "Pure" in my mind
<fourier> pure only haskell and io and the family ?
<fourier> and "Pure" language itself ofc
<ldb> the only and true purity is not in haskell my friend but in data flow languages
<jcowan> "Pure" is not pure
<jcowan> nevertheless I love it; it is ML on the outside, Lisp on the inside
<jcowan> ldb: FBP ftw
<dlowe> yawn. purity isn't a worthwhile goal. it's a butterfly to amuse the idle.
<fourier> ha indeed pure is not pure, i can see it now :) confused with Clear
<fourier> *Clean
al-damiri has joined #lisp
<jcowan> Pure purity is not a good thing, but mostly purity is, I think
makomo has joined #lisp
<jcowan> how many people actually exploit the mutability of conses?
<jcowan> Oh, Clean
<ldb> i guess it is a pun
<jcowan> I should learn about that some time
<jcowan> "Pure" is like "SICL"
<jcowan> not the name of anything else, sounds good, meaning irrelevant/unknown
<jcowan> pervasive laziness is unmitigatedly a bad thing (as opposed to facultative laziness which is sometimes useful)
<jcowan> Haskell is lazy only to force it to be pure
<Bike> mutating conses isn't rare. messing with alists and such
<verisimilitude> I agree, dlowe.
<jcowan> Eh? The whole point of alists IMO is that you can push and pop things off them, which only works if they are pure. Plists are another matter.
<verisimilitude> I use RPLACA and RPLACD a decent amount, jcowan.
<jcowan> eek
<Bike> i mean, in theory, yeah, but sometimes you have an alist where you know a key is there, like a cheap structure kind of deal
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jcowan> Sounds more expensive than an actual structure, but I see your point
<jcowan> Racket switched to pervasive immutable conses and almost nobody noticed
<ldb> jcowan: the first time i do prog i used a list to store data in emacs lisp and get f**ked by mutating conses
<jcowan> (in the sense of "code broke" as opposed to "people made a fuss"
Kundry_Wag has quit [Remote host closed the connection]
<jcowan> )
<verisimilitude> You should look at the source to ACUTE-TERMINAL-CONTROL as an example. To explain, I use the SGR, SELECT GRAPHIC REPERTOIRE, control function to change colors; this is a variadic control function and I express this in Common Lisp by requiring a list as the parameter; I didn't want to allocate a new list every time the relevant functions are called, so I have a CONS cell bound that I use RPLACA with to recycle whenever necessary.
<dlowe> 99% of the time, when I start by using nested generic sequences, I eventually end up converting it all to structures.
<jcowan> One advantage of immutable pairs is that rest-lists need not be copied, nor do you need to do data flow analysis to make sure they are not mutated
<jcowan> Rest-lists are the only point (in Scheme at least) at which the PL touches the data structures
<jcowan> Despite this, we felt they were way too revolutionary for R7RS
isoraqathedh_ is now known as isoraqathedh
<ldb> dlowe: in my opinion structs and arrays should be always choosed over lists
<Bike> CL rest lists are already unmodifiable, it's just not enforced strictly
<Bike> immutable conses would definitely be nice to have
<jcowan> R7RS-large does have them with a complete parallel library
<jcowan> parallel to the mutable-list lib, I mean, not parallel in the sense of parallel computing
<jcowan> we also have random-access lists
lnostdal has quit [Ping timeout: 248 seconds]
knicklux has joined #lisp
Kundry_Wag has joined #lisp
* ldb hates trees
<verisimilitude> That's not strictly true, Bike.
<verisimilitude> With my understanding of the way the standard is written, you can modify rest lists, but only do so well if you make certain to never do this with APPLY.
<verisimilitude> Even then, it seems like you could do even that, so long as you don't use a constant as the rest list.
<Bike> "constant, conforming programs must neither rely on the list structure of a rest list to be freshly consed, nor modify that list structure" says apply
<Bike> a few years ago i spent time implementing a scheme like language with immutable conses
<Bike> handled circularity very well also, which was annoying to do and mostly pointless
<verisimilitude> The beginning of that sentence is important.
<verisimilitude> >Because a function can neither detect whether it was called via apply nor whether (if so) the last argument to apply was a constant, conforming programs must neither rely on the list structure of a rest list to be freshly consed, nor modify that list structure.
shka has joined #lisp
<verisimilitude> So, it seems fair game to modify the rest list, so long as it's not a constant and it doesn't need to be freshly consed.
<Bike> i don't think it's relevant
<Bike> i think if an implementation did whatever with rest lists and a user modified one and didn't get what they expected and complained, the implementors probably wouldn't care
<verisimilitude> Well, they'd be within their rights to not care.
<verisimilitude> If it pertained to this, anyway.
ldb has quit [Quit: leaving]
<verisimilitude> In practicality, constant modification is usually permitted and lists are probably simply usually freshly consed.
rpg has joined #lisp
<TMA> verisimilitude: the whole sentence does not permit conforming programs to modify or expect freshness, there is no exceptions for programs that can provably avoid the APPLY
<verisimilitude> It's the ``because'' that makes me believe this, TMA.
glv has joined #lisp
<TMA> verisimilitude: the emptines of the latter notwithstanding. an implementation is permitted to use APPLY during evaluation of all function calls
<verisimilitude> It seems clear to me that it's saying that, since APPLY can recycle the rest list, it can't be expected to be freshly consed and, in addition to this, it's possible a constant may be used in this way, and so only because of this should it not be done.
<verisimilitude> So, it seems to me that it simply derives from the constant modification rules.
<TMA> verisimilitude: the 'because' is just a supporting argument in that case. it does not limit the prohibition in any way
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
<verisimilitude> I can also see that reading of it, yes.
Quetzal2 has joined #lisp
<verisimilitude> I suppose, either way, it's splitting hairs, as an implementation is likely to only ever try to detect this statically and not care, otherwise.
<verisimilitude> Regardless, it's somewhat interesting.
<TMA> verisimilitude: the other part is that if your interpretation of the standard were true, then adding (apply #'foo '(1 2 3)) to your *conforming program would render it nonconforming. It seems absurd that this is the intended reading. This could make any program with (APPLY ... constant) nonconforming.
rumble has joined #lisp
Lord_of_Life has quit [Excess Flood]
grumble has quit [Killed (kornbluth.freenode.net (Nickname regained by services))]
rumble is now known as grumble
FreeBirdLjj has joined #lisp
Lord_of_Life has joined #lisp
<verisimilitude> That would only be the case if FOO modified its rest list, TMA.
* jackdaniel this that this interpretation simply doesn't hold and there is no point in arguing for it
<jackdaniel> (but has better things to do than fight for it)
mflem has joined #lisp
energizer has joined #lisp
<jackdaniel> thinks*
milanj has joined #lisp
<verisimilitude> Well, alright. I thought it was a fun discussion, either way.
nowhere_man has quit [Ping timeout: 265 seconds]
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
ghard``` has quit [Ping timeout: 255 seconds]
ghard``` has joined #lisp
scymtym has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 260 seconds]
<drmeister> Hey - any vlime users online at the moment?
LiamH has joined #lisp
<drmeister> I'm trying to get it up and running. I have a server running and I'm trying to get vim to connect to it.
<drmeister> vlime is installed (apparently correctly) in my vim.
<drmeister> Typing \cc within vim generates an error message
<sjl> drmeister: what message?
<sjl> (I use vlime)
FreeBirdLjj has quit [Remote host closed the connection]
<drmeister> Hitting \ makes my vim say "doot" (error)
fikka has joined #lisp
<drmeister> I'm editing a .lisp file
FreeBirdLjj has joined #lisp
<drmeister> Are there any tests you recommend to see if things are configured properly?
<sjl> drmeister: what does `:let maplocalleader` say?
<sjl> I think all the Vlime shortcuts are prefixed with localleader, which most people have set as \ these days, but I don't know what the default actually is
<drmeister> sbcl is saying: vlime-usocket - Server created: (#(127 0 0 1) 7002
<drmeister> E121: Undefined variable: maplocalleader
FreeBird_ has joined #lisp
<sjl> try putting `let maplocalleader = "\\"` in your vimrc
<jackdaniel> I see vim is as much fun as emacs
<drmeister> sjl: Thank you for your time. I added that to .vimrc and restarted vim - no errors
<drmeister> Now: :let maplocalleader --> \
<sjl> yeah
<sjl> are you familiar with leader and localleader?
<drmeister> Hitting \ still makes vim say *boop* through the speaker.
<sjl> Hrm
<sjl> Just the \ on its own? or \cc?
<drmeister> Just the \ on its own.
<drmeister> \cc makes it delete the current line and puts it into insert mode.
<drmeister> Not what I think it should be doing.
<sjl> huh, that's odd.
FreeBirdLjj has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 265 seconds]
<sjl> Well, if it's not mapped that's what it should be doing (\ -> unmapped, beeps, cc-> change current line)
<drmeister> Yeah - definitely using :let maplocalleader I get...
<drmeister> maplocalleader \
<sjl> But Vlime should be mapping these keys in .lisp files
<drmeister> I understand - something is not right.
<sjl> You're saying it beeps/deletes in .lisp files, right? Vlime only maps in .lisp files
<drmeister> I tried changing the localleader to _ (underscore) - and restarting - same behavior although no *bloop* but _cc puts it into change current line mode.
<drmeister> Yeah - I'm editing a .lisp file.
<drmeister> I'm starting vim with: vim test.lisp
<drmeister> Here's my .vimrc
<drmeister> When installing vim Plugin support I left out a lot of lines that I thought were just plugins.
<drmeister> Where should the l04m33/vlime be on my hard drive?
<sjl> Hm, I don't use Vundle myself, so I'm not sure exactly how Vundle would be installing Vlime for you
<drmeister> Because I probably don't have it installed in the right place - it's currently in /Users/meister/Development/vlime
<drmeister> There's no way it is going to find it.
<sjl> you ran :PluginInstall in Vim?
<drmeister> Well, I was told to add: Plugin 'l04m33/vlime', {'rtp': 'vim/'} to the .vimrc
fikka has joined #lisp
<sjl> > 1. Add Plugin 'l04m33/vlime', {'rtp': 'vim/'} to your vimrc, then run :PluginInstall in Vim.
<drmeister> I just assumed I needed Vundle - I haven't done plugins with vim.
<drmeister> I haven't used vim in 6 years (but did for 20 years prior to that).
<drmeister> Yeah - but what does 'l04m33/vlime' mean? That looks like a relative path - but relative to what?
<drmeister> Is there a vim plugins directory?
<sjl> drmeister: I assume that's the github user/repo which Vundle will clone down for you
<drmeister> Yeah - but where is it supposed to go? I'm going to put it in ~/.vim/bundle for yucks
<sjl> Like I said, I don't use Vundle. I know Vlime works great with Pathogen and I prefer installing plugins like that
<drmeister> Pathogen?
<sjl> let me PM you, this is veering more into Vim territory than #lisp
semz has joined #lisp
<drmeister> Thank you
fikka has quit [Ping timeout: 240 seconds]
lnostdal has joined #lisp
fikka has joined #lisp
igemnace has quit [Quit: WeeChat 2.1]
verisimilitude has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
scymtym has joined #lisp
Kundry_Wag has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
fourier has quit [Ping timeout: 265 seconds]
FreeBird_ has quit [Remote host closed the connection]
pierpa_ has joined #lisp
fikka has joined #lisp
jcowan has quit [Remote host closed the connection]
jcowan has joined #lisp
random-nick has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
troydm has joined #lisp
drunkencoder has quit [Remote host closed the connection]
drunkencoder has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
Jesin has joined #lisp
wigust- has quit [Ping timeout: 256 seconds]
Younder has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
<jeosol> morning guys
milanj has quit [Quit: This computer has gone to sleep]
DVSSA has joined #lisp
fikka has joined #lisp
FreeBirdLjj has joined #lisp
vlatkoB_ has quit [Remote host closed the connection]
dented42 has joined #lisp
DVSSA has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 265 seconds]
<makomo> evening :-)
<makomo> jackdaniel: just wanted to let you know i enjoyed your McCLIM demo video, it was pretty cool! keep going! :-)
EvW1 has joined #lisp
fikka has joined #lisp
<oleo> did anyone solve the problem with reader-macros not working on clim-listener ?
<oleo> it actually works it's just i can't call something like [1 .. 3] for createing say a list (1 2 3) by inputting that
<oleo> i have to always use a extra () around it
<oleo> like in ([1 .. 3])
<oleo> i suppose i have define an extra command-table for it and/or command-translator....
fikka has quit [Ping timeout: 265 seconds]
Kundry_Wag has joined #lisp
random-nick has joined #lisp
warweasle has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
fikka has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
lnostdal has quit [Read error: Connection reset by peer]
didi has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
<didi> Hey, I found out the greatest use of `result-form' from a `dolist' ever: A `push' form, which is only evaluated if the `dolist' doesn't eval a `return' form.
lnostdal has joined #lisp
<jackdaniel> makomo: I'm glad you've liked it :)
<jackdaniel> I plan to record video on creating gadgets (and since mirroring branch has been merged after two weeks of development I can get back to it)
<makomo> that sounds exciting, looking forward to it
fikka has joined #lisp
Cymew has joined #lisp
<jeosol> Anyone working with long running applications, how do you protect or account for failure before completion. A related problem, yesterday we had rain + thunderstorm in the night, woke up my computer tripped up -- UPS didn't last long
rpg has quit [Quit: Textual IRC Client: www.textualapp.com]
<jcowan> Run on multiple machines, preferably in a commercial cloud
<jcowan> If your house had been bombed, no amount of "reliability" would have helped.
<jeosol> I am interested in options for saving state and possibly restarting. I have not done much, but have a small prototype that uses CLOS, saves the state in the object and writes to disk each step. Then I pick it up later and continue.
<jeosol> jcowan: hahahaha
<jcowan> OTOH perhaps you would not have cared so very much.
<jcowan> "fate sharing"
<jcowan> https://en.wikipedia.org/wiki/System_prevalence may be helpful for that problem
<jeosol> jcowan: running on the cloud will take care of the power issue
fikka has quit [Ping timeout: 260 seconds]
<jcowan> and the linked papers, of course
milanj has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
shangul has joined #lisp
<jeosol> jcowan: thanks for the link. I guess I am doing something similar by idea but not robust enough. I will look into that
<jcowan> the link to the first reference is borked, but http://web.archive.org/web/20170610140344/http://hillside.net:80/sugarloafplop/papers/5.pdf will work
<shangul> what is licence of PCL?could I get a free(as in price) pdf legally?
Cymew has joined #lisp
<phoe> shangul: the text is free to read on the gigamonkeys.com website, you can turn that HTML into PDFs
<jeosol> jcowan: thanks. got a copy of the pdf.
<phoe> you can find PDFs of it for free on the Internet but accessing them that way will be breaching its license.
<jcowan> but not free to make derivative works, alas
<shangul> phoe, and they have not made a PDF, right?
<phoe> shangul: "they", what do you mean? the authors?
<shangul> those who has published the book
<phoe> they have made a PDF, it's an ebook version of the original book, and it has its price.
<nydel> g'mo- oh wow, g'afternoon all.
fikka has joined #lisp
<phoe> hey nydel
<shangul> beach, sorry, while talking my internet went down
<phoe> shangul: no problem, you can access the channel logs at https://ccl.clozure.com/irc-logs/lisp/
<shangul> phoe, so pdf has its price and reading online is free, is it legal to download the htmls?
emaczen has quit [Read error: Connection reset by peer]
<jcowan> In practice you cannot read them without downloading them into your browser cache, so yes.
Cymew has quit [Ping timeout: 240 seconds]
emaczen has joined #lisp
<shangul> And I suppose doing anything with those htmls for personal use is legal.
<nydel> howdy phoe. i love to search the logs and see how even-dumber-than-today i was a while back
BlueRavenGT has joined #lisp
Cymew has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<jcowan> shangul: Depends on your country, but in practice, who's going to find out? Just don't redistribute the results.
<shangul> jcowan, in my country there isn't any copyright at all. it is myself who tries to.
shka has quit [Ping timeout: 265 seconds]
<jcowan> Then no worries, but if you do publish some derivative work, you should mark it as unauthorized to warn off any law-abiding people in Berne Convention countries
<jcowan> (if any are left)
Cymew has quit [Ping timeout: 260 seconds]
wigust has joined #lisp
Cymew has joined #lisp
fisxoj has joined #lisp
Mutex7 has joined #lisp
tomaw_ is now known as tomaw
DVSSA has joined #lisp
Cymew has quit [Ping timeout: 265 seconds]
Cymew has joined #lisp
hiroaki has quit [Ping timeout: 256 seconds]
<jcowan> I don't understand this requirement in the HyperSpec under generic function lambda lists: "Zero or more required parameters must be specified." I don't see any circumstances in which this MUST could be violated.
<Shinmera> (&optional foo)
Jesin has quit [Quit: Leaving]
fikka has joined #lisp
<jcowan> That has zero required parameters, which is permitted by the MUST.
d4ryus1 is now known as d4ryus
<Shinmera> Hmm, right
<Shinmera> Could be another copypaste thing.
Cymew has quit [Ping timeout: 240 seconds]
shangul has quit [Quit: sudo rm -rf /usr/*]
Cymew has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
SlowJimmy has joined #lisp
Cymew_ has joined #lisp
<phoe> well
<phoe> jcowan: that's equivalent to "2 + 2 MUST equal 4"
<phoe> just a meaningless sentence, happens in such written documents
<phoe> big written specs and such
fikka has joined #lisp
Cymew has quit [Ping timeout: 255 seconds]
disumu has joined #lisp
<jcowan> I carefully went through every instance of MUST, MAY, and SHOULD in R7RS-small and made sure they all referred to implementation requirements or non-requirements
<jcowan> missed a few, though
<jcowan> as opposed to user requirements, which are expressed as "It is an error if/unless ..."
<jcowan> alternatively: An error is signaled / An error satisfying <predicate> is signaled
<jcowan> The Google CL stylesheet appears to require that code spell "connection" as "connexion", since it is (a) British and (b) shorter.
<jcowan> I bet they don't, though
Cymew_ has quit [Ping timeout: 240 seconds]
DVSSA has quit [Ping timeout: 265 seconds]
Cymew has joined #lisp
hiroaki has joined #lisp
Cymew_ has joined #lisp
Cymew has quit [Ping timeout: 265 seconds]
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
DVSSA has joined #lisp
<blurgh> Can "sbcl --load" take multiple files? (ex: sbcl --load ~/lisp/stumpwmrc.lisp ~/lisp/startstump.lisp)
<Shinmera> yes, just write --load for each file
<sjl> blurgh: you have to use --load before each, but yes
<blurgh> sjl: so "sbcl --load ~/lisp/stumpwmrc.lisp --load ~/lisp/startstump.lisp" will work?
wooden_ has quit [Ping timeout: 252 seconds]
<sjl> blurgh: it should
<sjl> works for me
<Shinmera> It's often much faster to just try something rather than asking people about it.
<blurgh> sjl: thanks
<sjl> yep
Cymew_ has quit [Ping timeout: 260 seconds]
amerlyq has quit [Ping timeout: 255 seconds]
<blurgh> Shinmera: I'd have to restart my computer if I did that right now. It's complicated. Sorry about bugging you guys.
Cymew has joined #lisp
<sjl> blurgh: he means doing like `echo '(print 1)' > a.lisp && echo '(print 2)' > b.lisp && sbcl --load a.lisp --load b.lisp`
amerlyq has joined #lisp
<sjl> not necessarily rerunning your actual command
Cymew has quit [Ping timeout: 265 seconds]
Cymew has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
Quetzal2 has quit [Read error: Connection reset by peer]
Cymew has joined #lisp
zmt01 has joined #lisp
ldb has joined #lisp
zmt01 has quit [Remote host closed the connection]
amerlyq has quit [Ping timeout: 265 seconds]
zmt00 has quit [Ping timeout: 264 seconds]
Cymew has quit [Ping timeout: 255 seconds]
amerlyq has joined #lisp
zotan has joined #lisp
Naergon has joined #lisp
knicklux has quit [Quit: Leaving]
amerlyq has quit [Ping timeout: 255 seconds]
orivej has quit [Ping timeout: 255 seconds]
Cymew has joined #lisp
amerlyq has joined #lisp
anon has joined #lisp
anon is now known as Guest69321
Cymew has quit [Ping timeout: 255 seconds]
Cymew has joined #lisp
EvW1 has quit [Ping timeout: 255 seconds]
rumbler31 has quit [Ping timeout: 265 seconds]
Cymew has quit [Ping timeout: 260 seconds]
rumbler31 has joined #lisp
Cymew has joined #lisp
rumbler31 has quit [Remote host closed the connection]
Cymew has quit [Ping timeout: 255 seconds]
Kundry_Wag has quit [Remote host closed the connection]
DVSSA has quit [Ping timeout: 255 seconds]
Cymew has joined #lisp
Kundry_Wag has joined #lisp
Denommus has quit [Ping timeout: 265 seconds]
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
glv has quit [Quit: Leaving]
Cymew has quit [Ping timeout: 268 seconds]
Cymew has joined #lisp
DVSSA has joined #lisp
Cymew has quit [Ping timeout: 255 seconds]
Cymew has joined #lisp
<ldb> #help
<ldb> do we still have a message bot here?
<phoe> ldb: which message bot?
Karl_Dscc has quit [Remote host closed the connection]
<ldb> phoe: something i can leave a note to other offline users
<Bike> minion: memo for ldb: i think like this
<minion> Remembered. I'll tell ldb when he/she/it next speaks.
<phoe> minion: memo for ldb: there's minion and this is his syntax
<minion> Remembered. I'll tell ldb when he/she/it next speaks.
dddddd has quit [Ping timeout: 248 seconds]
<didi> There's also /msg memoserv
<ldb> thanks
<minion> ldb, memo from Bike: i think like this
<minion> ldb, memo from phoe: there's minion and this is his syntax
Cymew has quit [Ping timeout: 265 seconds]
disumu has quit [Remote host closed the connection]
Cymew has joined #lisp
<Shinmera> ::help notify
<Colleen> Documentation: Send a notification message that will be displayed as soon as the user speaks again.
<Colleen> Command Syntax: notify TARGET &STRING MESSAGE
Bike has quit [Ping timeout: 260 seconds]
Cymew has quit [Ping timeout: 240 seconds]
<ldb> minion: memo for verisimilitude: seem you used something like `&aux (&optional ...)' in `cl-ecma-48', but Clozure CL I use complains about that because lambda list keywords are specially treated in ccl
<minion> Remembered. I'll tell verisimilitude when he/she/it next speaks.
<k-hos> now this makes me wonder if you can get a bot chain going between these two
<Shinmera> Please keep such experiments out of this channel.
<k-hos> :>
Cymew has joined #lisp
dddddd has joined #lisp
antergos has joined #lisp
<antergos> hello
<ldb> k-hos: usually that can be solved by a black list
<ldb> antergos: greeting
Cymew has quit [Ping timeout: 260 seconds]
DVSSA has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
antergos has quit [Client Quit]
Cymew has quit [Ping timeout: 260 seconds]
nowhere_man has joined #lisp
Cymew has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
wigust has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
Cymew has quit [Ping timeout: 265 seconds]
Cymew has joined #lisp
Bicyclidine is now known as Bike
Cymew has quit [Ping timeout: 265 seconds]
sjl has quit [Ping timeout: 240 seconds]
DVSSA has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
random-nick has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
sjl has joined #lisp
DVSSA has quit [Ping timeout: 265 seconds]
fourier has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
DVSSA has joined #lisp
damke__ has joined #lisp
LiamH has quit [Quit: Leaving.]
DVSSA has quit [Ping timeout: 256 seconds]
<fourier> how to create a constant hash-table? I've tried alexandria's define-constant + (eval-when (:compile-toplevel :load-toplevel) ..), but on any attepmt to recompile the file (sbcl) i got an error on define-constart for my hash-table
<fourier> the error is like: +TIMESTAMP-FORMAT-MAPPING+ is an already defined constant whose
<fourier> #<HASH-TABLE :TEST EQUALP :COUNT 0 {100479A723}> under
<fourier> equal to the provided initial value
<fourier> value #<HASH-TABLE :TEST EQUALP :COUNT 9 {10032D0563}> is not
<fourier> #<FUNCTION EQUALP>.
<fourier> [Condition of type SIMPLE-ERROR]
<fourier> so obiviously since i have filled the hash table in (eval-when) it is different from initial value
<fourier> so the question is how to fill it without using the eval-when
<Bike> define-constant has a :test argument
<fourier> I know the list of keys and values beforehand
<Bike> what are you using as the test?
<fourier> hm let me roll out something real quick...
jcowan has quit [Ping timeout: 268 seconds]
<ldb> fourier: (defconstant zoo #.(let ((x (make-hash-table))) (setf (gethash 1 x) 2) x))
<Bike> that doesn't solve the problem
<fourier> yep
<Bike> fourier: anyway, i'm going to assume you're using the wrong test. try passing equalp.
<fourier> the real problem is that hash tables doesn't have any construction-time initializer list
<fourier> I'm using equalp already, it was the first guess ofc
<Shinmera> The easy fix is to not use constants.
amerlyq has quit [Ping timeout: 265 seconds]
<Bike> oh, wait
<Bike> the initial value has no count
<fourier> exactly!
<Bike> are you defining the hash table, and then altering it?
<Bike> because that makes it, you know, not constant
<fourier> yep because i cant create a hash table with a set of values as a constant!
<didi> I'm with Shinmera. Constants are too finicky.
energizer has quit [Quit: Leaving]
<Bike> (define-constant whatever (let ((ret (make-hash-table ...))) (setf ...) ret)
<Bike> )
<fourier> that is exactly a problem: how to create a constant hash table with pre-defined set of key/value
<Bike> like that.
<fourier> hm
<ldb> fourier: doesn't #. help?
<Bike> #. isn't really relevant
Kundry_Wag has joined #lisp
<fourier> no the version with let doesn't help, same error, but the number of objects is the same now
<Bike> what are the keys and values?
<ldb> i see, defconstant can't prevent hash table's content immutable
<fourier> key is a string, value is a function via #'function-name
<fourier> and :test in #'equalp ofc
<Bike> well, the value before and the value after aren't equalp somehow
DVSSA has joined #lisp
<fourier> +TIMESTAMP-FORMAT-MAPPING+ is an already defined constant whose
<fourier> #<HASH-TABLE :TEST EQUALP :COUNT 9 {10048ECDC3}> under
<fourier> equal to the provided initial value
<fourier> value #<HASH-TABLE :TEST EQUALP :COUNT 9 {10033781E3}> is not
<fourier> #<FUNCTION EQUALP>.
<Bike> yeah, so either the keys aren't equalp or the values aren't
<fourier> interesting, its hard to understand why exactly are they not equal. keys are the strings so should be no problems
<Shinmera> For this little number of values a hash table is unlikely to be much faster anyway.
<fourier> but valuas are functionl like #'myparser-1 etc
<Bike> are the functions being redefined?
<pierpa_> what does the table test predicate have to do with the error?
<pierpa_> DEFCONSTANT requires the values to be EQL
<Bike> this is alexandria:define-constant
<pierpa_> ah! sorry!
<fourier> Bike: yes it looks like you up to something, probably since I recompile a file the values of #'myparser-1 are changed as well
Kundry_Wag has quit [Ping timeout: 265 seconds]
<fourier> the functions are all in the same file
<Shinmera> Also fun thing about define-constant: https://irclog.tymoon.eu/freenode/%23sbcl?around=1518617175#1518617175
damke has joined #lisp
<Bike> i'm not sure i understand what "copies" are involved
DVSSA has quit [Ping timeout: 256 seconds]
hiroaki has quit [Ping timeout: 255 seconds]
<Bike> meaning at load time?
lnostdal has quit [Ping timeout: 246 seconds]
<Bike> i suppose it's possible
lnostdal has joined #lisp
damke__ has quit [Ping timeout: 264 seconds]
ghard``` has quit [Remote host closed the connection]
ghard``` has joined #lisp
k-stz has quit [Remote host closed the connection]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<fourier> ok off for now, will think about all organization tomorrow. the problem is even more annoying as it seems to work with LW but fail with SBCL :(
<fourier> will ask here for help tomorrow if couldn't solve it
quazimodo has joined #lisp
margeas has joined #lisp
Lord_Nightmare has quit [Ping timeout: 248 seconds]
markong has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
__rumbler31 has joined #lisp
Lord_Nightmare has joined #lisp
<Bike> sbcl is strict
<Bike> probably just use defvar like people said, though
damke_ has joined #lisp
Kundry_Wag has joined #lisp
Kundry_W_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
fourier has quit [Ping timeout: 260 seconds]
__rumbler31 has quit [Ping timeout: 276 seconds]
Kundry_Wag has quit [Ping timeout: 255 seconds]
fisxoj has quit [Quit: fisxoj]
phoe has quit [Ping timeout: 276 seconds]
phoe has joined #lisp
Kundry_W_ has quit [Ping timeout: 265 seconds]
<aeth> I run into plenty of things that run in SBCL but fail with CCL.
didi has left #lisp ["there are always reasons to /part"]
nowhereman_ has joined #lisp
nowhere_man has quit [Ping timeout: 256 seconds]
damke_ has quit [Ping timeout: 264 seconds]
Pixel_Outlaw has joined #lisp
DVSSA has joined #lisp
mange has joined #lisp
DVSSA has quit [Ping timeout: 265 seconds]
damke_ has joined #lisp
Kaisyu has joined #lisp
al-damiri has quit [Quit: Connection closed for inactivity]
Folkol has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
loli has quit [Quit: WeeChat 2.1]
BlueRavenGT has quit [Ping timeout: 260 seconds]
energizer has joined #lisp
anunnaki_ has quit [Ping timeout: 256 seconds]
rumbler31 has quit [Remote host closed the connection]
mpah has joined #lisp
lnostdal has quit [Ping timeout: 260 seconds]
loli has joined #lisp
pjb has quit [Ping timeout: 256 seconds]
quotation has joined #lisp
trocado has joined #lisp
lnostdal has joined #lisp
python476 has quit [Ping timeout: 276 seconds]
DVSSA has joined #lisp
fikka has quit [Ping timeout: 276 seconds]