matt` has quit [Remote host closed the connection]
ahammer has quit [Client Quit]
ahammer has joined #commonlisp
igemnace has joined #commonlisp
ahammer has quit [Ping timeout: 246 seconds]
ahammer has joined #commonlisp
<mfiano>
Um, no?
<mfiano>
matrix transforms aren't "on vectors", and there's nothing inherently special about math that deserves a library, just a head on your shoulders. The code is rather simple in actuality.
Repsil has quit [Remote host closed the connection]
x88x88x has joined #commonlisp
<beach>
Good morning everyone!
<Alfr>
Good morning, beach!
ick has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
euandreh has quit [Ping timeout: 260 seconds]
Bike has quit [Quit: Lost terminal]
Bike has joined #commonlisp
euandreh has joined #commonlisp
semz_ has joined #commonlisp
semz has quit [Ping timeout: 260 seconds]
yauhsien has joined #commonlisp
frgo_ has joined #commonlisp
frgo has quit [Ping timeout: 256 seconds]
yauhsien has quit [Ping timeout: 272 seconds]
dre has joined #commonlisp
notzmv has joined #commonlisp
frgo has joined #commonlisp
frgo_ has quit [Ping timeout: 246 seconds]
frgo_ has joined #commonlisp
Bike has quit [Quit: Connection closed]
frgo has quit [Ping timeout: 246 seconds]
frgo has joined #commonlisp
frgo_ has quit [Ping timeout: 272 seconds]
frgo_ has joined #commonlisp
frgo has quit [Ping timeout: 272 seconds]
semz_ is now known as semz
<patrix>
Morning beach and everyone!
guest74 has joined #commonlisp
yewscion has quit [Ping timeout: 276 seconds]
<guest74>
aeth: You must mean something else. There are tons of matrix math libraries for CL, probably because it's so easy to write your own, but plenty to choose from if you don't want to write it yourself.
<guest74>
As for accelerated graphics, we have access to opengl, and plenty of people have written things to make that easier to use, including lots of different ways to handle shaders. Maybe you just mean game engines?
ick has quit [Quit: Konversation terminated!]
<mfiano>
aeth is an odd fellow. He has been trying to write a game engine the wrong way in CL for, 10 years or and off?
<beach>
I know nothing about game engines, but I am curious, what is wrong with the way aeth is doing it?
<mfiano>
He envisions being able to play a game at compile time. Focuses too much on allocating everything at compile time and not enough attention to the dynamism that makes CL a great target.
<mfiano>
It is no wonder he thinks a batch-compiled language is a better target for games if you know this context.
aartaka has joined #commonlisp
<aeth>
Guest74: there's a difference in polish between a library that is heavily used or not
<aeth>
mfiano: huh
<aeth>
mfiano: the compile time thing is a joke, and it works
aartaka has quit [Ping timeout: 272 seconds]
<aeth>
put this in a file and compile it (it won't run in the REPL, at least in SBCL)...
<mfiano>
Ignoring that, it always amazes me at amount of the misinformation surrounding game development and math you spread around.
aartaka has joined #commonlisp
<mfiano>
You should be explaining why CL is a great target for game development, because it truly is in every regard, instead of talking nonsense about matrix transforms "on vectors", and the library situation surrounding game math.
<mfiano>
I take offense to promoting languages that have a lot of friction for a thing as large as a game engine/game.
<guest74>
i've actually been considering writing a game engine recently.
<aeth>
huh
<aeth>
It actually *is* easier to do vector math in C++ because you can just use a mature, tested library instead of a hobby project or writing your own; however, that doesn't make C++ a more enjoyable language to write a game engine in. Overall, it'd probably take longer and be more frustrating and not as fun. Lots of waiting on compilation and the end result won't really be that unique from the 100 other
<aeth>
C++ engines.
<guest74>
mainly just to help polish up all my crap. Nothing 3d, just something to write things like visual novels.
<aeth>
The downside of Common Lisp, and any Lisp in general, has always been the lack of libraries compared to a mainstream language (at least, ever since it wasn't a major language anymore)
<aeth>
It's still faster to write things *from scratch* in
<mfiano>
I don't agree with any of that. It is incredibly easy to do vector math without even a library, assuming you understand the math. Besides, there are mature vector math libraries used to write games with in CL, some even released on Steam.
<aeth>
what
<guest74>
In general, I tend to find there's TOO many libraries in CL.
<aeth>
a library used by 5 people isn't going to compete with a "professional" matrix math library, that's no offense intended to library authors; I've written libraries
<mfiano>
I think you should stop spreading this nonsense while you're behind.
slowButPresent has quit [Quit: leaving]
<aeth>
and a transformation matrix is an expression of linear transformation from one vector space to another vector space? is that why you're mad? Because I said vector not vector space?
<guest74>
aeth: have you written anything in Lisp?
razetime has joined #commonlisp
<aeth>
I'm checking Wikipedia and I'm checking one of the several math textbooks I have on the subject and i'm confused as to why you're so offended with "on a vector"? Isn't that what a matrix is used for eventually? To essentially do M_1 * M_2 * M_3 * M_4 * v?
razetime has quit [Client Quit]
razetime has joined #commonlisp
retropikzel has left #commonlisp [#commonlisp]
Sankalp has quit [Ping timeout: 276 seconds]
Sankalp has joined #commonlisp
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
pjb has joined #commonlisp
Guest6690 has joined #commonlisp
gxt has quit [Remote host closed the connection]
<Guest6690>
whats the latest common lisp version to use?
gxt has joined #commonlisp
<Guest6690>
everything seems really old online
Guest6690 has quit [Quit: Client closed]
<beach>
Guest6690: The one from 1994.
<pjb>
:-)
<Shinmera>
aeth: Vector math won't be your bottleneck for trillions of years if you're writing games in CL. Stop spreading FUD.
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
igemnace has joined #commonlisp
<boigahs_>
All the cool kids use 3D projective geometric algebra anyways
* |3b|
wonders if any of the CL game math libs are actually even "used by 5 people" :/
<Shinmera>
I know 3d-matrices/vectors is used by at least 5.
<boigahs_>
The whole "its easier in other languages because more libraries" is weird to me because then you might as well just go a step further and say "use unreal engine"
<Shinmera>
Possibly more. Imagine!
<boigahs_>
If that is the logic, I mean
<boigahs_>
Why ever do anything yourself
<Shinmera>
Well in my case it's because I'm stupid
* |3b|
would say that ("just use unreal"), so somewhat agrees with the original argument :)
<Shinmera>
Yeah. If you want to actually make a game you either are going to stay so small you might as well use Lisp, or you're going to need a team in which case you kinda have to use an established engine as it'll be impossible to find anyone capable of working with whatever homebrew of lisp you got cooking.
<mfiano>
I might have come off as a bit harsh. Years of accumulated frustration with spreading misinformation I think.
<|3b|>
just that like more things it is useless to say something that concise (what you just said :)
<mfiano>
I apologize in any case.
<Shinmera>
mfiano: Nah, your reaction was fine.
<|3b|>
mfiano: yeah, the comment about "making a game for 10 years" seems a bit much considering context of your reasons for changing focus :)
<|3b|>
Shinmera: i'd also add the criteria of "making a game" vs "making an engine" and whether you think artistically in terms of code or not
<Shinmera>
I guess? If you're making an engine without the ultimate goal of making games then who cares, right? The point is to make the tools, so what language you pick is all up to your tastes.
karlosz has joined #commonlisp
<mfiano>
That is completely fair. Though, I never really had any good game ideas (nor do I even really play games), and was just making engines to practice architecture of complex software.
<|3b|>
right, usually that is a way of reminding people that they want to make a game and they have am AB problem :)
<mfiano>
I thought it'd be natural given my interest in graphics programming, but I wasted a lot of time when I should have focused on making things do what I want, than making a general purpose engine for learning purposes.
razetime has quit [Remote host closed the connection]
* Shinmera
gets ready to get out of bed and spend his day programming games... in Lisp!!
amk has quit [Remote host closed the connection]
amk has joined #commonlisp
pve has joined #commonlisp
bendersteed has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
ttree has quit [Ping timeout: 246 seconds]
shka has joined #commonlisp
<jackdaniel>
I'm feeling so meta today
_paul0 has joined #commonlisp
<edgar-rft>
I'm feeling ISO_Level3_Shift
paul0 has quit [Ping timeout: 250 seconds]
cage has joined #commonlisp
<rotateq>
As long as no one feels like a Windows Key.
<rotateq>
I can make that ontopic: I use mine to activate the APL layer and today is last day of April, so use the chance to have 100% discount on phantomics April compiler. :)
<rotateq>
He now started building in some lazy constructs with more CLOS, so I was able to help and explain a bit.
igemnace has quit [Remote host closed the connection]
igemnace has joined #commonlisp
dre has quit [Ping timeout: 240 seconds]
Dynom has joined #commonlisp
igemnace has quit [Remote host closed the connection]
igemnace has joined #commonlisp
dre has joined #commonlisp
waleee has joined #commonlisp
Guest6638 has joined #commonlisp
<Guest6638>
whats the best clisp compiler?
<Guest6638>
which has the most macros
<mfiano>
There is only 1 clisp compiler, and all the compilers have the same standard macros.
<Guest6638>
lispworks?
<mfiano>
What about it?
<Guest6638>
is that what everyone uses
<mfiano>
No. Everyone uses what they like, as per everything.
<mfiano>
You seem very confused about the difference between clisp and Common Lisp. I would suggest you ask such questions in #clschool
<edgar-rft>
CLISP is written in C, so gcc is probably the compiler to be used
<Guest6638>
I read Lisp is very good on hacker news
<mfiano>
THis channel is for people experienced with Common Lisp, although we tolerate some such questions.
tyson2 has quit [Remote host closed the connection]
rotateq has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
bendersteed has joined #commonlisp
yauhsien has joined #commonlisp
adlai has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 240 seconds]
yauhsien has joined #commonlisp
zeroc00l0 has joined #commonlisp
mason has joined #commonlisp
Bike has quit [Quit: Connection closed]
tyson2 has joined #commonlisp
bendersteed has quit [Ping timeout: 256 seconds]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
loke[m] has quit [Quit: You have been kicked for being idle]
Repsil has quit [Remote host closed the connection]
Repsil has joined #commonlisp
parjanya has joined #commonlisp
easye has quit [Remote host closed the connection]
Repsil has quit []
rotateq has joined #commonlisp
Sankalp- has joined #commonlisp
Sankalp has quit [Ping timeout: 276 seconds]
Sankalp- is now known as Sankalp
Bike has joined #commonlisp
<guest74>
mfiano: not sure you wasted any time, you learned a lot and it shows in your code. Meanwhile I spent most of my time just making things that work instead of making good frameworks. lol, and it shows in my code!
<mfiano>
Nice, and thanks.
<guest74>
np, you're one of the few people whose code I enjoy reading. Then again, you're one of the few people that publishes code to be read!
<mfiano>
Thanks, I really appreciate it.
yauhsien has quit [Remote host closed the connection]
<guest74>
maybe I'm weird, but I like finding new code to read to see different perspectives on coding. Especially if it comes from some unknown source, like cl-melthysynth.
<guest74>
Though I guess most of the interesting math in that comes from melthysynth.
zeroc00l0 has quit [Ping timeout: 252 seconds]
<mfiano>
That's not weird.
tyson2 has quit [Remote host closed the connection]
zeroc00l0 has joined #commonlisp
yauhsien has joined #commonlisp
zeroc00l0 has quit [Ping timeout: 252 seconds]
zeroc00l0 has joined #commonlisp
zeroc00l039 has joined #commonlisp
zeroc00l0 has quit [Ping timeout: 252 seconds]
<contrapunctus>
Uhm...I can't find the ~V format directive in the CLHS 😶️
<Nilby>
contrapunctus: there is no ~v directive, it's a special character indicating a value e.g. (format nil "~vs" 23 "foo")
<Nilby>
in that example it gave 23 for the mincol parameter
<Bike>
it is described there in the paragraph just above the examples.
jmdaemon has joined #commonlisp
<contrapunctus>
Oh, thanks, don't know why I missed that.
<Bike>
it's not obvious
kiki_lamb has joined #commonlisp
<kiki_lamb>
I have a pathname, it could be a directory "/A/B/" or a file "/A/B". In both cases, I want to get the "B" component. file-namestring works for the latter case, but returns an empty string in the former case. How should I do this?
<guest74>
check if it's nil and if so return the last element of the dir component?
<kiki_lamb>
Guest74: Okay, sure. I assume you mean check if it is equal to the empty string, since the empty string is not nil. Presumably, in order to get the last element of the dir component I need some function that converts a value of type pathname to a list, first - I can't just do something like (car (pathname "/A/B/")) because pathnames are not of type list. Do you know what function I need to turn a
<kiki_lamb>
pathname into a list?
<guest74>
pathname-directory
<kiki_lamb>
Ooh, cool, let me play with that. Thanks.
<guest74>
np
<contrapunctus>
kiki_lamb: probably something like `(or (pathname-name p) (first (last (pathname-directory p))))` (lemme know if there's a shorter version, my pathname-fu isn't very strong)
zeroc00l0 has joined #commonlisp
<rotateq>
Nilby: That is literally a FORMAT thing I asked myself some days ago.
<Nilby>
format: only 10 yrs to learn, and a lifetime to master
<rotateq>
Pathnames are another thing in CL I'm not yet so good aware of really.
<rotateq>
Nilby: :)
<guest74>
contrapunctus: I'm not sure that will work on all implementations. It's possible to have a nil name with a type. Though I only know that sbcl will return something like .emacs as a name instead of type.
triffid has quit [Remote host closed the connection]
<guest74>
hrm, sbcl will give an error if you try to get a namestring from a pathname with a type but no name and cites 19.1.2, which doesn't seem to address the issue at all.
<kiki_lamb>
I figured that a good way to learn how to deal with paths would be to re-implement some of my bespoke local utility scripts... 'cause now I need to work out how to recursively iterate over every file in a directory tree.
triffid has joined #commonlisp
dstein64- has joined #commonlisp
Sankalp has joined #commonlisp
<Nilby>
pjb: right, I just want the simpler logic, since DOS,VMS,& TOPS-20 compatibily isn't very useful
dstein64 has quit [Ping timeout: 260 seconds]
dstein64- is now known as dstein64
<guest74>
kiki_lamb: watch out for soft/hard links! Naive use of ** can get you into an infinite loop.
Inline__ has joined #commonlisp
<kiki_lamb>
Guest74: yeah, I've got that in the back of my mind. I'll start by just working on trees without links in 'em, and then maybe improve it to do something sensible with links.
Inline has quit [Ping timeout: 272 seconds]
thunderstruck has joined #commonlisp
<guest74>
i think I just threw in a :resolve-symlinks nil in there and never revisted the situation.
<guest74>
...now I'm wondering if that's implementation specific.
<guest74>
yup, it is.
Inline__ is now known as Inline
tyson2 has joined #commonlisp
<aeth>
First of all. I didn't even say games. I said graphics. When I took the comp sci graphics class in university, much to my disappointment, it was taught by a Pixar fan and focused almost entirely on non-real-time, cinematic CG techniques. But, hey, I could tell you how RenderMan works after taking the class. Probably can't anymore. Not like 2021 RenderMan has anything to do with the outdated-by-then
<aeth>
RenderMan the class talked about.
ttree has joined #commonlisp
<aeth>
And there's nothing stopping Common Lisp from outperforming C or C++ in this sort of code... but it's not easy, either. You'd probably have to hand-write a lot of asm (or, more realistically, port it to CL-friendly inline-asm)
<aeth>
heck, some older projects recompiled Fortran into CL, but the whole recompiler thing would have to be rewritten to produce optimal-for-SBCL code, I'm guessing
<aeth>
(since the performant implementation of the time probably was completely different)
<aeth>
But a good-enough-to-get-it-to-the-GPU linear algebra library isn't going to compete with an arbitrary linear algebra library with a lot of users. That was my point.
<aeth>
Please don't oversell the state of the CL ecosystem imo.
<aeth>
Although even all of that is probably done in CUDA or something these days.
<guest74>
well, if you're talking simply graphics and not games, then I have no idea what you're talking about. What is it that YOU find difficult in doing graphics in CL?
<pjb>
Nilby: you can avoid CL pathname, and just work on physical namestrings; write a simple library to split paths.
wildlander has joined #commonlisp
anticomputer_ has joined #commonlisp
anticomputer has quit [Ping timeout: 240 seconds]
<Nilby>
pjb: thanks, I already have a library that does it on both OS, I guess I'm just dreaming of an alternate future
<aeth>
Guest74: that's not particularly useful... would would be useful and constructive is thinking how this niche could be appealed to by Common Lisp
<aeth>
in which case, it's not really about what C++ does, it's what other languages that have seen some adoption have done, like Julia
<aeth>
or even R
<Nilby>
CL graphics are "worse" than C++ mostly because of lack of massive well funded attention e.g. by hardware makers, and mildly because of language backend impedance, eg. FFI type conversion, and there's a SPIRV backend to LLVM, but also better insofar as CL is better
<guest74>
I'm failing to understand. You're the one saying there's problems with using lisp for graphics and everybody else is saying the opposite. It would seem to be helpful to know what you think is problem since you're the one that sees this problem.
<mfiano>
I think we all are failing to understand.
<mfiano>
I have a problem interpretting his intent all the time.
<pjb>
Nowadays graphics = sending a program to a GPU, and this can be done as efficiently from C as from CL. Probably even more efficiently from CL, since we can more easily do meta-programming!
Oddity has joined #commonlisp
<Sankalp>
Based on my research McClim and clog seem to be good
<guest74>
my biggest problem with graphics is my understanding of the algorithm, which has nothing to do with what language I write it in.
<mfiano>
pjb: That is only half true. Graphics programming is about balancing the load between CPU and GPU.
<mfiano>
Guest74: what is "the algorithm"?
<guest74>
any algorithm :)
<mfiano>
Oh okay.
<guest74>
for example, not understanding the math enough for Hypotrochoid to place one exactly where I want at the size I want.
<guest74>
interesting. I'm not sure adding a third dimension will clear it up, but I'll take a look.
<mfiano>
roulettes are best implemented with a matrix stack
<mfiano>
I'm not sure how you're doing it
<mfiano>
Even for 2D
<rotateq>
Sankalp: The good thing is, McCLIM is a free implementation of CLIM2 which is a defined standard and comes with many good abstractions too for building highly interactive interfaces.
<guest74>
just storing parameters in a struct and naively calculating each new point.
pranavats has left #commonlisp [Error from remote client]
<mfiano>
With a matrix stack, you could just roll a circle around, choose a point on the circle, and draw wherever it touches.
<guest74>
I'll definitely have to look into that since I'd like to do them around arbitrary paths in the future.
<mfiano>
You might need some collision detection for arbitrary geometric paths to roll around though. I haven't thought about that.
<Sankalp>
There's another implementation of clim2 (https://github.com/franzinc/clim2/), but it was only tested with AllegroCL. On the other hand McClim can be used with various CL implementations
<guest74>
I just did a basic implementation to test the vector graphics stuff I was working on.
<mfiano>
I would just start by defining 2 circles and roll one inside the other. When that works, disable rendering, and choose a point on the inner circle, which will always be in the space of that circle.
pranavats has joined #commonlisp
<guest74>
matrices seems like it would be easy to arbitrarily add more circles within circles.
<rotateq>
Sankalp: Right, but another advantage of McCLIM is, with an xserver it comes with CLX and then you don't have to rely on a 3rd party dependency anymore.
<rotateq>
Yes it is. :) And I come now better along with it. You can check out the some demos.
<Sankalp>
Yes, I see your point, rotateq. On windows though, an Xserver must be installed manually to run since it doesn't come built in.
<guest74>
I just tend to implement simple graphic stuffs to test my drawing functions. Somehow visually seeing something helps me to understand what is wrong with the code.
<guest74>
nice, i'll probably go that way whenever I revisit it. what are you using for recording?
<mfiano>
ffmpeg
<mfiano>
i usually use recordmydesktop but it wouldnt work this time. probably need a reboot of the kernel
<guest74>
ah, for some reason I'm getting slow down using ffmpeg. I should probably look at making sure it's using hardware.
<mfiano>
Just use recordmydesktop for that. Get the window id with xwininfo
<guest74>
I'm busy right now trying to figure out what the hell steam is doing with it's stupid dialogs that don't seem to follow conventions.
cage has quit [Quit: rcirc on GNU Emacs 27.1]
yauhsien_ has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
<guest74>
ideally I want to get direct hardware encoding of hardware planes so I can easily use it on both x11 and console. Seems I need to change some stuff in my wm to use that program. Maybe I shouldn't complain about steam not being compliant when my wm isn't compliant either.
Sankalp has quit [Ping timeout: 272 seconds]
Sankalp has joined #commonlisp
yauhsien has quit [Ping timeout: 250 seconds]
karlosz has joined #commonlisp
Xach has joined #commonlisp
aartaka has quit [Ping timeout: 256 seconds]
igemnace has quit [Ping timeout: 246 seconds]
pve has quit [Quit: leaving]
morganw has joined #commonlisp
igemnace has joined #commonlisp
Catie has joined #commonlisp
notzmv has quit [Ping timeout: 248 seconds]
Bike has quit [Quit: Connection closed]
Catie has quit [Remote host closed the connection]
trocado has joined #commonlisp
notzmv has joined #commonlisp
shka has quit [Ping timeout: 272 seconds]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 256 seconds]
Xach has quit [Changing host]
Xach has joined #commonlisp
Catie has joined #commonlisp
raeda has quit [Ping timeout: 272 seconds]
raeda has joined #commonlisp
X-Scale` has joined #commonlisp
xaotuk has joined #commonlisp
Fade has quit [Ping timeout: 256 seconds]
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
Fade has joined #commonlisp
wildlander has quit [Quit: Saliendo]
X-Scale has quit [Ping timeout: 272 seconds]
orestarod has quit [Ping timeout: 248 seconds]
X-Scale` has joined #commonlisp
akoana has joined #commonlisp
X-Scale` is now known as X-Scale
X-Scale` has joined #commonlisp
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
raeda has quit [Read error: Connection reset by peer]
raeda has joined #commonlisp
raeda_ has joined #commonlisp
raeda has quit [Ping timeout: 246 seconds]
xaotuk has quit [Ping timeout: 276 seconds]
raeda has joined #commonlisp
jeosol has quit [Quit: Client closed]
raeda_ has quit [Read error: Connection reset by peer]
<mfiano>
Can a subclass have a different slot allocation policy than its parent? I am assuming yes.