jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
Oladon has joined #commonlisp
perrierjouet has joined #commonlisp
morganw has quit [Remote host closed the connection]
bilegeek has joined #commonlisp
zyni-moe has joined #commonlisp
zyni-moe has quit [Client Quit]
asarch has joined #commonlisp
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
thuna` has quit [Read error: Connection reset by peer]
pjb has joined #commonlisp
mathrick has quit [Ping timeout: 256 seconds]
mathrick has joined #commonlisp
ym has joined #commonlisp
lisper29 has quit [Quit: Leaving]
azimut has joined #commonlisp
ec has joined #commonlisp
ec_ has quit [Ping timeout: 255 seconds]
azimut has quit [Ping timeout: 255 seconds]
azimut has joined #commonlisp
dre has joined #commonlisp
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
<shunter> Just occurred to me that I can flet a setf
<shunter> eg (flet (( (setf foo) (new-value ...) ... )) (setf (foo ...) ...))
<shunter> I don't think I've ever desired that in practice, though
<Bike> it's occasionally useful to make it easier to access some local place
<Bike> i've done (flet ((foo (key) (gethash key table)) ((setf foo) (val key) (setf (gethash key table) val))) ...) a time or two
asarch has quit [Quit: Leaving]
snits has joined #commonlisp
<jeosol> Bike: that code snippet is nice, I see how that can be useful.
Oladon has quit [Quit: Leaving.]
abrantesasf has joined #commonlisp
<shunter> In a bit of a pinch designing this function: Dream world, it takes a keysym-handling function and returns a wl_seat-handling function to handle keyboard events with Wayland.
<shunter> Problem is, using cl-xkbcommon means manual memory management, so the user needs to eventually cleanup all resources this function creates in the process
<shunter> I could do this in a pinch by returning (values cleanup-function callback-function) in the end, but is there a better way to make it easy for the user to do the right thing and hard to do the wrong thing?
<shunter> My thought process behind this approach is it forces the user to consider multiple values to get the valuable function, so discarding the cleanup function would be more deliberate
<shunter> Soundboarding this idea out here though since they all say the first intuitive idea is often the worst one
akoana has joined #commonlisp
saurcron has quit [Quit: Connection closed for inactivity]
ldb has joined #commonlisp
abrantesasf has quit [Remote host closed the connection]
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
waleee has quit [Ping timeout: 256 seconds]
genpaku has quit [Remote host closed the connection]
dirtcastle has quit [Remote host closed the connection]
deadmarshal has quit [Remote host closed the connection]
genpaku has joined #commonlisp
bilegeek has quit [Quit: Leaving]
ldb has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
deadmarshal has joined #commonlisp
dirtcastle has joined #commonlisp
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
ttree has joined #commonlisp
ttree has quit [Read error: Connection reset by peer]
rainthree has joined #commonlisp
rainthree3 has joined #commonlisp
rainthree has quit [Ping timeout: 268 seconds]
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life has joined #commonlisp
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
jello_pudding has quit [Ping timeout: 256 seconds]
jello_pudding has joined #commonlisp
<shunter> I'm really, really not satisfied with posix-shm's api...
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
igemnace has joined #commonlisp
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
causal has quit [Quit: WeeChat 3.7.1]
shka has joined #commonlisp
random-jellyfish has joined #commonlisp
lisp123 has joined #commonlisp
dipper has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
dipper has joined #commonlisp
Cymew has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 260 seconds]
ym has quit [Ping timeout: 260 seconds]
pve has joined #commonlisp
random-jellyfish has quit [Quit: Client closed]
Brucio-61 has joined #commonlisp
lisp123 has quit [Read error: Connection reset by peer]
Posterdati has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
enzuru has quit [Quit: ZNC 1.8.2 - https://znc.in]
enzuru has joined #commonlisp
lisp123 has joined #commonlisp
seletz has joined #commonlisp
random-nick has joined #commonlisp
ym has joined #commonlisp
akoana has quit [Quit: leaving]
azimut has quit [Remote host closed the connection]
lisp123 has quit [Ping timeout: 240 seconds]
azimut has joined #commonlisp
vxe420 has joined #commonlisp
<vxe420> [noob question] any cl-readline users here? im not clear how once the readline prompt is executed how user input is obtained and processed further? accessing the setf'd value doesnt seem possible once the prompt is launched: https://github.com/vindarel/cl-readline-example/blob/master/src/readline-example.lisp#L70
anticomputer has quit [Quit: quit]
anticomputer has joined #commonlisp
<beach> vxe420: It looks to me like the variable TEXT is used only to compare to "quit" and then exit.
<beach> vxe420: The real action must be in R1:READLINE.
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
<beach> Er, sorry RL, not R1.
lisp123 has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
<beach> vxe420: Are you still here?
<shunter> Shinmera: I'm looking at your mmap library atm, is there a way to map from an fd directly? At first glance it looks tucked away by the abstraction
<Shinmera> FDs are not portable, so no there isn't.
<beach> vxe420: After digging a bit further, I think the example doesn't really do anything with the result, so the result is never evaluated. And RL:READLINE does not evaluate anything as far as I can see. It appears to just be the interface to the C library.
<Shinmera> I would be open to a patch to allow FDs, but I'm not sure what the best interface for that would be.
<Shinmera> Especially since it's questionable whether the FD should be managed by the library or not after you mmap and all.
<Shinmera> I'm also not sure what use-case there is where you *only* have an FD, and not the file path?
<Shinmera> Or are we talking about anonymous files
<shunter> Here's the user-story: Wayland has a keymap event that sends over an FD bound to a keymap file I'm intended to mmap and feed into xkbcommon.
<shunter> For portability, I suppose the API would between integers and pointers depending on whether the platform is unix or windows
<Shinmera> And it has to be the same fd, you can't get the path from it?
<shunter> The protocol doesn't specify that that's allowed, e.g. it could be an anonymous/unlinked file
scymtym has joined #commonlisp
<Shinmera> Ah.
<Shinmera> At least basic support should be trivial, just change line 118 and add a case for an integer that just sets FD to PATH.
<shunter> Plus, it would be benefitial to mmap unlinked shm objects as well
skeemer__ has joined #commonlisp
<Shinmera> The bigger question is what MUNMAP should do.
<shunter> Nice, I'll work on the PR when I can get to it, thanks šŸ‘
<shunter> I'll double-check munmap
<Shinmera> It closes the FD when passed, which is probably not what you want
<Shinmera> %MMAP also closes it if the mmap call fails
<Shinmera> so, need to guard against those cases somehow.
<shunter> good catch
random-jellyfish has joined #commonlisp
skeemer has quit [Ping timeout: 256 seconds]
<shunter> I don't think munmap needs to change (the fd is when-checked), so I *think* it can stay the same so long as mmap returns nil as the second value instead of the fd
<Shinmera> I suppose, though it is questionable whether that's obvious behaviour.
<Shinmera> At least I'd be surprised that I don't get the FD back when I pass one in.
<shunter> Could be intuitive if thought as returning a "fresh" fd
<Shinmera> Imo it should still return the FD, but just document that you should pass NIL to munmap if you don't want to close the FD.
<shunter> Right
<shunter> Plus, the API already defines the return-value to be opaque
<shunter> or rather "You should not touch this."
<Shinmera> Well, you still should pass it to the other map functions of course.
<shunter> All right, I'll chew on this for a few days. Thanks
inward has joined #commonlisp
<inward> what does VOP stand for in the context of SBCL internals?
<phoe> virtual operation
<phoe> (IIRC)
<inward> thanks phoe
<inward> I need to now learn what Virtual Operations are
<inward> oh heck yeah!
<inward> so, we call any assembly instruction in a VM a Virtual Operation?
<phoe> more like anything that isn't a primitive assembly instruction and that is itself written in assembly
<phoe> it's a way to write assembly directly inside Lisp
<inward> so it's like inline assembly for Lisp?
<phoe> for SBCL
<inward> ah :)
<phoe> other implementations have their own ways of doing this
<inward> my quest is to learn SBCL specific VOPs then
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
<beach> inward: What is your objective with this quest?
gxt has quit [Ping timeout: 255 seconds]
gxt has joined #commonlisp
<inward> beach: to count instructions, to find efficient code in SBCL
<inward> is it naive to do this?
<beach> No, no. Just asking.
santiagopim has joined #commonlisp
<inward> :)
<inward> beach: would you do the same thing to find efficient code in SBCL?
<beach> I am not sure what "find efficient code" means. Perhaps you want to find out whether SBCL generates efficient machine code from some application code? I don't do things like that usually. I tend to focus on algorithms and data structures instead.
<phoe> starting to optimize code from the assembly level is the wrong approach in general
<phoe> profile zeroth, understand first, optimize the hottest code paths second
<beach> Before that, design good data structures and algorithms.
<inward> okay
<beach> Then, profiling is often unnecessary because the code is good enough.
<phoe> and as beach said, handwritten assembly for an O(nĀ³) algorithm is generally going to be defeated by a O(n) algorithm that is written in lisp and conses a lot and is compiled with (optimize (speed 0))
<phoe> constant factors are a thing, but you can't depend on them working in general
<inward> ahh, okay, then I guess I will focus more on algorithms and DS in lisp then
<beach> I find Common Lisp perfect for designing good data structures. In many languages, it is much harder to do so because of all the boilerplate code that is often required.
<beach> And in languages without automatic memory management, designing good data structures can be very hard indeed.
OlCe has joined #commonlisp
ym has quit [Ping timeout: 260 seconds]
tevo has quit [Ping timeout: 260 seconds]
rainthree3 has quit [Ping timeout: 268 seconds]
<_death> CL could use better (efficient) support for structures that require more control of memory layout (contiguous memory for structures within structures, packing and alignment, etc.)
lisp123 has quit [Ping timeout: 260 seconds]
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
epony has quit [Quit: QUIT]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
emacs-dwim has joined #commonlisp
MajorBiscuit has joined #commonlisp
tevo has joined #commonlisp
<pjb> _death: you can implement that with enough macrology.
<pjb> _death: note that this departs entirely from the lisp model of uniform reference for all lisp objects.
rainthree has joined #commonlisp
<pjb> beach: how the garbage collector makes designing good data structures harder?
<jackdaniel> lack of gc*
<_death> pjb: sure, macrology and implementation-specific code.. I think beach made the opposite claim, that gc can make it easier (less worry about object ownership)
epony has joined #commonlisp
<pjb> jackdaniel: Oops, I missed "without". Sure.
easyme has joined #commonlisp
<pjb> _death: you can use (:type vector) defstruct as storage for your substructures.
<pjb> Those substructures being (:type vector) too, so that you can use displaced arrays.
<easyme> Hello, is /part
emacs-dwim has quit [Remote host closed the connection]
<easyme> Sorry
rainthree has quit [Ping timeout: 268 seconds]
easyme has left #commonlisp [#commonlisp]
emacs-dwim has joined #commonlisp
gxt has quit [Ping timeout: 255 seconds]
tevo has quit [Ping timeout: 256 seconds]
pjb has quit [Remote host closed the connection]
gxt has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
ebrasca has joined #commonlisp
pjb has joined #commonlisp
<_death> pjb: that may work for a particular scenario (and not others).. I think if you re-read what I wrote you can see how it's possible that one can be aware of such techniques and still make the statement
inward has left #commonlisp [#commonlisp]
<Bike> for example, heterogenous structures
tevo has joined #commonlisp
<_death> or to avoid the need for displaced array header allocation.. or being able to specify packing/padding and alignment.. basically my general point.. such interfaces could make it more convenient to design certain data structures in CL
<_death> as it is, one may resort to FFI, which is not always so convenient or efficient
<_death> and of course it's not part of CL :)
rainthree has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
jmdaemon has quit [Ping timeout: 268 seconds]
<_death> I guess it could also place limitations or complications on GC, say if it wants to move objects around.. so I'm not saying it's trivial or anything..
random-jellyfish has quit [Ping timeout: 260 seconds]
rainthree has quit [Read error: Connection reset by peer]
rainthree3 has joined #commonlisp
<AadVersteden[m]> beach: with respect to debugging, even with recompilation being required: the use of stickers makes me realize that it would be mega helpful to have a stepper that allows stepping backwards and forwards through the execution of a function. (did not get to reading the paper yet, probably ignore this message; value is apparent in poc code written by yours truly)
nij- has joined #commonlisp
<beach> Stepping backwards is much more difficult than stepping forwards, though.
gxt has quit [Ping timeout: 255 seconds]
<pjb> beach: but a good enough algorithm exists, in time travelling debuggers: snapshot at each syscall and rewind to the previous syscall state, executing N-1 steps.
gxt has joined #commonlisp
rainthree3 has quit [Read error: Connection reset by peer]
rainthree has joined #commonlisp
<Bike> and that is much more difficult
rainthree3 has joined #commonlisp
rainthree33 has joined #commonlisp
rainthree has quit [Ping timeout: 260 seconds]
thuna` has joined #commonlisp
rainthree3 has quit [Ping timeout: 260 seconds]
<thuna`> I noticed that the middle ~a in this format string moves right when the left ~a's length increases. Is there a way to make sure it stays at the center? "~v<~a~;~a~;~a~>"
dipper has quit [Remote host closed the connection]
rainthree33 has quit [Ping timeout: 268 seconds]
Brucio-61 has quit [Ping timeout: 240 seconds]
scymtym has quit [Ping timeout: 260 seconds]
<pjb> thuna`: https://termbin.com/vbmz but it's not satisfying.
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
Inline has joined #commonlisp
saura has quit [Ping timeout: 260 seconds]
fitzsim has quit [Remote host closed the connection]
pranavats has joined #commonlisp
<thuna`> pjb: Well, I used single ~a's in each field to simplfy the question but I want to be able to get it to work with arbitrary values, so we can consider the actual problem "~v<~@?~;~@?~;~@?~>" instead.
Brucio-61 has joined #commonlisp
<pjb> thuna`: yes, this would be my next proposition, use ~? and format fixed size strings for each column.
<thuna`> Does ~? accept any arguments to control width?
<pjb> No, you would have to do that in the corresponding format-control-strings.
<thuna`> That's not much better then
<pjb> I find ~< hard to use. Better write your own formatting code. In this case, you seem to be wanting columns. So format each column separately, align them as you wish with the wanted width, and concatenate them.
<thuna`> Hmmmm
epony has quit [Ping timeout: 268 seconds]
anticomputer has quit [Ping timeout: 255 seconds]
anticomputer has joined #commonlisp
scymtym has joined #commonlisp
nij- has joined #commonlisp
<nij-> A hash table is a map from a "1-dimensional" collection to values.
<nij-> I have a bunch of data that are parametrized by a 2-dimension collection (i.e. it's really a product of two lists)
<nij-> what data type in CL should I use?
<nij-> Naively, I can use table with tables in the slots.. but that feels a bit off
<Bike> depends on the density you're expecting
<pjb> nij-: you can still use a hash-table!
<pjb> (setf (gethash '(1 2) map) 'monster) (gethash '(3 4) map) -> gold
<nij-> Bike: density? All of the slots will be populated.
<pjb> then use a 2D array
<jackdaniel> alternatively you may discretize keys in two hash tables and store data in an array indexed by values (in said tables)
<pjb> #2A((gold empty) (empty monster))
<nij-> Hmm.. but then it's harder for me to make queries like (gethash (_ 2) map)
<nij-> In general, there should be handy way to handle multi-dimensional hash tables, with a nice query language.
<Bike> nij-: whether the matrix of keys is sparse
<pjb> If you're mapping from integers, then you should definitely consider arrays.
<nij-> no, not integers.
waleee has joined #commonlisp
<pjb> Then you will have to use a more complex data structure. Perhaps quad-trees would do?
<nij-> Lemme take a look.
<jackdaniel> you may also use spatial trees for real indexes
<jackdaniel> that would solve the "query language" as well
<jackdaniel> (get-data 10 10 15.5 30)
<nij-> But the params are not real numbers..
<nij-> you mean I encode the params into real numbers?
<jackdaniel> then discretize keys as integers and use 2d array (you may discretize with a hash table)
<nij-> How do you discretize keys?
<nij-> In my case, param0 is of string type, and param1 is of plist type (plist of keywords and lisp symbols)
<jackdaniel> (defun key->integer (key) (or (gethash key table) (setf (gethash key table) (hash-table-count table)))
azimut_ has joined #commonlisp
<jackdaniel> in both cases you'll want either equal or equalp test it seems
<thuna`> pjb: This seems to do the trick https://0x0.st/o6Cc.txt
azimut has quit [Ping timeout: 255 seconds]
Algernon69 has joined #commonlisp
Algernon69 has quit [Client Quit]
saura has joined #commonlisp
NotThatRPG has joined #commonlisp
karlosz has joined #commonlisp
Inline_ has joined #commonlisp
<NotThatRPG> Is there any interest in seeing a new ILC, or will there be an ELS in 2023? I am asking because ASDF could really use a hackathon, and if would be great to have a CL occasion to attach it to. https://european-lisp-symposium.org/ doesn't have any mention of plans for 2023
<beach> There will definitely be an ELS in 2023.
<nij-> Oh I realize what I want is a multidimensional database..
<nij-> which doesn't seem to be well supported yet
<nij-> I may have to implement my own.
Inline has quit [Ping timeout: 268 seconds]
Inline__ has joined #commonlisp
<beach> NotThatRPG: In Porto, there were three candidates who volunteered for 2023. It is just a matter for the steering committee to choose one.
<NotThatRPG> beach: Oh, good!
<NotThatRPG> Next I need to figure out how to get funding to come, but this is a good first step!
<beach> NotThatRPG: Well, I guess they need to find a program chair. And I suppose it is possible that they won't and that ELS will then be canceled. But that doesn't seem likely.
<NotThatRPG> Not if there are already volunteers.
<beach> No, the volunteers were for the local arrangements.
<beach> The program chair is not tied to geography.
<beach> The program chair is in charge of the academic contents.
Inline_ has quit [Ping timeout: 268 seconds]
<beach> It should be easier to find a program chair, because that person can be anywhere, and probably doesn't even need to attend the conference.
<NotThatRPG> Yes, I agree.
<beach> But an ILC would be good too. Are you thinking of organizing one?
<jackdaniel> do you expect a hackathon to produce some quality results? or is it more to make people interested in developing asdf?
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
<NotThatRPG> @jackdaniel: Mostly I need to be removed from my normal context and given some space to concentrate on ASDF. And I could use some company to help me work up energy for ASDF work.
<jackdaniel> I see
<jackdaniel> I have a random idea: 'hack buddies' - a video conference where people aren't really talking, just hacking their own stuff, but staying on the line; suposedly this helps with procrastination and such
<NotThatRPG> A thing that virtual conferences don't do is to pull people out of context.
ryanbw has quit [Ping timeout: 260 seconds]
scymtym has quit [Remote host closed the connection]
Brucio-61 has quit [Read error: Connection reset by peer]
<NotThatRPG> @jackdaniel: I think that would help for other things, but this needs a good block of time and it's going to be hard to do a day's work and then log in to work with hack buddies in my spare time.
ryanbw has joined #commonlisp
<jackdaniel> I'm just reiterating what I've read about. I'm getting into the work mindset by going to the office.
<NotThatRPG> Me, too. Unfortunately, ASDF isn't work for me. Or at least, it's not the work I get paid to do
jello_pudding has quit [Ping timeout: 256 seconds]
<Shinmera> jackdaniel: I've tried to do that, but it's really annoying to have to stay miced and headphoned for hours on end online.
scymtym has joined #commonlisp
<Shinmera> I've had a lot of success with a local weekly meetup of fellow gamedevs though. We meet at a cafe and hang out on saturday, work a bit on our stuff, and discuss it.
<Shinmera> Much harder to get that going for something as specific as ASDF, though :)
<jackdaniel> sounds nice
<Shinmera> It is, I can recommend organising something similar.
<jackdaniel> asdf-gamedev extension, voila - problem solved!
<Shinmera> Heh. Unfortunately my road for gamedev build systems is to write something entirely separate.
<Shinmera> Which I will continue next year
rainthree has joined #commonlisp
silasfox has joined #commonlisp
scymtym has quit [Remote host closed the connection]
jello_pudding has joined #commonlisp
scymtym has joined #commonlisp
Brucio-61 has joined #commonlisp
pdietz has joined #commonlisp
jeosol has quit [Ping timeout: 260 seconds]
Inline_ has joined #commonlisp
Inline__ has quit [Ping timeout: 268 seconds]
silasfox has quit [Ping timeout: 260 seconds]
euandreh has quit [Remote host closed the connection]
Inline_ has quit [Ping timeout: 268 seconds]
epony has joined #commonlisp
tyson2 has joined #commonlisp
thuna` has quit [Remote host closed the connection]
MajorBiscuit has quit [Ping timeout: 268 seconds]
Catie has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
pfd has joined #commonlisp
euandreh has joined #commonlisp
thuna` has joined #commonlisp
euandreh has quit [Remote host closed the connection]
euandreh has joined #commonlisp
jeosol has joined #commonlisp
emacs-dwim has quit [Remote host closed the connection]
cage has joined #commonlisp
emacs-dwim has joined #commonlisp
Dynom_ has joined #commonlisp
Dynom_ is now known as Guest4445
jeosol has quit [Quit: Client closed]
jmdaemon has joined #commonlisp
ttree has joined #commonlisp
Bung has joined #commonlisp
prokhor__ has quit [Ping timeout: 252 seconds]
goober has quit [Remote host closed the connection]
pranavats has joined #commonlisp
ldb has joined #commonlisp
Bung has quit [Remote host closed the connection]
Bung has joined #commonlisp
goober has joined #commonlisp
<NotThatRPG> McCLIM question: I would like to be able to display the state of a (trivial) boardgame. To do so, I would display a background image, and would like to be able to slap smaller foreground images (the pieces) on top of it, and be able to move and remove these foreground images. I'm trying to remember what I knew of McCLIM, and wasn't sure whether this would be easy to do there
<jackdaniel> NotThatRPG: I've written an example "checkers", it is available in examples
<jackdaniel> with drag and drop etc
<NotThatRPG> @jackdaniel: Brilliant! Thanks!!!
<jackdaniel> sure
<jackdaniel> there are probably better ways to write this, but it works, and even validates moves
attila_lendvai has joined #commonlisp
<NotThatRPG> Is this the right repo: https://github.com/McCLIM/McCLIM
<jackdaniel> yes
attila_lendvai has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
<jackdaniel> you are mostly interested in forms starting with (define-presentation-method present ...)
igemnace has quit [Remote host closed the connection]
silasfox has joined #commonlisp
<NotThatRPG> Quick follow-up: this uses a rectangular grid. Can McCLIM (relatively) easily do other tesselations? The board I am trying to display uses hexagons (for smoother discrete diagonal movement). This isn't a requirement, since I have a background image and can just draw over that.
<jackdaniel> you will have to position hexagons yourself (like you need to position "squares")
<jackdaniel> is this what you ask about or did I misunderstood?
<jackdaniel> drawing a hexagon is easy, making a refined position test is also trivial
sunsetNOVA has joined #commonlisp
<NotThatRPG> @jackdaniel: Yes, I was wondering if generating a tesselated grid of hexes would be easy or not...
sunsetNOVA is now known as sunset_NOVA
sunset_NOVA has quit [Quit: Leaving]
sunset_NOVA has joined #commonlisp
sunset_NOVA has quit [Client Quit]
edgar-rft has quit [Quit: Leaving]
lechner has quit [Remote host closed the connection]
edgar-rft has joined #commonlisp
lechner has joined #commonlisp
Guest268987 has joined #commonlisp
<Guest268987> Hello
<Guest268987> So it's all good, I can make-array, aref, but somehow "aset" is undefined ... what could be wrong?
<Guest268987> I am running SLIME under emacs, and was reading about arrays/vectors.
<White_Flame> (setf (aref ...) 3)
<White_Flame> a "place" in CL lingo is something you can not only read but SETF into
<Guest268987> hmmmmm okey I must have mixed up common lisp and emacs lisp ...
<White_Flame> depending on what you've seen so far
<White_Flame> ah, if elisp has aset, then yeah
<Guest268987> yup that's it
<Guest268987> okey thank you
<White_Flame> yw
ym has joined #commonlisp
attila_lendvai has quit [Ping timeout: 260 seconds]
Bung has quit [Quit: Leaving]
attila_lendvai has joined #commonlisp
akoana has joined #commonlisp
rainthree has quit [Ping timeout: 256 seconds]
Cymew has quit [Quit: Konversation terminated!]
tyson2 has quit [Remote host closed the connection]
frgo has quit []
silasfox has quit [Ping timeout: 240 seconds]
frgo has joined #commonlisp
frgo has quit [Client Quit]
Inline has joined #commonlisp
pdietz has quit [Ping timeout: 260 seconds]
ldb has quit [Remote host closed the connection]
Inline_ has joined #commonlisp
Inline has quit [Ping timeout: 256 seconds]
tyson2 has joined #commonlisp
Inline_ is now known as Inline
silasfox has joined #commonlisp
lisp123 has joined #commonlisp
tyson2` has joined #commonlisp
tyson2` has quit [Read error: Connection reset by peer]
tyson2 has quit [Read error: Connection reset by peer]
tyson2 has joined #commonlisp
tyson2` has joined #commonlisp
NotThatRPG is now known as NotThatRPG_away
tyson2 has quit [Ping timeout: 268 seconds]
azimut_ has quit [Ping timeout: 255 seconds]
Inline_ has joined #commonlisp
Inline is now known as Guest5237
Guest5237 has quit [Killed (platinum.libera.chat (Nickname regained by services))]
Inline_ is now known as Inline
Inline_ has joined #commonlisp
Inline is now known as Guest3135
Inline_ is now known as Inline
Guest3135 has quit [Ping timeout: 256 seconds]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
Inline_ has joined #commonlisp
frgo has joined #commonlisp
Inline has quit [Ping timeout: 256 seconds]
lisp1234 has joined #commonlisp
Inline__ has joined #commonlisp
<Guest268987> I am not sure to understand. I hit "slime-compile-and-load-file (C-c C-k) " on my test-file.lisp, and I get "compilation finished in 0:00:00.008" back in *slime-repl sbcl*. However, trying to use anything defined in my file within the repl, leads to unbound variable and undefined ...
<Guest268987> I literally need to copy-paste definitions for them to work in repl
lisp123 has quit [Ping timeout: 260 seconds]
<pjb> Guest268987: you need also to load the compiled file, and if you defined a package and all your function are bound in that package, you need to switch to that package, or use it in the current package.
Inline_ has quit [Ping timeout: 240 seconds]
<pjb> (in-package :foo) or (use-package :foo)
<Guest268987> ohhhhhh
<Guest268987> thank you
<pjb> in the package you will have direct access to all the definitions; using it you will have access tot he exported symbols.
<Guest268987> it works
lisp1234 has quit [Read error: Connection reset by peer]
<Guest268987> i somehow assumed it would use-package automatically ..
Guest4445 has quit [Quit: WeeChat 3.7.1]
euandreh has quit [Read error: Connection reset by peer]
euandreh2 has joined #commonlisp
euandreh2 is now known as euandreh
tyson2` has quit [Remote host closed the connection]
<pjb> Guest268987: it would be difficult to do use-package automatically because of possible name collisions.
Inline_ has joined #commonlisp
Inline__ has quit [Ping timeout: 256 seconds]
silasfox has quit [Ping timeout: 256 seconds]
<emacs-dwim> Guest268987: Working at the repl, you can set the default package to your choice. (I think it was (kbd ", ! p") at the repl in slime.) There are frequently many packages in use, so it's not obvious which would be set as the default other than :cl-user. But more often I use slime/sly to evaluate forms directly from the source files as I write them. (kbd "C-x C-e") sly-eval-last-expression - or slime-eval-last-expression. This uses th
<emacs-dwim> most recent previous (in-package ā€¦) in that source file as the default package.
cosimone has quit [Remote host closed the connection]
shka has quit [Ping timeout: 256 seconds]
Inline__ has joined #commonlisp
<Guest268987> thanks you all for information
Inline_ has quit [Ping timeout: 256 seconds]
sedzcat has joined #commonlisp
Inline_ has joined #commonlisp
Inline__ has quit [Ping timeout: 260 seconds]
Inline__ has joined #commonlisp
Inline_ has quit [Ping timeout: 260 seconds]
ym has quit [Ping timeout: 260 seconds]
akoana has quit [Quit: leaving]
Guest268987 has quit [Read error: Connection reset by peer]
pve has quit [Quit: leaving]
rgherdt has quit [Remote host closed the connection]
Inline_ has joined #commonlisp
tyson2 has joined #commonlisp
Inline__ has quit [Ping timeout: 268 seconds]
Guest268987 has joined #commonlisp
robin_ has joined #commonlisp
robin has quit [Ping timeout: 260 seconds]
sedzcat has quit [Quit: sedzcat]
Inline__ has joined #commonlisp
Inline_ has quit [Ping timeout: 268 seconds]
Inline_ has joined #commonlisp
Inline__ has quit [Ping timeout: 260 seconds]
Inline__ has joined #commonlisp
dre has quit [Quit: Leaving]
robin_ is now known as robin
Inline_ has quit [Ping timeout: 260 seconds]
semz has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
pfd has quit [Ping timeout: 260 seconds]
semz has joined #commonlisp
Guest268987 has quit [Ping timeout: 256 seconds]
Inline_ has joined #commonlisp
Inline__ has quit [Ping timeout: 260 seconds]
dipper has joined #commonlisp
Inline__ has joined #commonlisp
Inline_ has quit [Ping timeout: 240 seconds]
<thuna`> How do I ensure CLOSE doesn't delete the file on abort?
<phoe> don't use WITH-OPEN-FILE
<phoe> instead OPEN over UNWIND-PROTECT and CLOSE inside it manually
<thuna`> "The stream is closed (if necessary). If abort is true and the stream is an output file stream, its associated file might be deleted."?
<thuna`> Oh, I see what you mean
<thuna`> But that doesn't really answer the question
<phoe> oh wait
<phoe> use CLOSE with an explicit :ABORT NIL or the implicit default value?
<thuna`> Right, that's what I was thinking you were suggesting (and it /would/ work), but that's just "don't get into that situation". Is there not a way to do it normally?
<mfiano> using OPEN and CLOSE directly is not considered very normal
<phoe> what do you mean by "normally"?
<phoe> (CLOSE ... :ABORT NIL) is the ANSI-standardized way of performing what you mean
<phoe> I can't imagine anything more "normal" than that
<thuna`> But then what's the point of abort?
<thuna`> Hmm
<thuna`> Ah
<phoe> if OPEN had created a file, CLOSE :ABORT T will try to delete it
<thuna`> The side effects say file might be deleted so I figured that wasn't it's purpose. My bad
<phoe> actually that's exactly its purpose
<thuna`> Yeah, I skimmed over that part so I missed it
<thuna`> Anyway, I wasn't using with-open-file apparently anyway so that's not an issue here luckily
Inline_ has joined #commonlisp
<thuna`> Oh! Since when does sbcl have type checking for classes?
Inline__ has quit [Ping timeout: 256 seconds]
Inline__ has joined #commonlisp
<thuna`> Nope, it's only for initarg. Sigh. Better than nothing, at least
<thuna`> initform*
<phoe> thuna`: (safety 3) gives you checks for slot assignments too
<thuna`> phoe: Is that new?
<mfiano> Yes, that was a big thing about a year ago, when much of Quicklisp dist broke :)
<thuna`> Cool
Inline_ has quit [Ping timeout: 268 seconds]
<thuna`> So, mush of Quicklisp dist was bugged? :)
<thuna`> much*
<mfiano> Pretty much. That or their users were using it wrong.
<mfiano> We actually got a lot of good software fixed by SBCL's eager correctness changes and Xach's awesome work trying to build everything in isolation (which surely takes more time than not being isolated).
<Josh_2> Default safety settings in SBCL means that slot type checks are disabled by default