travv0 has quit [Read error: Connection reset by peer]
splittist has quit [Read error: Connection reset by peer]
dbotton has quit [Read error: Connection reset by peer]
sgithens has quit [Read error: Connection reset by peer]
jcowan has quit [Read error: No route to host]
griffinmb has quit [Read error: Connection reset by peer]
gendl has quit [Read error: Connection reset by peer]
drmeister has quit [Read error: Connection reset by peer]
jsatk has quit [Write error: Connection reset by peer]
IUSR has quit [Read error: Connection reset by peer]
victor has quit [Read error: Connection reset by peer]
ullbeking has quit [Read error: Connection reset by peer]
d_run has quit [Read error: Connection reset by peer]
pl has quit [Read error: Connection reset by peer]
conjunctive has quit [Read error: Connection reset by peer]
hubvu has quit [Read error: Connection reset by peer]
alanz has quit [Read error: Connection reset by peer]
Lord_of_Life_ is now known as Lord_of_Life
rgherdt_ has quit [Ping timeout: 264 seconds]
shka has quit [Ping timeout: 240 seconds]
occ has joined #commonlisp
dbotton has joined #commonlisp
hubvu has joined #commonlisp
gendl has joined #commonlisp
d_run has joined #commonlisp
conjunctive has joined #commonlisp
pl has joined #commonlisp
asen has joined #commonlisp
dbotton has quit [Ping timeout: 256 seconds]
d_run has quit [Ping timeout: 256 seconds]
gendl has quit [Ping timeout: 264 seconds]
hubvu has quit [Ping timeout: 264 seconds]
conjunctive has quit [Ping timeout: 264 seconds]
pl has quit [Ping timeout: 264 seconds]
frgo_ has joined #commonlisp
d_run has joined #commonlisp
conjunctive has joined #commonlisp
dbotton has joined #commonlisp
hubvu has joined #commonlisp
frgo has quit [Ping timeout: 250 seconds]
splittist has joined #commonlisp
pl has joined #commonlisp
victor has joined #commonlisp
gendl has joined #commonlisp
alanz has joined #commonlisp
Catie has quit [Quit: heading home]
iisi has joined #commonlisp
lexi_sparks has quit [Ping timeout: 268 seconds]
travv0 has joined #commonlisp
jcowan has joined #commonlisp
stylewarning has joined #commonlisp
ullbeking has joined #commonlisp
Guest74 has joined #commonlisp
jsatk has joined #commonlisp
sgithens has joined #commonlisp
IUSR has joined #commonlisp
utis_ has quit [Ping timeout: 246 seconds]
utis has joined #commonlisp
occ has quit [Ping timeout: 264 seconds]
waleee has quit [Ping timeout: 240 seconds]
waleee has joined #commonlisp
random-nick has quit [Ping timeout: 260 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lexi_sparks has joined #commonlisp
ec has quit [Remote host closed the connection]
elderK has joined #commonlisp
griffinmb has joined #commonlisp
drmeister has joined #commonlisp
lexi_sparks has quit [Ping timeout: 246 seconds]
s-liao has quit [Quit: Client closed]
Guest74 has quit [Quit: Ping timeout (120 seconds)]
gxt has quit [Remote host closed the connection]
Guest74 has joined #commonlisp
aeth has quit [Ping timeout: 245 seconds]
pve has quit [Ping timeout: 264 seconds]
gxt has joined #commonlisp
pve has joined #commonlisp
aeth has joined #commonlisp
pillton has joined #commonlisp
alvaro121 has quit [Ping timeout: 240 seconds]
paule32__ has joined #commonlisp
paule32 has joined #commonlisp
paule32_ has quit [Ping timeout: 240 seconds]
paule32_ has joined #commonlisp
paule32__ has quit [Ping timeout: 256 seconds]
paule32__ has joined #commonlisp
paule32 has quit [Ping timeout: 256 seconds]
paule32_ has quit [Ping timeout: 264 seconds]
s-liao has joined #commonlisp
NotThatRPG has joined #commonlisp
akoana has quit [Quit: leaving]
lexi_sparks has joined #commonlisp
holycow has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<beach>
Good morning everyone!
<holycow>
morning beach
Guest74 has quit [Ping timeout: 256 seconds]
jealousmonk has quit [Quit: ERC (IRC client for Emacs 27.1)]
lexi_sparks has quit [Ping timeout: 256 seconds]
waleee has quit [Ping timeout: 256 seconds]
<asen>
good morning
nature has quit [Ping timeout: 256 seconds]
semz has quit [Ping timeout: 246 seconds]
<beach>
asen: Are you new here? I don't recognize your nick.
Bike has quit [Quit: Lost terminal]
semz has joined #commonlisp
gigamonkey has quit [Remote host closed the connection]
gigamonkey has joined #commonlisp
VincentVega has joined #commonlisp
gigamonkey has quit [Remote host closed the connection]
gigamonkey has joined #commonlisp
Oladon has joined #commonlisp
asen has quit [Quit: Leaving]
gigamonkey has quit [Ping timeout: 246 seconds]
VincentV` has joined #commonlisp
VincentVega has quit [Ping timeout: 264 seconds]
s-liao83 has joined #commonlisp
frgo_ has quit [Ping timeout: 256 seconds]
s-liao83 has quit [Client Quit]
s-liao80 has joined #commonlisp
s-liao80 has quit [Client Quit]
s-liao90 has joined #commonlisp
s-liao90 has quit [Client Quit]
s-liao has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp
occ has joined #commonlisp
alvaro121 has joined #commonlisp
dre has quit [Ping timeout: 240 seconds]
Alfr has quit [Ping timeout: 250 seconds]
Devon has quit [Ping timeout: 264 seconds]
aartaka has joined #commonlisp
gaqwas has joined #commonlisp
dre has joined #commonlisp
<mfiano>
Good morning
<hayley>
Hey mfiano.
<mfiano>
I have been thinking of getting back into CL development this week after a long hiatus. I would like to explain my implementation of a graphics generation algorithm, because my plan is to create a visual stepwise animation of it executing, for the purpose of more intuitive debugging and parameter tweaking. I am not sure if this channel is okay with that, as while it is written in CL, it is
<mfiano>
mostly algorithm explanation in order to get ideas on how to visually represent things.
<beach>
Hello mfiano. I say "try us".
<mfiano>
My plan is to have something similar to a graphical disassembler, that i can iterate stepwise forward or reverse, in order to visually see changes ("register contents", etc)
<mfiano>
Thanks. I have been thinking about this for several months, and I have vague ideas. Any feedback would go a long way towards getting me back into a coding mindset.
<mfiano>
So the algorithm is a variant of Wave Function Collapse (WFC), but you don't need to know what that does, just that it is a method to generate 'locally-similar' images, given a sample image. This means similar patterns/textures show up in the output, and with a similar frequency.
<mfiano>
My implementation is split up into 2 phases: analyzation of the input image, and generation of the output. All the interesting work is done in the first phase. This is where all the data structures are cached to be used by the latter phase.
Oladon has quit [Quit: Leaving.]
<mfiano>
Phase 1 goes something like this: Given a kernel size, say 3x3 pixels, start at the topleft of the sample, and read the 3x3 pattern of pixels. All 4 RGBA channels of each pixel are packed into a UB32 integer, and stored in a 'patterns' hash table keyed by a 1d array of length 9 of element-type '(unsigned-byte 32), whose value is 0, and subsequent patterns are increased by 1.
occ has quit [Ping timeout: 240 seconds]
<mfiano>
The next pattern is taken from moving the kernel window right 1 pixel, so receives the 2 columns from the first pattern, plus an additional column.
<mfiano>
For each of these patterns, all the reflections and rotations are also calculated, and added to the hash table if they are unique.
<mfiano>
So by the time the entire image is analyzed, there will be lots of patterns that phase 2 makes use of.
<mfiano>
Phase 2 is what I actually want to be visualized graphically in the stepwise manner I mentioned.
<mfiano>
How that phase works is, given an output image size, initialize each pixel to be a bit vector of length 'number of patterns' (hash-table-count from phase 1).
s-liao88 has joined #commonlisp
<mfiano>
Now each pixel of the output is the 'superposition' of every possible pattern. The algorithm does some mathy stuff to select a pattern of the lowest entropy for some random starting pixel, which modifies its bit vector to reflect all the patterns that cannot coherently fit adjacent to the selected pattern.
occ has joined #commonlisp
<mfiano>
and then these changes are propagated to the adjacent pixels' bit-vectors, until propagation cannot continue, and the algorithm selects another pixel and repeats. the process is done when either a contradiction occurs, in which case you have to start over or backtrack to some point in the past, or all bit-vectors are reduced to a single on bit
<mfiano>
Wow that was a mouthful. So I'm trying to think of a good way to stepwise animate this superposition of many possible patterns
s-liao has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
s-liao88 has quit [Ping timeout: 256 seconds]
<mfiano>
In a way, you can think of it as a giant sudoku puzzle, with many more choices than single digit numbers
s-liao has quit [Client Quit]
<mfiano>
Phase 1 could easily generate 1000 different patterns, which means each output pixel would start as a bit vector of length 1000
<mfiano>
(with all on bits, and takes its final shape with there is a single on bit left)
<mfiano>
s/with/when/
<beach>
It sounds like a bit vector with length "number of patterns" would be huge, no?
rgherdt_ has joined #commonlisp
<beach>
Why 1000 and not way more?
<mfiano>
Yes, and that is compounded by the fact that a robust implementation would need to keep history for backtracking purposes
<mfiano>
it's completely input-dependent. it depends on how many unique patterns of the given kernel size exist in the sample (including rotational and reflective symmetry)
rotateq has joined #commonlisp
<beach>
The number of possible patters is 2^{32*9}, no?
<beach>
Why would there be any repetition whatsoever?
<mfiano>
Where did I imply repetition?
<beach>
The hash table value is incremented when a pattern is repeated I think you said.
<mfiano>
The hash table is keyed by the pattern array, with a timestamp value if that pattern has not been seen before for the entire sample image
<mfiano>
otherwise if it has, another frequencies table is incremented, but that is irrelevant details
<beach>
So it seems to me that there will typically be as many patters as there are pixels in the input image.
<mfiano>
that is not true at all
<beach>
If not, there is repetition, which you just suggested there isn't.
<mfiano>
amd then scroll down a bit for an example with rotations/reflections
<beach>
I am afraid that didn't help my confusion.
<beach>
If the same pattern appears several times in the image, then that means that there is repetition.
<beach>
If there is no repetition, then each pattern appears only once, and there must be as many patters as there are pixels.
<mfiano>
Ok, yes there may possibly be repetition, sorry. Repetition is not recorded in the patterns table, not the bit vector, but in a separate analyzation table keyed by pattern array whose value is an increasing integer representing its frequency
<beach>
But a pattern has 32*9 bits, so the probability of repetition is a random image is very low.
<mfiano>
or it might be keyed by the pattern id timestamp from the pattern table, that probably sounds more right (going by memory here)
gigamonkey has joined #commonlisp
<mfiano>
this algorithm is meant to be used with simple bitmaps of a small number of colors
<beach>
You never told us that.
<mfiano>
the frequency can vary a lot
<beach>
If that's the case, why use 32 bits for a pixel value? 32 bits suggests 8 bits for each color and 8 bits for alpha.
<mfiano>
True, this algorithm is fairly complicated, and I was trying to omit some details, and forgot others, as I just want to create a graphical debugger for phase 2
<beach>
But you said that phase 1 is the important one as I recall.
<beach>
No?
<beach>
"All the interesting work is done in the first phase."
<mfiano>
Phase 1 is the analyzation of the small size/color count input image, which records all these patterns and frequencies into the 2 global tables. Phase 2 is the actual generation of the output by intelligently choosing a pixel's pattern to 'collapse it to', and removing impossibilities of adjacent pixels in a recursive propagation step
gigamonkey has quit [Ping timeout: 256 seconds]
<mfiano>
By that, I just meant that generation uses the cached data from phase 2 and is pretty much a black box as far as my problem is concerned.
<mfiano>
with the only detail needed is that each output image pixel is many possible values until propagation limits it down
<mfiano>
err cached data from phase 1
hirez- has joined #commonlisp
hirez has quit [Quit: Later]
dre has quit [Ping timeout: 240 seconds]
<beach>
What does a superposition of patterns look like?
aeth_ has joined #commonlisp
aeth has quit [Ping timeout: 256 seconds]
<mfiano>
Assume there are 100 patterns recorded in the global patterns table, and maybe there are a few repetitions of some recorded in another global table.
<mfiano>
The generation begins by the user choosing an output size, and initializing an array with each element being an object that contains a bit vector filled with 1's of length 100. the index into these bit vectors is the timestamp of the patterns recorded in the global patterns table.
<mfiano>
the output is realized by intelligently selecting a pattern, thus setting all except 1 of a single output pixel's bit-vector bits to 0, and propagating changes to adjacent pixels recursively (there are a set of adjacency rules computed in phase 1 to go by)
<mfiano>
so the superposition of each pattern is this bitvector. it is a collapsed pattern when it has a single 'on' bit
<beach>
But, I mean, what operation is "superposition"? Bitwise AND, Bitwise OR, Bitwise XOR, something else?
<mfiano>
It's not an operation, just a data structure.
<mfiano>
i guess OR though
<mfiano>
any bit set to on is a possible pattern for that output cell.
<beach>
I think I understand a little bit better, but I don't think I can be of much help. I suspect some domain knowledge is required for that.
edgar-rft has quit [Quit: Leaving]
<mfiano>
Sure no problem. To summarize, the problem I've been thinking about is a graphical representation of the 'progress' of collapsing each output pattern.
<beach>
Yes, I see.
<mfiano>
Obviously a large output image needs something like user-input and context panes to intuitively display interesting information
<mfiano>
but the arbitrary size of the data still makes that hard
<mfiano>
drilling into the inspector is less than ideal and very error prone, from my experience, especially considering the number of iterations you want to inspect various state about.
<mfiano>
I will think some more. UI is hard as it is
<beach>
Indeed.
<mfiano>
On another note
<mfiano>
Consider a small-ish 200x200 output image requested by the user.
<mfiano>
with 100 possible patterns for each of those 40k pixels
<mfiano>
that is a lot of bits for each bit-vector, that need to be different objects with no shared state. Now consider that contradictions in the algorithm are common, so backtracking is needed. That means many histories of this 40k instances of 100-long bit-vectors need to be kept
<mfiano>
this is also a very memory intensive program
<mfiano>
That, i don't think can be easily solved.
<beach>
Sounds bad, yes.
dre has joined #commonlisp
<mfiano>
It's a really inefficient algorithm, and not guaranteed to terminate, hence the backtracking. But what makes it interesting is the extensibility in which it can be modified, and how good it looks when it does complete.
gaqwas has quit [Remote host closed the connection]
gaqwas has joined #commonlisp
<mfiano>
Thanks for your time. I am slowly getting back into coding mode and appreciate having someone to explain this to to get my brain in gear.
<mfiano>
I haven't coded anything other than small menial tasks in about 5 months. This project is what I want to come back to and finish with perhaps a McCLIM frontend for experimenting.
<mfiano>
Though McCLIM in quicklisp is broken. I should talk to jackdaniel about that
<jackdaniel>
how is it broken? :(
<mfiano>
It has a read-time dependency on the swank package, even when run from SLY or a terminal
<jackdaniel>
does it ? oh no
<jackdaniel>
and it is not declared anywhere?
<mfiano>
fails to quickload, yeah
<mfiano>
I can produce the debugger/backtrace, sec
asen has quit [Read error: Connection reset by peer]
asen has joined #commonlisp
gigamonkey has joined #commonlisp
Posterdati has joined #commonlisp
gigamonkey has quit [Ping timeout: 240 seconds]
elderK has quit [Quit: Connection closed for inactivity]
Posterdati has quit [Ping timeout: 246 seconds]
xantoz has joined #commonlisp
Posterdati has joined #commonlisp
theothornhill has joined #commonlisp
s-liao8 has quit [Quit: Client closed]
attila_lendvai_ has joined #commonlisp
heisig has quit [Ping timeout: 246 seconds]
attila_lendvai_ has quit [Ping timeout: 240 seconds]
scymtym has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
s-liao has joined #commonlisp
utis has quit [Quit: leaving]
random-nick has joined #commonlisp
tyson2 has joined #commonlisp
asen has quit [Remote host closed the connection]
notzmv has joined #commonlisp
asen has joined #commonlisp
asen has quit [Read error: Connection reset by peer]
theothornhill has quit [Ping timeout: 256 seconds]
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
asen has joined #commonlisp
asen has quit [Read error: Connection reset by peer]
amb007 has quit [Ping timeout: 264 seconds]
asen has joined #commonlisp
gigamonkey has joined #commonlisp
attila_lendvai_ has joined #commonlisp
attila_lendvai_ has quit [Remote host closed the connection]
gigamonkey has quit [Ping timeout: 245 seconds]
attila_lendvai_ has joined #commonlisp
s-liao has quit [Quit: Client closed]
s-liao has joined #commonlisp
paule32__ is now known as paule32
amb007 has joined #commonlisp
theothornhill has joined #commonlisp
theothornhill has quit [Remote host closed the connection]
theothor` has joined #commonlisp
attila_lendvai_ has quit [Ping timeout: 260 seconds]
theothor` has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 256 seconds]
occ has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
rain3 has joined #commonlisp
s-liao has joined #commonlisp
asen has quit [Quit: Leaving]
edgar-rft has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp
cage has joined #commonlisp
Bike has joined #commonlisp
attila_lendvai_ has joined #commonlisp
davep has quit [Ping timeout: 240 seconds]
epolanski has quit [Read error: Connection reset by peer]
ullbeking has quit [Ping timeout: 256 seconds]
alanz has quit [Ping timeout: 256 seconds]
gendl has quit [Ping timeout: 268 seconds]
drmeister has quit [Ping timeout: 256 seconds]
IUSR has quit [Ping timeout: 256 seconds]
dbotton has quit [Ping timeout: 256 seconds]
jcowan has quit [Ping timeout: 264 seconds]
griffinmb has quit [Ping timeout: 246 seconds]
Cymew has joined #commonlisp
stylewarning has quit [Ping timeout: 256 seconds]
pl has quit [Ping timeout: 256 seconds]
sgithens has quit [Ping timeout: 250 seconds]
hubvu has quit [Ping timeout: 264 seconds]
d_run has quit [Ping timeout: 264 seconds]
iisi_ has joined #commonlisp
stylewarning has joined #commonlisp
jsatk has quit [Ping timeout: 256 seconds]
iisi has quit [Ping timeout: 256 seconds]
conjunctive has quit [Ping timeout: 256 seconds]
iisi_ is now known as iisi
dbotton has joined #commonlisp
travv0_ has joined #commonlisp
IUSR has joined #commonlisp
griffinmb has joined #commonlisp
jsatk has joined #commonlisp
travv0 has quit [Ping timeout: 264 seconds]
victor has quit [Ping timeout: 264 seconds]
splittist has quit [Ping timeout: 264 seconds]
travv0_ is now known as travv0
hubvu has joined #commonlisp
epolanski has joined #commonlisp
sgithens has joined #commonlisp
alanz has joined #commonlisp
davep has joined #commonlisp
jcowan has joined #commonlisp
victor_ has joined #commonlisp
travv0 has quit [Changing host]
travv0 has joined #commonlisp
ullbeking has joined #commonlisp
gendl has joined #commonlisp
splittist has joined #commonlisp
d_run has joined #commonlisp
conjunctive has joined #commonlisp
drmeister has joined #commonlisp
pl has joined #commonlisp
edgar-rft has quit [Quit: Leaving]
cosimone has joined #commonlisp
theothor` has joined #commonlisp
jealousmonk has joined #commonlisp
CrashTestDummy3 has quit [Quit: Leaving]
Devon has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
epolanski has quit [Quit: Connection closed for inactivity]
gigamonkey has joined #commonlisp
s-liao has quit [Quit: Client closed]
gigamonkey has quit [Ping timeout: 246 seconds]
lexi_sparks has joined #commonlisp
minu99 has joined #commonlisp
sgithens has quit [Ping timeout: 250 seconds]
alanz has quit [Ping timeout: 250 seconds]
iisi has quit [Ping timeout: 260 seconds]
d_run has quit [Ping timeout: 264 seconds]
splittist has quit [Ping timeout: 256 seconds]
travv0 has quit [Ping timeout: 250 seconds]
stylewarning has quit [Ping timeout: 256 seconds]
griffinmb has quit [Ping timeout: 256 seconds]
dbotton has quit [Ping timeout: 250 seconds]
IUSR has quit [Ping timeout: 250 seconds]
pl has quit [Ping timeout: 240 seconds]
drmeister has quit [Ping timeout: 240 seconds]
theothor` has quit [Ping timeout: 268 seconds]
hubvu has quit [Ping timeout: 250 seconds]
victor_ has quit [Ping timeout: 250 seconds]
jcowan has quit [Ping timeout: 264 seconds]
jsatk has quit [Ping timeout: 240 seconds]
ullbeking has quit [Ping timeout: 250 seconds]
conjunctive has quit [Ping timeout: 264 seconds]
gendl has quit [Ping timeout: 264 seconds]
davep has quit [Ping timeout: 250 seconds]
minu99 has quit [Client Quit]
conjunctive has joined #commonlisp
alanz has joined #commonlisp
IUSR has joined #commonlisp
jcowan has joined #commonlisp
tyson2 has joined #commonlisp
travv0 has joined #commonlisp
gendl has joined #commonlisp
drmeister has joined #commonlisp
hubvu has joined #commonlisp
ullbeking has joined #commonlisp
victor_ has joined #commonlisp
sgithens has joined #commonlisp
splittist has joined #commonlisp
iisi has joined #commonlisp
stylewarning has joined #commonlisp
ym has joined #commonlisp
davep has joined #commonlisp
jsatk has joined #commonlisp
griffinmb has joined #commonlisp
dbotton has joined #commonlisp
d_run has joined #commonlisp
pl has joined #commonlisp
lexi_sparks has quit [Ping timeout: 268 seconds]
lexi_sparks has joined #commonlisp
Inline has joined #commonlisp
rotateq has quit [Remote host closed the connection]
lisp123w has quit [Remote host closed the connection]
aeth_ is now known as aeth
CrashTestDummy has joined #commonlisp
rogersm has joined #commonlisp
VincentV` has quit [Read error: Connection reset by peer]
waleee has joined #commonlisp
Guest7488 has joined #commonlisp
waleee has quit [Quit: WeeChat 3.3]
<jcowan>
NotThatRPG: The point of randomizing test order is to help flush out dependencies between tests. So try and find such dependencies.
<NotThatRPG>
jcowan: I'm puzzled by the order being randomized on GitHub, but not on my laptop, though.
<jcowan>
So am I
waleee has joined #commonlisp
<Guest7488>
mfiano: I just update pixels during the propagaion phase. Easier to change single collapsed pixels than redraw the entire image. if you keep track of cells whose entropy has decreased then you can just run through that list and redraw those as well if you want visualize that part as well.
<Guest7488>
I'm curious why you want reflection and rotation in an overlapped model. That's something easier achieved in nonoverlapping tiles.
<etimmons>
NotThatRPG: I'm assuming this is SHOP3? A spot check makes it appear that the tests are run in the same order between GH runs (comparing the two failed logistics-tests, at least)
mfiano has quit [Ping timeout: 268 seconds]
<NotThatRPG>
@etimmons: Yes, that seems right. Unfortunately, there's a big difference between the way I am running the tests locally and on GitHub. Locally, I generally run the full test suite at once which ... seems like it would be *more* likely to yield artifacts than running in c. 36 independent processes.
<etimmons>
NotThatRPG: Do the tests run VAL frequently?
<NotThatRPG>
What I should do is set up a docker container that lines up with what is done on GitHub and see if I can replicate there. But, man, it's really annoying when debugging the tests eats so much time -- tail wagging the dog!
<NotThatRPG>
@etimmons: I will check; I don't recall off-hand if each of the logistics tests is checked by VAL.
gigamonkey has joined #commonlisp
<NotThatRPG>
@etimmons: Just checked -- the logistics tests which are failing don't use VAL: they check results for equality against stored plan s-expressions.
<etimmons>
NotThatRPG: Hmm, there goes that theory. The biggest reason I've seen for SBCL to perform that differently in two similar environments is one has `ulimit -n` set really high, causing run-program to slow down significantly.
theothor` has joined #commonlisp
<NotThatRPG>
@etimmons: Actually, this shows that I should have been using VAL, but I'm not going to extend that test set until I figure this out.
theothor` has quit [Remote host closed the connection]
<NotThatRPG>
Another confound is that I split the logistics tests into two tests, and now they pass, but now a *different* test times out (openstacks). Curiouser and curiouser
theothornhill has joined #commonlisp
ad-absurdum has joined #commonlisp
<NotThatRPG>
The split tests finish in about 2 minutes each, where before the combined tests would time out after six hours!
<gigamonkey>
symbol-value is looking for the globally bound value of the symbol a. I suspect you're hoping to get the value of the local parameter maybe?
<Bike>
eval-parameters is a macro. you probably don't want to quote its argument.
<gpiero>
gigamonkey: yeah, exactly
<Bike>
the arguments to myfun are lexical variables. they can't be accessed with symbol-value.
<gpiero>
@Bike: suspected this, there's a way around?
<Bike>
I'm not sure what output you want here exactly. What do you expect (eval-parameters (a b c)) to return?
<gpiero>
something like ((a . 1) (c .3))
<Bike>
but with strings?
<gpiero>
yeah, sorry
<Bike>
seems like (("A" . "1") ("B" . "NIL") ("C" . "3")), is that right?
<gpiero>
"B" should be omitted because the value is nil
<gpiero>
so: (("A" . "1") ("C" . "3"))
<Bike>
(defmacro eval-parameters (&rest symbols) `(append ,@(loop for symbol in symbols for sname = (write-to-string symbol) collect `(let ((value ,symbol)) (if value (list (cons ,sname (write-to-string value))) nil)))))
<Bike>
(let ((a 1) (b nil) (c 3)) (eval-parameters a b c)) => (("A" . 1") ("C" . "3"))
<Bike>
why do you want to do this, exactly?
<pjb>
gpiero: there's a way around, but why don't you just pass the value of the lexical variable to the function?
<gpiero>
@Bike: think so... many thanks, going to understand your solution, will take a while
splatt9990 has quit [Remote host closed the connection]
ec has joined #commonlisp
splatt99` has joined #commonlisp
chris` has joined #commonlisp
chris` has left #commonlisp [#commonlisp]
splatt99` has quit [Client Quit]
johnjay has joined #commonlisp
Cymew has quit [Ping timeout: 256 seconds]
edgar-rft has joined #commonlisp
notzmv has joined #commonlisp
X-Scale` has joined #commonlisp
X-Scale has quit [Ping timeout: 246 seconds]
X-Scale` is now known as X-Scale
didi has joined #commonlisp
<didi>
Can an object inside a vector, but beyond fill-pointer, be garbage collected?
<_death>
no
<didi>
Thanks.
<_death>
the element is still there, but it's not active
* didi
nods
johnjay has quit [Ping timeout: 245 seconds]
<didi>
I actually want it to be GCed, so I'll set the position to nil.
johnjay has joined #commonlisp
tfeb has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<NotThatRPG>
@etimmons: I should probably figure out how to make a core image and avoid the multiple compilations, and maybe that would help. But I'm boggled by the GitHub runner seeming to just halt arbitrarily like this.
didi has left #commonlisp [O bella ciao bella ciao bella ciao, ciao, ciao.]
johnjay has quit [Remote host closed the connection]
Jing has quit [Remote host closed the connection]
Jing has joined #commonlisp
paule32 has left #commonlisp [Leaving]
tfeb has quit [Quit: died]
gigamonkey has joined #commonlisp
gigamonkey has quit [Ping timeout: 246 seconds]
ec has quit [Remote host closed the connection]
gigamonkey has joined #commonlisp
ec has joined #commonlisp
theothornhill has joined #commonlisp
Oladon has joined #commonlisp
gigamonkey has quit [Ping timeout: 250 seconds]
tyson2 has joined #commonlisp
davep has quit [Quit: Connection closed for inactivity]
alvaro121 has joined #commonlisp
holycow has quit [Quit: leaving]
kadir has joined #commonlisp
kadir has left #commonlisp [#commonlisp]
theothornhill has quit [Ping timeout: 250 seconds]
kadir has joined #commonlisp
gigamonkey has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
rain3 has quit [Ping timeout: 260 seconds]
theothornhill has joined #commonlisp
Inline has quit [Quit: Leaving]
ym has quit [Ping timeout: 264 seconds]
gigamonkey has quit [Ping timeout: 256 seconds]
theothornhill has quit [Ping timeout: 268 seconds]
akoana has joined #commonlisp
VincentVega has joined #commonlisp
theothornhill has joined #commonlisp
gigamonkey has joined #commonlisp
theothornhill has quit [Ping timeout: 260 seconds]
theothornhill has joined #commonlisp
gigamonkey has quit [Remote host closed the connection]
gigamonkey has joined #commonlisp
gigamonkey has quit [Ping timeout: 256 seconds]
gigamonkey has joined #commonlisp
VincentVega has quit [Remote host closed the connection]
gaqwas has joined #commonlisp
splatt9990 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
alvaro121 has quit [Ping timeout: 256 seconds]
kadir has left #commonlisp [goodnight]
aartaka has quit [Ping timeout: 268 seconds]
Catie has quit [Ping timeout: 264 seconds]
pve has quit [Quit: leaving]
Catie has joined #commonlisp
aartaka has joined #commonlisp
<etimmons>
NotThatRPG: Indeed. Kind of reminds me of our occasional issue with CCL on ASDF's CI.
Guest7488 has quit [Quit: Connection closed]
<NotThatRPG>
@etimmons: Hm. Yes.
<etimmons>
NotThatRPG: Not sure if you've had a chance to peek at them yet, but I found some "fun" bugs with ASDF's self upgrade. Along the way I stumbled into some oddities in Clasp's ASDF configuration as well... Wouldn't have found the Clasp issues were it not for the CI.
aartaka has quit [Ping timeout: 268 seconds]
<NotThatRPG>
I'm afraid I'm pretty badly behind on ASDF work recently.
<NotThatRPG>
Getting back to it, but ... drat, GitHub Actions are eating my day.