@terrorjack@functional.cafe avatar

terrorjack

@terrorjack@functional.cafe

This profile is from a federated server and may be incomplete. Browse more on the original instance.

terrorjack, to random
@terrorjack@functional.cafe avatar

this might be the first haskell program in the world that natively runs on arm64 windows

terrorjack, to random
@terrorjack@functional.cafe avatar

i guess formally breaking up with only real friend irl on a sleep deprived day might not be the best way to celebrate a birthday

terrorjack, to random
@terrorjack@functional.cafe avatar

when i was a kid i lived in a boarding school and all I wanted those days was more meat on my plate. welp, the monkey's paw has curled a bit

terrorjack, to random
@terrorjack@functional.cafe avatar

i've just finished 3 body problem (netflix adaption) and as someone who read the original novel series in chinese, i enjoy most parts of the show. a few scenes that i like or dislike (spoiler alert)

terrorjack, to random
@terrorjack@functional.cafe avatar

for the past few days i've been adding asan support to rts. motivation: the rts is a c monolith that does complex memory management, segfaults are very rare but they do occur sometimes as people reach for help in issue tracker and matrix channel. so i'm really hoping the rts development workflow can be backed by sanitizers and fuzzers to make this monolith more rock solid than it currently is.

terrorjack, to random
@terrorjack@functional.cafe avatar

have been discussing game engine and server and ecs stuff with homie after our self hosted palserver crashed for a second time in a day. and then he showed me a siggraph23 paper that implements an ecs in a gpu for a game backend...with a repo i starred long ago but never bothered to take a closer look

terrorjack, to random
@terrorjack@functional.cafe avatar

configuring nixos-wsl from a fresh install to my desired state is like playing dark souls. a bit harder admittedly, but it's for work and done in my working hour so i'm fine with that

terrorjack, to haskell
@terrorjack@functional.cafe avatar

one aspect still sucks is build parallelism:

  1. vanilla cabal builds are coarse grained and have component level build dependency

  2. cabal/ghc has multiple home units now but that's only for repl for the time being

  3. cabal/ghc has semaphores now so multiple ghc --make -jsem processes can share cpu cores without oversubscribing. which is nicer, but not nice enough

  4. semaphore format is home brew and not something more standard like make jobserver. hard to fit in external build systems

  5. external build systems resort to using oneshot mode instead of make mode, so one ghc invocation produces one .hi .o pair, and a fair amount of cpu cycles is wasted compared to make mode due to repeatedly building context that could have been shared

  6. more importantly, once .hi of upstream module is emitted, before ghc -c exits, downstream module should queue for compilation immediately. but this is tricky to implement and often omitted

  7. ironically the wasted cpu cycles in ghc oneshot mode is often compensated by increased parallelism. because external build systems parse cabal metadata but breaks cabal component level dependency wall

  8. but now there's a thing called cabal custom setup and now you need to resort to actually respecting Setup.hs for those packages and they can easily become bottlenecks of a build

  9. the people equipped with knowledge to fix the situation thoroughly have tons of more important issues on their plate

terrorjack, to haskell
@terrorjack@functional.cafe avatar

ok. sparks is indeed a nice way to get work stealing nested parallelism for free in , as long as you work with spark# directly and don't use par, pseq or anything built upon these combinators

terrorjack, to random
@terrorjack@functional.cafe avatar

seems to compile with ghc wasm backend with just a bit of modification (remove custom setup & gitrev)! i'm not familiar with agda internals, but as long as it only involves file i/o and doesn't need to spawn processes to do real work, then in principle it shouldn't be hard to get a fully functional agda in browser working :)

terrorjack, to random
@terrorjack@functional.cafe avatar

hmm, someone worked on a parallel quickcheck (paper accepted for ifl): https://github.com/Rewbert/quickcheck

terrorjack, to random
@terrorjack@functional.cafe avatar

sisyphus was just bumping llvm once per hour and fixing the breakages all along

terrorjack, to random
@terrorjack@functional.cafe avatar

my next c project will be clang exclusive, solely for the musttail attribute

terrorjack, to random
@terrorjack@functional.cafe avatar

motivated by fosdem rr & gdb talks: my personal guess is they snapshot process state pre/post syscalls so to handle side effects. if this is true, this kind of reverse debugging should ideally be implemented for wasm32-wasi instead, because with wasi you have a really small set of well-defined side effects, and you can also snapshot the vfs in addition to linear memory

terrorjack, to random
@terrorjack@functional.cafe avatar

evil little trick learned from fosdem: to debug systemd, you could use a shell script as stub init script that spawns gdb server to debug itself, then execs into systemd

terrorjack, to random
@terrorjack@functional.cafe avatar

after landing jsffi for ghc wasm backend, next thing i'll work on is template haskell support. and after that, threaded rts. yes, it'll be possible to run a haskell app in your browser that eats all your cpu cores (for a better purpose than crypto stuff, i personally hope)

terrorjack, to random
@terrorjack@functional.cafe avatar

if people want "apt install" experience with nix, instead of trying to force feed "declarative" or "reproducible" down their throat, how about giving them an actual cli that they can do "nix install" in the same nix shell and have the changes reflected in the nix file. and nope, you know i'm not talking about "nix profile install"

terrorjack, to random zh-CN
@terrorjack@functional.cafe avatar

terrorjack, to random
@terrorjack@functional.cafe avatar

i thought the anime/game industry is big enough for jobs that specialize in designing non-existent uis to exist? will i starve if i start a consultancy that design non existent cool programming languages that's never meant to be run

terrorjack, to random
@terrorjack@functional.cafe avatar

need an sncf ticket price scraper, no kidding

terrorjack, to random
@terrorjack@functional.cafe avatar

added a few popl'24 papers to my rarely shrinking read later list. if i have to pick a single one, that term generator thing looks really useful

terrorjack, to random
@terrorjack@functional.cafe avatar

my ai-dar beeps more and more frequently these days when browsing content in chinese internet walled gardens. in the past the main source of fun is guessing what snake oil are they trying to sell (insurance? financial product? etc). that fun has declined quite a bit and finding interesting content is now like mining gold in a copper mine

terrorjack, to random
@terrorjack@functional.cafe avatar

> 2028: humans are the currency used by robots, they treat us nicely so we don't deprecate in value. Human capital has a new meaning.

excellent writing prompt in a /r/singularity comment

terrorjack, to random
@terrorjack@functional.cafe avatar

it's funny to ask chatgpt a question and watch it spit out a latex formula, "analyzing" for a while, and "oops why it output 100% probability, doesn't make sense, let's try another formula" (it's 0 according to common sense), repeat a few times and then give up

terrorjack, to random
@terrorjack@functional.cafe avatar

you seem to be shaking the phone in frustration. would you like to open the bug report screen?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • khanakhh
  • kavyap
  • thenastyranch
  • everett
  • tacticalgear
  • rosin
  • Durango
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • InstantRegret
  • Youngstown
  • slotface
  • megavids
  • ethstaker
  • ngwrru68w68
  • cisconetworking
  • modclub
  • tester
  • osvaldo12
  • cubers
  • GTA5RPClips
  • normalnudes
  • Leos
  • provamag3
  • anitta
  • lostlight
  • All magazines