IRC channel logs


back to list of logs

<n2>Anyone hanging out on this channel instead of spend time with their families? :D
<wleslie>I love the western assumption that everyone else only spends time with their families on holidays (:
<n2>How did you imply that from what I said, though?
<wleslie>it seems to be a common sentiment expressed to me; I work through the holidays because literally any other time would be better for spending time with the family
<n2>I was wondering what kind of exercise would be good to understand the power of Lisp.
<n2>Beginner's exercise, that is.
<wleslie>if the best way to get to really know a city is to live and work in it; maybe you could start by scratching an itch?
<n2>Yeahh, but I couldn't think of anything.
<n2>NodeJS usually is enough for all my needs, so I really don't know.
<n2>How to Design Programs seems to be a good read, found on
<n2>Oh, I know. Maybe I'll implement a game of Sokoban.
<n2>Btw is Scheme "stateless" like Haskell?
<n2>Or does it support non-constant variables?
<wleslie>scheme has first-class state - pairs and vectors are mutable in guile scheme, for example.
<mark_weaver>n2: scheme has good support for purely-functional style, and GNU Guix is almost entirely written in that style, but it also supports stateful programming.
<n2>wleslie, mark_weaver: Gotcha, thanks.
<n2>Btw I was thinking of installing Guix SD on my Raspberry Pi, but I'm not sure if it's possible.
<n2>Does anyone know?
<wleslie>hydra is full of armhf builds, so I'd think so
<amz3>Happy new year!
<davexunit>happy gnu year!
<darthlukan>davexunit: Happy GNU Year to you too :)
<davexunit>ACTION attempts to debug the sizeof issue in guile master
<davexunit>not sure where to go yet
<davexunit>for a first step
<davexunit>ACTION finally got Sly working with guile master
<civodul>davexunit: \\o/
<civodul>davexunit: at work, a prof (who doesn't really hack all day long...) hacked up a small Mario-style game in SDL + C
<civodul>i was very impressed
<civodul>i wonder how much work it would be to do that in Sly + Guile
<davexunit>civodul: not too hard, I think. I'm curious how much functionality this prof's game had.
<davexunit>I'm working on a game that has lots of moving objects, which in a purely functional world means a lot of allocation. I'd like to find some tricks for reducing allocation.
<davexunit>like using persistent hashes for some things instead of structs
<davexunit>once there's ~1000 objects on screen, the game runs at 60FPS but every 5 seconds or so drops to ~20 and stutters pretty hard while the GC runs
<civodul>oh, i see
<civodul>the game had basic functionality: you could move on the platform, jump, put bombs, etc.
<davexunit>civodul: ooh, fun
<davexunit>I imagine there's some decent way that I can use purely functional data structures without slamming the GC too hard
<madsy>I tried cross-compiling guile again yesterday, and I ran into this problem:
<madsy>Is that build path broken? That is, the path taken if you don't have <sys/mman.h> ?
<madsy>It happens when building libguile/loader.c
<paroneayea>davexunit: if you figure out good techniques there, I'll be interested in hearing about it!
***micro`_ is now known as micro`
<rekado>davexunit: are you familiar with Okasaki's "Purely Functional Data Structures"?
<davexunit>rekado: yes
<davexunit>I need to try out wingo's functional hash implementation
<davexunit>and see if that works out better than structs for me
<davexunit>not sure if it will
<davexunit>my game is a lot of changing a single struct field every frame: the position of the object.
<davexunit>so it would be nice to have a structure that could share as much as possible with previous versions
<civodul>davexunit: it's a 3-element struct?
<civodul>ah well, doesn't really matter
<davexunit>civodul: my game objects vary in size
<davexunit>but on a typical update, only a field or two is being updated
<davexunit>maybe it's neglible, but perhaps sharing that unchanged data would reduce GC pressure
<civodul>maybe you could store position separately
<civodul>and have a mapping from object to position, somehow
<civodul>so that the "bigger" object would remain unchanged
<davexunit>that's a good idea
<davexunit>ACTION quietly makes a bug-fix release of guile-sdl2
***karswell` is now known as karswell