On Mon, Jan 16, 2023 at 12:55 PM tim Rowledge <tim@rowledge.org> wrote:
 
> On 2023-01-16, at 12:00 PM, karl ramberg <karlramberg@gmail.com> wrote:
>
> Very cool. I would not volunteer to refactor that :-D
>
> It's tricky to get high performance GameOfLife in Squeak.

Have you never seen the BitBLT based version Dan Ingalls wrote a gazillion years ago? It used to be in the Squeak image, or at least I feel pretty sure it was.

Oh, wait! It was written up in the Byte81 issue, so see https://archive.org/details/byte-magazine-1981-08/page/n181/mode/2up?view=theater and the following pages.

That still computes every cell in every generation, even if pretty efficiently.

Simulations of this magnitude use the HashLife algorithm which memoizes groups of cells in quad trees and can skip multiple generations ahead. Don't think I've seen that implemented in Smalltalk.

A while ago I fell down a rabbit hole exploring how the OTCA Metapixel life cell worked (the Lisp CPU gates and wires are constructed from cells using non-traditional life rules, implemented on that meta cell). 

Meta life inception:
https://www.youtube.com/watch?v=4lO0iZDzzXk

Fascinating.

Vanessa