2023-11-12 00:00:38 +0100 | <EvanR> | too bad we can't base crypto on all these undecidable problems |
2023-11-12 00:00:40 +0100 | alguem | (~alguem@45.163.64.23) (Remote host closed the connection) |
2023-11-12 00:01:57 +0100 | <EvanR> | it would be guaranteed unbreakable |
2023-11-12 00:02:33 +0100 | <int-e> | EvanR: https://xkcd.com/538/ |
2023-11-12 00:02:39 +0100 | <EvanR> | I send you a lambda term, if it's got a normal form that's a 1, otherwise 0 |
2023-11-12 00:07:08 +0100 | arahael_ | (~arahael@21.127.96.58.static.exetel.com.au) |
2023-11-12 00:10:49 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d0e6:54a3:ea5c:7672) |
2023-11-12 00:12:28 +0100 | megaTherion | (~therion@unix.io) (Server closed connection) |
2023-11-12 00:12:38 +0100 | megaTherion | (~therion@unix.io) |
2023-11-12 00:13:42 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
2023-11-12 00:17:05 +0100 | masterbuilder | (~master@user/masterbuilder) |
2023-11-12 00:18:17 +0100 | <ph88> | i saw in the docs that State takes a single parameter, why do i get this error? Expecting one more argument to ‘State QueryPart’ |
2023-11-12 00:18:28 +0100 | Guest45 | (~Guest45@pub082136073213.dh-hfc.datazug.ch) |
2023-11-12 00:19:04 +0100 | <EvanR> | :k State |
2023-11-12 00:19:05 +0100 | <lambdabot> | * -> * -> * |
2023-11-12 00:19:12 +0100 | <EvanR> | @unmtl State |
2023-11-12 00:19:12 +0100 | <lambdabot> | err: `State' is not applied to enough arguments, giving `/\A B. A -> (B, A)' |
2023-11-12 00:19:24 +0100 | <ph88> | https://hackage.haskell.org/package/transformers-0.6.1.1/docs/Control-Monad-Trans-State-Lazy.html#… |
2023-11-12 00:19:40 +0100 | <EvanR> | StateT takes 3 parameters |
2023-11-12 00:19:42 +0100 | <ph88> | only see `s` as argument |
2023-11-12 00:19:53 +0100 | <c_wraith> | ph88: that's been eta-contracted. For good reasons related to limitations of type aliases |
2023-11-12 00:20:06 +0100 | Guest45 | (~Guest45@pub082136073213.dh-hfc.datazug.ch) (Client Quit) |
2023-11-12 00:20:20 +0100 | <ph88> | type State s a = StateT s Identity a why didn't they write it like this? it should be the same and much easier to understand |
2023-11-12 00:20:29 +0100 | <EvanR> | wouldn't work, right |
2023-11-12 00:20:33 +0100 | <EvanR> | unfortunately |
2023-11-12 00:20:36 +0100 | masterbuilder | (~master@user/masterbuilder) (Quit: Leaving) |
2023-11-12 00:20:50 +0100 | <c_wraith> | ph88: because it would make it illegal to write State s anywhere |
2023-11-12 00:21:00 +0100 | arahael_ | (~arahael@21.127.96.58.static.exetel.com.au) (Quit: I'm off! Laters!) |
2023-11-12 00:21:03 +0100 | <c_wraith> | ph88: because type aliases must always be fully applied |
2023-11-12 00:21:36 +0100 | <ph88> | hmmm interesting |
2023-11-12 00:21:40 +0100 | <ph88> | thanks |
2023-11-12 00:23:16 +0100 | <EvanR> | that you can get the same effect by defining more type aliases seems suspicious |
2023-11-12 00:23:39 +0100 | <EvanR> | why can't they be auto curried |
2023-11-12 00:23:50 +0100 | <c_wraith> | I guess that limitation exists because otherwise they'd be type lambdas |
2023-11-12 00:24:19 +0100 | <c_wraith> | and type lambdas break a lot of stuff |
2023-11-12 00:24:35 +0100 | <ph88> | how can i write this function? intersperseS :: forall s a. State s a -> [State s a] -> [State s a] |
2023-11-12 00:24:57 +0100 | <monochrom> | could make type inference too difficult. |
2023-11-12 00:25:07 +0100 | <EvanR> | that's just intersperse specialized to State s a right |
2023-11-12 00:25:11 +0100 | <ph88> | yes |
2023-11-12 00:25:15 +0100 | <geekosaur> | looks like it to me |
2023-11-12 00:25:22 +0100 | <EvanR> | did you want State s a -> [State s a] -> State s [a] or something |
2023-11-12 00:25:29 +0100 | <ph88> | no |
2023-11-12 00:25:39 +0100 | <EvanR> | ok so intersperse should just work |
2023-11-12 00:25:42 +0100 | <ph88> | oh ok |
2023-11-12 00:25:44 +0100 | <ph88> | thank you |
2023-11-12 00:25:48 +0100 | <geekosaur> | so what goes wrong if you just use intersperse? |
2023-11-12 00:25:52 +0100 | <geekosaur> | oh, slow me |
2023-11-12 00:26:10 +0100 | <ski> | % :i ReadS |
2023-11-12 00:26:10 +0100 | <yahb2> | type ReadS :: * -> * ; type ReadS a = String -> [(a, String)] ; -- Defined in ‘Text.ParserCombinators.ReadP’ |
2023-11-12 00:26:18 +0100 | <ski> | % type Const c a = c |
2023-11-12 00:26:18 +0100 | <yahb2> | <no output> |
2023-11-12 00:26:26 +0100 | <ski> | % :k Const Int ReadS |
2023-11-12 00:26:26 +0100 | <yahb2> | <interactive>:1:1: error: ; The type synonym ‘ReadS’ should have 1 argument, but has been given none |
2023-11-12 00:26:29 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d0e6:54a3:ea5c:7672) (Remote host closed the connection) |
2023-11-12 00:26:32 +0100 | <ski> | % :set -XLiberalTypeSynonyms |
2023-11-12 00:26:32 +0100 | <yahb2> | <no output> |
2023-11-12 00:26:35 +0100 | <ski> | % :k Const Int ReadS |
2023-11-12 00:26:35 +0100 | <yahb2> | Const Int ReadS :: * |
2023-11-12 00:26:45 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d0e6:54a3:ea5c:7672) |
2023-11-12 00:27:30 +0100 | <ski> | (apropos "type aliases must always be fully applied") |
2023-11-12 00:27:40 +0100 | masterbuilder | (~quassel@user/masterbuilder) |
2023-11-12 00:28:46 +0100 | andrewboltachev | (~andrey@178.141.201.173) |
2023-11-12 00:28:56 +0100 | CiaoSen | (~Jura@2a05:5800:2b0:5500:2a3a:4dff:fe84:dbd5) (Ping timeout: 252 seconds) |
2023-11-12 00:35:28 +0100 | <EvanR> | does that extension have any downside? |
2023-11-12 00:36:01 +0100 | Buggys | (Buggys@shelltalk.net) (Ping timeout: 255 seconds) |
2023-11-12 00:36:31 +0100 | chomwitt | (~chomwitt@2a02:587:7a12:2d00:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds) |
2023-11-12 00:38:06 +0100 | <ski> | it delays checking full application of type synonyms until after synonym expansion, so to speak |
2023-11-12 00:38:43 +0100 | gawen | (~gawen@user/gawen) (Server closed connection) |
2023-11-12 00:39:42 +0100 | <ski> | (in the above example, `a' is unused in expansion of `Const Int ReadS', and so checking full application of `ReadS' amounts to checking zero things. instead of `type Const c a = c', i could have used `type Foo f = f Int', and then `Foo ReadS' would have been fine as well, since `f' is fully applied (at all occurances)) |
2023-11-12 00:39:48 +0100 | gawen | (~gawen@user/gawen) |
2023-11-12 00:39:52 +0100 | sefidel | (~sefidel@user/sefidel) (Remote host closed the connection) |
2023-11-12 00:43:59 +0100 | <EvanR> | is there anyway reason why that shouldn't be enabled by default |
2023-11-12 00:44:06 +0100 | sefidel | (~sefidel@user/sefidel) |
2023-11-12 00:44:48 +0100 | harveypwca | (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) |
2023-11-12 00:45:54 +0100 | <ski> | i'm not sure. apart from being conservative |
2023-11-12 00:46:20 +0100 | <ski> | type synonyms are kinda like macros. `LiberalTypeSynonyms' then allow higher-order "type macros" |
2023-11-12 00:47:01 +0100 | Buggys | (Buggys@Buggy.shelltalk.net) |
2023-11-12 00:50:09 +0100 | target_i | (~target_i@217.175.14.39) (Quit: leaving) |
2023-11-12 00:54:12 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-12 01:01:26 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-11-12 01:02:24 +0100 | euleritian | (~euleritia@dynamic-046-114-201-058.46.114.pool.telefonica.de) |
2023-11-12 01:06:49 +0100 | <geekosaur> | it's somewhat limited, in that it simply defers the check, it doesn't allow actual type lambdas |
2023-11-12 01:09:55 +0100 | <ph88> | anyone have an idea how to write [Either a b] -> Either a [b] and [Either a b] -> Either [a] [b] ? where in case there is an `a` the `a` has preference over all the b's |
2023-11-12 01:11:36 +0100 | <geekosaur> | % :t sequenceA @(Either _) |
2023-11-12 01:11:36 +0100 | <yahb2> | sequenceA @(Either _) ; :: Applicative f => Either w (f a) -> f (Either w a) |
2023-11-12 01:12:03 +0100 | <geekosaur> | wrong one |
2023-11-12 01:12:09 +0100 | <geekosaur> | % :t sequenceA @[] @(Either _) |
2023-11-12 01:12:10 +0100 | <yahb2> | sequenceA @[] @(Either _) ; :: Applicative (Either w) => [Either w a] -> Either w [a] |
2023-11-12 01:13:18 +0100 | <geekosaur> | I'm not sure the second is meaningful, perhaps you want partitionEithers? |
2023-11-12 01:16:08 +0100 | <geekosaur> | (if partitionEithers is not what you want, possibly you want These or Validation or Chronicle in place of Either) |
2023-11-12 01:16:13 +0100 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2023-11-12 01:16:30 +0100 | <ph88> | oh yes i could use partitionEithers and turn it into an Either. Thank you geekosaur |
2023-11-12 01:21:52 +0100 | gdown | (~gavin@h69-11-149-109.kndrid.broadband.dynamic.tds.net) |
2023-11-12 01:22:21 +0100 | <ph88> | is there a way to make these functions more general for List and Vector ? https://bpa.st/GFPQ |
2023-11-12 01:24:05 +0100 | <geekosaur> | % :t sequenceA @_ @(Either _) |
2023-11-12 01:24:05 +0100 | <yahb2> | sequenceA @_ @(Either _) ; :: (Traversable w1, Applicative (Either w2)) => ; w1 (Either w2 a) -> Either w2 (w1 a) |
2023-11-12 01:24:20 +0100 | <geekosaur> | sequenceA already is |
2023-11-12 01:24:26 +0100 | <geekosaur> | :t partitionEithers |
2023-11-12 01:24:27 +0100 | <lambdabot> | [Either a b] -> ([a], [b]) |
2023-11-12 01:24:42 +0100 | <geekosaur> | not general enough |
2023-11-12 01:25:26 +0100 | <geekosaur> | I wonder if that could be framed in terms of Traversable |
2023-11-12 01:42:19 +0100 | <ph88> | How can i make the following structures ? |
2023-11-12 01:42:21 +0100 | <ph88> | [State Foo (Either Text Bar)] -> State Foo (Either Text [Bar]) |
2023-11-12 01:42:25 +0100 | <ph88> | [State Foo (Either Text Bar)] -> Either Text [State [Bar]] |
2023-11-12 01:42:53 +0100 | <ph88> | i'm also not sure which one of the two i want, both seem fine to me. I guess second one is more complicated so perhaps just the first one is okay |
2023-11-12 01:43:20 +0100 | <ph88> | if State was Either i could do second sequenceA |
2023-11-12 01:46:18 +0100 | <geekosaur> | % :t sequenceA @[] @(StateT _ (Either T.Text)) |
2023-11-12 01:46:18 +0100 | <yahb2> | sequenceA @[] @(StateT _ (Either T.Text)) ; :: Applicative (StateT w (Either T.Text)) => ; [StateT w (Either T.Text) a] -> StateT w (Either T.Text) [a] |
2023-11-12 01:46:45 +0100 | <ph88> | magic :D |
2023-11-12 01:47:09 +0100 | <geekosaur> | not sure the second one is doable, monads do not commute that way in general |
2023-11-12 01:47:33 +0100 | accord | (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-11-12 01:48:54 +0100 | <ph88> | about the first one, is the input actually the same? `[State Foo (Either Text Bar)]` and `[StateT w (Either T.Text) a` |
2023-11-12 01:49:10 +0100 | <ph88> | `[StateT w (Either T.Text) a]` |
2023-11-12 01:49:43 +0100 | <geekosaur> | they're not quite identical, but to use sequenceA you want to treat the Either Text as part of the Applicative structure instead of as part of the value |
2023-11-12 01:50:01 +0100 | <[Leary]> | You can also do `getCompose . sequenceA . Compose` or `fmap sequenceA . sequenceA`. |
2023-11-12 01:51:35 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
2023-11-12 01:52:15 +0100 | <c_wraith> | :t getCompose . traverse Compose |
2023-11-12 01:52:16 +0100 | <lambdabot> | forall k1 (t :: * -> *) (f :: k1 -> *) (g :: * -> k1) b. (Traversable t, Applicative (Compose f g)) => t (f (g b)) -> f (g (t b)) |
2023-11-12 01:52:23 +0100 | <c_wraith> | that one looks right |
2023-11-12 01:53:23 +0100 | <monochrom> | Unpopular opinion: They all do different things and it is unclear which one is wanted. Type-driven programming is a lie at this stage. |
2023-11-12 01:54:32 +0100 | <[Leary]> | Oh, I didn't get that quite right. Shouldda tested. <.< |
2023-11-12 01:54:43 +0100 | <c_wraith> | I mean, we were initially presented with two different types that do very different things |
2023-11-12 01:54:54 +0100 | Guest|25 | (~Guest|25@campus-011-137.ucdavis.edu) |
2023-11-12 01:54:55 +0100 | <c_wraith> | putting State inside or outside the list is a huge difference |
2023-11-12 01:55:21 +0100 | Guest|25 | (~Guest|25@campus-011-137.ucdavis.edu) (Client Quit) |
2023-11-12 02:04:05 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-11-12 02:05:31 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Server closed connection) |
2023-11-12 02:05:48 +0100 | califax | (~califax@user/califx) |
2023-11-12 02:11:52 +0100 | MironZ | (~MironZ@nat-infra.ehlab.uk) (Server closed connection) |
2023-11-12 02:12:11 +0100 | MironZ | (~MironZ@nat-infra.ehlab.uk) |
2023-11-12 02:12:37 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-11-12 02:16:37 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
2023-11-12 02:17:03 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-11-12 02:23:16 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 258 seconds) |
2023-11-12 02:23:39 +0100 | DemonDerg | (A_D@libera/staff/dragon) (Quit: ZNC - https://znc.in) |
2023-11-12 02:23:57 +0100 | A_Dragon | (A_D@libera/staff/dragon) |
2023-11-12 02:24:28 +0100 | dtman34 | (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net) (Ping timeout: 255 seconds) |
2023-11-12 02:29:13 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-12 02:30:01 +0100 | mmhat | (~mmh@p200300f1c7445e4eee086bfffe095315.dip0.t-ipconnect.de) |
2023-11-12 02:30:03 +0100 | mmhat | (~mmh@p200300f1c7445e4eee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
2023-11-12 02:33:07 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2023-11-12 02:44:28 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-11-12 02:45:14 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-11-12 02:49:52 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds) |
2023-11-12 02:50:21 +0100 | A_Dragon | DemonDerg |
2023-11-12 02:50:36 +0100 | ski | (~ski@ext-1-042.eduroam.chalmers.se) (Remote host closed the connection) |
2023-11-12 02:51:24 +0100 | nate3 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-11-12 02:56:07 +0100 | nate3 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-11-12 02:56:10 +0100 | harveypwca | (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving) |
2023-11-12 02:57:37 +0100 | dtman34 | (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net) |
2023-11-12 02:57:42 +0100 | yoyofreeman | (~yoyofreem@176.97.76.178) (Read error: Connection reset by peer) |
2023-11-12 02:58:23 +0100 | yoyofreeman | (~yoyofreem@176.97.76.178) |
2023-11-12 02:59:46 +0100 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) (Quit: Disrupting the dragon's slumber one time too often shall eventually bestow upon all an empirical and indiscriminate conflagration that will last for all goddamn eternity.) |
2023-11-12 03:00:17 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-11-12 03:00:41 +0100 | ski | (~ski@ext-1-042.eduroam.chalmers.se) |
2023-11-12 03:01:26 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-11-12 03:06:20 +0100 | lisphacker | (~lisphacke@82.129.118.246) |
2023-11-12 03:06:20 +0100 | lisphacker | (~lisphacke@82.129.118.246) (Client Quit) |
2023-11-12 03:07:06 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in) |
2023-11-12 03:11:28 +0100 | euleritian | (~euleritia@dynamic-046-114-201-058.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-12 03:11:45 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 03:13:39 +0100 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds) |
2023-11-12 03:14:28 +0100 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-11-12 03:15:11 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2023-11-12 03:16:33 +0100 | otto_s | (~user@p5de2f676.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2023-11-12 03:18:21 +0100 | otto_s | (~user@p5b044554.dip0.t-ipconnect.de) |
2023-11-12 03:19:41 +0100 | todi | (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-11-12 03:20:34 +0100 | todi | (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
2023-11-12 03:25:51 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
2023-11-12 03:29:43 +0100 | nate3 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-11-12 03:37:29 +0100 | Sciencentistguy7 | (~sciencent@hacksoc/ordinary-member) |
2023-11-12 03:39:50 +0100 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds) |
2023-11-12 03:39:50 +0100 | Sciencentistguy7 | Sciencentistguy |
2023-11-12 04:03:18 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-11-12 04:03:18 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-11-12 04:03:18 +0100 | finn_elija | FinnElija |
2023-11-12 04:18:06 +0100 | Umeaboy | (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving) |
2023-11-12 04:18:46 +0100 | nate3 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-11-12 04:21:01 +0100 | sympt | (~sympt@user/sympt) (Server closed connection) |
2023-11-12 04:21:13 +0100 | td_ | (~td@i5387091C.versanet.de) (Ping timeout: 246 seconds) |
2023-11-12 04:21:58 +0100 | sympt | (~sympt@user/sympt) |
2023-11-12 04:23:16 +0100 | td_ | (~td@i53870938.versanet.de) |
2023-11-12 04:29:48 +0100 | orcus | (~orcus@mail.brprice.uk) (Server closed connection) |
2023-11-12 04:30:08 +0100 | orcus | (~orcus@mail.brprice.uk) |
2023-11-12 04:31:40 +0100 | sdz | (~sdz@user/sdz) |
2023-11-12 04:33:59 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 258 seconds) |
2023-11-12 04:50:20 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-11-12 05:03:56 +0100 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 252 seconds) |
2023-11-12 05:05:42 +0100 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-11-12 05:12:45 +0100 | Inst | (~Inst@120.244.192.250) |
2023-11-12 05:13:50 +0100 | aforemny_ | (~aforemny@2001:9e8:6cd8:e200:b35d:4788:701d:c1c7) (Ping timeout: 252 seconds) |
2023-11-12 05:13:56 +0100 | aforemny | (~aforemny@i59F516D8.versanet.de) |
2023-11-12 05:20:37 +0100 | xff0x | (~xff0x@2405:6580:b080:900:fcad:32c3:a424:90e2) (Quit: xff0x) |
2023-11-12 05:25:18 +0100 | arahael | (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) |
2023-11-12 05:29:20 +0100 | xff0x | (~xff0x@2405:6580:b080:900:72e:4231:b28b:9e26) |
2023-11-12 05:36:19 +0100 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Server closed connection) |
2023-11-12 05:36:23 +0100 | Lycurgus | (~georg@li1192-118.members.linode.com) |
2023-11-12 05:36:23 +0100 | Lycurgus | (~georg@li1192-118.members.linode.com) (Changing host) |
2023-11-12 05:36:23 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2023-11-12 05:36:37 +0100 | Luj | (~Luj@2a01:e0a:5f9:9681:b46d:d922:28d3:ba58) |
2023-11-12 05:40:57 +0100 | liyang | (sid322268@id-322268.uxbridge.irccloud.com) (Server closed connection) |
2023-11-12 05:41:05 +0100 | liyang | (sid322268@id-322268.uxbridge.irccloud.com) |
2023-11-12 05:49:06 +0100 | sefidel | (~sefidel@user/sefidel) (Remote host closed the connection) |
2023-11-12 05:50:13 +0100 | gaze_____ | (sid387101@id-387101.helmsley.irccloud.com) (Server closed connection) |
2023-11-12 05:50:31 +0100 | gaze_____ | (sid387101@id-387101.helmsley.irccloud.com) |
2023-11-12 05:52:23 +0100 | sefidel | (~sefidel@user/sefidel) |
2023-11-12 05:55:40 +0100 | <hololeap> | is this a ghc or a Cabal bug? |
2023-11-12 05:56:40 +0100 | <hololeap> | https://gist.github.com/hololeap/aa0311a200bc6a2f7a009a55eed6ba0e#file-build-log-L315-L317 |
2023-11-12 06:15:57 +0100 | johnw | (~johnw@69.62.242.138) |
2023-11-12 06:18:30 +0100 | bliminse | (~bliminse@user/bliminse) |
2023-11-12 06:21:51 +0100 | trev | (~trev@user/trev) |
2023-11-12 06:26:14 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2023-11-12 06:32:03 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-11-12 06:32:33 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-11-12 06:32:41 +0100 | <sclv> | hololeap: looks like the issue is v1-build doesn’t work with internal packages |
2023-11-12 06:33:15 +0100 | <hololeap> | sclv: thanks! I was thinking the same thing, but what makes you say that? |
2023-11-12 06:34:16 +0100 | <sclv> | well its a known shortcoming of v1 build and the log looks similar to the times ive seen that problem bite hackage builder |
2023-11-12 06:35:13 +0100 | TheCatCollective | (NyaaTheKit@user/calculuscat) (Server closed connection) |
2023-11-12 06:35:26 +0100 | <hololeap> | I was thinking about splitting the internal package out as a separate package downstream |
2023-11-12 06:36:02 +0100 | TheCatCollective | (NyaaTheKit@user/calculuscat) |
2023-11-12 06:36:46 +0100 | leah2 | (~leah@vuxu.org) (Server closed connection) |
2023-11-12 06:37:11 +0100 | leah2 | (~leah@vuxu.org) |
2023-11-12 06:37:19 +0100 | Ou42 | (~Ou42@2600:381:fee0:1e1:9cad:92a7:4b60:aa08) |
2023-11-12 06:37:28 +0100 | <hololeap> | (for pandoc) |
2023-11-12 06:38:24 +0100 | <hololeap> | because we keep hitting this problem with various packages that depend on it, but only like 10% of the time |
2023-11-12 06:39:27 +0100 | <hololeap> | a build-bot hit it recently: https://bugs.gentoo.org/916785 |
2023-11-12 06:52:38 +0100 | <Ou42> | Hello. I'm attempting to solve Advent-of-Code-2022-Day 13. I'm stuck getting the input data into a recursive data struct. I'd trying to roll my own, any help? |
2023-11-12 06:53:30 +0100 | <Ou42> | <https://adventofcode.com/2022/day/13> |
2023-11-12 06:54:56 +0100 | <Ou42> | <https://github.com/Ou42/AoC-2022/blob/ecbdb467001174f46d9c5ab9f1d11295a17865ab/days/13/day-13.hs#L…> |
2023-11-12 06:55:00 +0100 | <Ou42> | It outputs: |
2023-11-12 06:56:50 +0100 | <Ou42> | `[[[6,10],4,3,[4]]]` when it should be: `[[[6,10],[4,3,[4]]]]` |
2023-11-12 07:01:11 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 258 seconds) |
2023-11-12 07:02:12 +0100 | xff0x | (~xff0x@2405:6580:b080:900:72e:4231:b28b:9e26) (Quit: xff0x) |
2023-11-12 07:05:57 +0100 | xff0x | (~xff0x@2405:6580:b080:900:a560:5a24:e27a:a22e) |
2023-11-12 07:08:21 +0100 | <hololeap> | Ou42: for any strings like `[1,[2,[3,[4,[5,6,7]]]],8,9]`, you could use `read` |
2023-11-12 07:09:07 +0100 | <hololeap> | wait no... nvm |
2023-11-12 07:09:19 +0100 | <Ou42> | hololeap: can you elaborate? AFAIK, `read` is used to convert text to Int. |
2023-11-12 07:09:52 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2023-11-12 07:10:17 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-11-12 07:11:59 +0100 | <hololeap> | Tree seems like the most natural representation here |
2023-11-12 07:12:03 +0100 | <hololeap> | https://hackage.haskell.org/package/containers-0.7/docs/Data-Tree.html |
2023-11-12 07:12:03 +0100 | Square | (~Square@user/square) |
2023-11-12 07:12:47 +0100 | <hololeap> | except your root would be a Forest instead of a Tree |
2023-11-12 07:13:38 +0100 | <Ou42> | cool. thanks. |
2023-11-12 07:13:38 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 07:14:27 +0100 | <monochrom> | PacketVals and PacketLists are already trees and forests, and arguably more accurate than Data.Tree for this. |
2023-11-12 07:14:43 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2023-11-12 07:16:01 +0100 | <Ou42> | I made my own data struct: data PacketVals = Val Int | Nested [PacketVals] deriving Show |
2023-11-12 07:16:17 +0100 | <Ou42> | and: newtype PacketList = Packet [PacketVals] deriving Show |
2023-11-12 07:16:35 +0100 | <monochrom> | There is no mistake in designing the type. You actually have to read the parser code. I am concerned that in the "go (']':c:cs) acc" case, there is a "_ -> [Nested acc]" regardless of whether the _ is '[' or a digit, which aligns with where the parser makes the wrong guess. |
2023-11-12 07:16:41 +0100 | <Ou42> | I will confess I tried to get help from Bing Chat. It failed. Although it's code compiled. Go figure. |
2023-11-12 07:17:27 +0100 | <Ou42> | I figured that's where the issue is, but can't figure it out. |
2023-11-12 07:18:17 +0100 | <monochrom> | More generally I am very skeptic that if you don't go at least "String -> (String, [PacketVals])" you can handle CFG nesting at all. |
2023-11-12 07:18:17 +0100 | <Ou42> | if open sqr bracket '[' then we "descend" right? so it needs to be "Nested", but how to come back up and append if the next char is a ','? that's the reason for the case. |
2023-11-12 07:18:47 +0100 | <Ou42> | what is CFG? |
2023-11-12 07:18:51 +0100 | <[Leary]> | The `go ('[':cs)` case is also bad: the `span` will stop prematurely when the list contains a list. I would write a something like a `parsePacket :: StateT String Maybe PacketVals` and recurse on it in the nested case. |
2023-11-12 07:18:55 +0100 | <probie> | CFG = Context Free Grammar |
2023-11-12 07:19:14 +0100 | <monochrom> | "what is CFG?" is the appropriate kind of question to ask Bing. |
2023-11-12 07:19:18 +0100 | <monochrom> | Coding is not. |
2023-11-12 07:20:07 +0100 | <Ou42> | ha. I did change tack and asked it for tutorials. I don't have GPT, but Bing at least cites its sources. |
2023-11-12 07:20:19 +0100 | <monochrom> | Along with "write a speech for a popularist politician who plots to be a tyrant". |
2023-11-12 07:20:49 +0100 | <Ou42> | I'm running for world dictator in 2042. Vote for me. |
2023-11-12 07:22:01 +0100 | <Ou42> | "String -> (String, [PacketVals])" isn't that rather similar to using an accumulator var? |
2023-11-12 07:23:51 +0100 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2023-11-12 07:25:32 +0100 | <Ou42> | ... I'm guessing here, but I'm "losing" the past accumulator, but isn't there a way it is saved on the call stack? |
2023-11-12 07:26:55 +0100 | <hololeap> | it needs to be referenced to be "saved" |
2023-11-12 07:27:43 +0100 | <hololeap> | you can pass it as an argument, for instance |
2023-11-12 07:28:11 +0100 | <Ou42> | so acc ( accumulator ) would need to become ... a stack? |
2023-11-12 07:28:24 +0100 | <Ou42> | pop the most recent off etc etc |
2023-11-12 07:28:45 +0100 | <Ou42> | the more I think about this the more i question how it's even compiling |
2023-11-12 07:30:11 +0100 | <Ou42> | one of Bing's suggestions -- no accumulator, that was my idea -- was to look ahead using span until the first ']'. Again, it compiled and ran, but wrong results. |
2023-11-12 07:30:31 +0100 | <Ou42> | it took me a while to see that it needs to read ahead to the *matching* closing sqr bracket. |
2023-11-12 07:32:22 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-11-12 07:35:01 +0100 | <mauke> | where "cites its sources" = "adds links to its randomly generated output" |
2023-11-12 07:35:43 +0100 | <monochrom> | Oh you mean like this? https://www.vex.net/~trebla/humour/lmcify.html |
2023-11-12 07:35:50 +0100 | <EvanR> | it's funny "saving stuff on the call stack" is sometimes an actual thing, the argument thunks |
2023-11-12 07:36:54 +0100 | <EvanR> | but I don't know how much explanatory power that has for your problem |
2023-11-12 07:37:26 +0100 | <EvanR> | haskell rewards you for using equational reasoning most of the time, not implementation details |
2023-11-12 07:39:15 +0100 | <hololeap> | Ou42: a parsing library such as *pandoc would be useful here |
2023-11-12 07:39:30 +0100 | <monochrom> | wait, pandoc? parsec? |
2023-11-12 07:39:32 +0100 | <hololeap> | s/pandoc/parsec |
2023-11-12 07:39:49 +0100 | <hololeap> | megaparsec, parsec, attoparsec |
2023-11-12 07:40:16 +0100 | <mauke> | monochrom: re: the _ case, I don't think that should ever happen anyway |
2023-11-12 07:40:19 +0100 | <EvanR> | parsec is kind of overkill for that AOC problem, it was pretty easy to just use a recursive algorithm |
2023-11-12 07:40:26 +0100 | <EvanR> | it helps that the input data is well formed |
2023-11-12 07:40:47 +0100 | <EvanR> | so your equations are much simplified at the return type is not a Maybe |
2023-11-12 07:42:17 +0100 | <monochrom> | Sometimes I use ReadP (or even Read and handwrite [ (x5, cs5) | (x1, cs1) <- foo cs, (x2, cs2) <- bar x1 cs1, ... ]) |
2023-11-12 07:42:20 +0100 | <hololeap> | I don't think it's overkill. why implement the details yourself when parsec is such a light dep |
2023-11-12 07:43:26 +0100 | <hololeap> | I guess for a beginner parsec might be more confusing than just implementing it yourself |
2023-11-12 07:43:27 +0100 | <Ou42> | baby steps? |
2023-11-12 07:43:43 +0100 | Lycurgus | (~georg@user/Lycurgus) (Quit: leaving) |
2023-11-12 07:43:56 +0100 | <Ou42> | I'm not arguing against your suggestions ( parsect, readP ( used it once! ) ) but I just want to level up w/ recursion first. |
2023-11-12 07:44:12 +0100 | <hololeap> | fair enough |
2023-11-12 07:44:45 +0100 | <monochrom> | CFG parsing is confusing no matter how you dice it. Because on top of recursion you are reverse-engineering another recursion. |
2023-11-12 07:45:06 +0100 | gmg | (~user@user/gehmehgeh) |
2023-11-12 07:45:06 +0100 | <mauke> | so I tried a few simple examples and it keeps throwing errors at me (non-exhaustive patterns) |
2023-11-12 07:45:44 +0100 | <mauke> | like `go "1" []` or `go "[1,2]" []` |
2023-11-12 07:45:45 +0100 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) |
2023-11-12 07:47:00 +0100 | <Ou42> | mauke: ty for trying... |
2023-11-12 07:47:06 +0100 | <Ou42> | i assume it's not well formed. |
2023-11-12 07:47:17 +0100 | <Ou42> | all Packets are surrounded by [ ] 's |
2023-11-12 07:48:04 +0100 | <mauke> | [1,2] is surrounded by [ ] |
2023-11-12 07:48:04 +0100 | <Ou42> | so at the very least, "[]" is required... `go [1,2]` should have worked... how about the go func in parse3? |
2023-11-12 07:48:29 +0100 | <Ou42> | many changes... hard to rem where I'm at. sorry. |
2023-11-12 07:49:23 +0100 | <Ou42> | but it compiled and ran for all 8 examples and even ran on the 150 in the actual (personalized) puzzle input... but that's not parse3... but a predecesor that used span incorrectly. |
2023-11-12 07:49:42 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-11-12 07:50:11 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-11-12 07:50:12 +0100 | <mauke> | I don't see how to get anything working with a type like String -> [PacketVals] -> [PacketVals] |
2023-11-12 07:50:15 +0100 | <hololeap> | which `go` are we talking about? there's a few |
2023-11-12 07:52:35 +0100 | <mauke> | the one in bingParse3 looks like it has issues with ']' handling; the one in parseP3 looks identical to parseP4 at first glance |
2023-11-12 07:53:25 +0100 | <Ou42> | it is, wanted a "do not touch" version so as to have something to ask w/o it changing. already forgot and it's not even been an hour. |
2023-11-12 07:53:34 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2023-11-12 07:54:06 +0100 | <mauke> | I think the crucial point is that you need to know where (in the input string) a recursive parse stopped reading so you can continue from that point |
2023-11-12 07:54:50 +0100 | <mauke> | in my very first parser in C, I came up with the idea of using a char ** (pointer-to-pointer, so the recursive calls could modify my string pointer) |
2023-11-12 07:55:07 +0100 | <mauke> | the Haskell equivalent is to return a (String, Result) tuple |
2023-11-12 07:55:21 +0100 | <mauke> | where the first component represents the remaining input |
2023-11-12 07:55:38 +0100 | zaquest | (~notzaques@5.130.79.72) |
2023-11-12 07:55:45 +0100 | Inst | (~Inst@120.244.192.250) (Read error: Connection reset by peer) |
2023-11-12 07:56:20 +0100 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2023-11-12 07:57:33 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-11-12 07:58:17 +0100 | gmg | (~user@user/gehmehgeh) |
2023-11-12 07:58:26 +0100 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) |
2023-11-12 07:58:38 +0100 | <mauke> | parseVal :: String -> (String, PacketVal); parseVal (c : cs) | isDigit c = let (num, rest) = span isDigit cs in (rest, Val (read (c : num))) |
2023-11-12 07:58:51 +0100 | gdown | (~gavin@h69-11-149-109.kndrid.broadband.dynamic.tds.net) (Ping timeout: 260 seconds) |
2023-11-12 07:58:53 +0100 | bw___ | (sid2730@id-2730.ilkley.irccloud.com) (Server closed connection) |
2023-11-12 07:59:20 +0100 | bw___ | (sid2730@id-2730.ilkley.irccloud.com) |
2023-11-12 08:02:49 +0100 | <Ou42> | mauke: tyvm! I need to chew on that. |
2023-11-12 08:03:17 +0100 | <mauke> | parseVal ('[' : cs) = go cs [] where go (']' : rest) acc = (rest, PacketVals acc); go cs acc = let (rest, val) = parseVal cs in (dropWhile (== ',') rest, acc ++ [val]) |
2023-11-12 08:03:18 +0100 | <Ou42> | there's something fishy about recursion -- granted it was evil until a recently -- so many it's just messing with me. ;o) |
2023-11-12 08:03:20 +0100 | <mauke> | or something like that |
2023-11-12 08:04:10 +0100 | <mauke> | disclaimer: zero error handling; could be more efficient by building the accumulator with : and reversing at the end |
2023-11-12 08:05:25 +0100 | andrewboltachev | (~andrey@178.141.201.173) (Quit: Leaving.) |
2023-11-12 08:05:41 +0100 | <mauke> | and it silently accepts trailing commas anywhere within a list, like perl :-) |
2023-11-12 08:06:34 +0100 | <mauke> | oh, and it's broken: the last clause should call 'go' again, not return a tuple |
2023-11-12 08:09:09 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-11-12 08:10:43 +0100 | yoyofreeman | (~yoyofreem@176.97.76.178) (Remote host closed the connection) |
2023-11-12 08:12:24 +0100 | yoyofreeman | (~yoyofreem@176.97.76.178) |
2023-11-12 08:12:27 +0100 | <Ou42> | I keep trying things, it takes longer than expected then I get the "oh yeah, that doesn't work" experience. |
2023-11-12 08:12:44 +0100 | <Ou42> | if it wasn't for short term memory loss, I'd be having a rather bad day. |
2023-11-12 08:13:02 +0100 | <mauke> | y-yay? |
2023-11-12 08:19:07 +0100 | Inst | (~Inst@120.244.192.250) |
2023-11-12 08:21:13 +0100 | michalz | (~michalz@185.246.207.221) |
2023-11-12 08:23:27 +0100 | <Ou42> | wild ride. I need more time. thanks for the help! |
2023-11-12 08:23:39 +0100 | <Ou42> | gotta call it a night. |
2023-11-12 08:23:50 +0100 | Ou42 | (~Ou42@2600:381:fee0:1e1:9cad:92a7:4b60:aa08) (Quit: Rick Rolled 1 too many times) |
2023-11-12 08:26:14 +0100 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |
2023-11-12 08:30:35 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2023-11-12 08:41:47 +0100 | qqq | (~qqq@92.43.167.61) (Remote host closed the connection) |
2023-11-12 08:47:31 +0100 | <phma> | Suppose I have four threads. I have a list which is computed by taking [0..] and mapping a really complicated function over it. |
2023-11-12 08:49:07 +0100 | <phma> | Is there a way to compute f(0) in thread 0, f(1) in thread 1, f(2) in thread 2, f(3) in thread 3, f(4) in thread 0 but not overlapping with f(0), and so on? |
2023-11-12 08:49:59 +0100 | <phma> | I tried chunking in Control.Parallel.Strategies but ended up getting the program killed because it used too much memory. |
2023-11-12 08:55:59 +0100 | michalz | (~michalz@185.246.207.203) |
2023-11-12 08:58:14 +0100 | sdz | (~sdz@user/sdz) (Ping timeout: 252 seconds) |
2023-11-12 08:58:41 +0100 | yoyofreeman | (~yoyofreem@176.97.76.178) (Ping timeout: 252 seconds) |
2023-11-12 08:58:56 +0100 | sdz | (~sdz@user/sdz) |
2023-11-12 08:59:42 +0100 | catilina | (~user@user/catilina) (Ping timeout: 255 seconds) |
2023-11-12 09:00:10 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-11-12 09:09:17 +0100 | Jackneill | (~Jackneill@20014C4E1E058A00F5A2357F979DDCC7.dsl.pool.telekom.hu) |
2023-11-12 09:11:13 +0100 | notzmv | (~zmv@user/notzmv) |
2023-11-12 09:17:48 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 09:29:21 +0100 | hgolden | (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) |
2023-11-12 09:44:15 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2023-11-12 09:44:25 +0100 | qqq | (~qqq@92.43.167.61) |
2023-11-12 09:45:25 +0100 | it__ | (~quassel@v2202212189510211193.supersrv.de) (Server closed connection) |
2023-11-12 09:45:34 +0100 | it_ | (~quassel@v2202212189510211193.supersrv.de) |
2023-11-12 09:51:37 +0100 | ubert | (~Thunderbi@178.165.170.224.wireless.dyn.drei.com) |
2023-11-12 09:58:43 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-11-12 09:58:52 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Ping timeout: 264 seconds) |
2023-11-12 10:06:25 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-11-12 10:06:49 +0100 | new-account-2 | (~new-accou@user/new-account-2) |
2023-11-12 10:07:41 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2023-11-12 10:08:54 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-11-12 10:09:57 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2023-11-12 10:14:26 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2023-11-12 10:14:37 +0100 | mechap | (~mechap@user/mechap) |
2023-11-12 10:15:28 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-11-12 10:20:11 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-12 10:20:41 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 10:21:35 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-11-12 10:22:15 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2023-11-12 10:24:30 +0100 | steew | (~steew@user/steew) (Server closed connection) |
2023-11-12 10:24:52 +0100 | ubert | (~Thunderbi@178.165.170.224.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
2023-11-12 10:24:58 +0100 | steew | (~steew@user/steew) |
2023-11-12 10:34:52 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 264 seconds) |
2023-11-12 10:35:23 +0100 | Inst | (~Inst@120.244.192.250) (Remote host closed the connection) |
2023-11-12 10:35:43 +0100 | Inst | (~Inst@120.244.192.250) |
2023-11-12 10:36:13 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-11-12 10:44:48 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d0e6:54a3:ea5c:7672) (Remote host closed the connection) |
2023-11-12 10:45:03 +0100 | acidjnk | (~acidjnk@p200300d6e72b9351ac6f5a8b7958b98c.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2023-11-12 10:45:23 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-11-12 10:49:07 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-12 10:49:43 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2023-11-12 10:51:15 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection) |
2023-11-12 10:51:27 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-11-12 10:59:47 +0100 | chiselfu1e | (~chiselfus@user/chiselfuse) |
2023-11-12 11:00:15 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-11-12 11:00:15 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2023-11-12 11:00:39 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-11-12 11:00:46 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-11-12 11:03:04 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Ping timeout: 264 seconds) |
2023-11-12 11:04:35 +0100 | Square | (~Square@user/square) (Ping timeout: 260 seconds) |
2023-11-12 11:11:07 +0100 | Taneb | (~Taneb@runciman.hacksoc.org) (Server closed connection) |
2023-11-12 11:11:22 +0100 | Taneb | (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
2023-11-12 11:12:39 +0100 | sdz | (~sdz@user/sdz) (Ping timeout: 240 seconds) |
2023-11-12 11:13:40 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-12 11:13:50 +0100 | sdz | (~sdz@user/sdz) |
2023-11-12 11:18:32 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7011:9d1b:12e0:79a) |
2023-11-12 11:21:13 +0100 | sawilagar | (~sawilagar@user/sawilagar) |
2023-11-12 11:30:47 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-11-12 11:36:17 +0100 | <Axman6> | phma: You should read PCPH |
2023-11-12 11:36:23 +0100 | <Axman6> | @whre pcph |
2023-11-12 11:36:23 +0100 | <lambdabot> | "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive. |
2023-11-12 11:36:23 +0100 | <lambdabot> | org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/> |
2023-11-12 11:51:59 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-11-12 11:52:20 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-11-12 12:00:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 12:01:05 +0100 | Me-me | (~me-me@2602:ff16:3:0:1:dc:beef:d00d) (Changing host) |
2023-11-12 12:01:05 +0100 | Me-me | (~me-me@user/me-me) |
2023-11-12 12:12:12 +0100 | Martin | (~Martin@ip-134-003-176-135.um41.pools.vodafone-ip.de) |
2023-11-12 12:13:51 +0100 | Martin2 | (~Martin2@ip-134-003-176-135.um41.pools.vodafone-ip.de) |
2023-11-12 12:14:23 +0100 | Martin | (~Martin@ip-134-003-176-135.um41.pools.vodafone-ip.de) (Client Quit) |
2023-11-12 12:14:37 +0100 | CO2 | (CO2@gateway/vpn/protonvpn/co2) |
2023-11-12 12:18:10 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-11-12 12:30:51 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 258 seconds) |
2023-11-12 12:34:19 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-11-12 12:35:31 +0100 | ham | (~ham@user/ham) (Server closed connection) |
2023-11-12 12:35:56 +0100 | ham | (~ham@user/ham) |
2023-11-12 12:44:57 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Remote host closed the connection) |
2023-11-12 12:45:18 +0100 | sawilagar | (~sawilagar@user/sawilagar) |
2023-11-12 12:45:58 +0100 | <srk> | is -threaded a default now? |
2023-11-12 12:47:46 +0100 | <Hecate> | srk: I don't believe so |
2023-11-12 12:48:20 +0100 | <Inst> | add a ghc-options: field in your cabal file / script, I'm not sure what the equivalent workflow is for stack. |
2023-11-12 12:48:42 +0100 | <srk> | hmm. interesting.. something weird changed |
2023-11-12 12:49:05 +0100 | <srk> | I use linux-namespaces in one testsuite and it cannot call unshare in threaded runtime |
2023-11-12 12:49:12 +0100 | <srk> | after clone |
2023-11-12 12:50:35 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2023-11-12 12:50:52 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2023-11-12 12:51:43 +0100 | <srk> | ghc_ticker? oO |
2023-11-12 12:52:07 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-11-12 13:00:13 +0100 | <srk> | oh yes, that's new.. +RTS -V0 -RTS disables it (Master tick interval in seconds), sounds profiling related |
2023-11-12 13:01:01 +0100 | _73 | (~Unknown_7@pool-173-76-100-193.bstnma.fios.verizon.net) |
2023-11-12 13:02:11 +0100 | arahael | (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 260 seconds) |
2023-11-12 13:07:16 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7011:9d1b:12e0:79a) (Ping timeout: 258 seconds) |
2023-11-12 13:08:58 +0100 | glguy_ | (g@libera/staff/glguy) |
2023-11-12 13:09:09 +0100 | g_ | (g@libera/staff/glguy) |
2023-11-12 13:09:47 +0100 | mechap | (~mechap@user/mechap) |
2023-11-12 13:09:53 +0100 | g | (g@libera/staff/glguy) (Read error: Connection reset by peer) |
2023-11-12 13:09:53 +0100 | g_ | g |
2023-11-12 13:10:16 +0100 | glguy | (g@libera/staff/glguy) (Read error: Connection reset by peer) |
2023-11-12 13:11:17 +0100 | PHO`_ | (~pho@akari.cielonegro.org) (Server closed connection) |
2023-11-12 13:11:28 +0100 | PHO`_ | (~pho@akari.cielonegro.org) |
2023-11-12 13:12:33 +0100 | <_73> | hey. I'm trying to use JuicyPixels in my stack project. I specified the dependency in my stack.yaml file, and I am able to "stack build" the project successfully. However, if I try to import a module from JuicyPixels (such as Picture.Codec), then stack cannot find the module. Here is the output of an unsuccessful run of "stack build --verbose" https://termbin.com/gs47 |
2023-11-12 13:12:46 +0100 | <_73> | Any ideas what I am doing wrong? |
2023-11-12 13:15:38 +0100 | <srk> | _73: try adding JuicyPixels as build-depends for you library in cabal file |
2023-11-12 13:17:57 +0100 | Martin2 | (~Martin2@ip-134-003-176-135.um41.pools.vodafone-ip.de) (Quit: Connection closed) |
2023-11-12 13:18:41 +0100 | <_73> | srk: I get the same error when I do this and redo the "stack build" command. |
2023-11-12 13:22:01 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-11-12 13:23:39 +0100 | <srk> | _73: maybe it's coming from executable not from library |
2023-11-12 13:24:06 +0100 | <srk> | exe:hsten-exe suggests so |
2023-11-12 13:27:43 +0100 | tremon | (~tremon@83.80.159.219) |
2023-11-12 13:28:29 +0100 | <_73> | Im a bit confused. Doesn't stack produce the .cabal file? After I specify the JuicyPixels dep in the .cabal file (for both the library and executable), I am again left with the original .cabal file again. |
2023-11-12 13:30:12 +0100 | <srk> | I don't know tbh, why use stack? :) is there hpack and package.yaml in play? |
2023-11-12 13:32:13 +0100 | __monty__ | (~toonn@user/toonn) |
2023-11-12 13:33:00 +0100 | andrewboltachev | (~andrey@178.141.201.173) |
2023-11-12 13:33:19 +0100 | Batzy | (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-11-12 13:38:22 +0100 | peutri | (~peutri@bobo.desast.re) (Server closed connection) |
2023-11-12 13:38:31 +0100 | peutri | (~peutri@bobo.desast.re) |
2023-11-12 13:39:43 +0100 | <_73> | specifying the dep in the package.yaml fixed the problem |
2023-11-12 13:43:08 +0100 | Square | (~Square@user/square) |
2023-11-12 13:43:41 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2023-11-12 13:45:46 +0100 | andrewboltachev | (~andrey@178.141.201.173) () |
2023-11-12 13:46:25 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-11-12 13:47:03 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-11-12 13:47:11 +0100 | <tomsmeding> | _73: the *.cabal file is the actual specification for dependencies etc.; when using stack, stack.yaml specifies what ghc version to use and how to configure the build (e.g. where to get those dependencies _from_). With stack you can optionally use a package.yaml, from which stack generates the *.cabal file |
2023-11-12 13:47:36 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-11-12 13:48:03 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-11-12 13:48:28 +0100 | <tomsmeding> | with cabal (instead of stack), there's no package.yaml (just write the *.cabal file manually), and cabal.project replaces stack.yaml |
2023-11-12 13:52:07 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-12 13:52:32 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 13:52:44 +0100 | <srk> | why is stack still a thing.. |
2023-11-12 13:52:47 +0100 | AlexZenon | (~alzenon@94.233.241.129) (Quit: ;-) |
2023-11-12 13:53:39 +0100 | <tomsmeding> | srk: certain people like the reprodicibility |
2023-11-12 13:53:46 +0100 | <tomsmeding> | *-du- |
2023-11-12 13:54:15 +0100 | <tomsmeding> | same stack.yaml means same resolver means same packages means probably same build result |
2023-11-12 13:54:15 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-12 13:54:34 +0100 | <tomsmeding> | I also prefer cabal, don't get me wrong |
2023-11-12 13:55:00 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 13:57:02 +0100 | AlexNoo | (~AlexNoo@94.233.241.129) (Quit: Leaving) |
2023-11-12 13:57:48 +0100 | <srk> | tomsmeding: well you can set index-state nowadays and use nix for true reproducibility :) |
2023-11-12 13:57:52 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 258 seconds) |
2023-11-12 13:58:36 +0100 | <tomsmeding> | index-state means something else, right? A freeze file would be more in line with what a stackage snapshot gives you |
2023-11-12 13:58:54 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-12 13:59:00 +0100 | <srk> | indeed! |
2023-11-12 13:59:02 +0100 | euleritian | (~euleritia@dynamic-046-114-201-248.46.114.pool.telefonica.de) |
2023-11-12 13:59:05 +0100 | <tomsmeding> | And I guess it's true that the argument is mostly invalidated by the existence of freeze files |
2023-11-12 13:59:19 +0100 | euleritian | (~euleritia@dynamic-046-114-201-248.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-12 13:59:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 14:00:55 +0100 | <Rembane> | Can't you set the exact version numbers you want for all dependencies in your cabal file? |
2023-11-12 14:01:04 +0100 | <Rembane> | ...to get reproducible builds? |
2023-11-12 14:01:04 +0100 | <tomsmeding> | that's hard to upgrade |
2023-11-12 14:01:22 +0100 | <tomsmeding> | stackage snapshot (and, indeed, a freeze file) is not -- just increment the version number |
2023-11-12 14:01:36 +0100 | <Rembane> | Indeed. I've found some program to help with that, but after using it I promptly forgot the name of it. |
2023-11-12 14:01:37 +0100 | <srk> | Rembane: but you do not list indirect dependencies there, freeze has all of them |
2023-11-12 14:01:47 +0100 | <Rembane> | srk: That's a very good point. |
2023-11-12 14:01:50 +0100 | <tomsmeding> | Rembane: 'cabal outdated'? |
2023-11-12 14:02:03 +0100 | <Rembane> | tomsmeding: That sounds familiar. |
2023-11-12 14:02:12 +0100 | <tomsmeding> | it at least does something related |
2023-11-12 14:02:16 +0100 | <Rembane> | Yes. |
2023-11-12 14:03:21 +0100 | <srk> | til! pretty cool.. I was using https://packdeps.haskellers.com/feed?needle=GPipe until now :D |
2023-11-12 14:03:34 +0100 | _73 | (~Unknown_7@pool-173-76-100-193.bstnma.fios.verizon.net) () |
2023-11-12 14:03:51 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2023-11-12 14:08:36 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-12 14:09:03 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 14:10:12 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-11-12 14:21:01 +0100 | AlexNoo | (~AlexNoo@94.233.241.129) |
2023-11-12 14:23:59 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2023-11-12 14:24:15 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2023-11-12 14:26:18 +0100 | AlexZenon | (~alzenon@94.233.241.129) |
2023-11-12 14:29:14 +0100 | mmhat | (~mmh@p200300f1c7445e4eee086bfffe095315.dip0.t-ipconnect.de) |
2023-11-12 14:29:36 +0100 | mmhat | (~mmh@p200300f1c7445e4eee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
2023-11-12 14:34:12 +0100 | chiselfu1e | (~chiselfus@user/chiselfuse) (Quit: leaving) |
2023-11-12 14:34:51 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-11-12 14:35:03 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
2023-11-12 14:37:26 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2023-11-12 14:38:15 +0100 | <ph88> | Could someone help me on discord with a call? I have a few questions about State, fold, intersperse combined |
2023-11-12 14:39:53 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-11-12 14:40:49 +0100 | <ph88> | or matrix perhaps, does matrix do calls ? |
2023-11-12 14:44:11 +0100 | haveo | (~weechat@pacamara.iuwt.fr) (Server closed connection) |
2023-11-12 14:44:35 +0100 | haveo | (~weechat@pacamara.iuwt.fr) |
2023-11-12 14:49:16 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
2023-11-12 14:52:46 +0100 | swistak | (~swistak@185.21.216.141) (Server closed connection) |
2023-11-12 14:53:06 +0100 | swistak | (~swistak@185.21.216.141) |
2023-11-12 14:57:26 +0100 | Adran | (~adran@botters/adran) (Server closed connection) |
2023-11-12 14:57:39 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-11-12 15:00:32 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-12 15:01:11 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-11-12 15:03:38 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-11-12 15:04:32 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7011:9d1b:12e0:79a) |
2023-11-12 15:04:37 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-11-12 15:09:09 +0100 | danza | (~francesco@151.57.226.145) |
2023-11-12 15:10:14 +0100 | <Inst> | vty vs brick: i've set a goal for myself of learning either one this week |
2023-11-12 15:10:25 +0100 | <Inst> | is there a reason i should prefer either? Or are they equally valid? |
2023-11-12 15:11:16 +0100 | <EvanR> | what's the objective application |
2023-11-12 15:11:43 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-12 15:12:29 +0100 | euleritian | (~euleritia@77.22.252.56) |
2023-11-12 15:12:40 +0100 | CO2 | (CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.1) |
2023-11-12 15:13:53 +0100 | <Inst> | just me messing around, and trying to avoid using naive console UI in the future |
2023-11-12 15:14:32 +0100 | <Inst> | something to default to in lieu of putStrLn someCrapIveSpecifiedElsewhere and thisIsHorriblyNaiveAndIsDumb <- getLine |
2023-11-12 15:14:34 +0100 | <EvanR> | I find that a concrete objective makes it easier to learn the tools |
2023-11-12 15:14:37 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-11-12 15:15:04 +0100 | <Inst> | i'd go port tower of hanoi over |
2023-11-12 15:15:10 +0100 | <Inst> | or 3d maze, or something like that |
2023-11-12 15:15:23 +0100 | <EvanR> | and in this case it might make the choice of library more meaningful |
2023-11-12 15:15:27 +0100 | euleritian | (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
2023-11-12 15:15:28 +0100 | <Inst> | but i have something to do this week, so, dumbest possible toy example: "What is your name?" "Hello user" |
2023-11-12 15:15:40 +0100 | <Inst> | in this case, I get the feeling right now vty is more suitable |
2023-11-12 15:16:04 +0100 | <Inst> | I complained re monomer that it was awfully unintuitive to learn |
2023-11-12 15:16:10 +0100 | euleritian | (~euleritia@77.22.252.56) |
2023-11-12 15:16:18 +0100 | <Inst> | and it's an "easy to use library, but only for experienced Haskellers" |
2023-11-12 15:16:29 +0100 | <Inst> | looking at how Brick is set up, I can understand why it'd be considered easy to use |
2023-11-12 15:16:59 +0100 | <EvanR> | if something is "easy to learn" that probably means you didn't learn very much and had already known the better part of the subject |
2023-11-12 15:19:34 +0100 | nurupo | (~nurupo.ga@user/nurupo) (Server closed connection) |
2023-11-12 15:19:48 +0100 | nurupo | (~nurupo.ga@user/nurupo) |
2023-11-12 15:19:58 +0100 | <Inst> | when it comes to libraries, is that a good thing, though? |
2023-11-12 15:20:23 +0100 | <EvanR> | haskell was easy to learn for me because prior fp education, I'm told haskell is hard to learn and esoteric by other people |
2023-11-12 15:20:38 +0100 | <EvanR> | how can they both be true?! |
2023-11-12 15:21:04 +0100 | <EvanR> | because it's not an intrinsic |
2023-11-12 15:21:28 +0100 | <Inst> | Where did you come in from, anyways? |
2023-11-12 15:22:06 +0100 | <Unicorn_Princess> | those people are wrong. i had no prior fp background, and haskell was easy to learn for me too. at least the basics, before you get into more esoteric, complex monad trickery, or dealing with nasty implementation issues like memory leaks or lazyness edge cases |
2023-11-12 15:22:26 +0100 | <Inst> | I got into Haskell because it seemed to be easier to learn than C++ |
2023-11-12 15:22:51 +0100 | <Inst> | was supposed to take a 6 month detour, then go try to master C++, but instead, it's been 2 years, here we are |
2023-11-12 15:22:58 +0100 | <srk> | Inst: brick is awesome, definitely worth learning |
2023-11-12 15:23:04 +0100 | <Unicorn_Princess> | cuz the essence of haskell _is_ simple. of course you can build complex stuff on top, like pro-bifunctor affine traversals or w/e is the current hot thing in CT land, but at it's base it's very elegant and intuitive |
2023-11-12 15:23:11 +0100 | <srk> | brick for UIs, vty for lower level things |
2023-11-12 15:23:13 +0100 | <Unicorn_Princess> | and that's coming from c++ hellscape |
2023-11-12 15:23:52 +0100 | <EvanR> | your brain was already on overdrive from learning C++, so haskell was relatively easy xD |
2023-11-12 15:24:01 +0100 | <srk> | :D |
2023-11-12 15:24:10 +0100 | <Unicorn_Princess> | yeah could be :S |
2023-11-12 15:25:01 +0100 | <EvanR> | I get "haskell makes no sense whatsoever" from web dynamic languages people |
2023-11-12 15:25:14 +0100 | <Inst> | It's more interesting WHY it makes no sense to them |
2023-11-12 15:25:19 +0100 | <Unicorn_Princess> | i've said it before and i'll say it again |
2023-11-12 15:25:21 +0100 | <Unicorn_Princess> | > web |
2023-11-12 15:25:22 +0100 | <lambdabot> | error: Variable not in scope: web |
2023-11-12 15:25:23 +0100 | <Unicorn_Princess> | > people |
2023-11-12 15:25:24 +0100 | <lambdabot> | error: Variable not in scope: people |
2023-11-12 15:25:26 +0100 | <Unicorn_Princess> | pick _one_ |
2023-11-12 15:25:35 +0100 | <Inst> | i guess at least out of purely anthropological interest |
2023-11-12 15:25:43 +0100 | <Unicorn_Princess> | *zoological |
2023-11-12 15:25:52 +0100 | <Rembane> | EvanR: Maybe they come frustrated when the type checker becomes confused at them? |
2023-11-12 15:25:55 +0100 | <EvanR> | because PHP was invented, haskell was discovered |
2023-11-12 15:26:46 +0100 | <EvanR> | haskell doesn't automatically fit into human affordances xD |
2023-11-12 15:28:05 +0100 | lg188 | (~lg188@82.18.98.230) (Ping timeout: 240 seconds) |
2023-11-12 15:29:15 +0100 | <Inst> | vty ironically makes more sense to me than brick at this point |
2023-11-12 15:29:21 +0100 | <EvanR> | (that was a variation on an SPJ joke, haskell was in fact also invented for humans by humans) |
2023-11-12 15:30:07 +0100 | <Inst> | which joke was that? ?:( |
2023-11-12 15:30:24 +0100 | <EvanR> | haskell was discovered, not invented. *I think you can tell* |
2023-11-12 15:31:58 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-11-12 15:32:18 +0100 | <Inst> | https://corecursive.com/021-gods-programming-language-with-philip-wadler/ |
2023-11-12 15:32:20 +0100 | <Inst> | this? |
2023-11-12 15:32:29 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-11-12 15:32:57 +0100 | <EvanR> | that looks apropos to the sentiment |
2023-11-12 15:35:17 +0100 | Adran | (~adran@botters/adran) |
2023-11-12 15:36:47 +0100 | euleritian | (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
2023-11-12 15:36:53 +0100 | <Inst> | also, speaking of Wadler, wow |
2023-11-12 15:36:55 +0100 | <Inst> | https://www.amazon.in/Java-Generics-Collections-Fundamentals-Recommended/dp/1098136721 |
2023-11-12 15:37:37 +0100 | euleritian | (~euleritia@77.22.252.56) |
2023-11-12 15:38:29 +0100 | <Inst> | by the way |
2023-11-12 15:38:34 +0100 | <Inst> | https://hackage.haskell.org/package/vty-6.0/docs/Graphics-Vty.html#t:Vty |
2023-11-12 15:38:47 +0100 | <Inst> | what is this design? A record of IO functions |
2023-11-12 15:38:57 +0100 | <Inst> | is it OOP? |
2023-11-12 15:39:50 +0100 | <EvanR> | no in the sense of cardelli theory of objects because those functions don't take a self parameter |
2023-11-12 15:39:53 +0100 | <EvanR> | not* |
2023-11-12 15:40:26 +0100 | <EvanR> | but record of functions as a way to allow varying behavior is also common in C |
2023-11-12 15:41:33 +0100 | <Inst> | record of functions is really weird to me, i've also seen something like that in the Cabal custom build system |
2023-11-12 15:41:52 +0100 | <EvanR> | it's like a more flexible but more explicit type class |
2023-11-12 15:42:12 +0100 | <EvanR> | manual dictionary passing |
2023-11-12 15:43:07 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 264 seconds) |
2023-11-12 15:43:27 +0100 | <Inst> | i mean implicitly you could do self, though |
2023-11-12 15:43:28 +0100 | <EvanR> | UI libraries that consist of a driver loop which executes your "callbacks" is pretty common |
2023-11-12 15:43:46 +0100 | <Inst> | since when you're defining a datatype like that, you can use where etc to extract data recursively from the host object |
2023-11-12 15:43:52 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
2023-11-12 15:44:04 +0100 | <Inst> | thanks <EvanR3 |
2023-11-12 15:44:15 +0100 | <EvanR> | you can, then it would be OOP in the sense of cardelli |
2023-11-12 15:44:24 +0100 | <Inst> | well, not defining a datatype like that, defining a value of a datatype like that |
2023-11-12 15:46:34 +0100 | <EvanR> | which leads to the idea of corecursive codata which is potentially infinite and usefully productive |
2023-11-12 15:47:36 +0100 | <EvanR> | a stream allows you to continually ask for the next item and rest of stream, an object allows you to continually ask any question that's part of its class, which might return an updated object |
2023-11-12 15:48:10 +0100 | notzmv | (~zmv@user/notzmv) |
2023-11-12 15:48:23 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-12 15:50:41 +0100 | chomwitt | (~chomwitt@2a02:587:7a12:2d00:1ac0:4dff:fedb:a3f1) |
2023-11-12 15:52:07 +0100 | Fangs | (sid141280@id-141280.hampstead.irccloud.com) (Server closed connection) |
2023-11-12 15:52:19 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-11-12 15:52:21 +0100 | Fangs | (sid141280@id-141280.hampstead.irccloud.com) |
2023-11-12 15:53:03 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2023-11-12 15:55:06 +0100 | notzmv | (~zmv@user/notzmv) |
2023-11-12 15:57:53 +0100 | <Inst> | at least this was less painful than not figuring out that aeson was using typeclass based interfaces for its decode function for the longest time |
2023-11-12 15:59:54 +0100 | <EvanR> | another library with a similar interface is gloss. But they take the fields of the record of functions as separate arguments instead of grouped into a record |
2023-11-12 16:00:38 +0100 | <EvanR> | same concept, driver loop calls your callbacks |
2023-11-12 16:02:26 +0100 | <Inst> | it just feels smelly, like, i can theoretically stuff anything i want into the record type as long as the types match |
2023-11-12 16:02:42 +0100 | acidjnk | (~acidjnk@p200300d6e72b933884d06dff6b3ba200.dip0.t-ipconnect.de) |
2023-11-12 16:02:54 +0100 | <Inst> | with IO I could hide something that starts a keylogger, for example |
2023-11-12 16:03:25 +0100 | <Inst> | and as a question of IO isolation, is the record in IO or is it out of IO? |
2023-11-12 16:04:16 +0100 | <EvanR> | gloss has a pure version as well as IO versions |
2023-11-12 16:04:37 +0100 | <EvanR> | if you don't use the IO version your program can do nothing but show graphics and get user input |
2023-11-12 16:04:53 +0100 | <EvanR> | the record is just a way of grouping the data |
2023-11-12 16:06:05 +0100 | <EvanR> | maybe vty has the same thing, or maybe the designer thought that wouldn't be very useful |
2023-11-12 16:07:54 +0100 | new-account-2 | (~new-accou@user/new-account-2) (Quit: Client closed) |
2023-11-12 16:07:54 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 16:08:36 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2023-11-12 16:12:26 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
2023-11-12 16:13:19 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 16:20:50 +0100 | Lycurgus | (~georg@li1192-118.members.linode.com) |
2023-11-12 16:20:51 +0100 | Lycurgus | (~georg@li1192-118.members.linode.com) (Changing host) |
2023-11-12 16:20:51 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2023-11-12 16:22:15 +0100 | CO2 | (CO2@gateway/vpn/protonvpn/co2) |
2023-11-12 16:28:52 +0100 | actioninja | (~actioninj@user/actioninja) (Server closed connection) |
2023-11-12 16:29:16 +0100 | actioninja | (~actioninj@user/actioninja) |
2023-11-12 16:30:10 +0100 | Nixkernal_ | (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-11-12 16:33:16 +0100 | Tlsx | (~rscastilh@187.40.125.21) |
2023-11-12 16:36:07 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-11-12 16:37:51 +0100 | Tlsx | (~rscastilh@187.40.125.21) (Ping timeout: 240 seconds) |
2023-11-12 16:39:21 +0100 | Nixkernal | (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) |
2023-11-12 16:40:10 +0100 | hc | (~hc@bsd.pm) |
2023-11-12 16:40:12 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-11-12 16:43:20 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2023-11-12 16:43:32 +0100 | pavonia | (~user@user/siracusa) |
2023-11-12 16:43:47 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-11-12 16:45:21 +0100 | <hc> | Hello, just for fun I'm writing a library where you can write something like: a = (Z 5) :: Z 23 Now a has the value 5 in the ring Z_23. |
2023-11-12 16:46:08 +0100 | <hc> | Problem is, I need to declare the type in addition to calling the data constructor. My question is, could I write a function mkNum a b that takes as a the 23 of Z_23 and as b the actual numer like 5, so I could write a = mkZ 23 5 isntead of a=(Z 5) :: Z23 ? |
2023-11-12 16:49:09 +0100 | <EvanR> | MkZ @23 5 ? |
2023-11-12 16:49:17 +0100 | <EvanR> | visible type application |
2023-11-12 16:49:18 +0100 | <probie> | hc: You can't. What you can probably do however is `Z @23 5` |
2023-11-12 16:49:59 +0100 | <hc> | Ah, that's the new syntax I just learnt about in one of the well-typed youtube haskell videos |
2023-11-12 16:50:02 +0100 | <hc> | Thanks, will try |
2023-11-12 16:50:29 +0100 | <APic> | lol |
2023-11-12 16:50:59 +0100 | Nixkernal | (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-11-12 16:51:19 +0100 | <hc> | Nice, that works! |
2023-11-12 16:52:45 +0100 | Tlsx | (~rscastilh@187.40.125.21) |
2023-11-12 16:56:54 +0100 | <Inst> | i love this guy on FP Discord |
2023-11-12 16:57:07 +0100 | <Inst> | he got into a fight after someone trashed him for not understanding the Haskell import system |
2023-11-12 16:57:59 +0100 | <Inst> | took him aside, put in some comfort, then he showed me some code he was debugging, which was wrong because he didn't understand how (>>=) worked, he had a really great time realizing how to understand Haskell's types |
2023-11-12 16:58:18 +0100 | <Inst> | then we discussed how foo =<< bar is better than foo(bar()) |
2023-11-12 16:59:13 +0100 | <Inst> | with him showing an example of how method chaining in Rust created a very subtle bug that would have been avoided with explicit bind operators in Haskell |
2023-11-12 17:00:17 +0100 | hc_ | (~hc@ip-185-104-142-44.hosts-fiberone.de) |
2023-11-12 17:00:33 +0100 | hc | (~hc@bsd.pm) (Quit: leaving) |
2023-11-12 17:00:44 +0100 | hc_ | hc |
2023-11-12 17:01:08 +0100 | <EvanR> | for maximum diversity use an even mix of foo =<< bar and bar >>= foo |
2023-11-12 17:01:28 +0100 | <Inst> | sarcasm noted :( |
2023-11-12 17:01:38 +0100 | <EvanR> | no |
2023-11-12 17:01:44 +0100 | <Inst> | you literally can't do that iirc because =<< and >>= have different fixities |
2023-11-12 17:02:08 +0100 | <EvanR> | yes not in the same chain |
2023-11-12 17:02:13 +0100 | <duncan> | how exactly do you take someone aside on an online chatroom? |
2023-11-12 17:02:23 +0100 | <EvanR> | "PM me" lol |
2023-11-12 17:02:36 +0100 | <EvanR> | (always a bad sign) |
2023-11-12 17:03:36 +0100 | <duncan> | uh-oh |
2023-11-12 17:03:39 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2023-11-12 17:04:24 +0100 | <Inst> | i mean =<< and >>= express different ideas |
2023-11-12 17:04:32 +0100 | <Inst> | imo >>= expresses chaining of monadic functions |
2023-11-12 17:04:36 +0100 | <Inst> | and an order of effects |
2023-11-12 17:04:52 +0100 | <Inst> | =<< seems to me, denote a function call |
2023-11-12 17:05:15 +0100 | <Inst> | or function application, the code does the same thing but the concept being expressed is different |
2023-11-12 17:05:19 +0100 | <EvanR> | they do the same thing |
2023-11-12 17:05:34 +0100 | <EvanR> | it's a stylistic choice |
2023-11-12 17:08:22 +0100 | <EvanR> | and foo |> bar |> baz in elixir is still just reverse function application |
2023-11-12 17:08:32 +0100 | <probie> | Remember to mix in `>=>` and `<=<` |
2023-11-12 17:09:19 +0100 | _0xa | (~user@user/0xa/x-3134607) (Server closed connection) |
2023-11-12 17:09:23 +0100 | <Inst> | that is really cute |
2023-11-12 17:09:30 +0100 | _0xa | (~user@95.179.128.10) |
2023-11-12 17:09:30 +0100 | _0xa | (~user@95.179.128.10) (Changing host) |
2023-11-12 17:09:30 +0100 | _0xa | (~user@user/0xa/x-3134607) |
2023-11-12 17:09:38 +0100 | <Inst> | >=> is infixr like =<<, while <=< is infixl like >>= |
2023-11-12 17:10:38 +0100 | mokee | (~mokee@37.228.215.150) |
2023-11-12 17:11:35 +0100 | <Inst> | and they can't be used together, even though the fixities match |
2023-11-12 17:12:40 +0100 | <EvanR> | :t m >>= f >=> g |
2023-11-12 17:12:41 +0100 | <lambdabot> | error: |
2023-11-12 17:12:41 +0100 | <lambdabot> | Precedence parsing error |
2023-11-12 17:12:41 +0100 | <lambdabot> | cannot mix ‘>>=’ [infixl 1] and ‘>=>’ [infixr 1] in the same infix expression |
2023-11-12 17:12:43 +0100 | Lycurgus | (~georg@user/Lycurgus) (Quit: leaving) |
2023-11-12 17:12:49 +0100 | <EvanR> | :t m >>= f <=< g |
2023-11-12 17:12:50 +0100 | <lambdabot> | error: |
2023-11-12 17:12:50 +0100 | <lambdabot> | Precedence parsing error |
2023-11-12 17:12:50 +0100 | <lambdabot> | cannot mix ‘>>=’ [infixl 1] and ‘<=<’ [infixr 1] in the same infix expression |
2023-11-12 17:13:08 +0100 | <EvanR> | what you talking about |
2023-11-12 17:13:12 +0100 | <Inst> | wait what? |
2023-11-12 17:14:08 +0100 | <Inst> | huh so both (>=>) and (<=<) are infixr |
2023-11-12 17:14:19 +0100 | <int-e> | ...no? |
2023-11-12 17:14:27 +0100 | <int-e> | oh |
2023-11-12 17:14:29 +0100 | <Inst> | :i (>=>) |
2023-11-12 17:14:32 +0100 | <Inst> | :i (<=<) |
2023-11-12 17:14:39 +0100 | <int-e> | sorry, I misread |
2023-11-12 17:14:50 +0100 | <int-e> | I thought one of those was >>= |
2023-11-12 17:15:31 +0100 | <Inst> | so you can mix both kinds of kleisli arrows together, weird |
2023-11-12 17:16:47 +0100 | <EvanR> | good |
2023-11-12 17:17:00 +0100 | <EvanR> | same for composition and reverse composition |
2023-11-12 17:17:29 +0100 | <Inst> | what is reverse composition? |
2023-11-12 17:17:32 +0100 | <Inst> | do you mean >>>? |
2023-11-12 17:17:34 +0100 | <int-e> | You can't mix either of them with >>= and that's probably for the better. |
2023-11-12 17:17:39 +0100 | <EvanR> | >>> and <<< sure |
2023-11-12 17:18:19 +0100 | <EvanR> | :t flip (.) |
2023-11-12 17:18:20 +0100 | <lambdabot> | (a -> b) -> (b -> c) -> a -> c |
2023-11-12 17:24:46 +0100 | tango88 | (~tango88@194.127.199.82) |
2023-11-12 17:25:04 +0100 | <hc> | Another question, just for fun I'm implementing the C ternary operator ? in haskell by doing: (!) a b = (a, b) and (?) a (b, c) = if a then b else c |
2023-11-12 17:25:18 +0100 | <hc> | Is there anyway to hide the original : operator so I can use it instead? |
2023-11-12 17:25:55 +0100 | <ncf> | have you considered learning agda instead |
2023-11-12 17:26:03 +0100 | <hc> | haha :) |
2023-11-12 17:26:06 +0100 | <ncf> | hm i guess you still couldn't use : |
2023-11-12 17:26:55 +0100 | <duncan> | aw yea R now has pipes like |> natively, they're great |
2023-11-12 17:27:22 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-11-12 17:27:40 +0100 | <EvanR> | :t f >>> g <<< h -- o_O |
2023-11-12 17:27:41 +0100 | <lambdabot> | forall k (cat :: k -> k -> *) (a :: k) (b1 :: k) (b2 :: k) (c :: k). (Category cat, FromExpr (cat a b1), FromExpr (cat b2 c), FromExpr (cat b1 b2)) => cat a c |
2023-11-12 17:27:49 +0100 | <EvanR> | :t f <<< g >>> h --- o_O |
2023-11-12 17:27:50 +0100 | <lambdabot> | forall k (cat :: k -> k -> *) (b1 :: k) (c :: k) (a :: k) (b2 :: k). (Category cat, FromExpr (cat b1 c), FromExpr (cat a b2), FromExpr (cat b2 b1)) => cat a c |
2023-11-12 17:27:58 +0100 | <EvanR> | looks like you can mix them after all |
2023-11-12 17:28:08 +0100 | todi | (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Remote host closed the connection) |
2023-11-12 17:28:28 +0100 | <ncf> | gross |
2023-11-12 17:28:50 +0100 | <EvanR> | infixr... |
2023-11-12 17:29:16 +0100 | <hc> | So I guess (:) is more hardcoded into haskell than (+), (*), etc.? |
2023-11-12 17:29:26 +0100 | <EvanR> | yes |
2023-11-12 17:29:30 +0100 | <hc> | Fascinating |
2023-11-12 17:30:18 +0100 | <Inst> | I guess it's considered the same as [] syntax? |
2023-11-12 17:30:46 +0100 | <tomsmeding> | hc: a clever alternative syntax is given at https://wiki.haskell.org/If-then-else#Use_cases |
2023-11-12 17:31:15 +0100 | <tomsmeding> | (? $ instead of ? :) |
2023-11-12 17:31:25 +0100 | mastarija | (~mastarija@42-42.dsl.iskon.hr) |
2023-11-12 17:31:36 +0100 | <tomsmeding> | Inst: yeah, (:) is built-in syntax just like [] |
2023-11-12 17:32:12 +0100 | <tomsmeding> | https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-340003.7 |
2023-11-12 17:32:25 +0100 | Ram-Z | (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Server closed connection) |
2023-11-12 17:32:50 +0100 | Ram-Z | (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) |
2023-11-12 17:33:39 +0100 | <hc> | Oh I see. Thanks to the currying an operator doesn't necessarily have to take two arguments |
2023-11-12 17:33:45 +0100 | <hc> | But then the syntax is a bit less C-like ;-) |
2023-11-12 17:34:02 +0100 | <hc> | Hmm, unless you use $, true :) |
2023-11-12 17:35:08 +0100 | <tomsmeding> | yeah it's a hack |
2023-11-12 17:35:29 +0100 | <hc> | A very nice one |
2023-11-12 17:37:02 +0100 | <EvanR> | > True & 'a' `bool` 'b' -- xD |
2023-11-12 17:37:03 +0100 | <lambdabot> | 'b' |
2023-11-12 17:37:08 +0100 | <EvanR> | > False & 'a' `bool` 'b' -- xD |
2023-11-12 17:37:10 +0100 | <lambdabot> | 'a' |
2023-11-12 17:38:03 +0100 | Square | (~Square@user/square) (Remote host closed the connection) |
2023-11-12 17:38:16 +0100 | <hc> | Oh, that one is also nice :) |
2023-11-12 17:39:46 +0100 | <EvanR> | > 3 & (+1) & sqrt & floor |
2023-11-12 17:39:47 +0100 | <lambdabot> | 2 |
2023-11-12 17:41:06 +0100 | <Inst> | Also |
2023-11-12 17:41:33 +0100 | <Inst> | 🍅 |
2023-11-12 17:41:43 +0100 | <Inst> | This should be a tomato, right? I don't have the right font configured for it :( |
2023-11-12 17:41:59 +0100 | <geekosaur> | looks like a tomato here |
2023-11-12 17:42:00 +0100 | <Inst> | (🍅) = putStrLn "this is a tomato" |
2023-11-12 17:42:22 +0100 | <EvanR> | https://i.imgur.com/fNJKjsV.png |
2023-11-12 17:44:28 +0100 | <Inst> | I guess it's more fit for Acme, but I'm still surprised no one tried to stuff emojis into a library yet. |
2023-11-12 17:44:30 +0100 | tango88 | (~tango88@194.127.199.82) (Quit: Client closed) |
2023-11-12 17:44:48 +0100 | Square | (~Square@user/square) |
2023-11-12 17:44:52 +0100 | <Inst> | > (🏆) = putStrLn "This is a tomato" |
2023-11-12 17:44:53 +0100 | <lambdabot> | <hint>:1:5: error: parse error on input ‘=’ |
2023-11-12 17:44:59 +0100 | <hc> | EvanR: Which package is the & operator from? |
2023-11-12 17:45:11 +0100 | <EvanR> | @index (&) |
2023-11-12 17:45:11 +0100 | <lambdabot> | Data.Function |
2023-11-12 17:45:33 +0100 | <hc> | Ah, thanks. |
2023-11-12 17:46:47 +0100 | <Inst> | that said: https://hackage.haskell.org/package/hmatrix-0.20.2/docs/Numeric-LinearAlgebra-Static.html#t:-8477- |
2023-11-12 17:47:38 +0100 | <EvanR> | > let (🍅) = (+) in 7 🍅 7 |
2023-11-12 17:47:39 +0100 | <lambdabot> | 14 |
2023-11-12 17:49:02 +0100 | <c_wraith> | hc: for what it's worth, a lot of people miss the index pages on hackage. They're really very useful: https://hackage.haskell.org/package/base-4.19.0.0/docs/doc-index.html |
2023-11-12 17:49:38 +0100 | <c_wraith> | (I think it took me a year to notice them) |
2023-11-12 17:49:42 +0100 | <tomsmeding> | also useful: if you're on a reference page of a package, you can press 's' on the keyboard to get a search box |
2023-11-12 17:49:55 +0100 | <hc> | c_wraith: Thanks! In this case my mistake was to write load instead of import and was confused why Data.Function wouldn't load, so I asked here |
2023-11-12 17:50:00 +0100 | <tomsmeding> | for 'base' it doesn't work on the package contents page, but for most packages it does |
2023-11-12 17:50:04 +0100 | <c_wraith> | ... depending on when the docs were last generated. |
2023-11-12 17:50:12 +0100 | <tomsmeding> | also that |
2023-11-12 17:50:21 +0100 | <c_wraith> | Hackage doesn't rebuild docs when haddock is updated |
2023-11-12 17:52:15 +0100 | <c_wraith> | (it can't, really. A lot of docs don't build on hackage. They depend on an OS or native library or something that isn't installed there.) |
2023-11-12 17:52:51 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-11-12 17:53:14 +0100 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2023-11-12 17:53:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-12 17:53:58 +0100 | berberman | (~berberman@user/berberman) (Server closed connection) |
2023-11-12 17:54:12 +0100 | berberman | (~berberman@user/berberman) |
2023-11-12 17:55:49 +0100 | <probie> | Inst: have some Haskell with emojis https://paste.tomsmeding.com/EEEb2tNj |
2023-11-12 17:56:28 +0100 | <EvanR> | emoji haskell twitter account was suspended :( |
2023-11-12 17:57:20 +0100 | <Rembane> | :( |
2023-11-12 17:57:39 +0100 | <Inst> | wait, that was a thing? ?:( |
2023-11-12 17:58:34 +0100 | <EvanR> | elon not a haskell fan |
2023-11-12 17:58:41 +0100 | <Inst> | thanks <Probie3 |
2023-11-12 18:01:13 +0100 | <Inst> | https://hackage.haskell.org/package/emojis-0.1.3 |
2023-11-12 18:01:58 +0100 | mastarija | (~mastarija@42-42.dsl.iskon.hr) (Quit: Client closed) |
2023-11-12 18:02:03 +0100 | <Inst> | I wonder if anyone has ever taught a Haskell uni course where the problem sets are in emojis, at least before drop / withdrawal dates kick in |
2023-11-12 18:02:40 +0100 | <c_wraith> | seems like unnecessary torture |
2023-11-12 18:03:29 +0100 | <EvanR> | to take this course you need a 90s japanese phone |
2023-11-12 18:03:50 +0100 | <c_wraith> | heck, I think libraries that use α in their types are unnecessary torture |
2023-11-12 18:04:13 +0100 | tango88 | (~tango88@194.127.199.82) |
2023-11-12 18:04:37 +0100 | <Inst> | also on my Arch machine, I can't render 70% of the emojis shown :( |
2023-11-12 18:04:59 +0100 | <geekosaur> | that's just a fntconfig thing, install more fonts |
2023-11-12 18:05:35 +0100 | <Rembane> | Especially those with the emoji extensions |
2023-11-12 18:05:58 +0100 | <duncan> | I think there's more to it than just installing a font, given emoji can be multiple width characters |
2023-11-12 18:06:31 +0100 | mokee | (~mokee@37.228.215.150) (Ping timeout: 246 seconds) |
2023-11-12 18:06:35 +0100 | <EvanR> | if chinese is working in your terminal, that shouldn't be an issue |
2023-11-12 18:07:09 +0100 | <geekosaur> | not the same issue, some emoji are ligatures I think |
2023-11-12 18:07:15 +0100 | <duncan> | IIRC it is more complex than that because many emoji are compound characters |
2023-11-12 18:07:46 +0100 | <EvanR> | if hindi is working in your terminal shouldn't be an issue ? xD |
2023-11-12 18:09:16 +0100 | <duncan> | There's definitely something 'weird' about emoji |
2023-11-12 18:10:25 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2023-11-12 18:11:56 +0100 | tango88 | (~tango88@194.127.199.82) (Quit: Client closed) |
2023-11-12 18:12:12 +0100 | <EvanR> | > text ['🇺','🇸'] |
2023-11-12 18:12:13 +0100 | <lambdabot> | 🇺🇸 |
2023-11-12 18:13:49 +0100 | <tomsmeding> | Inst: I run arch and emojis render fine |
2023-11-12 18:13:55 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2023-11-12 18:14:04 +0100 | <tomsmeding> | in st, no less, so if it works there you have no excuse :p |
2023-11-12 18:14:26 +0100 | <tomsmeding> | right, yeah the ligatures fail in the terminal |
2023-11-12 18:14:39 +0100 | <tomsmeding> | but that's a terminal issue, not an arch issue :) |
2023-11-12 18:14:54 +0100 | <EvanR> | > text ['ष','त'] |
2023-11-12 18:14:55 +0100 | <lambdabot> | षत |
2023-11-12 18:15:09 +0100 | CO2 | (CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.1) |
2023-11-12 18:15:41 +0100 | <EvanR> | fail |
2023-11-12 18:16:45 +0100 | <ski> | (thankfully they fail to render here) |
2023-11-12 18:20:54 +0100 | <EvanR> | > text (intersperse ' ' "च्ट") |
2023-11-12 18:20:56 +0100 | <lambdabot> | च ् ट |
2023-11-12 18:20:58 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 18:21:28 +0100 | <EvanR> | is there a haskell package similar to libgrapheme which can split on the first grapheme cluster |
2023-11-12 18:25:35 +0100 | mokee | (~mokee@37.228.215.150) |
2023-11-12 18:26:18 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7011:9d1b:12e0:79a) (Remote host closed the connection) |
2023-11-12 18:26:34 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7011:9d1b:12e0:79a) |
2023-11-12 18:29:23 +0100 | Nixkernal | (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) |
2023-11-12 18:29:48 +0100 | CO2 | (CO2@gateway/vpn/protonvpn/co2) |
2023-11-12 18:30:44 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2023-11-12 18:30:45 +0100 | themc47 | (~mc47@xmonad/TheMC47) |
2023-11-12 18:31:03 +0100 | themc47 | (~mc47@xmonad/TheMC47) (Client Quit) |
2023-11-12 18:31:07 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Client Quit) |
2023-11-12 18:31:24 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2023-11-12 18:34:36 +0100 | CO2 | (CO2@gateway/vpn/protonvpn/co2) (Client Quit) |
2023-11-12 18:39:43 +0100 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2023-11-12 18:40:13 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-11-12 18:43:46 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection) |
2023-11-12 18:44:03 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-11-12 18:44:59 +0100 | <Inst> | tomsmeding: what's the standard Arch font, then, the one I need to install? I just grabbed KDE |
2023-11-12 18:45:04 +0100 | <Inst> | or maybe I should go install a KDE font pack? |
2023-11-12 18:45:29 +0100 | CO2 | (CO2@gateway/vpn/protonvpn/co2) |
2023-11-12 18:46:39 +0100 | <yushyin> | noto-fonts-emoji maybe |
2023-11-12 18:49:18 +0100 | <geekosaur> | fwiw on ubuntu it's fonts-noto-color-emoji - color emoji font from Google |
2023-11-12 18:49:26 +0100 | <geekosaur> | quoting `apt-cache search` |
2023-11-12 18:50:17 +0100 | <geekosaur> | sadly there's about zero consistency in package names across linux distributions |
2023-11-12 18:50:38 +0100 | mastarija | (~mastarija@42-42.dsl.iskon.hr) |
2023-11-12 18:50:52 +0100 | <geekosaur> | (which is why neither cabal nor stack try to install distro packages when needed) |
2023-11-12 18:51:00 +0100 | <Inst> | thanks <3 |
2023-11-12 18:56:17 +0100 | danza | (~francesco@151.57.226.145) (Read error: Connection reset by peer) |
2023-11-12 19:00:46 +0100 | hovsater | (sid499516@id-499516.lymington.irccloud.com) (Server closed connection) |
2023-11-12 19:00:56 +0100 | hovsater | (sid499516@id-499516.lymington.irccloud.com) |
2023-11-12 19:12:27 +0100 | danza | (~francesco@151.43.231.114) |
2023-11-12 19:14:49 +0100 | todi | (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
2023-11-12 19:16:16 +0100 | degraafk | (sid71464@id-71464.lymington.irccloud.com) (Server closed connection) |
2023-11-12 19:16:29 +0100 | degraafk | (sid71464@id-71464.lymington.irccloud.com) |
2023-11-12 19:20:01 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-12 19:23:33 +0100 | ubert | (~Thunderbi@178.165.170.224.wireless.dyn.drei.com) |
2023-11-12 19:24:51 +0100 | Inst | (~Inst@120.244.192.250) (Remote host closed the connection) |
2023-11-12 19:31:17 +0100 | Pickchea | (~private@user/pickchea) |
2023-11-12 19:32:55 +0100 | Inst | (~Inst@120.244.192.250) |
2023-11-12 19:33:13 +0100 | <Inst> | hmmm, this is nice, isntalled your recommended fonts and now I can see emojis |
2023-11-12 19:33:47 +0100 | <Inst> | and probie's program is perfectly readable now... for some definition of readable ;) |
2023-11-12 19:34:33 +0100 | mastarija | (~mastarija@42-42.dsl.iskon.hr) (Quit: Client closed) |
2023-11-12 19:35:37 +0100 | <Inst> | where did that come from? |
2023-11-12 19:38:16 +0100 | steew | (~steew@user/steew) (Quit: WeeChat 4.0.4) |
2023-11-12 19:40:07 +0100 | riatre | (~quassel@2001:310:6000:f::5198:1) (Server closed connection) |
2023-11-12 19:40:14 +0100 | riatre | (~quassel@2001:310:6000:f::5198:1) |
2023-11-12 19:40:39 +0100 | apache2 | (apache2@anubis.0x90.dk) |
2023-11-12 19:40:47 +0100 | apache2 | (apache2@anubis.0x90.dk) (Client Quit) |
2023-11-12 19:41:17 +0100 | apache2 | (apache2@anubis.0x90.dk) |
2023-11-12 19:46:47 +0100 | euleritian | (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
2023-11-12 19:47:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 19:48:52 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 19:49:35 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 260 seconds) |
2023-11-12 19:49:54 +0100 | <hc> | By the way, not sure if this is the right place to ask, so if not please point me accordingly. I was wondering what's the situation regarding transitive dependencies in haskell these days? Rust has solved this nicely by allowing multiple versions of the same package to be linked to an executable, any chance we can get this in haskell as well? |
2023-11-12 19:51:00 +0100 | <monochrom> | No. Rust has it easy. (Generally any compiler that does not need to to do cross-package inlining.) |
2023-11-12 19:51:11 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2023-11-12 19:51:14 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-11-12 19:51:18 +0100 | <hc> | I think rust can do that |
2023-11-12 19:51:52 +0100 | <hc> | It is called lto |
2023-11-12 19:53:35 +0100 | Square | (~Square@user/square) (Remote host closed the connection) |
2023-11-12 19:54:37 +0100 | <yin> | @pl uncurry f . join bimap g . (h &&& i) |
2023-11-12 19:54:37 +0100 | <lambdabot> | uncurry f . bimap g g . (h &&& i) |
2023-11-12 19:55:13 +0100 | <yin> | @pl uncurry f . (h &&& id) |
2023-11-12 19:55:13 +0100 | <lambdabot> | uncurry f . (h &&& id) |
2023-11-12 19:55:16 +0100 | <hc> | Also, how would creoss-package inlining influence any of this? If you link two versions of a package, mind you only for transitive dependencies, those two versions could be given unique names internally for the duration of the compilation |
2023-11-12 19:55:23 +0100 | <hc> | They wouldn't have to interact with one another either |
2023-11-12 19:55:25 +0100 | <yin> | @pl f <*> h |
2023-11-12 19:55:25 +0100 | <lambdabot> | f <*> h |
2023-11-12 19:55:33 +0100 | <hc> | Just to avoid version conflicts between two transitive dependencies |
2023-11-12 19:56:16 +0100 | <hc> | ...of two different direct dependencies |
2023-11-12 19:57:20 +0100 | trev | (~trev@user/trev) (Quit: trev) |
2023-11-12 19:57:34 +0100 | <monochrom> | You know, if we separate GHC and cabal, GHC doesn't mind, it's cabal that does. |
2023-11-12 19:58:05 +0100 | <hc> | I don't know; I haven't been using haskell for a few years and I have never been that deep into its internals :) |
2023-11-12 19:58:31 +0100 | <hc> | Hence my asking... I do think it could help to solve the dependency hell problem quite a bit |
2023-11-12 19:58:37 +0100 | <geekosaur> | ghc cares when it discovers the conflict and reports it as a symbol clonflicting with (apparently) itself |
2023-11-12 19:58:43 +0100 | FinnBoat | (~user@2001:861:5863:3d50:839b:2ec1:8b15:a80b) |
2023-11-12 19:58:56 +0100 | <monochrom> | You already know Rust, so it's just GHC : cabal :: rustc :: cargo |
2023-11-12 19:58:59 +0100 | <hc> | I get it that it currently doesn't work... but I wonder if there is a technical reason behind |
2023-11-12 19:59:23 +0100 | <geekosaur> | oh, it works fine as long as the two never intersect |
2023-11-12 19:59:27 +0100 | <FinnBoat> | in ghci, with :! shell-command, how to make use of the user's .bashrc ? |
2023-11-12 19:59:32 +0100 | <hc> | Yes indeed, which they won't have to |
2023-11-12 20:00:15 +0100 | sdz | (~sdz@user/sdz) (Ping timeout: 240 seconds) |
2023-11-12 20:00:17 +0100 | <geekosaur> | you hope |
2023-11-12 20:00:23 +0100 | <hc> | No I'm sure of that |
2023-11-12 20:00:41 +0100 | <geekosaur> | I'm absolutely certain you are wrong because I hve seen it happen multiple times |
2023-11-12 20:00:43 +0100 | <hc> | Because I don't want to include two versions of the same package myself, just be able to include a package that includes an old version of another package |
2023-11-12 20:00:48 +0100 | sdz | (~sdz@user/sdz) |
2023-11-12 20:00:55 +0100 | <hc> | geekosaur: It does work fine in rust, seen it happen there many time |
2023-11-12 20:00:56 +0100 | <hc> | s* |
2023-11-12 20:01:32 +0100 | <hc> | Say: a refers to c0.1.0, b refers to c0.2.0, so I cannot use packages a and b in my own project currently |
2023-11-12 20:01:40 +0100 | <monochrom> | "I agree with myself all the time. It adds harmony to my monologues." >:) |
2023-11-12 20:02:00 +0100 | <hc> | If c0.1.0 and c0.2.0 could both be linked in at the same time, then using packages a and b together would be no problem |
2023-11-12 20:02:12 +0100 | <hc> | Since a only knows of c0.1.0 and b only knows of c0.2.0, there'd be no problem |
2023-11-12 20:02:26 +0100 | <hc> | Since my own package doesn't even include any version of c, no problem there either |
2023-11-12 20:02:27 +0100 | <geekosaur> | until typeclasses, which are global, come into play |
2023-11-12 20:02:39 +0100 | <hc> | Okay, hence my asking if there is any technical reason |
2023-11-12 20:03:44 +0100 | <hc> | Well, couldn't something be done about this? Because I think this would be a really good improvement in terms of long term stability for projects |
2023-11-12 20:04:38 +0100 | <hc> | Why can't typeclasses be imported like everything else? |
2023-11-12 20:07:01 +0100 | <monochrom> | In principle, it is mechanical to detect incoherence. In principle, when there is no incoherence, it is mechanical to allow multiple versions. |
2023-11-12 20:07:09 +0100 | <monochrom> | In practice, "patches welcome". |
2023-11-12 20:09:14 +0100 | <FinnBoat> | in ghci, :! can't call alias |
2023-11-12 20:09:20 +0100 | <FinnBoat> | any idea? |
2023-11-12 20:09:29 +0100 | <FinnBoat> | bash alias |
2023-11-12 20:09:54 +0100 | <hc> | monochrom: Would patches be welcome? Because I'm getting the feeling you're making fun of me for asking that question... maybe I am missing an important point or this is really a no-issue? |
2023-11-12 20:10:02 +0100 | <monochrom> | Does :! call bash in the first place? |
2023-11-12 20:10:11 +0100 | <FinnBoat> | yes it does |
2023-11-12 20:10:33 +0100 | <FinnBoat> | :! export BASH_ENV=/home/me/.bashrc ; alias |
2023-11-12 20:10:36 +0100 | <FinnBoat> | gives nothing |
2023-11-12 20:11:25 +0100 | <FinnBoat> | :! date && date , with this i do get the right result |
2023-11-12 20:11:53 +0100 | <FinnBoat> | i've defined a bash function to list exposed modules from a package |
2023-11-12 20:12:03 +0100 | <FinnBoat> | using a user package-db |
2023-11-12 20:12:55 +0100 | qqq | (~qqq@92.43.167.61) (Ping timeout: 260 seconds) |
2023-11-12 20:13:19 +0100 | <FinnBoat> | :! alias actually gives nothing |
2023-11-12 20:13:55 +0100 | <monochrom> | Perhaps it runs bash as non-interactive and so .bashrc is not loaded. |
2023-11-12 20:14:33 +0100 | <FinnBoat> | ah could be |
2023-11-12 20:15:16 +0100 | <monochrom> | or the beginning of .bashrc detects "non-interactive, quit". |
2023-11-12 20:15:47 +0100 | <monochrom> | Mine has "[ -z "$PS1" ] && return", for example. |
2023-11-12 20:16:52 +0100 | <int-e> | % :! cat < /proc/self/cmdline |
2023-11-12 20:17:22 +0100 | YuutaW | (~YuutaW@mail.yuuta.moe) (Ping timeout: 258 seconds) |
2023-11-12 20:17:38 +0100 | <FinnBoat> | int-e: what do you mean? |
2023-11-12 20:18:15 +0100 | <monochrom> | It is also sh rather than bash. |
2023-11-12 20:18:16 +0100 | EvanR | (~EvanR@user/evanr) (Server closed connection) |
2023-11-12 20:18:19 +0100 | <int-e> | (For me that prints /bin/sh-ccat < /proc/self/cmdline; echo which a) isn't bash for me, and b) isn't interactive. |
2023-11-12 20:18:23 +0100 | <monochrom> | Although, on Mac, sh is bash. |
2023-11-12 20:18:41 +0100 | EvanR | (~EvanR@user/evanr) |
2023-11-12 20:18:42 +0100 | monochrom | is super-annoyed at that actually. |
2023-11-12 20:19:18 +0100 | <int-e> | Are we Mac-bashing? |
2023-11-12 20:19:23 +0100 | <monochrom> | haha |
2023-11-12 20:20:09 +0100 | <FinnBoat> | good one. so people don't :! their alias ? |
2023-11-12 20:20:24 +0100 | <monochrom> | My case is niche. Real people need not worry about it. |
2023-11-12 20:20:53 +0100 | <int-e> | I hardly ever use :! at all. |
2023-11-12 20:21:12 +0100 | <monochrom> | But I want students to learn | and use it in shell-scripting assignments, not google for solutions and use bash's <(cmd). |
2023-11-12 20:21:18 +0100 | <geekosaur> | actually on recent Macs sh is zsh |
2023-11-12 20:21:20 +0100 | <FinnBoat> | how do you check what modules are exposed from a package? |
2023-11-12 20:21:22 +0100 | yandere | (sid467876@id-467876.ilkley.irccloud.com) (Server closed connection) |
2023-11-12 20:21:31 +0100 | yandere | (sid467876@id-467876.ilkley.irccloud.com) |
2023-11-12 20:21:40 +0100 | <monochrom> | So I tell them "my automarking runs your shell script with /bin/sh your-script" |
2023-11-12 20:22:34 +0100 | <monochrom> | But then Mac students go on to google for solutions and use <(cmd), and /bin/sh your-script works for them. They also go on to never test it on real Linux. |
2023-11-12 20:22:39 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2023-11-12 20:23:15 +0100 | <haskellbridge> | 06<sm> FinnBoat you can check the list in the cabal |
2023-11-12 20:23:16 +0100 | <haskellbridge> | 06<sm> file I guess |
2023-11-12 20:23:25 +0100 | <int-e> | FinnBoat: uh, it doesn't really come up on the spot... I browse haddocks for that. |
2023-11-12 20:24:33 +0100 | <int-e> | there is `ghc-pkg describe` and I can see how if you're using `cabal repl` you might want to invoke that with :!. I just don't. |
2023-11-12 20:25:04 +0100 | <monochrom> | ghc-pkg field <pkg> exposed-modules |
2023-11-12 20:25:34 +0100 | <int-e> | that works but it's not something I'd remember :-P |
2023-11-12 20:25:43 +0100 | <FinnBoat> | ghc-pkg --package-db=path-to-my-db field vector exposed-modules |
2023-11-12 20:25:45 +0100 | <monochrom> | But yeah a mere list of modules is utterly useless. |
2023-11-12 20:25:53 +0100 | <monochrom> | doc is actually useful. |
2023-11-12 20:26:05 +0100 | steew | (~steew@user/steew) |
2023-11-12 20:26:17 +0100 | <FinnBoat> | i cabal install --env . |
2023-11-12 20:27:11 +0100 | <geekosaur> | ghc-pkg won't list stuff in environment files |
2023-11-12 20:27:48 +0100 | <monochrom> | Dijkstra is right about people are so irrationally fixated on names. |
2023-11-12 20:27:59 +0100 | <monochrom> | Names are bloody useless. |
2023-11-12 20:28:24 +0100 | <int-e> | you're so right, person on the internet relay chat |
2023-11-12 20:28:42 +0100 | <monochrom> | So what if I know Prelude is called Prelude? I still don't know what functions I can use from that name. |
2023-11-12 20:29:30 +0100 | <int-e> | (Names *are* useful. But they don't do much to explain anything by themselves.) |
2023-11-12 20:29:33 +0100 | steew | (~steew@user/steew) (Remote host closed the connection) |
2023-11-12 20:29:36 +0100 | <Franciman> | probably dijkstra's point is more understandable in the context of the philosophy of language of Dummett |
2023-11-12 20:30:42 +0100 | steew | (~steew@204.red-81-33-65.dynamicip.rima-tde.net) |
2023-11-12 20:30:55 +0100 | steew | (~steew@204.red-81-33-65.dynamicip.rima-tde.net) (Changing host) |
2023-11-12 20:30:55 +0100 | steew | (~steew@user/steew) |
2023-11-12 20:32:34 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7011:9d1b:12e0:79a) (Remote host closed the connection) |
2023-11-12 20:34:07 +0100 | <monochrom> | int-e: That ties to, actually, imperative vs functional, even pointful vs pointfree. |
2023-11-12 20:34:55 +0100 | <int-e> | monochrom: Thanks now I'm finding humor in "Dijkstra's point". |
2023-11-12 20:34:56 +0100 | <monochrom> | So "monochrom" is useful insomuch as tying it to, for example, what I wrote on IRC. |
2023-11-12 20:35:04 +0100 | <monochrom> | hahaha |
2023-11-12 20:35:36 +0100 | <monochrom> | But then that's another way to say that it is the tie that's useful. This is one order up. |
2023-11-12 20:36:28 +0100 | <int-e> | . o O ( "Fred would agree." - "Who's Fred?" - "Exactly." ) |
2023-11-12 20:36:34 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-12 20:36:52 +0100 | robertm | (robertm@lattice.rojoma.com) (Server closed connection) |
2023-11-12 20:37:03 +0100 | <monochrom> | Likewise, whereas the usual narrative of imperative programming is fixated on state 1, state 2, state 3, ... It is the state transition function, written like "x := x+1", that is important. |
2023-11-12 20:37:10 +0100 | robertm | (robertm@lattice.rojoma.com) |
2023-11-12 20:37:17 +0100 | FinnBoat | (~user@2001:861:5863:3d50:839b:2ec1:8b15:a80b) (Ping timeout: 252 seconds) |
2023-11-12 20:38:50 +0100 | johnw | (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
2023-11-12 20:42:14 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7011:9d1b:12e0:79a) |
2023-11-12 20:44:09 +0100 | <haskellbridge> | 14<mauke> Have you tried using shell functions instead of aliases? |
2023-11-12 20:45:01 +0100 | <monochrom> | But if the shell functions are only defined in the files not loaded, it is not going to be any different. |
2023-11-12 20:45:32 +0100 | <haskellbridge> | 14<mauke> Also, I wish macs used bash, but Apple is allergic to GPL 3 |
2023-11-12 20:45:44 +0100 | <monochrom> | or rather files that are loaded but right away they say "PS1 not defined, skip". |
2023-11-12 20:46:31 +0100 | <haskellbridge> | 14<mauke> Difference is that aliases are not expanded at all in non-interactive shells IIRC |
2023-11-12 20:47:20 +0100 | <monochrom> | Hrm, you're right. |
2023-11-12 20:48:28 +0100 | <monochrom> | No, I am not so sure anymore, there is an alternative hypothesis. |
2023-11-12 20:48:37 +0100 | <geekosaur> | unless defined in .bash_aliases iirc? |
2023-11-12 20:48:45 +0100 | <int-e> | . o O ( shopt -s expand_aliases ) |
2023-11-12 20:49:11 +0100 | <monochrom> | This is madness. |
2023-11-12 20:49:22 +0100 | <int-e> | welcome to s-hell. |
2023-11-12 20:49:27 +0100 | <monochrom> | haha |
2023-11-12 20:49:30 +0100 | <monochrom> | :( |
2023-11-12 20:50:06 +0100 | <int-e> | I can't help feeling that we're quickly headed towards Z in an XY problem. |
2023-11-12 20:50:51 +0100 | <int-e> | Which is fine, I'm all for sightseeing. |
2023-11-12 20:51:55 +0100 | danza | (~francesco@151.43.231.114) (Ping timeout: 255 seconds) |
2023-11-12 20:52:29 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-12 20:53:26 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-11-12 20:55:28 +0100 | Boarders___ | (sid425905@id-425905.lymington.irccloud.com) (Server closed connection) |
2023-11-12 20:55:47 +0100 | Boarders___ | (sid425905@id-425905.lymington.irccloud.com) |
2023-11-12 20:56:06 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-11-12 20:57:11 +0100 | euleritian | (~euleritia@dynamic-046-114-207-173.46.114.pool.telefonica.de) |
2023-11-12 20:57:14 +0100 | <tomsmeding> | did this all start because of wanting to run a bash alias in a binding in ghci? |
2023-11-12 20:57:20 +0100 | <tomsmeding> | local bin folders are a thing |
2023-11-12 20:57:22 +0100 | <tomsmeding> | that's what they are for |
2023-11-12 20:57:57 +0100 | <tomsmeding> | put your one-line thing in ~/.local/bin/your-name, chmod +x it, and (once-only) add that directory to your PATH -- maybe even system-wide |
2023-11-12 20:58:13 +0100 | <tomsmeding> | et voilà |
2023-11-12 20:58:23 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-11-12 20:58:25 +0100 | <int-e> | what happened to ~/bin :-/ |
2023-11-12 20:58:31 +0100 | <tomsmeding> | or ~/bin |
2023-11-12 20:58:39 +0100 | <tomsmeding> | or ~/prefix/bin as I've done for a while |
2023-11-12 20:59:55 +0100 | <monochrom> | My hypothesis is that ~/.local/bin was invented by people who came from Windows and never learned that in Unix ~/bin has existed for decades. |
2023-11-12 21:00:49 +0100 | <monochrom> | Millenials and NIV. |
2023-11-12 21:00:54 +0100 | <monochrom> | err NIH. |
2023-11-12 21:01:15 +0100 | tomsmeding | was pondering English words starting with V |
2023-11-12 21:02:26 +0100 | <tomsmeding> | the advantage of the NIH solution, though, is that somehow or other it's worked its way into the default .bashrc of various distributions |
2023-11-12 21:02:37 +0100 | <tomsmeding> | so NIH or not, if someone has no clue about this, it's the most convenient one to suggest |
2023-11-12 21:03:15 +0100 | <monochrom> | Default .profile's and .bashrc's have both ~/bin and ~/.local/bin |
2023-11-12 21:03:16 +0100 | ski | 's used `~/bin',`~/etc',`~/lib',`~/share' |
2023-11-12 21:03:55 +0100 | <monochrom> | I'm afraid both are here to stay. |
2023-11-12 21:04:14 +0100 | <monochrom> | And by the time the OS/2 people finally enter the chat too, there may be yet another one. :) |
2023-11-12 21:04:26 +0100 | <tomsmeding> | worse crimes have been committed :p |
2023-11-12 21:05:45 +0100 | ski | also reconfigures programs, when possible, to put stuff in `.foorc' or `.foo/', rather than in `.config/foo' |
2023-11-12 21:06:23 +0100 | tomsmeding | . o O ( ln -s ~ ~/.config/foo ) |
2023-11-12 21:06:31 +0100 | <tomsmeding> | (no don't do that) |
2023-11-12 21:06:34 +0100 | <probie> | I once had a home folder that ended up with ~/bin ~/.bin and ~/.local/bin at the same time |
2023-11-12 21:06:42 +0100 | <ski> | no, ideally `.config' should be non-existing |
2023-11-12 21:07:27 +0100 | euleritian | (~euleritia@dynamic-046-114-207-173.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-12 21:07:44 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-12 21:08:09 +0100 | mechap | (~mechap@user/mechap) (Quit: WeeChat 4.1.1) |
2023-11-12 21:09:22 +0100 | <Rembane> | Recursive links are the best. |
2023-11-12 21:09:32 +0100 | <Rembane> | Or well, not the best, but they are fun until they wreck the system. |
2023-11-12 21:09:50 +0100 | <monochrom> | i.e., best. >:) |
2023-11-12 21:10:18 +0100 | <Rembane> | :D |
2023-11-12 21:10:43 +0100 | <yin> | why do we still use file trees is beyond me |
2023-11-12 21:11:26 +0100 | <tomsmeding> | DOS is dead, long live DOS? |
2023-11-12 21:11:47 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2023-11-12 21:11:58 +0100 | <monochrom> | No, Apple DOS was flat. :) |
2023-11-12 21:12:21 +0100 | <tomsmeding> | maybe I borked the reference |
2023-11-12 21:12:39 +0100 | <monochrom> | Well, there was Apple DOS, and then there was MS DOS. |
2023-11-12 21:13:15 +0100 | tomsmeding | used neither, except if you count "opening cmd on windows XP" |
2023-11-12 21:13:31 +0100 | <tomsmeding> | I used windows 98 but I don't think I knew about cmd back then :D |
2023-11-12 21:14:29 +0100 | <Rembane> | CMD.EXE is good, the perfect place to run ipconfig. |
2023-11-12 21:15:38 +0100 | <monochrom> | yin: On the ladder of intellectual maturity, the lowest rung is understanding flat lists, next up is trees, next is DAG, next is general graph. (There can be more further up, e.g., hypergraphs? 2-categories?) |
2023-11-12 21:16:04 +0100 | <monochrom> | So what you're looking at is, currently, humanity has barely achieved the 2nd rung. |
2023-11-12 21:16:25 +0100 | <Rembane> | Are there any hypergraph filesystems? |
2023-11-12 21:16:39 +0100 | <monochrom> | In fact, just look at how many decades web forums used flat lists until Reddit came along to present a tree. |
2023-11-12 21:17:35 +0100 | <Rembane> | There were forum software that used trees before Reddit, but they weren't as popular which probably tells us something about humanity. |
2023-11-12 21:18:13 +0100 | <yin> | Rembane: macOS introduced labels in 1991 which I *think* qualifies |
2023-11-12 21:18:16 +0100 | <monochrom> | Well yeah sure I was on Usenet etc. too. |
2023-11-12 21:18:36 +0100 | <Rembane> | yin: Nice! |
2023-11-12 21:18:40 +0100 | <monochrom> | But Usenet etc did not represent the record-low savageness of humanity. |
2023-11-12 21:19:34 +0100 | <Rembane> | But phpBB did? :) |
2023-11-12 21:19:43 +0100 | YuutaW | (~YuutaW@2404:f4c0:f9c3:502::100:17b7) |
2023-11-12 21:19:53 +0100 | <yin> | they were reintroduced in 2003 along with other paradigm shifts like getting rid of the save abstraction but people criticized it so they stopped going in that direction :/ |
2023-11-12 21:20:42 +0100 | <monochrom> | No I think phpBB was the first web forum thing I came across and I was annoyed that it was flat list. |
2023-11-12 21:20:48 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-11-12 21:21:08 +0100 | <yin> | i'm pretty sure at one point they had the long term goal of parting from the graphical folder model |
2023-11-12 21:21:31 +0100 | <monochrom> | I even wrote "Usenet already exists, newsgroup readers already exist, why did some programmer write phpBB, except to justify their existence?" |
2023-11-12 21:21:45 +0100 | <yin> | in |
2023-11-12 21:21:50 +0100 | <Rembane> | And then the dark ages of phpBB started. |
2023-11-12 21:22:01 +0100 | <carbolymer> | wdym by dark |
2023-11-12 21:22:05 +0100 | <carbolymer> | those security holes |
2023-11-12 21:22:32 +0100 | <carbolymer> | you could exploit almost every phpbb installation back in the days |
2023-11-12 21:22:56 +0100 | <yin> | in https://en.wikipedia.org/wiki/The_Humane_Interface Rasking (who incidently worked at Apple) explores a few more interesting ideas that could have replaced the file/folder directory metaphor |
2023-11-12 21:23:16 +0100 | <monochrom> | <3 Raskin |
2023-11-12 21:23:47 +0100 | <yin> | :) |
2023-11-12 21:24:07 +0100 | <yin> | it's an awesome introductory book for interface design |
2023-11-12 21:25:01 +0100 | <monochrom> | One of the few people who are brave enough to tell the truth, which I paraphrase and exaggerate as: 26 buttons for 26 letters are easier to use than a 5-level menu of binary choices at each level. |
2023-11-12 21:25:30 +0100 | <monochrom> | i.e., against the ridiculous superstition "fewer buttons are easier". |
2023-11-12 21:25:44 +0100 | <tomsmeding> | > who incidentally worked at Apple |
2023-11-12 21:25:46 +0100 | <lambdabot> | error: |
2023-11-12 21:25:46 +0100 | <lambdabot> | Variable not in scope: |
2023-11-12 21:25:46 +0100 | <lambdabot> | who |
2023-11-12 21:25:48 +0100 | <tomsmeding> | apparently not for long |
2023-11-12 21:25:52 +0100 | <tomsmeding> | thank you lambdabot |
2023-11-12 21:25:54 +0100 | <tomsmeding> | @botsnack |
2023-11-12 21:25:54 +0100 | <lambdabot> | :) |
2023-11-12 21:26:08 +0100 | <monochrom> | He died early. |
2023-11-12 21:26:32 +0100 | <yin> | he was fired from apple by steve jobs iirc? |
2023-11-12 21:26:36 +0100 | <tomsmeding> | oh :/ |
2023-11-12 21:27:52 +0100 | <monochrom> | Google Japan was another instance of being brave enough to make an April 1st parody: "We have made the ultimate user-friendly UI, it's just one button! So easy! All you need is to learn Morse code..." |
2023-11-12 21:28:24 +0100 | <Rembane> | That is hilarious |
2023-11-12 21:28:38 +0100 | <yin> | tbf i miss the old nokia phones. i could type an sms without getting it out of my pocket |
2023-11-12 21:29:17 +0100 | <yin> | even before that sort of predictive typing |
2023-11-12 21:29:41 +0100 | <yin> | i believe there is a balance between 1 button and 42 buttons |
2023-11-12 21:30:31 +0100 | <yin> | *24 |
2023-11-12 21:30:35 +0100 | Inst | (~Inst@120.244.192.250) (Ping timeout: 258 seconds) |
2023-11-12 21:30:36 +0100 | <yin> | or 26 i guess |
2023-11-12 21:31:26 +0100 | <geekosaur> | only court recorders use chord keyboards… |
2023-11-12 21:32:00 +0100 | ubert1 | (~Thunderbi@178.115.54.161.wireless.dyn.drei.com) |
2023-11-12 21:32:05 +0100 | <monochrom> | I am OK with a rigorous Huffman-style analysis that comes out as "these things are used 90% of the time so make them immediate, the other can hide behind a level or two". Raskin would agree with that. Take actual statistics. Not ideology. |
2023-11-12 21:33:12 +0100 | Tlsx | (~rscastilh@187.40.125.21) () |
2023-11-12 21:33:22 +0100 | ubert | (~Thunderbi@178.165.170.224.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
2023-11-12 21:33:22 +0100 | ubert1 | ubert |
2023-11-12 21:34:55 +0100 | <yin> | as it seems raskin left Apple voluntarily over disagreements with the Macintosh team in 82. he died in 2005 age 61 |
2023-11-12 21:35:57 +0100 | <geekosaur> | tomsmeding, › (compose dot greater) |
2023-11-12 21:36:11 +0100 | <int-e> | yin: But also "Apple acknowledged Raskin's role after he had left the company by giving him as a gift, the millionth Macintosh computer, with an engraved brass plaque on the front." So the rift was probably not *terribly* deep. |
2023-11-12 21:37:17 +0100 | <tomsmeding> | geekosaur: my usual solution is to put a reset-color byte before the > but I forgot this time :p |
2023-11-12 21:37:19 +0100 | mokee | (~mokee@37.228.215.150) (Remote host closed the connection) |
2023-11-12 21:37:50 +0100 | <monochrom> | ooohhh reset-color byte, sneaky |
2023-11-12 21:37:54 +0100 | <yin> | > 5 |
2023-11-12 21:37:58 +0100 | <tomsmeding> | > like this |
2023-11-12 21:38:26 +0100 | monochrom | is sacrilegous: Consider the BOM... >:) |
2023-11-12 21:38:46 +0100 | mechap | (~mechap@user/mechap) |
2023-11-12 21:39:10 +0100 | <geekosaur> | ZWNJ |
2023-11-12 21:39:54 +0100 | <yin> | Raskin would've used a space |
2023-11-12 21:40:10 +0100 | <yin> | >:) |
2023-11-12 21:40:27 +0100 | <tomsmeding> | > test |
2023-11-12 21:40:31 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-11-12 21:41:56 +0100 | <tomsmeding> | but reset-color is easy in weechat: ctrl-C ctrl-O. For BOM/etc. I need to pull tricks :p |
2023-11-12 21:42:15 +0100 | <tomsmeding> | er, ctrl-C o |
2023-11-12 21:42:44 +0100 | statusbot1 | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Server closed connection) |
2023-11-12 21:42:51 +0100 | <int-e> | Somehow it's cimply C-O for me. I wonder whether I did anything to enable that (irssi) |
2023-11-12 21:42:59 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2023-11-12 21:42:59 +0100 | <tomsmeding> | irssi != weechat :p |
2023-11-12 21:43:06 +0100 | <geekosaur> | yeh, it's %O in hexchat if you enable % escapes |
2023-11-12 21:43:17 +0100 | <ski> | int-e : same here |
2023-11-12 21:43:43 +0100 | <geekosaur> | C-O is what it actually is when encoded, so I assume irssi just passes control chars through |
2023-11-12 21:43:55 +0100 | <int-e> | ski: Yeah I've just looked at my keybindings and there's nothing there so I guess it's the default. |
2023-11-12 21:44:45 +0100 | <ski> | also C,_,] |
2023-11-12 21:45:06 +0100 | <ski> | geekosaur : certainly not all |
2023-11-12 21:45:20 +0100 | <ski> | (but i guess, the ones which aren't explicitly rebound) |
2023-11-12 21:47:11 +0100 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-11-12 21:47:16 +0100 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Remote host closed the connection) |
2023-11-12 21:47:40 +0100 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-11-12 21:47:53 +0100 | Square | (~Square@user/square) |
2023-11-12 21:48:47 +0100 | samhh | (7569f027cf@2604:bf00:561:2000::e4) (Server closed connection) |
2023-11-12 21:48:47 +0100 | samhh_ | samhh |
2023-11-12 21:48:58 +0100 | samhh_ | (7569f027cf@2604:bf00:561:2000::e4) |
2023-11-12 21:51:57 +0100 | <yin> | > 7 |
2023-11-12 21:53:37 +0100 | <yin> | bell |
2023-11-12 21:54:50 +0100 | <yin> | irssi passes way more of them than my term |
2023-11-12 21:56:37 +0100 | <yin> | i'm not sure if that makes sense |
2023-11-12 21:57:42 +0100 | <geekosaur> | depends on what you mean by "your term" |
2023-11-12 21:58:11 +0100 | <geekosaur> | readlin intercepts most control characters so you need to arrange for them to be output, not just type them |
2023-11-12 21:58:25 +0100 | <geekosaur> | (try /usr/bin/printf on linux) |
2023-11-12 21:58:40 +0100 | michalz | (~michalz@185.246.207.203) (Remote host closed the connection) |
2023-11-12 22:02:09 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2023-11-12 22:07:11 +0100 | modotte | (~modotte@user/modotte) |
2023-11-12 22:10:55 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-11-12 22:12:19 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
2023-11-12 22:16:41 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-11-12 22:16:47 +0100 | modotte | (~modotte@user/modotte) (Quit: Leaving) |
2023-11-12 22:23:52 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds) |
2023-11-12 22:24:24 +0100 | euleritian | (~euleritia@dynamic-046-114-207-173.46.114.pool.telefonica.de) |
2023-11-12 22:26:55 +0100 | bradparker | (sid262931@id-262931.uxbridge.irccloud.com) (Server closed connection) |
2023-11-12 22:27:09 +0100 | bradparker | (sid262931@id-262931.uxbridge.irccloud.com) |
2023-11-12 22:27:43 +0100 | [_] | [itchyjunk] |
2023-11-12 22:27:47 +0100 | johnw | (~johnw@69.62.242.138) |
2023-11-12 22:35:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-11-12 22:55:46 +0100 | zetef | (~quassel@5.2.182.98) |
2023-11-12 22:56:15 +0100 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 255 seconds) |
2023-11-12 22:58:02 +0100 | slack1256 | (~slack1256@191.126.186.232) |
2023-11-12 23:00:55 +0100 | <slack1256> | Does anybody know if nix/nixpkgs supports backpack instantiations ? There are some old github issues that are stalled... |
2023-11-12 23:01:54 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-12 23:02:49 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2023-11-12 23:03:32 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 255 seconds) |
2023-11-12 23:05:22 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-11-12 23:05:35 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2023-11-12 23:06:07 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds) |
2023-11-12 23:06:52 +0100 | nullie | (~nullie@2a01:4f8:c2c:6177::1) (Quit: WeeChat 4.0.5) |
2023-11-12 23:07:10 +0100 | nullie | (~nullie@nuremberg.nullie.name) |
2023-11-12 23:08:38 +0100 | gentauro | (~gentauro@user/gentauro) |
2023-11-12 23:13:03 +0100 | chomwitt | (~chomwitt@2a02:587:7a12:2d00:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds) |
2023-11-12 23:22:43 +0100 | ham | (~ham@user/ham) (Quit: WeeChat 3.5) |
2023-11-12 23:26:21 +0100 | Square | (~Square@user/square) (Ping timeout: 240 seconds) |
2023-11-12 23:27:33 +0100 | justThanks | (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-11-12 23:28:15 +0100 | justache | (~justache@user/justache) |
2023-11-12 23:37:34 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-11-12 23:40:04 +0100 | acidjnk | (~acidjnk@p200300d6e72b933884d06dff6b3ba200.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-11-12 23:41:28 +0100 | justache | (~justache@user/justache) (Remote host closed the connection) |
2023-11-12 23:44:25 +0100 | yin | (~z@user/zero) (Server closed connection) |
2023-11-12 23:44:45 +0100 | zero | (~z@user/zero) |
2023-11-12 23:48:57 +0100 | justache | (~justache@user/justache) |
2023-11-12 23:55:38 +0100 | slack1256 | (~slack1256@191.126.186.232) (Read error: Connection reset by peer) |
2023-11-12 23:55:43 +0100 | slac52794 | (~slack1256@2800:150:151:1a42:c06e:b7d:d50e:d5f6) |