alcor has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 252 seconds]
skin has quit [Remote host closed the connection]
clarkf has joined #commonlisp
Akbar-Birbal has joined #commonlisp
wobbol has quit [Ping timeout: 265 seconds]
rkazak has joined #commonlisp
wobbol has joined #commonlisp
triffid has joined #commonlisp
edgar-rft` has joined #commonlisp
shawnw has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
edgar-rft_ has quit [Ping timeout: 260 seconds]
amb007 has quit [Ping timeout: 252 seconds]
lucasta has quit [Remote host closed the connection]
Pixel_Outlaw has joined #commonlisp
random-nick has quit [Ping timeout: 264 seconds]
notzmv has quit [Read error: Connection reset by peer]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #commonlisp
rtypo has quit [Ping timeout: 255 seconds]
rkazak has quit [Ping timeout: 246 seconds]
gooba has quit [Read error: Connection reset by peer]
mishoo has quit [Ping timeout: 260 seconds]
gooba has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
rkazak has joined #commonlisp
rkazak has quit [Ping timeout: 245 seconds]
clarkf has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)]
netdoll has quit [Quit: Konversation terminated!]
NotThatRPG has quit [Read error: Connection reset by peer]
NotThatRPG has joined #commonlisp
rkazak has joined #commonlisp
decweb has quit [Ping timeout: 276 seconds]
longlongdouble has joined #commonlisp
longlongdouble has quit [Ping timeout: 260 seconds]
rkazak has quit [Ping timeout: 260 seconds]
longlongdouble has joined #commonlisp
NotThatRPG has quit [Ping timeout: 260 seconds]
NotThatRPG has joined #commonlisp
decweb has joined #commonlisp
rkazak has joined #commonlisp
rkazak has quit [Ping timeout: 276 seconds]
decweb has quit [Ping timeout: 248 seconds]
rkazak has joined #commonlisp
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
wobbol has quit [Ping timeout: 272 seconds]
rkazak has joined #commonlisp
Pixel_Outlaw has quit [Quit: Leaving]
rkazak has quit [Ping timeout: 252 seconds]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #commonlisp
mishoo has joined #commonlisp
rkazak has joined #commonlisp
rkazak has quit [Ping timeout: 276 seconds]
_whitelogger has joined #commonlisp
AetherWind has joined #commonlisp
rkazak has joined #commonlisp
awlygj has quit [Ping timeout: 276 seconds]
amb007 has joined #commonlisp
<dmho>
Hey I couldn't find a plug-n-play way to 'visually' align string literals to make them look aesthetically pleasing in an Emacs buffer, and since I don't know emacs and elisp all that well I thought I'd see if chatgpt could lend a big helping hand in making this idea a reality.
<dmho>
The result is string-literal-visual-align-mode! It adds an overlay to your emacs buffer for every multi-line string literal, that effectively indents/aligns the start of the line with the opening quote without inserting characters into your file. https://pastebin.com/raw/cGaNdczE
<dmho>
I just started using it but I haven't seen any weirdness so far in how it functions.
<dmho>
just `(require 'string-literal-visual-align-mode)` in your emacs init and add `(add-hook 'lisp-mode-hook 'string-literal-visual-align-mode)`to enable it for lisp files and you're good to go!
rkazak has quit [Ping timeout: 260 seconds]
treflip has joined #commonlisp
chomwitt has joined #commonlisp
rkazak has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
elderK has joined #commonlisp
<elderK>
Hey guys! I was wondering when exactly we need to use eval-when. For instance, if we defin a macro that we want to use in another macro, does the macro we want to use in a macro need to be defined with in an (eval-when (:compile-toplevel :execute :load-toplevel) ...) form?
<elderK>
The same question applies to type abbreviations defined using deftype: If I define a type abbreivation that I want to use in a macro, does that abbreviation also need to be in a suitable eval-when form?
<elderK>
What steps do I need to do, to ensure that if I have a macro, that the macro can be used "in all times." Is that even wise? CLtL2 has an example where a macro is defined but isn't valid when used, in a case where I thought it would be.
<elderK>
Thanks in advance for any answers :)
pve has joined #commonlisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life_ is now known as Lord_of_Life
rkazak has joined #commonlisp
<beach>
elderK: For macros, you don't need EVAL-WHEN.
<beach>
elderK: The standard says that the macro is defined in the "evaluation environment" by the compiler at compile time, so it is available for further processing.
<beach>
elderK: You have to consult the standard for each case.
<beach>
elderK: See the last paragraph of Description.
<beach>
elderK: Careful with CLtL2. It is not the standard, and there are subtle differences.
<beach>
dmho: Nice! I use #.(format nil "...") myself so that I can use ~@<newline> and then indent the following line without the string actually containing the indentation.
<beach>
elderK: However, if a macro function uses an auxiliary function for its expansion, then, if you use the macro at compile time, that function must also be defined at compile time. And DEFUN does not automatically define functions in the evaluation environment, so you need EVAL-WHEN then.
rkazak has quit [Ping timeout: 246 seconds]
saturn2 has quit [Ping timeout: 272 seconds]
wacki has joined #commonlisp
saturn2 has joined #commonlisp
pkal has quit [Read error: Connection reset by peer]
pkal has joined #commonlisp
<beach>
elderK: Does that make sense?
<dmho>
beach: Ah, format has something for everything :p
<ixelp>
Constrictor/Code/assoc.lisp at master · s-expressionists/Constrictor · GitHub
dinomug has quit [Remote host closed the connection]
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
rkazak has joined #commonlisp
McParen has joined #commonlisp
shawnw has joined #commonlisp
mishoo has quit [Ping timeout: 252 seconds]
<elderK>
Thanks beach :)
<elderK>
That's a neat trick for docstrings, too. I will start using it myself.
<elderK>
Sorry about the delayed response: My wife and I were watching Star Trek :)
elderK has quit [Quit: "changing computers"]
<dmho>
beach: That's pretty neat, and has the added advantage of being aligned when not viewed in an emacs buffer.
elderK has joined #commonlisp
<beach>
dmho: Exactly.
<beach>
elderK: Heh! I see.
<dmho>
A pitty no control code exists for "newline and delete up to char" then one could have the best of both approaches.
<beach>
Notice also that I use (SETF DOCUMENTATION) to avoid the noise inside the entity being documented.
<elderK>
Any chance we have a "distribution" of the CLHS for eReader devices such as a Kindle? Many years ago, I purchased CLtL2 for Kindle from HP Technologies. It was very expensive and it has serious issues as they did a bad job translating it. But, it was useful since I often read on my Kindle device.
<elderK>
I wonder if there is a TeX renderer for ePub. It'd be neat to peruse CLHS in bed :P :D
rkazak has quit [Ping timeout: 252 seconds]
<elderK>
I have the CLHS available locally here, as well as a rendering of the CL ANSI Draft. I just wish they were easier to read on a more mobile device.
<beach>
elderK: The Common Lisp HyperSpec is not being worked on, and you are not allowed to modify it. You might have better luck with NovaSpec by gilberth.
<elderK>
Ah, thanks! I'll look at that now :)
<beach>
Or you could compile the dpANS TeX sources from scratch, perhaps with modified page parameters. But you wouldn't have hyperlinks then.
<elderK>
beach: How complete is the Nova Spec? I've seen several different renderings of the spec, all of which seem to be in a different state of completeness. Is the Nova Spec effectively complete?
<beach>
I think it is. It has a few formatting issues, but it is the complete dpANS as HTML.
<elderK>
That's great :) The apropos feature is really nice, too.
<elderK>
gilberth: Nice work! :D
<elderK>
As for the CLtL2 version for Kindle: Avoid it unless you have no better choice: They don't have the entire document "linked" properly. So, there's no index: Only a single "index" for the ToC which itself, does have hyperlinks. The result is that you have to go to the TOC, go to some place you want, read for awhile, then jump back to the TOC and stuff.
<elderK>
I've read that purchasing the official ANSI spec for CL is pointless too, as the quality is terrible: Just a scan rendered as a PDF.
<beach>
Yes, apparently ANSI lost the sources. But you can create PDFs (by chapter) from the dpANS.
donleo has joined #commonlisp
<elderK>
What do you use, beach? :) Do you use the nova spec or the dpANS PDFs?
<elderK>
Oh, I love this nova spec: It even handles zooming really well. :D
<beach>
I use the NovaSpec these days.
<elderK>
beach: Do you use SBCL?
<beach>
I do, yes.
<elderK>
Just wondering as I'm curious how to specify that I want "my code" to be compiled without any kind of optimization, the hope being that the debugger will give me better information and maybe let me step through forms.
<beach>
gilberth is the best hacker I have ever run into, and he is a perfectionist, so you can count on the stuff that he releases as being quite good.
<elderK>
I'd be afraid to set the qualities like, in a startup script, since that would also affect all the code I load, right? Say, dependencies.
gnoo has quit [Ping timeout: 265 seconds]
<elderK>
beach: Sounds like I have another person to learn from :D :)
<elderK>
beach: Is there a form of the nova spec that we can run locally?
<beach>
elderK: I set DEBUG to 3, SPEED to 0, COMPILATION-SPEED to 0 in my .sbclrc.
<beach>
elderK: I don't think so.
<elderK>
I wonder if we could mirror it.
<beach>
I fear not. But I haven't asked.
<elderK>
NP :)
gnoo has joined #commonlisp
<elderK>
Thanks beach! Hopefully that'll make the debugger more useful. I find that when I have a break, for instance, I have no restarts for stepping.
<elderK>
Even if I use step, I get no useful restarts.
<elderK>
I am using slimv, however: I had more luck with SLIME in Emacs.
<beach>
elderK: I know what you mean. Debugging with free Common Lisp implementations is not great as my paper describes.
<McParen>
i'm looking for a name for a function that does something similar to emacs' "fill-paragraph", but I dont want to name it to "fill", because that sounds quite random, is there a better word for what that function does? (word-wrap and mangle multiple spaces to one)
<beach>
"Previous work" rather.
<elderK>
beach: Will do :) I remember reading that paper.
<elderK>
I think I've managed to read almost all of the SICL papers now.
<elderK>
:D
<beach>
OK, so then you know that the situation is quite dire.
<elderK>
Aye: It would be much worse if not for CL's interactive development loop.
<beach>
McParen: I don't have a suggestion, but I am curious about the use for this function.
<McParen>
beach: the use is formatting long lines to pargraphs with shorter lines. when the spaces between words are kept as given, it is just "wrapping", but when multple spaces are collapsed to one, it is caled "filling", but i'm looking for a better, more intuitive word for that.
<beach>
McParen: I mean, is it an Emacs function, or are you working on a Common Lisp editor?
<McParen>
beach: not on an editor, but on an irc client, which also has to wrap lines. i first had a function that collapsed multiple spaces because that was easier to write, but then i noticed that this basically reformats user input, which is kind of wrong. so i rewrote that but dont want to throw the original function away...
<McParen>
so now i'm looking for a better name for it.
<beach>
McParen: I see. Are you aware of the existing IRC clients that use CLIM?
<McParen>
i'm probably going to keep "fill-string", but only if there is no other common word for it.
pin56 has quit [Remote host closed the connection]
<McParen>
elderK: yes, these are all valid suggestions, i wondered if there is maybe some common term that is also used in the wild.
<elderK>
beach: Potentially dumb question here but is there any reason why a macro can't be recursive? Like, it expands to a simpler call of itself?
pin56 has joined #commonlisp
pin56 has quit [Remote host closed the connection]
<McParen>
i think "reflow" sounds the best so far.
<elderK>
beach: I assume tht such macros are valid and sane.
pin56 has joined #commonlisp
zxcvz has joined #commonlisp
<beach>
elderK: A macro can be recursive. There are two situations...
<beach>
elderK: The macro function can use the macro for its expansion, or the macro function can generate code containing the macro.
<beach>
elderK: But the recursion must terminate as usual.
<elderK>
Wow, that's more powerful than I thought. So, the following would be valid:
<elderK>
(defmacro zug () `(zug)) and (defmacro zug () (zug))
<elderK>
Assuming zug is something read and does something useful.
<elderK>
*something real, that is.
<pin56>
commonlisp language group
rkazak has joined #commonlisp
zxcvz has quit [Quit: zxcvz]
jrx has joined #commonlisp
shka has joined #commonlisp
alcor has joined #commonlisp
pin56 has quit [Remote host closed the connection]
pin56 has joined #commonlisp
pin56 has quit [Remote host closed the connection]
pin56 has joined #commonlisp
<elderK>
beach: The part that I found interesting is "3.2.3.1.1 Processing of Defining Macros"
<elderK>
Regarding the example with defmacro foo
<elderK>
I would've thought that the macro would be available to all future forms that the compiler compiled. I would've also assumed that the macro would be available when say, you redefine things at the REPL. I guess the reason it seems to be that way for me, is that SBCL is always compiling, right?
rkazak has quit [Ping timeout: 248 seconds]
<McParen>
emacs does not seem to have an explicit function to just word-wrap text without also "deleting any excess spaces". both of these actions are together named "filling". but the emacs display engine does word-wrap text preserving multiple spaces when for example the emacs window is resized. it just doesnt seem to have a function to explicitely do this to a string argument.
<beach>
elderK: If the defining macro is DEFMACRO, then the macro is available to the compiler from the time it is defined.
<beach>
elderK: But not if it is DEFUN, DEFVAR, DEFPARAMETER.
chomwitt has quit [Ping timeout: 276 seconds]
<beach>
I mean, if the defining macro is DEFUN, DEFVAR, or DEFPARAMETER, then the function/variable is not available at compile time.
longlongdouble has quit [Ping timeout: 248 seconds]
<elderK>
beach: When we build a project using ASDF, are all the files built together in a single compilation unit?
<elderK>
I'd post text here for discussion but I think it would be too much :(
<beach>
elderK: Each file is usually compiled and then loaded.
<beach>
elderK: So if you define a function in one file you can use it at compile time in a subsequent file.
<beach>
But you can't use it at compile time in the same file as it is defined.
<elderK>
Unless you use eval-when, right?
<beach>
Right.
GalaxyNova has quit [Ping timeout: 272 seconds]
<elderK>
I think I need to learn more about the different environments (startup, compilation, evalution and runtime.)
<elderK>
This very much confuses me:
<elderK>
"Figure 3–8 lists macros that make definitions available both in the compilation and run-time environments. It is not specified whether definitions made available in the compilation environment are available in the evaluation environment, nor is it specified whether they are available in subsequent compilation units or subsequent invocations of the compiler. As with eval-when, these
<elderK>
compile-time side effects happen only when the defining macros appear at top level."
pin56 has quit [Remote host closed the connection]
<elderK>
The way I figure this, is that if you compile file A and file B, but don't load A after it is compiled, then during compilation of B, the macros you defined in A may not be visible. May or may not.
<elderK>
But if you compile A, load A, the things will be visible when you compile B.
<beach>
Correct.
<elderK>
Thanks beach :)
<elderK>
The standard doesn't say that A's changes are not visible to B, just that we can't rely on it, unless A is loaded after it is compiled and before B, right?
longlongdouble has joined #commonlisp
<beach>
Most Common Lisp implementations don't have an evaluation environment that is distinct from the start-up environment.
<beach>
So the standard does not require that, because that would mean a total rewrite of most Common Lisp systems.
<elderK>
If you call compile-file from the REPL, does that mean the startup environment is the same as the runtime environment? And if so, doesn't that mean the compilation environment is the same, too?
<beach>
The startup environment is the same as the run-time environment.
<beach>
And in (almost) all Common Lisp implementations, the evaluation environment is also the same.
<elderK>
I guess these distinctions are made so that you could have a batch compiler for CL that isn't interactive at all?
<beach>
The reason for that is simple... Most Common Lisp implementation do not have explicit representations of environments.
<elderK>
And have a simpler interpreter for debugging and interactive development?
<beach>
I see the distinction between the startup environment and the evaluation environment as something that is desirable, but that they didn't require when writing the standard, because then every existing Common Lisp implementation would have to be rewritten.
<elderK>
Aye: I wish CL had proper first-class enviroments as described in your paper. It seems to me that it would make the package system, and even the idea of a module system, way more awesome.
<beach>
But I fully intend them to be distinct in SICL.
pin56 has joined #commonlisp
<elderK>
evaluation environment is where stuff that executes as the compiler compiles, occurs, right? So, if the startup and evaluation environments are distinct, that means you could set up new readtables, do a bunch of crazy modifications and once compilation was done, those changes would not influence any further compilation or the system at all.
<beach>
I would like for the file compiler to have no lasting effects on the startup environment.
<elderK>
Aye, that seems ideal to me, too.
<elderK>
Otherwise how can you be assured that your builds are truly reproducible.
<beach>
Yes, your analysis is correct.
<beach>
Well, there is still the issue that the compiler can use the contents of the startup environment, so for reproducible builds, you need to make sure the startup environment is the same.
AetherWind has quit [Quit: leaving]
pin56 has quit [Remote host closed the connection]
chiselfuse has quit [Ping timeout: 260 seconds]
<elderK>
I wish satisfies accepted a lambda :)
<beach>
elderK: Let me know when you are ready to help create a Common Lisp implementation that solves the environment issues and that allows you to use a real debugger to debug your code. :)
<elderK>
beach: I'm working on getting there :)
<beach>
Excellent!
<beach>
Any ETA? :)
<elderK>
The other day, I did something I thought would be too hard for me and it was really fun. I took a look at the "trivia" pattern matching library and decided I wanted something similar for my own use. And, I managed to do it :)
<beach>
Congratulations!
dino_tutter has joined #commonlisp
<elderK>
I've been working through the book "Essentials of Compilation" by Jeremy Siek: Some AST transformations are very difficult if you do not have pattern matching so, that's why I decided to do the little matcher. I'm not sure how "good" it is yet but I am working to learn more and improve more.
<elderK>
Thank you :)
<elderK>
I still have no real sense of how "expensive" things are: So, for my pattern matcher expansions, for instance, I don't know if having a lot of nested (when ...) is better than a lot of (let (...) ...) or not. Or, if I have an extra (progn ...) here or there is going to be a potential performance thing. In most cases, I figure not as the compiler proper will cull them.
<elderK>
Another thing I am still having trouble with - and I'm not sure why - is how to organize my work. Lisp is much more free-form than I am used to with where you put stuff, or the conventions for where you put stuff. So, I am finding it hard to get a good footing on well, how I like things to be laid out.
longlongdouble has quit [Read error: Connection reset by peer]
<elderK>
beach: No ETA for now. If I could commit to doing Lisp every day instead of work, I would say "now."
<beach>
Fair enough.
rkazak has joined #commonlisp
<beach>
You can basically ignore all issues about PROGN, LET, WHEN, etc.
<beach>
Go for the code that is the nicest to read.
<elderK>
I wish I could as I am finding it increasingly difficult to work on something I no longer feel passionate about: The actual technical stuff of what we do, the problem, is interesting but I find the way we are actually solving things to be not so much. Processes have been changing and the result is that, well, the work isn't as satisfying or rewarding as it once was. But, for now, I hesitate to
<elderK>
leave because you know, the "recession." I'm also concerned that if I did leave, I wouldn't be able to find another job, either due to bad job market or due to the fact that I have had wrist issues.
<elderK>
beach: Excellent :) I like that convention.
<beach>
elderK: I have some advice about the workplace stuff, that I applied myself when I worked in industry...
<elderK>
I'm all ears :) Advice would be super useful.
<beach>
elderK: Basically, the literature on software engineering recognizes that there can be a factor 20 difference in productivity between two developers with the same training and the same experience.
<beach>
This means that employers can't tell the difference between someone working 40 hours per week and one that works 2 hours per week (I am exaggerating a bit).
<beach>
Furthermore, employers usually don't allow employees time to learn new stuff and experiment with alternative solutions to problems.
<beach>
This a big mistake on the part of the managers, because then they are not doing the job they are paid to do.
<beach>
So I recommend taking (at least) half a day per week to do personal stuff, paid by the employer, of course.
<beach>
In your case, it could be to try to use Common Lisp to solve those interesting problems you have.
rkazak has quit [Ping timeout: 245 seconds]
<beach>
My case was very similar at the time. We were using the wrong languages, and I showed how using Lisp (not Common Lisp at the time) made things much easier.
<beach>
And in many situations, the employer doesn't care much what techniques you use to solve their problems, and in those situations, you could use Common Lisp in some cases.
<beach>
So if you assume you have average productivity, taking 4 hours per week for personal stuff won't be noticed. Then those 4 hours will allow you to learn things that make you even more productive, so you could use that to take even more time for your own activities.
<beach>
It is of course best if your activities are related to your job, but even if they aren't, you are going to learn stuff that will make you more productive for the job-related activities.
<elderK>
That's good to know: I've generally been the kind of person that works, in my view, 110% at whatever task I'm given. Mostly that's been because of lessons my parents taught me and also because, you know, I feel guilty if I am not "on task."
<elderK>
Of course, that has probably led to the wrist issues. I can't talk more about that stuff here though, just in case someone from work *is* here.
<beach>
Yes, I see. But it is best to avoid that kind of work. It creates burnout and such.
<elderK>
Aye: That's the issue I've been afraid of.
<beach>
The 4 hours per week can be a lifesaver. Something to look forward to each week.
<beach>
I used Friday afternoons myself.
<elderK>
I find that if I make progress on personal projects, I tend to be a lot happier. If there are weeks where I make no progress, or cannot create "safe time" for the projects, I just get grumpy. I'm not sure if that's normal for programmers or not.
<beach>
Sounds normal to me.
<elderK>
At work, I find that I feel increasingly resentful. Not necessarily of the company itself or even if resentful is the right word. I want to like, do a good job, you know? I want to make the system better, and see it improve. Instead, I see many processes that just reduce efficiency and restrict my ability to make things better. For a time, I thought it was just me and I was being a bad team
<elderK>
player but, a colleague of mine feels the same way.
<elderK>
I was also worried that, you know, maybe I was just being a jerk and expecting too much because I don't want to spend 8 hours a day doing work I know isn't my best or isn't allowing me to improve in a way I feel is important.
<elderK>
If that's normal, I'll be glad to hear it.
<elderK>
I don't want to be a bad employee or a bad team member, so, I'm trying to resolve it internally as best I can.
<beach>
I hear your story over and over again, so it must be quite common.
* beach
takes a lunch break.
<elderK>
Thanks for your advice, beach. I really appreciate it :)
<elderK>
I hope you have a great lunch :)
rkazak has joined #commonlisp
chiselfuse has joined #commonlisp
tucktuck has joined #commonlisp
longlongdouble has joined #commonlisp
chomwitt has joined #commonlisp
rkazak has quit [Ping timeout: 265 seconds]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
wacki has joined #commonlisp
elderK has quit [Quit: sleep]
random-nick has joined #commonlisp
rkazak has joined #commonlisp
akoana has joined #commonlisp
pin56 has joined #commonlisp
pin56 has quit [Remote host closed the connection]
rtypo has joined #commonlisp
pin56 has joined #commonlisp
pin56 has quit [Remote host closed the connection]
pin56 has joined #commonlisp
jrx has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)]
rkazak has quit [Ping timeout: 276 seconds]
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
decweb has joined #commonlisp
McParen has left #commonlisp [#commonlisp]
mgl_ has joined #commonlisp
decweb has quit [Ping timeout: 260 seconds]
rkazak has joined #commonlisp
kevingal has quit [Ping timeout: 244 seconds]
pin56 has quit [Remote host closed the connection]
brokkoli_origin has quit [Ping timeout: 260 seconds]
rkazak has quit [Ping timeout: 264 seconds]
brokkoli_origin has joined #commonlisp
zxcvz has joined #commonlisp
bonmlp has joined #commonlisp
brokkoli_origin has quit [Remote host closed the connection]
longlongdouble has quit [Ping timeout: 252 seconds]
zxcvz has quit [Client Quit]
brokkoli_origin has joined #commonlisp
longlongdouble has joined #commonlisp
rainthree has joined #commonlisp
longlongdouble has quit [Read error: Connection reset by peer]
longlongdouble has joined #commonlisp
amb007 has quit [Ping timeout: 246 seconds]
clarkf has joined #commonlisp
mgl_ has quit [Ping timeout: 252 seconds]
rkazak has joined #commonlisp
amb007 has joined #commonlisp
easye has joined #commonlisp
longlongdouble has quit [Remote host closed the connection]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
bonmlp has quit [Remote host closed the connection]
longlongdouble has joined #commonlisp
rkazak has quit [Ping timeout: 252 seconds]
longlongdouble has quit [Remote host closed the connection]
sadclown has joined #commonlisp
mishoo has joined #commonlisp
clarkf has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)]
wacki has quit [Read error: Connection reset by peer]
rkazak has joined #commonlisp
lucasta has joined #commonlisp
wacki has joined #commonlisp
pin56 has joined #commonlisp
rkazak has quit [Ping timeout: 272 seconds]
lucasta has quit [Remote host closed the connection]
longlongdouble has quit [Remote host closed the connection]
longlongdouble has joined #commonlisp
longlongdouble has quit [Remote host closed the connection]
rkazak has joined #commonlisp
longlongdouble has joined #commonlisp
longlongdouble has quit [Remote host closed the connection]
rkazak has quit [Ping timeout: 265 seconds]
lucasta has joined #commonlisp
longlongdouble has joined #commonlisp
longlongdouble has quit [Remote host closed the connection]
JuanDaugherty has joined #commonlisp
longlongdouble has joined #commonlisp
rkazak has joined #commonlisp
rkazak has quit [Ping timeout: 272 seconds]
JuanDaugherty has quit [Quit: JuanDaugherty]
longlongdouble has quit [Ping timeout: 272 seconds]
chiselfuse has quit [Remote host closed the connection]
pin56 has quit [Ping timeout: 248 seconds]
chiselfuse has joined #commonlisp
rkazak has joined #commonlisp
Akbar-Birbal has left #commonlisp [#commonlisp]
decweb has joined #commonlisp
Akbar-Birbal has joined #commonlisp
awlygj has quit [Quit: leaving]
rkazak has quit [Ping timeout: 248 seconds]
longlongdouble has joined #commonlisp
treflip has quit [Ping timeout: 264 seconds]
chrcav has quit [Ping timeout: 245 seconds]
eddof13 has joined #commonlisp
chrcav has joined #commonlisp
longlongdouble has quit [Ping timeout: 260 seconds]
matt` has joined #commonlisp
rkazak has joined #commonlisp
rcoper has joined #commonlisp
rkazak has quit [Ping timeout: 244 seconds]
McParen has joined #commonlisp
rkazak has joined #commonlisp
ftzm has joined #commonlisp
rkazak has quit [Ping timeout: 244 seconds]
Akbar-Birbal has left #commonlisp [#commonlisp]
lucasta has quit [Quit: Leaving]
matt` has quit [Ping timeout: 260 seconds]
longlongdouble has joined #commonlisp
<McParen>
anyone around?
<aeth>
probably
<McParen>
i have a bug i dont know how to succintly describe. but it leads to a unbound-slot error. i am trying to implement an user extended sequence (in sbcl).
<McParen>
i have a class complex-string, that contains an array of complex-chars.
<McParen>
when i then call a sequence function on it, for example merge, it signals that unbound-slot error and i have no idea how that might be caused
<McParen>
or even more basic, (make-sequence 'complex-string 3) leads to the same error.
<McParen>
the slot has an initform, so every object should have that slot bound upon object initialization.
longlongdouble has quit [Read error: Connection reset by peer]
<bike>
what are the direct superclasses of your class?
<bike>
like, you have (defclass whatever (...)), what's in the ellipsis
<bike>
if it's just sequence, you need to throw in standard-object as well
eddof13 has quit [Quit: eddof13]
<McParen>
the class basically looks like this: (defclass complex-string (standard-object sequence) ((complex-char-array :initform (make-array 0)))
<McParen>
why would it signal unbound-slot when trying to make an instance of that?
longlongdouble has joined #commonlisp
<McParen>
bike: could you take a look if I make a paste of the code somewhere?
rkazak has joined #commonlisp
Posterdati has quit [Remote host closed the connection]
rendar has quit [Quit: Leaving]
Posterdati has joined #commonlisp
rendar has joined #commonlisp
rendar has quit [Changing host]
rendar has joined #commonlisp
rcoper has quit [Remote host closed the connection]
<McParen>
sorry, this was for (make-sequence 'complex-string 3)
<McParen>
char is of course wrong.
<bike>
when you do make-sequence on your custom class, sbcl ends up doing (make-sequence-like (class-prototype your-class) ...)
<bike>
so it's trying to make-sequence-like an uninitialized complex-string
<bike>
it hits line 90 where it tries to read from that uninitialized complex-string's complex-char-array and goes kaput.
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
chomwitt has quit [Ping timeout: 248 seconds]
longlongdouble has quit [Remote host closed the connection]
rkazak has quit [Ping timeout: 252 seconds]
<McParen>
how could an initialized string be pased to make-sequence-like?
wacki has joined #commonlisp
<McParen>
do you see there an error i am making somewhere?
chomwitt has joined #commonlisp
<bike>
an UNinitialized string is passed to make-sequence-like because that is what make-sequence does.
<McParen>
i understand.
<bike>
make-sequence-like should not copy anything out of the sequence it's passed.
<bike>
the sequence it's passed is only there to end up at the right method. if you want to copy the contents you can specify :initial-contents. without an initial element or contents the new sequence doesn't need to be initialized.
<McParen>
ok, i think i have understood the problem now, thank you.
lagash has joined #commonlisp
lagash has quit [Remote host closed the connection]
lagash has joined #commonlisp
McParen has left #commonlisp [#commonlisp]
rkazak has joined #commonlisp
rkazak has quit [Ping timeout: 248 seconds]
SummerEmacs has quit [Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in]