Logs on 2021-10-02 (liberachat/#haskell)
| 00:01:04 | → | emf joins (~emf@2620:10d:c090:400::5:113f) |
| 00:01:28 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 00:03:45 | <orzo> | probably unsafeIOToPrim is acceptable since the GADT includes the state argument and calling "new" will still be a type error if you use it with ST |
| 00:04:06 | <orzo> | hm |
| 00:04:12 | <orzo> | but it wont be a type error |
| 00:04:22 | <orzo> | there i go tricking myself again |
| 00:04:24 | <monochrom> | janus: BTW my perspective is that "do { pattern <- xxx; ... }" is as justified as "[ ... | pattern <- xxx, ...]" |
| 00:04:31 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 00:05:12 | <monochrom> | > [ x | Just x <- [Nothing, Just 4, Nothing, Just 5] ] |
| 00:05:14 | <lambdabot> | [4,5] |
| 00:06:07 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:06:17 | → | hexfive joins (~eric@50.35.83.177) |
| 00:06:30 | × | hexfive quits (~eric@50.35.83.177) (Client Quit) |
| 00:10:13 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 00:10:48 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 00:13:42 | → | pfurla joins (~pfurla@216.151.180.130) |
| 00:16:23 | × | pfurla_ quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 00:17:26 | → | notzmv joins (~zmv@user/notzmv) |
| 00:17:38 | → | Stotteren joins (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) |
| 00:18:30 | × | hendursaga quits (~weechat@user/hendursaga) (Quit: hendursaga) |
| 00:18:58 | → | hendursaga joins (~weechat@user/hendursaga) |
| 00:22:27 | <monochrom> | https://github.com/treblacy/hasdoc newly improved :) |
| 00:23:54 | × | nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.) |
| 00:26:58 | → | lavaman joins (~lavaman@98.38.249.169) |
| 00:30:37 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 00:34:47 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 00:36:07 | × | ph88 quits (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 00:36:30 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:1cbc:efbb:c578:a980) |
| 00:39:40 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 00:40:31 | → | Topsi joins (~Tobias@dyndsl-095-033-023-177.ewe-ip-backbone.de) |
| 00:42:16 | <orzo> | awpr: I got my gl vector to compile using only ioToPrim and unsafeInterleaveIO and GADT matching |
| 00:43:28 | <awpr> | huh. I don't immediately see how that's possible |
| 00:44:04 | <orzo> | it's probably an infinite loop |
| 00:44:12 | <orzo> | i used fix |
| 00:44:16 | <orzo> | heh |
| 00:44:48 | <awpr> | oh, to match the output before you construct it? I expect that's a loop, yeah |
| 00:44:50 | <orzo> | i was trying to use unsafeInterleaveIO to avoid looping but that's probably not right |
| 00:45:30 | <orzo> | a give away is there was no place for me to call error |
| 00:45:30 | <orzo> | heh |
| 00:47:46 | <awpr> | out of curiosity, is this doing something like glGenBuffers+glBindBuffer+glMapBuffer to "create" the buffer? |
| 00:48:17 | <orzo> | yeah but not glMap |
| 00:48:28 | <orzo> | glBufferData |
| 00:48:51 | <orzo> | i did use glMapBuffer for some other calls |
| 00:49:21 | × | Psybur quits (~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection) |
| 00:49:33 | <orzo> | i'm probably just wating time now trying to make a sanish MVector instance |
| 00:49:51 | <orzo> | but its ammusing anwyay |
| 00:50:07 | <awpr> | hmm... I'm not very familiar with the GL APIs, does that mean each element write has to update the whole buffer? |
| 00:50:15 | <orzo> | no |
| 00:50:31 | <orzo> | there's a lot of different calls for manipulating buffers |
| 00:52:43 | × | hgolden_ quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection) |
| 00:53:27 | <awpr> | as far as updating the contents, I'm only finding APIs for "write the whole buffer" and "map the buffer into host address space", am I missing some? |
| 00:53:54 | <orzo> | yes |
| 00:54:22 | <orzo> | glBufferSubData |
| 00:54:46 | → | acidjnk joins (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) |
| 00:54:57 | <awpr> | ah, okay. and that interacts with the hefty internal global state of OpenGL |
| 00:55:36 | <awpr> | just wondering whether "map immediately on creation and keep the pointer" could avoid the internal state enough to be ST-compatible |
| 00:56:54 | <orzo> | i don't think much would go wrong with ST if you use it within IO and have a GL context active |
| 00:57:01 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 00:57:01 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 00:57:37 | <orzo> | none of this will work without a GL context initialized |
| 00:57:58 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) |
| 00:58:00 | <orzo> | that's some kind of thread-local state |
| 00:58:11 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 00:58:58 | <orzo> | it seems odd to put requirements like that on pure non-monadic code |
| 00:59:11 | <awpr> | yeah, agree that's a problem |
| 01:00:56 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 01:04:14 | × | Lycurgus quits (~juan@98.4.112.204) (Ping timeout: 260 seconds) |
| 01:05:39 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 01:11:25 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:11:25 | × | acidjnk quits (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:12:17 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:13:03 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 01:13:24 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:16:49 | × | xff0x quits (~xff0x@2001:1a81:53fd:8200:7263:a828:f9a7:9516) (Ping timeout: 252 seconds) |
| 01:18:22 | × | _xor quits (~xor@74.215.232.67) (Quit: WeeChat 3.2.1) |
| 01:18:45 | → | xff0x joins (~xff0x@2001:1a81:5237:ef00:6acb:a523:9d13:873c) |
| 01:18:52 | → | _xor joins (~xor@74.215.232.67) |
| 01:20:51 | → | zaquest joins (~notzaques@5.128.210.178) |
| 01:20:57 | → | acidjnk joins (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) |
| 01:20:57 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) |
| 01:26:49 | × | acidjnk quits (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:26:49 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:29:09 | <orzo> | awpr: what if i use unsafeInterleaveIO to make the basicUnsafeNew constructor lazy and all the read and write routines have an implicit check that PrimState m ~ RealWorld because they use ioToPrim |
| 01:29:25 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 01:30:04 | × | betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
| 01:30:53 | <orzo> | the uncertainty comes from how it decides (PrimState m ~ RealWorld) is okay based on the GADT match and the constructor was created in the lazy constructor call that used unsafeCoerce |
| 01:30:56 | → | neurocyte01320 joins (~neurocyte@94.46.83.234) |
| 01:30:56 | × | neurocyte01320 quits (~neurocyte@94.46.83.234) (Changing host) |
| 01:30:56 | → | neurocyte01320 joins (~neurocyte@user/neurocyte) |
| 01:30:59 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 01:32:25 | × | tlaxkit quits (~hexchat@170.253.34.130) (Quit: Leaving) |
| 01:33:10 | <awpr> | that doesn't actually achieve any checking if I'm understanding it correctly |
| 01:33:19 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 01:33:19 | neurocyte01320 | is now known as neurocyte0132 |
| 01:33:51 | <awpr> | if it's actually `unsafeCoerce`, then all it's doing is providing a lie as proof that whatever `PrimState` is `RealWorld` |
| 01:34:11 | <awpr> | and then consuming that lie to retroactively justify the lie |
| 01:35:03 | <monochrom> | @quote monochrom unsafeCoerce |
| 01:35:03 | <lambdabot> | monochrom says: isTrue = (unsafeCoerce :: Either a b -> Bool) . (unsafeCoerce :: Maybe c -> Either a b) . (unsafeCoerce :: Bool -> Maybe c) |
| 01:35:11 | <monochrom> | Very safe and honest. >:) |
| 01:36:21 | <orzo> | well |
| 01:36:42 | <geekosaur> | unsafeCoerce can be safe if and only if the type level says something valid. if you're using it because you can't say what you want at the type level, now you have two problems |
| 01:36:59 | <orzo> | is there anything worthwhile to get from post-poning actual IO to a point where a constructor could be matched |
| 01:37:47 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Ping timeout: 252 seconds) |
| 01:37:56 | <orzo> | the read/write functions are fine the way they are relying on a GADT pattern match to decide the state is RealWorld |
| 01:38:19 | <orzo> | it's not their fault |
| 01:38:22 | <orzo> | heh |
| 01:38:57 | <orzo> | if i made an alternative constructor and disallowed the basicUnsafeNew call, they'd be fine protection |
| 01:39:14 | <awpr> | yeah, in isolation they're fine. but I don't think there's any way to get around the issue of `basicUnsafeNew`; nothing tells it what `m` is, and the only thing that tells the later methods what `m` is is `basicUnsafeNew`, which itself didn't know to begin with |
| 01:39:14 | <orzo> | and that call does have unsafe in the title ;) |
| 01:39:21 | <geekosaur> | I was actually consideriing suggesting that |
| 01:39:27 | <geekosaur> | smart constructor |
| 01:39:30 | → | mikoto-chan joins (~mikoto-ch@83.137.2.253) |
| 01:39:46 | <orzo> | well it wont let me use data-vector-growable out of the box to disallow basicUnsafeNew |
| 01:39:47 | <awpr> | yeah, an alternative IO-only constructor could be safe. but would it _work_ in the context you want to use it in? |
| 01:39:50 | <awpr> | yeah, that |
| 01:40:08 | <orzo> | the data-vector-growable package is not big tho |
| 01:40:45 | <awpr> | does this whole situation also have issues with GHC's threaded runtime? or is this somehow dealing with that by using pinned threads etc. |
| 01:41:06 | <orzo> | no issues |
| 01:41:12 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 01:41:17 | <orzo> | i'm actually using gtk to get my gl context |
| 01:41:58 | <awpr> | "using gtk" meaning "running inside a callback from gtk"? then it might be pinned to the GTK thread |
| 01:42:33 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) |
| 01:43:09 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 01:43:23 | <orzo> | gtk documents when you can use the gl context |
| 01:43:36 | <orzo> | they have a call to bring it into scope when it is not |
| 01:44:06 | <orzo> | but yeah, i don't feel confident i can use it from multiple threads |
| 01:44:22 | <awpr> | ok, sounds like they've explicitly dealt with the issues and documented how to avoid breaking it |
| 01:46:51 | <orzo> | i have a thought to add safety |
| 01:48:20 | <orzo> | class MVector v a -- it has two arguments v and a. |
| 01:49:06 | <orzo> | I could force the a to be something that includes some proof maybe |
| 01:49:44 | <orzo> | when you actually write to the vector, kyou'll be forced to include the proof |
| 01:49:58 | <orzo> | and everything else can be lazy to that point |
| 01:53:45 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 01:53:59 | × | Topsi quits (~Tobias@dyndsl-095-033-023-177.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 01:54:25 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 01:54:33 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:54:38 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 260 seconds) |
| 01:55:11 | × | yinghua quits (~yinghua@181.228.40.183) (Quit: Leaving) |
| 01:57:57 | → | acidjnk joins (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) |
| 01:57:57 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) |
| 01:59:40 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 02:00:12 | → | TDANG joins (~TDANG@inet-177-7.ets.org) |
| 02:00:53 | × | mikoto-chan quits (~mikoto-ch@83.137.2.253) (Read error: Connection reset by peer) |
| 02:00:58 | <TDANG> | Hi. Please take a look at this code snipet |
| 02:01:18 | <TDANG> | data GiveParams = GiveParams |
| 02:01:19 | <TDANG> | { gpBeneficiary :: !PubKeyHash |
| 02:01:21 | <TDANG> | , gpDeadline :: !POSIXTime |
| 02:01:22 | <TDANG> | , gpAmount :: !Integer |
| 02:01:24 | <TDANG> | } deriving (Generic, ToJSON, FromJSON, ToSchema) |
| 02:01:25 | <TDANG> | give :: AsContractError e => GiveParams -> Contract w s e () |
| 02:01:27 | <TDANG> | give gp = do |
| 02:01:28 | <TDANG> | let dat = VestingDatum |
| 02:01:31 | <TDANG> | { beneficiary = gpBeneficiary gp |
| 02:01:31 | <TDANG> | , deadline = gpDeadline gp |
| 02:01:33 | <TDANG> | } |
| 02:01:36 | <TDANG> | My concern: beneficiary = gpBeneficiary gp |
| 02:01:40 | <monochrom> | Ugh you already know you should use a pastebin. |
| 02:01:53 | <TDANG> | How should I understand this statement? |
| 02:02:54 | <boxscape_> | instead of posting multiple lines of code directly, it's appropriate to paste them into something like https://paste.tomsmeding.com/ and then paste a link to the result here |
| 02:03:01 | <TDANG> | Can you guide me how to use pastebin? |
| 02:03:25 | <boxscape_> | 1. go to https://paste.tomsmeding.com/ 2. paste code 3. copy link and paste link here |
| 02:04:08 | <TDANG> | https://paste.tomsmeding.com/oyfqUuyj |
| 02:04:52 | <boxscape_> | 👍 |
| 02:05:18 | <TDANG> | Can you help me with this statement: beneficiary = gpBeneficiary gp |
| 02:05:35 | <boxscape_> | what is your question about that statement? |
| 02:06:11 | <TDANG> | I mean, what does this statement mean: beneficiary = gpBeneficiary gp |
| 02:06:47 | → | mikoto-chan joins (~mikoto-ch@83.137.2.245) |
| 02:07:22 | <TDANG> | gp is of type GiveParams, correct? |
| 02:07:42 | <boxscape_> | VestingDatum is a record with the fields beneficiary and deadline. `VestingDatum { beneficiary = gpBeneficiary gp, deadline = gpDeadline gp}` creates a new VestingDatum value with the beneficiary field having the value gpBeneficiary gp |
| 02:07:51 | <boxscape_> | correc |
| 02:07:52 | <boxscape_> | t |
| 02:08:07 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:08:07 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 02:08:07 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:08:19 | <boxscape_> | GiveParams is also a record, and the expression `gpBeneficiary gp` extracts the gpBeneficiary field from the gp value |
| 02:08:55 | <boxscape_> | so the line in question means that the newly created VestingDatum will have the same beneficiary as the gpBeneficiary of the GiveParams value |
| 02:09:48 | <TDANG> | expression `gpBeneficiary gp` extracts the gpBeneficiary field from the gp value : do you have any document for this? |
| 02:11:44 | <boxscape_> | TDANG: I don't have a standard document at hand, but the learn you a haskell section on "Record syntax" on this page seems alright http://learnyouahaskell.com/making-our-own-types-and-typeclasses |
| 02:11:57 | <boxscape_> | (scroll down to "Record syntax") |
| 02:11:59 | × | alx741 quits (~alx741@181.196.69.214) (Quit: alx741) |
| 02:12:10 | <TDANG> | Oh, I found one: https://sodocumentation.net/haskell/topic/1950/record-syntax |
| 02:12:23 | <boxscape_> | yeah that seems good, too |
| 02:12:55 | <TDANG> | https://paste.tomsmeding.com/pCRT7pFH |
| 02:13:58 | <TDANG> | Ya, cool. Thanks a lot ;-) |
| 02:14:04 | <boxscape_> | welcome |
| 02:14:16 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 02:14:31 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2.1) |
| 02:22:24 | → | pavonia joins (~user@user/siracusa) |
| 02:28:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 02:32:43 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 02:34:09 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 02:38:22 | <TDANG> | 1 bit concern: gpBeneficiary gp |
| 02:38:52 | <TDANG> | this statement may be translated as : function gpBeneficiary with parameter gp |
| 02:39:02 | <boxscape_> | yes |
| 02:39:20 | <boxscape_> | (technically it's an expression, not a statement) |
| 02:39:26 | <TDANG> | how can we differentciate with extraction a property from a record var |
| 02:39:35 | <TDANG> | ya, expression |
| 02:40:12 | <boxscape_> | when you define `data GiveParam = GiveParam { gpBeneficiary :: ... }`, the extractor `gpBeneficiary` *is* a function |
| 02:40:21 | <boxscape_> | so you can't really differentiate it from a function |
| 02:40:38 | × | jaitoon2 quits (~Jaitoon@94.46.244.24) (Quit: Leaving) |
| 02:40:44 | <boxscape_> | you can figure out where it was defined |
| 02:40:56 | <boxscape_> | and then there you can see whether it comes from a record or was defined as a regular function |
| 02:41:30 | <TDANG> | oh, nice. This is a correct way to trace the origin |
| 02:42:02 | <boxscape_> | right |
| 02:42:18 | × | terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (Read error: Connection reset by peer) |
| 02:43:39 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 02:43:43 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 02:46:01 | × | chisui quits (~chisui@200116b8683fc700cf2a945a88454e85.dip.versatel-1u1.de) (Ping timeout: 256 seconds) |
| 02:57:58 | × | doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 252 seconds) |
| 02:59:14 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 02:59:58 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 03:00:50 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
| 03:01:04 | × | adium quits (adium@user/adium) (Killed (NickServ (GHOST command used by adium55!~adium55@2804:14d:149a:8ad4:31b5:99c4:c7a3:6ed4))) |
| 03:01:23 | × | td_ quits (~td@94.134.91.208) (Ping timeout: 252 seconds) |
| 03:02:44 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:02:50 | → | adium_ joins (adium@user/adium) |
| 03:03:04 | → | td_ joins (~td@94.134.91.111) |
| 03:06:07 | adium_ | is now known as adium |
| 03:12:38 | → | rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
| 03:18:42 | → | mbuf joins (~Shakthi@27.58.139.33) |
| 03:22:40 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 03:28:16 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
| 03:30:25 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
| 03:30:37 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 03:31:01 | × | mei quits (~mei@user/mei) (Ping timeout: 252 seconds) |
| 03:35:55 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 03:38:32 | × | boxscape_ quits (~boxscape_@mue-88-130-59-180.dsl.tropolys.de) (Quit: Connection closed) |
| 03:43:56 | CnnibisIndica | is now known as CannabisIndica |
| 03:47:50 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:47:50 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 03:47:50 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:53:01 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 04:08:56 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:11:14 | × | rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds) |
| 04:11:50 | → | phma_ joins (~phma@host-67-44-209-109.hnremote.net) |
| 04:14:38 | × | phma quits (~phma@host-67-44-209-109.hnremote.net) (Ping timeout: 260 seconds) |
| 04:16:37 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 04:16:52 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 04:19:55 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 252 seconds) |
| 04:24:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:29:22 | → | hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
| 04:33:14 | × | fizzsegfaultbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 252 seconds) |
| 04:46:20 | × | thelounge9230681 quits (~thelounge@cpe-75-85-161-60.san.res.rr.com) (Ping timeout: 250 seconds) |
| 04:52:58 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 04:53:22 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 04:59:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 05:02:32 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 05:08:01 | → | pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 05:10:38 | × | pfurla quits (~pfurla@216.151.180.130) (Ping timeout: 252 seconds) |
| 05:12:16 | × | emf quits (~emf@2620:10d:c090:400::5:113f) (Quit: emf) |
| 05:13:30 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 05:14:27 | × | zebrag quits (~chris@user/zebrag) (Remote host closed the connection) |
| 05:16:34 | × | turlando quits (~turlando@user/turlando) (Ping timeout: 252 seconds) |
| 05:16:55 | → | turlando joins (~turlando@93-42-250-112.ip89.fastwebnet.it) |
| 05:16:55 | × | turlando quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
| 05:16:55 | → | turlando joins (~turlando@user/turlando) |
| 05:18:32 | <c_wraith> | anyone know what the status of the GHC 9.2 release candidate is? |
| 05:19:14 | × | martin02 quits (~silas@141.84.69.76) (Ping timeout: 246 seconds) |
| 05:19:40 | <c_wraith> | the current RC fixes a couple bugs that make using type application a lot nicer. |
| 05:19:51 | → | martin02 joins (~silas@141.84.69.76) |
| 05:20:00 | <c_wraith> | It'd be cool to see it officially released |
| 05:27:50 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 05:39:25 | × | mikoto-chan quits (~mikoto-ch@83.137.2.245) (Read error: Connection reset by peer) |
| 05:45:03 | → | mikoto-chan joins (~mikoto-ch@83.137.2.245) |
| 05:46:46 | → | vysn joins (~vysn@user/vysn) |
| 05:56:11 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:07:46 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 06:12:22 | → | chomwitt joins (~chomwitt@ppp-2-85-111-14.home.otenet.gr) |
| 06:14:38 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 06:20:45 | → | benin0369323016 joins (~benin@183.82.205.238) |
| 06:21:33 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 06:23:54 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 06:27:36 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 06:29:56 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) |
| 06:33:10 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 06:33:10 | × | acidjnk quits (~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 06:33:28 | → | acidjnk joins (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) |
| 06:38:30 | × | juhp quits (~juhp@128.106.188.220) (Quit: juhp) |
| 06:38:31 | → | iridium__ joins (~iridium@122.175.138.158) |
| 06:38:44 | → | juhp joins (~juhp@128.106.188.220) |
| 06:42:36 | → | emf joins (~emf@2620:10d:c090:400::5:113f) |
| 06:43:41 | → | xiongxin joins (~quassel@113.116.33.66) |
| 06:50:21 | × | mikoto-chan quits (~mikoto-ch@83.137.2.245) (Read error: Connection reset by peer) |
| 06:51:10 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 06:52:58 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 06:53:07 | × | emf quits (~emf@2620:10d:c090:400::5:113f) (Quit: emf) |
| 06:53:20 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 06:53:50 | → | emf joins (~emf@2620:10d:c090:400::5:113f) |
| 06:55:12 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 06:55:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:56:22 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 06:57:53 | × | ubert quits (~Thunderbi@178.115.52.70.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 07:00:34 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 07:02:46 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds) |
| 07:04:52 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 07:07:07 | → | rtjure joins (~rtjure@bras-79-132-17-74.comnet.bg) |
| 07:14:05 | → | falafel joins (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) |
| 07:14:29 | × | aegon quits (~mike@174.127.249.180) (Remote host closed the connection) |
| 07:18:10 | × | ByronJohnson quits (~bairyn@mail.digitalkingdom.org) (Remote host closed the connection) |
| 07:19:15 | × | emf quits (~emf@2620:10d:c090:400::5:113f) (Quit: emf) |
| 07:20:05 | → | emf joins (~emf@2620:10d:c090:400::5:113f) |
| 07:21:36 | × | iridium__ quits (~iridium@122.175.138.158) (Changing host) |
| 07:21:36 | → | iridium__ joins (~iridium@user/iridium/x-1824934) |
| 07:22:57 | → | max22- joins (~maxime@2a01cb088335980038ece50ee02a7251.ipv6.abo.wanadoo.fr) |
| 07:25:58 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:29:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 07:29:46 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:30:10 | × | emf quits (~emf@2620:10d:c090:400::5:113f) (Quit: emf) |
| 07:30:44 | → | ByronJohnson joins (~bairyn@mail.digitalkingdom.org) |
| 07:32:42 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 07:33:04 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 07:35:46 | × | xiongxin quits (~quassel@113.116.33.66) (Ping timeout: 252 seconds) |
| 07:35:46 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
| 07:42:59 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 07:47:40 | → | dajoer joins (~david@user/gvx) |
| 07:49:13 | × | voldial quits (~user@195.179.201.175) (Changing host) |
| 07:49:13 | → | voldial joins (~user@user/voldial) |
| 07:51:26 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:52:54 | × | falafel quits (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) (Remote host closed the connection) |
| 07:53:14 | → | falafel joins (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) |
| 07:55:01 | × | benin0369323016 quits (~benin@183.82.205.238) (Remote host closed the connection) |
| 08:01:04 | × | ryantrinkle quits (~ryan@50.239.20.147) (Read error: Connection reset by peer) |
| 08:05:28 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:07:01 | × | mbuf quits (~Shakthi@27.58.139.33) (Quit: Leaving) |
| 08:08:48 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 08:10:04 | × | jinsun quits (~quassel@user/jinsun) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 08:15:11 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:17:33 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 08:17:33 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 08:17:36 | allbery_b | is now known as geekosaur |
| 08:18:05 | × | falafel quits (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) (Ping timeout: 264 seconds) |
| 08:18:21 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:19:24 | → | CookE[] joins (~thedawn@user/thedawn) |
| 08:19:24 | → | fef joins (~thedawn@user/thedawn) |
| 08:20:24 | → | xiongxin joins (~quassel@113.116.33.66) |
| 08:21:00 | × | fef quits (~thedawn@user/thedawn) (Client Quit) |
| 08:22:30 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 08:24:56 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 08:25:25 | → | kuribas joins (~user@ptr-25vy0i8gk2vqd1giqyv.18120a2.ip6.access.telenet.be) |
| 08:26:41 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Remote host closed the connection) |
| 08:37:37 | → | nfd joins (~nfd@user/nfd) |
| 08:38:21 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 08:44:22 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:45:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 08:46:37 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 08:50:07 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 08:52:55 | → | mei joins (~mei@user/mei) |
| 08:57:30 | → | qbt joins (~edun@user/edun) |
| 08:58:10 | × | werneta_ quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 09:00:07 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:00:14 | × | qbt quits (~edun@user/edun) (Client Quit) |
| 09:03:24 | → | VoidNoir0 joins (~VoidNoir0@72.80.203.52) |
| 09:05:53 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 09:23:46 | → | DNH joins (~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643) |
| 09:24:40 | × | CookE[] quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 09:24:51 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 09:26:09 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 09:26:24 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:33:16 | → | acidjnk_new joins (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
| 09:35:38 | → | thelounge9230681 joins (~thelounge@cpe-75-85-161-60.san.res.rr.com) |
| 09:36:29 | × | acidjnk quits (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 09:36:29 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 09:37:16 | → | acidjnk joins (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) |
| 09:38:31 | × | iridium__ quits (~iridium@user/iridium/x-1824934) (Quit: leaving) |
| 09:39:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 09:43:19 | × | thelounge9230681 quits (~thelounge@cpe-75-85-161-60.san.res.rr.com) (Ping timeout: 252 seconds) |
| 09:45:21 | × | DNH quits (~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:47:36 | × | hendursa1 quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 09:48:01 | → | alzgh joins (~alzgh@user/alzgh) |
| 09:49:34 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 09:50:30 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:55:18 | × | mjs2600_ quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 250 seconds) |
| 09:56:13 | × | xsperry quits (~xs@cpe-188-129-101-182.dynamic.amis.hr) (Changing host) |
| 09:56:13 | → | xsperry joins (~xs@user/xsperry) |
| 09:57:20 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:58:15 | → | pera joins (~pera@user/pera) |
| 09:59:57 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:04:30 | → | Debate2021 joins (~Debate202@103.134.42.228) |
| 10:06:19 | ← | Debate2021 parts (~Debate202@103.134.42.228) () |
| 10:07:20 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 10:10:07 | → | DNH joins (~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643) |
| 10:12:04 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 10:14:24 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:18:08 | → | jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) |
| 10:23:17 | × | mei quits (~mei@user/mei) (Quit: mei) |
| 10:24:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:25:05 | → | mei joins (~mei@user/mei) |
| 10:25:40 | × | pera quits (~pera@user/pera) (Ping timeout: 252 seconds) |
| 10:27:21 | <tomjaguarpaw> | I know of four popular streaming libraries: conduit, pipes, streaming, streamly. Are there any others? |
| 10:33:11 | → | CiaoSen joins (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:43:29 | → | pera joins (~pera@user/pera) |
| 10:50:57 | → | mestre joins (~mestre@191.177.175.57) |
| 10:52:37 | × | pera quits (~pera@user/pera) (Ping timeout: 252 seconds) |
| 10:53:46 | × | DNH quits (~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643) (Quit: Textual IRC Client: www.textualapp.com) |
| 10:56:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:00:08 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:00:53 | → | alx741 joins (~alx741@181.196.69.214) |
| 11:01:29 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 11:01:57 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:02:55 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 11:04:14 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 11:05:17 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:05:26 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 11:06:27 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:08:04 | → | Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) |
| 11:09:02 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 260 seconds) |
| 11:11:36 | → | AlexNoo_ joins (~AlexNoo@178.34.162.155) |
| 11:13:05 | × | Alex_test quits (~al_test@178.34.161.150) (Ping timeout: 252 seconds) |
| 11:13:53 | <zincy_> | transient? |
| 11:14:00 | <zincy_> | https://hackage.haskell.org/package/transient |
| 11:14:11 | × | AlexZenon quits (~alzenon@178.34.161.150) (Ping timeout: 252 seconds) |
| 11:14:27 | <zincy_> | Not sure about popular though |
| 11:15:17 | × | AlexNoo quits (~AlexNoo@178.34.161.150) (Ping timeout: 252 seconds) |
| 11:15:34 | → | Cajun joins (~Cajun@user/cajun) |
| 11:16:19 | × | CiaoSen quits (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 11:16:21 | phma_ | is now known as phma |
| 11:17:23 | → | Alex_test joins (~al_test@178.34.162.155) |
| 11:18:14 | → | AlexZenon joins (~alzenon@178.34.162.155) |
| 11:28:53 | × | sagax quits (~sagax_nb@user/sagax) (Ping timeout: 264 seconds) |
| 11:31:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 11:33:21 | × | BestSteve quits (~beststeve@220-135-3-239.HINET-IP.hinet.net) (Quit: WeeChat 3.2) |
| 11:42:41 | × | max22- quits (~maxime@2a01cb088335980038ece50ee02a7251.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
| 11:43:24 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:43:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 11:48:19 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 11:56:06 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 12:06:52 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 12:12:04 | × | tabaqui quits (~root@46.39.45.162) (Quit: WeeChat 3.3) |
| 12:15:27 | → | fusion86 joins (~fusion@2a02-a44c-e6e5-1-1753-33de-9d65-536a.fixed6.kpn.net) |
| 12:16:20 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 12:16:27 | → | snekism joins (~user@88.160.31.174) |
| 12:19:22 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 12:19:50 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 12:22:25 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 12:24:03 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 12:26:13 | × | Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 12:26:54 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 12:28:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 260 seconds) |
| 12:30:31 | <maerwald> | tomjaguarpaw: and only 2 of them have good performance :p |
| 12:30:37 | → | max22- joins (~maxime@2a01cb08833598003de9b0144dce98c8.ipv6.abo.wanadoo.fr) |
| 12:31:35 | × | jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 12:33:13 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 12:34:24 | → | jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) |
| 12:44:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 12:49:16 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 12:50:38 | AlexNoo_ | is now known as AlexNoo |
| 12:52:01 | × | mestre quits (~mestre@191.177.175.57) (Quit: leaving) |
| 12:55:40 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:1cbc:efbb:c578:a980) (Remote host closed the connection) |
| 13:03:23 | × | Alex_test quits (~al_test@178.34.162.155) (Quit: ;-) |
| 13:03:33 | × | AlexZenon quits (~alzenon@178.34.162.155) (Quit: ;-) |
| 13:03:56 | × | AlexNoo quits (~AlexNoo@178.34.162.155) (Quit: Leaving) |
| 13:09:55 | → | renzhi joins (~xp@2607:fa49:6500:b100::1d9d) |
| 13:10:16 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 252 seconds) |
| 13:10:51 | → | CiaoSen joins (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 13:11:43 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:13:00 | → | MQ-17J joins (~MQ-17J@8.6.144.233) |
| 13:17:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 13:22:33 | → | AlexZenon joins (~alzenon@178.34.162.155) |
| 13:22:43 | → | AlexNoo joins (~AlexNoo@178.34.162.155) |
| 13:28:30 | → | Alex_test joins (~al_test@178.34.162.155) |
| 13:34:30 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 265 seconds) |
| 13:37:07 | × | rembo10 quits (~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:37:19 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:38:00 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:39:37 | → | rembo10 joins (~rembo10@wally.codeshy.com) |
| 13:40:10 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 13:42:28 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:44:02 | → | ryantrinkle joins (~ryan@50.239.20.147) |
| 13:46:13 | → | jinsun joins (~quassel@user/jinsun) |
| 13:49:02 | → | Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) |
| 13:49:33 | <tomjaguarpaw> | maerwald: which two? |
| 13:49:42 | <maerwald> | tomjaguarpaw: streamly and streaming |
| 13:50:10 | <tomjaguarpaw> | Depends what you mean by good! https://github.com/haskell-streaming/streaming/issues/109 |
| 13:50:41 | <tomjaguarpaw> | streamly is the only one I have found that does not have quadratic edge cases |
| 13:51:11 | × | jinsun quits (~quassel@user/jinsun) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 13:53:04 | × | CiaoSen quits (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 13:53:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:57:04 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 13:57:27 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 14:02:08 | → | fendor joins (~fendor@91.141.55.34.wireless.dyn.drei.com) |
| 14:02:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 14:05:54 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
| 14:07:28 | <maerwald> | yeah, I personally am only interested in streamly |
| 14:07:33 | <maerwald> | but the API is still a bit rough |
| 14:08:07 | <tomjaguarpaw> | It does seem to be the best thought-through |
| 14:08:26 | <kuribas> | conduit is the easiest to use. |
| 14:08:43 | <tomjaguarpaw> | Why is that? |
| 14:09:03 | → | norskal joins (~norskal@101.175.64.73) |
| 14:09:22 | <kuribas> | streamly is a bit awkward, it's like using a list, except it's not a list... |
| 14:10:08 | <maerwald> | kuribas: what?? |
| 14:10:09 | <kuribas> | conduit you wait for the input, then yield some output. |
| 14:10:14 | <maerwald> | conduit is over-engineered :p |
| 14:10:59 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 14:11:24 | <maerwald> | streamly actually is based on streams |
| 14:11:49 | <kuribas> | conduit is more like coroutines |
| 14:12:09 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
| 14:12:46 | <kuribas> | streamly claims it's as easy as using lists, but you cannot just pattern matching on a streamly stream. |
| 14:13:24 | <tomjaguarpaw> | That's strange. There's nothing that should stop you from doing that. Do they really not have it in their API? |
| 14:14:06 | <maerwald> | I'm not even sure what that means |
| 14:14:21 | <tomjaguarpaw> | Yeah, here: https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Prelude.html#v:uncons |
| 14:14:52 | <kuribas> | that's not the same simplicity as pattern matching on a list. |
| 14:15:00 | <maerwald> | eh |
| 14:15:13 | <maerwald> | turn the stream into a list then |
| 14:15:30 | <kuribas> | maerwald: then you loose the stream, what is the point? |
| 14:15:41 | <maerwald> | well, not sure what's your problem here |
| 14:15:47 | <tomjaguarpaw> | It is about as simple as pattern matching on a list! |
| 14:16:38 | → | iridium__ joins (~iridium@user/iridium/x-1824934) |
| 14:16:40 | <geekosaur> | sounds to me like a pattern synonym might iron out any problems anyway? |
| 14:17:06 | <maerwald> | this seems to be more of a case people having trouble navigating the streamly docs and I agree it isn't easy |
| 14:17:13 | <tomjaguarpaw> | I'm not sure what kuribas is objecting to but the uncons has to happen in a monad |
| 14:17:43 | <kuribas> | what I object to is that it isn't a list. If you pattern match twice, you may get different elements. |
| 14:18:04 | <maerwald> | because a stream may run actions, yes |
| 14:18:12 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:18:28 | <kuribas> | so "it's as easy as using a list", is false IMO. |
| 14:18:49 | <maerwald> | that seems like a fabricated complaint :p |
| 14:19:09 | <kuribas> | whereas conduit is just, read a value from upstream, yield it downstream. |
| 14:20:22 | <kuribas> | well, do something in between first of course. |
| 14:20:46 | <maerwald> | except you need all sorts of odd combinators, while streamly's Monad instance actually makes sense |
| 14:21:10 | → | Guest28 joins (~Guest28@2a02:120b:c3f4:72c0:2322:7cf4:1b7d:710b) |
| 14:21:55 | <maerwald> | you might also wanna check out the Unfold type in streamly |
| 14:22:38 | <kuribas> | yeah, then there are also folds, lot's of concepts, it's just more complicated that the conduit way of doing things. |
| 14:22:58 | <maerwald> | sounds more to me like you're used to conduit and hence find it easier |
| 14:23:05 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 14:23:06 | <maerwald> | https://github.com/composewell/streamly#an-overview-of-the-types-used-in-these-examples |
| 14:23:10 | <maerwald> | not many types you have to understand |
| 14:23:18 | <maerwald> | basically 4 |
| 14:23:50 | <kuribas> | I am not saying it's worse, it may have a good usecase, but I find the conduit interface easier to understand. |
| 14:24:03 | × | Guest28 quits (~Guest28@2a02:120b:c3f4:72c0:2322:7cf4:1b7d:710b) (Client Quit) |
| 14:24:03 | <maerwald> | I find it mind-boggling whenever I look at it |
| 14:24:23 | geekosaur | got lost almost immediately trying to understand the API |
| 14:24:37 | <maerwald> | one day I figure out how conduit works, 2 weeks later I don't anymore |
| 14:24:38 | <kuribas> | geekosaur: conduit? |
| 14:24:42 | <maerwald> | it's so unintuitive |
| 14:24:42 | <geekosaur> | yeh |
| 14:25:18 | <tomjaguarpaw> | I'm curious why a streamly Unfold m a b is not just an a -> SerialT m b |
| 14:26:05 | <maerwald> | `forall s. Unfold (s -> m (Step s b)) (a -> m s)` |
| 14:26:10 | <kuribas> | tomjaguarpaw: because of the applicative? |
| 14:27:40 | × | xiongxin quits (~quassel@113.116.33.66) (Ping timeout: 252 seconds) |
| 14:27:46 | <tomjaguarpaw> | I don't understand either response |
| 14:28:05 | → | xiongxin joins (~quassel@113.116.33.66) |
| 14:28:22 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 14:28:24 | <maerwald> | I don't understand how `a -> SerialT m b` would allow you to define a stepper function |
| 14:28:46 | <tomjaguarpaw> | Do you want to define a stepper function? |
| 14:29:03 | <tomjaguarpaw> | You can't use it for anything other than getting b s out |
| 14:29:54 | <maerwald> | In the stepper, you have Yield, Skip and Stop |
| 14:30:21 | <tomjaguarpaw> | What can you do with it that you can't do with an a -> SerialT m b ? |
| 14:30:28 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:30:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 14:30:28 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:31:46 | <kuribas> | tomjaguarpaw: maybe it's for performance? Streamly tries very hard to be performant. |
| 14:32:05 | → | cheater joins (~Username@user/cheater) |
| 14:32:13 | <tomjaguarpaw> | Yes, possible |
| 14:32:46 | <kuribas> | it even has a plugin that remove intermediate structures. |
| 14:33:13 | <tomjaguarpaw> | "Unfold is an example of an abstraction that we have created to achieve high performance when mapping streams on streams. Unfold allows stream generation to be optimized well by the compiler through stream fusion." |
| 14:33:17 | <tomjaguarpaw> | Perhaps that's it |
| 14:33:58 | <maerwald> | https://hackage.haskell.org/package/streamly-0.8.0/docs/src/Streamly.Internal.Data.Stream.StreamD.Type.html#unfold |
| 14:34:03 | × | kuribas quits (~user@ptr-25vy0i8gk2vqd1giqyv.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 14:34:11 | <maerwald> | that's basically what you mean I guess |
| 14:34:57 | <tomjaguarpaw> | maerwald: Right |
| 14:34:58 | <maerwald> | tomjaguarpaw: there's StreamD and StreamK btw |
| 14:35:06 | <maerwald> | maybe Unfold abstracts over that |
| 14:35:46 | → | Guest80 joins (~Guest80@186.122.61.47) |
| 14:35:48 | <maerwald> | I asked once and harendra says they have different performance properties |
| 14:36:55 | <maerwald> | "GHC is able to INLINE and fuse direct style better, providing better performance than CPS implementation." |
| 14:37:25 | <tomjaguarpaw> | Makes sense |
| 14:37:34 | <maerwald> | so you can defer the decision or so |
| 14:37:44 | <tomjaguarpaw> | Unfold is likely subject to the same O(n^2) behaviour I have reported on the other libraries though |
| 14:37:57 | <tomjaguarpaw> | The point of CPS is to right-associate the binds |
| 14:38:04 | → | Lycurgus joins (~juan@98.4.112.204) |
| 14:40:44 | × | iridium__ quits (~iridium@user/iridium/x-1824934) (Quit: leaving) |
| 14:42:08 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 14:43:05 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 14:46:25 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 14:50:17 | → | acidjnk_new3 joins (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
| 14:51:00 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 14:53:40 | × | acidjnk quits (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 14:53:50 | → | ubert joins (~Thunderbi@178.115.76.58.wireless.dyn.drei.com) |
| 14:54:55 | <hololeap> | is there any way to customize `cabal init` to, say, also copy in a .gitignore file? |
| 14:56:17 | <maerwald> | cabal init && cp gitignore |
| 14:56:19 | <maerwald> | :p |
| 14:56:45 | <hololeap> | that's too much typing! |
| 14:56:51 | <maerwald> | oh dear |
| 14:56:55 | <maerwald> | but it's unix :) |
| 14:57:01 | <hololeap> | i'm kidding |
| 14:57:50 | <hololeap> | however, it seems to be pulling in files from some kind of skel directory, so could this be modified? |
| 15:02:34 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 15:05:18 | × | acidjnk_new quits (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 15:05:18 | × | acidjnk_new3 quits (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 15:05:57 | <fusion86> | Hey all, this should be a very simple thing but I can't figure out how to convert a Float -> Word8. Anyone got any tips :) |
| 15:07:02 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 260 seconds) |
| 15:09:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:09:54 | <nitrix> | [Word8] or Word8? |
| 15:11:23 | <nitrix> | A Float wont fit in a Word8 unless it's quite small. |
| 15:12:21 | <hpc> | there's no single thing that could be "converting" - perhaps you want to round the float? |
| 15:16:20 | × | mei quits (~mei@user/mei) (Read error: Connection reset by peer) |
| 15:17:10 | × | alx741 quits (~alx741@181.196.69.214) (Ping timeout: 252 seconds) |
| 15:21:25 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 15:21:41 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 15:22:28 | <fusion86> | A Word8, I have 4 floats which I need to convert to a `V4 Word8`. This is because I use two libraries which both have their own `Color` data type. |
| 15:23:04 | <geekosaur> | that's going to be more than just a simple conversion |
| 15:23:28 | <geekosaur> | the Word8s will be 0-255, the Floats could be 0-1 or some other representation |
| 15:24:55 | <fusion86> | The floats are 0-1, so I started with doing `r * 255` but at that point it still is a float. I pretty much just want to ignore the decimals (or round, but that doesn't matter in the grand scale of things) and get a Word8. |
| 15:26:30 | <geekosaur> | :t floor |
| 15:26:31 | <lambdabot> | (RealFrac a, Integral b) => a -> b |
| 15:26:46 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 15:27:13 | <justsomeguy> | Is it possible to create a datatype that for only the characters 'a'..'z'? |
| 15:27:28 | <geekosaur> | not with some evil type level horkery |
| 15:27:37 | × | Ranhir quits (~Ranhir@157.97.53.139) (Read error: Connection reset by peer) |
| 15:27:39 | <geekosaur> | haskell doesn't really support subtyping |
| 15:27:41 | <hpc> | or a newtype wrapper where you control the api |
| 15:28:16 | <hpc> | or if you like typing, data Letter = A | B | C | ... |
| 15:30:01 | → | alx741 joins (~alx741@186.178.109.221) |
| 15:31:08 | <dsal> | justsomeguy: you can approximate it with a type that allows for all characters, but doesn't export a constructor and has a smart constructor that only allows a subset. And maybe pattern synonyms or something. |
| 15:32:08 | × | machinedgod quits (~machinedg@24.105.81.50) (Quit: Lost terminal) |
| 15:32:08 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 15:32:31 | <fusion86> | Neat, `floor` is the function I was looking for. Thanks :) |
| 15:32:37 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds) |
| 15:33:20 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 15:34:32 | <geekosaur> | hm, also I think you want * 256, into a larger type than Word8, then subtract 1 if the result is 256. but then I'd suspect 0-1 actually never returns 1 |
| 15:38:07 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 15:38:29 | × | CannabisIndica quits (~herb@user/mesaboogie) (Ping timeout: 264 seconds) |
| 15:38:48 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 15:39:59 | <monochrom> | > round (0.99 * 255) :: Word8 |
| 15:40:00 | <lambdabot> | 252 |
| 15:40:37 | <geekosaur> | right, I'm thinking you lose a little dynamic range with * 255 |
| 15:40:54 | <monochrom> | > round (0.9999 * 255) :: Word8 |
| 15:40:55 | <lambdabot> | 255 |
| 15:41:04 | <geekosaur> | it's the safer and easier option though |
| 15:41:08 | <monochrom> | > floor (0.9999 * 256) :: Word8 |
| 15:41:09 | <lambdabot> | 255 |
| 15:41:47 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 15:41:50 | <monochrom> | "0.9999 * 25[5,6]" is already done in a larger type :) |
| 15:42:35 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 265 seconds) |
| 15:46:42 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 15:47:44 | → | acidjnk joins (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) |
| 15:47:46 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) |
| 15:50:17 | × | raym quits (~raym@user/raym) (Ping timeout: 252 seconds) |
| 15:53:15 | <tomsmeding> | > 1.0 * 256 |
| 15:53:16 | <lambdabot> | 256.0 |
| 15:53:30 | <tomsmeding> | > floor (1.0 * 256) :: Word8 |
| 15:53:31 | <lambdabot> | 0 |
| 15:53:40 | × | xiongxin quits (~quassel@113.116.33.66) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 15:53:58 | <hpc> | > floor (1.0 * 255) :: Word8 |
| 15:54:00 | <lambdabot> | 255 |
| 15:54:24 | <tomsmeding> | Yeah probably better to *255 |
| 15:54:51 | <fusion86> | The library from where I am converting the color uses `int / 255` which is why I went with that. |
| 15:55:09 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds) |
| 15:55:16 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 15:55:24 | <tomsmeding> | Sounds good |
| 15:55:51 | → | raym joins (~raym@user/raym) |
| 15:56:20 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 15:57:29 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 15:58:02 | <fusion86> | I have a function which translates/converts from 1 coordinate system to another, it internally uses `gameWidth / 2` every time the function is called. I assume that this division is calculated every time the function is called. gameWidth is a constant though, so is it possible to also make the result a constant somewhere? Pretty much a `constexpr` from c++, does something like that exist? |
| 15:58:19 | <fusion86> | A single division wont actually slow my program, but it's the principle |
| 15:59:47 | <monochrom> | If you have a "foo = gameWidth/2" in a suitable scope, the compiler is forced to reuse it. |
| 16:00:07 | <monochrom> | If you don't, the optimizer may still do it for you, or maybe not, it depends. |
| 16:00:09 | × | erinvanderveen[4 quits (~erinvande@2001:470:69fc:105::e8f3) (Quit: You have been kicked for being idle) |
| 16:00:32 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) (Quit: Leaving) |
| 16:00:46 | <monochrom> | In both cases, don't assume. |
| 16:01:25 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 16:01:49 | <monochrom> | These days, people don't even have a good idea what C and C++ optimizers do. (They just use Dunning-Kruger to congratulate themselves that they think they do.) So nevermind the even less familiar GHC. |
| 16:03:07 | → | fizzsegfaultbuzz joins (~segfaultf@135-180-0-138.static.sonic.net) |
| 16:03:09 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 16:03:10 | <fusion86> | Hm, I guess I'll just not worry about that then, because in the end a single division wont actually be noticeable (even if run 10 times a second) |
| 16:03:13 | <nitrix> | I agree with monochrom, profile if it's important. I will say though, there a big chance it does gets optimized, that's a fairly trivial reduction for SSA (which GHC has). |
| 16:04:10 | <monochrom> | Even 30 years ago, if you look at a C loop (or Fortran for that matter) like "for (i = 0; i < n; i++) { ... a[i] ... }" and think "a + i*sizeof(whatever)" has an expensive multiplication and you "need" to hand-optimize that to manual pointer games,... |
| 16:04:25 | <monochrom> | NO, the C optimizer already does that for you. |
| 16:05:04 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds) |
| 16:05:20 | <monochrom> | Even 30 years ago, when people continued to perpetuate the fantasy that recursion always takes up stack space... |
| 16:05:29 | <monochrom> | NO, gcc already does TCO for you. |
| 16:06:38 | <monochrom> | If you have neither read compiler-generated asm code or taken a course on code optimization... |
| 16:06:43 | <monochrom> | Assume that you're wrong. |
| 16:07:09 | <hpc> | and if you have, you're probably still wrong |
| 16:07:27 | <monochrom> | And I haven't even touched the toggling story of cache locality. |
| 16:07:30 | <hpc> | citation: optimization of UB |
| 16:07:51 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 16:08:33 | <monochrom> | Yeah, if you think, like I did, that "n = 1; c = 0; while (n != 0) { n *= 2; c++}" helps me count how many bits the machine word has... |
| 16:08:55 | × | MQ-17J quits (~MQ-17J@8.6.144.233) (Ping timeout: 252 seconds) |
| 16:08:57 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 16:09:01 | <monochrom> | gcc -O2 optimizes that to "mylabel : jmp mylabel" |
| 16:10:09 | <monochrom> | What's funny is that -O1 goes only so far as "increment c 32 times" or something. |
| 16:10:23 | <int-e> | should've used unsigned int |
| 16:10:29 | <monochrom> | I did. |
| 16:10:30 | <nitrix> | fusion86, I would be more careful about memory reads or writes. On a cache miss, just one of those can completely outweight one order, sometimes two orders, the amount of multiplications. Skeletal animation for example has a lot of matrix multiplication and it's much faster to just recompute them each frame than fetching from memory the precomputed result (if they change often enough, like every frame, but not often enough to remain in cache). |
| 16:10:52 | <nitrix> | fusion86, Game development is fun like that. I've never done it in Haskell so I'm sure that'll have its own set of surprises. |
| 16:11:33 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:11:33 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 16:11:33 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:11:45 | <int-e> | monochrom: you didn't |
| 16:12:33 | → | Null_A joins (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) |
| 16:12:41 | <geekosaur> | isn't this the one you pasted the C source and resulting asm from some years ago? |
| 16:12:48 | <monochrom> | Yes. |
| 16:12:58 | <int-e> | monochrom: with `int` it's undefined behavior; `unsigned int` is specified to work modulo 2^w where w is the bit size of the int. |
| 16:13:11 | → | CnnibisIndica joins (~herb@user/mesaboogie) |
| 16:13:55 | <int-e> | > 2^30 * 2 :: Int |
| 16:13:56 | <lambdabot> | 2147483648 |
| 16:14:02 | <int-e> | > 2^62 * 2 :: Int |
| 16:14:03 | <lambdabot> | -9223372036854775808 |
| 16:14:29 | <monochrom> | I mean C. |
| 16:16:01 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 16:16:15 | <fusion86> | The game framework we need to use is pretty high level (Gloss) so I assume that most performance is lost there. I also hacked sdl2_ttf into the project to render some neat text, so that's probably also a large performance hit (though I didn't test) |
| 16:16:30 | <int-e> | monochrom: I guess you may have triggered a compiler bug at some point but... I'm not aware of gcc ever getting this particular case wrong. |
| 16:18:20 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 16:22:53 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 264 seconds) |
| 16:25:16 | × | dajoer quits (~david@user/gvx) (Quit: leaving) |
| 16:25:28 | → | q_implies_not_q joins (~p_implies@host-46-33.ilcujsm.champaign.il.us.clients.pavlovmedia.net) |
| 16:26:06 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 16:30:09 | CnnibisIndica | is now known as CannabisIndica |
| 16:32:47 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 16:33:11 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 16:37:31 | × | q_implies_not_q quits (~p_implies@host-46-33.ilcujsm.champaign.il.us.clients.pavlovmedia.net) (Quit: Leaving) |
| 16:38:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:41:23 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 16:41:59 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 16:43:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 16:43:56 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:44:08 | × | ubert quits (~Thunderbi@178.115.76.58.wireless.dyn.drei.com) (Remote host closed the connection) |
| 16:44:52 | → | ubert joins (~Thunderbi@178.115.76.58.wireless.dyn.drei.com) |
| 16:49:10 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 16:53:14 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 16:55:54 | × | snekism quits (~user@88.160.31.174) (Remote host closed the connection) |
| 16:56:23 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:56:23 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 16:56:23 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:56:24 | × | Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 16:57:00 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 16:59:10 | → | TDANG_ joins (~TDANG@216.63.184.7) |
| 16:59:16 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:02:20 | × | TDANG quits (~TDANG@inet-177-7.ets.org) (Ping timeout: 252 seconds) |
| 17:03:23 | × | fusion86 quits (~fusion@2a02-a44c-e6e5-1-1753-33de-9d65-536a.fixed6.kpn.net) (Remote host closed the connection) |
| 17:03:55 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 17:06:11 | → | econo joins (uid147250@user/econo) |
| 17:06:21 | → | jaitoon joins (~Jaitoon@2a02:c7f:a5f:1d00:3434:15c8:b68c:cba1) |
| 17:09:22 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:11:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:12:54 | → | cheater joins (~Username@user/cheater) |
| 17:19:11 | → | chisui joins (~chisui@200116b868bc9f00884a12b19ab3b2f3.dip.versatel-1u1.de) |
| 17:19:17 | <awpr> | a few weeks ago we were looking into a case of a Gloss program being pretty slow, and it turned out it uses the legacy OpenGL API that calls into OpenGL once for every vertex, and pushes/pops the geometry transform matrix stack for every translation. it might just have a performance ceiling when there's a lot of geometry |
| 17:20:51 | <Hecate> | damn |
| 17:27:47 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 17:28:49 | → | __monty__ joins (~toonn@user/toonn) |
| 17:29:50 | × | Pacra quits (~Pacra@pool-100-11-34-209.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
| 17:32:08 | → | hueso joins (~root@user/hueso) |
| 17:36:19 | → | Zer000 joins (~phil@64.137.132.26) |
| 17:36:37 | <maerwald> | awpr: ah the thing with a max stack of 30 or so? |
| 17:38:09 | <awpr> | hmm, I never thought about there being a limit, but I guess that makes sense. in this case the problem was more that it was expensive to do a separate matrix multiply and GL FFI call for basically every polygon |
| 17:44:49 | <awpr> | oh, fusion86 already left anyway. I'm just responding into the void :/ |
| 17:49:11 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:49:22 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
| 17:49:56 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:52:21 | × | charukiewicz quits (~quassel@108.210.196.136) (Quit: No Ping reply in 180 seconds.) |
| 17:53:22 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 17:53:49 | → | charukiewicz joins (~quassel@108.210.196.136) |
| 17:53:50 | → | kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net) |
| 17:54:20 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 17:54:59 | → | hendursaga joins (~weechat@user/hendursaga) |
| 17:55:53 | × | kimjetwav quits (~user@2607:fea8:235f:9730:49e1:79a9:994b:782d) (Remote host closed the connection) |
| 17:56:10 | → | kimjetwav joins (~user@2607:fea8:235f:9730:48ad:b7dd:9c1e:6d8d) |
| 17:56:40 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds) |
| 17:58:11 | → | mekeor[m] joins (~mekeormat@2001:470:69fc:105::17e4) |
| 17:59:53 | <mekeor[m]> | is there a package on hackage which provides a function f of type `String -> String` which evaluates arithmetic expressions? e.g. `f "1+2"` would equal `"3"`. |
| 18:00:06 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:00:18 | <geekosaur> | hint? mueval? |
| 18:00:49 | <geekosaur> | (mueval is based on hint but provides protections, for example it accepts arbitrary Haskell expressions but disallows IO) |
| 18:01:19 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Quit: Leaving) |
| 18:01:22 | × | kayvank quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
| 18:02:14 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 18:02:32 | <geekosaur> | I don't know of one limited to arithmetic evaluations, but those are kinda uninteresting anyway: at minimum you often want simple functions |
| 18:03:11 | <geekosaur> | and that gets you into how you best structure them for your needs since there's several possible ways to do it, each with its own shortcomings |
| 18:03:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:03:27 | × | max22- quits (~maxime@2a01cb08833598003de9b0144dce98c8.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 18:06:08 | <mekeor[m]> | well, i actually really just want an arithmetic calculator. but thanks anyway |
| 18:07:09 | → | kayvank joins (~user@52-119-115-185.public.monkeybrains.net) |
| 18:07:36 | × | kayvank quits (~user@52-119-115-185.public.monkeybrains.net) (Client Quit) |
| 18:09:00 | → | __monty__ joins (~toonn@user/toonn) |
| 18:10:14 | <monochrom> | Hutton's Haskell textbook has an arithmetic calculator. |
| 18:10:19 | <mekeor[m]> | i once wrote such a package myself, but it does not support paranthesis x) |
| 18:10:58 | <monochrom> | Since it is known upfront that there are only like 5 operations, it can easily be represented as vanilla data. |
| 18:11:43 | → | wroathe joins (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) |
| 18:11:43 | × | wroathe quits (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host) |
| 18:11:43 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:17:26 | <mekeor[m]> | monochrom: you mean, i could check if the input-string matches the regex [0-9\.+-*/^] before i pass it to "hint"? |
| 18:18:17 | <monochrom> | No, Hutton's book doesn't use hint. |
| 18:18:18 | <geekosaur> | no, I think he's saying you avoid the problems I mentioned with writing your own if you're not supporting bindings, functions, etc. |
| 18:18:41 | <monochrom> | It doesn't use regexes either. |
| 18:23:15 | → | Lycurgus joins (~juan@98.4.112.204) |
| 18:24:40 | <[exa]> | mekeor[m]: calculators are kinda 5-line exercise in megaparsec, I guess if you google megaparsec tutorials you'll find one |
| 18:27:20 | → | snekism joins (~user@88.160.31.174) |
| 18:32:00 | → | aegon joins (~mike@174.127.249.180) |
| 18:34:37 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
| 18:38:38 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 18:39:02 | → | max22- joins (~maxime@2a01cb0883359800842b86a07baa5676.ipv6.abo.wanadoo.fr) |
| 18:46:52 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 18:50:41 | × | nfd quits (~nfd@user/nfd) (Ping timeout: 252 seconds) |
| 18:53:47 | × | max22- quits (~maxime@2a01cb0883359800842b86a07baa5676.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 18:58:22 | <aegon> | i'm looking for a good matrix library in haskell for standard glm type functionality, I found hmatrix but it doesn't have a notion of quaternions which I have to interact with quite a lot and writing a quaternion to matrix function is not trivial. is there a composable library with this that provides those things or does anyone know of a different matrix lib in haskell that fits the bill better for |
| 18:58:28 | <aegon> | geometric operations |
| 18:59:51 | <aegon> | oh linear might be better |
| 19:00:27 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 19:00:30 | <Lycurgus> | quaternions are their own thing, there's several hs pkgs iirc |
| 19:01:05 | <aegon> | well, they are hteir own things but going from linear to rotation matrix is a normal operation in my domain |
| 19:01:08 | <aegon> | and vice versa |
| 19:01:08 | <Lycurgus> | usually filed under classical nick nacks |
| 19:01:28 | <aegon> | s/linear/quaternion/g |
| 19:02:10 | <Lycurgus> | math bric a brac |
| 19:02:13 | → | terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de) |
| 19:02:27 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 19:02:57 | <aegon> | maybe theres a quaternion library that gives me a list of lists that is the rotation matrix equivalent |
| 19:04:13 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 19:04:31 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 19:04:48 | × | Null_A quits (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) (Remote host closed the connection) |
| 19:05:10 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 19:07:09 | <aegon> | linear / linear-accelerate seem to have all the bells and whistles needed |
| 19:10:09 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 19:10:26 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:21:00 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 19:22:42 | → | Lorra joins (~lorenzo@2001:a61:be4:201:2c70:ff42:b0f:e800) |
| 19:28:53 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 19:30:58 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 19:32:32 | × | Lorra quits (~lorenzo@2001:a61:be4:201:2c70:ff42:b0f:e800) (Quit: Konversation terminated!) |
| 19:37:25 | → | yinghua joins (~yinghua@181.228.40.183) |
| 19:38:27 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:39:42 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 19:39:57 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:40:31 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 19:45:36 | × | fendor quits (~fendor@91.141.55.34.wireless.dyn.drei.com) (Remote host closed the connection) |
| 19:48:29 | → | fendor joins (~fendor@91.141.55.34.wireless.dyn.drei.com) |
| 19:48:30 | → | fendor_ joins (~fendor@91.141.55.34.wireless.dyn.drei.com) |
| 19:48:31 | → | fendor__ joins (~fendor@91.141.55.34.wireless.dyn.drei.com) |
| 19:57:03 | × | fendor__ quits (~fendor@91.141.55.34.wireless.dyn.drei.com) (Quit: Leaving) |
| 19:57:06 | × | fendor_ quits (~fendor@91.141.55.34.wireless.dyn.drei.com) (Quit: Leaving) |
| 19:57:13 | × | fendor quits (~fendor@91.141.55.34.wireless.dyn.drei.com) (Quit: Leaving) |
| 19:58:01 | → | snekism` joins (~user@88.160.31.174) |
| 19:59:55 | × | snekism quits (~user@88.160.31.174) (Ping timeout: 252 seconds) |
| 20:04:52 | × | azeem quits (~azeem@2a00:801:428:f4e3:face:8eed:b26f:ce9c) (Ping timeout: 252 seconds) |
| 20:04:56 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 252 seconds) |
| 20:05:49 | <hololeap> | what ever happened to ski? |
| 20:08:31 | → | juhp joins (~juhp@128.106.188.220) |
| 20:08:40 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 20:12:33 | × | norskal quits (~norskal@101.175.64.73) (Quit: Ping timeout (120 seconds)) |
| 20:13:00 | <hpc> | he got simplified to sk |
| 20:15:42 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:18:01 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds) |
| 20:19:51 | fr33domlover1 | is now known as fr33domlover |
| 20:20:21 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 20:29:32 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:34:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:35:26 | → | rond_ joins (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
| 20:45:11 | × | rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
| 20:54:26 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 246 seconds) |
| 20:55:01 | <zwro[m]> | what do we call it when we do `a <- someMonad`? |
| 20:55:07 | <zwro[m]> | "unbinding"? |
| 20:55:57 | <[exa]> | "binding" actually |
| 20:56:13 | <Hecate> | zwro[m]: nothing more than binding :) |
| 20:56:21 | <Hecate> | https://en.wikibooks.org/wiki/Haskell/do_notation |
| 20:57:16 | <zwro[m]> | ok makes sense |
| 20:58:01 | <zwro[m]> | my intuition was that the real binding happens in the next line |
| 20:58:11 | <[exa]> | in certain cases you might say it's a bit like "unwrapping", but with many monads that's misleading |
| 20:58:37 | × | ByronJohnson quits (~bairyn@mail.digitalkingdom.org) (Remote host closed the connection) |
| 20:59:11 | <zwro[m]> | yeah. i was considering "lifting" and gave up on it for the same reason |
| 20:59:12 | <[exa]> | it gets rewritten to something like `... someMonad >>= \a -> ...nextline...`, so yeah, technically `a` is bound for the next line |
| 21:00:12 | <[exa]> | (name "lifting" is usually reserved for the other direction, making a function work through some extra semantics) |
| 21:01:13 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 21:01:53 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:02:03 | <zwro[m]> | yeah... words are confusing |
| 21:02:13 | <[exa]> | (like, `map f` is the function `f` lifted to work on lists, and the actual name can be seen e.g. in `liftA2`) |
| 21:03:24 | × | ubert quits (~Thunderbi@178.115.76.58.wireless.dyn.drei.com) (Remote host closed the connection) |
| 21:03:49 | <zwro[m]> | liftA2 f a b = f <$> a <*> , right? |
| 21:04:03 | <zwro[m]> | ^ missed the b at the end |
| 21:04:04 | <[exa]> | yes that should work |
| 21:04:21 | <awpr> | the funnest part of all this is that "map" seems to have come from the definition of a functor "... along with a map of morphisms in C to morphisms in D", in which context it just means "a function" |
| 21:04:56 | <zwro[m]> | well, functions are maps |
| 21:05:37 | <awpr> | right, it was used as a totally generic term and then accidentally acquired a very specific meaning by being used as the name of a class method |
| 21:05:54 | <awpr> | if that's actually how the etymology happened, anyway |
| 21:06:11 | <zwro[m]> | and now we even have fmap |
| 21:06:35 | <zwro[m]> | words... |
| 21:06:43 | <[exa]> | mapmap from now on |
| 21:07:05 | <zwro[m]> | aha fair. that's why i like lambda calculos. names are irrelevant |
| 21:07:24 | <zwro[m]> | what's in a name? said the bard |
| 21:07:33 | <awpr> | if we started using lambda calculus for large scale software development, names would instantly become relevant |
| 21:07:36 | → | Lycurgus joins (~juan@98.4.112.204) |
| 21:08:21 | <awpr> | `Endo`, `Endo`, wherefore art thou `Endo`? |
| 21:08:55 | <[exa]> | needs starwars memes with endor |
| 21:09:19 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 21:11:34 | → | ByronJohnson joins (~bairyn@mail.digitalkingdom.org) |
| 21:12:05 | <zwro[m]> | let a = Nothing:a in a |
| 21:12:57 | <zwro[m]> | ^ in the Merchant of Venice, this is an insult |
| 21:13:39 | → | zebrag joins (~chris@user/zebrag) |
| 21:13:45 | × | kimjetwav quits (~user@2607:fea8:235f:9730:48ad:b7dd:9c1e:6d8d) (Remote host closed the connection) |
| 21:14:46 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 250 seconds) |
| 21:15:55 | × | unmanbearpig quits (~unmanbear@user/unmanbearpig) (Ping timeout: 252 seconds) |
| 21:16:26 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 21:16:52 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 21:17:21 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 21:17:37 | ← | zero parts (~yin@user/zero) () |
| 21:17:46 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:18:18 | → | zzz joins (~yin@user/zero) |
| 21:18:23 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 21:20:23 | × | jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 21:21:45 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 21:27:44 | × | ByronJohnson quits (~bairyn@mail.digitalkingdom.org) (Remote host closed the connection) |
| 21:31:32 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 21:35:46 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
| 21:35:50 | × | Guest80 quits (~Guest80@186.122.61.47) (Quit: Connection closed) |
| 21:36:03 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:39:07 | → | unmanbearpig joins (~unmanbear@user/unmanbearpig) |
| 21:43:49 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
| 21:44:06 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 21:44:21 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de) |
| 21:47:28 | <zzz> | "You speak an infinite deal of nothing!" |
| 21:48:05 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 21:48:05 | × | acidjnk quits (~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 21:48:23 | → | acidjnk joins (~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de) |
| 21:51:40 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 21:55:40 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 21:58:46 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 22:00:08 | → | ByronJohnson joins (~bairyn@mail.digitalkingdom.org) |
| 22:00:10 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:03:51 | → | jinsun joins (~quassel@user/jinsun) |
| 22:14:52 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 22:15:03 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 22:15:13 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds) |
| 22:28:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:28:47 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 22:28:47 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:29:08 | → | max22- joins (~maxime@2a01cb0883359800513140971d4ae4c5.ipv6.abo.wanadoo.fr) |
| 22:37:49 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 22:39:14 | <awpr> | `lens` speaks poniards, and every term `s t a b`s |
| 22:58:35 | × | Techcable quits (~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in) |
| 22:59:09 | → | Techcable joins (~Techcable@168.235.93.147) |
| 23:00:38 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
| 23:01:48 | → | norskal joins (~norskal@101.175.64.73) |
| 23:04:00 | <aegon> | [exa]: that description of lifting is great |
| 23:05:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:06:29 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 23:09:20 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 23:10:13 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 252 seconds) |
| 23:10:50 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 23:14:25 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) |
| 23:15:40 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 23:15:46 | × | acidjnk quits (~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 23:17:34 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 23:17:39 | → | Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) |
| 23:18:19 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) (Remote host closed the connection) |
| 23:20:37 | → | jokleinn joins (~jokleinn@user/jokleinn) |
| 23:22:23 | → | TranquilEcho joins (~grom@user/tranquilecho) |
| 23:22:24 | × | max22- quits (~maxime@2a01cb0883359800513140971d4ae4c5.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 23:28:14 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:34:25 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 23:40:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 23:50:23 | × | Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 23:51:37 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Remote host closed the connection) |
| 23:52:09 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 23:54:34 | → | thyriaen joins (~thyriaen@x4db7dca5.dyn.telefonica.de) |
All times are in UTC on 2021-10-02.