2022-01-25 00:02:15 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 00:03:18 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2022-01-25 00:05:36 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-01-25 00:05:49 +0100 | califax | (~califax@user/califx) |
2022-01-25 00:07:17 +0100 | haskellberryfinn | (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2022-01-25 00:09:14 +0100 | neceve | (~quassel@2.26.93.228) (Ping timeout: 268 seconds) |
2022-01-25 00:12:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-25 00:14:14 +0100 | hololeap | (~hololeap@user/hololeap) |
2022-01-25 00:17:15 +0100 | alp | (~alp@user/alp) (Ping timeout: 268 seconds) |
2022-01-25 00:18:52 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 00:19:05 +0100 | <Axman6> | I've wondered for a while if there's a way to change foldl (the library) so that the step function can be replaced - there are many folds which are implemented by passing around some state which at some point becomes redundant, for example drop (drop :: Natural -> Fold a b -> Fold a b) continues to pass around a Natural after finishing counting down - it would be nice if it could just swap its step function and state to the one it's wrapping |
2022-01-25 00:19:39 +0100 | <Axman6> | maybe that would break a lot of the benefits of the composability of foldl |
2022-01-25 00:20:32 +0100 | iteratee | (~kyle@162.218.222.107) |
2022-01-25 00:20:42 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 00:21:34 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 00:21:34 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 00:21:34 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 00:24:02 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds) |
2022-01-25 00:24:07 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2022-01-25 00:24:24 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 00:26:00 +0100 | <Axman6> | The way I'd been thinking about it was more in terms of stream fucion's Step type data Step s a = Yield a s | Skip s | Done. The change I was thinking of would be something like: data Step a s b = Yield b s | Skip s | Done | Update (Fold a b) |
2022-01-25 00:26:04 +0100 | <Axman6> | I should play with this... |
2022-01-25 00:26:30 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-01-25 00:26:46 +0100 | geekosaur | wonders how long before you've reinvented conduit or pipes |
2022-01-25 00:28:30 +0100 | lispy | (~lispy4@84.69.59.93) |
2022-01-25 00:30:22 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-01-25 00:30:26 +0100 | <Axman6> | well, there's a FoldM too, so I guess that's not too far off |
2022-01-25 00:31:07 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) (Ping timeout: 256 seconds) |
2022-01-25 00:33:10 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Quit: WeeChat 3.4) |
2022-01-25 00:33:36 +0100 | chomwitt | (~chomwitt@2a02:587:dc06:be00:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2022-01-25 00:33:38 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 00:34:31 +0100 | cosimone | (~user@93-34-132-251.ip49.fastwebnet.it) (Ping timeout: 256 seconds) |
2022-01-25 00:36:16 +0100 | <Axman6> | I guess you could fake it by using the state variable which contains the function to call, which can be updated |
2022-01-25 00:36:22 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 250 seconds) |
2022-01-25 00:40:05 +0100 | <EvanR> | if the state becomes useless and should be dropped, why is there an exposed s type variable |
2022-01-25 00:41:15 +0100 | <EvanR> | this is reminding me of KSP / rocketry where you need stages to begin then you need to discard at some point |
2022-01-25 00:41:25 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 00:42:19 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 00:43:51 +0100 | <monochrom> | I thought Haskell was not rocket science >:) |
2022-01-25 00:44:37 +0100 | <monochrom> | There is an exposed type variable, but you still can't change it in the middle. |
2022-01-25 00:44:54 +0100 | <EvanR> | I mean why is it there in the first place |
2022-01-25 00:45:15 +0100 | <EvanR> | and not existential, or just not in the type |
2022-01-25 00:45:40 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 00:46:02 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-01-25 00:46:33 +0100 | <EvanR> | imagine an OOP type system where each class must declare the type of its internal state |
2022-01-25 00:47:00 +0100 | <EvanR> | i.e. why is it anyone's business |
2022-01-25 00:53:05 +0100 | <monochrom> | If the Fold type exposes s, then the programmer who uses Fold has the flexibility of controlling in which scope s is known, outside which scope s is unknown. I.e., where to put the existential quantifier. |
2022-01-25 00:53:38 +0100 | <hpc> | s isn't really the state type |
2022-01-25 00:53:46 +0100 | <hpc> | if you go all the way down, it ends up being a phantom type |
2022-01-25 00:53:56 +0100 | <EvanR> | tricky |
2022-01-25 00:54:00 +0100 | <hpc> | maybe it's better to say s is the scope of the statefulness |
2022-01-25 00:55:00 +0100 | <hpc> | with RealWorld meaning global state |
2022-01-25 00:55:04 +0100 | <monochrom> | In OOP, I thought I had to declare the types of fields in my class, too. Here: class Complex { private double realpart; private double imagpart; } |
2022-01-25 00:55:56 +0100 | <hpc> | "state" and "scope" both start with s, and s is used in "State s a" too, so that's a bit unfortunate |
2022-01-25 00:55:59 +0100 | <hpc> | but there you go |
2022-01-25 00:56:05 +0100 | <EvanR> | but is a circle in the complex plane also an ellipse in the complex plane |
2022-01-25 00:56:27 +0100 | <monochrom> | haha |
2022-01-25 00:57:00 +0100 | <hpc> | it's actually just a rectangle in a hyperbolic complex geometry :D |
2022-01-25 00:57:06 +0100 | <hpc> | there are no circles |
2022-01-25 00:58:41 +0100 | <monochrom> | Oh yeah let me relate a story. |
2022-01-25 00:59:08 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Changing host) |
2022-01-25 00:59:08 +0100 | vgtw | (~vgtw@user/vgtw) |
2022-01-25 01:00:23 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cceb:625b:cb9d:590d) (Remote host closed the connection) |
2022-01-25 01:00:26 +0100 | <monochrom> | A computer graphics prof was explaining to a math prof the fact that raytracing a sphere and raytracing a cube require different algorithms. |
2022-01-25 01:00:47 +0100 | <hpc> | this is going to be good |
2022-01-25 01:00:55 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cceb:625b:cb9d:590d) |
2022-01-25 01:01:02 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-01-25 01:01:12 +0100 | <monochrom> | The math prof said: But a cube is a sphere under the infinity norm! |
2022-01-25 01:01:48 +0100 | <monochrom> | I cried at both the beauty and the irrelevance of that. |
2022-01-25 01:02:18 +0100 | <hpc> | someday i hope to be that useless |
2022-01-25 01:02:41 +0100 | <EvanR> | google filament has some nice looking pics in its nice looking docs |
2022-01-25 01:02:53 +0100 | <EvanR> | including spheres |
2022-01-25 01:03:28 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2022-01-25 01:03:56 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 01:05:16 +0100 | lispy | (~lispy4@84.69.59.93) (Quit: Leaving) |
2022-01-25 01:05:32 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-25 01:06:21 +0100 | <EvanR> | realtalk for a second, how the F does Printf work |
2022-01-25 01:06:37 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4) |
2022-01-25 01:07:17 +0100 | <monochrom> | The f in printf stands for "format string" <duck> |
2022-01-25 01:07:17 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 01:07:56 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 01:08:47 +0100 | <hpc> | EvanR: Printf's instances let you write arbitrarily long chains of a -> b -> c -> ... -> IO () |
2022-01-25 01:08:54 +0100 | <hpc> | (or -> String) |
2022-01-25 01:09:11 +0100 | <hpc> | and then the format string just has to have placeholders for a, b, c, etc |
2022-01-25 01:09:39 +0100 | <geekosaur> | yeh, PrintfType is pretty freaky |
2022-01-25 01:09:42 +0100 | <hpc> | the type determines what format strings work, instead of like in C where the format string would determine if the parameters are valid |
2022-01-25 01:10:02 +0100 | <EvanR> | so a bad format string waits until runtime to fail? |
2022-01-25 01:10:06 +0100 | <hpc> | yes |
2022-01-25 01:10:08 +0100 | <EvanR> | ok |
2022-01-25 01:10:13 +0100 | <hpc> | same as in C |
2022-01-25 01:10:17 +0100 | <geekosaur> | there's at least one compile-time printf, though |
2022-01-25 01:10:21 +0100 | <hpc> | the class just makes it variadic |
2022-01-25 01:10:39 +0100 | <EvanR> | in C there is a warning xd |
2022-01-25 01:10:57 +0100 | <hpc> | only for static format strings |
2022-01-25 01:11:10 +0100 | <EvanR> | which is all there is right. right? |
2022-01-25 01:11:13 +0100 | <geekosaur> | there's also a warning if your format string isn't static :) |
2022-01-25 01:11:15 +0100 | <hpc> | because libc is... libc, compilers are aware of it like linters are aware of indentation |
2022-01-25 01:11:24 +0100 | yassernasc | (~yassernas@2804:29b8:505a:f33d:65bb:7e4c:2cd0:965) (Remote host closed the connection) |
2022-01-25 01:11:42 +0100 | <hpc> | but it's not something you can count on, and you can't write a printf that has the same level of checking |
2022-01-25 01:11:52 +0100 | <hpc> | whereas you can write Printf yourself |
2022-01-25 01:12:37 +0100 | <hpc> | in a language like idris, you could fully validate the format string within the type checker |
2022-01-25 01:12:58 +0100 | <hpc> | or maybe with a format string lifted to a type you can do it in haskell too |
2022-01-25 01:13:53 +0100 | <geekosaur> | https://hackage.haskell.org/package/typelits-printf |
2022-01-25 01:14:30 +0100 | img | (~img@user/img) |
2022-01-25 01:15:50 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-01-25 01:16:59 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2022-01-25 01:18:50 +0100 | shriekingnoise | (~shrieking@201.231.16.156) (Ping timeout: 250 seconds) |
2022-01-25 01:19:17 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2022-01-25 01:19:39 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Ping timeout: 256 seconds) |
2022-01-25 01:19:51 +0100 | <jackdk> | there's also GCC (and probably LLVM) annotations you can attach to functions that say "this function accepts a printf-style format string |
2022-01-25 01:20:18 +0100 | <geekosaur> | right, but you can't define your own format specifiers for e.g. dates |
2022-01-25 01:20:48 +0100 | <hpc> | you also can't define your own format types |
2022-01-25 01:20:59 +0100 | <hpc> | imagine you're writing a code generator of some sort, and you want a format AST |
2022-01-25 01:21:49 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-25 01:22:38 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-01-25 01:22:39 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 01:25:33 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 01:27:30 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-01-25 01:29:56 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 01:34:35 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2022-01-25 01:34:46 +0100 | <Axman6> | EvanR: hpc: in what I was talking about, s is definitely the state type (called x internally in foldl). The reason for Update returing a new Fold is so that the existential s/x inside the Fold can chage |
2022-01-25 01:34:49 +0100 | <Axman6> | change* |
2022-01-25 01:35:16 +0100 | thyriaen | (~thyriaen@dynamic-078-055-124-059.78.55.pool.telefonica.de) (Quit: Leaving) |
2022-01-25 01:35:37 +0100 | td_ | (~td@94.134.91.163) (Ping timeout: 240 seconds) |
2022-01-25 01:36:37 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-01-25 01:37:24 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-25 01:40:05 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-01-25 01:40:29 +0100 | <Axman6> | EvanR: The Step type isn't visible externally to anything, the fold would look like: data Fold a b = forall s. Fold (s -> a -> Step a s b) s (s -> b) |
2022-01-25 01:41:11 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 256 seconds) |
2022-01-25 01:41:41 +0100 | <monochrom> | Oops. What I said of Fold, should be for Step then. |
2022-01-25 01:41:48 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2022-01-25 01:42:12 +0100 | <EvanR> | so if you erase s from that, you get Mealy, I'm guessing |
2022-01-25 01:42:26 +0100 | <EvanR> | where the state could change type or disappear |
2022-01-25 01:42:58 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 268 seconds) |
2022-01-25 01:44:34 +0100 | <Axman6> | and if Step is ever Update, then whatever is executing the fold will just update its step and done functions when executing its loop |
2022-01-25 01:45:02 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2022-01-25 01:46:22 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-25 01:48:19 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 01:49:29 +0100 | <Axman6> | so, drop would look like: drop n (Fold step0 st0 done0) = Fold step n done where step 0 a = Update (Fold step0 (step0 a st0) done0); step n = Skip (n-1); done _ = done0 st0 |
2022-01-25 01:50:54 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2022-01-25 01:50:54 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 01:51:31 +0100 | <Axman6> | one of the wierd things about foldl for me is that it accumulates these potetnially quite large state structures, which can never get smaller, even in cases where there's no useful information, and the composition of folds ends up having to unpack this extra state all the time |
2022-01-25 01:52:15 +0100 | <Axman6> | I think the Done constructor in Step isn't needed actually |
2022-01-25 01:52:46 +0100 | td_ | (~td@muedsl-82-207-238-055.citykom.de) |
2022-01-25 01:53:12 +0100 | <Axman6> | so... I uess the step function really just becomes: (s -> a -> Either (Fold a b) s) |
2022-01-25 01:54:41 +0100 | amk | (~amk@109.255.169.126) (Ping timeout: 268 seconds) |
2022-01-25 01:55:09 +0100 | <EvanR> | so you either continue folding using the same strategy and state, or you 'snap' and switch to an entirely new fold with potentially different state |
2022-01-25 01:55:35 +0100 | amk | (~amk@109.255.169.126) |
2022-01-25 01:55:46 +0100 | <Axman6> | yep |
2022-01-25 01:56:11 +0100 | <EvanR> | so at least that lets the state get smaller |
2022-01-25 01:57:04 +0100 | <Axman6> | yeah exactly, the smaller state is encapsulated in the new Fold |
2022-01-25 01:57:12 +0100 | <Axman6> | I shjould try writing this, I'm curious now |
2022-01-25 01:57:19 +0100 | <Axman6> | I should try writing this, I'm curious now |
2022-01-25 01:57:44 +0100 | tommd | (~tommd@67-42-147-226.ptld.qwest.net) |
2022-01-25 02:01:36 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds) |
2022-01-25 02:01:41 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
2022-01-25 02:04:25 +0100 | jespada | (~jespada@87.74.36.188) (Ping timeout: 256 seconds) |
2022-01-25 02:08:15 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-01-25 02:08:23 +0100 | jespada | (~jespada@87.74.36.188) |
2022-01-25 02:08:28 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 02:08:28 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 02:08:28 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 02:09:01 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 02:11:40 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-01-25 02:12:21 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 02:17:21 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) |
2022-01-25 02:17:47 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-01-25 02:18:04 +0100 | shriekingnoise | (~shrieking@201.231.16.156) |
2022-01-25 02:22:47 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::a2bf) |
2022-01-25 02:28:32 +0100 | notzmv | (~zmv@user/notzmv) |
2022-01-25 02:30:38 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 02:34:31 +0100 | justache | justGhost |
2022-01-25 02:35:03 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 02:37:01 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::b46b) (Remote host closed the connection) |
2022-01-25 02:40:41 +0100 | <Axman6> | hmm, I found a problem with my plan |
2022-01-25 02:42:07 +0100 | <Axman6> | In step 0 a = Left (Fold step0 (step0 x0 a) done0), step0 returns (Either (Fold a b) x) no just x so there might need to be some sort of recursive step function to handle the fact that a step can always return _another_ fold |
2022-01-25 02:42:37 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-01-25 02:44:24 +0100 | <Axman6> | actually, I think this is ok... |
2022-01-25 02:47:47 +0100 | <Axman6> | yeah I think I've made it work |
2022-01-25 02:47:59 +0100 | <Axman6> | and importantly things aren't recursive |
2022-01-25 02:48:45 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
2022-01-25 02:51:03 +0100 | <EvanR> | meanwhile I've so far failed to do something like Printf but with a heterolist |
2022-01-25 02:52:00 +0100 | <EvanR> | (printf carries a list of Strings around, and I'm trying to carry a list of whatevers) |
2022-01-25 02:52:47 +0100 | SwarmCollective | (~joseph@2603-6011-bc02-b600-b296-221b-2190-d11e.res6.spectrum.com) (Remote host closed the connection) |
2022-01-25 02:53:10 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 02:53:10 +0100 | SwarmCollective | (~joseph@2603-6011-bc02-b600-af23-4557-ff2b-bd76.res6.spectrum.com) |
2022-01-25 02:53:11 +0100 | xsperry | (~xs@user/xsperry) (Killed (NickServ (GHOST command used by asdfasf!~xs@cpe-188-129-71-242.dynamic.amis.hr))) |
2022-01-25 02:53:21 +0100 | lispy | (~lispy4@84.69.59.93) |
2022-01-25 02:53:50 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4) |
2022-01-25 02:55:05 +0100 | burnsidesLlama | (~burnsides@dhcp168-037.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-25 02:56:28 +0100 | lionhairdino | (~jacoo@121.131.39.82) |
2022-01-25 02:57:35 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-37-70-24-250-33.dsl.bell.ca) (Ping timeout: 268 seconds) |
2022-01-25 02:57:35 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 02:58:20 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-01-25 02:58:49 +0100 | <Axman6> | The Applicativer instance is pretty hairy... |
2022-01-25 02:58:54 +0100 | <Axman6> | Applicative* |
2022-01-25 02:59:43 +0100 | jackson98 | (~bc8147f2@cerf.good1.com) |
2022-01-25 02:59:52 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::b46b) |
2022-01-25 03:00:17 +0100 | myShoggoth | (~myShoggot@97-120-67-120.ptld.qwest.net) (Ping timeout: 240 seconds) |
2022-01-25 03:00:45 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 03:00:59 +0100 | xsperry | (~xs@user/xsperry) |
2022-01-25 03:04:02 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-139.dsl.bell.ca) |
2022-01-25 03:04:05 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2022-01-25 03:04:15 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2022-01-25 03:05:26 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-01-25 03:07:20 +0100 | pieguy128_ | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-188.dsl.bell.ca) |
2022-01-25 03:08:28 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-139.dsl.bell.ca) (Ping timeout: 250 seconds) |
2022-01-25 03:08:39 +0100 | EsoAlgo | (~EsoAlgo@152.70.142.52) (Ping timeout: 256 seconds) |
2022-01-25 03:10:08 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) |
2022-01-25 03:12:59 +0100 | mmhat | (~mmh@55d400c1.access.ecotel.net) (Ping timeout: 256 seconds) |
2022-01-25 03:13:18 +0100 | <EvanR> | was looking at the code for Auto, which contains many constructors. What an Applicative instance |
2022-01-25 03:13:32 +0100 | <EvanR> | near the end says "-- I give up!" |
2022-01-25 03:14:20 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 03:14:53 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) (Ping timeout: 256 seconds) |
2022-01-25 03:19:07 +0100 | lrngystdlted^ | (~lrngystdl@50-207-160-170-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
2022-01-25 03:19:59 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2022-01-25 03:20:11 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-01-25 03:21:41 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds) |
2022-01-25 03:21:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 03:22:49 +0100 | xff0x | (~xff0x@port-92-193-184-123.dynamic.as20676.net) (Ping timeout: 256 seconds) |
2022-01-25 03:24:31 +0100 | xff0x | (~xff0x@2001:1a81:53ac:af00:3dc0:eeb6:6533:2585) |
2022-01-25 03:25:52 +0100 | mmhat | (~mmh@55d411b0.access.ecotel.net) |
2022-01-25 03:29:54 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2022-01-25 03:32:17 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::a2bf) (Ping timeout: 240 seconds) |
2022-01-25 03:33:36 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 03:33:36 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-01-25 03:34:37 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-01-25 03:35:46 +0100 | tommd | (~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 250 seconds) |
2022-01-25 03:36:41 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-01-25 03:37:38 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-01-25 03:38:27 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 03:39:37 +0100 | tabemann | (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2022-01-25 03:39:39 +0100 | <Axman6> | Annoyingly I have ended with a (non-tail) recursive definition of (<*>) which probably defests the purpose of what I was trying to do, though with proper inlining, in the cases where recusions isn't possible, GHC should be able to remove the recursive cases. |
2022-01-25 03:39:55 +0100 | <jackdk> | Axman6: rewrite in CPS, defunctionalise the continuation, keep going |
2022-01-25 03:40:09 +0100 | <jackdk> | Axman6: https://www.youtube.com/watch?v=wppzFzzD4b8 |
2022-01-25 03:40:57 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 03:41:09 +0100 | tabemann | (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2022-01-25 03:45:07 +0100 | <Axman6> | https://paste.tomsmeding.com/XnGY0kN6 is what I have so far |
2022-01-25 03:46:14 +0100 | <Axman6> | IS there a way to make -ddump-simpl output less noisy? |
2022-01-25 03:47:28 +0100 | <Axman6> | CPS may be useful... |
2022-01-25 03:49:38 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2022-01-25 03:50:02 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
2022-01-25 03:50:20 +0100 | mbuf | (~Shakthi@122.173.231.124) |
2022-01-25 03:50:41 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2022-01-25 03:53:28 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:b4c3:bc35:ccb7:fa58) |
2022-01-25 03:55:57 +0100 | mmhat | (~mmh@55d411b0.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-01-25 03:55:59 +0100 | califax- | (~califax@user/califx) |
2022-01-25 03:59:09 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 04:00:33 +0100 | califax | (~califax@user/califx) (Ping timeout: 276 seconds) |
2022-01-25 04:00:34 +0100 | califax- | califax |
2022-01-25 04:01:37 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-01-25 04:03:30 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 04:07:47 +0100 | razetime | (~quassel@49.207.209.26) |
2022-01-25 04:08:09 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-01-25 04:09:27 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-01-25 04:10:16 +0100 | mmhat | (~mmh@55d41489.access.ecotel.net) |
2022-01-25 04:13:10 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 04:13:56 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-01-25 04:15:36 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-01-25 04:15:36 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-01-25 04:15:36 +0100 | finn_elija | FinnElija |
2022-01-25 04:15:54 +0100 | td_ | (~td@muedsl-82-207-238-055.citykom.de) (Ping timeout: 268 seconds) |
2022-01-25 04:17:13 +0100 | td_ | (~td@muedsl-82-207-238-208.citykom.de) |
2022-01-25 04:17:17 +0100 | vglfr | (~vglfr@46.96.147.122) (Ping timeout: 240 seconds) |
2022-01-25 04:19:53 +0100 | vglfr | (~vglfr@46.96.147.122) |
2022-01-25 04:20:19 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 04:23:09 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Remote host closed the connection) |
2022-01-25 04:23:26 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 04:24:47 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 04:27:47 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 04:35:48 +0100 | myShoggoth | (~myShoggot@97-120-67-120.ptld.qwest.net) |
2022-01-25 04:39:53 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds) |
2022-01-25 04:42:51 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 04:43:16 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 04:44:08 +0100 | <lionhairdino> | :/w |
2022-01-25 04:47:22 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-01-25 04:47:37 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 04:50:37 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2022-01-25 04:51:11 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 04:52:27 +0100 | lionhairdino | (~jacoo@121.131.39.82) (WeeChat 3.4) |
2022-01-25 04:53:12 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-01-25 04:53:39 +0100 | lionhairdino | (~jacoo@121.131.39.82) |
2022-01-25 04:56:23 +0100 | jackson98 | (~bc8147f2@cerf.good1.com) (Quit: quit) |
2022-01-25 04:56:28 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) (Quit: quit) |
2022-01-25 04:58:37 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-01-25 05:00:24 +0100 | xsperry | (~xs@user/xsperry) () |
2022-01-25 05:00:24 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Read error: Connection reset by peer) |
2022-01-25 05:00:49 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 05:01:25 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 05:09:28 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 05:13:42 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 05:13:52 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2022-01-25 05:19:20 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 250 seconds) |
2022-01-25 05:20:28 +0100 | tommd | (~tommd@67-42-147-226.ptld.qwest.net) |
2022-01-25 05:23:48 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:b4c3:bc35:ccb7:fa58) (Quit: My MacBook has gone to sleep. ZZZzzzβ¦) |
2022-01-25 05:26:11 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-25 05:26:35 +0100 | <EvanR> | if something wants Proxy a, and I have an actual `a' on me, is there a slick way to get a proxy for it |
2022-01-25 05:27:57 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds) |
2022-01-25 05:28:50 +0100 | mbuf | (~Shakthi@122.173.231.124) (Read error: Connection reset by peer) |
2022-01-25 05:30:17 +0100 | mbuf | (~Shakthi@122.173.231.124) |
2022-01-25 05:31:08 +0100 | <Axman6> | proxyFor :: a -> Proxy a; proxyFor = const Proxy |
2022-01-25 05:32:00 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 05:32:05 +0100 | <EvanR> | gotta define this myself, got it |
2022-01-25 05:33:33 +0100 | xsperry | (~xs@user/xsperry) |
2022-01-25 05:34:12 +0100 | <ephemient> | :t let a = "" `asProxyTypeOf` proxy; proxy = Proxy in proxy |
2022-01-25 05:34:13 +0100 | <lambdabot> | error: |
2022-01-25 05:34:13 +0100 | <lambdabot> | Variable not in scope: asProxyTypeOf :: [Char] -> Proxy t0 -> t1 |
2022-01-25 05:35:06 +0100 | <ephemient> | hmm that doesn't seem to work anyway, oh well |
2022-01-25 05:35:21 +0100 | <awpr> | % let f Proxy = "" in f (pure True) |
2022-01-25 05:35:21 +0100 | <yahb> | awpr: "" |
2022-01-25 05:36:10 +0100 | <monochrom> | Oh! Smart. pure :: a -> Proxy a |
2022-01-25 05:36:32 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 05:38:17 +0100 | <EvanR> | duuuuude |
2022-01-25 05:39:00 +0100 | <EvanR> | "stupid applicative tricks" |
2022-01-25 05:40:38 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 05:40:53 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 05:41:37 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::b46b) (Remote host closed the connection) |
2022-01-25 05:42:49 +0100 | <ephemient> | % pure @Proxy $! undefined |
2022-01-25 05:42:49 +0100 | <yahb> | ephemient: Proxy |
2022-01-25 05:43:31 +0100 | <ephemient> | % const Proxy $! undefined |
2022-01-25 05:43:31 +0100 | <yahb> | ephemient: Proxy |
2022-01-25 05:43:40 +0100 | <ephemient> | % const () $! undefined |
2022-01-25 05:43:40 +0100 | <yahb> | ephemient: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:54:13 in interactive:Ghci29 |
2022-01-25 05:43:48 +0100 | <ephemient> | huh. |
2022-01-25 05:44:04 +0100 | <awpr> | oh, I think I see |
2022-01-25 05:44:16 +0100 | <awpr> | % show (undefined :: Proxy Int) |
2022-01-25 05:44:17 +0100 | <yahb> | awpr: "Proxy" |
2022-01-25 05:44:47 +0100 | <awpr> | yeah, a lazy Show instance |
2022-01-25 05:46:14 +0100 | <EvanR> | being strict here would be especially silly xd |
2022-01-25 05:46:18 +0100 | <ephemient> | interesting. so show () forces while show Proxy doesn't |
2022-01-25 05:46:45 +0100 | <EvanR> | fails due to missing value of which you should not have anyway! |
2022-01-25 05:46:49 +0100 | <EvanR> | unlike () |
2022-01-25 05:47:44 +0100 | <ephemient> | you can have a value of type of Proxy |
2022-01-25 05:47:54 +0100 | <EvanR> | forcing () for other purposes should work, even if in any case I can think of it could get away with returning a new () without doing any work |
2022-01-25 05:49:11 +0100 | <EvanR> | () lets you manipulate the value system while Proxy lets you manipulate the typeclass system? xD |
2022-01-25 05:50:25 +0100 | <monochrom> | I think () has "deriving Show" which is pretty strict. |
2022-01-25 05:52:37 +0100 | lispy | (~lispy4@84.69.59.93) (Quit: Leaving) |
2022-01-25 05:53:01 +0100 | <ephemient> | > show (undefined :: (a, b)) |
2022-01-25 05:53:02 +0100 | <lambdabot> | "*Exception: Prelude.undefined |
2022-01-25 05:53:09 +0100 | <ephemient> | I guess that's consistent with other tuples |
2022-01-25 05:55:00 +0100 | <ephemient> | % show (undefined :: Solo a) |
2022-01-25 05:55:00 +0100 | <yahb> | ephemient: ; <interactive>:56:20: error: Not in scope: type constructor or class `Solo' |
2022-01-25 05:55:18 +0100 | <ephemient> | % show (undefined :: Data.Tuple.Solo a) |
2022-01-25 05:55:18 +0100 | <yahb> | ephemient: ; <interactive>:57:20: error: Not in scope: type constructor or class `Data.Tuple.Solo' |
2022-01-25 05:55:18 +0100 | tommd | (~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 250 seconds) |
2022-01-25 05:58:37 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 05:58:50 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2022-01-25 06:00:21 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 256 seconds) |
2022-01-25 06:00:26 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) |
2022-01-25 06:01:06 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:54a1:8815:7a95:cd26) |
2022-01-25 06:01:39 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2022-01-25 06:03:16 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 06:04:17 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 06:12:05 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::b46b) |
2022-01-25 06:13:47 +0100 | cyphase | (~cyphase@user/cyphase) |
2022-01-25 06:18:43 +0100 | razetime | (~quassel@49.207.209.26) (Read error: Connection reset by peer) |
2022-01-25 06:21:23 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 06:26:11 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 06:29:59 +0100 | ardell | (~ardell@user/ardell) |
2022-01-25 06:32:19 +0100 | lispy | (~lispy4@84.69.59.93) |
2022-01-25 06:35:27 +0100 | lispy | (~lispy4@84.69.59.93) (Client Quit) |
2022-01-25 06:38:58 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2022-01-25 06:44:08 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 06:48:25 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 06:49:54 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 250 seconds) |
2022-01-25 06:54:17 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::b46b) (Ping timeout: 240 seconds) |
2022-01-25 06:56:18 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) |
2022-01-25 06:58:14 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 07:03:49 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) (Ping timeout: 256 seconds) |
2022-01-25 07:05:31 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-01-25 07:06:40 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 07:08:00 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-01-25 07:10:33 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-01-25 07:11:28 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 07:11:48 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) |
2022-01-25 07:13:16 +0100 | michalz | (~michalz@185.246.204.40) |
2022-01-25 07:16:20 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Remote host closed the connection) |
2022-01-25 07:16:28 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 07:18:45 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 07:19:05 +0100 | nightbreak | (~nightbrea@victors-mbp.dyndns.rice.edu) |
2022-01-25 07:19:37 +0100 | myShoggoth | (~myShoggot@97-120-67-120.ptld.qwest.net) (Ping timeout: 240 seconds) |
2022-01-25 07:25:57 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-25 07:29:10 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 07:30:53 +0100 | nightbreak | (~nightbrea@victors-mbp.dyndns.rice.edu) (Quit: Signing off for now...) |
2022-01-25 07:34:21 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 07:34:21 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 07:34:21 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 07:38:03 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) |
2022-01-25 07:38:57 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-25 07:38:57 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 07:43:29 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 256 seconds) |
2022-01-25 07:47:24 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-01-25 07:51:25 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-01-25 07:53:35 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2022-01-25 07:54:37 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 07:55:57 +0100 | lionhairdino | (~jacoo@121.131.39.82) (Ping timeout: 256 seconds) |
2022-01-25 07:56:43 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 07:57:41 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2022-01-25 07:58:54 +0100 | dobblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2022-01-25 07:58:54 +0100 | dobblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2022-01-25 07:58:54 +0100 | dobblego | (~dibblego@haskell/developer/dibblego) |
2022-01-25 08:01:22 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 08:02:33 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds) |
2022-01-25 08:02:33 +0100 | dobblego | dibblego |
2022-01-25 08:08:30 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-01-25 08:15:57 +0100 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 240 seconds) |
2022-01-25 08:18:53 +0100 | _ht | (~quassel@82-168-34-160.fixed.kpn.net) |
2022-01-25 08:19:29 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 08:32:56 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-01-25 08:36:13 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 08:38:41 +0100 | shriekingnoise | (~shrieking@201.231.16.156) (Quit: Quit) |
2022-01-25 08:38:57 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-25 08:39:17 +0100 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-01-25 08:39:42 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 08:40:03 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 08:43:13 +0100 | dut | (~dut@user/dut) |
2022-01-25 08:44:46 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2022-01-25 08:46:26 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 08:46:53 +0100 | <dminuoso> | What's your bar for uploading something to hackage? |
2022-01-25 08:47:27 +0100 | <dminuoso> | I have this module that would expose basic domain name parsing, a simple domain name pattern language and some simple matching primitives along - and I now need it in a secondary project. |
2022-01-25 08:47:42 +0100 | <dminuoso> | And I cant help but wonder whether this is genuinely something worth putting on hackage. |
2022-01-25 08:48:48 +0100 | <dminuoso> | In the past I would have simply put it inside a git repo and depended upon that, but it's a hassle to update these (since you would always have pinned commit hashes), and it brings a variety of other ergonomic issues. |
2022-01-25 08:48:54 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 08:49:25 +0100 | Goodbye_Vincent | (cyvahl@freakshells.net) (Quit: Ping timeout (120 seconds)) |
2022-01-25 08:49:43 +0100 | Goodbye_Vincent | (~Goodbye_V@freakshells.net) |
2022-01-25 08:49:56 +0100 | idnar | (sid12240@debian/mithrandi) (Ping timeout: 245 seconds) |
2022-01-25 08:50:07 +0100 | SrPx | (sid108780@id-108780.uxbridge.irccloud.com) (Ping timeout: 250 seconds) |
2022-01-25 08:50:07 +0100 | systemfault | (sid267009@id-267009.uxbridge.irccloud.com) (Ping timeout: 250 seconds) |
2022-01-25 08:50:07 +0100 | aarchi | (sid486183@id-486183.uxbridge.irccloud.com) (Ping timeout: 250 seconds) |
2022-01-25 08:50:11 +0100 | edmundnoble | (sid229620@id-229620.helmsley.irccloud.com) (Ping timeout: 252 seconds) |
2022-01-25 08:50:11 +0100 | mcfilib | (sid302703@user/mcfilib) (Ping timeout: 252 seconds) |
2022-01-25 08:50:11 +0100 | caasih | (sid13241@id-13241.ilkley.irccloud.com) (Ping timeout: 252 seconds) |
2022-01-25 08:50:21 +0100 | obviyus | (sid415299@user/obviyus) (Ping timeout: 245 seconds) |
2022-01-25 08:50:21 +0100 | edwardk | (sid47016@haskell/developer/edwardk) (Ping timeout: 245 seconds) |
2022-01-25 08:50:21 +0100 | jackdk | (sid373013@cssa/jackdk) (Ping timeout: 245 seconds) |
2022-01-25 08:50:44 +0100 | bbhoss | (sid18216@id-18216.tinside.irccloud.com) (Ping timeout: 252 seconds) |
2022-01-25 08:51:18 +0100 | edwardk | (sid47016@haskell/developer/edwardk) |
2022-01-25 08:51:18 +0100 | caasih | (sid13241@id-13241.ilkley.irccloud.com) |
2022-01-25 08:51:18 +0100 | mcfilib | (sid302703@user/mcfilib) |
2022-01-25 08:51:19 +0100 | jackdk | (sid373013@cssa/jackdk) |
2022-01-25 08:51:19 +0100 | bbhoss | (sid18216@id-18216.tinside.irccloud.com) |
2022-01-25 08:51:22 +0100 | aarchi | (sid486183@id-486183.uxbridge.irccloud.com) |
2022-01-25 08:51:32 +0100 | SrPx | (sid108780@id-108780.uxbridge.irccloud.com) |
2022-01-25 08:51:54 +0100 | catern | (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Ping timeout: 260 seconds) |
2022-01-25 08:52:01 +0100 | edmundnoble | (sid229620@id-229620.helmsley.irccloud.com) |
2022-01-25 08:52:23 +0100 | <davean> | dminuoso: Its probably worth it |
2022-01-25 08:53:18 +0100 | systemfault | (sid267009@id-267009.uxbridge.irccloud.com) |
2022-01-25 08:53:20 +0100 | idnar | (sid12240@debian/mithrandi) |
2022-01-25 08:53:23 +0100 | obviyus | (sid415299@user/obviyus) |
2022-01-25 08:54:18 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 08:56:11 +0100 | <[exa]> | dminuoso: avoid giving it a overly generic name as people often do, then it's all okay I'd say |
2022-01-25 08:56:51 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-01-25 08:56:55 +0100 | <dminuoso> | Overly generic in the sense of abstract? Or would you detest a dns-utils package? |
2022-01-25 08:57:21 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-01-25 08:57:31 +0100 | <[exa]> | domain-parser is wrong, simple-domain-name-patterns is better, except a bit long |
2022-01-25 08:57:47 +0100 | <dminuoso> | domain-patterns is actually a nice fit. :) |
2022-01-25 08:58:11 +0100 | <[exa]> | I wanted to avoid the effect where people call their package 'regex' and implement one completely inextensible view of regex, no idea if it has a name |
2022-01-25 08:58:12 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 08:58:39 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-01-25 08:59:14 +0100 | <[exa]> | domain-patterns is okay I'd say, people who do the same in a different way have a lot of space to differentiate the name |
2022-01-25 08:59:51 +0100 | mikoto-chan | (~mikoto-ch@84.199.144.235) |
2022-01-25 09:00:09 +0100 | <[exa]> | maybe domain-name-patterns even, to avoid math geeks who patternmatch function domains lol |
2022-01-25 09:00:35 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-25 09:00:47 +0100 | ski | . o O ( `integral-domain-patterns' ) |
2022-01-25 09:01:28 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 09:01:58 +0100 | <[exa]> | I didn't really want to open that box of ideas but here we go. |
2022-01-25 09:03:53 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-01-25 09:05:01 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-01-25 09:06:02 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-01-25 09:06:16 +0100 | chele | (~chele@user/chele) |
2022-01-25 09:06:25 +0100 | alp | (~alp@user/alp) |
2022-01-25 09:08:06 +0100 | prasad | (~user@c-73-170-49-136.hsd1.ca.comcast.net) |
2022-01-25 09:09:17 +0100 | ensyde | (~ensyde@2600:1700:2050:1040:505d:6d63:cb2e:fb52) (Ping timeout: 240 seconds) |
2022-01-25 09:09:25 +0100 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 256 seconds) |
2022-01-25 09:09:26 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2022-01-25 09:15:00 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 09:15:56 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 09:16:40 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cceb:625b:cb9d:590d) (Remote host closed the connection) |
2022-01-25 09:16:57 +0100 | Major_Biscuit | (~MajorBisc@c-001-017-008.client.tudelft.eduvpn.nl) |
2022-01-25 09:17:42 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-25 09:18:17 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2022-01-25 09:19:25 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-01-25 09:19:50 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-01-25 09:20:16 +0100 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 250 seconds) |
2022-01-25 09:20:17 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 09:22:05 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 09:28:22 +0100 | fendor | (~fendor@91.141.44.222.wireless.dyn.drei.com) |
2022-01-25 09:29:39 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-01-25 09:30:04 +0100 | <mjrosenb> | has anyone seen this before: https://gist.github.com/mjrosenb/b949e67f57ef80b6f3a4602f75eb9c83 ? |
2022-01-25 09:32:01 +0100 | <dminuoso> | mjrosenb: https://github.com/NixOS/nixpkgs/issues/93446 |
2022-01-25 09:32:03 +0100 | <dminuoso> | Potentially related |
2022-01-25 09:32:29 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-25 09:32:34 +0100 | dsrt^ | (~dsrt@50-207-160-170-static.hfc.comcastbusiness.net) |
2022-01-25 09:33:15 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 09:34:03 +0100 | <dminuoso> | mjrosenb: What GHC version are you using? |
2022-01-25 09:36:15 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) (Ping timeout: 256 seconds) |
2022-01-25 09:37:03 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 09:37:08 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:7a00:67ce:f137:ad93) |
2022-01-25 09:38:02 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-01-25 09:38:31 +0100 | <mjrosenb> | ghcjs 8.10 |
2022-01-25 09:39:46 +0100 | akegalj | (~akegalj@141-136-204-193.dsl.iskon.hr) |
2022-01-25 09:41:03 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Quit: Lost terminal) |
2022-01-25 09:42:12 +0100 | analognoise | (~analognoi@185.202.221.105) (Read error: Connection reset by peer) |
2022-01-25 09:45:32 +0100 | <dminuoso> | mjrosenb: Ah! |
2022-01-25 09:45:40 +0100 | <dminuoso> | mjrosenb: https://github.com/haskell-foundation/foundation/blob/master/foundation/foundation.cabal#L199 |
2022-01-25 09:45:41 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 09:45:47 +0100 | <dminuoso> | I think you're tripping into that cabal flag here. |
2022-01-25 09:46:04 +0100 | <dminuoso> | That makes this package unbuildable, the rest is just strange diagnostic interaction between cabal and nix |
2022-01-25 09:46:23 +0100 | <dminuoso> | Or rather, not the package is unbuildable but that particular component |
2022-01-25 09:46:27 +0100 | <dminuoso> | Which is why you get the diagnostic: |
2022-01-25 09:46:33 +0100 | <dminuoso> | Setup: No executables and no library found. Nothing to do. |
2022-01-25 09:48:45 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-25 09:49:48 +0100 | <mjrosenb> | it seems like that is saying that foundation itself isn't buildable on ghcjs |
2022-01-25 09:49:48 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 09:50:05 +0100 | <dminuoso> | Yes. |
2022-01-25 09:51:19 +0100 | <mjrosenb> | which seems kind of strange, since from what I can tell, there isn't much that would break |
2022-01-25 09:51:56 +0100 | <dminuoso> | https://github.com/haskell-foundation/foundation/commit/e96a6d4b90ba416c6c7f2cc598d635f6e58d71ad |
2022-01-25 09:51:58 +0100 | <dminuoso> | https://github.com/vincenthz/haskell-pkg-guidelines/blob/master/support.md |
2022-01-25 09:52:12 +0100 | <dminuoso> | https://github.com/haskell-foundation/foundation/issues/486 |
2022-01-25 09:53:30 +0100 | <dminuoso> | If you think can build it, you can override this with overrideCabal |
2022-01-25 09:53:35 +0100 | <dminuoso> | At your own peril. :) |
2022-01-25 09:55:32 +0100 | <dminuoso> | Question: When two packages expose the same module, can I diambiguate the package in an import statement? |
2022-01-25 09:55:37 +0100 | <dminuoso> | Im not seeing anything in the Haskell standard at least. |
2022-01-25 09:56:00 +0100 | <dminuoso> | I recall there was some way to specify, is this some GHC extension? |
2022-01-25 09:56:29 +0100 | <jackdk> | dminuoso: https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/package_qualified_imports.html⦠? |
2022-01-25 09:56:42 +0100 | <dminuoso> | jackdk: Thanks, thats it. :) |
2022-01-25 09:56:52 +0100 | ubert1 | (~Thunderbi@p200300ecdf099416f339e1e74dd0e9e7.dip0.t-ipconnect.de) |
2022-01-25 09:57:00 +0100 | <mjrosenb> | I'm also questioning why this is getting pulled in at all |
2022-01-25 09:57:35 +0100 | <mjrosenb> | https://gist.github.com/mjrosenb/085708d232d3b16701371b561e1563ed |
2022-01-25 09:57:57 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2022-01-25 09:59:47 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-01-25 10:01:46 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Remote host closed the connection) |
2022-01-25 10:02:07 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 10:02:07 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Remote host closed the connection) |
2022-01-25 10:02:13 +0100 | michalz | (~michalz@185.246.204.40) (Ping timeout: 240 seconds) |
2022-01-25 10:02:16 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 10:02:20 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Remote host closed the connection) |
2022-01-25 10:02:41 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 10:02:43 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Remote host closed the connection) |
2022-01-25 10:02:54 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 10:02:55 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Read error: Connection reset by peer) |
2022-01-25 10:04:10 +0100 | wmacmil | (~wmacmil@83-233-165-97.cust.bredband2.com) |
2022-01-25 10:04:37 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds) |
2022-01-25 10:04:41 +0100 | <wmacmil> | are there any blog posts/resources roughly about "python for haskell programmers"? |
2022-01-25 10:05:09 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 256 seconds) |
2022-01-25 10:05:52 +0100 | <wmacmil> | like what are indensible resources to learning/using python if you're used to haskell : i see that typing and dataclasses modules seem to be haskelly, but is there a general way to approach the transition |
2022-01-25 10:06:20 +0100 | <dminuoso> | wmacmil: Not that I have seem |
2022-01-25 10:06:24 +0100 | <dminuoso> | It's an unusual transition |
2022-01-25 10:06:33 +0100 | <wmacmil> | indeed, an unfortunate one too |
2022-01-25 10:06:34 +0100 | <mjrosenb> | ahhh, memory depends on foundation for testing. |
2022-01-25 10:06:41 +0100 | <dminuoso> | mjrosenb: Ah yes |
2022-01-25 10:07:10 +0100 | <dminuoso> | mjrosenb: Then you can avoid it by lib.dontCheck |
2022-01-25 10:07:14 +0100 | <dminuoso> | Probably should go upstream |
2022-01-25 10:07:34 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 10:08:17 +0100 | <mjrosenb> | I know I've used lib.dontCheck before, but have completely forgotten how it is supposed to be used. |
2022-01-25 10:08:34 +0100 | <dminuoso> | mjrosenb: Depends on the ergonomics of what you're doing. |
2022-01-25 10:09:03 +0100 | <dminuoso> | See https://github.com/NixOS/nixpkgs/issues/26561 |
2022-01-25 10:09:05 +0100 | <mjrosenb> | I'm ok turning off tests entirely within this project. |
2022-01-25 10:09:26 +0100 | <dminuoso> | But essentially you want to have an overlay that fixes this inside haskellPackages |
2022-01-25 10:09:29 +0100 | <dminuoso> | mjrosenb: That wont work |
2022-01-25 10:09:37 +0100 | <dminuoso> | You have to do this for this component |
2022-01-25 10:09:56 +0100 | michalz | (~michalz@185.246.204.58) |
2022-01-25 10:11:03 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:54a1:8815:7a95:cd26) (Quit: My MacBook has gone to sleep. ZZZzzzβ¦) |
2022-01-25 10:11:11 +0100 | <dminuoso> | mjrosenb: Anyway, you want to use either `haskellPackages.extend` or `haskellPackages.override` inside an overlay for your nixpkgs. |
2022-01-25 10:11:21 +0100 | <dminuoso> | And inside those you do something like: |
2022-01-25 10:11:45 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 10:11:57 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-01-25 10:12:20 +0100 | <dminuoso> | let extendedPkgs = pkgs.extend (self: super: { haskellPackages = super.haskellPackages.override (lib: { overrides = (selfHS: superHS: { memory = lib.dontCheck superHS.memory; })})}) |
2022-01-25 10:12:30 +0100 | <dminuoso> | Or rather |
2022-01-25 10:13:06 +0100 | <dminuoso> | let extendedPkgs = pkgs.extend (self: super: { haskellPackages = super.haskellPackages.override (lib: { overrides = (selfHS: superHS: { yourPackage = superHS.callCabal2nix "foo" ./foo {}; memory = lib.dontCheck superHS.memory; })})}) in extendedPkgs.yourPackage |
2022-01-25 10:13:11 +0100 | <dminuoso> | Might be some typos in there. |
2022-01-25 10:13:31 +0100 | cynomys | (~cynomys@user/cynomys) (Remote host closed the connection) |
2022-01-25 10:13:34 +0100 | <mjrosenb> | hrm, I'm currently using extend |
2022-01-25 10:13:34 +0100 | <dminuoso> | Alternatively you can move the memory fix into some regular overlay for your nixpkgs |
2022-01-25 10:13:45 +0100 | <dminuoso> | mjrosenb: Be sure to give https://github.com/NixOS/nixpkgs/issues/26561 a read |
2022-01-25 10:13:48 +0100 | <mjrosenb> | I may be able to make this work. |
2022-01-25 10:14:12 +0100 | <mjrosenb> | I did. I suspect I'll be consulting it again before I get this working :-) |
2022-01-25 10:14:16 +0100 | <dminuoso> | Heh :) |
2022-01-25 10:14:43 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-01-25 10:16:00 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-01-25 10:17:04 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cceb:625b:cb9d:590d) |
2022-01-25 10:17:04 +0100 | <mjrosenb> | how do I get lib? |
2022-01-25 10:17:40 +0100 | <mjrosenb> | ahh, it is bound in a lambda. |
2022-01-25 10:17:44 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-01-25 10:17:44 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-01-25 10:17:47 +0100 | allbery_b | geekosaur |
2022-01-25 10:18:41 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:e5fb:7a43:8199:8861) |
2022-01-25 10:18:58 +0100 | Vajb | (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) |
2022-01-25 10:20:15 +0100 | yassernasc | (~yassernas@2804:29b8:505a:f33d:601e:b34d:f58c:b5e8) |
2022-01-25 10:20:28 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 10:21:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cceb:625b:cb9d:590d) (Ping timeout: 240 seconds) |
2022-01-25 10:21:33 +0100 | vysn | (~vysn@user/vysn) |
2022-01-25 10:23:23 +0100 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) |
2022-01-25 10:28:45 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) |
2022-01-25 10:30:19 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 10:33:52 +0100 | m4lvin | (~m4lvin@w4eg.de) (Quit: m4lvin) |
2022-01-25 10:34:18 +0100 | m4lvin | (~m4lvin@w4eg.de) |
2022-01-25 10:37:00 +0100 | Guest52 | (~Guest52@80-100-97-100.ip.xs4all.nl) |
2022-01-25 10:38:03 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 10:38:09 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 10:41:19 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2022-01-25 10:41:40 +0100 | <mjrosenb> | bummer. |
2022-01-25 10:41:41 +0100 | <mjrosenb> | ghcjs = super.haskell.packages.ghcjs.override { |
2022-01-25 10:41:42 +0100 | <mjrosenb> | overrides = import ./haskell/packages/ghcjs options self; |
2022-01-25 10:41:43 +0100 | <mjrosenb> | }; |
2022-01-25 10:41:46 +0100 | synthmeat | (~synthmeat@user/synthmeat) (Quit: WeeChat 3.0) |
2022-01-25 10:43:03 +0100 | <mjrosenb> | is where I'm pulling it from, so it looks like `override` was already used once, whic I believe means I can't extend ghcjs to fix memory? |
2022-01-25 10:43:55 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-01-25 10:45:49 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2022-01-25 10:46:45 +0100 | <jackdk> | https://www.irccloud.com/pastebin/ukRt6y2O/shell.nix mjrosenb I don't have time to dig in and help, I'm sorry, but here's an example of replacing and reconfiguring a bunch of haskell packages I wrote for someone else at one point. Note the doJailbreak call - you can use dontCheck in the same way |
2022-01-25 10:55:48 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 10:58:51 +0100 | <mjrosenb> | jackdk: thanks, I think the issues I'm having at this point are with the upstream nixexpr |
2022-01-25 11:00:42 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 11:00:50 +0100 | catern | (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) |
2022-01-25 11:05:46 +0100 | nunggu | (~q@user/nunggu) (Remote host closed the connection) |
2022-01-25 11:06:16 +0100 | nunggu | (~q@user/nunggu) |
2022-01-25 11:11:50 +0100 | haskellberryfinn | (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-01-25 11:12:49 +0100 | <dminuoso> | mjrosenb: That's the beauty of these overrides, you dont need to extend ghcjs |
2022-01-25 11:12:58 +0100 | <dminuoso> | mjrosenb: Roughly you'd do: |
2022-01-25 11:13:10 +0100 | <dminuoso> | uh |
2022-01-25 11:13:15 +0100 | <dminuoso> | mjrosenb: Can you share the entirety of that nix expression? |
2022-01-25 11:17:07 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
2022-01-25 11:18:20 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 11:19:00 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-01-25 11:19:57 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds) |
2022-01-25 11:20:08 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-01-25 11:20:16 +0100 | rusrushal13 | (~rusrushal@2409:4056:e95:fe3c:29c9:f5b0:286b:2495) |
2022-01-25 11:20:43 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2022-01-25 11:21:24 +0100 | nunggu | (~q@user/nunggu) (Remote host closed the connection) |
2022-01-25 11:21:48 +0100 | nunggu | (~q@user/nunggu) |
2022-01-25 11:23:21 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 256 seconds) |
2022-01-25 11:27:57 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 11:29:02 +0100 | synthmeat | (~synthmeat@user/synthmeat) |
2022-01-25 11:30:40 +0100 | romesrf | (~romes@bl8-111-202.dsl.telepac.pt) |
2022-01-25 11:30:48 +0100 | <romesrf> | hey everyone |
2022-01-25 11:31:02 +0100 | MasseR4 | (~MasseR@51.15.143.128) (Quit: The Lounge - https://thelounge.chat) |
2022-01-25 11:31:10 +0100 | <romesrf> | if f :: a -> m a, how would you rewrite this without the do notation: mapM (\(ref, rec) -> do rec' <- updateRecord rec; return (ref, rec')) records |
2022-01-25 11:31:21 +0100 | <romesrf> | sorry, replace updateRecord with f* |
2022-01-25 11:31:31 +0100 | MasseR4 | (~MasseR@51.15.143.128) |
2022-01-25 11:31:56 +0100 | <[exa]> | you can always resort to >>= and more lambdas (basically expand the `do`) |
2022-01-25 11:32:28 +0100 | xff0x | (~xff0x@2001:1a81:53ac:af00:3dc0:eeb6:6533:2585) (Remote host closed the connection) |
2022-01-25 11:32:29 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-25 11:32:32 +0100 | <romesrf> | right :), that's probably best than whatever way i can get rid of bind (>>=) right |
2022-01-25 11:32:45 +0100 | xff0x | (~xff0x@2001:1a81:53ac:af00:4616:9444:a1c8:27cf) |
2022-01-25 11:32:59 +0100 | <[exa]> | @undo do {rec' <- updateRecord rec; return (ref, rec'); } |
2022-01-25 11:32:59 +0100 | <lambdabot> | updateRecord rec >>= \ rec' -> return (ref, rec') |
2022-01-25 11:33:07 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-25 11:33:28 +0100 | <romesrf> | cool cool |
2022-01-25 11:33:36 +0100 | <romesrf> | how would you go about not using bind? |
2022-01-25 11:33:38 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2022-01-25 11:33:51 +0100 | <dminuoso> | romesrf: https://gist.github.com/dminuoso/a42206fdd79b79ab73dc2eccc8f6bc53 |
2022-01-25 11:34:02 +0100 | <[exa]> | you may fmap the (ref,) inside the monad |
2022-01-25 11:34:09 +0100 | <romesrf> | nice! |
2022-01-25 11:34:24 +0100 | <dminuoso> | Also, traverse looks nicer than mapM :) |
2022-01-25 11:34:29 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 11:34:35 +0100 | <[exa]> | ah yes there we go :] |
2022-01-25 11:34:52 +0100 | <dminuoso> | romesrf: Note that this needs the extension TupleSections enabled. |
2022-01-25 11:35:00 +0100 | <romesrf> | got it :) |
2022-01-25 11:35:36 +0100 | <dminuoso> | romesrf: Also, if you insist on writing it densly, you can also use for |
2022-01-25 11:35:38 +0100 | <romesrf> | dminuoso: traverse vs mapM? |
2022-01-25 11:36:04 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-01-25 11:36:04 +0100 | <romesrf> | dminuoso: i do enjoy the dense notation, if i could learn to get rid of the lambda here it would be even cooler hahahaha |
2022-01-25 11:36:14 +0100 | <dminuoso> | romesrf: https://gist.github.com/dminuoso/a42206fdd79b79ab73dc2eccc8f6bc53 |
2022-01-25 11:36:23 +0100 | <dminuoso> | I would probably opt for the second |
2022-01-25 11:36:52 +0100 | wmacmil | (~wmacmil@83-233-165-97.cust.bredband2.com) (Quit: Leaving) |
2022-01-25 11:37:42 +0100 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving) |
2022-01-25 11:38:10 +0100 | <romesrf> | I see so :) but i was wondering why traverse over mapM (is it because mapM is specific for [] in the base?) |
2022-01-25 11:38:18 +0100 | __monty__ | (~toonn@user/toonn) |
2022-01-25 11:38:26 +0100 | <romesrf> | while traverse is over any traversable? |
2022-01-25 11:38:35 +0100 | <[exa]> | romesrf: mapM is basically traverse that _requires_ that the type there is monad |
2022-01-25 11:38:39 +0100 | <dminuoso> | mapM is arbitrarily constrained to Monad rather than Applicative |
2022-01-25 11:38:45 +0100 | <romesrf> | understood! |
2022-01-25 11:38:56 +0100 | <dminuoso> | but also because I have a certain mind model of Traversable |
2022-01-25 11:38:56 +0100 | <[exa]> | usually that's not required at all (certainly not required for functionality of mapM) |
2022-01-25 11:39:07 +0100 | <dminuoso> | So I like seeing the word `traverse` since it makes me think of traversables |
2022-01-25 11:39:14 +0100 | <dminuoso> | The word `map` just triggers `Functor` in my mind. |
2022-01-25 11:39:22 +0100 | <romesrf> | thank you, then I will use `traverse` because you have indeed convinced me haha |
2022-01-25 11:39:51 +0100 | <dminuoso> | Also on the off chance that mapM will be removed someday, you have one fix less for future GHCs. |
2022-01-25 11:40:11 +0100 | <dminuoso> | (Its removal was discussed but forgotten a while ago) |
2022-01-25 11:41:04 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-01-25 11:45:52 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 11:46:10 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-01-25 11:47:09 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-01-25 11:47:18 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 268 seconds) |
2022-01-25 11:48:17 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2022-01-25 11:48:27 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-01-25 11:48:49 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-25 11:49:31 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 11:53:38 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2022-01-25 11:55:20 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-01-25 11:55:24 +0100 | <dminuoso> | Im writing a package and I want an instance whose presence conditionally depends on a cabal flag. |
2022-01-25 11:55:42 +0100 | <dminuoso> | Is there a way to induce a CPP macro in the cabal package guarded by a flag? |
2022-01-25 11:56:08 +0100 | <dminuoso> | Background is for development purposes it'd be nice to have a morally wrong and bug inducing Read instance |
2022-01-25 11:56:14 +0100 | <geekosaur> | gcc-options: -D... ? |
2022-01-25 11:56:23 +0100 | <dminuoso> | geekosaur: Ah, I see. |
2022-01-25 11:56:27 +0100 | <dminuoso> | Thanks |
2022-01-25 11:59:08 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-25 11:59:20 +0100 | <lortabac> | dminuoso: maybe you can put the instance to a separate module to avoid CCP |
2022-01-25 11:59:27 +0100 | <lortabac> | CPP |
2022-01-25 11:59:58 +0100 | <mjrosenb> | dminuoso: I don't know enough about miso, and miso's nix tree to know why it is pulling in a library that it shouldn't. |
2022-01-25 12:00:31 +0100 | <dminuoso> | lortabac: Mmm, unsafe orphan instances? |
2022-01-25 12:00:50 +0100 | <dminuoso> | That has more bug potential if this library was used inside yet another library |
2022-01-25 12:01:04 +0100 | <dminuoso> | That I can definitely see leading to incoherence |
2022-01-25 12:01:56 +0100 | <mjrosenb> | dminuoso: https://gist.github.com/mjrosenb/c319971baa1a48b02fe647c7d740caf5 |
2022-01-25 12:01:57 +0100 | <lortabac> | dminuoso: you can load that module conditionally through a cabal flag |
2022-01-25 12:02:07 +0100 | <geekosaur> | doesn't seem much worse to me than putting it in the same module, you'd just be conditionally including the orphans module instead of conditonally including code |
2022-01-25 12:02:51 +0100 | <lortabac> | it's not worse but it can be inconvenient if your formatter doesn't support CPP or something like that |
2022-01-25 12:04:58 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) |
2022-01-25 12:06:32 +0100 | geranim0 | (~geranim0@d-132-204-221-88.res.umontreal.ca) (Ping timeout: 240 seconds) |
2022-01-25 12:07:29 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 12:09:49 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-01-25 12:16:01 +0100 | lionhairdino | (~jacoo@121.131.39.82) |
2022-01-25 12:16:23 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 12:21:24 +0100 | Guest52 | (~Guest52@80-100-97-100.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2022-01-25 12:25:44 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) (Ping timeout: 250 seconds) |
2022-01-25 12:28:37 +0100 | romesrf | (~romes@bl8-111-202.dsl.telepac.pt) (Ping timeout: 240 seconds) |
2022-01-25 12:29:40 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 12:29:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-25 12:30:25 +0100 | yassernasc | (~yassernas@2804:29b8:505a:f33d:601e:b34d:f58c:b5e8) (Remote host closed the connection) |
2022-01-25 12:32:26 +0100 | ksqsf | (~user@2001:da8:d800:602:8943:50ae:a41b:213e) |
2022-01-25 12:33:49 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-01-25 12:33:57 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2022-01-25 12:34:06 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 12:35:24 +0100 | hololeap | (~hololeap@user/hololeap) |
2022-01-25 12:45:59 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 12:45:59 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 12:45:59 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 12:48:12 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 12:51:26 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-01-25 12:55:25 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-25 13:00:27 +0100 | zer0bitz | (~zer0bitz@2001:2003:f444:a000:2055:673d:3155:da63) |
2022-01-25 13:05:24 +0100 | burnsidesLlama | (~burnsides@dhcp168-025.wadham.ox.ac.uk) |
2022-01-25 13:05:37 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2022-01-25 13:06:39 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 13:11:31 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-01-25 13:13:02 +0100 | zaquest | (~notzaques@5.130.79.72) |
2022-01-25 13:13:49 +0100 | <__monty__> | Does anyone have some experience with SBV? I'm having a hard time figuring out how to refer to previously introduced variables. `sInteger` with the same string introduces a new variable with an appropriate suffix. https://hackage.haskell.org/package/sbv-8.17 |
2022-01-25 13:14:36 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 13:15:38 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 13:15:53 +0100 | ardell | (~ardell@user/ardell) (Quit: Konversation terminated!) |
2022-01-25 13:20:28 +0100 | thevishy | (~Nishant@2405:201:f005:c007:39ad:8b3b:de67:f2a2) |
2022-01-25 13:22:55 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) (Ping timeout: 256 seconds) |
2022-01-25 13:23:08 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-01-25 13:23:58 +0100 | chele_ | (~chele@user/chele) |
2022-01-25 13:25:58 +0100 | chele | (~chele@user/chele) (Ping timeout: 250 seconds) |
2022-01-25 13:26:07 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 13:27:16 +0100 | haskellberryfinn | (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
2022-01-25 13:28:13 +0100 | <tomsmeding> | __monty__: no idea, but aren't you supposed to use this instance? https://hackage.haskell.org/package/sbv-8.17/docs/src/Data.SBV.Core.Model.html#line-1345 |
2022-01-25 13:29:00 +0100 | chele__ | (~chele@user/chele) |
2022-01-25 13:31:25 +0100 | chele_ | (~chele@user/chele) (Ping timeout: 256 seconds) |
2022-01-25 13:31:30 +0100 | <dminuoso> | Gah, Im slowly beginning to feel the pain of attoparsec. This backtracking is completely impeding my ability to produce legible diagnostics. |
2022-01-25 13:31:31 +0100 | alp | (~alp@user/alp) (Ping timeout: 268 seconds) |
2022-01-25 13:31:57 +0100 | <dminuoso> | As soon as you have some `many` outside, you turn all errors into no endOfInput errors. |
2022-01-25 13:32:19 +0100 | <dminuoso> | Maybe I should just bite the bullet and switch to megaparsec. :( |
2022-01-25 13:32:58 +0100 | vglfr | (~vglfr@46.96.147.122) (Read error: Connection reset by peer) |
2022-01-25 13:33:18 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 13:33:59 +0100 | vglfr | (~vglfr@46.96.147.122) |
2022-01-25 13:35:20 +0100 | <__monty__> | tomsmeding: Yes. And it's all pretty nice if you have the full model specification in one do-block. But I'm building the model up incrementally so I need a way to refer to previously defined symbolic variables. |
2022-01-25 13:36:50 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 13:36:57 +0100 | <__monty__> | dminuoso: If you do some comparative benchmarks and a usability report, i.e., are the error reporting features worth the performance impact (if there is one), would be awesome : ) |
2022-01-25 13:37:32 +0100 | <geekosaur> | would be interesting. last time I checked the megaparsec folks were claiming to have caught up with attoparsec |
2022-01-25 13:37:35 +0100 | <tomsmeding> | __monty__: have you tried just storing the 'SBV Integer' somewhere? |
2022-01-25 13:40:08 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-01-25 13:40:32 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
2022-01-25 13:40:51 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) |
2022-01-25 13:43:54 +0100 | alp | (~alp@user/alp) |
2022-01-25 13:45:37 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 13:46:37 +0100 | chele__ | chele |
2022-01-25 13:46:45 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) (Remote host closed the connection) |
2022-01-25 13:46:58 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 13:49:37 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-01-25 13:50:41 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-01-25 13:50:54 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) |
2022-01-25 13:51:11 +0100 | <dminuoso> | geekosaur: My previous with megaparsec was that the ruthless use of INLINE pragmas on almost every binding was that in degenerate cases the simplifier would spend 2 minutes for a single function... |
2022-01-25 13:51:46 +0100 | <dminuoso> | Which was quite painful for my use case, since based on the use style at the time it blew up compilation time of our package from a minute to about 15. |
2022-01-25 13:52:08 +0100 | <dminuoso> | Not that this is relevant here, but it didn't leave me quite convinced about the internal quality |
2022-01-25 13:53:30 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-01-25 13:53:33 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2022-01-25 13:53:43 +0100 | <dminuoso> | Perhaps the only way megaparsec can be made performant, is by ensuring GHC sees the entire transitively used code in a single compilation unit? |
2022-01-25 13:54:54 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 13:58:02 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 268 seconds) |
2022-01-25 13:58:02 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 13:58:50 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 14:03:03 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-01-25 14:04:46 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 14:06:17 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 14:06:37 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 14:06:42 +0100 | ksqsf | (~user@2001:da8:d800:602:8943:50ae:a41b:213e) (Ping timeout: 250 seconds) |
2022-01-25 14:07:32 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
2022-01-25 14:10:57 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Ping timeout: 240 seconds) |
2022-01-25 14:11:03 +0100 | fendor_ | (~fendor@77.119.167.8.wireless.dyn.drei.com) |
2022-01-25 14:11:03 +0100 | burnsidesLlama | (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-25 14:11:36 +0100 | burnsidesLlama | (~burnsides@client-8-74.eduroam.oxuni.org.uk) |
2022-01-25 14:13:17 +0100 | Henson | (~kvirc@107-179-133-201.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
2022-01-25 14:13:55 +0100 | fendor | (~fendor@91.141.44.222.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
2022-01-25 14:15:25 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-25 14:15:32 +0100 | burnsidesLlama | (~burnsides@client-8-74.eduroam.oxuni.org.uk) (Ping timeout: 240 seconds) |
2022-01-25 14:16:44 +0100 | mmhat | (~mmh@55d41489.access.ecotel.net) (Quit: WeeChat 3.4) |
2022-01-25 14:16:44 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 14:19:47 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 14:19:47 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 14:19:55 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) |
2022-01-25 14:20:53 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) |
2022-01-25 14:22:13 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-01-25 14:22:13 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
2022-01-25 14:25:02 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) (Ping timeout: 240 seconds) |
2022-01-25 14:25:41 +0100 | <mcgroin> | what is that tild? fmap (\ ~(a, s') -> (f a, s')) $ runStateT m s |
2022-01-25 14:25:47 +0100 | geranim0 | (~geranim0@d-132-204-221-88.res.umontreal.ca) |
2022-01-25 14:25:50 +0100 | <dminuoso> | mcgroin: It's a irrefutable pattern. |
2022-01-25 14:26:00 +0100 | <dminuoso> | Sometimes inaccurately called a lazy pattern |
2022-01-25 14:26:19 +0100 | <mcgroin> | ok let me check |
2022-01-25 14:28:07 +0100 | slack1256 | (~slack1256@191.126.99.75) |
2022-01-25 14:28:45 +0100 | <dminuoso> | % case True of ~False -> 1 -- mcgroin |
2022-01-25 14:28:45 +0100 | <yahb> | dminuoso: 1 |
2022-01-25 14:29:13 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) |
2022-01-25 14:29:25 +0100 | <geekosaur> | "Matching the pattern ~apat against a value v always succeeds. The free variables in apat are bound to the appropriate values if matching apat against v would otherwise succeed, and to β₯ if matching apat against v fails or diverges. (Binding does not imply evaluation.)" (https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-580003.17) |
2022-01-25 14:30:02 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-01-25 14:30:07 +0100 | Henson | (~kvirc@107-179-133-201.cpe.teksavvy.com) |
2022-01-25 14:32:45 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-25 14:36:28 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 14:36:47 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 14:39:51 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 14:43:00 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection) |
2022-01-25 14:45:21 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-01-25 14:48:30 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-25 14:52:32 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-01-25 14:55:13 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Remote host closed the connection) |
2022-01-25 14:57:01 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 14:57:02 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-01-25 14:59:54 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 15:03:13 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
2022-01-25 15:03:47 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 15:04:21 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) (Ping timeout: 250 seconds) |
2022-01-25 15:05:08 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 15:06:14 +0100 | <janus> | do all of you think it would be a good idea to have an official deprecation notice for libraries maintained by hvr? because i'd like to point people to something official such that the last packages can be moved off of hslogger/MissingH/cryptohash |
2022-01-25 15:07:07 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-01-25 15:07:25 +0100 | xff0x | (~xff0x@2001:1a81:53ac:af00:4616:9444:a1c8:27cf) (Ping timeout: 240 seconds) |
2022-01-25 15:08:53 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-25 15:09:50 +0100 | <geekosaur> | janus, talk to the HF first, I believe there are already plans to get tose moved to new maintainers |
2022-01-25 15:10:01 +0100 | <geekosaur> | sorry, to the CLC I think |
2022-01-25 15:10:03 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds) |
2022-01-25 15:10:10 +0100 | <maerwald> | that's not a HF matter |
2022-01-25 15:10:57 +0100 | <maerwald> | there's no such thing as an official deprecation notice... either take over the package or fork it |
2022-01-25 15:11:06 +0100 | <maerwald> | for taking over packages contact trustees |
2022-01-25 15:11:26 +0100 | <maerwald> | CLC is not involved in maintaining anything outside of base |
2022-01-25 15:12:33 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-01-25 15:13:07 +0100 | <janus> | but i want these packages to die, nobody is interested in maintaining them. there are already alternatives. |
2022-01-25 15:13:31 +0100 | <janus> | hvr took these over from John Goerzen anyway, they have been on life support for years |
2022-01-25 15:14:47 +0100 | <maerwald> | that's not how hackage works |
2022-01-25 15:15:13 +0100 | <janus> | what is not how hackage works? you mean packages are never deprecated? |
2022-01-25 15:15:26 +0100 | <maerwald> | you can take over the package and put a deprecation notice yourself, I guess... |
2022-01-25 15:15:40 +0100 | <maerwald> | that also goes via trustees |
2022-01-25 15:15:54 +0100 | <maerwald> | and that intention should probably be communicated |
2022-01-25 15:16:27 +0100 | <geekosaur> | looks like I misremembered anyway, wasn't hvr's packages. https://mail.haskell.org/pipermail/libraries/2022-January/031582.html |
2022-01-25 15:16:50 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-01-25 15:17:01 +0100 | <dminuoso> | What happened to hvr? |
2022-01-25 15:17:21 +0100 | <janus> | geekosaur: cryptonite/memory is a very different case since Vincent has claimed he is actually working on GHC 9.2 support |
2022-01-25 15:17:27 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-01-25 15:17:30 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 15:17:33 +0100 | <geekosaur> | I have no clue, but he's been absent for close to a year now |
2022-01-25 15:17:42 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 15:17:42 +0100 | <maerwald> | geekosaur: Vincent replied to that and not very amused |
2022-01-25 15:17:54 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 15:18:42 +0100 | noctux | kuyatzu |
2022-01-25 15:18:59 +0100 | kuyatzu | noctux |
2022-01-25 15:20:09 +0100 | <geekosaur> | not even updating his ghc ppa |
2022-01-25 15:20:22 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 15:21:32 +0100 | mikoto-chan | (~mikoto-ch@84.199.144.235) (Ping timeout: 240 seconds) |
2022-01-25 15:24:42 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 15:25:14 +0100 | <maerwald> | it would probably be interesting to have something like a CRC (crypto committee), but you'd have to find competent people first |
2022-01-25 15:26:51 +0100 | <geekosaur> | probably stakeholders |
2022-01-25 15:27:13 +0100 | <maerwald> | huh? |
2022-01-25 15:27:38 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-01-25 15:27:47 +0100 | slac63614 | (~slack1256@186.11.82.162) |
2022-01-25 15:28:03 +0100 | xff0x | (~xff0x@2001:1a81:53ac:af00:4616:9444:a1c8:27cf) |
2022-01-25 15:29:22 +0100 | <maerwald> | I mean people who actually know something about crypto |
2022-01-25 15:29:54 +0100 | slack1256 | (~slack1256@191.126.99.75) (Ping timeout: 250 seconds) |
2022-01-25 15:30:32 +0100 | <maerwald> | not "I had a course back in uni" :p |
2022-01-25 15:31:13 +0100 | fef | (~thedawn@user/thedawn) |
2022-01-25 15:31:53 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 15:31:53 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 15:31:53 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 15:33:29 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 15:36:37 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 15:37:42 +0100 | <janus> | seems to me like most of the cryptocurrency people (they ought to know about cryptography, no?) make their own bindings |
2022-01-25 15:37:50 +0100 | <janus> | for example secp256k1 bindings: https://github.com/ElementsProject/simplicity/blob/master/Haskell/Core/Simplicity/LibSecp256k1/FFI⦠|
2022-01-25 15:38:13 +0100 | <dminuoso> | I wish we'd just abolish cryptonite and get back to openssl bindings. :( |
2022-01-25 15:38:27 +0100 | bjourne | (~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5) |
2022-01-25 15:38:36 +0100 | <maerwald> | dminuoso: well, linking openssl into your binary is a pita |
2022-01-25 15:38:49 +0100 | <maerwald> | feel free to create mbedTLS bindings |
2022-01-25 15:39:17 +0100 | <dminuoso> | Sure, but just like I'd wish for for a trip to the ISS one day, one can dream no? |
2022-01-25 15:39:33 +0100 | <maerwald> | it's cold up there I think |
2022-01-25 15:40:25 +0100 | <bjourne> | can you get cabal to install packages system-wide? |
2022-01-25 15:40:33 +0100 | <maerwald> | bjourne: v1-install |
2022-01-25 15:40:34 +0100 | <dminuoso> | bjourne: Yes and no. |
2022-01-25 15:40:36 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2022-01-25 15:40:38 +0100 | <maerwald> | or use Setup.hs directly |
2022-01-25 15:40:42 +0100 | <dminuoso> | bjourne: Even with v2-install they are installed system-wide... sort of.. |
2022-01-25 15:40:49 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 15:41:06 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-01-25 15:42:08 +0100 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2022-01-25 15:42:23 +0100 | <dminuoso> | maerwald: Im not sure what is worse. That cryptonite is written by someone who is not a reknown crypographer with an experience in implementing robust side-channel free crypo on well researched (with respect to side channels) languages and tools... |
2022-01-25 15:42:36 +0100 | <maerwald> | xD |
2022-01-25 15:42:44 +0100 | <dminuoso> | Or that it seems mostly unmaintained, with nobody even willing to pick it up.. |
2022-01-25 15:42:51 +0100 | <maerwald> | I'm more concerned about half the haskell community not caring about that fact |
2022-01-25 15:42:52 +0100 | <yushyin> | one can re-use the same package env with --package-env= |
2022-01-25 15:43:05 +0100 | <maerwald> | so much for haskellers care about correctness |
2022-01-25 15:43:09 +0100 | <maerwald> | no, they care about their types |
2022-01-25 15:43:10 +0100 | <dminuoso> | And before someone misunderstands this, Im not questioning HVRs expertise as an expert Haskell programmer... |
2022-01-25 15:43:36 +0100 | <dminuoso> | But writing good Haskell code and writing safe cryptographic code are two very separate tasks. :( |
2022-01-25 15:43:46 +0100 | <janus> | dminuoso: nobody _can_ pick it up since he explicitly disagreed with that. and he claims he is working on 9.2 support. so i would not flat out say 'unmaintained' |
2022-01-25 15:44:03 +0100 | <dminuoso> | janus: Fair. |
2022-01-25 15:44:07 +0100 | <maerwald> | dminuoso: https://github.com/GaloisInc/haskell-tor/issues/23#issuecomment-179598343 |
2022-01-25 15:44:13 +0100 | cheater | (~Username@user/cheater) (Quit: (BitchX) The Power Rangers use BitchX. Shouldn't you?) |
2022-01-25 15:44:15 +0100 | <maerwald> | "In this particular case, I, personally, am comfortable offloading the responsibility for a lot of timing-level attacks to the author of the cryptonite library" |
2022-01-25 15:44:18 +0100 | <maerwald> | well.... |
2022-01-25 15:44:36 +0100 | <janus> | (my previous message referred to cryptonite/memory/foundation, not hvr) |
2022-01-25 15:44:50 +0100 | <dminuoso> | maerwald: Yeah I read that, but the argument starts all wrong. |
2022-01-25 15:45:10 +0100 | <maerwald> | I think they are completely wrong |
2022-01-25 15:45:41 +0100 | <maerwald> | And Haskell is in fact not the right language for this. Types mean very little in this context, unless they are algorithmic proof and even that's maybe 30% of your issues |
2022-01-25 15:45:43 +0100 | <dminuoso> | I mean there's so many published papers on securely implementing cryptographic schemes on specific compilers and languages... |
2022-01-25 15:47:11 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 268 seconds) |
2022-01-25 15:47:36 +0100 | <maerwald> | I'm not even confident that bindings eliminate all those issues. Doesn't that depend on the API? |
2022-01-25 15:47:57 +0100 | <maerwald> | A secret could leak into the Haskell codebase |
2022-01-25 15:48:33 +0100 | <maerwald> | so many reasons I don't touch any of that with a 10 foot pole |
2022-01-25 15:48:52 +0100 | <dminuoso> | maerwald: Ive read enough cryptopapers to be seriously scared, there's so many non-obvious mistakes. |
2022-01-25 15:48:55 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-01-25 15:49:18 +0100 | <dminuoso> | The combination of efficient and side-channel-free elliptic curve cryptography is ridiculously hard. |
2022-01-25 15:49:41 +0100 | <maerwald> | My practical experience is limited to writing a toy implementation of NTRUEncrypt. That was enough for me to figure out I don't know sh*t about those things |
2022-01-25 15:49:56 +0100 | <dminuoso> | You essentially have to resort to specifically picked algorithms that, when executed on traditional van neumann machines, will run under constant times, dont leak things into caches.. |
2022-01-25 15:50:04 +0100 | <dminuoso> | *specific implementations |
2022-01-25 15:50:31 +0100 | <dminuoso> | In the presence of super scalar processors that each year introduce new optimizations, defeating old assumptions |
2022-01-25 15:50:51 +0100 | nvdp | (~nvdp@80-100-97-100.ip.xs4all.nl) |
2022-01-25 15:51:20 +0100 | cheater | (~Username@user/cheater) |
2022-01-25 15:51:39 +0100 | <maerwald> | there's still hope project everest will... maybe some day... turn out to be usable |
2022-01-25 15:52:44 +0100 | briandaed | (~root@185.234.208.208.r.toneticgroup.pl) |
2022-01-25 15:52:57 +0100 | polyphem | (~rod@2a02:810d:840:8754:9996:52da:e8ad:1d27) (Ping timeout: 240 seconds) |
2022-01-25 15:54:03 +0100 | polyphem | (~rod@2a02:810d:840:8754:f5a2:d787:2125:a747) |
2022-01-25 15:54:16 +0100 | <maerwald> | until then, we just trust some random dude on hackage |
2022-01-25 15:55:22 +0100 | nvdp | (~nvdp@80-100-97-100.ip.xs4all.nl) (Remote host closed the connection) |
2022-01-25 15:57:04 +0100 | shriekingnoise | (~shrieking@201.231.16.156) |
2022-01-25 15:57:46 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 15:58:45 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-01-25 16:00:06 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 16:00:35 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 16:00:59 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-01-25 16:01:57 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) |
2022-01-25 16:02:09 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-25 16:02:22 +0100 | <dminuoso> | Like, if you do the naive thing for EC point multiplication, you have a guaranteed side-channel attack. Unless you use a very careful implementation of a particular sliding window method.. or use montgomery ladder.. |
2022-01-25 16:02:33 +0100 | <dminuoso> | But you dont know this unless you read the right crypto papers of course. |
2022-01-25 16:02:51 +0100 | <dminuoso> | I hate crypto |
2022-01-25 16:02:53 +0100 | <dminuoso> | :( |
2022-01-25 16:03:11 +0100 | futty14 | (~futty14@c90-143-137-255.bredband.tele2.se) |
2022-01-25 16:04:35 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2022-01-25 16:06:22 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2022-01-25 16:09:56 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) |
2022-01-25 16:10:21 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 16:10:21 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 16:10:21 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 16:11:51 +0100 | polyphem | (~rod@2a02:810d:840:8754:f5a2:d787:2125:a747) (Ping timeout: 268 seconds) |
2022-01-25 16:15:11 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-25 16:18:29 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 16:20:46 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-25 16:22:08 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 16:22:47 +0100 | <futty14> | fn 1 = 1 |
2022-01-25 16:22:48 +0100 | <futty14> | fn n = sum $ map fn [(n `div` 2)..n-1] |
2022-01-25 16:22:48 +0100 | <futty14> | I had this question as an OLD exam question. I can now see that it is Narayana-Zidek-Capell numbers. |
2022-01-25 16:22:49 +0100 | <futty14> | map fn [(n `div` 2)..n-1] |
2022-01-25 16:22:49 +0100 | <futty14> | Β I understand that the fn above does the exact same sequence of calculation beginning from head of the list and adds another f(n+1)... f(n+2) to each successing list element. That is why the function call map is hanging, because there are just too many repetitive recursive calls that occupies stack frames. |
2022-01-25 16:22:50 +0100 | <futty14> | I have tried but cant find a way to store fn(n) and use that to find fn(n+1), that is the next element of the list. How would you solve this? |
2022-01-25 16:24:43 +0100 | <sshine> | futty14, memoization with an IntMap? |
2022-01-25 16:25:41 +0100 | <futty14> | sshine I would preferably want to solve it with an accumulator or an auxiliary function. |
2022-01-25 16:26:05 +0100 | <sshine> | futty14, I'd keep the IntMap in an accumulated parameter. |
2022-01-25 16:26:13 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-01-25 16:27:31 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-01-25 16:29:00 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-01-25 16:29:28 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-01-25 16:31:02 +0100 | xff0x | (~xff0x@2001:1a81:53ac:af00:4616:9444:a1c8:27cf) (Ping timeout: 240 seconds) |
2022-01-25 16:32:14 +0100 | xff0x | (~xff0x@2001:1a81:53ac:af00:ba25:4d71:4d47:a3a5) |
2022-01-25 16:32:28 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 16:33:16 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-01-25 16:33:23 +0100 | polyphem | (~rod@2a02:810d:840:8754:ab25:19d5:5fa5:69d5) |
2022-01-25 16:34:15 +0100 | <ski> | futty14 : if you have a max you want, then make a (recursively defined, immutable) array ? |
2022-01-25 16:34:16 +0100 | <futty14> | sshine I am getting the error "Data constructor not in scope:" despite using import Data.IntMap (IntMap). Why might this be? |
2022-01-25 16:34:27 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 250 seconds) |
2022-01-25 16:34:35 +0100 | <ski> | *data* constructor ? |
2022-01-25 16:35:21 +0100 | <futty14> | @ski |
2022-01-25 16:35:21 +0100 | <lambdabot> | Maybe you meant: wiki src ask |
2022-01-25 16:35:58 +0100 | <ski> | perhaps at this point you should show some snippet of code |
2022-01-25 16:36:37 +0100 | <futty14> | ski hmm, I think you are referring to data [] = [] | a : [a]. A recursive definition like this? The problem is that, at the time we had to write this, we were just beginning with HOF so this is a bit out of scope. |
2022-01-25 16:36:40 +0100 | <janus> | futty14: IntMap won't be a data constructor anyway because you construct with something like https://hackage.haskell.org/package/containers-0.6.5.1/docs/Data-IntMap-Strict.html#v:fromList |
2022-01-25 16:36:44 +0100 | mmhat | (~mmh@55d41489.access.ecotel.net) |
2022-01-25 16:36:49 +0100 | <ski> | no |
2022-01-25 16:36:56 +0100 | <ski> | (not referring to lists) |
2022-01-25 16:37:02 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-01-25 16:37:32 +0100 | <janus> | but IntMap doesn't have a data constructor named IntMap, surely. so if the error message says such a constructor wasn't imported, something is already wrong, no? |
2022-01-25 16:38:04 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) |
2022-01-25 16:38:26 +0100 | <geekosaur> | IntMap's data constructors are hidden, and even if they weren't the import statement only imports the type constructor |
2022-01-25 16:38:49 +0100 | <janus> | i agree |
2022-01-25 16:39:11 +0100 | <ski> | > let fib12 i = arr ! i; ix = (0,12); arr = listArray ix [case i of 0 -> 0; 1 -> 1; _ -> fib12 (i-1) + fib12 (i-2) | i <- range ix] in fib12 12 |
2022-01-25 16:39:12 +0100 | <lambdabot> | 144 |
2022-01-25 16:39:33 +0100 | <ski> | futty14 : that's a recursively defined array, doing (top-down) dynamic programming |
2022-01-25 16:40:05 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 16:42:41 +0100 | tomboy64 | (~tomboy64@user/tomboy64) |
2022-01-25 16:42:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 16:42:46 +0100 | dsrt^ | (~dsrt@50-207-160-170-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
2022-01-25 16:43:31 +0100 | finalti[m] | (~finaltima@2001:470:69fc:105::d909) (Quit: Client limit exceeded: 20000) |
2022-01-25 16:43:39 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2022-01-25 16:46:09 +0100 | akegalj | (~akegalj@141-136-204-193.dsl.iskon.hr) (Quit: leaving) |
2022-01-25 16:46:39 +0100 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Quit: Client limit exceeded: 20000) |
2022-01-25 16:48:03 +0100 | fendor_ | fendor |
2022-01-25 16:48:14 +0100 | vysn | (~vysn@user/vysn) (Quit: WeeChat 3.3) |
2022-01-25 16:49:01 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-01-25 16:50:13 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2022-01-25 16:50:26 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 16:50:49 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-01-25 16:51:27 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds) |
2022-01-25 16:53:57 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-01-25 16:55:30 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-01-25 16:55:32 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds) |
2022-01-25 16:56:42 +0100 | <shapr> | somewhat on topic: Dr Rob Stewart is looking for a postdoc and PhD students for graph reduction hardware research: https://haflang.github.io/ |
2022-01-25 16:56:43 +0100 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2022-01-25 16:56:43 +0100 | finalti[m] | (~finaltima@2001:470:69fc:105::d909) |
2022-01-25 16:56:53 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-01-25 16:57:16 +0100 | <shapr> | If you've been interested in the Reduceron ( https://www.cs.york.ac.uk/fp/reduceron/ ) and the like, that's where this is going. |
2022-01-25 16:57:38 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) |
2022-01-25 16:57:53 +0100 | futty14 | (~futty14@c90-143-137-255.bredband.tele2.se) (Quit: Client closed) |
2022-01-25 16:58:15 +0100 | futty14 | (~futty14@c90-143-137-255.bredband.tele2.se) |
2022-01-25 16:59:09 +0100 | Logio_ | Logio |
2022-01-25 16:59:13 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 16:59:33 +0100 | ardell | (~ardell@user/ardell) |
2022-01-25 17:01:35 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 17:02:13 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
2022-01-25 17:02:40 +0100 | haskellberryfinn | (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-01-25 17:04:28 +0100 | slack1256 | (~slack1256@191.126.227.197) |
2022-01-25 17:05:18 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-01-25 17:06:45 +0100 | slac63614 | (~slack1256@186.11.82.162) (Ping timeout: 256 seconds) |
2022-01-25 17:08:15 +0100 | lispy | (~lispy4@84.69.59.93) |
2022-01-25 17:09:19 +0100 | ahammer | (~ahammer@120.230.113.41) |
2022-01-25 17:13:55 +0100 | mikoto-chan | (~mikoto-ch@213.177.151.239) |
2022-01-25 17:13:57 +0100 | ahammer | (~ahammer@120.230.113.41) (Ping timeout: 240 seconds) |
2022-01-25 17:15:02 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2022-01-25 17:15:33 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 17:17:17 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds) |
2022-01-25 17:17:29 +0100 | max22- | (~maxime@2a01cb08833598006a0c8f5f388a6d4e.ipv6.abo.wanadoo.fr) |
2022-01-25 17:17:48 +0100 | ahammer | (~ahammer@120.230.113.41) |
2022-01-25 17:19:23 +0100 | mbuf | (~Shakthi@122.173.231.124) (Quit: Leaving) |
2022-01-25 17:19:46 +0100 | zmt00 | (~zmt00@user/zmt00) |
2022-01-25 17:19:55 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 17:22:07 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-25 17:22:10 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2022-01-25 17:22:10 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2022-01-25 17:22:10 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) |
2022-01-25 17:25:05 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 17:25:15 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2022-01-25 17:25:37 +0100 | ahammer | (~ahammer@120.230.113.41) (Ping timeout: 240 seconds) |
2022-01-25 17:25:37 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds) |
2022-01-25 17:25:52 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-01-25 17:29:03 +0100 | RFV89 | (~RFV@171.red-88-13-191.dynamicip.rima-tde.net) |
2022-01-25 17:29:07 +0100 | <haskellberryfinn> | how to build and run a single .hs file? for quick test purpose |
2022-01-25 17:29:32 +0100 | <haskellberryfinn> | I've installed the necessary lib via cabal install --lib --env . a_library |
2022-01-25 17:30:59 +0100 | RFV89 | RFV |
2022-01-25 17:31:11 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2022-01-25 17:33:45 +0100 | rusrushal13 | (~rusrushal@2409:4056:e95:fe3c:29c9:f5b0:286b:2495) (Ping timeout: 256 seconds) |
2022-01-25 17:34:09 +0100 | slac74418 | (~slack1256@186.11.82.162) |
2022-01-25 17:34:11 +0100 | <tomsmeding> | haskellberryfinn: it seems if you just use 'ghc yourfile.hs' in the directory where you put that .ghc.environment file, it works? |
2022-01-25 17:35:13 +0100 | <geekosaur> | for a quick test if you're not worried about performance you can run it in bytecode mode: runghc file.hs |
2022-01-25 17:35:40 +0100 | RFV | (~RFV@171.red-88-13-191.dynamicip.rima-tde.net) (Quit: Client closed) |
2022-01-25 17:36:32 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-01-25 17:37:57 +0100 | slack1256 | (~slack1256@191.126.227.197) (Ping timeout: 240 seconds) |
2022-01-25 17:38:25 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 17:38:58 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
2022-01-25 17:39:02 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-25 17:39:38 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 17:40:33 +0100 | Guest65 | (~Guest65@2a02:8109:a380:b58:917e:d1c3:3da5:dce7) |
2022-01-25 17:40:42 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2022-01-25 17:40:55 +0100 | <haskellberryfinn> | great |
2022-01-25 17:41:24 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 17:41:26 +0100 | alx741 | (~alx741@157.100.93.160) (Client Quit) |
2022-01-25 17:41:53 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Quit: Leaving) |
2022-01-25 17:42:30 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 17:43:01 +0100 | vysn | (~vysn@user/vysn) |
2022-01-25 17:44:15 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 17:44:51 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) |
2022-01-25 17:45:01 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) (Remote host closed the connection) |
2022-01-25 17:45:13 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 17:46:58 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 17:48:49 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 17:48:49 +0100 | Vajb | (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (Read error: Connection reset by peer) |
2022-01-25 17:49:22 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-01-25 17:50:23 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:7a00:67ce:f137:ad93) (Quit: WeeChat 2.8) |
2022-01-25 17:50:52 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 17:54:16 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-25 17:54:43 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
2022-01-25 17:57:02 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-01-25 18:00:49 +0100 | slack1256 | (~slack1256@191.126.227.197) |
2022-01-25 18:01:25 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-01-25 18:02:52 +0100 | slac74418 | (~slack1256@186.11.82.162) (Ping timeout: 250 seconds) |
2022-01-25 18:02:53 +0100 | vglfr | (~vglfr@46.96.147.122) (Read error: Connection reset by peer) |
2022-01-25 18:02:57 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-01-25 18:03:40 +0100 | vglfr | (~vglfr@46.96.147.122) |
2022-01-25 18:04:00 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-01-25 18:06:08 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-01-25 18:06:21 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-01-25 18:08:09 +0100 | <justsomeguy> | Also, if you have stack you can write a stack script -- https://www.fpcomplete.com/haskell/tutorial/stack-script/ -- in particular check out the "Script interpreter" section. This is more complicated, but lets you add packages and specify a version of GHC. |
2022-01-25 18:08:22 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 18:08:26 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 18:08:40 +0100 | <geekosaur> | it also makes "cabal install --lib" unnecessary |
2022-01-25 18:09:00 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 18:09:10 +0100 | <geekosaur> | (which is good as it pollutes the Haskell environment and can cause version conflicts) |
2022-01-25 18:09:25 +0100 | <geekosaur> | cabal also has a script mode but it's less well developed |
2022-01-25 18:11:07 +0100 | RFV | (~Thunderbi@171.red-88-13-191.dynamicip.rima-tde.net) |
2022-01-25 18:12:49 +0100 | RFV_ | (~RFV_@171.red-88-13-191.dynamicip.rima-tde.net) |
2022-01-25 18:13:02 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Ping timeout: 240 seconds) |
2022-01-25 18:13:16 +0100 | mmhat | (~mmh@55d41489.access.ecotel.net) (Ping timeout: 250 seconds) |
2022-01-25 18:13:38 +0100 | <sclv> | i don't think cabal's script mode is less developed in any particular way? |
2022-01-25 18:13:43 +0100 | <sclv> | except maybe ghc specification? |
2022-01-25 18:13:47 +0100 | <sclv> | curious what you consider is missing |
2022-01-25 18:13:55 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-01-25 18:14:00 +0100 | RFV_ | (~RFV_@171.red-88-13-191.dynamicip.rima-tde.net) (Client Quit) |
2022-01-25 18:14:14 +0100 | RFV__ | (~RFV__@171.red-88-13-191.dynamicip.rima-tde.net) |
2022-01-25 18:14:33 +0100 | <yushyin> | caching the binary |
2022-01-25 18:15:16 +0100 | <yushyin> | it will recompile and relink every time |
2022-01-25 18:15:18 +0100 | <c_wraith> | what binary? it definitely caches any packages it needs to build. And it doesn't compile the script it's running... |
2022-01-25 18:15:46 +0100 | <c_wraith> | Oh, unless you mean the fakepackage thing |
2022-01-25 18:15:52 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-01-25 18:17:10 +0100 | <monochrom> | I don't mind recompiling the script, in the context that if I use "cabal run" it's because I have a casual, easy to recompile script in the first place. |
2022-01-25 18:17:41 +0100 | <monochrom> | I do mind the "everything is up to date" message to stdout. |
2022-01-25 18:18:11 +0100 | <monochrom> | I understand the dilemma of "but where do you want it sent?!" and I have no good solution. |
2022-01-25 18:18:28 +0100 | <c_wraith> | What about the dilemma of "why do you want it sent at all?" |
2022-01-25 18:18:35 +0100 | <monochrom> | Unless "add more cmdline options!" is a good solution :) |
2022-01-25 18:19:23 +0100 | <c_wraith> | It seems like an oversight from sharing code with cabal build |
2022-01-25 18:19:28 +0100 | <monochrom> | Oh, this is going to be the great debate between 1970s UI design and 21st century UI design. |
2022-01-25 18:20:04 +0100 | <monochrom> | In the 1970s unix philosophy, no news is good news, if there is no error, the program must output nothing. |
2022-01-25 18:20:20 +0100 | <c_wraith> | Like, I can definitely see a reason to have a command line option to add it. |
2022-01-25 18:20:30 +0100 | <monochrom> | In the modern philosophy, reporting on progress and success is all the rage. |
2022-01-25 18:20:57 +0100 | <c_wraith> | maybe it can write to 3 by default. :) |
2022-01-25 18:21:39 +0100 | <geekosaur> | what good is writing to stdaux? :ΓΎ |
2022-01-25 18:21:55 +0100 | <geekosaur> | (I don't think even windows has that any more) |
2022-01-25 18:21:59 +0100 | <c_wraith> | it won't show up the terminal. :P |
2022-01-25 18:22:15 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-01-25 18:22:18 +0100 | dut | (~dut@user/dut) (Quit: Leaving) |
2022-01-25 18:22:29 +0100 | <monochrom> | Windows? Oh! Send to PRN: >:) |
2022-01-25 18:22:57 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
2022-01-25 18:23:14 +0100 | <c_wraith> | the real issue is that text streams are a horrible way to present structured information. "this is from the build tool" and "this is from the subprogram you asked the build tool to run" is not a distinction unix is designed to handle |
2022-01-25 18:23:16 +0100 | <monochrom> | Perhaps send to syslog or Window's equivalent of syslog... >:) |
2022-01-25 18:23:25 +0100 | vicfred | (~vicfred@user/vicfred) |
2022-01-25 18:23:38 +0100 | <c_wraith> | windows, on the other hand, has tools for it! cmdlets are pretty cool |
2022-01-25 18:23:51 +0100 | <geekosaur> | so fd 4 :ΓΎ |
2022-01-25 18:24:25 +0100 | <geekosaur> | (somehow I think my reference when whizzing high overhead) |
2022-01-25 18:24:35 +0100 | <geekosaur> | *went |
2022-01-25 18:24:55 +0100 | <yushyin> | c_wraith: don't know if anything has changed recently, but for me it used to recompile my script every time, linked it every time into a binary and executed it |
2022-01-25 18:25:10 +0100 | <geekosaur> | \back in the DOS days fd 3 was stdaux aka COM1: and fd 4 was stdprn aka LPT1: |
2022-01-25 18:25:56 +0100 | <EvanR> | you got your serial port and your parallel port, what else could you want |
2022-01-25 18:26:32 +0100 | <monochrom> | parallel bundle of multiple serial ports >:) |
2022-01-25 18:26:39 +0100 | <polyphem> | EvanR: PCSpeaker :) |
2022-01-25 18:26:49 +0100 | <monochrom> | Oh haha I forgot the speaker |
2022-01-25 18:27:17 +0100 | <geekosaur> | no problem, just plug some wires into the right parts of the parallel port and make another one :) |
2022-01-25 18:27:17 +0100 | <EvanR> | important |
2022-01-25 18:27:37 +0100 | mmhat | (~mmh@55d40230.access.ecotel.net) |
2022-01-25 18:27:40 +0100 | vicfred | (~vicfred@user/vicfred) (Client Quit) |
2022-01-25 18:29:01 +0100 | lechner | (~lechner@debian/lechner) |
2022-01-25 18:35:26 +0100 | <polyphem> | http://jubatian.com/articles/building-an-lpt-dac/ |
2022-01-25 18:36:33 +0100 | yassernasc | (~yassernas@2804:29b8:505a:f33d:ccf7:da52:f075:1ff9) |
2022-01-25 18:36:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) |
2022-01-25 18:47:11 +0100 | lispy | (~lispy4@84.69.59.93) (Quit: Leaving) |
2022-01-25 18:47:48 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) (Remote host closed the connection) |
2022-01-25 18:49:12 +0100 | <random-jellyfish> | is the state monad the equivalent of a Moore machine? |
2022-01-25 18:50:03 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-25 18:51:39 +0100 | <EvanR> | moore machines take input and produce output, but s -> (a,s) just produces output (if iterated on its own state) |
2022-01-25 18:52:33 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) |
2022-01-25 18:52:52 +0100 | <EvanR> | State s a is basically s -> (a,s) |
2022-01-25 18:53:30 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:e5fb:7a43:8199:8861) (Quit: My MacBook has gone to sleep. ZZZzzzβ¦) |
2022-01-25 18:54:25 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-01-25 18:54:27 +0100 | <random-jellyfish> | newtype Moore in out = Moore ( in->s->(out, s) ) |
2022-01-25 18:54:40 +0100 | <random-jellyfish> | would that be a valid definition of a Moore type? |
2022-01-25 18:54:45 +0100 | <EvanR> | looks closer |
2022-01-25 18:54:58 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) |
2022-01-25 18:55:57 +0100 | <EvanR> | out is basically what wikipedia is calling an "entry action", a possible action on entering a state |
2022-01-25 18:56:43 +0100 | <EvanR> | I'm not sure if this technically makes any sense |
2022-01-25 18:56:55 +0100 | <EvanR> | the old and new state are accessible to the function |
2022-01-25 18:57:59 +0100 | <EvanR> | there are more things in haskell functions and earth than dreamt of in first year compsci/engineering xD |
2022-01-25 18:59:26 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-25 18:59:30 +0100 | bontaq` | (~user@ool-45779fe5.dyn.optonline.net) |
2022-01-25 19:00:37 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds) |
2022-01-25 19:00:43 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Remote host closed the connection) |
2022-01-25 19:02:50 +0100 | <random-jellyfish> | true |
2022-01-25 19:03:13 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 19:09:10 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Ping timeout: 250 seconds) |
2022-01-25 19:09:28 +0100 | <monochrom> | Also take a look at https://hackage.haskell.org/package/machines . In Data.Machine.Moore, take a look at unfoldMoore; in Data.Machine.Mealy, take a look at unfoldMealy. |
2022-01-25 19:10:03 +0100 | <monochrom> | It looks like in->s->(out, s) is Mealy there. |
2022-01-25 19:10:27 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-01-25 19:10:37 +0100 | <monochrom> | I like Wikipedia, but I trust edwardk more than I trust Wikipedia. :) |
2022-01-25 19:11:17 +0100 | <EvanR> | the reference for Data.Machine.Moore goes to wikipedia xD |
2022-01-25 19:11:27 +0100 | <EvanR> | an authority loop |
2022-01-25 19:11:52 +0100 | <EvanR> | the trust levels are incomparable |
2022-01-25 19:12:06 +0100 | <EvanR> | or both infinite, depending |
2022-01-25 19:12:30 +0100 | futty14 | (~futty14@c90-143-137-255.bredband.tele2.se) (Quit: Client closed) |
2022-01-25 19:13:40 +0100 | <EvanR> | yeah unfoldMoore is carefully defined so the output only depends on the target state |
2022-01-25 19:15:18 +0100 | lispy | (~lispy4@84.69.59.93) |
2022-01-25 19:16:32 +0100 | Major_Biscuit | (~MajorBisc@c-001-017-008.client.tudelft.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-01-25 19:16:42 +0100 | econo | (uid147250@user/econo) |
2022-01-25 19:17:42 +0100 | carbolymer_ | carbolymer |
2022-01-25 19:17:49 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-01-25 19:17:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 19:17:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 19:17:52 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 19:18:05 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 268 seconds) |
2022-01-25 19:18:17 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds) |
2022-01-25 19:19:23 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) |
2022-01-25 19:20:01 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) |
2022-01-25 19:20:21 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 19:21:40 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2022-01-25 19:22:32 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-25 19:22:47 +0100 | neceve | (~quassel@2.26.93.228) |
2022-01-25 19:24:08 +0100 | geranim0 | (~geranim0@d-132-204-221-88.res.umontreal.ca) (Remote host closed the connection) |
2022-01-25 19:25:20 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-01-25 19:26:01 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-01-25 19:26:53 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-01-25 19:29:28 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2022-01-25 19:31:49 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
2022-01-25 19:32:50 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:b072:e210:a25e:85eb) |
2022-01-25 19:32:55 +0100 | <EvanR> | is it possible to have a pure interface to opengl, like, imagine a Picture type contains all values necessary to produce an Image (juicy pixels), can f :: Picture -> Image RGB8 be done |
2022-01-25 19:33:37 +0100 | <EvanR> | even a 'software' opengl like mesa will involve going through the arcane opengl dynamic loading process |
2022-01-25 19:33:57 +0100 | <EvanR> | can it be pure |
2022-01-25 19:35:22 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2022-01-25 19:36:00 +0100 | <EvanR> | other than writing an entire gl implementation in haskell code |
2022-01-25 19:36:09 +0100 | RFV__ | (~RFV__@171.red-88-13-191.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
2022-01-25 19:36:35 +0100 | lionhairdino | (~jacoo@121.131.39.82) (Ping timeout: 268 seconds) |
2022-01-25 19:36:45 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2022-01-25 19:37:48 +0100 | <EvanR> | is the main issue concurrent access to the gpu from different values wanting to render from different threads |
2022-01-25 19:37:51 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
2022-01-25 19:38:25 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
2022-01-25 19:38:39 +0100 | <EvanR> | is it like, "son of the gdk/gtk+ thing from yesterday" |
2022-01-25 19:39:04 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) (Remote host closed the connection) |
2022-01-25 19:42:10 +0100 | <monochrom> | I think it is just that all Haskell compilers today compile pure Haskell to CPU-only code, not GPU code. |
2022-01-25 19:42:44 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2022-01-25 19:42:56 +0100 | <EvanR> | ok, good angle on that, but just asking from a logic perspective not performance |
2022-01-25 19:43:07 +0100 | <monochrom> | In Haskell today, to invite the GPU to work. IO is involved because, just because, inviting the GPU requires an FFI call. |
2022-01-25 19:43:24 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 19:43:32 +0100 | <EvanR> | similar to the use of GMP for Integer |
2022-01-25 19:43:33 +0100 | <dolio> | I'm sure you can do it, but a lot of it is going to be pretty bad GPU code. |
2022-01-25 19:43:37 +0100 | <monochrom> | Logically it is pure. |
2022-01-25 19:43:46 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-01-25 19:43:50 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 19:43:50 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 19:43:50 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 19:45:13 +0100 | <EvanR> | to allow multiple values simultaneously do you have to spawn a new process? xD |
2022-01-25 19:45:19 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 19:46:05 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection) |
2022-01-25 19:46:10 +0100 | <EvanR> | clearly we have concurrent apps all using the gpu |
2022-01-25 19:46:24 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) |
2022-01-25 19:46:37 +0100 | <dolio> | GPUs want to run the same code on a lot of data at once. And probably don't want you to be using things persistently. |
2022-01-25 19:46:39 +0100 | <megaTherion> | EvanR: not necessarily rendering or? |
2022-01-25 19:46:49 +0100 | dminuoso_ | (~dminuoso@static.88-198-218-68.clients.your-server.de) |
2022-01-25 19:47:05 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Client Quit) |
2022-01-25 19:47:09 +0100 | <EvanR> | yes rendering |
2022-01-25 19:47:29 +0100 | dminuoso | (~dminuoso@user/dminuoso) (Ping timeout: 256 seconds) |
2022-01-25 19:47:29 +0100 | canta | (~canta@user/canta) (Ping timeout: 256 seconds) |
2022-01-25 19:47:33 +0100 | <megaTherion> | I dont think so, but Im not very good with GLX .. thought that has to be done by a single thread |
2022-01-25 19:47:46 +0100 | noddy_ | (~user@user/noddy) (Quit: WeeChat 3.4) |
2022-01-25 19:47:51 +0100 | canta | (~canta@user/canta) |
2022-01-25 19:47:55 +0100 | <EvanR> | right, which is where multiple processes comes in (uhg) |
2022-01-25 19:48:51 +0100 | noddy | (~user@user/noddy) |
2022-01-25 19:49:42 +0100 | <EvanR> | if one of the images is demanded, spawn a side process, run the rendering, get the image back, return the image through IPC, end of process |
2022-01-25 19:50:53 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds) |
2022-01-25 19:50:57 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-25 19:52:18 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) |
2022-01-25 19:53:02 +0100 | <EvanR> | haskell simply running on the gpu in the first place would be interesting though |
2022-01-25 19:53:44 +0100 | <geekosaur> | it'd run poorly though. graph reduction is rather different from what gpus are designed to do |
2022-01-25 19:53:48 +0100 | haskellberryfinn | (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
2022-01-25 19:54:06 +0100 | <EvanR> | ok, not simply running then |
2022-01-25 19:55:00 +0100 | <geekosaur> | so, like e.g. atom or clash, there are haskell libraries that can write programs for gpus (see for example the accelerate gpu backend) |
2022-01-25 19:56:03 +0100 | <EvanR> | something similar to haskell where the primitives are like mapping, folding, which can be done in so many words iterating gpu ops |
2022-01-25 19:56:31 +0100 | <EvanR> | the more gpu friendly the program the better performance |
2022-01-25 19:57:42 +0100 | <EvanR> | a certain type of fold over 1024 value array could be done with 10 passes |
2022-01-25 19:57:47 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-01-25 19:58:23 +0100 | <EvanR> | getting side tracked nvm |
2022-01-25 19:58:29 +0100 | noddy | (~user@user/noddy) (Quit: WeeChat 3.4) |
2022-01-25 19:58:45 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 19:58:59 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 19:59:04 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 19:59:04 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 19:59:04 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 19:59:16 +0100 | noddy | (~user@user/noddy) |
2022-01-25 19:59:57 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-01-25 20:00:19 +0100 | <EvanR> | does vulkan have any better story with the thread safety |
2022-01-25 20:00:55 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 20:02:48 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) |
2022-01-25 20:02:56 +0100 | <geekosaur> | I'd imagine it's not so different from the X server communication I described yesterday: each thread would need its own independent connection to the GPU, and I'm not sure a GPU can even handle multiple threads talking to it |
2022-01-25 20:04:20 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-01-25 20:06:48 +0100 | max22- | (~maxime@2a01cb08833598006a0c8f5f388a6d4e.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
2022-01-25 20:07:58 +0100 | <EvanR> | only 1 GPU, only 1 X Server. in BeOS there was only 1 user and at least there they exploited that for simplification purposes xD |
2022-01-25 20:08:27 +0100 | noddy | (~user@user/noddy) (Quit: WeeChat 3.4) |
2022-01-25 20:09:31 +0100 | noddy | (~user@user/noddy) |
2022-01-25 20:09:48 +0100 | <geekosaur> | actually I suspect 1 GPU (which itself has multiple threads) is fine if you allocate a CPU thread that manages and communicates with N GPU threads |
2022-01-25 20:10:16 +0100 | <geekosaur> | and use locking/mutexes as you might for communication between CPU threads |
2022-01-25 20:10:36 +0100 | <geekosaur> | it may well be more expensive than between CPU threads though |
2022-01-25 20:11:00 +0100 | <geekosaur> | the GPU model is to push as much onto the GPU as possible and communicate only at the start and end |
2022-01-25 20:12:12 +0100 | noddy | (~user@user/noddy) (Client Quit) |
2022-01-25 20:13:00 +0100 | noddy | (~user@user/noddy) |
2022-01-25 20:13:33 +0100 | <EvanR> | I see and that is where the OS graphics system sits |
2022-01-25 20:13:58 +0100 | <EvanR> | threads mediator |
2022-01-25 20:14:13 +0100 | <geekosaur> | but I don't know whether opengl gives you that level of access or if you'd have to switch to opencl/cuda/etc |
2022-01-25 20:16:17 +0100 | dmitrydidi | (~dmitrydid@2a02:a317:e040:3700:d129:fb7:b5de:86bb) |
2022-01-25 20:16:37 +0100 | deadmarshal | (~deadmarsh@95.38.230.223) (Ping timeout: 240 seconds) |
2022-01-25 20:17:30 +0100 | <EvanR> | well pure values would have a hard time gaining access to this thread manager if it's just made of regular data |
2022-01-25 20:17:52 +0100 | <EvanR> | without globals |
2022-01-25 20:18:09 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
2022-01-25 20:19:07 +0100 | <[exa]> | EvanR: you may make a small monad that abstracts the single ("active") OpenGL context and just write an interpreter or a pure DSL for that |
2022-01-25 20:19:08 +0100 | <geekosaur> | right, I'm not entirely sure how this relates to your original question. clearly with opengl some amount of data lives on the cpu and could presu,mably be accessed without gpu involvement (which is guaranteed to be in IO) but it's entirely possible that it lives in the host (CPU) opengl library and aain requires IO to access |
2022-01-25 20:19:19 +0100 | <geekosaur> | *again |
2022-01-25 20:19:46 +0100 | <[exa]> | EvanR: Vulkan kinda improves it because they worked hard for not having the "active context" there except for absolutely neccessary parts (like, there's 1 OS and 1 GPU) |
2022-01-25 20:19:48 +0100 | <geekosaur> | although depending on the API it might be wrappable or even directly declared as pure FFI |
2022-01-25 20:19:57 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-25 20:20:08 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-01-25 20:20:28 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 20:21:08 +0100 | <EvanR> | what I'm thinking is there's no data assumed or left on the GPU, to do a rendering, everything is uploaded, the pixels are crunched, the framebuffer is downloaded, and all the resources are deleted |
2022-01-25 20:21:31 +0100 | <EvanR> | i.e. no side effects |
2022-01-25 20:21:39 +0100 | <[exa]> | that can be done pretty easily with vulkan, yes, although it's inefficient |
2022-01-25 20:21:49 +0100 | <geekosaur> | ^ |
2022-01-25 20:21:54 +0100 | <EvanR> | oh really? |
2022-01-25 20:22:01 +0100 | <geekosaur> | the ideal there is you upload it to the gpu and manage it there |
2022-01-25 20:22:04 +0100 | soxen | (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) |
2022-01-25 20:22:09 +0100 | <EvanR> | well yes |
2022-01-25 20:22:10 +0100 | <geekosaur> | you only rarely do one-shot things |
2022-01-25 20:22:17 +0100 | <[exa]> | yeah, perhaps a different more complicated DSL would be needed for that |
2022-01-25 20:22:19 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
2022-01-25 20:22:22 +0100 | <geekosaur> | because they are by their nature inefficient |
2022-01-25 20:22:37 +0100 | <EvanR> | but uploading a bunch of stuff, managing it with imperative programming in various ad hoc ways, sucks |
2022-01-25 20:22:48 +0100 | <EvanR> | and I've done it enough xD |
2022-01-25 20:23:10 +0100 | <[exa]> | the most problematic thing on GPUs is that the basic imperative building blocks there (kernels) do not compose well at all (you can run them serially but you usually lose tons of cache performance, which is the main point for using GPUs) |
2022-01-25 20:23:23 +0100 | dmitrydidi | (~dmitrydid@2a02:a317:e040:3700:d129:fb7:b5de:86bb) () |
2022-01-25 20:23:35 +0100 | <[exa]> | and there really aren't many "better languages" to specify kernels in more composable way; check out perhaps Accelerate or Futhark |
2022-01-25 20:24:00 +0100 | <[exa]> | and AFAIK the human optimization intervention there is still mostly uncontested |
2022-01-25 20:24:51 +0100 | <[exa]> | I wish there was a good math for cache efficient array traversal shapes |
2022-01-25 20:27:38 +0100 | nightbreak | (~nightbrea@nat-168-7-239-4.rice.edu) |
2022-01-25 20:27:39 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 20:28:23 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2022-01-25 20:28:51 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) |
2022-01-25 20:29:00 +0100 | <EvanR> | what's inefficient is doing nothing because the API is too horrible or having nothing to show for a bunch of work that needs to be abandoned because it took too much time before you even got 1 picture |
2022-01-25 20:30:29 +0100 | bontaq` | bontaq |
2022-01-25 20:30:33 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 20:31:05 +0100 | statusfailed | (~statusfai@statusfailed.com) (Quit: leaving) |
2022-01-25 20:31:58 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-25 20:32:46 +0100 | <[exa]> | EvanR: anyway why is Accelerate not the thing you're aiming for? |
2022-01-25 20:33:57 +0100 | statusfailed | (~statusfai@statusfailed.com) |
2022-01-25 20:34:01 +0100 | <EvanR> | high performance parallel arrays for haskell |
2022-01-25 20:34:16 +0100 | <EvanR> | is this related to graphics somehow? |
2022-01-25 20:34:48 +0100 | <statusfailed> | EvanR: are you talking about Accelerate? |
2022-01-25 20:34:51 +0100 | <[exa]> | yeah it executes on GPUs |
2022-01-25 20:35:28 +0100 | <EvanR> | the goal isn't really to make code run on GPUs, the goal is to make pictures |
2022-01-25 20:35:36 +0100 | <geekosaur> | well, that does not guarantee it's useful for graphics |
2022-01-25 20:35:43 +0100 | <dolio> | Pictures are arrays. |
2022-01-25 20:35:46 +0100 | <geekosaur> | you probably want opengl for that |
2022-01-25 20:35:53 +0100 | <EvanR> | pictures are functions from the plane to color |
2022-01-25 20:36:10 +0100 | max22- | (~maxime@2a01cb08833598002ff4585ddd5d42b3.ipv6.abo.wanadoo.fr) |
2022-01-25 20:37:08 +0100 | <EvanR> | and a lot of techniques in these articles involve composing pictures in weird ways, layering |
2022-01-25 20:37:17 +0100 | <[exa]> | EvanR: how big are your pictures? are the pixels computed independently? how regular is the computation? |
2022-01-25 20:37:42 +0100 | <EvanR> | well pictures are infinite until you crop them |
2022-01-25 20:37:59 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 20:37:59 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 20:37:59 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 20:38:00 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection) |
2022-01-25 20:38:20 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) |
2022-01-25 20:38:22 +0100 | <[exa]> | how much are you going to crop the pictures? :D |
2022-01-25 20:38:58 +0100 | <[exa]> | the problem there ^ is that answers to the questions basically randomly effect whether you can or can't efficiently use GPU for the problem |
2022-01-25 20:39:23 +0100 | <dolio> | I thought you were talking about GPUs. |
2022-01-25 20:39:25 +0100 | <EvanR> | I care less about efficiency right now and more about working |
2022-01-25 20:39:29 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) |
2022-01-25 20:39:34 +0100 | <EvanR> | in finite time |
2022-01-25 20:39:46 +0100 | <dolio> | On which GPU is a picture represented by an abstract function from the plane to colors? |
2022-01-25 20:39:47 +0100 | <[exa]> | with simple things you might be good, with even slightly complicated things you'll be just wasting a _lot_ of energy unless you spend extra time optimizing it in a weird ways |
2022-01-25 20:39:49 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-01-25 20:40:03 +0100 | <EvanR> | no the GPU was not the focus of the question |
2022-01-25 20:40:11 +0100 | <EvanR> | it was about purity and the opengl api |
2022-01-25 20:40:16 +0100 | <[exa]> | ah okay |
2022-01-25 20:40:25 +0100 | <EvanR> | whose backends end up being weird even if no GPU is involved |
2022-01-25 20:40:31 +0100 | <[exa]> | why you need opengl for making pictures tho? (sorry for questioning, still trying to understand the problem) |
2022-01-25 20:41:21 +0100 | <EvanR> | good point, I have made imaging DSLs before, definitely slower to run |
2022-01-25 20:41:46 +0100 | <monochrom> | OpenGL was designed imperatively. But it is the state kind of imperative rather than the I/O kind. You can always think of it as a state monad in the worst case. And the state is even pretty simple, it's a stack of matrices. |
2022-01-25 20:41:59 +0100 | <EvanR> | but also, if you get pictures by writing it with the OpenGL stuff, then you could hypothetically take the finished result and put it into a more performance engine |
2022-01-25 20:42:14 +0100 | <EvanR> | without first needing to mess with the engine |
2022-01-25 20:42:21 +0100 | <monochrom> | Still, this does not mean that a Haskell compiler today compiles pure code to OpenGL calls. |
2022-01-25 20:42:25 +0100 | <EvanR> | so prototyping visual effects |
2022-01-25 20:42:34 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) (Remote host closed the connection) |
2022-01-25 20:42:43 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) |
2022-01-25 20:42:55 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 20:43:00 +0100 | <[exa]> | openGL is a DSL for setting up a very regular graphics pipeline and then firing as much data through it as quickly as possible, so it might be useful but you should be aware of the limitations, which are very often derived from the design of GPU hardware |
2022-01-25 20:43:01 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds) |
2022-01-25 20:43:38 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 20:43:51 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 20:43:56 +0100 | ubert1 | (~Thunderbi@p200300ecdf099416f339e1e74dd0e9e7.dip0.t-ipconnect.de) (Remote host closed the connection) |
2022-01-25 20:44:00 +0100 | <EvanR> | literal functions from R2 to Color work well, they are just very slow |
2022-01-25 20:44:01 +0100 | <dolio> | Or derived from the design of GPU hardware 15 years ago. |
2022-01-25 20:44:09 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2022-01-25 20:44:18 +0100 | <[exa]> | for example, if you have a pure function that does (x,y) -> PixelColor and that doesn't contain any cases, that's literally THE GPU usecase and it's going to be fast |
2022-01-25 20:44:20 +0100 | masa | (~masa@146.185.219.13) |
2022-01-25 20:44:25 +0100 | <masa> | hi |
2022-01-25 20:44:26 +0100 | <EvanR> | uploading the few things to the GPU, creating 1 picture, downloading the frame buffer and deleting the objects is much faster, surprisingly |
2022-01-25 20:44:30 +0100 | <masa> | whats haskell? |
2022-01-25 20:44:37 +0100 | <[exa]> | EvanR: yeah that's Accelerate. :] |
2022-01-25 20:44:46 +0100 | <monochrom> | Hey, C idioms are derived from the design of CPU 55 years ago. We're doing OK! :) |
2022-01-25 20:45:03 +0100 | nightbreak | (~nightbrea@nat-168-7-239-4.rice.edu) (Quit: Signing off for now...) |
2022-01-25 20:45:06 +0100 | <dolio> | Are we, though? :ΓΎ |
2022-01-25 20:45:06 +0100 | <[exa]> | dolio: true, maybe more like 25. :D |
2022-01-25 20:45:45 +0100 | <geekosaur> | 50's probably right |
2022-01-25 20:46:01 +0100 | <masa> | americans r u? |
2022-01-25 20:46:16 +0100 | masa | (~masa@146.185.219.13) () |
2022-01-25 20:46:42 +0100 | <monochrom> | Haskell is a programming language. |
2022-01-25 20:46:45 +0100 | <geekosaur> | dammit, was going to answer but had to check something outside my apt |
2022-01-25 20:46:59 +0100 | <monochrom> | Oh you can answer whether you're American. :) |
2022-01-25 20:47:33 +0100 | <dsal> | americans.ru |
2022-01-25 20:47:33 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds) |
2022-01-25 20:47:38 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 20:49:27 +0100 | <monochrom> | dsal: Did you know of Sheet Music Boss's American anthem but Russian? https://youtu.be/JSAzUlJd4yg |
2022-01-25 20:49:32 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) |
2022-01-25 20:50:40 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) |
2022-01-25 20:50:59 +0100 | <dsal> | That's amazing. |
2022-01-25 20:51:06 +0100 | <monochrom> | :) |
2022-01-25 20:51:50 +0100 | <monochrom> | Notice that at some point the left hand is already doing the Russian anthem subtly. |
2022-01-25 20:52:03 +0100 | <EvanR> | [exa], yeah in fact that's the only form allowed for a fragment program xD |
2022-01-25 20:52:48 +0100 | <EvanR> | so the old school fire effect has to be done iteratively |
2022-01-25 20:54:02 +0100 | yauhsien_ | (~yauhsien@61-231-17-3.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-01-25 20:54:55 +0100 | ProfSimm | (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds) |
2022-01-25 20:55:13 +0100 | fendor | (~fendor@77.119.167.8.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-01-25 20:56:40 +0100 | yassernasc | (~yassernas@2804:29b8:505a:f33d:ccf7:da52:f075:1ff9) (Remote host closed the connection) |
2022-01-25 20:56:57 +0100 | yassernasc | (~yassernas@2804:29b8:505a:f33d:ccf7:da52:f075:1ff9) |
2022-01-25 20:57:38 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) (Remote host closed the connection) |
2022-01-25 20:59:17 +0100 | pieguy128_ | (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-188.dsl.bell.ca) (Ping timeout: 240 seconds) |
2022-01-25 20:59:39 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4) |
2022-01-25 21:00:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-25 21:00:50 +0100 | RFV1 | (~Thunderbi@171.red-88-13-191.dynamicip.rima-tde.net) |
2022-01-25 21:01:32 +0100 | RFV | (~Thunderbi@171.red-88-13-191.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2022-01-25 21:01:32 +0100 | RFV1 | RFV |
2022-01-25 21:02:24 +0100 | RFV | (~Thunderbi@171.red-88-13-191.dynamicip.rima-tde.net) (Client Quit) |
2022-01-25 21:04:52 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 250 seconds) |
2022-01-25 21:04:57 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 240 seconds) |
2022-01-25 21:05:56 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 21:07:05 +0100 | juhp | (~juhp@128.106.188.82) |
2022-01-25 21:07:13 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) |
2022-01-25 21:07:20 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-52-65-93-194-105.dsl.bell.ca) |
2022-01-25 21:07:27 +0100 | yassernasc | (~yassernas@2804:29b8:505a:f33d:ccf7:da52:f075:1ff9) (Remote host closed the connection) |
2022-01-25 21:12:36 +0100 | <oak-> | I'd say use of Vulkan is rather simple, and my opinion is that in the end it is easier to understand than OpenGL. You just need to do many initialization steps before you get to draw your first triangle, because Vulkan wants to support all common desktop operating systems (Linux, macOs, Windows) and Android, and all different kinds of graphics hardware and color spaces |
2022-01-25 21:14:01 +0100 | <oak-> | I didn't read the whole discussion, but yes it provides quite good threading support, although you rarely need to use more than 1 thread for pushing the command queues to the GPU |
2022-01-25 21:14:38 +0100 | ardell | (~ardell@user/ardell) (Quit: Konversation terminated!) |
2022-01-25 21:16:40 +0100 | lispy | (~lispy4@84.69.59.93) (Quit: Leaving) |
2022-01-25 21:17:05 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-25 21:17:32 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-25 21:17:38 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-01-25 21:18:04 +0100 | briandaed | (~root@185.234.208.208.r.toneticgroup.pl) (Quit: Lost terminal) |
2022-01-25 21:20:46 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2022-01-25 21:20:49 +0100 | <EvanR> | the issue is having a pure value that can be interpreted as an image by secretly using the GPU in the background. It seems feasible only if you do so from 1 thread |
2022-01-25 21:20:59 +0100 | <EvanR> | which kind of hurts purity |
2022-01-25 21:21:49 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Ping timeout: 240 seconds) |
2022-01-25 21:22:41 +0100 | <EvanR> | because it doesn't obey the same rules as other pure values that can be arbitrarily passed between forkIO threads in haskell |
2022-01-25 21:24:38 +0100 | <EvanR> | s/using the GPU/using OpenGL regardless of if you have a GPU/ |
2022-01-25 21:25:52 +0100 | <EvanR> | so even if you don't want to use multiple threads, the fact that you can't is a mark against the idea |
2022-01-25 21:27:20 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-25 21:28:23 +0100 | <EvanR> | (I wonder how GMP integers gets around this) |
2022-01-25 21:29:23 +0100 | michalz | (~michalz@185.246.204.58) (Remote host closed the connection) |
2022-01-25 21:30:47 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-01-25 21:32:02 +0100 | <monochrom> | I think GMP doesn't have state. It's reentrant and MT-safe and all that. |
2022-01-25 21:32:09 +0100 | <EvanR> | ah |
2022-01-25 21:32:33 +0100 | <monochrom> | Whereas a graphics card is a singleton piece of resource that needs a mutex guard. |
2022-01-25 21:32:57 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds) |
2022-01-25 21:33:22 +0100 | <monochrom> | The CPU is too, but you no longer think of it because the OS has already time-sliced for you (a brute kind of mutex). |
2022-01-25 21:33:27 +0100 | <EvanR> | I was going to say |
2022-01-25 21:34:03 +0100 | <monochrom> | Logically you could write/add an OS to time-slice GPU too. I don't know whether people do it. |
2022-01-25 21:34:17 +0100 | <EvanR> | the 16 CPUs I have is indeed 1 piece of resource |
2022-01-25 21:34:39 +0100 | <monochrom> | Oh 16 is in O(1). |
2022-01-25 21:35:00 +0100 | <EvanR> | the window system and compositor is the GPU time-slicer I guess |
2022-01-25 21:35:07 +0100 | <monochrom> | The point is if you have n threads, n -> infinity, you are still mutexing. |
2022-01-25 21:35:11 +0100 | <EvanR> | or kvm system |
2022-01-25 21:35:34 +0100 | <EvanR> | er, kms |
2022-01-25 21:37:11 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) |
2022-01-25 21:37:46 +0100 | <EvanR> | how long before the cpu is eliminated and moved into the gpu in a bizarre form of reverse evolution |
2022-01-25 21:38:05 +0100 | <[exa]> | "thread switch" on GPU is pretty heavy (the equivalent of a "register file" is like half a megabyte) so I'm not really expecting anything better than now |
2022-01-25 21:38:11 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-25 21:38:36 +0100 | <tomsmeding> | you can definitely access a gpu from multiple processes |
2022-01-25 21:38:38 +0100 | <monochrom> | Yeah, x86 context switching is merely a few registers, and people are already complaining that it's too slow. |
2022-01-25 21:39:29 +0100 | <tomsmeding> | the driver probably muxes that all to a single stream of information that goes over the PCIe connection, but I'm not doing anything interesting and there are 7 processes having an allocation on my gpu right now |
2022-01-25 21:39:35 +0100 | <monochrom> | So "slow" that people make ring-0 device drivers when the whole point of the x86 4 ring design is to put device drivers at ring 1 precisely because we don't want them to cause blue screens. |
2022-01-25 21:40:03 +0100 | geekosaur | misses os/2 dammit :( |
2022-01-25 21:40:06 +0100 | <tomsmeding> | (Xorg and some other programs that are based on a web browser, because web browsers think they are cool and have custom rendering code) |
2022-01-25 21:40:12 +0100 | <[exa]> | monochrom: +1 |
2022-01-25 21:40:41 +0100 | <monochrom> | Oh I think even in the days of OS/2 Warp, they're already doing ring-0 device drivers. |
2022-01-25 21:40:55 +0100 | <geekosaur> | video drivers at least were ring 1 |
2022-01-25 21:41:21 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2022-01-25 21:41:22 +0100 | <[exa]> | tomsmeding: you can actually quite reliably cause rendering pauses on most OSes I've seen by just submitting a sufficiently long-running item to GPU queue from vulkan |
2022-01-25 21:42:01 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-25 21:42:03 +0100 | <tomsmeding> | [exa]: no one said that all those streams were actually running in parallel on the device :) |
2022-01-25 21:42:22 +0100 | <[exa]> | yeah that's literally rare. |
2022-01-25 21:43:05 +0100 | <EvanR> | what's wrong with this computronium, it is massively parallel but can only do 1 thing at a time? |
2022-01-25 21:43:07 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-01-25 21:43:24 +0100 | <tomsmeding> | only one client can tell it what 1e6 things to run in parallel |
2022-01-25 21:43:29 +0100 | <monochrom> | Each "1 thing" demands all of the massive parallelism. |
2022-01-25 21:43:52 +0100 | zer0bitz | (~zer0bitz@2001:2003:f444:a000:2055:673d:3155:da63) (Ping timeout: 250 seconds) |
2022-01-25 21:43:56 +0100 | <tomsmeding> | also a gpu is mostly a SIMD (single-instruction multiple-data) device, just very M |
2022-01-25 21:44:05 +0100 | <monochrom> | Programmers are control freaks, performance freaks, monopoly freaks. |
2022-01-25 21:44:06 +0100 | <EvanR> | I question that situation |
2022-01-25 21:44:09 +0100 | <[exa]> | unreal voice: M-M-M-Muuultiple! |
2022-01-25 21:44:21 +0100 | <EvanR> | do all the 1 things really need all the massive parallelism |
2022-01-25 21:44:33 +0100 | <tomsmeding> | modern gpus have a couple of processors in them (nvidia calls them SM's I think), something like 10, that can actually work sort of independently, but inside those "processors", it's one thing lots of times |
2022-01-25 21:44:34 +0100 | <EvanR> | as if each of the 300 processes I'm running use 100% cpu |
2022-01-25 21:44:54 +0100 | <EvanR> | rather than avg of 0 |
2022-01-25 21:45:05 +0100 | kuribas | (~user@ptr-25vy0i9v7xwr83cod1i.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2022-01-25 21:45:07 +0100 | <tomsmeding> | EvanR: the things that the vocal minority cares about do (i.e. games) |
2022-01-25 21:45:26 +0100 | <monochrom> | games and crypto mining. |
2022-01-25 21:45:28 +0100 | <[exa]> | EvanR: that's the point, GPU is a giant heap of CPUs that share control (!) aka run in lockstep, with a really thick cabling into the memory. Something for painting the pixels en masse. |
2022-01-25 21:45:29 +0100 | <tomsmeding> | right |
2022-01-25 21:45:37 +0100 | <EvanR> | I guess... you gotta have a youtube channel where you run 9 call of duties at once |
2022-01-25 21:45:52 +0100 | <monochrom> | There is no end in the pursuit of more FPS or faster mining. |
2022-01-25 21:46:01 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
2022-01-25 21:46:15 +0100 | <monochrom> | If 100 FPS needs only 50% of your graphic card, people will then want 200 FPS. |
2022-01-25 21:46:31 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-25 21:46:31 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-25 21:46:31 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-25 21:46:47 +0100 | <EvanR> | most applications, even some real time games, don't even animate most of the time |
2022-01-25 21:47:17 +0100 | <davean> | ts not even that. A *lot* of algs work well in VERY wide SIMD |
2022-01-25 21:47:24 +0100 | <ephemient> | may the day come when there are no more bits to be mined |
2022-01-25 21:47:27 +0100 | <monochrom> | (Me, I conscious set 30 FPS in my RTS games. I don't even need 60. I do have a bit of need for vsync though.) |
2022-01-25 21:47:29 +0100 | <[exa]> | EvanR: imagine you need to paint 4K screen 120times per second on a CPU pixel-by-pixel, even without any other computation-- most CPUs just wouldn't make it |
2022-01-25 21:47:45 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7175:fef6:491:2dba) |
2022-01-25 21:47:59 +0100 | <EvanR> | yeah I've been through that math |
2022-01-25 21:48:07 +0100 | <davean> | [exa]: Uh, I can barely think of any that could |
2022-01-25 21:48:30 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2022-01-25 21:48:47 +0100 | <monochrom> | [exa]: No no no, imagine 5 years down the road we will be talking about 8K and 1200 FPS >:) |
2022-01-25 21:48:48 +0100 | <[exa]> | technically it could be done with a few GHz, but you don't wanna burn all your cpu power for painting same-colored pixels |
2022-01-25 21:49:09 +0100 | <[exa]> | and yeah, it needs to get scalable |
2022-01-25 21:49:38 +0100 | <EvanR> | increasing FPS sounds like there will need to be a re-think |
2022-01-25 21:49:47 +0100 | <tomsmeding> | another nice thought experiment now that we're talking about 4K at 120Hz: think about the amount of data that needs to go over the video cable from your gpu to your monitor |
2022-01-25 21:49:49 +0100 | <davean> | EvanR: why do you say that? |
2022-01-25 21:49:51 +0100 | <[exa]> | the other spoiler: efficient parallelism is grossly impure |
2022-01-25 21:50:08 +0100 | <tomsmeding> | and then you realise why they're thick and why 4k at 120Hz won't work with an old hdmi cable |
2022-01-25 21:50:13 +0100 | <EvanR> | instead of dumping more entire frames, you display the deltas, which could come much faster, and be compressed as hermite polynomials or something |
2022-01-25 21:50:30 +0100 | <EvanR> | instead of going from 1200 to 2400 or whatever |
2022-01-25 21:50:47 +0100 | <[exa]> | EvanR: yeah that was literally what the first GPUs did |
2022-01-25 21:50:48 +0100 | <davean> | EvanR: Uh, I hate to break it to you, but we've been there |
2022-01-25 21:50:51 +0100 | <davean> | we've done delta rendering |
2022-01-25 21:50:57 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-25 21:50:59 +0100 | <monochrom> | I think someone should think of some DCT on video transmission from graphics card to display... |
2022-01-25 21:50:59 +0100 | <davean> | We still do a little |
2022-01-25 21:51:14 +0100 | <EvanR> | and instead of discrete deltas, they are derivatives |
2022-01-25 21:51:23 +0100 | <EvanR> | hence the polynomials |
2022-01-25 21:51:29 +0100 | <monochrom> | Ah OK, people are smarter than me. :) |
2022-01-25 21:51:38 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) (Remote host closed the connection) |
2022-01-25 21:51:50 +0100 | <EvanR> | then the limit is information density and not number of frames per second |
2022-01-25 21:52:00 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 21:52:21 +0100 | <[exa]> | you need circuit density and lots of power to decode information density into screenable info |
2022-01-25 21:52:27 +0100 | <monochrom> | I need to learn Hermite polynomials some day. |
2022-01-25 21:53:07 +0100 | <EvanR> | yeah may you need a piece of silicon that just does an integral in some fancy way instead of computations |
2022-01-25 21:53:30 +0100 | <davean> | EvanR: integrals *are* computation |
2022-01-25 21:53:40 +0100 | <davean> | infact ... if we go back to the origional point of computers ... |
2022-01-25 21:53:41 +0100 | <monochrom> | Yeah it's easy for me to propose DCTing and deltaing and DCTing the delta and delating the DCT of delta and ... but then it means needing more GPU :) |
2022-01-25 21:53:59 +0100 | <davean> | EvanR: I think your thinking is twisted up here |
2022-01-25 21:54:07 +0100 | <EvanR> | the point of computers to make my solitaire cards jump out at me when I win |
2022-01-25 21:54:10 +0100 | <[exa]> | EvanR: we're there, GPUs are literally programmable things for doing these "simple computations" en masse |
2022-01-25 21:54:25 +0100 | <EvanR> | right, I think you misunderstood what I meant |
2022-01-25 21:54:33 +0100 | <[exa]> | yeah let's focus on that |
2022-01-25 21:54:35 +0100 | <davean> | Thats *WHY* THey're SIMT |
2022-01-25 21:54:35 +0100 | <EvanR> | a simpler component, not 9000 transistors |
2022-01-25 21:54:41 +0100 | <EvanR> | for 1 thing |
2022-01-25 21:54:43 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
2022-01-25 21:54:45 +0100 | <davean> | EvanR: it can't be simpler really |
2022-01-25 21:54:52 +0100 | <davean> | EvanR: your approach ends up more complicated |
2022-01-25 21:54:52 +0100 | <EvanR> | not with that attitude |
2022-01-25 21:54:53 +0100 | <monochrom> | integral = multiple-and-add = what GPUs and signal processing chips already do |
2022-01-25 21:55:00 +0100 | <davean> | EvanR: People *have done this* |
2022-01-25 21:55:02 +0100 | <monochrom> | err, multiply-and-add |
2022-01-25 21:55:13 +0100 | <davean> | we know what it looks like |
2022-01-25 21:55:16 +0100 | <EvanR> | I understand what you're saying |
2022-01-25 21:55:30 +0100 | <EvanR> | try to imagine that I do xD |
2022-01-25 21:55:35 +0100 | <[exa]> | EvanR: anyway, what was your original concern? you wanted to generate images more quickly? |
2022-01-25 21:55:42 +0100 | <EvanR> | nevermind that |
2022-01-25 21:55:48 +0100 | <monochrom> | more purely |
2022-01-25 21:56:04 +0100 | <EvanR> | all I'm going to get out of you guys is a "don't use OpenGL" meme |
2022-01-25 21:56:41 +0100 | <[exa]> | because I might really have misunderstood the task you are facing |
2022-01-25 21:57:20 +0100 | <[exa]> | nothing can really get more pure for generating images than say juicypixels' (x,y)->fn->Picture approach |
2022-01-25 21:57:29 +0100 | <EvanR> | yeah I've done that |
2022-01-25 21:57:31 +0100 | <monochrom> | I don't think there is a task. I think there is an intellectual inquiry. Can graphics be expressed in pure FP terms. |
2022-01-25 21:57:42 +0100 | <[exa]> | so I'm myself wondering how come we're hating opengl now for that purpose :D |
2022-01-25 21:57:57 +0100 | <davean> | OpenGL is a pretty bad API |
2022-01-25 21:58:01 +0100 | <EvanR> | ^ |
2022-01-25 21:58:10 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-01-25 21:58:27 +0100 | <davean> | Its designed for a fixed function pipeline, it is completely disconnected from the compute, and its approach to matrix stacks, etc is very stareful and issue ridden |
2022-01-25 21:58:32 +0100 | <[exa]> | davean: c'mon it's so nice for the C peoples out there, you can glEnable(GL_SMOOTH), then glBegin(GL_TRIANGES) and then WOW |
2022-01-25 21:58:37 +0100 | <[exa]> | <3 |
2022-01-25 21:58:45 +0100 | <davean> | [exa]: no it isn't |
2022-01-25 21:58:50 +0100 | <EvanR> | sigh |
2022-01-25 21:58:53 +0100 | <[exa]> | ;_; |
2022-01-25 21:58:59 +0100 | <davean> | [exa]: Look, I ended up in this channel *because* I did graphics |
2022-01-25 21:59:05 +0100 | <davean> | opengl isn't nice :-p |
2022-01-25 21:59:15 +0100 | <davean> | it was the first workable thing |
2022-01-25 21:59:21 +0100 | <[exa]> | I wasn't realistic but it had its place back then |
2022-01-25 21:59:30 +0100 | <ski> | @remember monochrom Programmers are control freaks, performance freaks, monopoly freaks. |
2022-01-25 21:59:30 +0100 | <lambdabot> | I will never forget. |
2022-01-25 21:59:35 +0100 | <davean> | Yes, first workable thing |
2022-01-25 21:59:40 +0100 | <monochrom> | :) |
2022-01-25 21:59:41 +0100 | <[exa]> | better than [tada.wav] directX1 |
2022-01-25 21:59:42 +0100 | <davean> | well, IrisGL was |
2022-01-25 21:59:59 +0100 | <davean> | [exa]: DirectX, such a latecomer |
2022-01-25 22:00:15 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-01-25 22:00:30 +0100 | <davean> | [exa]: I mean DirectX was a half decade later, and OpenGL wasn't even what people started on |
2022-01-25 22:00:53 +0100 | <[exa]> | yeah |
2022-01-25 22:01:01 +0100 | <[exa]> | what was that thing from voodoo cards called |
2022-01-25 22:01:14 +0100 | <EvanR> | glide or something |
2022-01-25 22:01:24 +0100 | <[exa]> | old magicks. |
2022-01-25 22:03:48 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2022-01-25 22:04:29 +0100 | <Rembane> | GL? |
2022-01-25 22:05:25 +0100 | <geekosaur> | I'm not sure it was evenn the first workable thing. Just the first one made generally available (SGI GL) |
2022-01-25 22:06:09 +0100 | <geekosaur> | SGI opened their specs so other people could implement it, and OpenGL was born |
2022-01-25 22:06:58 +0100 | <davean> | geekosaur: I cited IrixGL! |
2022-01-25 22:07:14 +0100 | <davean> | er, IrisGL |
2022-01-25 22:07:47 +0100 | <davean> | 20:59:42 davean well, IrisGL was |
2022-01-25 22:08:19 +0100 | <EvanR> | and since the turn of the millenium, people have been trying to get people to not use parts of OpenGL ever since. I should skip ahead and tell people not to use vulkan, if that's not already a thing xD |
2022-01-25 22:08:25 +0100 | <geekosaur> | right, but you cited it as "first workable thing", I'm saying "workable" took back seat to "open" |
2022-01-25 22:08:30 +0100 | <[exa]> | SGI was so underrated |
2022-01-25 22:10:35 +0100 | <[exa]> | then there was the second company that essentially invented tiling as used today everywhere, later bought by nVidia |
2022-01-25 22:11:48 +0100 | pavonia | (~user@user/siracusa) |
2022-01-25 22:12:25 +0100 | <davean> | [exa]: are you thinking PowerVR? |
2022-01-25 22:12:25 +0100 | <carbolymer> | I've added -ddump-simpl in the compilation options, and I ended up with a few screens of output for a fairly simple code |
2022-01-25 22:12:38 +0100 | <carbolymer> | can I add some markers in my code which would be visible there |
2022-01-25 22:12:49 +0100 | <carbolymer> | It's hard to find anything there |
2022-01-25 22:13:02 +0100 | <davean> | carbolymer: names make it through |
2022-01-25 22:13:33 +0100 | <carbolymer> | davean: well... they didn't in my case |
2022-01-25 22:13:45 +0100 | <carbolymer> | davean: or GHC aggressively inlined my functions |
2022-01-25 22:14:37 +0100 | Pickchea | (~private@user/pickchea) |
2022-01-25 22:15:11 +0100 | _ht | (~quassel@82-168-34-160.fixed.kpn.net) (Remote host closed the connection) |
2022-01-25 22:15:17 +0100 | <[exa]> | davean: yeah thanks, with the kyro GPUs |
2022-01-25 22:16:21 +0100 | <davean> | [exa]: as I said, I ended up in t his channel because I did graphics ... all you have to do is poke the scars |
2022-01-25 22:18:38 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-25 22:19:28 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Read error: Connection reset by peer) |
2022-01-25 22:19:36 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-25 22:19:49 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
2022-01-25 22:23:31 +0100 | xsperry | (~xs@user/xsperry) (Ping timeout: 256 seconds) |
2022-01-25 22:24:38 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-01-25 22:26:14 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) |
2022-01-25 22:28:03 +0100 | mikoto-chan | (~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds) |
2022-01-25 22:29:17 +0100 | <EvanR> | :k '[(Int,Char), (Bool,())] |
2022-01-25 22:29:18 +0100 | <lambdabot> | [*] |
2022-01-25 22:29:22 +0100 | <EvanR> | :k ['(Int,Char), '(Bool,())] |
2022-01-25 22:29:23 +0100 | <lambdabot> | [(*, *)] |
2022-01-25 22:29:26 +0100 | <EvanR> | :k '['(Int,Char), '(Bool,())] |
2022-01-25 22:29:27 +0100 | <lambdabot> | error: parse error on input β'β |
2022-01-25 22:30:51 +0100 | <EvanR> | :k '(Int,Char) ': '(Bool,()) ': '[] -- :'( |
2022-01-25 22:30:52 +0100 | <lambdabot> | [(*, *)] |
2022-01-25 22:31:08 +0100 | <geekosaur> | :k '[ '(Int,Char), '(Bool,())] |
2022-01-25 22:31:09 +0100 | <lambdabot> | [(*, *)] |
2022-01-25 22:31:21 +0100 | <geekosaur> | '[' looks too much like a lifted Char |
2022-01-25 22:31:30 +0100 | <EvanR> | so that's what it's talking about |
2022-01-25 22:31:41 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2022-01-25 22:31:47 +0100 | <EvanR> | thanks |
2022-01-25 22:33:09 +0100 | slack1256 | (~slack1256@191.126.227.197) (Ping timeout: 256 seconds) |
2022-01-25 22:33:46 +0100 | jushur | (~human@user/jushur) |
2022-01-25 22:38:03 +0100 | c_wraith | (~c_wraith@adjoint.us) (Ping timeout: 256 seconds) |
2022-01-25 22:38:13 +0100 | c_wraith | (~c_wraith@adjoint.us) |
2022-01-25 22:43:11 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 22:45:31 +0100 | ensyde | (~ensyde@2600:1700:2050:1040:6816:2795:9c3:9492) |
2022-01-25 22:47:52 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Remote host closed the connection) |
2022-01-25 22:49:25 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 22:53:32 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) (Ping timeout: 240 seconds) |
2022-01-25 22:58:06 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Remote host closed the connection) |
2022-01-25 22:58:32 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-01-25 23:00:01 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-01-25 23:01:37 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) |
2022-01-25 23:03:47 +0100 | <EvanR> | https://paste.tomsmeding.com/kdAstKkN https://i.imgur.com/KqgmKh7.png |
2022-01-25 23:05:27 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-01-25 23:06:27 +0100 | haskellberryfinn | (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-01-25 23:07:47 +0100 | <tomsmeding> | the venerable triangle |
2022-01-25 23:08:07 +0100 | <tomsmeding> | I really need to stop being pinged by paste links |
2022-01-25 23:08:28 +0100 | <geekosaur> | heh |
2022-01-25 23:08:29 +0100 | <monochrom> | Oh heh. |
2022-01-25 23:08:32 +0100 | <EvanR> | there's some extraneous data there but it lets you upload whatever geometry, images |
2022-01-25 23:08:49 +0100 | <EvanR> | shows the result, doesn't yet give you the PNG back |
2022-01-25 23:08:55 +0100 | <monochrom> | Would you like to change the website name, or would you rather change your IRC nick? :) |
2022-01-25 23:09:26 +0100 | <tomsmeding> | monochrom: I would rather make weechat not ping me if it has 'paste.' before and '.com' after |
2022-01-25 23:09:36 +0100 | <tomsmeding> | but it seems it might not support regexen? |
2022-01-25 23:09:38 +0100 | <tomsmeding> | hmm |
2022-01-25 23:09:58 +0100 | <monochrom> | EvanR: If I want to draw a circle/disc, will it be one single "circle" command, or will it be a hundred triangles? |
2022-01-25 23:10:04 +0100 | <tomsmeding> | or do you guys have amazing suggestions for a domain name |
2022-01-25 23:10:04 +0100 | <ephemient> | EvanR, trying to make something like https://github.com/sleexyz/hylogen ? |
2022-01-25 23:10:42 +0100 | <EvanR> | a disc is just 1 triangle isn't it |
2022-01-25 23:11:00 +0100 | <EvanR> | but no this is raw gl only |
2022-01-25 23:11:03 +0100 | <monochrom> | If I say https://pastetomsmeding.com/kdAstKkN , will it ping you? |
2022-01-25 23:11:13 +0100 | <EvanR> | sorry, I can use a different paste site |
2022-01-25 23:11:17 +0100 | <tomsmeding> | monochrom: no |
2022-01-25 23:11:25 +0100 | <tomsmeding> | EvanR: no lol I need to fix this not you |
2022-01-25 23:11:31 +0100 | <monochrom> | Then perhaps that's a good domain name :) |
2022-01-25 23:11:38 +0100 | <tomsmeding> | I though it was amusing for a while |
2022-01-25 23:12:51 +0100 | <EvanR> | ephemient, yeah those are great |
2022-01-25 23:12:51 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Read error: Connection reset by peer) |
2022-01-25 23:12:54 +0100 | wombat871 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-01-25 23:13:25 +0100 | <monochrom> | Ugh all the tomato.{com,org,net} are taken. I would think that paste.tomato.??? would be cute :) |
2022-01-25 23:13:35 +0100 | <tomsmeding> | :p |
2022-01-25 23:13:48 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2022-01-25 23:14:09 +0100 | <monochrom> | Ugh even toma.to is taken. |
2022-01-25 23:14:18 +0100 | <tomsmeding> | of course it is |
2022-01-25 23:15:11 +0100 | <SrPx> | Is `Data.List` 's sort fast? Should it be used where performance matters, or is there a well known faster (pure) version among the 3rd party libs? |
2022-01-25 23:15:29 +0100 | <EvanR> | also I am pleasantly surprised the type inference is working here |
2022-01-25 23:16:24 +0100 | <monochrom> | Data.List.sort is probably as fast as sorting [] goes. Someone really redesign and benchmarked the algorithm. |
2022-01-25 23:16:50 +0100 | <monochrom> | I don't think anyone has beaten it since then. |
2022-01-25 23:17:09 +0100 | <EvanR> | it's an unfortunate data structure for sorting |
2022-01-25 23:17:27 +0100 | <monochrom> | Yeah if you want faster you have to first give up the []ness. |
2022-01-25 23:18:41 +0100 | <SrPx> | well I guess I just have beaten it by 2x :pp |
2022-01-25 23:18:51 +0100 | <SrPx> | by just fixing something silly with it? |
2022-01-25 23:18:52 +0100 | <EvanR> | nice |
2022-01-25 23:18:54 +0100 | <SrPx> | or am I insane |
2022-01-25 23:19:11 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) (Remote host closed the connection) |
2022-01-25 23:19:16 +0100 | <maerwald> | likely |
2022-01-25 23:19:21 +0100 | <ephemient> | xn--fi8h is the IDN encoding of π
, if you can find some registry to register that at⦠|
2022-01-25 23:19:23 +0100 | <maerwald> | but so are we |
2022-01-25 23:19:27 +0100 | CHUD | (~CHUD@host-80-41-89-108.as13285.net) |
2022-01-25 23:19:51 +0100 | <geekosaur> | tomsmeding, https://weechat.org/scripts/tag/highlight/ last plugin on the page looks interesting |
2022-01-25 23:20:27 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-01-25 23:21:41 +0100 | <tomsmeding> | geekosaur: indeed, but not _quite_: if someone says 'tomsmeding: https://paste.tomsmeding.com/...', then I want a highlight |
2022-01-25 23:22:20 +0100 | <geekosaur> | it's a python script, you could probably edit it to do that |
2022-01-25 23:22:42 +0100 | <tomsmeding> | apparently weechat natively supports highlighting via a regex, but a posix ERE, which doesn't support negative lookahead -.- |
2022-01-25 23:22:45 +0100 | <tomsmeding> | geekosaur: fair |
2022-01-25 23:23:34 +0100 | <geekosaur> | or there are ugly ways to simulate negative lookahead |
2022-01-25 23:24:45 +0100 | <geekosaur> | /foo([^.]|.[^c]|.c[^o]|.co[^m])/i |
2022-01-25 23:24:47 +0100 | <monochrom> | Perhaps unhighlight paste\.tomsmeding\.com/[^ ] |
2022-01-25 23:25:36 +0100 | monochrom | refrains from citing the unhelpful theorem about regular languages being closed under complement >:) |
2022-01-25 23:25:43 +0100 | <geekosaur> | maybe add $ as the first element of that (|||) |
2022-01-25 23:25:53 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-01-25 23:26:18 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Quit: Leaving) |
2022-01-25 23:26:19 +0100 | <tomsmeding> | monochrom: see my objection above, someone may have a highlight _and_ a paste link in the same message, then unhighlight would let me miss the message |
2022-01-25 23:26:40 +0100 | <SrPx> | can you guys help me see if I'm doing something wrong here? |
2022-01-25 23:26:40 +0100 | <monochrom> | Oh! Darn. |
2022-01-25 23:26:53 +0100 | <SrPx> | I'll post the gist |
2022-01-25 23:27:17 +0100 | <tomsmeding> | geekosaur: that's not too bad actually |
2022-01-25 23:27:18 +0100 | <SrPx> | https://gist.github.com/VictorTaelin/2a1cf354ea710f1eae1b6d15281813ca |
2022-01-25 23:27:32 +0100 | <SrPx> | it seems to be ~70% faster than Data.List's sort |
2022-01-25 23:27:43 +0100 | <SrPx> | I just took the code and changed a small thing though |
2022-01-25 23:28:37 +0100 | <tomsmeding> | SrPx: to get a decent benchmark result, use criterion and actually use random lists instead of a LCG :p |
2022-01-25 23:29:00 +0100 | <SrPx> | oh, fair enough. is it hard to use? |
2022-01-25 23:29:00 +0100 | <tomsmeding> | but π¦ naming is already a good aspect |
2022-01-25 23:29:06 +0100 | <SrPx> | let me see |
2022-01-25 23:29:26 +0100 | <SrPx> | tomsmeding: I wanted to mix merge and quick in a single word but I failed (mick? querge?) so I went with quack |
2022-01-25 23:29:28 +0100 | <tomsmeding> | there's probably decent tutorials around :p |
2022-01-25 23:29:55 +0100 | <SrPx> | eh |
2022-01-25 23:30:10 +0100 | <maerwald> | bottom-up mergesort is nice |
2022-01-25 23:30:13 +0100 | <SrPx> | perhaps another day |
2022-01-25 23:30:41 +0100 | <monochrom> | "quack sort" is not a very encouraging name >:) |
2022-01-25 23:30:48 +0100 | <maerwald> | functional sort algorithms are usually slow |
2022-01-25 23:30:58 +0100 | <SrPx> | monochrom: why not |
2022-01-25 23:31:16 +0100 | <maerwald> | I think I wrote a bottom up mergesort in Go |
2022-01-25 23:31:31 +0100 | wombat871 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Quit: WeeChat 2.2-dev) |
2022-01-25 23:31:32 +0100 | <monochrom> | "quack doctor" has the connotation of imposter |
2022-01-25 23:32:05 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-01-25 23:32:06 +0100 | imalsogreg | (~imalsogre@c-73-172-114-3.hsd1.md.comcast.net) (Remote host closed the connection) |
2022-01-25 23:32:11 +0100 | <SrPx> | looks appropriate |
2022-01-25 23:32:23 +0100 | <SrPx> | maerwald: what that means? |
2022-01-25 23:33:39 +0100 | <maerwald> | SrPx: it's an iterative version |
2022-01-25 23:34:01 +0100 | <SrPx> | I mean, being bottom-up |
2022-01-25 23:34:19 +0100 | <maerwald> | SrPx: https://gogs.hasufell.de/hasufell/go-challenge/src/branch/master/src/numbers/sort/sort.go#L76 |
2022-01-25 23:35:31 +0100 | <maerwald> | http://www.mathcs.emory.edu/~cheung/Courses/171/Syllabus/7-Sort/merge-sort5.html |
2022-01-25 23:36:05 +0100 | <maerwald> | I think mine was also significantly faster for the given input than the Go stdlib one |
2022-01-25 23:36:12 +0100 | <SrPx> | I see |
2022-01-25 23:36:34 +0100 | max22- | (~maxime@2a01cb08833598002ff4585ddd5d42b3.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2022-01-25 23:36:34 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-25 23:36:56 +0100 | <maerwald> | but for loops with index tricks are a plague |
2022-01-25 23:40:25 +0100 | <maerwald> | today we have AI to sort lists for you |
2022-01-25 23:40:26 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Read error: Connection reset by peer) |
2022-01-25 23:40:59 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 23:41:08 +0100 | <monochrom> | Do we also have AI to make lists that need sorting? |
2022-01-25 23:41:21 +0100 | <monochrom> | That would complete the cicle :) |
2022-01-25 23:42:02 +0100 | <maerwald> | no, that's a student assignment |
2022-01-25 23:43:31 +0100 | <monochrom> | heh |
2022-01-25 23:46:23 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) (Remote host closed the connection) |
2022-01-25 23:46:26 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:b072:e210:a25e:85eb) (Remote host closed the connection) |
2022-01-25 23:46:27 +0100 | Brandon_IX | (~brandon@178-79-138-117.ip.linodeusercontent.com) (Quit: Lost terminal) |
2022-01-25 23:46:28 +0100 | <hpc> | that part's easy, just take the students' sorting algorithms and run them over a sorted list |
2022-01-25 23:46:31 +0100 | ix | (~ix@2a02:8010:674f:0:cda6:d05:f0d7:4922) |
2022-01-25 23:46:48 +0100 | <hpc> | guaranteed shuffle |
2022-01-25 23:48:16 +0100 | <monochrom> | haha |
2022-01-25 23:50:32 +0100 | neceve | (~quassel@2.26.93.228) (Ping timeout: 240 seconds) |
2022-01-25 23:50:53 +0100 | <tomsmeding> | SrPx: tried to run your code on larger lists, fills up my memory |
2022-01-25 23:51:01 +0100 | <tomsmeding> | I have 32 GB so it's not that I have too little |
2022-01-25 23:51:13 +0100 | <SrPx> | tomsmeding: does that not happen with `sort`? |
2022-01-25 23:51:25 +0100 | <tomsmeding> | no |
2022-01-25 23:51:32 +0100 | <SrPx> | anyway this is not to be taken too seriously. will probably be slower than bubblesort for reversely-sorted lists |
2022-01-25 23:51:44 +0100 | <tomsmeding> | oh something is going wrong |
2022-01-25 23:52:06 +0100 | <SrPx> | going wrong? |
2022-01-25 23:52:27 +0100 | <tomsmeding> | I messed up copying your code |
2022-01-25 23:52:37 +0100 | <tomsmeding> | can you please write code that makes -Wall scream less |
2022-01-25 23:52:45 +0100 | <SrPx> | that said, I think quacksort would actually be quite fast if we had a way to pick a pivot that is close to the median of a list |
2022-01-25 23:53:13 +0100 | <tomsmeding> | https://tomsmeding.com/ss/get/tomsmeding/3Yga30 |
2022-01-25 23:53:15 +0100 | <tomsmeding> | on random lists |
2022-01-25 23:54:00 +0100 | <SrPx> | why is Wall so upset about shadowing? |
2022-01-25 23:54:19 +0100 | <tomsmeding> | it's error-prone, and I kind of agree |
2022-01-25 23:54:21 +0100 | alp | (~alp@user/alp) (Ping timeout: 268 seconds) |
2022-01-25 23:54:26 +0100 | <tomsmeding> | though here it's kind of a false positive |
2022-01-25 23:54:31 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:88e2:d81e:ca89:4a84) |
2022-01-25 23:54:58 +0100 | <SrPx> | hmm, so it is slightly faster? |
2022-01-25 23:55:43 +0100 | <tomsmeding> | seems so, on random lists |
2022-01-25 23:55:54 +0100 | imalsogreg | (~imalsogre@2601:147:300:f930::ee17) |
2022-01-25 23:56:58 +0100 | <SrPx> | is there any really fast way to guess the median of a list without reading all elements? perhaps reading logN elements? (: |
2022-01-25 23:57:04 +0100 | <SrPx> | if so then this algorithm could be practical |
2022-01-25 23:57:27 +0100 | <geekosaur> | doubt it |
2022-01-25 23:57:53 +0100 | <EvanR> | guess the median of an unsorted list |
2022-01-25 23:57:53 +0100 | <geekosaur> | if the list is truly unsorted then there's no way to know if the list is end-heavy |
2022-01-25 23:58:04 +0100 | <EvanR> | that's like compressing 2 random bits into 1 or something |
2022-01-25 23:58:47 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-01-25 23:58:53 +0100 | <tomsmeding> | SrPx: there's a standard way of guessing a sort-of median of a list https://stackoverflow.com/questions/12545795/explanation-of-the-median-of-medians-algorithm#12545866 |
2022-01-25 23:58:53 +0100 | <SrPx> | geekosaur: but after the first recursive pass you in theory have read all elements at least once, so there might be some way to carry an updateable median as a single int or something |
2022-01-25 23:59:17 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 268 seconds) |
2022-01-25 23:59:50 +0100 | <SrPx> | tomsmeding: oh interesting, I envy your googling skills |
2022-01-25 23:59:54 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 268 seconds) |