gabc has quit [Read error: Connection reset by peer]
azimut has quit [Ping timeout: 258 seconds]
azimut has joined #commonlisp
notzmv has quit [Ping timeout: 268 seconds]
let-over-lambda has quit [Quit: WeeChat 3.6]
jeffrey has joined #commonlisp
xlarsx has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
drbluefall has quit [Quit: gonna play games with the gf, see y'all]
xlarsx has quit [Ping timeout: 260 seconds]
causal has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 250 seconds]
Lord_of_Life has joined #commonlisp
genpaku has quit [Remote host closed the connection]
genpaku has joined #commonlisp
akoana has quit [Quit: leaving]
waleee has quit [Ping timeout: 246 seconds]
waleee has joined #commonlisp
son0p has joined #commonlisp
bitmapper has quit [Quit: Connection closed for inactivity]
pranavats has left #commonlisp [Error from remote client]
notzmv has joined #commonlisp
pjb has quit [Ping timeout: 248 seconds]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
azimut has quit [Ping timeout: 258 seconds]
azimut has joined #commonlisp
cercopith_ has joined #commonlisp
cercopith has quit [Ping timeout: 260 seconds]
azimut has quit [Remote host closed the connection]
nemkell has joined #commonlisp
azimut has joined #commonlisp
waleee has quit [Ping timeout: 265 seconds]
dtman34 has quit [Ping timeout: 252 seconds]
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
skeemer has quit [Ping timeout: 252 seconds]
tyson2 has quit [Remote host closed the connection]
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
hineios0 has joined #commonlisp
jeffrey has quit [Quit: Client quit]
hineios has quit [Ping timeout: 260 seconds]
hineios0 is now known as hineios
eddof13 has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
cercopith_ has quit [Ping timeout: 265 seconds]
cercopith has joined #commonlisp
rgherdt has joined #commonlisp
lsj has quit [Remote host closed the connection]
lsj has joined #commonlisp
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
aartaka has joined #commonlisp
shka has joined #commonlisp
aartaka has quit [Ping timeout: 264 seconds]
bilegeek has joined #commonlisp
aartaka has joined #commonlisp
pve has joined #commonlisp
Cymew has joined #commonlisp
cercopith_ has joined #commonlisp
cercopith has quit [Ping timeout: 248 seconds]
_cymew_ has joined #commonlisp
scymtym has quit [Ping timeout: 265 seconds]
Brucio-61 has quit [Ping timeout: 260 seconds]
Brucio-61 has joined #commonlisp
igemnace has joined #commonlisp
MajorBiscuit has joined #commonlisp
Brucio-61 has quit [Ping timeout: 265 seconds]
cercopith_ has quit [Remote host closed the connection]
cercopith_ has joined #commonlisp
gxt has quit [Ping timeout: 258 seconds]
gxt has joined #commonlisp
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
azimut has quit [Ping timeout: 258 seconds]
lottaquestions_ has quit [Quit: Konversation terminated!]
lottaquestions_ has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
<pve>
Hi, I can use read-line to read a command from the user. But sometimes I would like to "fill in" a default command so that pressing enter would run that command, or that the user could move the cursor over the command using the arrow keys (and possibly edit it). I'm using rlwrap currently, which gives me the arrows keys and command history for free, but I'm still missing the "add default text to the
<pve>
editable area" part. Is this possible to achieve easily? I have not done interactive terminal apps like this before.
<pve>
it's not critical to have, but would make certain things more convenient
Jach has quit [Ping timeout: 264 seconds]
<beach>
With McCLIM, it is very easy.
<phoe>
pve: I don't think it's possible without including readline in your code directly; I do not know a way to integrate with rlwrap from outside this way
<pve>
beach: McCLIM would be interesting to try somewhere down the line, because some graphical elements might be necessary to have. Currently I'm just prototyping in the terminal to see if I can get some kind of proof-of-concept going.
<pve>
phoe: Ok, thanks. I'm not married to readline though, anything that provides a "nice" terminal experience would be interesting.
<beach>
Yes, I see.
<beach>
Good luck.
<pve>
thanks
<aeth>
do you need it to be command line or could you go ncurses?
<pve>
ncurses might work, I think? Have never done anything with ncurses, so I'm not sure whats possible..
<aeth>
afaik (as a terminal user, not a library user), with ncurses, you'd have a TUI and can do 'anything'; with a true command line you need something like readline
<aeth>
you can even accept mouse clicks
<aeth>
but a lot of TUIs have a command line (e.g. most in-terminal IRC clients have a line to enter IRC lines or /commands). idk if that runs on readline or just provides readline-like keys
<pve>
so do midnight commander or htop use ncurses?
<verisimilitude>
Of particular interest are ASK-LIMITED-LINE and ASK-INTEGER.
<verisimilitude>
In ASK-INTEGER, I do exactly what was discussed: I show a default value in a different colour and erase it when any input be given.
<beach>
verisimilitude: I think I have seen this code before, and I remarked on the number of violations of established coding practice.
<verisimilitude>
That may have been an earlier version, beach; I've rewritten this general design thrice by now.
<beach>
I still see a lot of such violations though.
<pve>
verisimilitude: thanks, I'll check that out.
<verisimilitude>
Oh, in the library?
<verisimilitude>
I need to rewrite the library, yes, but it works and I've better work to do.
<verisimilitude>
It's no issue, pve.
Everything has joined #commonlisp
xlarsx has joined #commonlisp
<beach>
verisimilitude: I did misunderstand. You said you don't submit your code in order to ask for help or to people you collaborate with. But indeed, you said nothing about submitting your code to potential users.
<verisimilitude>
I write it for myself, but it's nice if it also helps others.
<verisimilitude>
I see improvements I can make in mmc-lmc.lisp, but I'd rather rewrite it again.
<verisimilitude>
The magic is in the library's ATC:READ-EVENT function anyway.
Jach has joined #commonlisp
<beach>
So you plan to rewrite that one as well?
<verisimilitude>
What?
<verisimilitude>
The LMC version was a prototypical version of the next CHIP-8 version.
<beach>
When I remarked on violations of standard practice, you said you were planning to rewrite that code, and the last one you showed also contains such violations, so I am asking.
<verisimilitude>
What's wrong in the mmc-lmc.lisp file?
<aeth>
Personally, right at the start the lack of +foo+ and *foo* in the globals bothers me and stands out.
<beach>
verisimilitude: That's one that I immediately see.
Dynom_ is now known as Guest2389
<verisimilitude>
I dislike the latter convention, and the former isn't reflected in standard Common Lisp at all.
<aeth>
But what bothers me more than the style (and assuming the AGPLv3 is compatible with what pve is writing, since that's also right there at the top of the file) is the whole "I'll rewrite it again" attitude, which I absolutely have for just about all of the code I write, even public on Gitlab, but I don't encourage people to use it because of that even though I can't stop them.
<beach>
verisimilitude: That's what I suspected.
<verisimilitude>
Why?
<aeth>
but, wow, now that beach points it out I can't unsee the ";foo" comments
<aeth>
I get not doing the ;; ;;; ;;;; properly (a lot of people don't even agree on when to use the ;;;;) even though I disagree with it (although I often accidentally mix up ;; and ;;;)... but no spaces?
<verisimilitude>
I write my comments to end on the one hundredth column, instead.
<aeth>
I think generally the people who break the common Common Lisp semicolon style usually just use ";; " for all on-their-own-line comments and it's actually hard to notice when a file does that.
<aeth>
";foo" is very unique
<aeth>
verisimilitude: as for +foo+ and *foo* not being completely reflected in Common Lisp, that's because the standard can't change what's already out.
<verisimilitude>
Yes, well, none of the comments can easily be changed without looking worse, so I won't change them.
<verisimilitude>
There's not a single constant in Common Lisp named with a +.
<aeth>
That's the worst kind of rules lawyering. The Common Lisp standard reflects standardizing several decades' worth of naming convention changes and includes plenty of bad things like RPLACA that can never be changed merely because that would break existing code and that's even worse than a perfect name.
<aeth>
Arguably, even DEFFOO/DEFOO is outdated in later Lisp (just in time to make the cut for the CL standard) since e.g. DEFINE-CONDITION violates the old standard naming convention (it should be DEFCONDITION because it's only one word, reserving hyphens for multiple words)
pjb has joined #commonlisp
epony has quit [Remote host closed the connection]
<verisimilitude>
So?
<verisimilitude>
I'm not telling anyone to use a different style, so who's lawyering here?
<aeth>
I'm just saying that the standard always gets a pass on style that normal code doesn't get away with unless you want to be Scheme and rename things between revisions, which is uncommon in languages.
<aeth>
in part because you don't even get a style forming before the standard is out because you don't yet have a language at that point... and once you do, it's too late to change
<verisimilitude>
I see no issue with how I wrote my code.
<aeth>
It's not terrible. It's just unusual. Not too unusual that it's painful (putting ")"s on their own line would do that), but just different enough in a unique way to be annoying;e.g. line comments start like that
<aeth>
s/line comments/end of line comments/
<verisimilitude>
We'll continue later.
<verisimilitude>
Good night.
<aeth>
Anyway, your insistence on using rare things from the standard (e.g. &aux), but refusal to use newer conventions/libraries creates something that feels archaic. That program looks old.
<aeth>
is probably what it seems like
<verisimilitude>
I appreciate that comment.
<aeth>
so not terrible; there are definitely worse styles
<aeth>
I do have to word things carefully because I personally also write fairly uniquely, too, but mainly because a game engine kind of demands that (at least as I approach the problem). Layers and layers of macros.
<beach>
I think it is fine to use whatever style verisimilitude likes, but I am surprised about the desire to show code using such style to #commonlisp, given the inevitable reactions to it.
<aeth>
yes, I've personally learned not to really share too many things on IRC that use define-function instead of defun (because anyone's first reaction will be "what the heck is that?")
verisimilitude has quit [Ping timeout: 264 seconds]
<aeth>
(it exists because it provides a uniform syntax for defmethod-style use of defun for declare/check-type as well as a way to inline without a separate declaim that I often mess up... similar macros at the time existed, in feature-incomplete forms with incompatible licenses and often using the opposite order of defmethod for no good reason)
<aeth>
(since I wrote it, another 10 macros to solve the same problem in slightly different ways were probably written)
makomo has quit [Ping timeout: 260 seconds]
<aeth>
(and since I took two lines to explain what it is in an aside, I just prove my point)
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
bilegeek has quit [Remote host closed the connection]
bilegeek has joined #commonlisp
<pjb>
aeth: the point is that if you want help with some code, it should be executable in our environments, therefore if it uses uncommon things, it should be self-sufficient, loading its dependencies, etc.
<pjb>
aeth: you could write an emacs command paste-with-dependencies that would analyse the code you paste, and add the missing definitions to make it self-sufficient.
lips123mob has joined #commonlisp
<lips123mob>
what’s everyone’s favourite irc app on linux excl. erc (or is erc really the best for linux)
<Colleen>
lips123mob: Josh_2 said at 2022.09.20 18:51:50: BKNR doesn't properly handle :initform when modifying class definitions
cercopith_ has quit [Remote host closed the connection]
cercopith has joined #commonlisp
Lycurgus has joined #commonlisp
bilegeek has quit [Quit: Leaving]
lips123mob has quit [Ping timeout: 268 seconds]
xlarsx has quit [Remote host closed the connection]
Lycurgus has quit [Quit: Exeunt juan@acm.org]
aartaka has quit [Ping timeout: 250 seconds]
aartaka has joined #commonlisp
makomo has joined #commonlisp
hineios has quit [Ping timeout: 265 seconds]
hineios has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 246 seconds]
Brucio-61 has joined #commonlisp
scymtym has joined #commonlisp
random-nick has joined #commonlisp
lisp124 has joined #commonlisp
lisp124 is now known as lisp123[l]
lisp123[l] is now known as lisp123
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 265 seconds]
lisp123 has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
aartaka has quit [Ping timeout: 248 seconds]
aartaka has joined #commonlisp
<Shinmera>
lieven: weechat
azimut has joined #commonlisp
<Helmholtz>
How to install quicklisp in a doom emacs +sly setup? I mean does it depend on editor or can I just do it in a terminal session? I need to evaluate just one file for installation? Is it like a binary?
<pjb>
Helmholtz: quicklisp doesn't depend on emacs or sly.
<pjb>
Just do it in a terminal.
<Helmholtz>
shouldn't it be part of the os package manager?
<pjb>
Helmholtz: well, you would definitely want to install quicklisp in your home directory.
Lycurgus has joined #commonlisp
<pjb>
It could be installed system-wide, but it would pose several problems: access rights of the object files would depend on what user first installed or compiled a system. The version of installed system, or state of upgrade of the quicklisp distribution would be imposed for all system-wide quicklisp users, which could break programs.
<pjb>
Linux distribution vendors make sure that all the unix libraries are compatible with all the program binaries; they're all bundled in a versionned distribution.
<pjb>
But this requires a lot of resources, which Xach alone doesn't have, to make quicklisp distribution. Also, a lot of lisp programs are not published, or at least, not integrated into a quicklisp-distributable system.
tyson2 has joined #commonlisp
<pjb>
So it is better if each user download and ensure version compatibility of the dependencies he need for his lisp software.
<pjb>
If you want to distribute a lisp program system-wide, then you would rather distribute a compiled executable image, rather than sources to be linked with library systems.
jmdaemon has quit [Ping timeout: 265 seconds]
<pjb>
Said otherwise, some linux distribution include some common lisp library (perhaps not using quicklisp), but it has never worked very well, for lispers. It could work for users of lisp program distributed by the linux distribution.
<Helmholtz>
thanks
<pjb>
In general, I'd advise you to download and compile your own software, for the main program you use (ie. basically emacs, the CL implementations, and the libraries).
<pjb>
Otherwise you're always at the mercy of the canned administration of distributors. Eg. on macOS, you have an old version of bash, which is very inconvenient when you write bash scripts. Hence if you download and compile your own base, you know what version you have, and you're not bothered by some sysadmin in Cupertino making choices motivated by the financial interests of Apple Inc.
random-nick has quit [Ping timeout: 265 seconds]
Lycurgus has quit [Quit: Exeunt juan@acm.org]
cage has joined #commonlisp
cercopith has quit [Remote host closed the connection]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pranavats has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
defstruct has joined #commonlisp
hineios0 has joined #commonlisp
hineios has quit [Read error: Connection reset by peer]
hineios0 is now known as hineios
grawlinson has quit [Ping timeout: 246 seconds]
defstruct has quit [Remote host closed the connection]
grawlinson has joined #commonlisp
defstruct has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
* phoe
gets dreamy-eyed for a second, wishes (SETF IF) was defined
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 248 seconds]
epony has joined #commonlisp
<jcowan>
phoe: Okay, I'll bite: what would it mean?
<_death>
I guess an if-like operator that expands to (if test (setf place1 value) (setf place2 value)) .. using IF would then be a bit of a misnomer, because it's less general
eddof13 has joined #commonlisp
<phoe>
jcowan: what _death said, (setf (if foo bar baz) value) === (if foo (setf bar value) (setf baz value))
<phoe>
but this opens a whole new can of worms because in standard lisp branches of IF can be anything, including LET and PROGN and all that
<jcowan>
Oh, I see.
<phoe>
and solving these alongside IF requires a wholecode walker
<phoe>
whole code walker*
<jcowan>
Clearly this would only work if bar and baz represented locations.
<phoe>
yes, they need to be places
<phoe>
...or rather, would need
<jcowan>
Right, but we can identify what a place is without code-walking
<phoe>
yes, that is more or less correct - I was just pointing out that e.g. (setf (let ...) ...) is undefined
<jcowan>
because it is statically known: you can't say (setf (baz x) 32) just given (defun baz (x) (cdr x)).
<phoe>
and therefore even if (if ... (let ...) ...) is valid Lisp then it would not necessarily be a valid place, even with IF as a valid place
<_death>
you can, actually
<jcowan>
So extending setf to if and set just requires that the two branches are both places, and that the last form in the let is a place.
<phoe>
yeah, the case in which SETF FOO decays into (FUNCALL #'(SETF FOO) ...) if it exhausts all other options
<phoe>
and #'(SETF FOO) is something you can define later
<jcowan>
Oh yes, sure. But just because foo decays to cdr does not mean that (setf foo) decays to (setf cdr).
<jcowan>
Automatically, anyway.
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
son0p has quit [Ping timeout: 265 seconds]
<_death>
on the other hand, in (setf (m) 123) M can be a macro that expands to a place, but in general macros need not do so, so in this sense (setf (if test place1 place2) 123) makes sense
<_death>
there are also the values/the/apply special cases
waleee has quit [Ping timeout: 248 seconds]
enzuru has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
<_death>
maybe by that time the committee were fatigued with jokes like (setf (* f1 f2) 224966862429642389984054873440486763137) (list f1 f2) => (14616588291900472919 15391201964298594023)
aartaka has joined #commonlisp
eddof13 has joined #commonlisp
<_death>
Crypto Lisp
frgo has quit [Ping timeout: 252 seconds]
<jcowan>
Constraint programming, basically
hineios has quit [Read error: Connection reset by peer]
<phoe>
well, SETF is not required to terminate, so
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
hineios has joined #commonlisp
hineios has quit [Client Quit]
eddof13 has joined #commonlisp
hineios has joined #commonlisp
hineios has quit [Quit: Ping timeout (120 seconds)]
hineios has joined #commonlisp
aartaka has quit [Ping timeout: 264 seconds]
aartaka has joined #commonlisp
scymtym has quit [Ping timeout: 250 seconds]
Brucio-61 has quit [Ping timeout: 264 seconds]
Cymew has quit [Ping timeout: 268 seconds]
_cymew_ has quit [Ping timeout: 248 seconds]
Brucio-61 has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
Posterdati has quit [Read error: Connection reset by peer]
defstruct has quit [Ping timeout: 250 seconds]
xlarsx has joined #commonlisp
xlarsx has quit [Read error: Connection reset by peer]
xlarsx has joined #commonlisp
Everything has quit [Quit: leaving]
xlarsx has quit [Ping timeout: 268 seconds]
tyson2 has quit [Remote host closed the connection]
hineios has quit [Ping timeout: 268 seconds]
Posterdati has joined #commonlisp
hineios has joined #commonlisp
MajorBiscuit has quit [Quit: WeeChat 3.5]
amb007 has joined #commonlisp
causal has quit [Quit: WeeChat 3.6]
amb007 has quit [Ping timeout: 246 seconds]
amb007 has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
verisimilitude has joined #commonlisp
igemnace has quit [Quit: WeeChat 3.6]
amb007 has quit [Ping timeout: 264 seconds]
xlarsx has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
mathrick has joined #commonlisp
aartaka has joined #commonlisp
xlarsx has quit [Ping timeout: 260 seconds]
xlarsx has joined #commonlisp
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
Oladon has joined #commonlisp
tyson2 has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
igemnace has joined #commonlisp
cercopith has quit [Read error: Connection reset by peer]
jmdaemon has joined #commonlisp
amb007 has quit [Ping timeout: 260 seconds]
eddof13 has joined #commonlisp
skeemer has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
xlarsx has quit [Ping timeout: 252 seconds]
Oladon has quit [Quit: Leaving.]
waleee has joined #commonlisp
frgo has joined #commonlisp
Josh_2 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 260 seconds]
srji has quit [Quit: leaving]
akoana has joined #commonlisp
random-nick has joined #commonlisp
srji has joined #commonlisp
srji has quit [Client Quit]
srji has joined #commonlisp
srji has quit [Client Quit]
srji has joined #commonlisp
amb007 has joined #commonlisp
azimut has quit [Ping timeout: 258 seconds]
attila_lendvai has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
tyson2 has joined #commonlisp
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 268 seconds]
frgo has quit []
poselyqualityles has joined #commonlisp
xlarsx has joined #commonlisp
Guest2389 has quit [Quit: WeeChat 3.6]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
attila_lendvai has quit [Read error: Connection reset by peer]
xlarsx has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 252 seconds]
masinter has joined #commonlisp
masinter has quit [Remote host closed the connection]
masinter has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 268 seconds]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
mariari has quit [Ping timeout: 268 seconds]
shka has quit [Ping timeout: 260 seconds]
pve has quit [Quit: leaving]
mariari has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dra has joined #commonlisp
eddof13 has joined #commonlisp
Inline has joined #commonlisp
eddof13 has quit [Client Quit]
eddof13 has joined #commonlisp
<doomduck>
anyone knows if SBCL is stable on windows? I mean specifically the binaries
<doomduck>
or more like, if I ship my app to a couple thousand people, should I be worried about anything?
Inline has quit [Quit: Leaving]
<pjb>
doomduck: it should be easy enough to write a script, even on ms-wimdows, to launch and test your application a few million times, and see how many times it crashes.
<pjb>
doomduck: you do have tests, do you?
<doomduck>
oh I'm not worried about the actual application code, just things like "missing libraries" or something weird on some computers due to windows versions and stuff
<doomduck>
like things that are commonly found on some windows machines and not others that are dependencies that SBCL might rely on, or something weird
<pjb>
Then you also want to test the installation procedures, etc.
<doomduck>
like for example I found out the hard way that linux binaries are linked against a specific version of libc, so building on a newer ubuntu means people on older ubuntu can't run it ...
<pjb>
On various versions of ms-windows. I guess dockers or other VMs would be useful for that.
<doomduck>
I don't have any installer or anything, just a portable .exe with all the .dlls that come with it, it's installed via steam
<pjb>
Yes, there exist a DLL hell, I hear.
<doomduck>
hmm but trying it in a few VMs sounds like a good idea
<pjb>
Perhaps steam has tools to test apps on various versions of the system?
<pjb>
AppStore has them.
<doomduck>
they don't afaik, its tooling is basically "upload a zip + link to our dll", it's quite vanilla
<doomduck>
I guess I'm just not used to shipping stuff with my own build process, I've shipped many products before, but all with fancy battle tested setups
<doomduck>
and CL feels like walking a less travelled road lol
<pjb>
Then be particularly careful with your error handling around shared libraries (dll) initializations, with nice error messages for the users and perhaps calling home for detailed reports.
<doomduck>
hmmmm, that's a good idea, and probably something I should really test explicitly
<doomduck>
like delete the .dlls and see what happens
<pjb>
With CL you have the advantage of being able to handle most errors, so reporting back can be easy, and detecting errors early let you debug and provide updates early.
<doomduck>
though I only depend on two, one of which is libffi.dll to load the other dll :D
<doomduck>
do you know of any error reporting services that support CL? like is there something like sentry for CL?
<pjb>
I don't know. Perhaps some of them are not dependent on the implementation language but have a generic API?
igemnace has quit [Remote host closed the connection]
<pjb>
You should also ask in ms-windows channels how they handle dll problems in deployed apps?
<pjb>
Perhaps ms-windows is able to search, download and install missing dll, with some support from the apps?
<doomduck>
hmm I guess sentry and others probably have a simple API, tho that also means I have to test my error handling instead of just sticking in a new library :D
<doomduck>
hmm I don't think it can, but also I don't think there's any reason they'd be missing, steam literally just copies over the files I give it, so if the user doesn't delete anything it should be fine
<doomduck>
but I did once run into a problem of some DLL caching that was weird
<doomduck>
not in CL, with a 3rd party app
<doomduck>
I guess the thing I'm mostly worried about are windows versions, but like yousaid I can kinda test that in a VM
<doomduck>
the only problem is with graphics drivers, because it's a game using opengl, so I'll have to find some way to run the VM with proper 3d acceleration
<doomduck>
last time I tried with a software renderer it didn't work
<pjb>
Some VMs can also defer to the host GPU. Then you will also have fun with nVidia drivers, etc.
xlarsx has joined #commonlisp
<pjb>
IIRC, there are things like aws that propose configurations with GPUs too.
<verisimilitude>
There's Corman Common Lisp, doomduck.
<verisimilitude>
The easiest way to use Common Lisp in a different environment is to use a native version.
akoana has quit [Quit: leaving]
<doomduck>
hmm what do you mean native version?
<doomduck>
my plan is to just (sbcl:save-and-exit...) to poop out an .exe and distribute that :D
<verisimilitude>
I mean a Common Lisp implementation made for the environment.
<doomduck>
oh
<doomduck>
does that mean that SBCL has issues on windows tho? I heard that that was a "old times" problem
<verisimilitude>
I don't know.
<verisimilitude>
I'm just making it clear there are other, and likely better, options.