Logs on 2022-07-02 (liberachat/#haskell)
| 00:00:04 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::909a) (*.net *.split) |
| 00:00:04 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split) |
| 00:00:04 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (*.net *.split) |
| 00:00:04 | × | dolio quits (~dolio@130.44.130.54) (*.net *.split) |
| 00:00:04 | × | thatcher quits (lp0@heathens.club) (*.net *.split) |
| 00:00:04 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (*.net *.split) |
| 00:00:04 | × | atwm quits (~atwm@81.28.193.19) (*.net *.split) |
| 00:00:04 | × | mima quits (~mmh@aftr-62-216-210-244.dynamic.mnet-online.de) (*.net *.split) |
| 00:00:04 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (*.net *.split) |
| 00:00:04 | × | foul_owl quits (~kerry@23.82.194.107) (*.net *.split) |
| 00:00:04 | × | pavonia quits (~user@user/siracusa) (*.net *.split) |
| 00:00:04 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (*.net *.split) |
| 00:00:04 | × | kimjetwav quits (~user@2607:fea8:2340:da00:eadc:b566:9c61:625) (*.net *.split) |
| 00:00:04 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (*.net *.split) |
| 00:00:04 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (*.net *.split) |
| 00:00:04 | × | zmt00 quits (~zmt00@user/zmt00) (*.net *.split) |
| 00:00:04 | × | shapr quits (~user@2600:4040:2d31:7100:fe62:9285:d8a9:96db) (*.net *.split) |
| 00:00:04 | × | jinsun quits (~jinsun@user/jinsun) (*.net *.split) |
| 00:00:04 | × | inversed quits (~inversed@05412f44.skybroadband.com) (*.net *.split) |
| 00:00:04 | × | aeka quits (~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea) (*.net *.split) |
| 00:00:04 | × | gdd1 quits (~gdd@129.199.146.230) (*.net *.split) |
| 00:00:04 | × | notzmv quits (~zmv@user/notzmv) (*.net *.split) |
| 00:00:04 | × | sympt quits (~sympt@user/sympt) (*.net *.split) |
| 00:00:04 | × | sagax quits (~sagax_nb@user/sagax) (*.net *.split) |
| 00:00:04 | × | vgtw quits (~vgtw@user/vgtw) (*.net *.split) |
| 00:00:04 | × | zaquest quits (~notzaques@5.130.79.72) (*.net *.split) |
| 00:00:04 | × | yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (*.net *.split) |
| 00:00:04 | × | Alex_test quits (~al_test@178.34.160.206) (*.net *.split) |
| 00:00:04 | × | mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (*.net *.split) |
| 00:00:04 | × | averell quits (~averell@user/averell) (*.net *.split) |
| 00:00:04 | × | feliix42 quits (~felix@gibbs.uberspace.de) (*.net *.split) |
| 00:00:04 | × | noctux quits (~noctux@user/noctux) (*.net *.split) |
| 00:00:04 | × | Kaipei quits (~Kaiepi@156.34.47.253) (*.net *.split) |
| 00:00:04 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (*.net *.split) |
| 00:00:04 | × | ozkutuk quits (~ozkutuk@176.240.173.153) (*.net *.split) |
| 00:00:04 | × | mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split) |
| 00:00:04 | × | sudden quits (~cat@user/sudden) (*.net *.split) |
| 00:00:04 | × | siers quits (~ij@user/ij) (*.net *.split) |
| 00:00:04 | × | mcglk quits (~mcglk@131.191.49.120) (*.net *.split) |
| 00:00:04 | × | bliminse quits (~bliminse@host109-152-184-218.range109-152.btcentralplus.com) (*.net *.split) |
| 00:00:04 | × | belphegor666 quits (~satan@ip-046-223-003-073.um13.pools.vodafone-ip.de) (*.net *.split) |
| 00:00:04 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
| 00:00:04 | × | megaTherion quits (~therion@unix.io) (*.net *.split) |
| 00:00:04 | × | tristanC quits (~tristanC@user/tristanc) (*.net *.split) |
| 00:00:04 | × | haveo quits (~haveo@sl35.iuwt.fr) (*.net *.split) |
| 00:00:04 | × | forell quits (~forell@user/forell) (*.net *.split) |
| 00:00:21 | → | Alex_test joins (~al_test@178.34.160.206) |
| 00:00:23 | → | mima joins (~mmh@aftr-62-216-210-244.dynamic.mnet-online.de) |
| 00:00:26 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 00:00:28 | → | thatcher joins (lp0@heathens.club) |
| 00:00:31 | → | haveo joins (~haveo@sl35.iuwt.fr) |
| 00:00:32 | → | noctux joins (~noctux@user/noctux) |
| 00:00:32 | → | pavonia joins (~user@ip5f5bf425.dynamic.kabel-deutschland.de) |
| 00:00:34 | → | feliix42 joins (~felix@gibbs.uberspace.de) |
| 00:00:34 | → | bliminse joins (~bliminse@host109-152-184-218.range109-152.btcentralplus.com) |
| 00:00:36 | → | zaquest joins (~notzaques@5.130.79.72) |
| 00:00:38 | → | sudden joins (~cat@user/sudden) |
| 00:00:46 | → | inversed joins (~inversed@05412f44.skybroadband.com) |
| 00:00:47 | → | aeka joins (~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea) |
| 00:00:49 | × | pavonia quits (~user@ip5f5bf425.dynamic.kabel-deutschland.de) (Changing host) |
| 00:00:49 | → | pavonia joins (~user@user/siracusa) |
| 00:00:51 | → | forell joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) |
| 00:01:00 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 00:01:03 | → | belphegor666 joins (~satan@ip-046-223-003-073.um13.pools.vodafone-ip.de) |
| 00:01:12 | × | aeka quits (~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea) (Changing host) |
| 00:01:12 | → | aeka joins (~aeka@user/hiruji) |
| 00:01:15 | → | megaTherion joins (~therion@unix.io) |
| 00:01:18 | × | forell quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host) |
| 00:01:18 | → | forell joins (~forell@user/forell) |
| 00:01:26 | → | averell joins (~averell@irc.nf3.eu) |
| 00:01:33 | × | averell quits (~averell@irc.nf3.eu) (Changing host) |
| 00:01:33 | → | averell joins (~averell@user/averell) |
| 00:01:41 | → | Sciencentistguy joins (~sciencent@hacksoc/ordinary-member) |
| 00:01:45 | → | vgtw joins (~vgtw@user/vgtw) |
| 00:01:52 | → | yaroot joins (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) |
| 00:01:56 | → | siers joins (~ij@user/ij) |
| 00:01:56 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:01:57 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 00:02:00 | → | mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001) |
| 00:02:12 | → | lambdabot joins (~lambdabot@silicon.int-e.eu) |
| 00:02:13 | × | lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host) |
| 00:02:13 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 00:02:20 | → | dolio joins (~dolio@130.44.130.54) |
| 00:02:23 | → | jinsun joins (~jinsun@user/jinsun) |
| 00:02:25 | × | chomwitt quits (~chomwitt@2a02:587:dc17:ef00:a734:f93:648c:824f) (Ping timeout: 260 seconds) |
| 00:02:33 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 00:02:56 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) |
| 00:03:03 | → | gdd1 joins (~gdd@2001:470:1f13:187:2e9b:467c:7a38:be67) |
| 00:03:10 | → | mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
| 00:03:49 | → | atwm joins (~atwm@81.28.193.19) |
| 00:04:28 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 00:04:36 | → | foul_owl joins (~kerry@23.82.194.107) |
| 00:04:55 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:05:20 | → | tristanC joins (~tristanC@user/tristanc) |
| 00:06:10 | → | mcglk joins (~mcglk@131.191.49.120) |
| 00:07:07 | × | prolic quits (~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5) (Quit: Ping timeout (120 seconds)) |
| 00:07:56 | × | atwm quits (~atwm@81.28.193.19) (Client Quit) |
| 00:09:23 | → | prolic joins (~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5) |
| 00:10:56 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 272 seconds) |
| 00:11:34 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 00:13:12 | → | NaturalNumber123 joins (~monadam@137.229.82.64) |
| 00:15:42 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 00:20:11 | × | ddb quits (~ddb@ipv6two.tilde.club) (Quit: WeeChat 3.5) |
| 00:21:42 | → | dcoutts_ joins (~duncan@host86-155-218-176.range86-155.btcentralplus.com) |
| 00:24:05 | × | dcoutts__ quits (~duncan@host86-150-18-54.range86-150.btcentralplus.com) (Ping timeout: 255 seconds) |
| 00:25:12 | × | NaturalNumber123 quits (~monadam@137.229.82.64) (Ping timeout: 246 seconds) |
| 00:28:02 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 00:30:02 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:30:02 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 00:30:02 | × | winny quits (~weechat@user/winny) (Remote host closed the connection) |
| 00:30:02 | × | azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 00:30:02 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 00:30:21 | → | califax joins (~califax@user/califx) |
| 00:30:31 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 00:30:31 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 00:30:37 | → | winny joins (~weechat@user/winny) |
| 00:31:24 | → | king_gs joins (~Thunderbi@2806:103e:29:12be:accf:d6c3:d87:7820) |
| 00:33:10 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 00:33:23 | → | noteness joins (~noteness@user/noteness) |
| 00:36:35 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 00:36:35 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:36:49 | → | califax joins (~califax@user/califx) |
| 00:37:14 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 00:39:28 | × | pleo quits (~pleo@user/pleo) (Quit: quit) |
| 00:43:45 | × | Schrostfutz quits (~Schrostfu@217.150.146.150) (Ping timeout: 246 seconds) |
| 00:50:11 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
| 00:53:36 | → | frost joins (~frost@user/frost) |
| 00:53:36 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 00:55:50 | <byorgey> | Anyone know of a good way to extract Haddock comments from some code? Like, say I want to get the Haddock comments corresponding to the constructors of a particular data type. |
| 00:55:53 | → | dextaa joins (~DV@user/dextaa) |
| 00:56:02 | → | liz joins (~liz@host86-159-158-175.range86-159.btcentralplus.com) |
| 00:56:45 | <hpc> | use haddock as a library? |
| 00:58:18 | <geekosaur> | or ghc as a library, they should be in the AST in particular in 9.x |
| 00:59:16 | <hpc> | https://hackage.haskell.org/package/haddock-library-1.10.0/docs/Documentation-Haddock-Parser.html seems promising |
| 00:59:21 | <byorgey> | The Haddocks for the latest haddock-api package don't build =P If I go back several versions, I find "The Haddock API: A rudimentory, highly experimental API exposing some of the internals of Haddock. Don't expect it to be stable.". Not very confidence inspiring. |
| 00:59:26 | <hpc> | parseParas, then drill down through the data structure |
| 00:59:44 | <hpc> | weird, haddock itself depends on haddock-api |
| 00:59:50 | <byorgey> | aha, I was looking at the wrong package! |
| 00:59:59 | <byorgey> | perfect, thanks hpc |
| 01:00:02 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 01:00:26 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 01:00:27 | <hpc> | byorgey: i started from the haddock package and just clicked through its listed dependencies :P |
| 01:03:28 | <byorgey> | hpc: fair enough. I probably would have gotten there eventually, but thought I would ask in case anyone had done it before. Thanks for doing my work for me =) |
| 01:10:40 | × | king_gs quits (~Thunderbi@2806:103e:29:12be:accf:d6c3:d87:7820) (Ping timeout: 260 seconds) |
| 01:11:16 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:38 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 01:15:52 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 01:17:23 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:17:57 | → | king_gs joins (~Thunderbi@187.201.228.209) |
| 01:18:30 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 01:18:43 | ← | sgillespie[m] parts (~sgillespi@2001:470:69fc:105::2:3a9d) () |
| 01:18:51 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 01:26:37 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5) |
| 01:26:51 | × | hsw__ quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Quit: Leaving) |
| 01:27:04 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 01:30:04 | × | HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection) |
| 01:30:26 | → | nate4 joins (~nate@98.45.169.16) |
| 01:33:10 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
| 01:41:55 | → | ddb joins (~ddb@ipv6two.tilde.club) |
| 01:42:07 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 01:43:19 | → | pragma- joins (~chaos@user/pragmatic-chaos) |
| 01:44:05 | × | king_gs quits (~Thunderbi@187.201.228.209) (Quit: king_gs) |
| 01:46:10 | → | adrazalan_ joins (~adrazalan@42.191.189.65) |
| 01:49:35 | × | adrazalan quits (~adrazalan@42.191.189.65) (Ping timeout: 255 seconds) |
| 01:53:47 | × | bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:03:31 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 02:04:23 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 02:04:50 | → | zaquest joins (~notzaques@5.130.79.72) |
| 02:13:32 | → | qwym joins (~qwym@pool-96-253-29-94.prvdri.fios.verizon.net) |
| 02:15:11 | qwym | is now known as ym |
| 02:16:36 | ym | is now known as qwym |
| 02:17:11 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 02:18:28 | × | prolic quits (~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5) (Ping timeout: 252 seconds) |
| 02:21:53 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 02:23:53 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 02:27:46 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:34:12 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 02:37:17 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 02:39:32 | × | td_ quits (~td@muedsl-82-207-238-041.citykom.de) (Ping timeout: 255 seconds) |
| 02:41:08 | → | td_ joins (~td@muedsl-82-207-238-179.citykom.de) |
| 02:42:51 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 02:51:27 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 02:52:53 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:52:53 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:52:53 | finn_elija | is now known as FinnElija |
| 02:54:51 | → | machinedgod joins (~machinedg@207.228.78.138) |
| 02:55:10 | × | machinedgod quits (~machinedg@207.228.78.138) (Client Quit) |
| 03:02:08 | → | nek0 joins (~nek0@2a01:4f8:222:2b41::12) |
| 03:17:11 | → | pseigo joins (~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) |
| 03:31:25 | → | gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
| 03:36:42 | × | pseigo quits (~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Ping timeout: 264 seconds) |
| 03:41:39 | <Square> | What is a good setup (using nix) to be able to create new projects on a whim? I fear, if doing it with my shallow nix knowledge, id download new versions of ghc all the time. "> nix-channel --list" gives "nixpkgs https://nixos.org/channels/nixpkgs-unstable" |
| 03:43:43 | <Square> | oh.. it works like apt. I need to issue an "> nix-channel --update" to change coordinates right? |
| 03:53:17 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:58:04 | → | k8yun joins (~k8yun@user/k8yun) |
| 03:58:13 | × | k8yun quits (~k8yun@user/k8yun) (Client Quit) |
| 03:58:26 | × | inversed quits (~inversed@05412f44.skybroadband.com) (Quit: Connection error?!) |
| 03:58:43 | → | inversed joins (~inversed@05412f44.skybroadband.com) |
| 04:00:57 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 04:01:59 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 04:02:26 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 04:05:30 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
| 04:15:01 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 04:15:23 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 04:15:51 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 04:21:17 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 04:25:57 | <gdown> | That's right, as long as you're using 'import <nixpkgs>'. It's also possible to pin nixpkgs for that specific project, in which case it could have it's own version of ghc. |
| 04:26:00 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 248 seconds) |
| 04:27:01 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 04:33:35 | → | kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net) |
| 04:34:30 | → | Guest61 joins (~Guest61@178-133-60-246.mobile.vf-ua.net) |
| 04:34:53 | × | Guest61 quits (~Guest61@178-133-60-246.mobile.vf-ua.net) (Client Quit) |
| 04:38:17 | × | kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 04:40:49 | → | mbuf joins (~Shakthi@122.164.10.236) |
| 04:46:50 | → | king_gs joins (~Thunderbi@187.201.228.209) |
| 04:48:56 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds) |
| 04:55:25 | → | slaydr joins (~slaydr@75.164.63.238) |
| 04:57:13 | → | kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net) |
| 05:01:36 | × | kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Client Quit) |
| 05:17:03 | × | dispater quits (~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:17:21 | → | dispater joins (~dispater@user/brprice) |
| 05:17:28 | × | emanon42 quits (~emanon42@103.120.19.44) (Quit: Ping timeout (120 seconds)) |
| 05:17:46 | → | emanon42 joins (~emanon42@103.120.19.44) |
| 05:18:15 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
| 05:26:53 | → | king_gs1 joins (~Thunderbi@2806:103e:29:12be:accf:d6c3:d87:7820) |
| 05:26:53 | × | king_gs quits (~Thunderbi@187.201.228.209) (Read error: Connection reset by peer) |
| 05:26:55 | king_gs1 | is now known as king_gs |
| 05:33:13 | × | sayola1 quits (~vekto@dslb-088-078-152-210.088.078.pools.vodafone-ip.de) (Read error: No route to host) |
| 05:33:45 | × | king_gs quits (~Thunderbi@2806:103e:29:12be:accf:d6c3:d87:7820) (Ping timeout: 260 seconds) |
| 05:34:24 | → | sayola joins (~vekto@dslb-088-078-152-210.088.078.pools.vodafone-ip.de) |
| 05:46:25 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 05:52:09 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 05:56:04 | × | qwym quits (~qwym@pool-96-253-29-94.prvdri.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:56:15 | × | tabemann quits (~tabemann@2600:1700:7990:24e0:5b3:4d0f:e683:f449) (Remote host closed the connection) |
| 05:56:37 | → | tabemann joins (~tabemann@2600:1700:7990:24e0:4002:5f1:9464:2bd4) |
| 05:56:54 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:04:44 | × | gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
| 06:09:44 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 06:10:56 | → | coot joins (~coot@213.134.190.95) |
| 06:15:26 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:15:55 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 06:23:57 | → | Pickchea joins (~private@user/pickchea) |
| 06:31:00 | → | nate4 joins (~nate@98.45.169.16) |
| 06:36:38 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
| 06:39:29 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 06:43:04 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 06:47:18 | × | Vajb quits (~Vajb@2001:999:485:209:bc32:5580:b7a6:e68b) (Read error: Connection reset by peer) |
| 06:48:06 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 06:50:35 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 06:53:38 | → | acidjnk_new joins (~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de) |
| 06:55:10 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:55:35 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:56:15 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds) |
| 06:58:00 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 07:00:53 | × | simpleauthority quits (~simpleaut@user/simpleauthority) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:01:15 | → | simpleauthority joins (~simpleaut@user/simpleauthority) |
| 07:01:34 | → | quarkyalice_ joins (~alice@172.77.17.54) |
| 07:01:34 | × | quarkyalice_ quits (~alice@172.77.17.54) (Changing host) |
| 07:01:34 | → | quarkyalice_ joins (~alice@user/quarkyalice/x-8092822) |
| 07:02:24 | → | Schrostfutz joins (~Schrostfu@217.150.146.150) |
| 07:04:08 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 07:04:10 | × | quarkyalice quits (~alice@user/quarkyalice) (Ping timeout: 260 seconds) |
| 07:04:18 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds) |
| 07:05:22 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) (Remote host closed the connection) |
| 07:06:40 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:13:30 | × | Schrostfutz quits (~Schrostfu@217.150.146.150) (Ping timeout: 240 seconds) |
| 07:14:30 | × | ajb quits (~ajb@mimas.whatbox.ca) (Ping timeout: 240 seconds) |
| 07:15:27 | → | ajb joins (~ajb@mimas.whatbox.ca) |
| 07:15:36 | → | Schrostfutz joins (~Schrostfu@217.150.146.150) |
| 07:17:08 | × | cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 255 seconds) |
| 07:17:55 | → | gmg joins (~user@user/gehmehgeh) |
| 07:18:02 | → | cods joins (~fred@82-65-232-44.subs.proxad.net) |
| 07:20:54 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 07:20:59 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 07:26:51 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 07:27:01 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 07:32:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:33:20 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:40:34 | → | coot joins (~coot@213.134.190.95) |
| 07:42:13 | × | coot quits (~coot@213.134.190.95) (Remote host closed the connection) |
| 07:45:19 | → | johnw joins (~johnw@2600:1700:cf00:db0:4f4:3cd5:b24f:2542) |
| 07:45:26 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 07:54:01 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection) |
| 07:56:53 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 08:00:02 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 08:00:38 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 08:00:39 | → | pierrot joins (~pi@user/pierrot) |
| 08:00:42 | → | gmg joins (~user@user/gehmehgeh) |
| 08:00:54 | × | acidjnk_new quits (~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 08:01:31 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 08:02:21 | → | Topsi joins (~Topsi@host-88-217-154-179.customer.m-online.net) |
| 08:03:24 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection) |
| 08:05:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) |
| 08:06:21 | → | Tuplanolla joins (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) |
| 08:10:30 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 08:11:15 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) (Ping timeout: 260 seconds) |
| 08:18:25 | → | mattil joins (~mattil@87-92-116-67.bb.dnainternet.fi) |
| 08:18:57 | × | kuribas quits (~user@ptr-17d51eo5v7ov5sspekf.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 08:24:30 | × | mattil quits (~mattil@87-92-116-67.bb.dnainternet.fi) (Remote host closed the connection) |
| 08:28:34 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 08:28:41 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 08:28:45 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:31:12 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 08:31:25 | → | Pickchea joins (~private@user/pickchea) |
| 08:37:37 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 08:37:42 | → | dcoutts__ joins (~duncan@host86-184-242-41.range86-184.btcentralplus.com) |
| 08:40:31 | × | dcoutts_ quits (~duncan@host86-155-218-176.range86-155.btcentralplus.com) (Ping timeout: 256 seconds) |
| 08:42:32 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 08:45:39 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 08:46:11 | → | Midjak joins (~Midjak@82.66.147.146) |
| 08:49:32 | × | mbuf quits (~Shakthi@122.164.10.236) (Ping timeout: 260 seconds) |
| 08:50:08 | → | mbuf joins (~Shakthi@223.178.68.216) |
| 08:50:22 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 08:52:28 | <jackdk> | Square: the following `default.nix` works surprisingly often: `let nixpkgs = import <nixpkgs> {}; in nixpkgs.haskellPackages.developPackage { root = ./.; }` |
| 08:52:44 | <jackdk> | it's normally what I use when hacking on someone else's non-nixified library to send a PR or whatever. |
| 08:53:58 | × | foul_owl quits (~kerry@23.82.194.107) (Ping timeout: 240 seconds) |
| 08:53:58 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 08:54:11 | → | alp joins (~alp@user/alp) |
| 08:54:37 | → | cosimone` joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 08:55:08 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 08:55:40 | × | cosimone` quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 08:55:58 | × | cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Ping timeout: 272 seconds) |
| 08:56:10 | × | adrazalan_ quits (~adrazalan@42.191.189.65) (Ping timeout: 260 seconds) |
| 08:57:17 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 08:58:24 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:58:55 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 09:00:12 | × | kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Quit: You have been kicked for being idle) |
| 09:00:44 | × | quarkyalice_ quits (~alice@user/quarkyalice/x-8092822) (Remote host closed the connection) |
| 09:01:06 | → | quarkyalice_ joins (~alice@172.77.17.54) |
| 09:01:06 | × | quarkyalice_ quits (~alice@172.77.17.54) (Changing host) |
| 09:01:06 | → | quarkyalice_ joins (~alice@user/quarkyalice/x-8092822) |
| 09:01:58 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 09:02:28 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 09:02:49 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 09:04:19 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 09:06:21 | <maralorn> | Square: I also just have a ghc.withPackages with a collection of my favorite packages in my global path so for a lot of projects I don‘t need to load anything at all. |
| 09:07:36 | <maralorn> | Does Hackage verify any properties of uploaded sdists? Are precompiled binaries allowed in there? Are there known packages on hackage which contain binaries? |
| 09:08:10 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds) |
| 09:08:16 | → | foul_owl joins (~kerry@23.82.194.107) |
| 09:09:21 | → | Colere joins (~colere@about/linux/staff/sauvin) |
| 09:11:04 | → | Furor joins (~colere@about/linux/staff/sauvin) |
| 09:11:09 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds) |
| 09:13:57 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 256 seconds) |
| 09:15:49 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:15:49 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 09:16:38 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 09:16:43 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 09:18:07 | × | mbuf quits (~Shakthi@223.178.68.216) (Ping timeout: 268 seconds) |
| 09:18:40 | → | mbuf joins (~Shakthi@122.164.9.11) |
| 09:19:56 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection) |
| 09:21:09 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 09:30:51 | → | jtomas joins (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) |
| 09:31:00 | × | alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 09:31:25 | → | alexhandy joins (~trace@user/trace) |
| 09:31:36 | × | mbuf quits (~Shakthi@122.164.9.11) (Ping timeout: 248 seconds) |
| 09:34:06 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 09:34:13 | Furor | is now known as Colere |
| 09:38:10 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 09:47:16 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 09:52:34 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:55:40 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 09:56:44 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:56:52 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 09:59:11 | × | img quits (~img@user/img) (Ping timeout: 255 seconds) |
| 10:01:28 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 10:08:24 | × | jtomas quits (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Ping timeout: 248 seconds) |
| 10:08:30 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) |
| 10:08:59 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 10:09:00 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 10:09:13 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 10:11:27 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 10:11:58 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 10:12:22 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 10:13:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) (Ping timeout: 260 seconds) |
| 10:14:10 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:14:41 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:16:12 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:16:19 | → | Vajb joins (~Vajb@2001:999:485:209:bc32:5580:b7a6:e68b) |
| 10:16:20 | <ncf> | int-e: fixed misfortune :) |
| 10:18:47 | × | Schrostfutz quits (~Schrostfu@217.150.146.150) (Quit: Leaving) |
| 10:24:45 | × | mima quits (~mmh@aftr-62-216-210-244.dynamic.mnet-online.de) (Ping timeout: 246 seconds) |
| 10:32:19 | → | ix joins (~ix@82-71-2-184.dsl.in-addr.zen.co.uk) |
| 10:32:43 | → | nate4 joins (~nate@98.45.169.16) |
| 10:35:36 | × | ix quits (~ix@82-71-2-184.dsl.in-addr.zen.co.uk) (Client Quit) |
| 10:35:42 | → | adrazalan_ joins (~adrazalan@42.191.189.65) |
| 10:35:50 | × | Topsi quits (~Topsi@host-88-217-154-179.customer.m-online.net) (Read error: Connection reset by peer) |
| 10:37:21 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 10:38:11 | → | ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) |
| 10:40:17 | → | coot joins (~coot@213.134.190.95) |
| 10:42:59 | × | coot quits (~coot@213.134.190.95) (Client Quit) |
| 10:47:24 | × | pnotequalnp quits (~pnotequal@user/pnotequalnp) (Ping timeout: 252 seconds) |
| 10:49:04 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 10:51:25 | → | img joins (~img@user/img) |
| 10:54:03 | × | img quits (~img@user/img) (Client Quit) |
| 10:54:12 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 10:57:05 | → | img joins (~img@user/img) |
| 10:59:04 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 11:01:13 | × | quarkyalice_ quits (~alice@user/quarkyalice/x-8092822) (Remote host closed the connection) |
| 11:01:31 | → | quarkyalice_ joins (~alice@172.77.17.54) |
| 11:01:31 | × | quarkyalice_ quits (~alice@172.77.17.54) (Changing host) |
| 11:01:31 | → | quarkyalice_ joins (~alice@user/quarkyalice/x-8092822) |
| 11:04:10 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 11:05:33 | × | Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection) |
| 11:06:06 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
| 11:13:16 | → | elkcl_ joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 11:14:30 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 264 seconds) |
| 11:14:30 | elkcl_ | is now known as elkcl |
| 11:22:57 | × | img quits (~img@user/img) (Ping timeout: 260 seconds) |
| 11:23:56 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 11:25:50 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 11:27:39 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 11:30:43 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 11:33:05 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 11:37:04 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:38:06 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 11:38:36 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 11:39:35 | → | img joins (~img@user/img) |
| 11:40:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:46:43 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 11:55:36 | × | xff0x quits (~xff0x@2405:6580:b080:900:3133:9bc3:a923:a312) (Ping timeout: 248 seconds) |
| 11:56:15 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 276 seconds) |
| 11:57:46 | → | xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp) |
| 12:01:35 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 12:02:03 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 12:03:45 | → | shapr joins (~user@2600:4040:2d31:7100:fe62:9285:d8a9:96db) |
| 12:07:52 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 12:09:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) |
| 12:13:19 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:14:30 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) (Ping timeout: 260 seconds) |
| 12:16:20 | → | fockerize joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 12:19:44 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:36:28 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 12:36:33 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 12:36:51 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 12:40:40 | → | chomwitt joins (~chomwitt@2a02:587:dc17:ef00:9439:71c2:4609:e889) |
| 12:41:20 | → | Pickchea joins (~private@user/pickchea) |
| 12:41:55 | × | fockerize quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 12:42:27 | → | darchitect joins (~darchitec@82-132-215-123.dab.02.net) |
| 12:48:11 | → | coot joins (~coot@213.134.190.95) |
| 12:50:09 | <darchitect> | hi all, I know that's not the right group to ask, but are there any Plutus (Cardano) devs here that can help me with something ? (or point me to the right group to ask my questions in...) |
| 12:52:13 | <Axman6> | try asking your question, it's hard for us to know where the right place would be without knowing what you want |
| 12:52:26 | × | renzhi quits (~xp@2607:fa49:6500:b100::cf) (Ping timeout: 255 seconds) |
| 12:53:30 | × | arahael quits (~arahael@203.63.7.203) (Ping timeout: 264 seconds) |
| 12:54:08 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 12:54:11 | <darchitect> | Axman6: I want to know if it's possible to update datum of a script using the EUTXO model |
| 12:54:30 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 12:55:17 | <darchitect> | Axman6: my initial reaction is NO, since every UTXO has to be consumed, but was wondering if anyone more experienced can tell me why YES or why NO in more detail. an example scenario is say you have a CounterDatum (with just 1 Integer in it) and every time the validator is run -> the Integer value of the datum changes. |
| 12:55:42 | <darchitect> | Axman6: is this possible or not ? |
| 12:55:55 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:56:46 | <Axman6> | I personally don't have any experience with Plutus, so I won't be able to help. Is there not a forum or slack/discord that people use for it? |
| 12:58:10 | <darchitect> | yeah I think there's a discord, but I wanted to see if there are any lively groups here I can use, since Discord doesn't really have a good TUI |
| 12:59:31 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 13:00:57 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 13:01:42 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 13:02:37 | <Axman6> | My experience is with Daml, where to update anyting on the ledger you need to archive it and create a new one, I would be surprised if it weren't too different in plutus, but I know next to nothing about the language |
| 13:03:14 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 13:03:46 | → | BusConscious joins (~martin@ip5f5bded3.dynamic.kabel-deutschland.de) |
| 13:04:35 | → | renzhi joins (~xp@2607:fa49:6500:b100::c32e) |
| 13:04:47 | <BusConscious> | hello everyone. So I'm trying to build a ghc crosscompiler from a gcc crosscompiler |
| 13:06:02 | <BusConscious> | and autoconf creates weird errormessages before I even get to configuring for the target |
| 13:06:48 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 246 seconds) |
| 13:07:06 | × | dcoutts__ quits (~duncan@host86-184-242-41.range86-184.btcentralplus.com) (Ping timeout: 276 seconds) |
| 13:07:07 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 13:10:47 | <BusConscious> | ah nevermind |
| 13:15:26 | → | pleo joins (~pleo@user/pleo) |
| 13:16:07 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 13:16:22 | → | edinwood joins (~edinwood@109.249.184.205) |
| 13:18:55 | <edinwood> | Hi, I have been away for a while, are there any new developments in the haskell language? |
| 13:19:08 | <edinwood> | last time i was here linear types had just been added |
| 13:19:26 | <geekosaur> | QuickLook maybe |
| 13:19:49 | <geekosaur> | redesign of the primitive types to support Apple AArch64, but that's mostly not user visible |
| 13:20:37 | <geekosaur> | (QuickLook is a consistent, lawful implementation of impredicative types, replacing the series of hacks ghc had that was unreliable and apt to change every release) |
| 13:21:48 | <edinwood> | erp |
| 13:21:54 | <edinwood> | quicklook sounds complicated |
| 13:22:15 | <edinwood> | hope the ghc-prim thing might help fix some arch install issues? |
| 13:22:36 | <edinwood> | i thought ghc does not support impredictive types |
| 13:22:44 | <geekosaur> | as of QuickLook it does |
| 13:22:51 | <edinwood> | wait, Apple Arch? |
| 13:22:53 | <edinwood> | nvm then |
| 13:22:59 | <geekosaur> | (added in 9.2 although some of the groundwork was in 9.0) |
| 13:23:02 | <edinwood> | thats like a devil combo |
| 13:23:20 | <geekosaur> | apple decided to come up with their own incompatible calling conventions on aarch64 |
| 13:23:24 | <edinwood> | hmm, so Quicklook actually sounds like quite a major development |
| 13:23:49 | <edinwood> | geekosuar: lol, yeah, i guess its a niche |
| 13:23:50 | × | liz quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal) |
| 13:23:55 | <BusConscious> | Do you guys have any resources on how to add a crosscompile target in ghc? (Not different architecture, just different OS) |
| 13:24:24 | <geekosaur> | BusConscious, "normal" cross-compilation isn't really a thing yet although there's some work on it |
| 13:25:59 | <geekosaur> | afaik you need to treat a different OS the same way you'd treat a different architecture, except you'll already have most of the ugly work done for you instead of having to come up with your own native codegen (but see discussion of apple aarch64 above) |
| 13:26:18 | × | darchitect quits (~darchitec@82-132-215-123.dab.02.net) (Read error: Connection reset by peer) |
| 13:26:24 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 13:26:42 | <geekosaur> | which means using a custom-built ghc and unregisterised backend to dump C code to build on the target machine. but this is probably a question for #ghc |
| 13:27:02 | × | malte quits (~malte@mal.tc) (Read error: Connection reset by peer) |
| 13:29:34 | → | malte joins (~malte@mal.tc) |
| 13:34:32 | <BusConscious> | geekosaur: This is what I'm going of so far: https://gitlab.haskell.org/ghc/ghc/-/wikis/building/using https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling https://downloads.haskell.org/~ghc/6.2/docs/html/building/sec-porting-ghc.html I would love to port my unix shell to sortix. They have a POSIX compliant libc and a lot of other stuff like lua and pythons ported so in theory should |
| 13:34:39 | <BusConscious> | be possible |
| 13:34:52 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 13:35:03 | <BusConscious> | But it won't suffice to just crosscompile. I would have to patch some files first to add a new target |
| 13:36:05 | <edinwood> | isnt this why they made the JVM? |
| 13:37:04 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 13:39:08 | <BusConscious> | edinwood: Are you talking to me? |
| 13:39:28 | <edinwood> | geekosaur, i never really understood the impredictive types situation very well, and never really understood exactly when that error appeared, and it only showed up when i was doing really difficult type level stuff that i propably didnt understand all that well anyway |
| 13:40:14 | <edinwood> | BusConscious: its more of a quip, i think you are mad for doing all this crosscompiling, and that it is unfortunate that you should have to, but the only tech i can think of thats close to a standardised OS is the JVM |
| 13:40:44 | <edinwood> | i think we were compiling to that with some kind of java outputting backend |
| 13:40:48 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 13:40:55 | <edinwood> | maybe llvm is somewhat cross platform, idk |
| 13:41:47 | <geekosaur> | llvm is cross platform but in a different way. you generate portable llvm code, then generate target code from that |
| 13:41:50 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 13:41:56 | <geekosaur> | ghc supports cross-platform that way too |
| 13:42:40 | <edinwood> | oh right, so its more of a cross compilation intermediate stage handled under the hood to allow users to cross compile in a more straitforwards way |
| 13:42:52 | <edinwood> | not sure how that helps the issue mind |
| 13:43:23 | <BusConscious> | I mean obviously I have to crosscompile, because ghc is not ported to that operating system, but yes "in theory" is doing a lot of work and POSIX has its fair share of ambiguity |
| 13:43:27 | <edinwood> | isnt there the possiblility of some kind of haskell bytecode machine or something |
| 13:43:28 | <geekosaur> | think supercomputers, where the original idea was users compiled to llvm ir and each actual machine finished the compilation to its own native arch |
| 13:43:49 | <geekosaur> | (the effective victory of intel kinda made this unnecessary in the end) |
| 13:43:51 | <edinwood> | BusConsious: and its less work than trying to cross compile GHC? |
| 13:44:17 | <geekosaur> | but back when llvm was developed there were still alpha, sparc, ppc, etc. supercomputers around |
| 13:44:24 | × | raym quits (~raym@user/raym) (Ping timeout: 248 seconds) |
| 13:45:00 | <edinwood> | geekosaur: i thought a pupercomputer would have homogenous architecture, but maybe in some kind of distributed setting on the cloud like bayowulf or something |
| 13:45:20 | <BusConscious> | I mean it is possible to compile to C code with ghc right? |
| 13:45:30 | <edinwood> | again as an intermediate stage |
| 13:45:45 | <edinwood> | right? |
| 13:45:47 | <geekosaur> | back in the day you would want some parts of your program to run on a vector processor, another part to run on an alpha with huge array support, another part on intel, etc. |
| 13:45:56 | <geekosaur> | this could still be useful with gpus |
| 13:46:11 | <geekosaur> | BusConscious, only with unregisterised mode |
| 13:46:19 | <geekosaur> | which requires building your own ghc |
| 13:46:28 | <edinwood> | i guess supercomputers dont rely on OS threading! |
| 13:46:45 | <edinwood> | my gpu i guess just kicks in occasionally |
| 13:46:57 | <edinwood> | there was some CUDA stuff and repa, but i never understood |
| 13:46:59 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 13:47:06 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 13:47:31 | <edinwood> | what was the other thing, like some kind of flag you activate and it starts being all parallel |
| 13:47:44 | <edinwood> | accelerate |
| 13:47:51 | <edinwood> | i think it scared users that were used to having to specify the paralelism manually |
| 13:47:59 | <geekosaur> | ghc doesn't automatically parallelize programs, that's still a very unsolved problem |
| 13:48:15 | <edinwood> | didnt HAXL have some kind of thing |
| 13:48:16 | <edinwood> | wait |
| 13:48:18 | <BusConscious> | geekosaur: I don't understand what you mean by building ghc? Of course I would have to build my own ghc to get a crosscompiler? |
| 13:48:33 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 13:48:41 | <edinwood> | it like, examined a tree of applicatives or something to see which parts could be disentangled and run in parallel |
| 13:48:57 | <geekosaur> | BusConscious, -fvia-C in a released ghc will print a warning and use the native codegen |
| 13:49:21 | <edinwood> | BusConscious |
| 13:49:22 | <edinwood> | erp |
| 13:49:29 | <edinwood> | you would need to crosscompile the compiler? |
| 13:49:41 | <geekosaur> | you need to build a non-release ghc to get a -fvia-C that used unregisterised backend to generate portable C, then use that GHC to compile GHC again into C files for the target |
| 13:49:54 | × | pleo quits (~pleo@user/pleo) (Ping timeout: 264 seconds) |
| 13:50:02 | <geekosaur> | then take the C files to the target and compile them there |
| 13:50:16 | <edinwood> | oof |
| 13:50:17 | <BusConscious> | edinwood: no but build it on my own in the first place |
| 13:50:30 | <edinwood> | how are you going to get that? |
| 13:50:31 | <BusConscious> | geekosaur ah |
| 13:50:38 | <BusConscious> | I see |
| 13:50:56 | <BusConscious> | This seems like the easiest way to port haskell software to an OS with no haskell |
| 13:51:16 | <geekosaur> | alternatively if llvm supports the target you can use -keep-llvm-files and copy those over, but you'd have to ask #ghc what you do with them afterward |
| 13:51:41 | <edinwood> | couldnt you do it with just object files or something? |
| 13:51:44 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:51:49 | → | pleo joins (~pleo@user/pleo) |
| 13:51:57 | <edinwood> | i think this is how they were doing hotswapping |
| 13:52:01 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 13:52:04 | <BusConscious> | you use a generic target and then compile to C which you then compile with the OS's gcc crosscompiler and link to its libc |
| 13:52:09 | <edinwood> | but maybe on a consistent architecture |
| 13:52:20 | <BusConscious> | not as cool as directly crosscompiling to binary but still |
| 13:52:41 | <edinwood> | yeah, you want ghc to do the linking |
| 13:52:51 | <geekosaur> | object files are stamped with theoir architecture and ABI, you have to hope those match (and that the machoines agree as to what an object file is) |
| 13:53:03 | <edinwood> | the issue with different libc actually is easiliy solved with nix |
| 13:53:21 | <edinwood> | nix coppy closure should use the host OS libc |
| 13:53:59 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5) |
| 13:54:17 | <edinwood> | but maybe thats more for spinning up to the same OS, and not having to worry about setting it up to have the correct libc |
| 13:55:03 | <edinwood> | like, where you compile and where you run being different when you have a lightweight requirement of a server, where you dont want a full ghc |
| 13:55:22 | <edinwood> | i guess in this case nixos is advocated for |
| 13:55:47 | <edinwood> | but debian is fine. i guess you dont want to *not use the OS your trying to crosscompile to* |
| 13:55:55 | <edinwood> | but i guessw thats always the easyest fix! |
| 13:56:32 | <edinwood> | did you say the reason was mostly to use an existing linking infrastructure? |
| 13:56:55 | <edinwood> | and then at what point does that become redundant to something like letting the nix team fix it |
| 13:57:23 | <edinwood> | the amount of trouble we have with build tools.... |
| 13:59:06 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 13:59:10 | → | coot joins (~coot@213.134.190.95) |
| 14:00:41 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 14:02:21 | <edinwood> | geekosaur: can you say anything more about this impredictive fix? |
| 14:02:23 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:03:00 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 14:03:40 | <geekosaur[m]> | Not a whole lot, I barely know what impredicative types are |
| 14:11:18 | × | alp quits (~alp@user/alp) (Ping timeout: 240 seconds) |
| 14:11:27 | → | acidjnk_new joins (~acidjnk@dynamic-046-114-174-017.46.114.pool.telefonica.de) |
| 14:11:46 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) |
| 14:12:43 | × | nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat) |
| 14:13:37 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 14:13:54 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 14:14:03 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 14:15:08 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:15:36 | → | nek0 joins (~nek0@2a01:4f8:222:2b41::12) |
| 14:15:58 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) (Ping timeout: 240 seconds) |
| 14:17:23 | <edinwood> | hmm |
| 14:18:57 | <edinwood> | i cant even find a link in the realase notes |
| 14:19:01 | <edinwood> | https://downloads.haskell.org/ghc/9.2.2/docs/html/users_guide/9.2.2-notes.html |
| 14:19:45 | <edinwood> | i can find old links on quicklook proposals |
| 14:19:46 | <edinwood> | v |
| 14:19:47 | <edinwood> | https://gitlab.haskell.org/ghc/ghc/-/issues/18126 |
| 14:20:49 | <Hecate> | edinwood: QL is not done yet |
| 14:21:20 | <edinwood> | geekosaur said it was in 9.2.2 |
| 14:21:35 | <Hecate> | SPJ says it's not-done |
| 14:21:40 | <geekosaur> | that was apparently the start of it. I didn't realize there was more work coming |
| 14:21:52 | × | edinwood quits (~edinwood@109.249.184.205) (Remote host closed the connection) |
| 14:22:00 | <Hecate> | damn, he couldn't handle the truth |
| 14:22:01 | <Hecate> | heya geekosaur |
| 14:22:02 | <geekosaur> | oops? |
| 14:22:05 | <geekosaur> | hi |
| 14:22:12 | → | edinwood joins (~edinwood@109.249.184.205) |
| 14:22:19 | <edinwood> | <geekosaur> as of QuickLook it does <geekosaur> (added in 9.2 although some of the groundwork was in 9.0) |
| 14:22:37 | <edinwood> | i find this https://www.microsoft.com/en-us/research/publication/a-quick-look-at-impredicativity/ |
| 14:22:51 | <edinwood> | but i recall actually watching this talk already and still i have no idea |
| 14:22:59 | <edinwood> | something to do with foralls |
| 14:23:32 | <geekosaur> | the short version as I know it (which is probably incomplete) is impredicativity is instantiating a type variable to a forall-ed type |
| 14:23:57 | <geekosaur> | so b can unify with (a -> a) but not with (forall a. a -> a) |
| 14:24:25 | <geekosaur> | because the latter is impredicative ("can't be represented as a predicate") |
| 14:24:34 | <edinwood> | and it was sometihng to do with inference from examing terms or something |
| 14:24:55 | <edinwood> | a "predicate" ? |
| 14:24:59 | <geekosaur> | unfortunately that last only makes sense if you visualize the type inference engine as written in Prolog, I think |
| 14:25:10 | <edinwood> | this seems like it would help with understanding whatim-predicate-ive is |
| 14:25:17 | <edinwood> | i thought it was im-predict-ive |
| 14:25:56 | <edinwood> | ah the ol' curry-howerd debacle |
| 14:26:08 | → | alp joins (~alp@user/alp) |
| 14:26:46 | <edinwood> | so, the issue is not understanding the diffence between (a->a) and forall a. (a->a) as some kind of logic expression |
| 14:27:04 | <geekosaur> | the forall has to be inside the parens for it to be impredicative |
| 14:27:16 | <edinwood> | because i can give you (a->a) but not a (forall a. a -> a) ?# |
| 14:27:22 | <geekosaur> | if it's outside then it can be floated to the left, so there are no problems |
| 14:27:42 | × | acidjnk_new quits (~acidjnk@dynamic-046-114-174-017.46.114.pool.telefonica.de) (Ping timeout: 276 seconds) |
| 14:27:55 | <geekosaur> | if you can give me a (forall a. a -> a) at all, it will be monomorphized (that is, it will have its type fixed, losing the forall) |
| 14:27:56 | <edinwood> | so its some kind of internal variable decleration or something? |
| 14:28:04 | → | arahael joins (~arahael@121-44-28-164.tpgi.com.au) |
| 14:28:22 | <edinwood> | foralls are called "existential quantifiers" right? |
| 14:28:30 | <geekosaur> | things get much more complex if you need it to remain usable at any type |
| 14:28:40 | <geekosaur> | it depends on how they're used |
| 14:28:53 | <geekosaur> | I'm still a little fuzzy on this though |
| 14:29:07 | <edinwood> | yeah, tbh i cant understand the difference |
| 14:29:19 | <edinwood> | sure `a' in (a->a) is already polymorfic |
| 14:29:26 | <geekosaur> | "any" vs. "all", very roughly |
| 14:29:39 | <geekosaur> | or "there exists" instead of "for all" |
| 14:29:43 | <edinwood> | but if i can act on any of them i can act on all of them |
| 14:29:46 | <edinwood> | er, oh |
| 14:29:47 | <geekosaur> | the former is the existential |
| 14:29:58 | <edinwood> | i mean, (a->a) says "all a" right? |
| 14:29:59 | <geekosaur> | this is more logic than math |
| 14:30:12 | <geekosaur> | only if a hasn't been fixed otherwse |
| 14:30:28 | <geekosaur> | you can consider the forall when inside the parentheses as a local variable declaration |
| 14:30:41 | <edinwood> | hmm, so your saying eg `id` would have its type monomorphised in the expression where its used |
| 14:30:47 | <geekosaur> | yes |
| 14:31:05 | <edinwood> | and whats different here? |
| 14:31:49 | <edinwood> | could i do like: f a b c = (a b,a c) |
| 14:31:57 | <geekosaur> | without the inner forall, ghc will pick a specific type for `a` based on how it's used |
| 14:31:58 | <edinwood> | for type of b /= type of c |
| 14:32:17 | <geekosaur> | so the passed-in `id` will end up only being used for that type |
| 14:32:39 | <edinwood> | yeah, `a' was id here |
| 14:32:54 | × | acarrico quits (~acarrico@dhcp-68-142-48-19.greenmountainaccess.net) (Quit: Leaving.) |
| 14:33:42 | <geekosaur> | so if you declare it in `f` as being forall-ed, it will keep that and work as you expect. if you don't, it's impredicative and ghc will normally reject it |
| 14:33:49 | <edinwood> | :t \f a b c -> (a b,a c) |
| 14:33:50 | <lambdabot> | p -> (t -> b) -> t -> t -> (b, b) |
| 14:33:55 | <edinwood> | so t is the same there |
| 14:34:15 | → | nate4 joins (~nate@98.45.169.16) |
| 14:34:42 | <edinwood> | % :t \f (a :: forall a. a->a) b c -> (a b,a c) |
| 14:34:42 | <yahb2> | <interactive>:1:5: error: ; Illegal type signature: ‘forall a. a -> a’ ; Type signatures are only allowed in patterns with ScopedTypeVariables |
| 14:34:55 | <edinwood> | why yahb is not have this extension on |
| 14:35:11 | <edinwood> | % :set -XScopedTypeVariables |
| 14:35:11 | <yahb2> | <no output> |
| 14:35:18 | <edinwood> | % :t \f (a :: forall a. a->a) b c -> (a b,a c) |
| 14:35:19 | <yahb2> | \f (a :: forall a. a->a) b c -> (a b,a c) ; :: p -> (forall a1. a1 -> a1) -> a -> b -> (a, b) |
| 14:35:22 | <geekosaur> | my sister just pinged me, I need to run |
| 14:35:47 | <edinwood> | ok ill work through this on my own |
| 14:36:20 | <edinwood> | % (\f (a :: forall a. a->a) b c -> (a b,a c)) id "a" 'a' |
| 14:36:20 | <yahb2> | <interactive>:74:48: error: ; • Couldn't match expected type ‘a -> a’ with actual type ‘[Char]’ ; • In the second argument of ‘\ f (a :: forall a. a -> a) b c ; ... |
| 14:37:01 | <edinwood> | % (\ (f :: forall a. a->a) a b -> (f a,f b)) id "a" 'a' |
| 14:37:01 | <yahb2> | ("a",'a') |
| 14:37:04 | <edinwood> | wey |
| 14:37:07 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:37:15 | <edinwood> | % (\f a b c -> (a b,a c)) id "a" 'a' |
| 14:37:15 | <yahb2> | <interactive>:78:28: error: ; • Couldn't match expected type ‘Char -> b’ ; with actual type ‘[Char]’ ; • In the second argument of ‘\ f a b c -> (a b, a c)’, namely ‘"a"’ ... |
| 14:37:19 | <edinwood> | woop |
| 14:37:25 | <edinwood> | so your saying this never used to work? |
| 14:38:03 | <edinwood> | nah, this works in GHC 8.2 also |
| 14:38:10 | <edinwood> | i wonder what they changed... |
| 14:38:51 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 14:39:05 | <edinwood> | % (\ f a b -> (f a,f b)) id "a" 'a' |
| 14:39:05 | <yahb2> | <interactive>:80:31: error: ; • Couldn't match expected type ‘[Char]’ with actual type ‘Char’ ; • In the third argument of ‘\ f a b -> (f a, f b)’, namely ‘'a'’ ; In the expression: (... |
| 14:39:35 | <edinwood> | thats better (one above had a typo) |
| 14:40:51 | <yin> | isn't this the monomorphism restriction? |
| 14:41:21 | <edinwood> | the realease notes mention neither quicklook or impredictive... |
| 14:41:45 | <edinwood> | yin: that was mentioned before, or at least, something got monomorphized |
| 14:41:55 | <edinwood> | https://downloads.haskell.org/~ghc/9.2.2/docs/html/users_guide/9.2.2-notes.html |
| 14:42:20 | <edinwood> | i think this may have been a wild goose chase, i wonder where geekosaur got the idea about quicklook in 9.2.2 from |
| 14:51:16 | → | raym joins (~raym@user/raym) |
| 14:52:05 | × | xheimlich quits (~xheimlich@179.218.1.150) (Remote host closed the connection) |
| 14:54:57 | → | Topsi joins (~Topsi@37.84.244.102) |
| 14:56:13 | <yin> | we need to polish some rough edges in haskell imo |
| 14:56:44 | <yin> | let generalization is not very intuitive in some edge cases |
| 14:56:44 | × | Topsi quits (~Topsi@37.84.244.102) (Read error: Connection reset by peer) |
| 14:59:25 | <yin> | the monomorphism restriction is weird and the f a = f a vs f = \a -> f a distinction makes no sense imho |
| 14:59:29 | → | regr joins (~regr@user/regr) |
| 14:59:30 | → | Guest1281 joins (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) |
| 14:59:35 | × | Guest1281 quits (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host) |
| 14:59:35 | → | Guest1281 joins (~Gambino@user/polo) |
| 14:59:42 | Guest1281 | is now known as Polo |
| 14:59:59 | <yin> | *f g a = g a vs f g = \a -> g a |
| 15:00:01 | cawfee_ | is now known as cawfee |
| 15:02:50 | × | Polo quits (~Gambino@user/polo) (Read error: Connection reset by peer) |
| 15:03:15 | × | turlando quits (~turlando@user/turlando) () |
| 15:03:40 | → | atwm joins (~atwm@81.28.193.19) |
| 15:03:56 | → | turlando joins (~turlando@user/turlando) |
| 15:04:20 | → | Polo joins (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) |
| 15:04:55 | × | Polo quits (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host) |
| 15:04:55 | → | Polo joins (~Gambino@user/polo) |
| 15:07:51 | <geekosaur> | I can't stick around but https://downloads.haskell.org/ghc/9.2.1/docs/html/users_guide/exts/impredicative_types.html |
| 15:08:02 | Polo | is now known as money |
| 15:08:02 | × | money quits (~Gambino@user/polo) (Client Quit) |
| 15:10:15 | → | paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
| 15:11:02 | → | Topsi joins (~Topsi@host-88-217-154-179.customer.m-online.net) |
| 15:12:05 | × | alp quits (~alp@user/alp) (Ping timeout: 268 seconds) |
| 15:19:41 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 15:20:45 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) |
| 15:22:33 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 15:24:08 | × | pleo quits (~pleo@user/pleo) (Ping timeout: 248 seconds) |
| 15:30:39 | → | jz99[m] joins (~jz99matri@2001:470:69fc:105::1:d5f1) |
| 15:40:54 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:42:50 | × | regr quits (~regr@user/regr) (Quit: WeeChat 2.8) |
| 15:47:40 | → | zer0bitz joins (~zer0bitz@2001:2003:f748:2000:c429:cbdc:14b0:bcca) |
| 15:48:34 | <monochrom> | The monomorphism restriction fixed a rough edge. |
| 15:49:28 | <edinwood> | oh right, so allowing to define a function with a nested forall in the type signature? |
| 15:50:20 | <monochrom> | That if you wrote a top-level "n = <expression that takes 5 minutes to compute but comes down to 42>", without the monomorphism restriction, it would take 5 minutes every time to use n, despite the syntax suggesting otherwise. |
| 15:53:50 | → | qwym joins (~qwym@pool-96-253-29-94.prvdri.fios.verizon.net) |
| 15:53:50 | × | Vajb quits (~Vajb@2001:999:485:209:bc32:5580:b7a6:e68b) (Read error: Connection reset by peer) |
| 15:54:01 | × | Topsi quits (~Topsi@host-88-217-154-179.customer.m-online.net) (Ping timeout: 268 seconds) |
| 15:54:07 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 15:55:37 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:57:10 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 16:00:15 | <hololeap> | anyone really familiar with tasty? I can't figure out how to use this: https://hackage.haskell.org/package/tasty-1.4.2.3/docs/Test-Tasty.html#v:withResource |
| 16:00:21 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:01:10 | <hololeap> | the problem is the third argument, (IO a -> TestTree). if I want to use that 'a', I have to convert an IO action to a TestTree, and I don't see any way to do that |
| 16:01:17 | <hololeap> | except unsafePerformIO |
| 16:06:04 | → | pleo joins (~pleo@user/pleo) |
| 16:10:20 | <int-e> | TestTree embeds IO via IsTest, see for example https://hackage.haskell.org/package/tasty-hunit-0.10.0.3/docs/Test-Tasty-HUnit.html#v:testCase (note that Assertion = IO ()) |
| 16:12:04 | <int-e> | (I'm *not* familiar with tasty... I have not checked what other providers it has. And I suppose you could make your own if you wish to do so.) |
| 16:12:05 | → | tzh_ joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:14:50 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 16:22:41 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 16:24:31 | → | sympt joins (~sympt@user/sympt) |
| 16:30:13 | <Haskelytic> | how does one even pronounce weird operators like `(<$)` |
| 16:30:24 | <dolio> | I don't. |
| 16:30:50 | <Haskelytic> | i just realized that i tend to think in words when I code and in Haskell, my brain just hiccups whenever I reach for these operators |
| 16:30:54 | <Haskelytic> | dolio: :( |
| 16:31:12 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 16:31:14 | <int-e> | sequence-taking-left-result |
| 16:31:16 | <int-e> | :P |
| 16:31:25 | → | econo joins (uid147250@user/econo) |
| 16:31:32 | <dolio> | That's (<*) |
| 16:31:41 | <int-e> | :t (<$) |
| 16:31:43 | <lambdabot> | Functor f => a -> f b -> f a |
| 16:31:51 | <int-e> | oh. grr. |
| 16:32:01 | <int-e> | pacman-eating-money |
| 16:32:11 | <int-e> | (yeah, I mixed those up) |
| 16:32:13 | <Haskelytic> | int-e: XD |
| 16:32:59 | <Haskelytic> | shouldn't it be pacman-eating-left-money |
| 16:33:09 | <int-e> | no, the money is to the right |
| 16:33:18 | <Haskelytic> | the fuctor? |
| 16:33:24 | <Haskelytic> | oh lol |
| 16:33:34 | <Haskelytic> | haha I guess that's a decent mnemonic |
| 16:33:48 | <int-e> | It wasn't supposed to make sense. But... if you want it to, the right argument is the one whose result gets eaten |
| 16:34:34 | <dolio> | If I really had to tell someone English words, I'd just say "less than dollar." But I don't pronounce it to myself when reading. |
| 16:34:47 | <dolio> | I just see it and know what it is. |
| 16:35:04 | <int-e> | (I don't actually pronounce these things. I do see the < as an arrow pointing to where the result comes from. That works for <* and *> and also for <$ ... hmm. what about $>, do we have that?) |
| 16:35:08 | <int-e> | :t ($>) |
| 16:35:10 | <lambdabot> | error: |
| 16:35:10 | <lambdabot> | • Variable not in scope: $> |
| 16:35:10 | <lambdabot> | • Perhaps you meant one of these: |
| 16:35:25 | × | atwm quits (~atwm@81.28.193.19) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:35:48 | <int-e> | Ah you can flip the two arguments and use <$ instead. |
| 16:37:24 | <dolio> | English is not good for communicating programs even when the tokens are easy to pronounce. |
| 16:37:44 | <int-e> | the COBOL fallacy |
| 16:38:04 | <dolio> | It might not seem that way, but if you ever try to get someone to write a program by telling them what the program is in English, you'll probably find that out. |
| 16:38:42 | <int-e> | Yeah, don't describe programs. Describe algorithms. Even that is hard. |
| 16:38:43 | <Haskelytic> | results may vary based on how synced up your jargons are |
| 16:39:06 | <Haskelytic> | but yeah I see the point |
| 16:39:07 | <int-e> | (And data structures. Probably more important than the algorithms.) |
| 16:41:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:44:25 | → | Guest7119 joins (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) |
| 16:49:05 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 16:49:05 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 16:50:11 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 16:50:19 | × | Guest7119 quits (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host) |
| 16:50:19 | → | Guest7119 joins (~Gambino@user/polo) |
| 16:50:22 | Guest7119 | is now known as polo |
| 16:50:45 | × | polo quits (~Gambino@user/polo) (Quit: Textual IRC Client: www.textualapp.com) |
| 16:51:02 | <edinwood> | im trying to work on a "scanning language! |
| 16:51:06 | <edinwood> | can anyone help? |
| 16:51:14 | → | Polo joins (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) |
| 16:51:14 | × | Polo quits (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host) |
| 16:51:14 | → | Polo joins (~Gambino@user/polo) |
| 16:51:16 | <edinwood> | im not too good with language design |
| 16:52:14 | <edinwood> | at the moment im doing type checking at list constructors for adding functions to a growing program |
| 16:52:31 | <edinwood> | the program is on its side, running the outputs into inputs of graphically composed scanners |
| 16:52:47 | <edinwood> | if they were linealy composed with the monoidal algebra, i wouldnt need a language |
| 16:53:03 | <edinwood> | but to define the composition graph im using variable names to represent edges for derreferencing |
| 16:53:17 | <edinwood> | or substitution of the evaluated terms |
| 16:55:26 | × | Polo quits (~Gambino@user/polo) (Remote host closed the connection) |
| 17:02:07 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:02:57 | → | mima joins (~mmh@aftr-62-216-210-244.dynamic.mnet-online.de) |
| 17:04:39 | → | darchitect joins (~darchitec@2a00:23c6:3584:df01:bc89:6791:4f2d:5d5) |
| 17:04:50 | <yin> | how do we set cabal to -v0 by default in .cabal/config? |
| 17:04:55 | → | yauhsien joins (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) |
| 17:05:19 | <darchitect> | from personal experience Haskell seems like the most abstract programming language I've worked with, do you guys think the same ? |
| 17:05:30 | <edinwood> | abstract? |
| 17:05:40 | <edinwood> | seems a bit of an abstract thing |
| 17:05:45 | <monochrom> | Do you see the line "-- verbose: 1" that you can uncomment and change 1 to 0? |
| 17:06:31 | <darchitect> | yeah I know, a bit clearer of a definition -> smallest code/abstraction ratio |
| 17:06:34 | <darchitect> | ? |
| 17:06:45 | <monochrom> | I was also taught Prolog, so I think functional languages are only the 2nd most abstract. |
| 17:06:58 | × | leah2 quits (~leah@vuxu.org) (Ping timeout: 240 seconds) |
| 17:07:00 | <monochrom> | Oh hey I was also taught SQL too. |
| 17:07:17 | <Haskelytic> | darchitect: in the grand scheme of things, everything is abstract :) |
| 17:07:18 | <darchitect> | monochrom: what's the 1st ? |
| 17:07:28 | <darchitect> | Haskelytic: hahaha |
| 17:07:31 | × | pleo quits (~pleo@user/pleo) (Quit: quit) |
| 17:07:32 | <monochrom> | Like I implied, Prolog and SQL |
| 17:07:32 | <Haskelytic> | it's a matter of getting used to it |
| 17:07:47 | <monochrom> | Generally really declarative languages. |
| 17:07:58 | <yin> | how do you find sql abstract? |
| 17:08:01 | <darchitect> | is SQL considered programming language ? |
| 17:08:02 | <Haskelytic> | I would bet my whole life salary that if you started kids on Haskell, they would complain that C was hard to understand :) |
| 17:08:09 | <yin> | darchitect: yes |
| 17:08:21 | <monochrom> | You specify "I want a relational join" instead of "let me write my own loop"? |
| 17:08:52 | <yin> | depends on what you mean by abstract then |
| 17:08:56 | <yin> | anyways |
| 17:08:59 | <yin> | how do we set cabal to -v0 by default in .cabal/config? |
| 17:08:59 | <int-e> | you create an index and a lot of queries will use binary search instead of iterating over the whole table |
| 17:09:03 | <Haskelytic> | monochrom: one could argue that "write my own loop" is still abstract because you can't see the electrons whizzing about in the CPU |
| 17:09:16 | <sclv> | yin: monochrom just told you above! |
| 17:09:30 | <Haskelytic> | I think "abstract" itself is too abstract to be useful |
| 17:09:41 | <int-e> | (with no change to how you issue those queries) |
| 17:09:46 | <yin> | sclv: oops got my channels confused :p |
| 17:09:52 | × | yauhsien quits (~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 17:10:06 | <monochrom> | In the context of this conversation, "clearly" we are speaking comparatively, not absolutelty. |
| 17:10:26 | <int-e> | sql is that weird breed of declarative where you have to know how the queries get executed anyway if you run into performance issues |
| 17:10:38 | <monochrom> | Clearly, you people are context-free automata. |
| 17:10:44 | <maerwald> | int-e: sounds like Haskell |
| 17:10:49 | <int-e> | maerwald: true :P |
| 17:10:59 | <darchitect> | now that I think of it, I guess I meant -> the least amount of boilerplate :D |
| 17:11:15 | <Haskelytic> | int-e: every abstraction leaks :) |
| 17:11:35 | <Haskelytic> | monochrom: joke's on you I identify as a pen-paper pair |
| 17:11:47 | <int-e> | Haskelytic: Maybe one day we'll find the right one :P (Nah. I don't believe in silver bullets.) |
| 17:11:49 | <monochrom> | I'm pretty sure you also run into Prolog performance issues and then you have to know the exact order of the resolutions plus how to use cuts. |
| 17:12:23 | <Haskelytic> | monochrom: reminds me of the prolog days :) |
| 17:12:32 | <Haskelytic> | I learned a lot but I would not want to use it agian |
| 17:12:38 | <monochrom> | In addition to when you want to determinize definitions and/or queries. |
| 17:12:45 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:13:14 | <int-e> | I've found Prolog kind of awful... it *looks* declarative but really all you're doing is controlling backtracking so that your program still completes in reasonable time (or at all) |
| 17:13:53 | <int-e> | But I've never used it seriously. (Because of that impression.) |
| 17:14:06 | <dolio> | SQL has the same problem. |
| 17:14:31 | <monochrom> | At least SQL is a total language >:) |
| 17:14:57 | <edinwood> | darchitect: you mean expressive, and yes, haskell is one of the most expressive languages |
| 17:14:59 | <dolio> | It's designed to be declarative, but practically you need to learn exactly what variations of equivalent things cause the query optimizer to produce a good plan. |
| 17:15:50 | <dolio> | Unless you just don't care how slow your queries are. |
| 17:15:54 | <darchitect> | is that because it is is purely functional or is just a property of the Haskell language specifically |
| 17:15:56 | <Haskelytic> | int-e: but but...what about my expert system :) |
| 17:16:44 | <Haskelytic> | dolio: sounds like pretty much any system out there. isn't that what spawns those "X optimization expert" jobs |
| 17:17:23 | <dolio> | Yeah. |
| 17:17:37 | <edinwood> | i guess nobody is going to take me up on my call to arms to help me write a scanner language |
| 17:18:19 | <yin> | monochrom: verbose: 0 does nothing apparently. i still get the annoying "Up to date" line in front of my output when i cabal run |
| 17:18:23 | → | leah2 joins (~leah@vuxu.org) |
| 17:18:49 | <edinwood> | data Program (fs :: [Signature]) (i :: Vars) (o :: Vars) where Inputs :: Proxy i -> Program '[] i o Define :: True ~ (os `Contains` a) => (a +-> b) -> Program fs i os -> Program (f:fs) i o Outputs :: True ~ (os `Contains` o) => Proxy o -> Program fs i os -> Program fs i o |
| 17:18:57 | <edinwood> | thats what iv got so far.. |
| 17:19:45 | <edinwood> | its a strange language in that you have to define the variable names that a function outputs too |
| 17:19:57 | <edinwood> | i think because its "scanning" it has "linear parametric functions" |
| 17:19:59 | <edinwood> | one per scanner |
| 17:20:12 | <edinwood> | so its no difficulty to name the outputs at the function definition |
| 17:20:29 | <edinwood> | and that enables you to typecheck the program graph, that all the outputs are consmed or returned at the end |
| 17:21:11 | <edinwood> | i also had a question about if this "linear function" idea could be related to that of "linear types" which im not sure if they just correspond to values |
| 17:21:47 | <edinwood> | (in this language all values are [Double] and functions are not passed as arguments at all) |
| 17:25:36 | <Haskelytic> | edinwood: would be easier if you paste snippets https://paste.tomsmeding.com/ |
| 17:25:43 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed) |
| 17:25:50 | → | atwm joins (~atwm@81.28.193.19) |
| 17:25:58 | <edinwood> | sure, but its not done yet |
| 17:25:58 | <edinwood> | https://paste.tomsmeding.com/XoPeORvW |
| 17:26:27 | <edinwood> | so forgive any glaring errors |
| 17:28:41 | <edinwood> | i hope its almost readable? |
| 17:30:21 | × | edinwood quits (~edinwood@109.249.184.205) (Remote host closed the connection) |
| 17:30:39 | → | edinwood joins (~edinwood@109.249.184.205) |
| 17:30:43 | <int-e> | 1 space indentation :( |
| 17:30:45 | <edinwood> | line 30 is wrong, it should have a constraint that typechecks the program, but this version should typecheck automatically by the constraint on the constructor |
| 17:30:57 | × | alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 17:31:01 | <edinwood> | int-e: its pure haskell idom! |
| 17:31:18 | → | alexhandy joins (~trace@user/trace) |
| 17:32:07 | <monochrom> | At least it is not 0.3333... spaces indentation :) |
| 17:32:40 | <edinwood> | i think the point was that there might be "compiling programs" where the criterea for typechecking could not be issued by placing a constraint on the constructor |
| 17:33:05 | × | qwym quits (~qwym@pool-96-253-29-94.prvdri.fios.verizon.net) (Remote host closed the connection) |
| 17:33:11 | <edinwood> | such as allowing definitions in any order that make a proper graph, which here its doing by saying you have to supply the functions in the correct order |
| 17:33:32 | <edinwood> | so that all the inputs needed by a function being added are avilable in scope as outputs from the previous functions, or the overall inputs |
| 17:33:56 | <edinwood> | beause the scope grows like this, the output layer simply discards the variables in scope that arent meant to be output |
| 17:34:33 | <yin> | int-e: i'm more concerned about the inconsistent spacing on the language extensions list |
| 17:34:41 | <edinwood> | argh! |
| 17:34:51 | <edinwood> | at least people are reading it... |
| 17:35:04 | <yin> | edinwood: ;) |
| 17:35:24 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 17:35:29 | <int-e> | yin: I skipped that :P |
| 17:35:53 | <edinwood> | im not sure how best to ask for help here... |
| 17:36:32 | <darchitect> | :d |
| 17:37:41 | <int-e> | edinwood: Line 28... wouldn't `Proxy i -> Program '[] i i` make more sense? |
| 17:38:18 | <edinwood> | no! |
| 17:38:25 | <edinwood> | you dont specify the outputs here |
| 17:38:36 | <edinwood> | only on the close layer |
| 17:38:44 | <edinwood> | everything is just added to scope until then |
| 17:39:36 | <edinwood> | until then you want the intermediate steps to have polymorphic output type |
| 17:39:45 | <edinwood> | i think... unless im being stupid ofc |
| 17:39:54 | <int-e> | line 29, why is b unconstrained? |
| 17:40:12 | <edinwood> | your only checking that the inputs are available |
| 17:40:50 | <edinwood> | hmm, i guess then you *would* want the inputs to be mapped to outputs. thanks |
| 17:42:12 | <edinwood> | Inputs :: Proxy i -> Program '[] i i |
| 17:42:16 | <edinwood> | Define :: True ~ (os `Contains` a) => (a +-> b) -> Program fs i os -> Program (f:fs) i (b ++ os) |
| 17:42:50 | <edinwood> | at least now the scope is initialised and grows as required |
| 17:42:59 | <edinwood> | sorry i didnt realise there would be so many mistakes |
| 17:45:13 | <int-e> | I'm not sure what `Signature` should be. Maybe just a pair? |
| 17:45:58 | <edinwood> | this was the bit i was getting confused over |
| 17:46:19 | <int-e> | Anyway... I'm making too many guesses about the intent here. |
| 17:46:32 | <edinwood> | ok, so |
| 17:46:33 | <edinwood> | Define :: True ~ (os `Contains` a) => (a +-> b) -> Program fs i os -> Program (f:fs) i (b ++ os) |
| 17:46:38 | <edinwood> | there is no `f' here |
| 17:47:01 | <int-e> | f could be a better named version of (a,b) |
| 17:47:12 | <hololeap> | @hoogle ($>) |
| 17:47:13 | <lambdabot> | Data.Functor ($>) :: Functor f => f a -> b -> f b |
| 17:47:13 | <lambdabot> | Data.Functor.Compat ($>) :: Functor f => f a -> b -> f b |
| 17:47:13 | <lambdabot> | Data.Functor.Apply ($>) :: Functor f => f a -> b -> f b |
| 17:47:21 | <edinwood> | thats why i thought i needed a signature, but maybe i just dont need any extra params, ie to store the "function", other than just its input output names |
| 17:47:22 | → | arjun joins (~arjun@user/arjun) |
| 17:47:31 | <int-e> | or, if f acts as a name, (f,a,b) |
| 17:47:38 | <edinwood> | i dont think there is any typechecking on just the name... |
| 17:48:37 | <edinwood> | oh right, thats why you were suggesting a pair of the input and output names for the signature |
| 17:48:40 | <edinwood> | fair enough |
| 17:48:41 | <int-e> | (so the function environment ([Signature]) will act as an associative map from names to the function's type) |
| 17:48:59 | <int-e> | using "type" loosely |
| 17:49:17 | <edinwood> | sure, if the names are at all needed at all |
| 17:49:49 | <edinwood> | i suppose i could do without, since the typechecking stores the names in the running scope, which is all thats required |
| 17:49:51 | <edinwood> | i guess |
| 17:49:52 | <edinwood> | ah |
| 17:50:00 | <edinwood> | if you didnt typecheck at the constructor... |
| 17:50:07 | <edinwood> | like, to allow functions defined in any order |
| 17:50:20 | <edinwood> | then you would need to do an opperation on the [Signature] storing the io names |
| 17:50:29 | <int-e> | I'm not sure this fits together as is, there's enough questions here that I think you should do a bit more planning and then maybe redo the central `Function`, `Signature`, and `Program` types from scratch. |
| 17:51:06 | <edinwood> | its a design choice i think about if i need to allow "better language" where the functions can be supplied in any ordedr |
| 17:51:10 | <int-e> | the list helper is probably fine as is, for now |
| 17:51:16 | <edinwood> | this is what i mean |
| 17:51:37 | <edinwood> | not sure if theres anything else to do for typechecking... |
| 17:51:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:51:51 | <edinwood> | like, any other reason for the [Signature] to be made |
| 17:52:29 | <edinwood> | the next step after figuring that out was supposed to be to add 2 extra constructors, for "constant memory values" (not functions) to be added |
| 17:52:36 | <edinwood> | and for some kind of "spark" variable |
| 17:52:41 | <edinwood> | to be carried between itterations |
| 17:52:57 | <edinwood> | there was a weird condition here that these had to be read from before they could be written too |
| 17:53:40 | <edinwood> | so you cant add a function that has output to the variable unless it was already used as an input to a previously added function |
| 17:53:46 | <edinwood> | but im not sure if thats the right condition |
| 17:54:25 | <edinwood> | a scanner above can output to a scanner below, using the spark memory so it can also take this value as *input*, because there is one there from the output on the prev itteration |
| 17:54:40 | <edinwood> | so adding these "spark" varibles also demands an initial data value |
| 17:55:24 | <edinwood> | which is different from the "carry" which just pertains to the "state" (eg the basecase to mapAccumL) transfers under the hood - which i have no idea how to do at all!!! |
| 17:55:28 | → | sagax joins (~sagax_nb@user/sagax) |
| 17:55:30 | <edinwood> | was going to figure that part out |
| 17:55:40 | <edinwood> | makes sense?# |
| 17:58:39 | <edinwood> | im not sure how to detatch the state transfer from the output function |
| 17:58:43 | <int-e> | Hmm, have you sketched this thing without almost-dependent types, so that you have a clear picture of the stuff you want to track in those types? |
| 17:59:05 | <edinwood> | i tried idris but it was dementing |
| 17:59:27 | <edinwood> | i think my brain rejected it from being just similar enough to haskell to trick my brain into an erronious sense of security |
| 17:59:30 | <int-e> | I meant in Haskell with plain data types. |
| 17:59:49 | <edinwood> | hmm, all the typechecking stuff is done at type level |
| 17:59:53 | <edinwood> | im not sure what you mean |
| 17:59:59 | <edinwood> | do it all without any type safety |
| 18:00:08 | <edinwood> | the whole process is a typelevel one pretty much |
| 18:00:27 | <edinwood> | and i have enough experience working at typelevel to make that quite straitforwards |
| 18:00:42 | <edinwood> | i dont think much would be gained elsewise, unless i misunderstood what you meant |
| 18:00:45 | <int-e> | Okay. |
| 18:01:27 | <edinwood> | i know its hard to get from the code what this has to do with scanners, except what i just said about sparks |
| 18:01:56 | → | king_gs joins (~Thunderbi@187.201.228.209) |
| 18:02:03 | <edinwood> | but its basically from (\a b -> (c,b)) factoring into (\a b -> c,\a b -> b) |
| 18:02:04 | × | king_gs quits (~Thunderbi@187.201.228.209) (Client Quit) |
| 18:02:19 | <edinwood> | er, i dont know why i wrote those with lambdas, they are just types |
| 18:02:38 | <edinwood> | (a -> b -> (c,b)) factoring into (a -> b -> c,a -> b -> b) |
| 18:02:51 | <edinwood> | i can do the "state transfer" and the "observation" seperately |
| 18:02:51 | <int-e> | Yeah I don't understand it well enough to give concrete advice... (and I guess I'm not really willing to dive into it more deeply) |
| 18:03:03 | <edinwood> | i assume that |
| 18:03:21 | <edinwood> | but im just at the crux of what its actually doing... |
| 18:03:45 | <edinwood> | its supposed to be a program for composing together the observations, while doing the state transfers under the hood |
| 18:03:57 | <edinwood> | since there is just one of those per scanner and they dont compose together at all |
| 18:04:19 | <edinwood> | the whole point is to generate these sparks, so you can scan over your own outputs pretty much |
| 18:04:35 | <edinwood> | idk if i can say anything else... |
| 18:06:19 | <edinwood> | but yeah, i have to take a bunch of scanners seperated into state transfer and observer functions, and handle these seperately, passing all the observations into this program construction and doing all the state transfers under the hood |
| 18:06:33 | <edinwood> | at least, having said that you should be able to uderstand what its actually doing |
| 18:06:35 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 18:08:10 | <edinwood> | some language based extension of SISO scanner compositionality from monoidal on making MIMO scanners, to a graph compositional algebra expressed as a program graph |
| 18:09:02 | <edinwood> | ok ill be back sometime |
| 18:09:03 | × | edinwood quits (~edinwood@109.249.184.205) (Remote host closed the connection) |
| 18:09:50 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 240 seconds) |
| 18:15:51 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 18:16:05 | → | acidjnk joins (~acidjnk@dynamic-046-114-174-017.46.114.pool.telefonica.de) |
| 18:19:40 | × | sympt quits (~sympt@user/sympt) (Read error: Connection reset by peer) |
| 18:20:52 | → | sympt joins (~sympt@user/sympt) |
| 18:27:37 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 18:29:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:30:10 | × | acidjnk quits (~acidjnk@dynamic-046-114-174-017.46.114.pool.telefonica.de) (Ping timeout: 260 seconds) |
| 18:30:54 | × | alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 18:31:09 | → | alexhandy joins (~trace@user/trace) |
| 18:34:24 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 18:35:47 | → | nate4 joins (~nate@98.45.169.16) |
| 18:40:21 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 18:41:15 | × | kraftwerk28 quits (~kraftwerk@178.62.210.83) (Ping timeout: 260 seconds) |
| 18:42:50 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 18:45:12 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 18:46:42 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 18:46:54 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 18:51:05 | <Haskelytic> | when i place a function in backticks like `intercalate` to turn it into infix op, what's the precendence value for it? |
| 18:51:08 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 18:52:05 | <dsal> | It can be specified. |
| 18:52:47 | <dsal> | % :i mod |
| 18:52:47 | <yahb2> | type Integral :: * -> Constraint ; class (Real a, Enum a) => Integral a where ; ... ; mod :: a -> a -> a ; ... ; -- Defined in ‘GHC.Real’ ; infixl 7 `mod` |
| 18:53:04 | <dsal> | % :i intercalate |
| 18:53:04 | <yahb2> | <interactive>:1:1: error: Not in scope: ‘intercalate’ |
| 18:53:11 | <EvanR> | by default it is highest precedence |
| 18:53:23 | → | ns joins (~ns@66-90-198-187.dyn.grandenetworks.net) |
| 18:53:41 | <EvanR> | which is 10 ? |
| 18:53:59 | <int-e> | 9 |
| 18:54:14 | <EvanR> | doh, off by 1 |
| 18:54:33 | int-e | high-fours EvanR. |
| 18:54:42 | <Haskelytic> | EvanR: story of my life |
| 19:00:35 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:01:53 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
| 19:01:54 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 264 seconds) |
| 19:02:26 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 19:03:32 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 19:06:49 | <geekosaur> | % :i Data.List.intercalate |
| 19:06:50 | <yahb2> | base-4.14.3.0:Data.OldList.intercalate :: [a] -> [[a]] -> [a] ; -- Defined in ‘base-4.14.3.0:Data.OldList’ |
| 19:07:01 | <geekosaur> | not shown/specified, so infixl 9 |
| 19:10:44 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 19:10:48 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds) |
| 19:13:05 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 19:13:09 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 19:13:29 | → | Guest1532 joins (~Gambino@user/polo) |
| 19:13:41 | × | Guest1532 quits (~Gambino@user/polo) (Read error: Connection reset by peer) |
| 19:16:21 | → | notzmv joins (~zmv@user/notzmv) |
| 19:18:08 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 19:18:32 | → | polo joins (~Gambino@user/polo) |
| 19:18:56 | × | ix quits (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Quit: WeeChat 3.5) |
| 19:19:02 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 19:19:18 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 19:20:03 | → | ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) |
| 19:20:22 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 19:20:40 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 19:21:46 | → | acidjnk joins (~acidjnk@dynamic-046-114-174-017.46.114.pool.telefonica.de) |
| 19:22:20 | × | polo quits (~Gambino@user/polo) (Client Quit) |
| 19:23:07 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 19:26:13 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 19:33:06 | → | Polo joins (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) |
| 19:33:06 | × | Polo quits (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host) |
| 19:33:06 | → | Polo joins (~Gambino@user/polo) |
| 19:34:43 | → | `2jt joins (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) |
| 19:35:34 | Polo | is now known as money |
| 19:39:10 | → | michalz joins (~michalz@185.246.204.93) |
| 19:40:29 | → | segfaultfizzbuzz joins (~segfaultf@192-184-223-90.static.sonic.net) |
| 19:41:14 | <segfaultfizzbuzz> | so there are several layers of cache hierarchy,... registers, l1, l2, l3, ram, disk (let's including only fast pcie ssds here), network |
| 19:41:43 | <segfaultfizzbuzz> | as a bad programmer, how do i understand how those relate to my code |
| 19:42:07 | <segfaultfizzbuzz> | i also may be missing some layers there |
| 19:42:50 | money | is now known as Polo |
| 19:43:09 | <geekosaur> | you mostly don't care unless you seriously need to eke the very last bit of performance out of your code, and in that case I suspect you're not programming in a higher level language but sticking to C |
| 19:44:09 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:44:19 | × | Polo quits (~Gambino@user/polo) (Read error: Connection reset by peer) |
| 19:45:13 | <segfaultfizzbuzz> | so like the vm/compiler/etc figures out all/most of the fetching? |
| 19:47:02 | <geekosaur> | ideally yes, but you run into various other issues because the higher level the language is, the less low level control it gives you to e.g. fit data (much less instructions) into cache lines |
| 19:47:50 | <geekosaur> | so it's much harder to reason about cache in C++ than in C, never mind Haskell |
| 19:48:15 | <segfaultfizzbuzz> | i can't reason about C++ at all |
| 19:48:22 | <geekosaur> | and don't even bother if it's Java, Scala, Python, Javascript, etc. because those run in virtual machines and you have zero access to that level |
| 19:49:11 | <segfaultfizzbuzz> | cache considerations come down to memory ordering and size of objects? |
| 19:49:17 | <geekosaur> | yes |
| 19:49:20 | <segfaultfizzbuzz> | and that's it? |
| 19:49:28 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 19:49:31 | <jjhoo> | python + numpy? |
| 19:50:03 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 19:50:12 | <geekosaur> | other things you have to worry about are delayed jump slots and how those affect cache usage, but at that point you're either trusting the compiler or writing hand assembler |
| 19:50:25 | <geekosaur> | jjhoo, you're at numpy's mercy there |
| 19:50:47 | <segfaultfizzbuzz> | "delayed jump slot" is fairly equivalent to branch hints? |
| 19:50:54 | <geekosaur> | likewise with something like repa or accelerate in haskell |
| 19:51:47 | <geekosaur> | not exacly. it means you get to execute one more instruction before you branch |
| 19:52:34 | <geekosaur> | which can make it easier to fit into a cache line in the case where you would otherwise have to set a flag, do something, then branch based on the flag |
| 19:52:38 | <geekosaur> | I think |
| 19:52:50 | <geekosaur> | this rapidly gets complex and my EE education didn't quite get that far |
| 19:53:01 | <geekosaur> | also I'm not sure how much of these tricks Intel supports |
| 19:53:04 | <segfaultfizzbuzz> | are there instructions which say what to do with the cache itself, or is that something the CPU handles...? |
| 19:53:08 | <geekosaur> | some of it was RISC |
| 19:53:23 | → | edinwood joins (~edinwood@109.249.184.205) |
| 19:53:33 | <edinwood> | https://paste.tomsmeding.com/DXfHlbOQ |
| 19:53:38 | <geekosaur> | there are |
| 19:53:39 | <edinwood> | now i get a strange type error |
| 19:53:39 | <segfaultfizzbuzz> | can i tag data and say "keep this in L2 cache or L3 cache no matter what you think" for example |
| 19:54:06 | <geekosaur> | I don't think so since it would mess up how anything else being cached was handled |
| 19:54:23 | <Rembane> | segfaultfizzbuzz: IIRC that's up to the CPU, this makes it possible for the people doing the hardware to make even more interesting optimziations. |
| 19:54:30 | <geekosaur> | so you have to just code very carefully to avoid the cache line being evicted to hold something else |
| 19:54:32 | × | ns quits (~ns@66-90-198-187.dyn.grandenetworks.net) (Ping timeout: 248 seconds) |
| 19:54:37 | <segfaultfizzbuzz> | so CPU design dictates cache handling |
| 19:54:47 | × | arjun quits (~arjun@user/arjun) (Remote host closed the connection) |
| 19:54:47 | <edinwood> | i dont think its scoping the types from the constraint properly |
| 19:55:08 | <geekosaur> | I think the limit oof your cache control is saying "evict now" which is typically done by using a jump instead of a branch |
| 19:55:15 | <segfaultfizzbuzz> | "very carefully" means "crap code which will break because an invariant is not made explicit" |
| 19:55:37 | <int-e> | there's prefetching, and there's hints (e.g. something called non-temporal loads that bypass the cache) |
| 19:55:50 | × | kjak quits (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
| 19:56:17 | <Rembane> | Also, the cpu will try to reorder the instructions to make the code faster. Not all cpus, not all the time, but still. |
| 19:56:41 | <geekosaur> | yes. this rapidly gets tricky |
| 19:56:57 | <segfaultfizzbuzz> | wild |
| 19:57:13 | <int-e> | and let's not forget that atomic instructions are also in part about cache control |
| 19:57:33 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Remote host closed the connection) |
| 19:57:48 | <geekosaur> | this kind of thing is also what sank itanium, since that added even more fancies (look up VLIW) and compilers already weren't up to snuff for what already existed, let alone that |
| 19:57:48 | <Rembane> | int-e: How? Tell me more! |
| 19:57:49 | <int-e> | CPUs are messy. It's amazing that they work :P |
| 19:58:00 | <Rembane> | That's why I love CPUs. :D |
| 19:58:01 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 19:58:35 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:58:42 | <edinwood> | should i add the bool to the first class's params? |
| 19:58:57 | <int-e> | Rembane: In an SMP system, you need exclusive access to the corresponding address for the duration of the atomic operation. |
| 19:59:12 | <edinwood> | it can only see things from the rhs of the class => right? |
| 19:59:21 | <hololeap> | @type \f -> fmap f . sequenceA |
| 19:59:23 | <lambdabot> | (Traversable t, Applicative f) => (t a -> b) -> t (f a) -> f b |
| 19:59:28 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit) |
| 19:59:48 | <hololeap> | @type \f -> sequenceA . fmap f |
| 19:59:49 | <lambdabot> | (Traversable t, Applicative f) => (a1 -> f a2) -> t a1 -> f (t a2) |
| 19:59:56 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 20:00:07 | <hololeap> | ok, so the second is traverse. is there a name for the first? |
| 20:00:14 | <edinwood> | im trying to implement subselection of a type annotated list by a proxy list of types |
| 20:00:47 | <Rembane> | int-e: Cool, is this connected to some of the atomicity guarantees that GHC can give? |
| 20:00:55 | <hololeap> | @hoogle (Traversable t, Applicative f) => (t a -> b) -> t (f a) -> f b |
| 20:00:57 | <lambdabot> | No results found |
| 20:01:07 | <edinwood> | during tail recursion i ask if the heads type is in the proxy list, but the typechecker complains about this being asked in 2 different locations |
| 20:01:28 | <edinwood> | saying it cant match them up |
| 20:01:48 | <int-e> | Rembane: well, lock-free data structures and locks depend on this stuff. So... yes... as an implementation detail. |
| 20:02:33 | <Rembane> | int-e: Good. There are turtles all the way down. |
| 20:03:03 | <int-e> | . o O ( I have thought long and hard about this and I've come to the conclusion that modern CPUs cannot work. :-P (Nah, I'm joking. I really haven't thought *too* deeply about this. I am amazed though that we don't have more hardware bugs.) ) |
| 20:04:26 | <int-e> | (And I don't mean stuff like Spectre. That's technically not a bug at all; CPUs don't guarantee constant time execution is all. Too bad it has security implications...) |
| 20:04:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:09:52 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 20:10:41 | <geekosaur> | .oO { f00f bug } |
| 20:11:08 | <geekosaur> | and I used to work in a department where that was people's biggest nightmare |
| 20:11:14 | → | Vajb joins (~Vajb@2001:999:485:209:bc32:5580:b7a6:e68b) |
| 20:11:28 | <segfaultfizzbuzz> | i wonder what fraction of software can be implemented as an asic |
| 20:12:11 | <Rembane> | I would cockily wave my Turing flag around and say all of it, but maybe it wouldn't be useful or a good use of time. |
| 20:12:29 | → | pseigo joins (~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) |
| 20:14:50 | <edinwood> | i extracted the code with the bug to make it easier to read |
| 20:14:50 | <edinwood> | https://paste.tomsmeding.com/W0lmkO1X |
| 20:14:59 | → | pavonia joins (~user@user/siracusa) |
| 20:15:48 | <edinwood> | i cant figure out where it gets all these xs1 type variables from |
| 20:15:56 | <edinwood> | everything is specified as far as i can tell |
| 20:16:15 | → | pleo joins (~pleo@user/pleo) |
| 20:18:06 | <edinwood> | perhaps there is an easyer way to write this... |
| 20:18:26 | <edinwood> | im never sure exactly how many parameters these kinds of classes should take |
| 20:21:12 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 20:25:12 | <segfaultfizzbuzz> | well thanks for the fun discussion cya l8r |
| 20:25:16 | × | segfaultfizzbuzz quits (~segfaultf@192-184-223-90.static.sonic.net) (Quit: segfaultfizzbuzz) |
| 20:26:10 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
| 20:26:13 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:27:28 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 20:29:22 | <monochrom> | The conference-of-rats Aesop fable applies. Every programmer agrees that all software can be made ASIC; furthermore, every programmers agrees that if it is to be done, it should be someone else. >:) |
| 20:29:59 | <Rembane> | monochrom: It's that Spiderman pointing meme. :D |
| 20:31:13 | → | fockerize joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 20:33:40 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:37:43 | → | nate4 joins (~nate@98.45.169.16) |
| 20:39:06 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:39:57 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 20:41:16 | hpc | . o O ( the next circuit editor tool should be called "isual asic" ) |
| 20:41:58 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 20:42:41 | <monochrom> | haha that's a great one |
| 20:43:01 | <geekosaur> | better than "icfb" |
| 20:45:35 | → | mmhat joins (~mmh@p200300f1c70907f9ee086bfffe095315.dip0.t-ipconnect.de) |
| 20:46:44 | <monochrom> | w00t full-stack devop vs front-to-back electronics engineer! |
| 20:47:00 | <edinwood> | dejavu |
| 20:50:51 | <edinwood> | typed list subset anyone? |
| 20:50:57 | → | Polo joins (~Gambino@user/polo) |
| 20:52:38 | × | leah2 quits (~leah@vuxu.org) (Ping timeout: 240 seconds) |
| 20:53:09 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 20:54:24 | × | Polo quits (~Gambino@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:56:04 | × | fockerize quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 20:56:22 | → | ns joins (~ns@66-90-198-187.dyn.grandenetworks.net) |
| 20:56:31 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 21:00:23 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:01:01 | × | quarkyalice_ quits (~alice@user/quarkyalice/x-8092822) (Read error: Connection reset by peer) |
| 21:01:52 | → | quarkyalice_ joins (~alice@user/quarkyalice/x-8092822) |
| 21:02:17 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
| 21:02:37 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:03:01 | → | leah2 joins (~leah@vuxu.org) |
| 21:04:25 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 21:04:58 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 21:05:29 | × | quarkyalice_ quits (~alice@user/quarkyalice/x-8092822) (Read error: Connection reset by peer) |
| 21:06:03 | → | quarkyalice_ joins (~alice@172.77.17.54) |
| 21:06:03 | × | quarkyalice_ quits (~alice@172.77.17.54) (Changing host) |
| 21:06:03 | → | quarkyalice_ joins (~alice@user/quarkyalice/x-8092822) |
| 21:06:22 | → | lisk1n joins (~liskin@xmonad/liskin) |
| 21:07:39 | × | liskin quits (~liskin@xmonad/liskin) (Ping timeout: 244 seconds) |
| 21:09:27 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed) |
| 21:11:10 | × | ns quits (~ns@66-90-198-187.dyn.grandenetworks.net) (Ping timeout: 240 seconds) |
| 21:13:18 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 21:14:04 | → | ns joins (~ns@66-90-198-187.dyn.grandenetworks.net) |
| 21:19:53 | → | lainon joins (~lainon@c-68-46-201-40.hsd1.al.comcast.net) |
| 21:20:29 | → | causal joins (~user@50.35.83.177) |
| 21:30:37 | × | acidjnk quits (~acidjnk@dynamic-046-114-174-017.46.114.pool.telefonica.de) (Ping timeout: 256 seconds) |
| 21:32:10 | <edinwood> | i cant even tell why its throwing that error... |
| 21:32:18 | × | ns quits (~ns@66-90-198-187.dyn.grandenetworks.net) (Ping timeout: 240 seconds) |
| 21:32:21 | <edinwood> | https://paste.tomsmeding.com/W0lmkO1X |
| 21:32:45 | × | leah2 quits (~leah@vuxu.org) (Ping timeout: 260 seconds) |
| 21:33:23 | × | quarkyalice_ quits (~alice@user/quarkyalice/x-8092822) (Remote host closed the connection) |
| 21:33:57 | → | quarkyalice_ joins (~alice@172.77.17.54) |
| 21:33:57 | × | quarkyalice_ quits (~alice@172.77.17.54) (Changing host) |
| 21:33:57 | → | quarkyalice_ joins (~alice@user/quarkyalice/x-8092822) |
| 21:36:30 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 21:38:46 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 21:43:12 | × | `2jt quits (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Ping timeout: 276 seconds) |
| 21:43:51 | × | quarkyalice_ quits (~alice@user/quarkyalice/x-8092822) (Ping timeout: 276 seconds) |
| 21:44:24 | → | ns joins (~ns@66-90-198-187.dyn.grandenetworks.net) |
| 21:48:59 | → | leah2 joins (~leah@vuxu.org) |
| 21:50:30 | × | pseigo quits (~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Ping timeout: 264 seconds) |
| 21:56:37 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds) |
| 22:00:37 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 22:01:42 | → | quarkyalice joins (~alice@50-107-9-193.plcd.ca.frontiernet.net) |
| 22:01:42 | × | quarkyalice quits (~alice@50-107-9-193.plcd.ca.frontiernet.net) (Changing host) |
| 22:01:42 | → | quarkyalice joins (~alice@user/quarkyalice) |
| 22:02:20 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 22:03:04 | → | pseigo joins (~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) |
| 22:06:35 | → | yax__ joins (~yax__@user/yax/x-9576643) |
| 22:09:05 | × | yax__ quits (~yax__@user/yax/x-9576643) (Client Quit) |
| 22:10:18 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 22:11:46 | <edinwood> | i tried hacking away at it, and have isolated the error... |
| 22:11:46 | <edinwood> | https://paste.tomsmeding.com/qFTfCwLz |
| 22:12:14 | <edinwood> | same error, no idea why it rejects the variables, im guessing it somehow fails to do the same calculation twice or something... |
| 22:13:15 | × | pseigo quits (~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Changing host) |
| 22:13:15 | → | pseigo joins (~pseigo@user/pseigo) |
| 22:15:35 | <hololeap> | hm, how would I do this (using megaparsec): parse a string using `(++) <$> some (satisfy f) <*> many (satisfy g)` , check if that string satisfies another Parsec , branch depending on if that second Parsec parser succeeds |
| 22:16:35 | <hololeap> | maybe some trick using lookAhead |
| 22:18:40 | → | yax__ joins (~yax__@user/yax/x-9576643) |
| 22:22:31 | <edinwood> | i guess i could try to implement it with typelevel filter |
| 22:24:18 | <edinwood> | hmm, that actually sounds even more complicated |
| 22:24:57 | <edinwood> | i dont want to have to pass somehow defunctionalised type familes as arguments on how to filter the type list |
| 22:25:55 | × | lisk1n quits (~liskin@xmonad/liskin) (Quit: lisk1n) |
| 22:26:12 | → | liskin joins (~liskin@xmonad/liskin) |
| 22:27:35 | × | pleo quits (~pleo@user/pleo) (Quit: quit) |
| 22:30:04 | × | michalz quits (~michalz@185.246.204.93) (Remote host closed the connection) |
| 22:33:50 | <monochrom> | hololeap: I am not sure that there is a general solution other than the Turing-tarpit solution. |
| 22:34:03 | × | atwm quits (~atwm@81.28.193.19) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:39:07 | <hololeap> | tarpit it is, then |
| 22:40:34 | <monochrom> | You can always do an inner "case runParser xxx yyy of Left err -> empty; Right a -> continue with a" |
| 22:40:53 | × | ns quits (~ns@66-90-198-187.dyn.grandenetworks.net) (Ping timeout: 256 seconds) |
| 22:48:17 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 22:48:17 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 22:48:17 | × | califax quits (~califax@user/califx) (Write error: Connection reset by peer) |
| 22:48:17 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Read error: Connection reset by peer) |
| 22:48:18 | × | winny quits (~weechat@user/winny) (Read error: Connection reset by peer) |
| 22:48:36 | → | califax joins (~califax@user/califx) |
| 22:48:39 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 22:49:00 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 22:49:07 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 22:49:11 | → | winny joins (~weechat@user/winny) |
| 22:53:15 | <hololeap> | good thing there's QuickCheck |
| 22:53:30 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 22:54:01 | <edinwood> | its a "complicated human interface that requires detailed input" ? |
| 22:54:32 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-09e4-c1eb-6da4-2a7c.res6.spectrum.com) (Ping timeout: 255 seconds) |
| 22:57:13 | → | Guest33 joins (~Guest33@2402:e280:3e30:264:d487:a154:9648:25a) |
| 22:57:15 | <hololeap> | I might as well just show what I'm trying to solve |
| 22:57:27 | <yax__> | mhm |
| 22:58:28 | ← | Guest33 parts (~Guest33@2402:e280:3e30:264:d487:a154:9648:25a) () |
| 22:59:02 | × | Tuplanolla quits (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:59:28 | <hololeap> | trying to write a parser for this: https://projects.gentoo.org/pms/8/pms.html#x1-180003.1.2 |
| 22:59:55 | <hololeap> | "and must not end in a hyphen followed by anything matching the version syntax described in section 3.2." |
| 23:00:13 | <hololeap> | is the part that is tricky |
| 23:00:23 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 23:01:53 | <monochrom> | So wait, I can have "_0123" as a package name? :) |
| 23:02:01 | <hololeap> | yessir |
| 23:02:56 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) (Remote host closed the connection) |
| 23:02:59 | <hololeap> | so "cat-name/pkg-7-name-0.1.2" needs to be parsed as (Package (Category "cat-name") (PkgName "pkg-7-name") (Just (Version "0.1.2"))) |
| 23:03:25 | <hololeap> | but "cat-name/pkg-name-7-0.1.2" needs to fail |
| 23:04:30 | <hololeap> | I tested my more naive parser against all the installed packages on my system, and it passed on every one except "dev-java/log4j-12-api-2.17.2" |
| 23:04:46 | <hololeap> | so now I'm trying to follow the spec |
| 23:06:05 | <hololeap> | btw, I'm using a lib that I wrote that builds off of megaparsec, but is supposed to help compose smaller parsers into larger ones |
| 23:07:11 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-4c93-2912-ff7c-8bcd.res6.spectrum.com) |
| 23:09:54 | <hololeap> | here's the lib: https://github.com/hololeap/cabal-portage/blob/main/parsable/src/Data/Parsable.hs |
| 23:10:38 | <hololeap> | and here's the abomination I'm trying to write: https://github.com/hololeap/cabal-portage/blob/main/portage-hs/src/Distribution/Portage/Types.hs#L81-L123 |
| 23:10:59 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 23:11:30 | × | xdej quits (~xdej@quatramaran.salle-s.org) (Ping timeout: 240 seconds) |
| 23:13:18 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 23:14:50 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:38a1:df0f:1ea3:e329) |
| 23:15:00 | → | ns joins (~ns@66-90-198-187.dyn.grandenetworks.net) |
| 23:15:29 | → | NaturalNumber joins (~monadam@137.229.82.64) |
| 23:15:50 | <edinwood> | ah, line 35 was wrong |
| 23:15:58 | × | yax__ quits (~yax__@user/yax/x-9576643) (Quit: Lost terminal) |
| 23:16:10 | <ns> | hi, I tried the Windows installation commands given on the page shown above. After fixing an error due to the GroupPolicy settings not allowing policy overrides, the command sequence executes but then immediately closes the powershell window (with AFICT no error message). According to the youtube video, its supposed to then allow you to do some |
| 23:16:11 | <ns> | further steps. (Just to confirm, it wasn't installed on C:). I am running Powershell v 5.1 on Windows 10 |
| 23:21:31 | × | ns quits (~ns@66-90-198-187.dyn.grandenetworks.net) (Quit: Connection closed) |
| 23:24:25 | → | yax__ joins (~yax__@user/yax/x-9576643) |
| 23:26:32 | × | NaturalNumber quits (~monadam@137.229.82.64) (Quit: Leaving) |
| 23:26:57 | → | NaturalNumber joins (~monadam@137.229.82.64) |
| 23:27:17 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 23:28:58 | <texasmynsted> | does anybody happen to know if stache or any of the other haskell templating modules allow for the ability to change the delimiters? |
| 23:29:11 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
| 23:29:48 | <monochrom> | hololeap: I'm back. So this is where people are right to find regexes easier to use (they say "powerful" but that's vague as usual) and subsequently design grammars friendly to regexes but unfriendly to LL(k) parsers. |
| 23:29:59 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 23:30:12 | <texasmynsted> | hmm. looks like stache might allow thos. |
| 23:30:17 | <texasmynsted> | s/thos/this/ |
| 23:30:26 | → | nate4 joins (~nate@98.45.169.16) |
| 23:30:27 | <texasmynsted> | https://hackage.haskell.org/package/stache-2.3.3/src/specification/delimiters.yml |
| 23:30:35 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 23:32:00 | × | yax__ quits (~yax__@user/yax/x-9576643) (Quit: Lost terminal) |
| 23:32:13 | <monochrom> | Take for example this toy regex, (0|1)*11001, which captures the most difficult aspect of your problem. There is a "1st part" (0|1)* which pretends to be unrestricted, and then a "2nd part" 11001 which annoyingly is a subset of the 1st part. There is pretty genuine ambiguity there. |
| 23:32:50 | <texasmynsted> | sigh so dislike regexps |
| 23:33:25 | <monochrom> | Someone has to resolve that ambiguity and find out the hard way when the input string is like 110001100011011001 where to split it. |
| 23:34:38 | <monochrom> | A regex engine solves it by either insane backtracking or insane converting an NFA to a DFA (incurs an exponential blowup). |
| 23:35:33 | <monochrom> | That either backtracking or an NFA is involves justifies my saying that there is a pretty genuine ambiguity in the regex example. |
| 23:36:41 | <monochrom> | Now, parsec and megaparsec discourages both backtracking and ambiguity. Although Turing-complete in theory, idiomatic uses are basically LL(1). |
| 23:37:01 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 23:37:51 | <monochrom> | If you use them, you have to code up by hand the same backtracking and/or lookAhead and/or converting NFA to DFA. |
| 23:37:55 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 23:38:10 | <monochrom> | At this point I might recommend using a regex library instead. |
| 23:38:12 | × | tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Ping timeout: 246 seconds) |
| 23:39:18 | <monochrom> | texasmynsted: This is not dislike of regexes. |
| 23:39:50 | <texasmynsted> | fair enough |
| 23:39:52 | <hololeap> | fair, but I spent a lot of time writing that lib, and I'm very reluctant to switch to a different parsing lib just for this one case |
| 23:39:53 | <texasmynsted> | good luck |
| 23:40:17 | <monochrom> | This is technical analysis and pursuit of truth. |
| 23:40:54 | <hololeap> | but, yeah, I had a feeling this would be easier using regexes |
| 23:41:34 | <hololeap> | luckily, I have a solid test suite set up so I can just hack away until it all passes |
| 23:42:57 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 23:43:08 | <edinwood> | well i did not expect that would take all day |
| 23:43:11 | → | tcard joins (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) |
| 23:43:16 | <edinwood> | https://paste.tomsmeding.com/OuDgQBe0 |
| 23:44:04 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 23:44:09 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 23:44:17 | <edinwood> | :t scope3 scope3 :: Scope '["hello", "world"] |
| 23:44:18 | <lambdabot> | error: |
| 23:44:18 | <lambdabot> | Not in scope: type constructor or class ‘Scope’ |
| 23:44:27 | <edinwood> | oops, sorry lambdabot |
| 23:44:59 | <monochrom> | My regex example can be shoehorned into parsec by something like: many (zero <|> (one `notFollwedBy` one_zero_zero_one) >> one_one_zero_zero_one. This is a lot of backtracking. |
| 23:45:17 | <monochrom> | (And also pretty fragile.) |
| 23:46:20 | <edinwood> | now i can unasign variables! woop! garbage collection enabled |
| 23:47:05 | <edinwood> | hmm, i hadnt planned on what to do next... netflix time! |
| 23:47:41 | <edinwood> | im sure some other version of me will try to do whatever it was that i needed this for again at some point, and now it is done... |
| 23:48:19 | <edinwood> | i thought by this point id be the benefactor of such things previously, but i just have a half a million disorganised .hs files |
| 23:48:30 | <edinwood> | some of which are not eve .hs files! |
| 23:49:26 | <edinwood> | speaking of garbage... im sure its worth mining for code snippets, but i dont have that infrastructure |
| 23:49:37 | × | quarkyalice quits (~alice@user/quarkyalice) (Quit: Leaving) |
| 23:50:07 | <edinwood> | maybe some genetic algorithm could be trained to produce insane half finished haskell projects |
| 23:50:24 | <geekosaur> | isn't that microsoft's new thing? |
| 23:50:32 | → | quarkyalice joins (~alice@50-107-9-193.plcd.ca.frontiernet.net) |
| 23:50:32 | × | quarkyalice quits (~alice@50-107-9-193.plcd.ca.frontiernet.net) (Changing host) |
| 23:50:32 | → | quarkyalice joins (~alice@user/quarkyalice) |
| 23:50:49 | <edinwood> | yeah, i was just feeling somewhat "our friends electric" for a second there |
| 23:51:35 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 260 seconds) |
| 23:52:44 | <edinwood> | im sure microsoft has plenty of new things mind |
| 23:52:55 | <hololeap> | I knew they would eventually do that when they bought github |
| 23:53:03 | <geekosaur> | copilot |
| 23:53:10 | <hololeap> | "look guys, free code!" |
| 23:53:17 | <edinwood> | where!!? |
| 23:53:30 | <Bulby[m]> | Where?!? |
| 23:53:31 | <Bulby[m]> | dang it |
| 23:54:30 | <edinwood> | over there, next to the free lunch |
| 23:54:37 | → | zebrag joins (~chris@user/zebrag) |
| 23:54:41 | <pragma-> | if it's free it's probably defective |
| 23:54:45 | <edinwood> | (i have a half finished algorithm which produces those) |
| 23:55:20 | <edinwood> | pragma- : this offends my religious sensibilities |
| 23:55:37 | hololeap | hides the free monads |
| 23:55:41 | <edinwood> | lol |
| 23:55:55 | <edinwood> | i only eat burritos!? |
| 23:56:02 | pragma- | slaps a $10,000 price tag on his code to convince corporations that his code is strong |
| 23:56:35 | <edinwood> | freegan |
| 23:56:49 | <edinwood> | its like a big self replicating cyclic machine |
| 23:57:18 | <edinwood> | scottish people shouting "FREEEDAG!!!" |
| 23:57:55 | <edinwood> | i dont evern want to know what a freedom is... |
| 23:58:50 | → | Guest7586 joins (~Gambino@user/polo) |
| 23:59:57 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
All times are in UTC on 2022-07-02.