JetJej has quit [Read error: Connection reset by peer]
anamorphic has quit [Quit: anamorphic]
atgreen has joined #lisp
Essadon has quit [Quit: Qutting]
orivej has quit [Ping timeout: 240 seconds]
Bike_ has joined #lisp
Bike has quit [Disconnected by services]
Bike_ is now known as Bike
karlosz has quit [Quit: karlosz]
mrcom has quit [Read error: Connection reset by peer]
karlosz has joined #lisp
iovec has joined #lisp
<slightlycyborg>
I am trying to get asdf to load a system that I placed in ~/common-lisp. I load quicklisp on sbcl boot. I am getting "component <system_name> not found" after (asdf:load-system "<system_name>")
<smokeink>
try this : (ql:register-local-projects) then (ql:quickload :your-system)
<slightlycyborg>
I think I found the error. I named my file <system>.asdf instead of <system>.asd
hvxgr has joined #lisp
<slightlycyborg>
This would explain why emacs didn't go into lisp-mode when opening the file
<slightlycyborg>
Sorry. First time with asdf *shrug*
mrcom has joined #lisp
karlosz has quit [Quit: karlosz]
orivej has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
Oladon has joined #lisp
orivej has joined #lisp
sjl has quit [Quit: WeeChat 2.2-dev]
Mr-Potter_ has quit [Quit: Leaving]
orivej has quit [Ping timeout: 250 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
<no-defun-allowed>
is there a stream which just ignores any input, like /dev/null?
<djeis[m]>
Presumably you could make a broadcast stream that broadcasts nowhere.
<verisimilitude>
Nothing comes to mind.
<Bike>
i think (make-broadcast-stream) is the usual
<no-defun-allowed>
oh, that sounds good
<no-defun-allowed>
works great, thanks
<verisimilitude>
Well, I'll make note of that one.
X-Scale has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
ntbre has left #lisp [#lisp]
X-Scale has joined #lisp
zotan has quit [Ping timeout: 252 seconds]
zotan has joined #lisp
Oladon has quit [Quit: Leaving.]
markoong has quit [Ping timeout: 246 seconds]
zotan has quit [Ping timeout: 252 seconds]
zotan has joined #lisp
dale has quit [Quit: dale]
milanj has quit [Quit: This computer has gone to sleep]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
akoana has quit [Ping timeout: 250 seconds]
hectorhonn has joined #lisp
<hectorhonn>
morning everyone
akoana has joined #lisp
<verisimilitude>
Hello, hectorhonn.
<verisimilitude>
How goes your learning?
<hectorhonn>
verisimilitude: hello verisimilitude. cl just keeps surprising me with its features
<hectorhonn>
verisimilitude: i must say i am impressed
<verisimilitude>
It's a rather comprehensive language, as it was designed to unify several dialects.
<verisimilitude>
Being practically oriented, it also includes many facilities that certain programs would require; the various time facilities are a good example.
<permagreen>
I think the word versimilitude has lost all meaning to me now
<fiddlerwoaroof>
restarts, multimethods and method combinations were the features that most attracted me.
<aeth>
More importantly, CL was designed to be (just barely) efficiently implementable on 1990s hardware.
<hectorhonn>
i have a question about gensym symbols
<fiddlerwoaroof>
?
<aeth>
CL has two decades of Moore's law over newer languages of comparable features since people tend to target the hardware they have right now.
<aeth>
(Well, at least pretty much all of the implementations do.)
<fiddlerwoaroof>
hectorhonn: what's your question?
<aeth>
hectorhonn: generally the advice on IRC is to not ask to ask but to ask because IRC is fairly slow moving for a chat protocol.
<verisimilitude>
Common Lisp has certain restrictions in place that let a concerned implementation optimize well. Newer languages, such as Python, have been ``designed'' without this foresight and the results are clear.
<hectorhonn>
fiddlerwoaroof: still thinking how to phrase it...
<hectorhonn>
aeth: haha noted
<fiddlerwoaroof>
A big part of it is that macros allow for zero-runtime-cost abstractions
<fiddlerwoaroof>
Which is now a big deal in C++/Rust
<aeth>
verisimilitude: Interestingly, Python's only 6 years newer than CLtL. I think one of the key differences is that by 1990, C had won so languages were going for niches (like scripting) whereas CL was designed for the whole stack.
<verisimilitude>
It's the little things, like GO tags and BLOCK names being static.
space_otter has joined #lisp
<hectorhonn>
if, in a macro, i do (let ((sym (gensym))) `(defun ,sym () (...))), will this defun get garbage collected at the end of the macro?
<fiddlerwoaroof>
Not necessarily
<fiddlerwoaroof>
But, if there are no references to the name, I think it will eventually get gced
<verisimilitude>
DEFUN returns the symbol used, so no.
phoe has quit [Ping timeout: 250 seconds]
<no-defun-allowed>
that symbol might not get put anywhere though
<fiddlerwoaroof>
Yeah, but in most contexts that result is just discarded
<verisimilitude>
It would only be garbage collected once it becomes unreachable, but that's not enough.
<verisimilitude>
I'm just letting him know it's possible the symbol is saved, which would prevent this.
<fiddlerwoaroof>
In the repl, it's boudnd to *, ** and ***
<fiddlerwoaroof>
(defun #.(gensym "FOO") (a b) (+ a b))
<fiddlerwoaroof>
But after *** it should be discarded eventually, if there's no other reference
<aeth>
If there's no other reference.
<verisimilitude>
Here's an example session, hectorhonn:
<hectorhonn>
this came up because i was trying to write test cases in the source. if i do (defmacro check-equals (expected actual) (unless (equal expected actual) (error "..."))), when the error comes up in the debugger i can't press v to go to the source. so, in the macro, i wrap it in a defun and call it. that way i have a frame that i can press v, and go to the source
<verisimilitude>
Also, there's the case where the macro is run, but not before being picked apart, so the symbol could be accessed by that as well.
<hectorhonn>
i think there must be a better way to do this, but i dont know how
esrse has joined #lisp
<verisimilitude>
Use ASSERT, hectorhonn.
<verisimilitude>
Try it, in any case.
<aeth>
CHECK-TYPE can also go surprisingly far
<hectorhonn>
assert couldn't print something like "Expected 5 but got 6"
<fiddlerwoaroof>
I just recently read that with DEBUG >= 2, v jumps to a form
<fiddlerwoaroof>
(in sbcl), I haven't had a chance to try this
<verisimilitude>
Yes it could, hectorhonn.
<fiddlerwoaroof>
Also, the most useful tool I've found for debugging macros is the macrostep expander
<aeth>
hectorhonn: (let ((x 41)) (assert (= x 42) (x) "Expected 42, but got ~D" x))
<fiddlerwoaroof>
(and other macro-ish things, like method-combinations, in sbcl, at least)
<aeth>
oops, verisimilitude beat me to it and I didn't read it before posting because verisimilitude used a different variable name
<verisimilitude>
I used a symbol already interned in CL.
<hectorhonn>
ohh. i didnt think of using it that way!
<aeth>
You can do this, as well: (let ((x 41)) (assert (= x 42) (x) "Expected ~D, but got ~D" 42 x))
<verisimilitude>
As a rule, I suggest seeing if Common Lisp already has what you want before trying to roll your own solution, hectorhonn; Common Lisp is very flexible and comprehensive.
<hectorhonn>
i was doing (assert (= 5 6)), where the test-form is moderately long, and got annoyed when it printed "The assertion <form> failed"
<aeth>
(defun assert-= (expected-number) (lambda (number) (assert (= number expected-number) (number) "Expected ~S, but got ~S" expected-number number)))
atgreen_ has joined #lisp
<aeth>
Probably not particularly fast. Inlining the function might help.
<hectorhonn>
wow. i should read up the documentation on assert
<fiddlerwoaroof>
In theory, this would allow VSCode to have access to at least some of the information it needs to support common lisp
<beach>
scymtym: is working on some LSP thing I think.
<no-defun-allowed>
I don't think LSP has the interactivity SLIME (or even a straight CL REPL) offers.
<beach>
Yes, apparently there are limitations.
<c4droid>
I installed lisp syntax highlight
<fiddlerwoaroof>
Yeah, the best non emacs/vim thing is atom-slime
<fiddlerwoaroof>
but, you'd need to use atom for that...
<no-defun-allowed>
The limitations exist in LSP itself to my knowledge; there are no commands for sending code to a language process.
<c4droid>
atom... atom is not maintain by github?
<fiddlerwoaroof>
Maybe?
<no-defun-allowed>
Atom is a GitHub project.
<fiddlerwoaroof>
It was started by github
<no-defun-allowed>
Fun fact: Electron was made out of Atom.
<djeis[m]>
You need something like a debugger adapter if you want to send code to a process in VSCode.
<fiddlerwoaroof>
but, I've used atom-slime enough to see that it would work
<c4droid>
All right, I change to atom.
<djeis[m]>
Which is a completely different protocol from a language server lol
<no-defun-allowed>
Admittedly, a larger particle such as the top quark would have been a better namesake.
<fiddlerwoaroof>
otherwise, unless you want to use emacs, your choices are lem (written in CL, but has an electron frontend, I believe) or vim
<fiddlerwoaroof>
There are at least two different vim plugins that I've heard that people use: slimv and vlime
<fiddlerwoaroof>
I used slimv for a long time, until I discovered evil-mode
<no-defun-allowed>
The difference between Atom and Emacs's memory consumption is comparable to the difference in electron and top quark sizes. Anyway, back to Lisp.
<djeis[m]>
Honestly Lisp is best used with very tight editor integration, and atom slime covers the basics but the best integration is with emacs.
<djeis[m]>
For the moment.
* fiddlerwoaroof
puts in a good word for the vim plugins
<djeis[m]>
Oh yea, the vim plugins are definitely good.
<fiddlerwoaroof>
Also, lem looks like it might be better than either, if I could be bothered to learn a whole new editor without much of a community :)
<djeis[m]>
Imo they only lag behind slime/sly by a small bit, and sometimes have interesting unique features.
<c4droid>
fiddlerwoaroof: If i want to use emacs, i need a pretty good configuration, I wroted configuration is too simple, not modulized
<Jachy>
Does anyone use Sly instead of slime?
<djeis[m]>
I use Sly.
<fiddlerwoaroof>
c4droid: you might see if you like spacemacs or the other one.. doom-emacs?
<djeis[m]>
Doom's pretty good, yea
<fiddlerwoaroof>
Although, both of those might be more for people that want a vim-like editing experience
<c4droid>
fiddlerwoaroof: I don't like that, that to heavy to me. I like lightweight development environment
<djeis[m]>
I've used both spacemacs and doom. Doom is a little less simple to set up, and catching up on features still, but it looks nice and is really snappy.
<beach>
c4droid: What on earth is that supposed to mean? You want less help developing?
<djeis[m]>
Lisp lends itself better to really powerful development environments.
<djeis[m]>
It's designed for really tight integration with an editor.
<beach>
c4droid: Then use `ed' or something like that. Very "lightweight".
<no-defun-allowed>
Heh.
<djeis[m]>
Well that's not a total extreme lol
<beach>
Sorry, I really hat this kind of silly argument, pretending that code has a mass.
wusticality has quit [Ping timeout: 268 seconds]
<c4droid>
beach: I mean `lightweight' is base on native emacs, not spacemacs or doom-emacs
<no-defun-allowed>
Some of the greatest Lisp editors actually ran in the Lisp they were controlling.
<no-defun-allowed>
Oh. I see now.
<beach>
c4droid: So it sounds like you have already made up your mind about what you want.
<no-defun-allowed>
beach: there are more opinionated configurations for Emacs that come with a lot of packages preinstalled or managed.
<djeis[m]>
Emacs is already a really heavyweight editor, and much of spacemacs and doom is just defaults for other packages.
<beach>
no-defun-allowed: I see.
<djeis[m]>
Packages you're likely to eventually want.
<no-defun-allowed>
For example, spacemacs comes with (optional) vim emulation and quite a fair bit of theming out of the box.
<djeis[m]>
But I understand the instinct to build your configuration yourself so you understand it.
<beach>
no-defun-allowed: But who cares if you don't use it? Is it the cost of the disk space?
<c4droid>
beach: yeah. I like myself to write configure code to change emacs let me can free to code.
<aeth>
I hope doom-emacs is a modification of the Doom source release to integrate GNU Emacs into Doom (the original, not the 2016 one, obviously)
<no-defun-allowed>
Well, I think Spacemacs is a good way to convert vim users, so it feels a bit like a vim replica more than an Emacs.
<fiddlerwoaroof>
personally, I found that alot of the fancy emacs configs were too much for me
<verisimilitude>
File storage space, RAM, speed, and other considerations are still important and likely always will be, so long as wasteful crap exists.
<fiddlerwoaroof>
And I could put together something decent with use-package + referring to my preferred vim setup for ideas
<aeth>
You don't really need fancy Emacs configs anymore now that Emacs has a package manager.
<no-defun-allowed>
The keybindings and chords in Spacemacs are often quite different to the classic *macs keys too.
<aeth>
My current .emacs is 112 lines but it's really probably closer to 20-30 things
<aeth>
pre-package-manager there was a lot more necessary boilerplate
<c4droid>
Only write `package-install' fuction wrapper, after that, you can install any package and to configure it.
<c4droid>
*function, sorry.
<no-defun-allowed>
So, beach, my problem isn't that Spacemacs installs a lot of packages and utilities, it's that those utilities change Emacs in quite a way I wouldn't be comfortable using.
<beach>
no-defun-allowed: Ah, yes, that I can perfectly well agree with.
<no-defun-allowed>
Maybe if I had just picked up Emacs for the first time, it might be more appealing, though it'd also be harder to get support for.
<c4droid>
Instead of using other fancy configuations, it's better to do it yourself.
Inline has quit [Quit: Leaving]
<c4droid>
What do you think?
<beach>
c4droid: I personally think there is a problem when the software is not behaving as it is documented to behave, and that you need to read unrelated documentation (that may or may not exist) in order to understand how to use your editor.
<beach>
c4droid: But I am lost now. If you don't mind using Emacs, why not just use the standard configuration, and SLIME to that, and off you go. No need for Visual Studio.
<c4droid>
beach: I installed atom.
luis has quit [Ping timeout: 264 seconds]
luis has joined #lisp
<fiddlerwoaroof>
c4droid: good luck :)
<fiddlerwoaroof>
beach: spacemacs is a bit different from other custom emacs configurations because I think the project conceives of itself as essentially a new editor that reuses a bunch of code from emacs
dddddd has quit [Remote host closed the connection]
<fiddlerwoaroof>
And, they do a fairly good job of creating a coherent + documented user experience
<fouric>
^ this is true in my experience
sloanr has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
<fouric>
unrelated: would it be accurate to say that conditions are messages passed up the stack and restarts are messages passed back down in response?
<fouric>
very roughly speaking
<fiddlerwoaroof>
Hmm, not sure
<fiddlerwoaroof>
both conditions and restarts generally go "up" the stack
<fouric>
in general, i'm trying to understand conditions and restarts, and here i'm trying to make an analogy to message-passing, but i'm eager to receive any dispensed wisdom
<fouric>
doesn't higher-level code invoke a restart that actually gets executed by lower-level code though?
<fiddlerwoaroof>
as a rule the call to invoke-restart comes from the highest level, the restart is defined at an intermediate level and a condition is signealed at the lowest level
<fiddlerwoaroof>
so the restart goes "up the stack" to the toplevel and the toplevel gets to decide which restart to use, and passes that decision "down the stack"
<fouric>
wait, i thought that you could have intermediate-level code invoke restarts - is there no programatic way to do it?
<fiddlerwoaroof>
sure, you could
<fouric>
...but it generally isn't done?
<fiddlerwoaroof>
but, as a rule code invokes restarts that the function it calls define
<fiddlerwoaroof>
so the restart invocation goes down the stack, but the fact that a restart is invokable comes "up the stack"
<fouric>
ok, that makes sens
<fouric>
i think i understand it better now
<fouric>
thanks!
<fiddlerwoaroof>
Have you read the relevant chapter of PCL?
<fiddlerwoaroof>
Seibel does a pretty good job of explaining this and showing it in a practical setting
wusticality has joined #lisp
Oladon has quit [Quit: Leaving.]
shifty has quit [Ping timeout: 245 seconds]
wusticality has quit [Ping timeout: 240 seconds]
hhgbot has joined #lisp
slyrus2 has quit [Quit: Leaving]
hhgbot has quit [Ping timeout: 250 seconds]
Lycurgus has joined #lisp
hhgbot has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
<fiddlerwoaroof>
The cl-irc source code is kinda interesting
<fiddlerwoaroof>
I'm not entirely a fan of its style, but the way it uses the language is fairly different from how I use it
Lycurgus has quit [Quit: Exeunt]
c4droid has left #lisp [#lisp]
jello_pudding has joined #lisp
mikecheck has joined #lisp
pierpal has quit [Ping timeout: 244 seconds]
jello_pudding has quit [Quit: Leaving, Quit]
rlp10 has joined #lisp
asarch has quit [Quit: Leaving]
phoe has joined #lisp
<fouric>
i've read through the chapter at least twice, but wasn't able to parse it very well, unfortunately
<fiddlerwoaroof>
Yeah, it took me a while to figure out exatly what was going on
<fiddlerwoaroof>
... practically speaking
<fiddlerwoaroof>
j
<fiddlerwoaroof>
j
rlp10 has quit [Ping timeout: 256 seconds]
ski has joined #lisp
shrdlu68 has joined #lisp
Cymew has quit []
mrcom has quit [Quit: Leaving]
<aeth>
oh, yeah, cl-irc looks alien to me, too
schweers has joined #lisp
wusticality has joined #lisp
space_otter has quit [Remote host closed the connection]
pjb has quit [Ping timeout: 250 seconds]
varjag has joined #lisp
wusticality has quit [Ping timeout: 240 seconds]
quazimodo has quit [Ping timeout: 250 seconds]
Diip has joined #lisp
scymtym has quit [Ping timeout: 250 seconds]
rlp10 has joined #lisp
<mfiano>
Is there anything that can help me to check that a form is in the correct shape, so I can emit a meaningful error message for the user in the DSL I am writing, before parsing it with destructuring-bind giving them a bad error?
<beach>
In general, you would have to write a parser for it, using one of the parser-generator libraries.
<verisimilitude>
It depends on what you're doing, mfiano.
nowhere_man has quit [Ping timeout: 252 seconds]
<mfiano>
The form is quite simple. I should just manually parse it. It looks like '(some-symbol (&key &allow-other-keys) &key &allow-other-keys)
anewuser has quit [Quit: anewuser]
<verisimilitude>
If it's simple to cover comprehensively, that would be best, yes.
<verisimilitude>
If you don't care to write a great error message and depending on what the expansion is, you could always just write it so rule violations cause the expansion to fail in compilation; this is what I like to do.
MightyJoe has joined #lisp
scymtym has joined #lisp
cyraxjoe has quit [Ping timeout: 240 seconds]
rozenglass has quit [Ping timeout: 246 seconds]
Diip has quit [Remote host closed the connection]
Diip has joined #lisp
<aeth>
verisimilitude: The latter is what the destructuring-bind would do.
nowhere_man has joined #lisp
hhdave_ has joined #lisp
shifty has joined #lisp
d4ryus has quit [Ping timeout: 244 seconds]
d4ryus has joined #lisp
shrdlu68 has quit [Ping timeout: 240 seconds]
wusticality has joined #lisp
esrse has quit [Ping timeout: 240 seconds]
heisig has joined #lisp
<stylewarning>
Hello
rlp10 has quit [Ping timeout: 246 seconds]
hectorhonn has quit [Quit: Page closed]
q3d has joined #lisp
pierpal has joined #lisp
sakalli` has joined #lisp
nalik891 has quit [Remote host closed the connection]
auxruul has joined #lisp
rlp10 has joined #lisp
ebrasca has joined #lisp
Mr-Potter has joined #lisp
wusticality has quit [Ping timeout: 244 seconds]
wusticality has joined #lisp
rlp10 has quit [Ping timeout: 240 seconds]
wusticality has quit [Ping timeout: 240 seconds]
pjb has joined #lisp
<beach>
Hello stylewarning. Are you submitting something to ELS this year.
nirved has quit [Read error: Connection reset by peer]
nirved has joined #lisp
markoong has joined #lisp
<schweers>
Is SB-COVER known to be broken?
<schweers>
Depending on the order in which I have my test cases, one branch or the other is claimed to be taken only one way. So some data seems to be lost?
<schweers>
I’m off for lunch for now, so sorry for not following up on any answers which may come ;)
<scymtym>
schweers: are you looking at the coverage of the test code itself? some test frameworks compile the test code when running the tests instead of ahead of time
shrdlu68 has joined #lisp
JetJej has joined #lisp
<schweers>
no, I’m looking at the code which is tested.
nowhere_man has quit [Ping timeout: 240 seconds]
Selwyn has joined #lisp
<flip214>
schweers: on #sbcl pkhuong mentioned something yesterday:
<flip214>
> pkhuong> | I should also commit my fix to make SB-COVER obey in-package roughly the same way as swank
<flip214>
but I'm not sure whether that has any relevance.
<schweers>
I have no idea. I just stumbled upon the coverage tool a few days ago and really like it.
<schweers>
As I’ve started a new system today, I wanted to use it from the start
nowhere_man has joined #lisp
<flip214>
Is there a library to create STL or OBJ files?
<loke>
What is STL?
<loke>
Standard template library, perhaps not
sakalli` has quit [Ping timeout: 250 seconds]
<loke>
and there are about 300 billion different OBJ formats. :-) Which one are you thinking of?
<flip214>
loke: No, a 3D file format (from Stereolithography) -- nowadays used for 3D printing
<flip214>
hmmm, x3d is just some XML format, that should be much easier to write out
DGASAU has joined #lisp
orivej has joined #lisp
LiamH has joined #lisp
SaganMan has joined #lisp
smokeink has quit [Quit: Leaving]
sakalli` has joined #lisp
Bike has joined #lisp
thijso has joined #lisp
sakalli` has quit [Ping timeout: 245 seconds]
m00natic has joined #lisp
sjl_ has joined #lisp
dddddd has quit [Ping timeout: 246 seconds]
dddddd has joined #lisp
SaganMan has left #lisp ["WeeChat 1.6"]
shrdlu68 has quit [Quit: WeeChat 2.3]
thijso has quit [Quit: leaving]
Lord_of_Life has quit [Excess Flood]
Lord_of_Life has joined #lisp
orivej has quit [Ping timeout: 245 seconds]
rumbler31 has joined #lisp
refpga has quit [Remote host closed the connection]
Lycurgus has quit [Quit: Exeunt]
rumbler31 has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
hhgbot has quit [Ping timeout: 245 seconds]
orivej has joined #lisp
rippa has joined #lisp
heisig has quit [Quit: Leaving]
anamorphic has joined #lisp
gxt has quit [Ping timeout: 246 seconds]
gxt has joined #lisp
akr has joined #lisp
<akr>
Hi, once I'm at a breakpoint in the debugger and I see the call stack, how do I examine the arguments with which a call in the stack was performed?
<akr>
I can see like the first 3 arguments but then I just get ...
<shka_>
akr: it is just folded to save screen space
<shka_>
enter IIRC on the ...
<akr>
shka_: that just expands a block titled Locals
<shka_>
akr: i would say that this is a list so pressing enter on it should launch inspector
<shka_>
akr: sorry, i think that i can't help you
<akr>
np
anamorphic has joined #lisp
<schweers>
akr: what are your debug settings?
<akr>
schweers: I don't know, but I can see the first arguments
<akr>
I just don't know how to expand the ...
<schweers>
Ohhh
<schweers>
<schweers>
The function takes keywords and in this instance you’ve used the default values?
<akr>
no, there's plenty of non-default arguments
<schweers>
I asked because you have loads of locals who’s name ends in -DEFAULTING-TEMP
<schweers>
Nevertheless, you might as well try to set debug to 3
<akr>
oh wait, the locals actually are the arguments
<schweers>
That’s where they normally show up
<schweers>
<akr>
they just have defaulting-temp appended
<akr>
yeah this is why I don't like all this shoutiness
<akr>
who's to parse all this :P
<beach>
I agree.
<schweers>
I wonder why people (myself included) find it harder to read all caps text than all lowercase text.
<beach>
That's well documented.
<verisimilitude>
There's been research into it, schweers.
<verisimilitude>
I believe the explanation is we're more accustomed to lowercase and so better at recognizing it.
<schweers>
So it all comes down to practice. Fair enough.
<beach>
No, it's that the shapes are more varied.
<verisimilitude>
That was my second guess. In any case, I can't link to the source, as I don't recall it.
<sjl_>
I like the all caps when looking at a repl session because it's easy to distinguish my input from the output. But it is pretty miserable to read large blocks of it like that.
<verisimilitude>
It makes for a nice delimiter for when I want to refer to Common Lisp. If I write in uppercase, it's rather easy to know which symbol I'm referring to.
<_death>
writing in uppercase should be encouraged.. it gives atmosphere ;)
<verisimilitude>
I recall being criticized for using it in my documentation, _death; I was told it belongs in the 1980s or something or another to that general effect.
status402 has joined #lisp
<verisimilitude>
Then again, I've also been criticized for using &AUX.
<shka_>
what? I am using UPPERCASE for some symbols as well
<shka_>
for instance when i am referring to the argument name
charh has joined #lisp
<_death>
verisimilitude: don't take it too seriously.. opinions vary and there is an abundance of peanuts ;)
<verisimilitude>
Oh, I've already recognized I shouldn't take it seriously, yes.
<verisimilitude>
Now since you're here, _death, I was wondering about that library you've been writing. What's the progress on that?
<_death>
verisimilitude: in general I wouldn't use &aux, because I don't think the lambda list is the right place for such variables.. but style flows and ebbs with years and programs..
<_death>
verisimilitude: well, I did touch it since our conversation, but mostly to pretty up some interfaces.. the pace for personal projects is the snail's..
<verisimilitude>
Well, I anticipate getting a look at it when it's public, in any case.
<_death>
verisimilitude: sure.. in the meantime, it would be helpful to set up a git repository of your libraries though
<verisimilitude>
I don't use git.
<_death>
this would make it easier to track versions and changes that could be breaking
<_death>
as was the case when I updated to the newest version on your site
<verisimilitude>
Well, I try to not release anything breaking. What did you have an issue with in particular?
<verisimilitude>
I've been trying to mostly add to ACUTE-TERMINAL-CONTROL, rather than change what's already there in a way that would break something.
<_death>
verisimilitude: I think you removed the mouse enable/disable function names from the export list
<verisimilitude>
Oh; I did do that, yes; I decided it wasn't reasonable to provide that. I generally try to avoid doing that, though.
<_death>
verisimilitude: have you tried using git?
<verisimilitude>
No; I've no idea on how to operate it.
<_death>
verisimilitude: I suggest to give it a try.. it's a complex tool but if you have the right model it's fairly simple to understand, and most of the time it's fairly simple to operate..
<_death>
verisimilitude: but for simple use, just create a directory, "git init", add some files, change them, and use "git-gui" to commit etc... and yes, magit is great too
random-nick has joined #lisp
<verisimilitude>
I've taken a quick look and everything currently in ACUTE-TERMINAL-CONTROL will stay, certainly. There's a PROPERTIES and (SETF PROPERTIES), but that's not documented because I'd like to have a better name and I'm not certain how I should best expose that, if at all.
<verisimilitude>
Considering these libraries are single files, I'd rather avoid this, _death, but I appreciate the advice in any case.
<_death>
verisimilitude: I'm guessing you associate version control with heavy set ups (servers, multiple authors) and this is why you wish to avoid it
<verisimilitude>
No; I just don't like it.
<verisimilitude>
I think the file system should do it for me, transparently.
<verisimilitude>
I'd rather avoid learning an explicit worse-is-better version of a decent file system.
<_death>
verisimilitude: is the file system shared between humans and machines
<verisimilitude>
It's just mine, _death.
<_death>
verisimilitude: so, you have an island, and others can only take your code bottles
<verisimilitude>
That's the gist of the present, I suppose. I know I should probably start doing something different.
<verisimilitude>
I've been told that my stuff is neat, but if I'm not on Github or some other big site it will mostly go ignored, and that's true, unfortunately.
<_death>
verisimilitude: it's not necessary to use github, although it makes things simpler.. you can set up your own git serving daemon, or even a web front.. (you don't even need that; git can use http to clone a repository, but...) it's not a big deal
<verisimilitude>
Well, unlike everyone else who's told me to do this, you're actually using some of my software, so I'll consider it, _death.
<dlowe>
git was originally designed to work on a mailing list
<_death>
verisimilitude: sure.. maybe you'll find that it's very convenient (especially with magit...) to use git for any text that you happen to be editing
<_death>
dlowe: yes, but to clone a repository..
<verisimilitude>
As with most software, I'm going to want to use it as little as possible, _death.
<schweers>
git can even be useful locally, if you are the only person using it, and not sharing it across any machines.
auxruul has quit [Ping timeout: 240 seconds]
<_death>
verisimilitude: :)
<verisimilitude>
In any case, SHUT-IT-DOWN and CL-ECMA-48 are effectively finished and I could leave them as is, even though I'll occasionally make minor improvements, so I'd only be using git for ACUTE-TERMINAL-CONTROL if I decide to use git.
makomo has joined #lisp
darthlukan has quit [Ping timeout: 252 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
igemnace has quit [Quit: WeeChat 2.3]
FreeBirdLjj has quit [Ping timeout: 246 seconds]
darthlukan has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
shifty has quit [Ping timeout: 240 seconds]
nowhere_man has joined #lisp
Josh_2 has joined #lisp
schweers has quit [Ping timeout: 264 seconds]
makomo has quit [Ping timeout: 250 seconds]
nanoz has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
scymtym has quit [Ping timeout: 240 seconds]
random-nick has quit [Read error: Connection reset by peer]
anamorphic has quit [Quit: anamorphic]
hhdave_ has quit [Ping timeout: 240 seconds]
anamorphic has joined #lisp
Josh_2 has quit [Remote host closed the connection]
Josh_2 has joined #lisp
nowhere_man has quit [Ping timeout: 252 seconds]
Josh_2 has quit [Remote host closed the connection]
Josh_2 has joined #lisp
m00natic has quit [Remote host closed the connection]
<verisimilitude>
Say, _death, I have a question for you about how you're using my library.
<verisimilitude>
Do you use the FOREGROUND and BACKGROUND recalling functions at all?
milanj has joined #lisp
Josh_2 has quit [Remote host closed the connection]
Josh_2 has joined #lisp
sloanr has joined #lisp
cantstanya has joined #lisp
monokrom has joined #lisp
Lycurgus has joined #lisp
abhixec has joined #lisp
karlosz has joined #lisp
Josh_2 has quit [Remote host closed the connection]
q3d has quit [Quit: Page closed]
Josh_2 has joined #lisp
Josh_2 has quit [Remote host closed the connection]
sloanr has quit [Remote host closed the connection]
DGASAU has quit [Read error: Connection reset by peer]
<_death>
no, I only use their setf counterparts
DGASAU has joined #lisp
sloanr has joined #lisp
Zaab1t has joined #lisp
abhixec has quit [Ping timeout: 250 seconds]
nanoz has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
<verisimilitude>
I could certainly leave them, but it would greatly simplify and otherwise improve the code to do away with them.
<verisimilitude>
I suppose I may do that.
<_death>
for my purposes I define something similar to a framebuffer, that only outputs the changes when REDISPLAY is called..
<verisimilitude>
I suppose your REDISPLAY calls FINISH-OUTPUT and all of that?
<_death>
force-output, but yeah
<verisimilitude>
I wanted ATC to complement Common Lisp, so I always preferred using something already present. Your library is mostly adding predefined interface components, right?
abhixec has joined #lisp
<_death>
currently what goes into it is not so well-defined.. but there are modules like that framebuffer abstraction, that can be used on their own
<verisimilitude>
There's a similar lack of constraint in ATC; I decided I'd mostly be putting in building blocks more than anything, so it's nice to know you're building such higher things in a different library.
milanj has quit [Quit: This computer has gone to sleep]
<verisimilitude>
Why use this BENCHMARK instead of CL:TIME?
karlosz has quit [Quit: karlosz]
<_death>
you can't do anything much with CL:TIME.. it just prints implementation-dependent text
<_death>
I mostly use it for interactive development
<verisimilitude>
Alright; I simply found myself curious.
<_death>
this program tells me how many redisplays happen per second (each benchmark takes 10s)
<verisimilitude>
Is WITH-TEXT-DISPLAY part of the library?
<_death>
yes
<verisimilitude>
I see you went with a WITH macro design, then; that's something I specifically wanted to avoid, not that I dislike them.
<_death>
it's ok to avoid in low-level libraries
<verisimilitude>
I just wanted to preserve the freedom it enables, yes.
<_death>
right.. for example CL provides OPEN, and not just WITH-OPEN-FILE
<verisimilitude>
Seeing every Ncurses binding library require them was another reason.
Lycurgus has quit [Quit: Exeunt]
<verisimilitude>
So, I suppose this creates a buffer and flushes it when the form's exited?
holycow has joined #lisp
<_death>
no, it's more high level than that..
<_death>
it actually sets up the terminal for drawing of characters etc., and tears it down on exit
<verisimilitude>
That's interesting.
akoana has joined #lisp
<_death>
this way it provides a small interface that can be used for many kinds of programs
<_death>
still, with the addition of the input layer, which also uses acute-terminal-control, the two are the low level abstractions in the library..
<_death>
oh, the input layer doesn't directly use a-t-c either nowadays.. so it's the only module
<verisimilitude>
Well, I do look forward to seeing it when you release it.
<_death>
there is a drawing primitives module, and the rest is currently a salad of abstractions waiting for re-factoring
ravenousmoose has joined #lisp
anamorphic has quit [Quit: anamorphic]
ravenousmoose has quit [Quit: Bye Bye ~]
sauvin has quit [Read error: Connection reset by peer]
dale has quit [Quit: dale]
dale has joined #lisp
atgreen has joined #lisp
<fouric>
does anyone know of the top of their head how SBCL does (dis)assembly? specifically, does it use its own database of textual assembly <-> opcode mappings, or someone else's?
ravenousmoose has joined #lisp
<_death>
verisimilitude: and I encourage you to continue with development of a-t-c :).. I think it's important to have a non-FFI alternative
scymtym has joined #lisp
<_death>
fouric: it has its own.. although there is now an SB-CAPSTONE contrib for some reason..
<fouric>
funny, someone else just brought up capstone
Mr-Potter_ has joined #lisp
<verisimilitude>
As do I, _death.
Mr-Potter has quit [Ping timeout: 245 seconds]
<verisimilitude>
Perhaps I'll take a look at Ncurses' API to see if there's any interesting functionality I could implement, since I'm not spilling over with ideas about it.
sjl_ has quit [Quit: WeeChat 2.3-dev]
<_death>
verisimilitude: back then I inquired about urxvt.. I had to work around things a bit in the input module (and didn't bother with mouse events yet, as they seemed problematic)
sjl has joined #lisp
<verisimilitude>
It's an absolute mess.
<verisimilitude>
It takes a skilled group of idiots to design something so terribly.
<verisimilitude>
You've read the comments in ATC, though, I suppose, so you know my thoughts already.
<_death>
yes.. and that's why it's all the more imperative to abstract the mess away :)
<_death>
and this is why ncurses is so successful.. though it's pretty bad itself
<verisimilitude>
Since I'm using standard Common Lisp as much as possible, I'm unable to have special code for special terminals, so I can only target the LCD without extra facilities.
<verisimilitude>
Still, Xterm and its spawn did manage to agree on the sequences sent for the first twelve or so function keys and whatnot, I believe.
<verisimilitude>
I still don't see why they wouldn't simply use FUNCTION KEY.
iovec has quit [Quit: Connection closed for inactivity]
<_death>
I no longer remember.. is this info available in terminfo? if so, the database could be used
<verisimilitude>
You misunderstand; the issue is that you can't determine which terminal is being used in standard Common Lisp, as you can't access the environment in standard Common Lisp, _death.
<_death>
but you can have the user provide it
<verisimilitude>
Yes and that's a solution, but one I'd be reluctant to add, in any case.
<_death>
I can see why :)
<verisimilitude>
I still have a good amount of functionality I can add before I hit any such walls and must make a decision, I figure.
TMA has quit [Ping timeout: 240 seconds]
TMA has joined #lisp
sunwukong has joined #lisp
<_death>
maybe I should play with such a design in my library.. instead of my current urxvt-specific hacks
<verisimilitude>
Perhaps; another reason I wouldn't use terminfo or termcap, my sense of aesthetics aside, is because that's POSIX nonsense you can't expect everywhere.
<_death>
sure.. it's not ideal, but practical..
jbayardo has joined #lisp
<verisimilitude>
I've tried submitting patches for some awful issues to terminal maintainers or otherwise raising them, but with little success so far.
<verisimilitude>
Rather, no success so far.
lavaflow has joined #lisp
ravenousmoose has quit [Quit: Taking a quick nap...ZZzzz]
drolax has joined #lisp
gxt has quit [Quit: WeeChat 2.3]
Inline has joined #lisp
vaporatorius has joined #lisp
anamorphic has joined #lisp
amerlyq has quit [Quit: amerlyq]
anamorphic has quit [Client Quit]
phoe has joined #lisp
anamorphic has joined #lisp
asarch has joined #lisp
gxt has joined #lisp
zmt00 has quit [Read error: Connection reset by peer]
zmt00 has joined #lisp
makomo has joined #lisp
makomo has quit [Quit: WeeChat 2.2]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Zaab1t has quit [Quit: bye bye friends]
Khisanth has quit [Ping timeout: 244 seconds]
jkordani has quit [Read error: Connection reset by peer]
anamorphic has quit [Quit: anamorphic]
gxt has quit [Quit: WeeChat 2.3]
akoana has left #lisp ["Leaving"]
akoana has joined #lisp
gxt has joined #lisp
anamorphic has joined #lisp
Khisanth has joined #lisp
drolax has quit [Ping timeout: 252 seconds]
anamorphic has quit [Quit: anamorphic]
anamorphic has joined #lisp
anamorphic has quit [Quit: anamorphic]
anamorphic has joined #lisp
Bike has quit []
kajo has joined #lisp
pillton has joined #lisp
jxy has quit [Remote host closed the connection]
jxy has joined #lisp
LiamH has quit [Quit: Leaving.]
Essadon has quit [Quit: Qutting]
anamorphic has quit [Quit: anamorphic]
ebrasca has quit [Remote host closed the connection]
varjag has quit [Quit: ERC (IRC client for Emacs 26.1)]
sjl_ has joined #lisp
sjl has quit [Ping timeout: 246 seconds]
notzmv has quit [Ping timeout: 240 seconds]
Lord_of_Life has quit [Ping timeout: 244 seconds]
Kaisyu has joined #lisp
Lord_of_Life has joined #lisp
ealfonso has joined #lisp
karlosz has joined #lisp
mikecheck has quit [Remote host closed the connection]
Lord_of_Life has quit [Ping timeout: 245 seconds]
Lord_of_Life has joined #lisp
_whitelogger has joined #lisp
Bike has joined #lisp
sloanr has quit [Remote host closed the connection]