2025/01/03

Newest at the top

2025-01-04 00:44:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-04 00:42:55 +0100notzmv(~umar@user/notzmv) (Ping timeout: 265 seconds)
2025-01-04 00:41:19 +0100foul_owl(~kerry@185.203.219.80) foul_owl
2025-01-04 00:33:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-04 00:29:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-04 00:28:07 +0100Jeanne-Kamikaze(~Jeanne-Ka@79.127.217.40) Jeanne-Kamikaze
2025-01-04 00:26:14 +0100Jeanne-Kamikaze(~Jeanne-Ka@79.127.217.40) (Remote host closed the connection)
2025-01-04 00:25:58 +0100Jeanne-Kamikaze(~Jeanne-Ka@79.127.217.40) Jeanne-Kamikaze
2025-01-04 00:23:26 +0100ChanServ+v haskellbridge
2025-01-04 00:23:26 +0100haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) hackager
2025-01-04 00:20:31 +0100haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2025-01-04 00:18:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2025-01-04 00:18:32 +0100xal(~xal@mx1.xal.systems) xal
2025-01-04 00:17:57 +0100xal(~xal@mx1.xal.systems) (Quit: bye)
2025-01-04 00:15:52 +0100foul_owl(~kerry@193.42.0.124) (Ping timeout: 252 seconds)
2025-01-04 00:14:46 +0100michalz(~michalz@185.246.207.201) (Remote host closed the connection)
2025-01-04 00:13:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-04 00:03:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-04 00:02:21 +0100 <haskellbridge> <magic_rb> The exists function does nothing else, it takes a Int, accesses the vectors from behind a STRef and then returns a Bool
2025-01-04 00:01:41 +0100 <monochrom> or rather, s/there should not be/that should not be the cause of/
2025-01-04 00:01:40 +0100 <haskellbridge> <magic_rb> Which adds up
2025-01-04 00:01:36 +0100 <haskellbridge> <magic_rb> Yes but im pulling out the Int from it, doing some compressions and then returning a Bool to the calling code saying "yep exists" and doing that hundreds of times per frame
2025-01-04 00:00:21 +0100 <monochrom> If you have an unboxed vector and it's mutable and you are in ST/IO modifying it in-place, there should not be that much allocation, at least not allocation a whole new copy of the whole vector.
2025-01-03 23:59:11 +0100 <haskellbridge> <magic_rb> Itll be syntactic hell but ive never done that so i wanna try
2025-01-03 23:59:00 +0100 <haskellbridge> <magic_rb> Ill try to avoid boxing in exists next, working with unboxed types
2025-01-03 23:58:44 +0100 <haskellbridge> <magic_rb> Right i dont need that, or rather dont want that
2025-01-03 23:58:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-03 23:58:12 +0100 <monochrom> boxed is the only one that supports laziness.
2025-01-03 23:57:51 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2025-01-03 23:57:47 +0100 <monochrom> storable and unboxed are pretty much on par. storable supports user-defined types more easily.
2025-01-03 23:57:12 +0100 <haskellbridge> <magic_rb> for rendering code or something
2025-01-03 23:57:05 +0100 <haskellbridge> <magic_rb> maybe doing storable and reading the pointers? i was hoping to have the sparseset accessible from both Haskell and native code
2025-01-03 23:56:44 +0100 <haskellbridge> <magic_rb> but exists is a really frequently used function so it needs to be very snappy
2025-01-03 23:56:28 +0100 <haskellbridge> <magic_rb> yeah i know
2025-01-03 23:55:51 +0100 <monochrom> boxed takes more memory than unboxed, namely, one more pointer.
2025-01-03 23:54:17 +0100 <haskellbridge> <magic_rb> maybe if i can work with the unboxed values directly? though thats extremely clumsy
2025-01-03 23:52:04 +0100 <haskellbridge> <magic_rb> might be better to make the metadata vectors boxed? hm
2025-01-03 23:51:40 +0100 <haskellbridge> <magic_rb> damn
2025-01-03 23:51:38 +0100 <haskellbridge> <magic_rb> it has to box
2025-01-03 23:51:36 +0100 <haskellbridge> <magic_rb> all the vectors are unbox, right thats why the allocs
2025-01-03 23:51:31 +0100vanishingideal(~vanishing@user/vanishingideal) (Remote host closed the connection)
2025-01-03 23:51:03 +0100 <haskellbridge> <magic_rb> still
2025-01-03 23:51:01 +0100 <haskellbridge> <magic_rb> and somehow overhead in exists
2025-01-03 23:50:47 +0100 <haskellbridge> <magic_rb> which suggests that there is overhead from PrimMonad
2025-01-03 23:50:37 +0100 <haskellbridge> <magic_rb> i removed some of the inline pragmas, around exists and got https://paste.tomsmeding.com/lA8DAs9V
2025-01-03 23:47:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-03 23:47:05 +0100 <haskellbridge> <magic_rb> maybe i ought to move into games, though this is a general "why is my haskell code horribly slow" question :)
2025-01-03 23:46:21 +0100 <lambdabot> Done.
2025-01-03 23:46:07 +0100 <sm> @where+ games https://joyful.com/Haskell+Games
2025-01-03 23:44:03 +0100 <haskellbridge> <magic_rb> right and my physics system writes even positions that are equal so there is constant churn