Newest at the top
2025-01-04 00:44:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-04 00:42:55 +0100 | notzmv | (~umar@user/notzmv) (Ping timeout: 265 seconds) |
2025-01-04 00:41:19 +0100 | foul_owl | (~kerry@185.203.219.80) foul_owl |
2025-01-04 00:33:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2025-01-04 00:29:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-04 00:28:07 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@79.127.217.40) Jeanne-Kamikaze |
2025-01-04 00:26:14 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@79.127.217.40) (Remote host closed the connection) |
2025-01-04 00:25:58 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@79.127.217.40) Jeanne-Kamikaze |
2025-01-04 00:23:26 +0100 | ChanServ | +v haskellbridge |
2025-01-04 00:23:26 +0100 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) hackager |
2025-01-04 00:20:31 +0100 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2025-01-04 00:18:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2025-01-04 00:18:32 +0100 | xal | (~xal@mx1.xal.systems) xal |
2025-01-04 00:17:57 +0100 | xal | (~xal@mx1.xal.systems) (Quit: bye) |
2025-01-04 00:15:52 +0100 | foul_owl | (~kerry@193.42.0.124) (Ping timeout: 252 seconds) |
2025-01-04 00:14:46 +0100 | michalz | (~michalz@185.246.207.201) (Remote host closed the connection) |
2025-01-04 00:13:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-04 00:03:06 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | Smiles | (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 +0100 | vanishingideal | (~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 +0100 | merijn | (~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 |