let it leave me like a long breath

let it dissipate or fade in the background

haskell platform wrangling

Profile

xax: purple-orange {11/3 knotwork star, pointed down (Default)
howling howling howling

Nav

  • Recent Entries
  • Archive
  • Reading
  • Tags
  • Memories
  • Profile

Tags

  • art - 2 uses
  • asteroid garden - 4 uses
  • code - 19 uses
  • demos - 1 use
  • dreams - 5 uses
  • ff7 fangame - 23 uses
  • fic prompts - 13 uses
  • gamedev challenge - 82 uses
  • hell game - 76 uses
  • nanowrimo - 11 uses
  • plants - 9 uses
  • process - 52 uses
  • programming - 51 uses
  • screenshots - 5 uses
  • writing log - 83 uses

May 2025

S M T W T F S
    123
45678 910
1112131415 1617
18192021222324
25262728293031
  • Jul. 18th, 2018
  • xax: purple-orange {11/3 knotwork star, pointed down (Default)
    [personal profile] xax
    Tags:
    • programming
    posted @ 09:02 pm

    haskell platform wrangling

    oof so i tried updating my version of the haskell platform

    or rather, i was to get back into doing 3d rendering in haskell, and that means using a rendering library. lambdacube is out because of its whole busted uniforms thing. for a while i was like "well it can't be _that_ hard to just roll my own", so i looked at the guts of lambdacube and nope actually it is very complex. like, ultimately comprehensible, but very complex. so before i go that route there's one more rendering library to look at: GPipe. but installing it, oof.

    okay so i've been using a pretty outdated version of the haskell platform. still using ghc version 7.10, which is four years out of date, and a pretty old version of base. so i tried to install gpipe and it was like, your stuff is too old, can't install. that's actually kind of a good sign, because it does mean that this library is newer than four years old. and i was like, well, all my stuff is very old; i should upgrade. so i upgrade. except then i still couldn't install gpipe since now my version of base is too new.

    anyway the biggest issue is that in a recent base update they switched Monoid from being freestanding and defining both <> and mempty, now Monoid only defines mempty and expands Semigroup, which defines <>. this is totally reasonable and makes it much easier to use semigroups. but it does break all existing monoid instances, since now you also need a semigroup instance. so i had to unpack the gpipe library files and tweak their dependencies and add in a few new lines about semigroup instances, and it seems like that's all. i got the hello world program to run, so, that's a start. really hoping i'll be able to easily shift over all my lambdacube code to gpipe and see if i can then actually set some uniforms so i can do things like 'scroll' or 'rotate the camera', which are pretty critical to doing any games stuff.

    but also, upgrading my haskell platform also broke all my existing cabal sandboxes, and also now i'm gonna have to pull that same unpack-and-tweak trick for the hell game dev environment because some of its dependencies are outdated and impossible to satisfy now. that'sssss gonna be fun upgrading on the production server.

    • Previous Entry
    • Add Memory
    • Share This Entry
    • Next Entry
    • Reply
Page generated Feb. 6th, 2026 08:13 am
Powered by Dreamwidth Studios

Style Credit

  • Style: (No Theme) for vertical