anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
Noisytoot has quit [Remote host closed the connection]
Noisytoot has joined #commonlisp
<dbotton>
Is there a way to ignore one of the return values in multiple-value-bind so sbcl does not warn about The variable X is defined but never used.
<dbotton>
(well not return, the bound symbols)
tasty has quit [Quit: bye bye!]
tasty has joined #commonlisp
tasty has quit [Changing host]
tasty has joined #commonlisp
jon_atack has joined #commonlisp
<yitzi>
dbotton: put a declare ignore inside the multiple-value-bind
<yitzi>
After the values form.
jonatack has quit [Ping timeout: 264 seconds]
<dbotton>
sbcl gives an error
<yitzi>
Like this? `(multiple-value-bind (a b c) (values 1 2 3) (declare (ignore b)) (+ a c))`
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
ymir has quit [Ping timeout: 240 seconds]
igemnace has quit [Read error: Connection reset by peer]
trannus_aran98 has joined #commonlisp
trannus_aran98 has quit [Client Quit]
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 256 seconds]
igemnace has joined #commonlisp
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 256 seconds]
chomwitt has joined #commonlisp
danza_ has quit [Ping timeout: 268 seconds]
alcor has joined #commonlisp
lagash has quit [Ping timeout: 268 seconds]
mesuutt has joined #commonlisp
King_julian has joined #commonlisp
mesuutt has quit [Ping timeout: 260 seconds]
vats has joined #commonlisp
pranav has quit [Remote host closed the connection]
chomwitt has quit [Ping timeout: 260 seconds]
rtypo has joined #commonlisp
danse-nr3 has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
son0p has joined #commonlisp
jonatack has quit [Ping timeout: 264 seconds]
vats has quit [Ping timeout: 260 seconds]
pranav has joined #commonlisp
emaczen has quit [Read error: Connection reset by peer]
semarie has quit [Ping timeout: 264 seconds]
mesuutt has joined #commonlisp
puke is now known as Guest3751
puke has joined #commonlisp
Guest3751 has quit [Killed (tantalum.libera.chat (Nickname regained by services))]
mesuutt has quit [Ping timeout: 252 seconds]
decweb has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
danse-nr3 has quit [Ping timeout: 256 seconds]
danse-nr3 has joined #commonlisp
bilegeek has quit [Quit: Leaving]
donleo has joined #commonlisp
random-nick has joined #commonlisp
semarie has joined #commonlisp
tok has joined #commonlisp
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 272 seconds]
Odin-LAP has joined #commonlisp
lagash has joined #commonlisp
dino_tutter has joined #commonlisp
jonatack has joined #commonlisp
poplin has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life_ is now known as Lord_of_Life
triffid has quit [Remote host closed the connection]
poplin has quit [Ping timeout: 256 seconds]
triffid has joined #commonlisp
poplin has joined #commonlisp
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
trannus_1ran has joined #commonlisp
pillton has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.2)]
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 246 seconds]
puke has quit [Remote host closed the connection]
puke has joined #commonlisp
danse-nr3 has quit [Ping timeout: 256 seconds]
n8n has joined #commonlisp
danse-nr3 has joined #commonlisp
King_julian has quit [Ping timeout: 255 seconds]
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
trannus_1ran has quit [Ping timeout: 260 seconds]
mesuutt has joined #commonlisp
nij- has joined #commonlisp
<nij->
Are there any built-in classes defined in the standard? Searching on novaspec suggests not.
<nij->
If so, what are some built-in classes? And why do we need them to be so restricted?
<beach>
The ones that are labeled "system class" can be built-in or standard.
<nij->
Yes, the spec says "may be". But it doesn't force them to.
<beach>
Standard classes can be redefined, and you don't want something like NUMBER to be redefined.
<beach>
... because you want the compiler to be able to rely on how they are represented.
<nij->
I see. By doing so, the spec allows the implementation to at least have the power to lock or protect those classes.
<beach>
But, a large number of those classes are system classes probably just to avoid that existing pre-ANSI implementation has to redefine them.
<beach>
Correct.
<nij->
I see. Good :)
<beach>
Another important thing (to me) is that, although some system classes may be built-in classes, they can still be subclasses of STANDARD-OBJECT which simplifies the implementation.
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 264 seconds]
danse-nr3 has quit [Ping timeout: 260 seconds]
attila_lendvai_ has joined #commonlisp
King_julian has joined #commonlisp
josrr has joined #commonlisp
kevingal has joined #commonlisp
kevingal_ has joined #commonlisp
awlygj has joined #commonlisp
danse-nr3 has joined #commonlisp
cage has joined #commonlisp
Krystof has joined #commonlisp
Inline has quit [Ping timeout: 256 seconds]
mesuutt has quit [Ping timeout: 260 seconds]
FragmentedCurve has quit [Quit: Leaving]
King_julian has quit [Quit: leaving]
FragmentedCurve has joined #commonlisp
nickiminjaj has joined #commonlisp
nickiminjaj has quit [Client Quit]
cross has joined #commonlisp
attila_lendvai_ has quit [Remote host closed the connection]
peterhil has quit [Quit: Must not waste too much time here...]
poplin has joined #commonlisp
synchrom1 has joined #commonlisp
synchromesh has quit [Ping timeout: 268 seconds]
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
yottabyte has joined #commonlisp
X-Scale has quit [Ping timeout: 250 seconds]
<yottabyte>
hello, has anyone used https://github.com/fukamachi/cl-dbi for connecting to a mysql database before? when I did dbi:connect, it gave me MySQL error: "SSL connection error: unknown error number" (errno = 2026). which is something about not knowing where my ssl certificate is. my msql database instance is local, I don't know much about ssl, I've been trying to look up things online, is there a way I can just skip ssl?
<ixelp>
GitHub - fukamachi/cl-dbi: Database independent interface for Common Lisp
<mrcom>
yottabyte: You need to show us what you were trying to do. At least the full "(defvar *connection* ...)" form.
<mrcom>
Never mind, the actual connection call isn't specifying SSL.
waleee has joined #commonlisp
<mrcom>
Apparently your server instance has SSL enabled. Interwebs say make use the certificate path is absolute ("/Home/user/me/mydatabase/...", not "mydatabase/...").
varjag has quit [Ping timeout: 256 seconds]
<mrcom>
Suggestion: If you haven't already done so, make sure the vanilla command-line MySQL client can connect.
decweb has quit [Ping timeout: 268 seconds]
ymir has joined #commonlisp
mesuutt has joined #commonlisp
rgherdt_ has joined #commonlisp
rgherdt__ has joined #commonlisp
rgherdt has quit [Ping timeout: 255 seconds]
Inline has quit [Quit: Leaving]
mesuutt has quit [Ping timeout: 268 seconds]
rgherdt_ has quit [Remote host closed the connection]
kevingal_ has quit [Ping timeout: 255 seconds]
kevingal has quit [Ping timeout: 255 seconds]
rgherdt__ has quit [Ping timeout: 255 seconds]
<yottabyte>
the client worked with just specifying a username and password mrcom, it defaulted to localhost. apparently it uses ODBC
<yottabyte>
I think cl-dbi uses the c connector
<mrcom>
Yeah, it's using CFFI to call into the routines.
<mrcom>
I see there's a "ssl-ca" optional slot for the connections, but don't see anything equivalent to "--skip-ssl".
decweb has joined #commonlisp
<mrcom>
I'm thinking you need to either a) force the local server instance to skip the apparently-default SSL set up config, or
<mrcom>
b) go ahead and specify the self-signed SSL cert in your connection request.
<mrcom>
You might want to think about this as a MySQL issue and not a Common Lisp library one. I'd go to a MySQL forum and say "I've got an app that's calling the c connection and having connection issues."
<yottabyte>
right, makes sense. let me see where my SSL cert is located and try to specify it
<ixelp>
Quicklisp news: The Quicklisp local-projects mechanism
<kagevf>
I don't remember the exact details, but I've done it before and it was pretty straight-forward
puke has joined #commonlisp
<green_>
yottabyte, you could switch from quicklisp to ocicl, which gives you access to all of the latest versions of everything, and the ability to pin to specific ones.
<random-nick>
couldn't you make something like a first class place by just writing a macro which makes a closure which lets you get or set a place? how come this idea isn't some library or a part of a utility library like alexandria? is there a flaw with this approach or are first class places not that useful?
<mrcom>
yottabyte: Meh. CL community isn't exactly move-fast-and-break-things. IIRC I've only had to overlay one QuickLisp lib.
<mrcom>
Unfortunately, I didn't document why, and now I've got this private copy of Bordeux-Threads I'm afraid to get rid of.
<yottabyte>
haha
<holycow>
and the other thing to consider is that opinionated ambitious projects require enormous amounts of resources to maintain. ql may actually the optimal minimum that a one person project can handle. we shall see.
<yottabyte>
yeah, ql is curated by Zach alone, right? he finds libraries he trusts/believes in/etc. to add?
<holycow>
i don't know of a single cl project that isn't a one man project more or less. lem currently has a bunch of people on it *shrug*
mesuutt has joined #commonlisp
<random-nick>
sbcl?
<holycow>
*slaps forehead* i stand corrected
<green_>
yottobyte: I am the author of ocicl. Quicklisp is amazing, and we all owe Zach huge respect, but there hasn't been much innovation in quicklisp tooling in recent years.
nij- has joined #commonlisp
<mrcom>
The forever-in-beta project :)
mesuutt has quit [Ping timeout: 264 seconds]
<mrcom>
I suspect, though, that ocicl will wind up like Ultralisp. Some uptake, some people will prefer, but the go-to will still by QL.
<mrcom>
One really valuable thing Zach does is, in effect, a mini-newsletter listing new tools. It's always fun to look at the new projects in each update.
thuna` has quit [Ping timeout: 268 seconds]
<holycow>
green_: since you are here, a quick thanks for ocicl. i haven't had time to look into it but i have it on the todo. i always appreciate when someone looks at something and tries out new ideas and perspectives
nij- has quit [Ping timeout: 264 seconds]
thuna` has joined #commonlisp
mon_key has joined #commonlisp
<mon_key>
what's the idiomatic way to interrogate the lisp environment for the user home directory?
<pranav>
mon_key: (user-homedir-pathname)
<aeth>
depending on what you are doing, you may also want (uiop:xdg-cache-home) (uiop:xdg-config-home) (uiop:xdg-data-home)
<aeth>
despite the "XDG" in the name, that gives you both the idiomatic UNIX and Windows paths to store things in (but treats MacOS as a UNIX, which might not be what you want)
pfdietz has joined #commonlisp
<mon_key>
@pranav Thnx
<mon_key>
@aeth I was looking at the UIOP docs. UIOP is so handy if/whebn I can ever figure out which subpackage a putative function lives in.
<mon_key>
@aeth Also, the XDG prefix for those functions is indeed confusing.
josrr has quit [Remote host closed the connection]
mariari has quit [Ping timeout: 260 seconds]
mesuutt has joined #commonlisp
poplin has joined #commonlisp
mesuutt has quit [Ping timeout: 256 seconds]
mariari has joined #commonlisp
ymir has quit [Ping timeout: 268 seconds]
tibfulv_ has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
ymir has joined #commonlisp
<younder>
I find (asdf:system-source-directory "project") more useful. I start with a project (cl-project:make-project ..) and use the root directory for that. That way it works no matter where it is installed.
lucasta has joined #commonlisp
nij- has joined #commonlisp
<nij->
mrcom OCICL will shine one day when we can load different versions of the same library into one single lisp image.
mesuutt has joined #commonlisp
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
chomwitt has joined #commonlisp
<skin>
ocicl is very frictionless, a much better experience. only problem I have so far is f
mon_key has quit [Ping timeout: 268 seconds]
<skin>
is how tightly integrated Roswell is with quicklisp
mon_key has joined #commonlisp
<skin>
and it's really nice how easy it is to set up my own repository for artifacts
<nij->
skin - Do you have the need of using libs whose versions are not given by QL?
<skin>
yeah, ones I write and want to publish.
<skin>
in other ecosystems I can write a library or a package and publish it on my own repository for people to grab
<skin>
should be easy to do that now
<nij->
... Hmm is that what OCICL does?
<skin>
don't know how ocicl works with multiple repositories though I'll have to test that
<skin>
something new to test
<aeth>
for my own stuff, I just put it in ~/quicklisp/local-projects/ and I also rarely use that for libraries that have a bugfix that's not in Quicklisp yet
<aeth>
which just overrides Quicklisp's stuff, it doesn't allow multiple versions
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
<skin>
using multiple versions of libraries is why npm downloads the internet, and also it causes instability.
wacki has quit [Read error: Connection reset by peer]
<skin>
in my opinion, ql not supporting multiple versions is a feature, not a bug.
trannus_1ran has joined #commonlisp
X-Scale has joined #commonlisp
amb007 has quit [Ping timeout: 272 seconds]
<skin>
> While the ocicl cli tool only supports setting a single alternate registry, it's possible to use multiple registries by adding multiple entries to the ocicl-registry.cfg file in your ${XDG_DATA_DIR}/ocicl directory.
<skin>
so that's nice.
wacki has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<green_>
You can use alternate registries from the cli, so "ocicl install -r docker.io/ocicl cl-ppcre" works because I mirror everything on docker.io, but you can host your own as well.
<mrcom>
nij: To rephrase your words a little--"OCICL will shine one day when *there is a widespread need to* load multiple versions of the same library."
<mrcom>
I really don't see that happening.
<green_>
or widespread need for https/proxies/security. Even if some of it is theater, many environments are so locked down that quicklisp is not a viable option.
<mrcom>
Now *that* could become a real problem.
<green_>
Most organizations have some way to allow OCI images to come in from github or docker.io, but gz files from uncommon domains not using TLS? Forget it.
<green_>
It makes CL a non-started in banks, for instance.
zetef has joined #commonlisp
mesuutt has joined #commonlisp
<green_>
non-starter
<mrcom>
I think CL will always be a non-starter for most corp purposes. Nothing to do with security.
<gilberth>
What is OCI?
<green_>
mrcom: not for enterprise apps, but for small things.. yes, there are people who want it
<mrcom>
Yes, but small things are not rich targets.
<green_>
gilberth: OCI = https://opencontainers.org/ ocicl doesn't use container images, it just stores the gz files using oci tooling, which is great because the tools are high quality, and the repos and bandwidth are free
<ixelp>
Open Container Initiative - Open Container Initiative
<mrcom>
(Why does ixelp do that?)
<green_>
My understand is that homebrew switched to OCP as well
<green_>
OCI I mean
<mrcom>
Homebrew users are a pretty juicy target.
<mrcom>
Lisp hackers not so much.
mesuutt has quit [Ping timeout: 268 seconds]
<gilberth>
green_: Still is Chinese to me.
<mrcom>
I think a realistic threat model for CL has two concerns: a) spear-fishing, b) Morris-worm lulz.
<gilberth>
Or Greek rather in English :)
<green_>
It's more about corporate policy. Many environment have allow-lists for domains for their workers and quicklisp.org is not on it.
<gilberth>
Their choice then.
zetef_ has joined #commonlisp
<mrcom>
green_: Your use-case for ocicl kind of predicates a demand for corp approval of CL apps.
<mrcom>
Never going to be much demand for that.
zetef has quit [Ping timeout: 240 seconds]
<gilberth>
So this is about from which domain the systems are installed from? Why does that matter?
<mrcom>
If, in specific instances, a use-case can be made for it, then there will just one additional waiver/work-around.
<mrcom>
He's thinking of the Python dumpster-fire.
<mrcom>
The corp world has a real, credible, growing-impossible-to-ignore issue with popular library repositories being targets for supply-chain corruption.
<gilberth>
Then the corp world has a problem.
shka has quit [Ping timeout: 255 seconds]
<gilberth>
Seriously, you depend on libraries and happily update those libraries just because there is a newer version? And then whine when something breaks? I never got this part.
<mrcom>
It's a different world, different problems.
reb has quit [Remote host closed the connection]
n8n has quit [Quit: WeeChat 4.2.2]
<gilberth>
I might be naïve. But what I got so far is that when this update comes from a certain CDN then it is ok, but not when it comes from a CDN not on a certain list? What difference does that make?
<mrcom>
It's distributed workload and trust.
<gilberth>
Trust in what exactly?
<mrcom>
It's just not possible for an org to vet every library used in an app.
<mrcom>
You have to trust that the people who provied the libs did sufficient vetting.
<gilberth>
And what difference does the CDN used make?
<mrcom>
To guard agains someone other than the trusted providers actually made the changes.
<mrcom>
It's a fragile ecosystem.
<mrcom>
But there's no practical alternative.
<gilberth>
Fragility comes from elsewhere. This fragility is not fixed by trusting a CDN.
<mrcom>
No, but nothing else matters if any rando can inject code.
<gilberth>
And what difference does a CDN make then?
<mrcom>
Know-your-provider is necessary but not sufficient.
<mrcom>
Vetting the code-changers is delegated to the CDN.
<mrcom>
Or rather, verifying the identity of the code-changers is delegated.
<gilberth>
Oh, and it does this how? And I would need to host my git^Wfossil with them then?
<gilberth>
And when I accept patches from someone else, I need to ask "them"?
<mrcom>
That's the idea.
<gilberth>
And why would I as a software author want to do that?
<mrcom>
It's a minimum requirement for any kind of security.
<mrcom>
Like I said, it's a different world with different (real!) problems.
<gilberth>
Security that gives you nothing at all. Not in terms of being sure that the code is fit for anything. It's voodoo.
<mrcom>
To some extent, yes.
akoana has joined #commonlisp
<mrcom>
But the idea is that you, large corp entity, decide that a certain set of library providers are security-conscious enough that the risk/benefit ratio is worth depending upon them.
zetef_ has quit [Ping timeout: 268 seconds]
<mrcom>
For example, "it's worth trusting Linus and the people he trusts".
<gilberth>
Linus is on that kind of CDN?
<mon_key>
didn't someone (at Microsoft?) just recently discover a seurity exploit in Postgres build scripts?
<mrcom>
Yes, there are all kinds of exploits out there. It's very much whack-a-mole.
<mrcom>
But corp wants to avoid, at least, spreading mole-food all over their stuff.
<mon_key>
Nothing is safe in the public ecosphere of user-contributed code to free/open projects. I'm just waiting for @stassats to reveal the backdoors for SBCL, i.e. the extension sb-danger-will-robinson :)
<gilberth>
Bugs too. And even the most careful and brilliant hacker can make a mistake. But then in general industry doesn't care for security or robustness at all. Guess, it's not cost effective.
<mrcom>
And yes, the linux kernel has a whole tree of trusted committers.
<mon_key>
kernel space is still the most likely space for grid collapsing exploits.
<mrcom>
Commits from less-trusted people get more scrutiny.
<gilberth>
Yes, but we don't trust Linux because it is distributed by Acme CDN.
<mrcom>
Yes you do.
<mrcom>
Or rather, corp does.
trannus_1ran has quit [Ping timeout: 260 seconds]
<gilberth>
Silly Corp. I would rather trust based upon reputation.
<mrcom>
That's exactly what they are doing.
<gilberth>
And I would never blindly update to begin with. But that's another issue.
<mon_key>
CVE-2024–1597
<mrcom>
Nonsense. You blindly update all the time.
<gilberth>
Do I?
<mrcom>
When's the last time you examined all source changes to the kernel you're running?
<mrcom>
You trust that whereever you got the kernel got the real deal, and that those changes are given at least *some* critical examination.
<gilberth>
I never examined the kernel to begin with. But: I don't do updates for the sole sake of updating. In practice updates break more than they fix.
<mrcom>
You don't load images from git://rando-real-free-software.com/linux-kernel
<gilberth>
Or put otherwise: Why would I update when I have a system that runs flawlessly?
<mrcom>
Because it's not actually flawless.
<mrcom>
You're trying to outrun the bad guys finding the flaws.
amb007 has quit [Ping timeout: 260 seconds]
<mrcom>
News article--"Clueless bank pawned because they hadn't updated their xyz software in 10 years."
<gilberth>
My webserver runs with CMUCL 18e since decades without a glitch. Why would I want to update to a newer version of CMUCL?
amb007 has joined #commonlisp
<mrcom>
You don't.
<mrcom>
But you're not a rich target, and you don't need to worry about maintainability.
<gilberth>
I would need to worry would I update all the time.
<mrcom>
Different world, different problem set.
<gilberth>
Perhaps. As White_Flame once put it: Our industry is a fashion industry.
<mrcom>
I imagine you're not offering http/2, websockets, or other stuff, either.
<mrcom>
Oh definitely.
<gilberth>
mrcom: No, I don't. Although CL-HTTP was the first HTTP/1.1 web server being written, it is not exactly maintained at all. It serves my little needs though.
zetef has joined #commonlisp
<gilberth>
And yes, I might live in a different world. My experience is that web hosters are quite conservative with the software they use. Updates are very, very rare. Just because every update has the chance of breaking things.
tok has quit [Remote host closed the connection]
zetef has quit [Ping timeout: 256 seconds]
zetef_ has joined #commonlisp
mesuutt has joined #commonlisp
<skin>
as a devops engineer, I can say the oci tooling, which I work with a lot in docker and kubernetes anyway, is a breath of fresh air.
<skin>
it piggy backs off all this rich mature deployment tooling.
<skin>
security vulnerability scanners, version pinning, registry hosting, all the things. so much good tooling had been written for it.
zetef_ has quit [Ping timeout: 240 seconds]
mesuutt has quit [Ping timeout: 255 seconds]
<skin>
a really huge step forward for the deployment story for kubernetes.
zetef has joined #commonlisp
<skin>
now a company can e.g. host a private common lisp registry for all its developers to use to share libraries, and if they deploy using docker, they'd have to have that anyway. saved effort
<skin>
also many providers like aws through vuln scanning in for free.
<skin>
deployment story for common lisp not kubernetes
<skin>
I wish other languages did it. Then I wouldn't have to host jfrog artifactory to host python pip and npm packages, I'd just have to use AWS ECR.
<skin>
not to mention how painless it is to use as a developer.
<skin>
just load this
<skin>
load the system and check in the systems file. that's it.
<skin>
clpm tried to get that easy but ultimately didn't. I found it hard to get working.
<skin>
qlot is alright but doesn't resolve depenencies transitively and ocicl does. also ocicl works better on windows.
dom2 has joined #commonlisp
<mrcom>
On the other hand, by update process is '(ql:update-client) (ql:update-dist "quicklisp")'.
<mrcom>
And about a dozen '(ql:quickload :foo)' statements I cut-and-paste whenever I restart Emacs & sly.
<mrcom>
Although there is an annoying problem whenever Sly decides to recompile the backend. Have to s-r-inf or (ql:quickload :alexandria) complains about duplicates.
chomwitt has quit [Ping timeout: 255 seconds]
chomwitt has joined #commonlisp
<mrcom>
And CCL decided it was a good idea to define COPY-FILE and TERMINATE in CL: or CL-USER:, which messes with importing Alexandria & Iterate.
amb007 has quit [Ping timeout: 260 seconds]
<pfdietz>
CL-USER an implementation can do whatever it wants, but CL? That's a standard violation.
<pfdietz>
That is, if you are saying it exports non-standard symbols from CL.
<mrcom>
I don't remember which it was. Just have a couple of "#+:ccl(shadowing-import ...)" forms.
<pfdietz>
Yeah, that means they were exported. Naughty!
<mrcom>
Well that was pretty painless. Ran my regression suite OK. Guess I was a good boy.
<mrcom>
And the CCL symbols I shadowed are in :cl-user, not :cl.
alcor has quit [Ping timeout: 272 seconds]
<skin>
I have a point of curiosity. Is there a relatively portable way to set the output of the function `(long-site-name)` or `(short-site-name)`?
<skin>
,(long-site-name)
<ixelp>
(long-site-name) => "unspecified"
<mrcom>
That seems pretty portable :)
<skin>
It's kind of niche. I love all the "external environment" functions in the standard. I like that there is a function to edit files, for example.
<skin>
I've hooked the editor function up (though I rarely use it) and was wondering how to do that with site name.
<skin>
mrcom: Oh, I mean how does one set the name, not look it up.
donleo has quit [Ping timeout: 264 seconds]
mesuutt has quit [Ping timeout: 268 seconds]
<mrcom>
Was just kidding that hard-coding "unspecified" was portable. And not wrong.
<mrcom>
Although sbcl is returning NIL for long and short.
<mrcom>
CCL is looking for *long-site-name*.
decweb has quit [Quit: Konversation terminated!]
<mrcom>
So is SBCL.
mgl_ has quit [Ping timeout: 260 seconds]
<mrcom>
But it's via (define-load-time-global *long-site-name* nil)
<skin>
oh.
<skin>
clhs define-load-time-global
<mrcom>
It's a sbcl extension.
<mrcom>
(setf sb-impl::*long-site-name* "My computer")
<mrcom>
(long-site-name) => "My computer"
<mrcom>
So not portable.
<mrcom>
Hah! This looks backwards (poking around in sbcl/src/code/macros.lisp)
<mrcom>
";; COND defined in terms of IF"
fe[nl]ix has quit [Quit: Valete!]
son0p has quit [Quit: Leaving]
<mrcom>
Oh--CLHS says COND is a macro, IF is a special form. Seems backwards...
zetef has quit [Remote host closed the connection]
<bike>
if an implementation really wants to, it can swap those around, as long as it does provide a macroexpansion of cond
josrr has joined #commonlisp
fe[nl]ix has joined #commonlisp
<mrcom>
I guess a s-f IF would involve slight less source code in compiler than s-f COND. Maybe?
<bike>
probably, yes
<bike>
cond has a few more complicated bits like how (cond ((foo)) ...) is short for (let ((s (foo))) (or s (cond ...)))
amb007 has joined #commonlisp
<mrcom>
That would be (if (s) nil (...)), wouldn't it?