2022-01-03 00:01:30 +0100 | <Hecate> | __monty__, geekosaur, could I ask you to take a look at this writeup that introduces Flora? https://github.com/flora-pm/flora-server/wiki/What-is-Flora |
2022-01-03 00:01:31 +0100 | juhp[m] | (~juhpmatri@2001:470:69fc:105::6e9) |
2022-01-03 00:01:31 +0100 | moats | (~oats@user/oats) |
2022-01-03 00:01:39 +0100 | <Hecate> | I'm trying to clarify my thoughts :P |
2022-01-03 00:01:43 +0100 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2022-01-03 00:01:43 +0100 | quantum | (~quantum@user/quantum/x-8556232) |
2022-01-03 00:01:57 +0100 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2022-01-03 00:01:57 +0100 | finalti[m] | (~finaltima@2001:470:69fc:105::d909) |
2022-01-03 00:01:57 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) |
2022-01-03 00:01:57 +0100 | Deide | (~deide@user/deide) |
2022-01-03 00:01:57 +0100 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2022-01-03 00:01:58 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
2022-01-03 00:01:58 +0100 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2022-01-03 00:01:58 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2022-01-03 00:01:58 +0100 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
2022-01-03 00:02:10 +0100 | Magnus[m] | (~magthetch@2001:470:69fc:105::d1a7) |
2022-01-03 00:02:10 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2022-01-03 00:02:22 +0100 | SawyerBergeron[m | (~sawyerber@2001:470:69fc:105::3036) |
2022-01-03 00:02:22 +0100 | alex[m] | (~alexchete@2001:470:69fc:105::1:1001) |
2022-01-03 00:02:22 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
2022-01-03 00:02:23 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2022-01-03 00:02:23 +0100 | DemiMarieObenour | (~alwayscur@2001:470:69fc:105::4886) |
2022-01-03 00:02:23 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) |
2022-01-03 00:02:35 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2022-01-03 00:02:49 +0100 | nomeata | (~nomeatama@2001:470:69fc:105::1:5ed4) |
2022-01-03 00:02:49 +0100 | jinsun_ | (~jinsun@user/jinsun) |
2022-01-03 00:02:49 +0100 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2022-01-03 00:03:03 +0100 | fcortesi | (~fcortesi@2001:470:69fc:105::f3a9) |
2022-01-03 00:03:16 +0100 | pfurla-matrix | (~pedrofurl@2001:470:69fc:105::1:51d7) |
2022-01-03 00:04:06 +0100 | <geekosaur> | seems ok to me. might be better to ask angerman since he was the one confused about it |
2022-01-03 00:04:37 +0100 | <geekosaur> | hm, except we lost him during the late unpleasantness |
2022-01-03 00:07:19 +0100 | nhs | (~nhs@136.49.226.20) (Quit: leaving) |
2022-01-03 00:07:34 +0100 | nhs | (~nhs@136.49.226.20) |
2022-01-03 00:07:42 +0100 | nhs | (~nhs@136.49.226.20) (Client Quit) |
2022-01-03 00:08:26 +0100 | nhs | (~nhs@136.49.226.20) |
2022-01-03 00:09:22 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 00:13:51 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 00:14:12 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2022-01-03 00:15:04 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-03 00:16:36 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 00:16:50 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-03 00:17:57 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-01-03 00:19:36 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) |
2022-01-03 00:22:00 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-01-03 00:22:00 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 00:24:03 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) (Ping timeout: 256 seconds) |
2022-01-03 00:25:52 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 00:26:15 +0100 | x_kuru_ | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-01-03 00:30:17 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 240 seconds) |
2022-01-03 00:31:52 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-01-03 00:35:09 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 00:36:37 +0100 | duuude | (~user@user/duuude) (Ping timeout: 240 seconds) |
2022-01-03 00:38:40 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 00:42:02 +0100 | sagax | (~sagax_nb@user/sagax) (Excess Flood) |
2022-01-03 00:42:13 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2022-01-03 00:42:29 +0100 | xff0x_ | (~xff0x@2001:1a81:5335:ab00:175a:eec8:110f:8c7e) (Ping timeout: 250 seconds) |
2022-01-03 00:43:34 +0100 | xff0x_ | (~xff0x@2001:1a81:5335:ab00:6ff0:ac84:9d3f:2b35) |
2022-01-03 00:44:57 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 00:45:32 +0100 | xff0x_ | xff0x |
2022-01-03 00:51:53 +0100 | max22- | (~maxime@2a01cb08833598000dfdedebd194573b.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2022-01-03 00:52:11 +0100 | vysn | (~vysn@user/vysn) |
2022-01-03 00:52:55 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
2022-01-03 01:00:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 01:03:01 +0100 | <lagash_> | timCF: that sounds like Briar to me.. |
2022-01-03 01:03:15 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 01:05:11 +0100 | sabbas | (~sabbas@user/sabbas) (Quit: leaving) |
2022-01-03 01:07:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2022-01-03 01:10:05 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 01:14:00 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-01-03 01:16:18 +0100 | burnside_ | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-03 01:17:03 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 01:17:34 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection) |
2022-01-03 01:17:50 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 01:17:50 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 01:17:50 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 01:19:01 +0100 | <__monty__> | I'll take a look tomorrow, Hecate. |
2022-01-03 01:19:16 +0100 | TonyStone | (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) |
2022-01-03 01:19:23 +0100 | <__monty__> | I'm sure angerman just logged out and will be back tomorrow/soon : ) |
2022-01-03 01:22:33 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 01:25:17 +0100 | foul_owl | (~kerry@97-126-11-68.tukw.qwest.net) (Ping timeout: 240 seconds) |
2022-01-03 01:28:37 +0100 | ouestbillie | desproges |
2022-01-03 01:32:16 +0100 | desproges | (~gallup@192-222-138-215.qc.cable.ebox.net) (Quit: leaving) |
2022-01-03 01:32:36 +0100 | ouestbillie | (~gallup@192-222-138-215.qc.cable.ebox.net) |
2022-01-03 01:33:17 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 01:36:44 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-01-03 01:38:59 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 256 seconds) |
2022-01-03 01:40:10 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 01:40:47 +0100 | foul_owl | (~kerry@94.140.8.107) |
2022-01-03 01:41:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 01:41:49 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2022-01-03 01:42:16 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4) |
2022-01-03 01:43:20 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-01-03 01:44:41 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 250 seconds) |
2022-01-03 01:46:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2022-01-03 01:46:19 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) |
2022-01-03 01:47:09 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-03 01:48:58 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 01:53:35 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2022-01-03 01:56:29 +0100 | Bartol | (~Bartol@user/Bartol) |
2022-01-03 01:57:51 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 01:58:28 +0100 | Bartol | (~Bartol@user/Bartol) (Remote host closed the connection) |
2022-01-03 02:00:12 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-03 02:01:42 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-01-03 02:05:25 +0100 | califax | (~califax@user/califx) |
2022-01-03 02:10:02 +0100 | jijimofo | (~cmo@S010610561191f5d6.lb.shawcable.net) |
2022-01-03 02:12:37 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 02:13:33 +0100 | <jijimofo> | does anyone know where i can get an explanation of the types opencv uses? eg 'Proxy :: Proxy 3'. So 3 is a type level nat? |
2022-01-03 02:14:14 +0100 | <geekosaur> | yes |
2022-01-03 02:14:30 +0100 | <jijimofo> | ok so what i should be looking at is type families? |
2022-01-03 02:14:43 +0100 | <geekosaur> | depends on what's using that |
2022-01-03 02:15:48 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 02:18:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 02:18:54 +0100 | kaph_ | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
2022-01-03 02:18:55 +0100 | kaph_ | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Remote host closed the connection) |
2022-01-03 02:20:47 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 256 seconds) |
2022-01-03 02:21:55 +0100 | kaph | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
2022-01-03 02:22:26 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 245 seconds) |
2022-01-03 02:24:17 +0100 | ensyde | (~ensyde@2600:1702:2e30:1a40:c809:1c51:d4e7:3d0a) |
2022-01-03 02:24:45 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) |
2022-01-03 02:25:13 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 02:25:13 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 02:25:13 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 02:28:48 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 02:29:02 +0100 | geranim0 | (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
2022-01-03 02:32:13 +0100 | acidjnk | (~acidjnk@p200300d0c7271e70c580124c5fb62625.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-03 02:32:13 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e70c580124c5fb62625.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-03 02:38:18 +0100 | drewr | (~drew@user/drewr) (Quit: ERC (IRC client for Emacs 27.2)) |
2022-01-03 02:40:22 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-01-03 02:51:07 +0100 | jijimofo | (~cmo@S010610561191f5d6.lb.shawcable.net) (Quit: Leaving) |
2022-01-03 02:51:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2022-01-03 02:52:54 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 02:53:19 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 02:57:17 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 240 seconds) |
2022-01-03 03:01:41 +0100 | fef | (~thedawn@user/thedawn) |
2022-01-03 03:09:46 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 03:12:01 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:20:28 +0100 | califax- | (~califax@user/califx) |
2022-01-03 03:21:11 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 03:24:27 +0100 | califax | (~califax@user/califx) (Ping timeout: 276 seconds) |
2022-01-03 03:24:28 +0100 | califax- | califax |
2022-01-03 03:27:03 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) (Ping timeout: 276 seconds) |
2022-01-03 03:28:57 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds) |
2022-01-03 03:29:11 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) |
2022-01-03 03:34:32 +0100 | neurocyte6 | (~neurocyte@IP-212232081017.dynamic.medianet-world.de) |
2022-01-03 03:34:32 +0100 | neurocyte6 | (~neurocyte@IP-212232081017.dynamic.medianet-world.de) (Changing host) |
2022-01-03 03:34:32 +0100 | neurocyte6 | (~neurocyte@user/neurocyte) |
2022-01-03 03:36:43 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:36:46 +0100 | neurocyte | (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds) |
2022-01-03 03:36:46 +0100 | neurocyte6 | neurocyte |
2022-01-03 03:36:57 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:37:05 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:37:20 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:37:26 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:37:41 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:37:48 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:38:01 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:38:09 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:38:23 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:38:31 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:38:44 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:38:52 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:39:07 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:39:15 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:39:21 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 03:39:29 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:39:36 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:39:49 +0100 | xff0x | (~xff0x@2001:1a81:5335:ab00:6ff0:ac84:9d3f:2b35) (Ping timeout: 240 seconds) |
2022-01-03 03:39:50 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:39:58 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:40:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:40:21 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:40:35 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:40:43 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:40:56 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:41:04 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:41:19 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:41:27 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:41:43 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:41:44 +0100 | xff0x | (~xff0x@2001:1a81:5370:9b00:cd1d:3c45:12cd:b91e) |
2022-01-03 03:41:50 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:41:53 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
2022-01-03 03:42:04 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:42:11 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:42:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:42:36 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:42:50 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:42:58 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:43:12 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:43:20 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:43:37 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:43:44 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:43:58 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 03:44:06 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-03 03:46:05 +0100 | gaff | (~gaff@49.207.198.138) |
2022-01-03 03:47:04 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 03:48:17 +0100 | gaff | (~gaff@49.207.198.138) (Read error: Connection reset by peer) |
2022-01-03 03:48:21 +0100 | gaff_ | (~gaff@49.207.198.138) |
2022-01-03 03:51:50 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-01-03 03:52:09 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 256 seconds) |
2022-01-03 03:53:06 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4) |
2022-01-03 03:55:48 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-01-03 04:03:21 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 256 seconds) |
2022-01-03 04:04:45 +0100 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-01-03 04:08:54 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-01-03 04:12:49 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 04:14:34 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 04:16:40 +0100 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-01-03 04:16:59 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:d903:d876:1354:7b4c) (Ping timeout: 250 seconds) |
2022-01-03 04:17:31 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 04:18:04 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:df45:34e6:a5aa:758) |
2022-01-03 04:19:21 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-01-03 04:21:46 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 04:27:45 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 04:32:57 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 256 seconds) |
2022-01-03 04:37:44 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 252 seconds) |
2022-01-03 04:39:53 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 04:43:11 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2022-01-03 04:44:43 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-01-03 04:46:19 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-03 04:47:14 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-01-03 04:47:14 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-01-03 04:47:14 +0100 | finn_elija | FinnElija |
2022-01-03 04:48:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 04:50:57 +0100 | td__ | (~td@muedsl-82-207-238-078.citykom.de) (Ping timeout: 256 seconds) |
2022-01-03 04:51:26 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Remote host closed the connection) |
2022-01-03 04:52:33 +0100 | perrierjouet | (~perrier-j@185.128.26.174) |
2022-01-03 04:52:55 +0100 | td_ | (~td@94.134.91.188) |
2022-01-03 04:53:41 +0100 | neverwas | (jpneverwas@swissbox.unperson.link) (Ping timeout: 252 seconds) |
2022-01-03 04:54:27 +0100 | neverwas | (jpneverwas@swissbox.unperson.link) |
2022-01-03 04:57:39 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-01-03 04:59:29 +0100 | antanananananas | (~antanas@78-63-84-180.static.zebra.lt) |
2022-01-03 05:00:09 +0100 | perrierjouet | (~perrier-j@185.128.26.174) (Ping timeout: 256 seconds) |
2022-01-03 05:01:02 +0100 | antanananananas | (~antanas@78-63-84-180.static.zebra.lt) () |
2022-01-03 05:01:02 +0100 | antanananananas | (~antanas@78-63-84-180.static.zebra.lt) |
2022-01-03 05:02:32 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 05:04:10 +0100 | antanananananas | (~antanas@78-63-84-180.static.zebra.lt) (Quit: Lost terminal) |
2022-01-03 05:12:34 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) (Quit: Client limit exceeded: 20000) |
2022-01-03 05:12:34 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 05:15:19 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 05:20:23 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 05:21:53 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 05:22:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2022-01-03 05:23:39 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 05:23:39 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 05:23:39 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 05:23:53 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
2022-01-03 05:25:23 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 05:26:17 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 240 seconds) |
2022-01-03 05:27:57 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2022-01-03 05:28:29 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 05:35:43 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-01-03 05:37:58 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 05:41:07 +0100 | Everything | (~Everythin@37.115.210.35) (Quit: leaving) |
2022-01-03 05:42:34 +0100 | dsamperi | (~dsamperi@2603-7000-3b42-5400-f0e5-670e-3c83-ae24.res6.spectrum.com) |
2022-01-03 05:42:45 +0100 | dsamperi | (~dsamperi@2603-7000-3b42-5400-f0e5-670e-3c83-ae24.res6.spectrum.com) (Client Quit) |
2022-01-03 05:43:05 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 256 seconds) |
2022-01-03 05:43:10 +0100 | ormaaj | (~ormaaj@user/ormaaj) |
2022-01-03 05:44:03 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 05:44:55 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
2022-01-03 05:45:01 +0100 | sabx | (~sabbas@user/sabbas) |
2022-01-03 05:45:26 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-01-03 05:45:57 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) |
2022-01-03 05:54:37 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
2022-01-03 05:55:07 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-01-03 05:56:46 +0100 | vglfr | (~vglfr@46.96.180.119) |
2022-01-03 05:56:46 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 05:58:55 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-01-03 06:02:24 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2022-01-03 06:02:32 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2022-01-03 06:05:57 +0100 | ksqsf | (~user@134.209.106.31) |
2022-01-03 06:06:08 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 06:06:08 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 06:06:08 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 06:06:46 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-01-03 06:10:59 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 06:13:10 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 06:16:05 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 06:16:12 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 06:21:03 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-01-03 06:27:14 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Changing host) |
2022-01-03 06:27:14 +0100 | maerwald[m] | (~maerwaldm@user/maerwald) |
2022-01-03 06:29:30 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 06:47:46 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 06:48:57 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) (Ping timeout: 256 seconds) |
2022-01-03 06:58:50 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 06:59:12 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) |
2022-01-03 07:07:10 +0100 | falafel | (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) |
2022-01-03 07:07:24 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
2022-01-03 07:09:47 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2022-01-03 07:10:24 +0100 | falafel_ | (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) |
2022-01-03 07:11:09 +0100 | shriekingnoise_ | (~shrieking@186.137.144.80) (Quit: Quit) |
2022-01-03 07:12:57 +0100 | falafel | (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-03 07:15:46 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 07:19:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 07:20:02 +0100 | sirlensalot | (~sirlensal@ool-44c5f8c9.dyn.optonline.net) (Quit: sirlensalot) |
2022-01-03 07:20:28 +0100 | off^ | (~off@207.5.21.20) |
2022-01-03 07:27:13 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 07:27:45 +0100 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-01-03 07:28:58 +0100 | rembo10 | (~rembo10@remulis.com) |
2022-01-03 07:32:21 +0100 | kaph | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
2022-01-03 07:40:17 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds) |
2022-01-03 07:43:36 +0100 | off^ | (~off@207.5.21.20) (Remote host closed the connection) |
2022-01-03 07:45:20 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 07:50:05 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 07:53:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2022-01-03 08:04:37 +0100 | falafel_ | (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-03 08:06:28 +0100 | falafel_ | (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) |
2022-01-03 08:07:52 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 08:07:57 +0100 | coolnickname | (uid531864@user/coolnickname) |
2022-01-03 08:11:07 +0100 | gaff_ | (~gaff@49.207.198.138) (Ping timeout: 256 seconds) |
2022-01-03 08:12:43 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 08:13:05 +0100 | <mjrosenb> | is this a good place to ask about hie-bios? |
2022-01-03 08:13:06 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) |
2022-01-03 08:16:34 +0100 | <mjrosenb> | I'm trying to follow the directions that they gave for ignoring directories in hie.yaml |
2022-01-03 08:16:45 +0100 | <mjrosenb> | but tha isn't working; I'm getting yaml errors. |
2022-01-03 08:17:14 +0100 | <mjrosenb> | InvalidYaml (Just (YamlException "Duplicate keys are not allowed, found: [[Key \"cradle\",Key |
2022-01-03 08:17:17 +0100 | <mjrosenb> | \"multi\",Index 1,Key \"config\"]]")) |
2022-01-03 08:17:20 +0100 | <mjrosenb> | InvalidYaml (Just (YamlException "Duplicate keys are not allowed, found: [[Key \"cradle\",Key |
2022-01-03 08:17:23 +0100 | <mjrosenb> | \"multi\",Index 1,Key \"config\"]]")) |
2022-01-03 08:17:38 +0100 | <mjrosenb> | whoops, didn't mean to paste it twice. |
2022-01-03 08:19:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 08:20:20 +0100 | spaceseller | (~spacesell@31.147.205.13) |
2022-01-03 08:25:47 +0100 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2022-01-03 08:26:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2022-01-03 08:27:27 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 250 seconds) |
2022-01-03 08:28:48 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 08:29:37 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) (Ping timeout: 240 seconds) |
2022-01-03 08:30:21 +0100 | whatif | (~user@47.245.54.240) |
2022-01-03 08:30:57 +0100 | <whatif> | why State a a can't be print? |
2022-01-03 08:31:19 +0100 | <[exa]> | mjrosenb: always better be sure with pastebin :D anyway can you pastebin the relevant snippets of the config? |
2022-01-03 08:31:25 +0100 | <whatif> | Maybe is an instance of Show, and why State isn't? |
2022-01-03 08:31:28 +0100 | <[exa]> | whatif: because it's internally a function |
2022-01-03 08:31:39 +0100 | <[exa]> | and it's very hard to print functions |
2022-01-03 08:32:31 +0100 | <whatif> | [exa]: State a b is a function? |
2022-01-03 08:32:32 +0100 | <[exa]> | technically, you'd need to construct something like `instance Show (a -> (a,a))` |
2022-01-03 08:32:42 +0100 | <[exa]> | yes |
2022-01-03 08:32:49 +0100 | <[exa]> | though wrapped |
2022-01-03 08:33:10 +0100 | <whatif> | :t State |
2022-01-03 08:33:10 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 08:33:11 +0100 | <lambdabot> | error: |
2022-01-03 08:33:11 +0100 | <lambdabot> | • Data constructor not in scope: State |
2022-01-03 08:33:11 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2022-01-03 08:33:13 +0100 | <[exa]> | see e.g. here, a non-transformer version of State: https://hackage.haskell.org/package/containers-0.6.5.1/docs/Data-Sequence-Internal.html#t:State |
2022-01-03 08:33:40 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 08:33:57 +0100 | <[exa]> | `State s a` is a datatype with a single field of type `s -> (a,s)` |
2022-01-03 08:34:06 +0100 | <[exa]> | (or (s,a), depending on author's preferences) |
2022-01-03 08:34:38 +0100 | <[exa]> | the stateful computation is internally modelled as a function that takes old state and produces new state + the "result" |
2022-01-03 08:34:54 +0100 | <xsperry> | in other words, Show instance of state couldn't print anything useful the argument you'd provide to runState/evalState |
2022-01-03 08:35:02 +0100 | <xsperry> | without the argument* |
2022-01-03 08:35:13 +0100 | <whatif> | [exa]: why people always the transformer to define the type? use StateT to define State |
2022-01-03 08:35:29 +0100 | <whatif> | but not use MaybeT to define Maybe |
2022-01-03 08:36:14 +0100 | <EvanR> | don't worry about MaybeT, there's ExceptT |
2022-01-03 08:36:17 +0100 | <jackdk> | probably because MaybeT predates Maybe |
2022-01-03 08:36:33 +0100 | <[exa]> | whatif: with State, it saves a lot of almost duplicate code in libraries. Maybe is in `base` and needs to have the constructors directly accessible to programmers, unlike State |
2022-01-03 08:37:13 +0100 | Jing | (~hedgehog@2604:a840:3::1013) |
2022-01-03 08:37:31 +0100 | <EvanR> | also Maybe = MaybeT Identity would be annoying |
2022-01-03 08:38:02 +0100 | <whatif> | EvanR I think the others are annoying too |
2022-01-03 08:38:20 +0100 | <[exa]> | yeah, and everyone loves patternmatching Just x, not Just (Identity x) |
2022-01-03 08:38:24 +0100 | <EvanR> | the error messages from State = StateT Identity are pretty bad yeah |
2022-01-03 08:38:33 +0100 | <whatif> | there's no Reader, Writer, State |
2022-01-03 08:38:33 +0100 | <EvanR> | or Writer |
2022-01-03 08:38:51 +0100 | <whatif> | and also the famous Cont |
2022-01-03 08:39:14 +0100 | gaff | (~gaff@49.207.209.253) |
2022-01-03 08:39:26 +0100 | <EvanR> | Maybe (no T) is pretty fundamental and not a wrapper |
2022-01-03 08:39:42 +0100 | <whatif> | so is there IdentityT ? IdentityT Identity |
2022-01-03 08:39:45 +0100 | <EvanR> | Maybe A is like A + 1 |
2022-01-03 08:41:14 +0100 | <tomsmeding> | @let data IdentityT m a = IdentityT (m a) deriving (Show) |
2022-01-03 08:41:15 +0100 | <lambdabot> | Defined. |
2022-01-03 08:41:24 +0100 | <tomsmeding> | @let instance MonadTrans IdentityT where lift = IdentityT |
2022-01-03 08:41:25 +0100 | <lambdabot> | /sandbox/tmp/.L.hs:166:21: error: |
2022-01-03 08:41:25 +0100 | <lambdabot> | Ambiguous occurrence ‘IdentityT’ |
2022-01-03 08:41:25 +0100 | <lambdabot> | It could refer to |
2022-01-03 08:41:32 +0100 | <tomsmeding> | lol I was not the first one |
2022-01-03 08:41:54 +0100 | <tomsmeding> | whatif: Identity does nothing, and IdentityT just does more nothing |
2022-01-03 08:42:21 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-01-03 08:42:35 +0100 | <whatif> | tomsmeding: is there a library, define the simple unwrapped type like Reader, State, Cont etc |
2022-01-03 08:44:06 +0100 | <EvanR> | really, Reader and Cont are probably easier to use without the wrapper |
2022-01-03 08:44:28 +0100 | <whatif> | how you people accept that use transformer way to define type when you're beginner? |
2022-01-03 08:45:05 +0100 | <EvanR> | as a beginner, go without mtl transformers for a minute |
2022-01-03 08:45:35 +0100 | <EvanR> | you don't need StateT to work with state |
2022-01-03 08:45:48 +0100 | kvakil | (~keyhan@2601:645:8500:4fc0:2df5:f7d6:e89:c64b) |
2022-01-03 08:46:53 +0100 | ksqsf | (~user@134.209.106.31) (Remote host closed the connection) |
2022-01-03 08:46:53 +0100 | <[exa]> | for a beginner it's best to invest 3 minutes of life into reimplementing State, then the problems disappear |
2022-01-03 08:47:31 +0100 | <EvanR> | is good but won't help decipher the errors from mtl |
2022-01-03 08:48:32 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-03 08:48:55 +0100 | <EvanR> | so 3 minutes later invest 30 minutes implementing StateT the way mtl does |
2022-01-03 08:49:21 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 250 seconds) |
2022-01-03 08:49:25 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 08:51:20 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 08:54:50 +0100 | <jackdk> | mtl is an industrial tool, not a learning tool. therefore, build the learning tool to learn and use the industrial tool later |
2022-01-03 08:57:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 09:01:25 +0100 | <whatif> | f = \x -> do { o <- get; let n = o+1; put n; return (o+n) } parse "put n;" error, what do I miss? |
2022-01-03 09:02:41 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2022-01-03 09:02:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 09:04:50 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-01-03 09:05:32 +0100 | <tomsmeding> | @let f = \x -> do { o <- get; let n = o+1; put n; return (o+n) } |
2022-01-03 09:05:32 +0100 | <lambdabot> | Parse failed: Parse error: ; |
2022-01-03 09:05:40 +0100 | <tomsmeding> | @let f = \x -> do { o <- get; let { n = o+1 }; put n; return (o+n) } |
2022-01-03 09:05:42 +0100 | <lambdabot> | Defined. |
2022-01-03 09:06:03 +0100 | <tomsmeding> | whatif: 'let' also takes multiple bindings using ; so the ; before 'put' got parsed as belonging to the 'let' |
2022-01-03 09:06:32 +0100 | <tomsmeding> | if you use the multi-line version with indentation, you have no such issues :) |
2022-01-03 09:07:35 +0100 | <whatif> | tomsmeding: why let doesn't use ',' as split? |
2022-01-03 09:07:53 +0100 | <whatif> | let a=1, b=2 |
2022-01-03 09:08:04 +0100 | <tomsmeding> | I guess it could |
2022-01-03 09:08:11 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 09:08:18 +0100 | <tomsmeding> | but please put it on multiple lines :p |
2022-01-03 09:08:19 +0100 | <EvanR> | braces and semicolons is the raw form of that syntax, no need to make that fancy too |
2022-01-03 09:08:37 +0100 | falafel_ | (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-03 09:09:03 +0100 | <tomsmeding> | whatif: https://paste.tomsmeding.com/FOIejovG |
2022-01-03 09:12:01 +0100 | <whatif> | f :: Int -> State Int Int |
2022-01-03 09:12:09 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2022-01-03 09:12:10 +0100 | <whatif> | f = \x -> do { o <- get; let {n = o+1}; put n; return (o+n) } |
2022-01-03 09:12:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-01-03 09:12:30 +0100 | <whatif> | what traverse f [1,1] would do? |
2022-01-03 09:12:51 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-03 09:13:21 +0100 | <whatif> | traverse print [1,1] would print 1 and 1 |
2022-01-03 09:15:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 09:16:19 +0100 | <tomsmeding> | 'traverse f l = sequence (map f l)' on lists |
2022-01-03 09:16:48 +0100 | <EvanR> | :t sequenceA |
2022-01-03 09:16:49 +0100 | <lambdabot> | (Traversable t, Applicative f) => t (f a) -> f (t a) |
2022-01-03 09:16:55 +0100 | <tomsmeding> | so it would be 'do { a <- f 1 ; b <- f 2 ; return [a, b] }' |
2022-01-03 09:17:37 +0100 | <whatif> | tomsmeding: how [1,1] turn to f 2? |
2022-01-03 09:18:11 +0100 | <whatif> | traverse f [1,1] == sequence (map f [1,1]) |
2022-01-03 09:18:31 +0100 | <whatif> | map f [1,1] == [f 1, f 1] |
2022-01-03 09:18:48 +0100 | <whatif> | where f 2 comes from? |
2022-01-03 09:19:14 +0100 | <tomsmeding> | whatif: oh lol sorry, should be 'f 1' twice |
2022-01-03 09:19:22 +0100 | <tomsmeding> | what I wrote would be the result of 'traverse f [1, 2]' |
2022-01-03 09:19:32 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 09:20:25 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 09:20:45 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:3c92:b563:832f:4576) |
2022-01-03 09:21:28 +0100 | <whatif> | traverse f [1,1] == do { a <- f 1; b <- f 1; return [a, b] } |
2022-01-03 09:25:09 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 09:25:10 +0100 | <EvanR> | @check \n m -> f [n,m] == do { a <- f n; b <- f m; return [a,b] } |
2022-01-03 09:25:12 +0100 | <lambdabot> | error: |
2022-01-03 09:25:12 +0100 | <lambdabot> | Ambiguous occurrence ‘f’ It could refer to either ‘Debug.SimpleReflect.f’, i... |
2022-01-03 09:25:13 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 09:25:28 +0100 | <EvanR> | @check \n m -> L.f [n,m] == do { a <- L.f n; b <- L.f m; return [a,b] } |
2022-01-03 09:25:30 +0100 | <lambdabot> | error: |
2022-01-03 09:25:30 +0100 | <lambdabot> | • No instance for (Num [Integer]) arising from a use of ‘L.f’ • In the first... |
2022-01-03 09:25:50 +0100 | <EvanR> | i didn't put traverse |
2022-01-03 09:26:13 +0100 | <tomsmeding> | whatif: https://hackage.haskell.org/package/base-4.14.0.0/docs/src/Data.Traversable.html#line-230 |
2022-01-03 09:26:51 +0100 | <whatif> | does State construct a binary function? State $ \s -> \a -> (a,s)? |
2022-01-03 09:27:17 +0100 | <tomsmeding> | foldr cons_f (pure []) = foldr (\x ys -> do { x' <- f x ; ys' <- ys ; return (x' : ys) }) (return []) |
2022-01-03 09:27:41 +0100 | chele | (~chele@user/chele) |
2022-01-03 09:28:04 +0100 | <tomsmeding> | whatif: https://hackage.haskell.org/package/transformers-0.6.0.2/docs/src/Control.Monad.Trans.State.Strict… |
2022-01-03 09:28:16 +0100 | <tomsmeding> | ignore the 'm' for the non-transformer variant |
2022-01-03 09:28:52 +0100 | <whatif> | newtype StateT s m a = StateT { runStateT :: s -> m (a,s) }, where the a come from? |
2022-01-03 09:29:14 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-01-03 09:29:39 +0100 | <EvanR> | newtypes are cool because they don't exist at runtime |
2022-01-03 09:30:01 +0100 | <EvanR> | their representation equals whatever is being wrapped |
2022-01-03 09:30:28 +0100 | <EvanR> | a zero-cost abstraction |
2022-01-03 09:31:13 +0100 | <whatif> | State or StateT wrapped a function, what's the function? |
2022-01-03 09:31:31 +0100 | <whatif> | \s -> (a,s)? |
2022-01-03 09:31:31 +0100 | <EvanR> | your stateful program |
2022-01-03 09:31:52 +0100 | <whatif> | :t State $ \s -> (a,s) |
2022-01-03 09:31:53 +0100 | <lambdabot> | error: |
2022-01-03 09:31:53 +0100 | <lambdabot> | • Data constructor not in scope: State :: (b0 -> (Expr, b0)) -> t |
2022-01-03 09:31:53 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2022-01-03 09:32:33 +0100 | <EvanR> | :t State (\s -> ('?', s)) |
2022-01-03 09:32:34 +0100 | <lambdabot> | error: |
2022-01-03 09:32:34 +0100 | <lambdabot> | • Data constructor not in scope: State :: (b0 -> (Char, b0)) -> t |
2022-01-03 09:32:34 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2022-01-03 09:32:37 +0100 | <whatif> | how to use value constructor State to construct a State a b |
2022-01-03 09:32:40 +0100 | <EvanR> | :t StateT (\s -> ('?', s)) |
2022-01-03 09:32:41 +0100 | <lambdabot> | error: |
2022-01-03 09:32:41 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: s ~ (a, s) |
2022-01-03 09:32:41 +0100 | <lambdabot> | • In the expression: s |
2022-01-03 09:32:52 +0100 | <EvanR> | :t StateT (\s -> Identity ('?', s)) |
2022-01-03 09:32:53 +0100 | <lambdabot> | StateT b Identity Char |
2022-01-03 09:32:58 +0100 | <EvanR> | finally |
2022-01-03 09:33:34 +0100 | fsckskye[m] | (~kmatrixth@2001:470:69fc:105::1:3b2f) (Quit: Client limit exceeded: 20000) |
2022-01-03 09:33:56 +0100 | <EvanR> | you wouldn't use StateT directly, you would use return or (>>=) |
2022-01-03 09:34:07 +0100 | spaceseller | (~spacesell@31.147.205.13) (Quit: Leaving) |
2022-01-03 09:34:08 +0100 | fsckskye[m] | (~kmatrixth@2001:470:69fc:105::1:3b2f) |
2022-01-03 09:34:33 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2022-01-03 09:34:33 +0100 | <EvanR> | that thing I constructed is pure '?' |
2022-01-03 09:34:38 +0100 | <EvanR> | return '?' |
2022-01-03 09:35:48 +0100 | spaceseller | (~spacesell@31.147.205.13) |
2022-01-03 09:37:38 +0100 | fef | (~thedawn@user/thedawn) |
2022-01-03 09:40:10 +0100 | <whatif> | a is free, State $ \s -> (a, s) :: State S A |
2022-01-03 09:43:00 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 09:45:15 +0100 | <whatif> | more confused, f 1:: State Int Int, in that o <- get; what 'get' get? |
2022-01-03 09:45:20 +0100 | <whatif> | 1? |
2022-01-03 09:45:46 +0100 | <whatif> | f = \x -> do { o <- get; let {n = o+1}; put n; return (o+n) } |
2022-01-03 09:47:27 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 09:47:37 +0100 | <whatif> | f 1 = State $ \s -> (s+1, s) |
2022-01-03 09:47:43 +0100 | <tomsmeding> | it gets the current state |
2022-01-03 09:47:53 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
2022-01-03 09:48:23 +0100 | <whatif> | tomsmeding: but 1 isn't pass to State |
2022-01-03 09:48:27 +0100 | <tomsmeding> | that 'f' is similar to '\s -> \x -> let o = s ; n = o+1 ; s' = n in (o+n,s')' |
2022-01-03 09:48:49 +0100 | <tomsmeding> | except there are some State and Identity wrappers around it |
2022-01-03 09:49:17 +0100 | <tomsmeding> | 's' is the input state, 'x' is your argument x; o+n is the return value, and s' is the output state |
2022-01-03 09:49:29 +0100 | <whatif> | tomsmeding: you mean that 'get' will get 1? |
2022-01-03 09:49:36 +0100 | <tomsmeding> | no, it will get the input state |
2022-01-03 09:49:45 +0100 | <tomsmeding> | the only way to _run_ a State computation is using runState |
2022-01-03 09:49:47 +0100 | <tomsmeding> | :t runState |
2022-01-03 09:49:48 +0100 | <lambdabot> | State s a -> s -> (a, s) |
2022-01-03 09:49:54 +0100 | <tomsmeding> | here, you have to supply the initial state |
2022-01-03 09:50:04 +0100 | <tomsmeding> | > runState (f 10) 42 |
2022-01-03 09:50:06 +0100 | <lambdabot> | error: |
2022-01-03 09:50:06 +0100 | <lambdabot> | Ambiguous occurrence ‘f’ |
2022-01-03 09:50:06 +0100 | <lambdabot> | It could refer to |
2022-01-03 09:50:09 +0100 | <tomsmeding> | > runState (L.f 10) 42 |
2022-01-03 09:50:10 +0100 | <lambdabot> | (85,43) |
2022-01-03 09:50:42 +0100 | <tomsmeding> | o = 42; n = 43; s' = 43; return value is then o+n=42+43=85 |
2022-01-03 09:50:53 +0100 | <tomsmeding> | note that x wasn't used, because, well, your f doesn't use x :) |
2022-01-03 09:50:54 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-03 09:55:54 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 09:56:05 +0100 | <whatif> | traverse f [1,1] == sequence (map f [1,1]) == sequence [f 1, f 1] == sequence [State $ \s -> (s+1, s), State $ \s -> (s+1, s)], right? |
2022-01-03 09:57:46 +0100 | <whatif> | is there wrong? |
2022-01-03 09:59:42 +0100 | w1gz_ | w1gz |
2022-01-03 09:59:57 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-01-03 10:00:00 +0100 | <[exa]> | looks valid to me |
2022-01-03 10:00:29 +0100 | <[exa]> | (except perhaps the order of stuff in the tuples) |
2022-01-03 10:00:53 +0100 | <whatif> | [exa]: what do you mean the order of stuff? |
2022-01-03 10:01:02 +0100 | <whatif> | (s, s+1)? |
2022-01-03 10:01:51 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 10:01:55 +0100 | <mjrosenb> | [exa]: sorry, I was dumb. I removed a path, without removing all of its children. Fixed that issue, and the problem went away. |
2022-01-03 10:02:14 +0100 | <mjrosenb> | (the error message was super not useful) |
2022-01-03 10:03:55 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 10:03:56 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 10:04:43 +0100 | <whatif> | sequence :: [State s a] -> State [a], right? |
2022-01-03 10:05:27 +0100 | jayant | (~quassel@223.236.0.223) |
2022-01-03 10:05:47 +0100 | <whatif> | so sequence [State $ \s -> (s+1, s), State $ \s -> (s+1, s) == State $ \s -> [s+1, s+1], right? |
2022-01-03 10:05:51 +0100 | max22- | (~maxime@2a01cb0883359800f1ba63e8a5bb6c8b.ipv6.abo.wanadoo.fr) |
2022-01-03 10:06:05 +0100 | <whatif> | is there wrong? |
2022-01-03 10:06:16 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2022-01-03 10:06:43 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 10:06:54 +0100 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2022-01-03 10:07:09 +0100 | spaceseller | (~spacesell@31.147.205.13) (Quit: Leaving) |
2022-01-03 10:07:53 +0100 | <[exa]> | whatif: the last thing you wrote doesn't really typecheck |
2022-01-03 10:08:23 +0100 | <[exa]> | in particular, `sequence :: [State s a] -> State s [a]` (you missed the last `s`) |
2022-01-03 10:09:02 +0100 | <[exa]> | in turn, the thing should result into something like `State $ \s -> (s+2, [s, s+1])` |
2022-01-03 10:09:18 +0100 | mmhat | (~mmh@55d48037.access.ecotel.net) |
2022-01-03 10:09:20 +0100 | <[exa]> | (note the function must return the tuple again) |
2022-01-03 10:09:43 +0100 | <mjrosenb> | because running a state returns the result of the computation, as well as the new result. |
2022-01-03 10:10:03 +0100 | <[exa]> | ...new state. ^ :] |
2022-01-03 10:10:10 +0100 | <whatif> | yeah, State s is the m |
2022-01-03 10:11:26 +0100 | <whatif> | [exa]: but I don't understand how s+1 becoome s+2 |
2022-01-03 10:11:45 +0100 | <whatif> | sequence :: [State s a] -> State s [a] |
2022-01-03 10:12:46 +0100 | <whatif> | sequence [State $ \s -> (s+1, s), State $ \s -> (s+1, s) == State $ \s -> (s+2, [s, s+1]) /= State $ \s -> [s+1, s+1] |
2022-01-03 10:14:39 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 10:16:49 +0100 | <whatif> | how it become s+2? |
2022-01-03 10:17:27 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-01-03 10:17:51 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-01-03 10:18:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2022-01-03 10:19:42 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-01-03 10:19:51 +0100 | <tomsmeding> | sequence [State (\s -> (s+1, s)), State (\s -> (s+1, s))] is similar to \s -> let (s1, x) = (\s -> (s+1, s)) s ; (s2, y) = (\s -> (s+1, s)) s1 in (s2, [x,y]) |
2022-01-03 10:20:29 +0100 | <tomsmeding> | it's called state-passing for a reason; the state is threaded through and updated along the way by the computations |
2022-01-03 10:21:16 +0100 | <tomsmeding> | my "similar to" is basically after removing StateT newtype wrappers and simplifying a little (e.g. simplifying '(\x -> x) 10' to '10') |
2022-01-03 10:25:56 +0100 | <whatif> | tomsmeding: sequence will pass that s+1 from the first State $ \s -> (s+1, s) as s for the second State $ \s -> (s+1, s)? |
2022-01-03 10:26:07 +0100 | <tomsmeding> | yes |
2022-01-03 10:26:32 +0100 | <tomsmeding> | because that way, you're simulating "updating" the state from s to s+1, before running the second thing |
2022-01-03 10:26:40 +0100 | <whatif> | tomsmeding: and that's what sequence's definition? right? |
2022-01-03 10:26:57 +0100 | <tomsmeding> | @src sequence |
2022-01-03 10:26:57 +0100 | <lambdabot> | sequence [] = return [] |
2022-01-03 10:26:57 +0100 | <lambdabot> | sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs) |
2022-01-03 10:26:57 +0100 | <lambdabot> | --OR |
2022-01-03 10:26:57 +0100 | <lambdabot> | sequence xs = foldr (liftM2 (:)) (return []) xs |
2022-01-03 10:27:06 +0100 | <tomsmeding> | see the first version |
2022-01-03 10:27:26 +0100 | <tomsmeding> | and for State, what you way is what it ends up doing |
2022-01-03 10:27:37 +0100 | <tomsmeding> | *what you say |
2022-01-03 10:28:31 +0100 | mrmr1 | (~mrmr@user/mrmr) |
2022-01-03 10:29:41 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2022-01-03 10:30:11 +0100 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 268 seconds) |
2022-01-03 10:30:11 +0100 | mrmr1 | mrmr |
2022-01-03 10:30:59 +0100 | acidjnk | (~acidjnk@p200300d0c7271e70c580124c5fb62625.dip0.t-ipconnect.de) |
2022-01-03 10:31:00 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e70c580124c5fb62625.dip0.t-ipconnect.de) |
2022-01-03 10:32:22 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 10:32:27 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 10:34:22 +0100 | <gentauro> | hmmm, I thought the issue with `haskell-lsp` and `haskell-language-server` was `macOS` and the `M1` chip. But it seems that is not possible to install neither on my Linux (NixOS) … |
2022-01-03 10:34:27 +0100 | <whatif> | I don't understand, sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs), so sequence [State $\s -> (s+1, s), State $\s -> (s+1, s)] would be v is s+1, return (v:vs) would be State $\s -> ([s+1, s+1], s) |
2022-01-03 10:34:59 +0100 | <gentauro> | what are peeps using nowadays to get a "decent" development environment on `emacs`? (any blog post link would be appreciated) |
2022-01-03 10:36:22 +0100 | <whatif> | tomsmeding: sequence (x:xs) = ... return (v:vs) what's the m here? []? |
2022-01-03 10:36:49 +0100 | <tomsmeding> | whatif: State, right? |
2022-01-03 10:36:54 +0100 | <tomsmeding> | well, m ~ State Int |
2022-01-03 10:37:18 +0100 | <tomsmeding> | gentauro: 0 clue about emacs, but for hls, ghcup |
2022-01-03 10:37:42 +0100 | <tomsmeding> | though ghcup's HLS crashes for me, so I build it myself using 'git clone HLS; cd HLS; cabal install' :p |
2022-01-03 10:38:17 +0100 | <gentauro> | tomsmeding: thx, I look into that |
2022-01-03 10:38:57 +0100 | Jing | (~hedgehog@2604:a840:3::1013) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-03 10:39:47 +0100 | <whatif> | sequence [State \s -> (s+1,s)] would be State $\s -> ([(s+1)],s)? |
2022-01-03 10:40:14 +0100 | szwe | (~szwester@2a02:a31a:e13c:1100:f579:7a43:b118:346b) |
2022-01-03 10:40:38 +0100 | <tomsmeding> | whatif: we had 'newtype State s a = State (s -> (s, a))' right? |
2022-01-03 10:40:46 +0100 | <tomsmeding> | so the value is in the second component, the state in the first |
2022-01-03 10:40:56 +0100 | <tomsmeding> | so the result would be State (\s -> (s+1, [s])) |
2022-01-03 10:41:43 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 10:42:18 +0100 | <whatif> | what's the oldtype... |
2022-01-03 10:42:33 +0100 | <whatif> | data State s a =... |
2022-01-03 10:45:10 +0100 | <tomsmeding> | old type? |
2022-01-03 10:45:40 +0100 | <tomsmeding> | 'newtype' and 'data' are equivalent for everything except a bit of runtime performance and less distinct 'undefined' values |
2022-01-03 10:48:42 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-03 10:50:31 +0100 | <tomsmeding> | gentauro: just remembered, if you want to build HLS for a new ghc, rename the correct cabal-*.project file to cabal.project before building |
2022-01-03 10:53:45 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-01-03 10:55:51 +0100 | Jing | (~hedgehog@2604:a840:3::1013) |
2022-01-03 10:58:14 +0100 | notzmv | (~zmv@user/notzmv) |
2022-01-03 10:58:18 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 10:59:51 +0100 | nomeata | (~nomeatama@2001:470:69fc:105::1:5ed4) (Quit: Reconnecting) |
2022-01-03 11:00:05 +0100 | nomeata | (~nomeata@2001:470:69fc:105::1:5ed4) |
2022-01-03 11:01:43 +0100 | nomeata | (~nomeata@2001:470:69fc:105::1:5ed4) (Client Quit) |
2022-01-03 11:01:56 +0100 | nomeata | (~nomeata@2001:470:69fc:105::1:5ed4) |
2022-01-03 11:02:52 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-03 11:04:13 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-03 11:04:43 +0100 | szwe | (~szwester@2a02:a31a:e13c:1100:f579:7a43:b118:346b) (Quit: Leaving) |
2022-01-03 11:06:13 +0100 | gaff | (~gaff@49.207.209.253) (Remote host closed the connection) |
2022-01-03 11:07:04 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-01-03 11:10:10 +0100 | Sgeo__ | (~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer) |
2022-01-03 11:10:31 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 11:10:38 +0100 | <whatif> | tomsmeding: this sequence [State...] is like reduce to me |
2022-01-03 11:11:00 +0100 | <whatif> | foldl |
2022-01-03 11:16:17 +0100 | jayant | (~quassel@223.236.0.223) (Ping timeout: 256 seconds) |
2022-01-03 11:18:07 +0100 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 256 seconds) |
2022-01-03 11:18:17 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 240 seconds) |
2022-01-03 11:18:46 +0100 | <[exa]> | `sequence_` can be easily defined as `foldr (>>) (pure ())` |
2022-01-03 11:18:51 +0100 | xff0x | (~xff0x@2001:1a81:5370:9b00:cd1d:3c45:12cd:b91e) (Ping timeout: 250 seconds) |
2022-01-03 11:19:36 +0100 | mrmr | (~mrmr@user/mrmr) |
2022-01-03 11:19:38 +0100 | <[exa]> | that said, isn't there a name for `pure ()` ? like void, but without the parameter |
2022-01-03 11:19:55 +0100 | xff0x | (~xff0x@2001:1a81:5370:9b00:ba06:1021:b5e3:5719) |
2022-01-03 11:21:21 +0100 | <tomsmeding> | instance Monad m => Monoid (m ()) where mappend = (>>) ; mempty = pure () -- pre-semigroup split because meh |
2022-01-03 11:21:23 +0100 | Erutuon_ | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-01-03 11:22:00 +0100 | jayant | (~quassel@223.236.0.223) |
2022-01-03 11:23:05 +0100 | vglfr | (~vglfr@46.96.180.119) (Ping timeout: 256 seconds) |
2022-01-03 11:23:37 +0100 | ensyde | (~ensyde@2600:1702:2e30:1a40:c809:1c51:d4e7:3d0a) (Ping timeout: 240 seconds) |
2022-01-03 11:25:47 +0100 | __monty__ | (~toonn@user/toonn) |
2022-01-03 11:26:04 +0100 | <whatif> | [exa]: `sequence_` can be easily defined as `foldr (>>) (pure ())` this is point-free style? |
2022-01-03 11:26:25 +0100 | <[exa]> | well there's no point so yeah, it is |
2022-01-03 11:26:40 +0100 | <[exa]> | tomsmeding: ah nice thanks. :D |
2022-01-03 11:26:47 +0100 | <whatif> | what pure () doing here? |
2022-01-03 11:27:12 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 11:27:17 +0100 | <[exa]> | ensuring that the whole thing returns `m ()`. You could omit it and go with `foldr1` but that's not as nice |
2022-01-03 11:27:22 +0100 | <tomsmeding> | [exa]: though I'm not sure quite how useful that instance is :p |
2022-01-03 11:27:42 +0100 | <whatif> | [exa]: could it be with foldl1? |
2022-01-03 11:27:49 +0100 | <tomsmeding> | whatif: you need to return something in case the list is empty |
2022-01-03 11:28:21 +0100 | <geekosaur> | foldl is generally not as useful as one might think |
2022-01-03 11:28:21 +0100 | <[exa]> | whatif: yeah but the "actions" would happen in a mildly surprising order, starting from the last one |
2022-01-03 11:28:24 +0100 | <whatif> | I very like foldl1, it's called reduce in other languages |
2022-01-03 11:28:53 +0100 | <tomsmeding> | [exa]: not with foldl1 (>>), right? |
2022-01-03 11:29:08 +0100 | <tomsmeding> | Ignoring foldl efficiency concerns |
2022-01-03 11:29:09 +0100 | <[exa]> | ah yeah nope, sorry for confusion |
2022-01-03 11:29:20 +0100 | <[exa]> | still, efficiency concerns |
2022-01-03 11:29:21 +0100 | <geekosaur> | actually what most languages call reduce is foldr1. (the "l"/"r" is about associativity, not order; lists can only ever be traversed from the left) |
2022-01-03 11:29:50 +0100 | <whatif> | geekosaur: what? |
2022-01-03 11:30:13 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-01-03 11:30:18 +0100 | <[exa]> | whatif: left-folding a right-folded structure sometimes hurts |
2022-01-03 11:30:32 +0100 | <whatif> | [1,2,3], [1+2,3] what this? foldl? |
2022-01-03 11:30:42 +0100 | <geekosaur> | > foldl f z [a,b,c] |
2022-01-03 11:30:43 +0100 | <lambdabot> | error: |
2022-01-03 11:30:43 +0100 | <lambdabot> | Ambiguous occurrence ‘f’ |
2022-01-03 11:30:43 +0100 | <lambdabot> | It could refer to |
2022-01-03 11:30:49 +0100 | <tomsmeding> | geekosaur: not in js, at least; [1,2,3].reduce((a,b) => 10*a+b) returns 123 in js |
2022-01-03 11:30:49 +0100 | <geekosaur> | bah |
2022-01-03 11:31:00 +0100 | <tomsmeding> | @undef |
2022-01-03 11:31:00 +0100 | <lambdabot> | Undefined. |
2022-01-03 11:31:07 +0100 | <geekosaur> | > foldl f z [a,b,c] |
2022-01-03 11:31:08 +0100 | <lambdabot> | f (f (f z a) b) c |
2022-01-03 11:31:13 +0100 | <geekosaur> | > foldr f z [a,b,c] |
2022-01-03 11:31:14 +0100 | <lambdabot> | f a (f b (f c z)) |
2022-01-03 11:31:14 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2022-01-03 11:31:18 +0100 | <geekosaur> | compare these |
2022-01-03 11:31:30 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-01-03 11:31:54 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-01-03 11:32:05 +0100 | <tomsmeding> | > foldl1 (\a b -> 10*a+b) [1,2,3] |
2022-01-03 11:32:05 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 11:32:06 +0100 | <whatif> | I still like foldl, from left to right to do something |
2022-01-03 11:32:06 +0100 | <lambdabot> | 123 |
2022-01-03 11:32:17 +0100 | <geekosaur> | foldr is much more natural because it matches the associativity of a list |
2022-01-03 11:32:21 +0100 | <tomsmeding> | > foldr1 (\a b -> 10*a+b) [1,2,3] |
2022-01-03 11:32:23 +0100 | <lambdabot> | 33 |
2022-01-03 11:32:51 +0100 | <[exa]> | whatif: the main problem with foldl is that in a lazy language it first rebuilds the right-folded list to a left-folded thunk of (+)'s, THEN starts reducing it. You almost always want something stricter, such as foldl' |
2022-01-03 11:32:56 +0100 | <geekosaur> | and in fact `foldr (:) []` is the identity on a list |
2022-01-03 11:33:00 +0100 | <whatif> | in natural, do you read something from left to right? |
2022-01-03 11:33:16 +0100 | <tomsmeding> | whatif: foldl has the more common order, when comparing with other programming languages. However, because of haskell's list structure, in combination with the laziness, foldr ends up working better in a lot of cases |
2022-01-03 11:33:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-01-03 11:33:41 +0100 | <tomsmeding> | Exception: sum = foldl' (+) 0 -- and note the foldl' instead of foldl (look up the documentation) |
2022-01-03 11:34:21 +0100 | <__monty__> | I also believe you can express foldl in terms of foldr but not the other way around? |
2022-01-03 11:35:12 +0100 | tomsmeding | is skeptical |
2022-01-03 11:35:48 +0100 | Techcable | (~Techcable@168.235.93.147) (Remote host closed the connection) |
2022-01-03 11:35:56 +0100 | Techcable | (~Techcable@168.235.93.147) |
2022-01-03 11:36:07 +0100 | xkuru | (~xkuru@user/xkuru) |
2022-01-03 11:37:17 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2022-01-03 11:37:26 +0100 | nhatanh02 | (~satori@123.24.172.30) |
2022-01-03 11:38:23 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 11:38:46 +0100 | <whatif> | [exa]: sequence_ = \x -> foldr1 (>>) x? |
2022-01-03 11:41:00 +0100 | <[exa]> | yeah except it doesn't match the definition of sequence_ anymore, it's something like sequenceLast or so |
2022-01-03 11:41:27 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 11:43:14 +0100 | Techcable | (~Techcable@168.235.93.147) (Remote host closed the connection) |
2022-01-03 11:43:22 +0100 | Techcable | (~Techcable@168.235.93.147) |
2022-01-03 11:43:39 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2022-01-03 11:45:20 +0100 | Techcable | (~Techcable@168.235.93.147) (Remote host closed the connection) |
2022-01-03 11:45:27 +0100 | Techcable | (~Techcable@168.235.93.147) |
2022-01-03 11:45:29 +0100 | <__monty__> | > let foldrl f z xs = foldr (\x next y -> next $ f y x) id xs z in (foldl f z [a,b,c], foldrl f z [a, b, c]) |
2022-01-03 11:45:31 +0100 | <lambdabot> | (f (f (f z a) b) c,f (f (f z a) b) c) |
2022-01-03 11:45:34 +0100 | <__monty__> | tomsmeding: ^ |
2022-01-03 11:45:41 +0100 | <__monty__> | I think this is correct. |
2022-01-03 11:47:45 +0100 | coolnickname | (uid531864@user/coolnickname) (Quit: Connection closed for inactivity) |
2022-01-03 11:48:00 +0100 | <geekosaur> | proves the one but not the other |
2022-01-03 11:48:09 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2022-01-03 11:48:12 +0100 | Techcable | (~Techcable@168.235.93.147) (Remote host closed the connection) |
2022-01-03 11:48:19 +0100 | <tomsmeding> | > let foldlr f z xs = foldl (\x next y -> next $ f y x) id xs z in (foldr f z [a,b,c], foldlr f z [a,b,c]) |
2022-01-03 11:48:20 +0100 | Techcable | (~Techcable@168.235.93.147) |
2022-01-03 11:48:20 +0100 | <lambdabot> | error: |
2022-01-03 11:48:20 +0100 | <lambdabot> | • Couldn't match expected type ‘t0 -> Expr’ with actual type ‘Expr’ |
2022-01-03 11:48:20 +0100 | <lambdabot> | • In the expression: a |
2022-01-03 11:48:24 +0100 | <tomsmeding> | Meh |
2022-01-03 11:48:30 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 268 seconds) |
2022-01-03 11:48:41 +0100 | Techcable | (~Techcable@168.235.93.147) (Remote host closed the connection) |
2022-01-03 11:48:49 +0100 | Techcable | (~Techcable@168.235.93.147) |
2022-01-03 11:48:55 +0100 | <__monty__> | Well, foldl doesn't work on infinite lists, right? So it can't ever implement foldr. |
2022-01-03 11:49:11 +0100 | <__monty__> | QED : ) |
2022-01-03 11:49:18 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-03 11:49:30 +0100 | <tomsmeding> | Hm right |
2022-01-03 11:49:45 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 11:51:32 +0100 | <__monty__> | This is a brilliant blogpost about folds for anyone who wants to understand them better, https://ertes.eu/tutorial/foldr.html (<3 Ertugrul†) |
2022-01-03 11:52:35 +0100 | vglfr | (~vglfr@46.96.180.119) |
2022-01-03 11:52:50 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-03 11:53:06 +0100 | <__monty__> | geekosaur: I know my proof isn't very rigorous. Would love to hear if I'm wrong though. |
2022-01-03 11:53:49 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-01-03 11:53:57 +0100 | <geekosaur> | doesn't seem like it needs to be any more rigorous to me, although I guess a proper mathematician would want proof that foldr can handle infinite lists :) |
2022-01-03 11:54:27 +0100 | <geekosaur> | (should follow from its definition, though, so shouldn't be difficult) |
2022-01-03 11:56:21 +0100 | <__monty__> | > foldr (const) z [0..] |
2022-01-03 11:56:22 +0100 | <lambdabot> | 0 |
2022-01-03 11:56:32 +0100 | <__monty__> | Proof by counterexample : ) |
2022-01-03 11:57:03 +0100 | <__monty__> | Or example rather. |
2022-01-03 11:59:03 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Remote host closed the connection) |
2022-01-03 12:00:25 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 12:02:06 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 12:05:09 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 12:05:26 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 12:12:28 +0100 | Jing | (~hedgehog@2604:a840:3::1013) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-03 12:15:23 +0100 | <__monty__> | /wg 16 |
2022-01-03 12:15:38 +0100 | <__monty__> | Whoops. |
2022-01-03 12:15:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 12:18:58 +0100 | ubert | (~Thunderbi@p200300ecdf0994ce1454eef4b6fa1895.dip0.t-ipconnect.de) |
2022-01-03 12:19:40 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-01-03 12:21:11 +0100 | <gentauro> | 10:50 < tomsmeding> gentauro: just remembered, if you want to build HLS for a new ghc, rename the correct cabal-*.project file to cabal.project before building |
2022-01-03 12:21:15 +0100 | Jing | (~hedgehog@2604:a840:3::1013) |
2022-01-03 12:21:35 +0100 | <gentauro> | tomsmeding: I just cloned the GitHub repo and built it with the latest `stack` (after `nix-shell`) |
2022-01-03 12:21:39 +0100 | <gentauro> | and it seemed to work |
2022-01-03 12:22:43 +0100 | <geekosaur> | mm, might build for the wrong ghc though. (although I guess at this point most folks are on 8.10.7) |
2022-01-03 12:23:12 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 12:25:41 +0100 | <gentauro> | hls, nice tip btw `Convert 2000 into 0o3720` :| |
2022-01-03 12:25:43 +0100 | <gentauro> | WTF |
2022-01-03 12:25:56 +0100 | <gentauro> | did somebody give `hls` to much booze over the holidays? xD |
2022-01-03 12:27:14 +0100 | <geekosaur> | o.O |
2022-01-03 12:27:37 +0100 | KvL | (~KvL@user/KvL) |
2022-01-03 12:27:37 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 12:27:58 +0100 | <__monty__> | Hecate: I'd maybe add "Flora is an unofficial alternative index and UI for the Haskell package ecosystem," just because the term "index" is a bit jargon-y and doesn't necessarily imply a UI. |
2022-01-03 12:28:57 +0100 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 240 seconds) |
2022-01-03 12:29:12 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2022-01-03 12:30:21 +0100 | <geekosaur> | actually I'd say "index" is potentially misleading since it could also refer to the package index used by tooling |
2022-01-03 12:31:00 +0100 | <geekosaur> | I was tripping over that in #ghc last night |
2022-01-03 12:31:28 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-01-03 12:32:10 +0100 | <__monty__> | I think that's on purpose though. Flora is meant to be both a new frontend for hackage as well as its own package index that goes past hackage. |
2022-01-03 12:32:18 +0100 | <__monty__> | AFAIUI |
2022-01-03 12:32:51 +0100 | <geekosaur> | but I understand that to be a future direction, not the current intent |
2022-01-03 12:32:59 +0100 | <geekosaur> | frontend first, backend later |
2022-01-03 12:33:12 +0100 | <geekosaur> | for now hackage is the backend |
2022-01-03 12:33:48 +0100 | <__monty__> | Yes, indeed. Though I'm not sure the README needs to refrain from stating the intent rather than the facts as of today. |
2022-01-03 12:38:32 +0100 | Everything | (~Everythin@37.115.210.35) |
2022-01-03 12:39:03 +0100 | mrmr | (~mrmr@user/mrmr) |
2022-01-03 12:41:22 +0100 | cosimone` | (~user@93-47-228-11.ip115.fastwebnet.it) |
2022-01-03 12:41:59 +0100 | stevan | (~stevan@user/stevan) |
2022-01-03 12:42:32 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 240 seconds) |
2022-01-03 12:43:25 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-01-03 12:44:09 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 12:45:26 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-01-03 12:48:27 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-01-03 12:49:38 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 12:50:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2022-01-03 12:51:13 +0100 | <stevan> | hi, i'm trying to `mmap` a pinned and aligned `MutableByteArray#` but keep running into segfaults no matter what i try, which makes me unsure if the bug is in my code or GHC. the code is available over here: https://github.com/stevana/hs-mmap-mutablebytearray together with the steps needed to reproduce what i'm seeing. i'd appreciate any help, especially around if it's worth reporting this as a ghc bug. |
2022-01-03 12:51:19 +0100 | <stevan> | in case you're curious about why one would want to do such a thing in the first place: i'd like to write a metrics library where the metrics are computed in-memory in the mutablebytearray using atomic `fetchAddIntArray`s, while persisted to disk and available to other processes via the `mmap`. cheers. |
2022-01-03 12:53:24 +0100 | ub | (~Thunderbi@p200300ecdf0994ceb42bd33431e7317f.dip0.t-ipconnect.de) |
2022-01-03 12:55:46 +0100 | max22- | (~maxime@2a01cb0883359800f1ba63e8a5bb6c8b.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds) |
2022-01-03 12:55:48 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-01-03 12:56:51 +0100 | <[exa]> | stevan: can you check out which precise operation fails? reading from a mmapped pointer? Did you truncate() the file? |
2022-01-03 12:56:55 +0100 | <ProfSimm> | Wouldn't it be right to say a functional language is like a closed system where you're in full control of time. Time takes on space-like properties. Facts are absolute, not relative moment to moment. But to do anything you need to interact with another system, relative to which, you DO experience time |
2022-01-03 12:58:11 +0100 | <[exa]> | ProfSimm: the "absolute facts" are about purity, not about being functional. |
2022-01-03 12:58:48 +0100 | <ProfSimm> | [exa]: well purity refers to functional purity doesn't it |
2022-01-03 12:59:02 +0100 | <[exa]> | Also, there's nothing about "time" in talking to environs, for example IO provides just causality, which looks a bit like time |
2022-01-03 12:59:09 +0100 | <geekosaur> | even C compilers care about purity |
2022-01-03 12:59:13 +0100 | <[exa]> | there are non-functional pure languages |
2022-01-03 12:59:22 +0100 | <[exa]> | (although scarce) |
2022-01-03 12:59:31 +0100 | <ProfSimm> | [exa]: To me time is causality plus change. |
2022-01-03 12:59:44 +0100 | <ProfSimm> | [exa]: causality implies change anyway |
2022-01-03 12:59:59 +0100 | <stevan> | [exa]: i've documented which operations fail in the readme (i get two different errors depending on the size of the bytearray) its: https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/sm/BlockAlloc.c#L833 or https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/PrimOps.cmm#L113 . i use `System.Posix.Fcntl.fileAllocate` to allocate the file. |
2022-01-03 13:00:05 +0100 | <geekosaur> | but both exist even in pure functional languages, else they'd be pointless |
2022-01-03 13:00:26 +0100 | <Hecate> | __monty__: thanks for the feedback :) |
2022-01-03 13:00:38 +0100 | <ProfSimm> | geekosaur: in a way time doesn't exist in FP because nothing changes once it's defined |
2022-01-03 13:00:54 +0100 | <ProfSimm> | geekosaur: and the moment of definition is usually also not relevant. |
2022-01-03 13:00:56 +0100 | <geekosaur> | stevan, I'd take that to either #ghc or the ghc issue tracker, segfaults in the RTS are almost always ghc bugs |
2022-01-03 13:01:11 +0100 | <[exa]> | stevan: btw why do you allocate memory for mmap? |
2022-01-03 13:02:21 +0100 | <stevan> | geekosaur: thanks, will do. |
2022-01-03 13:02:46 +0100 | <stevan> | [exa]: not sure i follow what you mean? |
2022-01-03 13:03:02 +0100 | <ProfSimm> | here's a question... we know math is abstract, therefore it's very useful. We can apply it to anything. But nothing is literally math as far as we know. So which is more foundational - procedural/imperative programming, or functional? |
2022-01-03 13:03:37 +0100 | <ProfSimm> | It's weird because every implementation is imperative. But specific. Abstraction is universally applicable. But actually doesn't really exist. |
2022-01-03 13:04:14 +0100 | <geekosaur> | not sure either is foundational. (also there are functional implementations, see the reduceron) |
2022-01-03 13:04:46 +0100 | <[exa]> | stevan: it seems you're trying to force mmap() to map the file over something that you allocated with malloc, right? |
2022-01-03 13:05:18 +0100 | <ProfSimm> | geekosaur: the reduceron is interesting but it seems to be based on FPGA, which is implementationally imperative/procedural isn't it |
2022-01-03 13:05:55 +0100 | <ProfSimm> | geekosaur: maybe like particle-wave duality, neither is fundamental instead we oscillate between one or the other infinitely as we dig deeper |
2022-01-03 13:05:59 +0100 | Jing | (~hedgehog@2604:a840:3::1013) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-03 13:06:12 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 13:06:17 +0100 | <ProfSimm> | geekosaur: like the saying "it's all turtles" but "it's all dualities" |
2022-01-03 13:06:21 +0100 | <geekosaur> | I'd actually argue the universe is functional underneath |
2022-01-03 13:06:46 +0100 | <geekosaur> | wave/particle duality doesn't flip, at some point "particles" become waves and stay there |
2022-01-03 13:06:51 +0100 | <ProfSimm> | geekosaur: what hints you in that direction |
2022-01-03 13:07:15 +0100 | <[exa]> | stevan: see `man 2 mmap` -- using the first `addr` argument in mmap calls is basically a hint, and you're not giving it a very good hint because your pages there are already used |
2022-01-03 13:07:16 +0100 | <ProfSimm> | geekosaur: oh they do become waves though. The moment you separate them from a macrosystem they become waves |
2022-01-03 13:07:41 +0100 | <ProfSimm> | geekosaur: and in fact the manyworlds hypothesis suggests it's always a wave, that looks particle-like from a specific observer's perspective |
2022-01-03 13:08:19 +0100 | <geekosaur> | also an FPGA is implementationally electrons following a functional paradigm, they don't follow instructions, that an interpretation we put on top of it that breaks down as we look closer |
2022-01-03 13:08:56 +0100 | <geekosaur> | *that's an |
2022-01-03 13:09:00 +0100 | <ProfSimm> | geekosaur: all computers are essentially a structure through which impulses of energy flow. Some path segments connect, some disconnect. |
2022-01-03 13:09:19 +0100 | <ProfSimm> | geekosaur: is this functional or imperative I don't know. We reuse the same path. And the impulses move in space and time |
2022-01-03 13:09:44 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-03 13:10:10 +0100 | <ProfSimm> | geekosaur: maybe this is the fundamental reality. Impulses of energy travelling the path of least resistance (least/most action principle) through pathways shaped by energy itself. |
2022-01-03 13:10:20 +0100 | <[exa]> | ProfSimm: you're trying to make an ontology where there's none. Functional, imperative, declarative, esoteric, whateverivish, ..., are all simplifying interpretations of the same thing that allow you to reason efficiently about stuff |
2022-01-03 13:10:22 +0100 | <geekosaur> | you seem to be assuming the truth of your proposition. I'm arguing against it, that time is a thing even in a functional context, and waves are functions |
2022-01-03 13:10:53 +0100 | <ProfSimm> | I'm desperate for ontology |
2022-01-03 13:11:02 +0100 | <[exa]> | life hack: don't |
2022-01-03 13:11:07 +0100 | <stevan> | [exa]: i've just pushed a C version of the test, which i believe uses `mmap` in the same way (and that works)? |
2022-01-03 13:11:46 +0100 | <geekosaur> | time is an emergent property of a system, ultimately. it may appear differently depending on the nature of the system, but it's still there |
2022-01-03 13:12:22 +0100 | <geekosaur> | (physicists don't like this viewpoint, but unless they can point me to an actual "ruler" for time measurement it's the only one we have) |
2022-01-03 13:12:26 +0100 | <stevan> | [exa]: also there's a haskell version that uses `mmap` in the same way and works in the `Mmap` module that you can run with `make works`. |
2022-01-03 13:12:54 +0100 | <ProfSimm> | geekosaur: the measure of time is not what I care about. Just causality and change |
2022-01-03 13:13:01 +0100 | <[exa]> | stevan: why do you do the posix_memaling? also I see no malloc, and running `valgrind` will probably tell you that `buf` is used with an uninitialized (aka random) value |
2022-01-03 13:13:17 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds) |
2022-01-03 13:13:20 +0100 | <geekosaur> | change is an observational attribute, not an attribute of a system |
2022-01-03 13:13:32 +0100 | <ProfSimm> | geekosaur: although there are some theories that causality is an illusion, and it's just two events (effect-antieffect) that occur at once, but we observe them one after another and assume one caused the other. |
2022-01-03 13:13:35 +0100 | nhatanh02 | (~satori@123.24.172.30) (Ping timeout: 256 seconds) |
2022-01-03 13:14:08 +0100 | <ProfSimm> | geekosaur: in that sense, time is indeed absolutely nothing like what we think it is |
2022-01-03 13:14:10 +0100 | <stevan> | [exa]: `mmap` needs page aligned memory, that's what `posix_memalign` does and malloc doesn't. |
2022-01-03 13:14:11 +0100 | vysn | (~vysn@user/vysn) |
2022-01-03 13:14:26 +0100 | <[exa]> | stevan: it can nicely page-align itself, you don't need to care about that |
2022-01-03 13:14:38 +0100 | <[exa]> | read the manual :] |
2022-01-03 13:15:00 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) |
2022-01-03 13:15:00 +0100 | <ProfSimm> | geekosaur: wouldn't you say most systems seem specified in terms of "this attribute can change" and "this may not change" |
2022-01-03 13:15:26 +0100 | <ProfSimm> | geekosaur: maybe all systems, all machines. A car's wheels can rotate but not rotate off away from the car |
2022-01-03 13:15:26 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 13:15:43 +0100 | <[exa]> | I'm usually just putting NULL as the first argument, there are no reasons for forcing the maps to an exact place in memory IF you do not control the whole address space anyway |
2022-01-03 13:16:04 +0100 | coolnickname | (uid531864@user/coolnickname) |
2022-01-03 13:16:11 +0100 | <[exa]> | stevan: (and I assume you're not writing a linker loader :D ) |
2022-01-03 13:16:18 +0100 | <geekosaur> | ProfSimm, we're talking past each other |
2022-01-03 13:16:37 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2022-01-03 13:17:42 +0100 | <geekosaur> | you're focused on the Newtonian level and effectively asserting it's "reality". I'm focused on the quantum level that enables the Newtonian level, because it does leak through and much of what you assert is enabled only by the quantum wave functions underneath |
2022-01-03 13:17:44 +0100 | <ProfSimm> | geekosaur: I'm sorry, I just wanted to finish a train of thought |
2022-01-03 13:18:02 +0100 | <stevan> | [exa]: i'm not sure i follow, i want the mmap to make the memory allocated by the bytearray to be shared with the file, so that if i poke the bytearray the file is updated. if the first argument to mmap is NULL, then mmap gives me a new pointer that has no connection to the bytearray? |
2022-01-03 13:18:55 +0100 | <geekosaur> | but you don't even need the uantum level, general relativity asserts that causality is questionable. and we already see this with GPS (in fact, that's how GPS works) |
2022-01-03 13:19:20 +0100 | <ProfSimm> | geekosaur: the effect-antieffect being perceived as cause effect is in a way projecting entanglement into Newtonian physics |
2022-01-03 13:19:28 +0100 | <geekosaur> | the causality you see from your frame of reference is not guaranteed to be the causality I see from my frame of reference. this screws with procedural systems badly |
2022-01-03 13:19:47 +0100 | <stevan> | [exa]: i don't just give mmap a hint, i use MAP_FIXED so that mmap uses exactly that address. |
2022-01-03 13:20:07 +0100 | <[exa]> | stevan: you need to make the bytearray at the place where mmap tells you the data is mapped. Just use mmap() instead of malloc() here |
2022-01-03 13:20:18 +0100 | <geekosaur> | also I think we need to take this to -offtopic |
2022-01-03 13:20:19 +0100 | <ProfSimm> | geekosaur: in relativity at least causality is maintained |
2022-01-03 13:20:24 +0100 | <geekosaur> | nope |
2022-01-03 13:20:55 +0100 | <geekosaur> | there are frames of reference where the effect precedes the cause |
2022-01-03 13:21:06 +0100 | <ProfSimm> | geekosaur: wouldn't those exceed C |
2022-01-03 13:21:08 +0100 | <geekosaur> | --> -offtopic |
2022-01-03 13:21:20 +0100 | <ProfSimm> | geekosaur: I'm there but... do I type with a dash |
2022-01-03 13:22:13 +0100 | <[exa]> | stevan: the problem there is that if you make a bytearray with malloc, you occupy the memory pages, and these can't be used for paging in the file data. You need to choose either of the page "backends" there, but not both |
2022-01-03 13:22:32 +0100 | <geekosaur> | ProfSimm: #haskell-offtopic |
2022-01-03 13:23:25 +0100 | <stevan> | [exa]: hmm, wouldn't i need to make a `MutableByteArray#` from a `Ptr` then? is that possible? |
2022-01-03 13:23:36 +0100 | <[exa]> | yes there should be a function for that |
2022-01-03 13:24:43 +0100 | <stevan> | [exa]: do you know where? :-) |
2022-01-03 13:24:55 +0100 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 256 seconds) |
2022-01-03 13:25:48 +0100 | <[exa]> | stevan: I recall there's something that just gives you a MutableVector over the mmap, or even ByteString |
2022-01-03 13:28:36 +0100 | d0ku | (~d0ku@178.43.48.143.ipv4.supernova.orange.pl) |
2022-01-03 13:28:49 +0100 | <[exa]> | ha, you might like Data.Vector.Storable.MMap (package vector-mmap) |
2022-01-03 13:29:10 +0100 | <[exa]> | do you need precisely the MutableByteArray# type? (guess: no) |
2022-01-03 13:29:51 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-03 13:29:54 +0100 | <stevan> | i think i do, because i want atomic operations like `fetchAddIntArray#` |
2022-01-03 13:31:09 +0100 | <[exa]> | oh wow, no idea there then |
2022-01-03 13:31:23 +0100 | <[exa]> | but there really should be something similar |
2022-01-03 13:31:47 +0100 | whatif | (~user@47.245.54.240) (Quit: ERC (IRC client for Emacs 26.3)) |
2022-01-03 13:32:06 +0100 | <[exa]> | at worst you can do your operations normally over the MVector using ST, and then just put the barrier there manually. Do you need _fast_ interprocess/thread synchronization there? |
2022-01-03 13:32:09 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 13:33:11 +0100 | xff0x | (~xff0x@2001:1a81:5370:9b00:ba06:1021:b5e3:5719) (Ping timeout: 250 seconds) |
2022-01-03 13:33:24 +0100 | <stevan> | yes, i want lock-free atomic counters as a building block for other metrics such as histograms |
2022-01-03 13:33:52 +0100 | gaff | (~gaff@49.207.213.199) |
2022-01-03 13:34:06 +0100 | xff0x | (~xff0x@2001:1a81:5370:9b00:6eaf:9722:88af:e2d) |
2022-01-03 13:35:07 +0100 | <c_wraith> | do atomic operations work properly on mmapped memory that's shared between processes anyway? |
2022-01-03 13:35:46 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4) |
2022-01-03 13:35:49 +0100 | <geekosaur> | only if you use atomic CPU operations. if you're trying to do STM across processes, stop now; it will not work |
2022-01-03 13:36:08 +0100 | <[exa]> | yeah, only with proper barriers executed in hardware |
2022-01-03 13:36:44 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 13:36:50 +0100 | <stevan> | which fetchAddIntArray# provides, right? |
2022-01-03 13:38:18 +0100 | <[exa]> | yeah it does `lock xadd` |
2022-01-03 13:43:55 +0100 | <stevan> | ok so, [exa] are you sure that the way i use mmap is wrong and not a ghc bug? because otherwise given the current ghc prim ops it doesn't seem possible to do what you suggested (mmap first then create a bytearray from the ptr that mmap returns)? |
2022-01-03 13:44:18 +0100 | nhatanh02 | (~satori@123.24.172.30) |
2022-01-03 13:45:11 +0100 | <[exa]> | I'm not sure why exactly it's failing but certainly mmapping _over_ already mapped pages doesn't seem like a working solution |
2022-01-03 13:46:30 +0100 | <stevan> | already mmaped? does `mallocForeignPtrAlignedBytes` mmap pages? |
2022-01-03 13:47:07 +0100 | max22- | (~maxime@2a01cb088335980025788ae3ce756a00.ipv6.abo.wanadoo.fr) |
2022-01-03 13:47:16 +0100 | <stevan> | s/mallocForeignPtrAlignedBytes/newAlignedPinnedByteArray/ |
2022-01-03 13:47:22 +0100 | mmhat | (~mmh@55d48037.access.ecotel.net) (Quit: WeeChat 3.4) |
2022-01-03 13:48:16 +0100 | <[exa]> | the newBytePinnedArray needs to create it in some mapped memory right? (mapped = the pages are available to the process, e.g. as a result of calling brk() or mmap()) |
2022-01-03 13:51:09 +0100 | <stevan> | hmm, i don't see this when i run strace though? |
2022-01-03 13:51:35 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-03 13:52:11 +0100 | jespada | (~jespada@87.74.33.157) (Quit: Textual IRC Client: www.textualapp.com) |
2022-01-03 13:52:16 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-03 13:52:41 +0100 | nhatanh02 | (~satori@123.24.172.30) (Ping timeout: 256 seconds) |
2022-01-03 13:52:50 +0100 | <[exa]> | stevan: it's probably allocated internally from memory that's already owned by RTS |
2022-01-03 13:53:27 +0100 | <[exa]> | (likewise, malloc() usually doesn't cause a syscall on each call as well) |
2022-01-03 13:53:36 +0100 | <stevan> | ah ok |
2022-01-03 13:54:00 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-03 13:54:40 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 13:55:02 +0100 | <[exa]> | anyway that doesn't solve your problem there |
2022-01-03 13:55:19 +0100 | <stevan> | (ok so that explains why the posixMemAlign version works: it allocates outside of the rts) |
2022-01-03 13:55:20 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Client Quit) |
2022-01-03 13:55:37 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-01-03 13:56:53 +0100 | <[exa]> | ha! |
2022-01-03 13:57:11 +0100 | <[exa]> | stevan: massiv package does the wrapping internally as such: https://hackage.haskell.org/package/massiv-1.0.1.1/docs/src/Data.Massiv.Array.Manifest.Primitive.h… |
2022-01-03 13:58:55 +0100 | jayant | (~quassel@223.236.0.223) (Ping timeout: 256 seconds) |
2022-01-03 13:58:59 +0100 | <[exa]> | so they are somehow creating a temporary MutableByteArray# wrap there and using it for running the primitive operation |
2022-01-03 13:59:31 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 14:00:04 +0100 | jayant | (~quassel@223.236.0.223) |
2022-01-03 14:01:25 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e70c580124c5fb62625.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-03 14:01:25 +0100 | acidjnk | (~acidjnk@p200300d0c7271e70c580124c5fb62625.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-03 14:01:43 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-03 14:08:15 +0100 | jespada | (~jespada@87.74.33.157) |
2022-01-03 14:15:36 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 14:17:10 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-01-03 14:17:25 +0100 | <stevan> | [exa]: thanks, will have a look. meanwhile i tried to mmap already mmapped memory in C and it seems to work. (just pushed changes to the repo.) |
2022-01-03 14:21:17 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:df45:34e6:a5aa:758) (Ping timeout: 240 seconds) |
2022-01-03 14:21:41 +0100 | <[exa]> | yeah, re-mmapping discards a part of the original mmap, in this case leaving it empty |
2022-01-03 14:21:55 +0100 | <[exa]> | I'd really avoid trying that. |
2022-01-03 14:22:30 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:fd9c:24e7:5ea:6f47) |
2022-01-03 14:25:46 +0100 | <stevan> | i don't see the point with the massiv example you linked to, they carry around a mutablebytearray in their `MPArray` type, so its no surprise they can do fetchAddIntArray# on it? |
2022-01-03 14:27:57 +0100 | <stevan> | (i dunno this library so maybe i'm missing something obvious, can they build `MPArray` from a `Ptr`?) |
2022-01-03 14:29:07 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2022-01-03 14:33:49 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 14:38:45 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 14:38:56 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-03 14:39:31 +0100 | <[exa]> | stevan: it looked like that to me |
2022-01-03 14:40:28 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-03 14:40:29 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-01-03 14:42:09 +0100 | canta | (~canta@user/canta) |
2022-01-03 14:43:43 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2022-01-03 14:44:23 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2022-01-03 14:44:32 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-01-03 14:45:19 +0100 | <stevan> | the docs for `mallocForeignPtr` which uses ` newAlignedPinnedByteArray# ` say: "although it may be implemented differently internally: you may not assume that the memory returned by 'mallocForeignPtr' has been allocated with 'Foreign.Marshal.Alloc.malloc'" and `Foreign.Mashal.Alloc.malloc` uses C's malloc, if that's true then mmap shouldn't happen twice? |
2022-01-03 14:46:11 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 14:49:13 +0100 | <[exa]> | stevan: maybe it would be reasonable at this point to ask at #ghc if there's some GHC.Exts way to just run the atomic add instruction on a Ptr |
2022-01-03 14:49:39 +0100 | <[exa]> | or on MVector or something |
2022-01-03 14:50:39 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 14:51:44 +0100 | yates | (~user@fv-nc-f7af8b91e1-234237-1.tingfiber.com) |
2022-01-03 14:53:36 +0100 | <yates> | i don't understand how "lazy evaluation" can work. how can a running program know in advance how many instances of aspecific function call with the same inputs are to be made? |
2022-01-03 14:54:40 +0100 | <stevan> | [exa]: thanks for your help, will do |
2022-01-03 14:55:24 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 14:55:48 +0100 | <kritzefitz> | yates: why do you think that has to be known in advance? |
2022-01-03 14:57:41 +0100 | <yates> | otherwise how does it know when evaluation is necessary? |
2022-01-03 14:57:47 +0100 | <yates> | kritzefitz: ^^ |
2022-01-03 14:57:53 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-03 14:58:46 +0100 | <yates> | maybe i am confused. i'm just taking my first look at haskell |
2022-01-03 14:59:17 +0100 | <yates> | i come from c/c++/assembly |
2022-01-03 15:01:10 +0100 | <kritzefitz> | You don't have to know _in advance_ if something will have to be evaluated. You just start evaluating something if you notice that it is needed right now (i.e. at runtime). |
2022-01-03 15:02:47 +0100 | <yates> | why would a programmer make a function call if the result is not needed immediately? |
2022-01-03 15:03:11 +0100 | <stevan> | yates: consider the following example `take 10 [1..1000]`, because of laziness the whole list [1,2,...,1000] won't be constructed (only [1,2,...,10] is needed because of `take 10`) think of it as you evaluate as much as you need. |
2022-01-03 15:03:20 +0100 | sagax | (~sagax_nb@user/sagax) |
2022-01-03 15:03:25 +0100 | nhatanh02 | (~satori@123.24.172.30) |
2022-01-03 15:04:06 +0100 | max22- | (~maxime@2a01cb088335980025788ae3ce756a00.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds) |
2022-01-03 15:04:17 +0100 | <tdammers> | lazy evaluation makes more sense once you have a better intuition for equational reasoning (as opposed to the operational reasoning that is the norm in imperative languages) |
2022-01-03 15:04:32 +0100 | <lortabac> | yates: imagine the expression f (g (h x)), in a strict language the runtime would evaluate (h x) first, then evaluate the application of g to the result and so on |
2022-01-03 15:04:34 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) (Quit: Client limit exceeded: 20000) |
2022-01-03 15:04:44 +0100 | <lortabac> | in other words it proceeds inside-out |
2022-01-03 15:04:57 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) |
2022-01-03 15:05:02 +0100 | <lortabac> | in a non-strict language it is the opposite, you start from the "outside" |
2022-01-03 15:05:16 +0100 | <lortabac> | that's the main difference |
2022-01-03 15:06:51 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2022-01-03 15:07:09 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-01-03 15:09:20 +0100 | KvL | (~KvL@user/KvL) (Quit: KvL) |
2022-01-03 15:10:03 +0100 | <yates> | lortabac: sounds like composition "from the left" or "from the right" that is discussed in abstract algebra |
2022-01-03 15:11:41 +0100 | <yates> | i've bitten off enough for now - thank you for your kind and helpful input |
2022-01-03 15:11:54 +0100 | <yates> | (baby steps, Ellie...) |
2022-01-03 15:11:54 +0100 | <lortabac> | yates: I'm not familiar with abstract algebra, in practice the difference is that the arguments of a function are not evaluated immediately (and sometimes not evaluated at all) |
2022-01-03 15:12:26 +0100 | <lortabac> | for example if you have (f x = 1), x does not need to be evaluated at all |
2022-01-03 15:13:11 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 15:13:12 +0100 | <lortabac> | whereas in a strict context it would be evaluated |
2022-01-03 15:14:12 +0100 | <yates> | i'll have to start learning the semantics |
2022-01-03 15:14:44 +0100 | <yates> | is there a recommended book on learning haskell? |
2022-01-03 15:14:54 +0100 | Everything | (~Everythin@37.115.210.35) (Quit: leaving) |
2022-01-03 15:16:58 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 15:17:04 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) (Remote host closed the connection) |
2022-01-03 15:17:55 +0100 | xsperry | (~xs@user/xsperry) (Remote host closed the connection) |
2022-01-03 15:18:15 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) |
2022-01-03 15:18:21 +0100 | <lortabac> | @where learn |
2022-01-03 15:18:21 +0100 | <lambdabot> | https://wiki.haskell.org/Learning_Haskell |
2022-01-03 15:18:55 +0100 | <lortabac> | yates: I don't know how up-to-date this page is, but hopefully it's a starting point |
2022-01-03 15:19:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2022-01-03 15:20:41 +0100 | dsrt^ | (~dsrt@207.5.21.20) |
2022-01-03 15:22:54 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-01-03 15:28:43 +0100 | max22- | (~maxime@2a01cb08833598005001445283c93f22.ipv6.abo.wanadoo.fr) |
2022-01-03 15:30:59 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2022-01-03 15:31:44 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 15:33:05 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 15:34:07 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 15:34:07 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 15:34:07 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 15:34:48 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 15:36:31 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-01-03 15:37:14 +0100 | xb0o2 | (~xb0o2@user/xb0o2) |
2022-01-03 15:37:40 +0100 | Jing | (~hedgehog@2604:a840:3::1013) |
2022-01-03 15:37:49 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-03 15:41:56 +0100 | stevenxl | (~stevenxl@174.128.182.180) |
2022-01-03 15:42:40 +0100 | <yates> | lortabac: thank you |
2022-01-03 15:43:05 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 15:46:22 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-03 15:54:28 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-03 15:55:12 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 276 seconds) |
2022-01-03 15:55:49 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-01-03 15:56:30 +0100 | <tomsmeding> | yates: for laziness, also consider watching this: https://youtu.be/I4lnCG18TaY |
2022-01-03 15:56:55 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) (Ping timeout: 256 seconds) |
2022-01-03 15:57:47 +0100 | <tomsmeding> | Depending on how far you are it might use a bit more haskell stuff than you know yet, but since I've watched that (as a haskeller with 4 years of xp or something) I feel like every beginner who has at least one question about laziness, should see this kind of visualisation |
2022-01-03 15:58:38 +0100 | <tomsmeding> | This video is just the best that I know of, but that's partly because there just isn't much content in that form |
2022-01-03 15:58:58 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-01-03 16:00:41 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2022-01-03 16:01:26 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 16:03:35 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-03 16:04:17 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 16:05:59 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 16:09:37 +0100 | neurocyte | (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
2022-01-03 16:11:32 +0100 | neurocyte | (~neurocyte@IP-212232081017.dynamic.medianet-world.de) |
2022-01-03 16:11:32 +0100 | neurocyte | (~neurocyte@IP-212232081017.dynamic.medianet-world.de) (Changing host) |
2022-01-03 16:11:32 +0100 | neurocyte | (~neurocyte@user/neurocyte) |
2022-01-03 16:11:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 16:11:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 16:11:51 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 16:15:50 +0100 | kritzefitz_ | (~kritzefit@fw-front.credativ.com) |
2022-01-03 16:15:54 +0100 | kritzefitz_ | (~kritzefit@fw-front.credativ.com) () |
2022-01-03 16:15:54 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-01-03 16:16:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 16:22:35 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 16:23:31 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-01-03 16:23:44 +0100 | bollu | (~bollu@159.65.151.13) (Quit: The Lounge - https://thelounge.chat) |
2022-01-03 16:24:15 +0100 | bollu | (~bollu@159.65.151.13) |
2022-01-03 16:24:41 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 256 seconds) |
2022-01-03 16:24:50 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2022-01-03 16:25:42 +0100 | kritzefitz | (~kritzefit@debian/kritzefitz) (Remote host closed the connection) |
2022-01-03 16:26:24 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 16:28:30 +0100 | kritzefitz | (~kritzefit@debian/kritzefitz) |
2022-01-03 16:31:11 +0100 | xsperry | (~xs@cpe-188-129-71-242.dynamic.amis.hr) |
2022-01-03 16:31:15 +0100 | xsperry | (~xs@cpe-188-129-71-242.dynamic.amis.hr) (Changing host) |
2022-01-03 16:31:15 +0100 | xsperry | (~xs@user/xsperry) |
2022-01-03 16:32:58 +0100 | sub0 | (~bc8147f2@cerf.good1.com) |
2022-01-03 16:35:47 +0100 | `2jt | (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) |
2022-01-03 16:42:50 +0100 | sirlensalot | (~sirlensal@ool-44c5f8c9.dyn.optonline.net) |
2022-01-03 16:44:12 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 16:51:28 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-03 16:51:57 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 16:53:33 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 16:53:35 +0100 | jinsun | (~quassel@user/jinsun) (Read error: Connection reset by peer) |
2022-01-03 16:55:40 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 16:56:13 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2022-01-03 16:57:07 +0100 | polyphem | (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a) |
2022-01-03 16:57:17 +0100 | lagash_ | (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
2022-01-03 16:57:40 +0100 | stevan | stevan_ |
2022-01-03 16:58:01 +0100 | neurocyte | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2022-01-03 16:58:17 +0100 | spaceseller | (~spacesell@31.147.205.13) |
2022-01-03 16:58:22 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) |
2022-01-03 17:00:23 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 17:00:35 +0100 | lagash | (lagash@lagash.shelltalk.net) |
2022-01-03 17:02:37 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) (Ping timeout: 240 seconds) |
2022-01-03 17:02:47 +0100 | fef | (~thedawn@user/thedawn) |
2022-01-03 17:04:21 +0100 | d0ku | (~d0ku@178.43.48.143.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
2022-01-03 17:04:22 +0100 | lechner | (~lechner@debian/lechner) |
2022-01-03 17:05:28 +0100 | stevan_ | (~stevan@user/stevan) (Quit: leaving) |
2022-01-03 17:08:11 +0100 | neurocyte | (~neurocyte@user/neurocyte) |
2022-01-03 17:10:21 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 17:10:40 +0100 | <tomjaguarpaw> | Is it usual that pandoc takes 2GB and over 7 minutes to compile? It was always bad, but I don't remember it being that bad. |
2022-01-03 17:11:36 +0100 | <tomjaguarpaw> | Hmm, over 4GB peak usage. Perhaps something has gone wrong here ... |
2022-01-03 17:12:08 +0100 | <[exa]> | tomjaguarpaw: some people here would probably argue that 4GB and 7 minutes is not yet in the "bad" range :D |
2022-01-03 17:13:29 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:3c92:b563:832f:4576) (Quit: WeeChat 2.8) |
2022-01-03 17:13:35 +0100 | <tomjaguarpaw> | Do we know why this happens? Everyone knows that GHC uses loads of memory, but I've never heard an explanation why. |
2022-01-03 17:14:32 +0100 | <polyphem> | ghc, the GreedyHaskellCompiler :) |
2022-01-03 17:18:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 17:19:10 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 17:20:06 +0100 | <janus> | tomjaguarpaw: i think there is some folklore around how to minimize resource usage of ghc? e.g. i have heard that manually written instances compile faster than derived ones |
2022-01-03 17:22:27 +0100 | <tomjaguarpaw> | It finally compiled! (On the second try after closing other programs to free up memory) |
2022-01-03 17:24:55 +0100 | <geekosaur> | janus, only Generic instances |
2022-01-03 17:25:02 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
2022-01-03 17:26:08 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
2022-01-03 17:30:13 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-01-03 17:30:18 +0100 | <sub0> | is there some extension that lets you import two modules with class instance for the same type (and allowing you to pick one of them)? |
2022-01-03 17:31:17 +0100 | cosimone` | (~user@93-47-228-11.ip115.fastwebnet.it) (Ping timeout: 240 seconds) |
2022-01-03 17:32:42 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-01-03 17:37:00 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 17:37:54 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
2022-01-03 17:38:06 +0100 | jinsun | (~quassel@user/jinsun) |
2022-01-03 17:38:41 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-03 17:38:55 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-01-03 17:40:37 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 17:41:01 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-01-03 17:41:52 +0100 | <lechner> | Hi, a few months ago I read about a tiny Haskell-like language with an cool, interactive REPL. It was from two guys in Israel. They have a tutorial online. Does anyone remember what I am taking about? Thanks! |
2022-01-03 17:46:00 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-01-03 17:48:02 +0100 | <geekosaur> | sub0, no, all instances are always global |
2022-01-03 17:48:53 +0100 | <sub0> | seems like it could be a useful extension though? right now I can't use two modules that do that, even if I don't use any of the class methods |
2022-01-03 17:49:35 +0100 | <geekosaur> | would require both a complete redesign of classes, and whole-program compilation |
2022-01-03 17:49:59 +0100 | zer0bitz | (~zer0bitz@196.244.192.60) |
2022-01-03 17:50:16 +0100 | <sub0> | why both? we can import modules that use same function or type names, and pick which one we use, without whole-program compilation |
2022-01-03 17:50:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2022-01-03 17:51:21 +0100 | <geekosaur> | because with separate compilation the only way a module knows a class or an instance is a global variable |
2022-01-03 17:51:49 +0100 | <geekosaur> | so the whole class system is designed around that |
2022-01-03 17:52:52 +0100 | Jing | (~hedgehog@2604:a840:3::1013) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-03 17:53:00 +0100 | <sub0> | I don't get why that would be the case. why can't we have per module class instances, and decide which instances we want to import and use, if any |
2022-01-03 17:53:05 +0100 | fef | (~thedawn@user/thedawn) (Quit: Leaving) |
2022-01-03 17:53:59 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-01-03 17:55:57 +0100 | vglfr | (~vglfr@46.96.180.119) (Ping timeout: 240 seconds) |
2022-01-03 17:56:22 +0100 | <geekosaur> | because the type system becomes unsound |
2022-01-03 17:56:57 +0100 | <geekosaur> | if I build a Map with one Ord instance and pass it to a module with a different Ord instance, the module is broken. same with Data.HashMap and Hashable instances |
2022-01-03 17:57:59 +0100 | <geekosaur> | what you want are SML openable modules, which are quite different from Haskell classes |
2022-01-03 17:58:23 +0100 | <geekosaur> | we have a limited ability to do that via Backpack but it's pretty much undocumented |
2022-01-03 17:58:23 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 17:58:25 +0100 | <sub0> | hmm. so for that to work, instances would need to be attached to objects, not types |
2022-01-03 17:58:37 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-03 17:58:48 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-01-03 18:00:07 +0100 | <sub0> | is that how SML modules work? |
2022-01-03 18:02:27 +0100 | <geekosaur> | no |
2022-01-03 18:03:26 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2022-01-03 18:04:39 +0100 | <geekosaur> | I'm a bit weak on it but I think you can open a functor (parameterized module) locally and provide it with e.g. an Ord "instance" via a signature, but any value you work with has a type which includes the "instance" and will mismatch when passed to a functor parameterized differently |
2022-01-03 18:05:42 +0100 | jayant | (~quassel@223.236.0.223) (Read error: Connection reset by peer) |
2022-01-03 18:06:16 +0100 | fresheyeball | (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) |
2022-01-03 18:07:37 +0100 | econo | (uid147250@user/econo) |
2022-01-03 18:07:37 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 18:08:21 +0100 | jinsun | (~quassel@user/jinsun) (Read error: Connection reset by peer) |
2022-01-03 18:09:31 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds) |
2022-01-03 18:11:10 +0100 | jinsun | (~quassel@user/jinsun) |
2022-01-03 18:12:13 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 18:12:23 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-01-03 18:12:33 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-01-03 18:13:03 +0100 | <geekosaur> | anyway if it were permitted, separate compilation would be impossible unless you *always* specified the "instance" you wanted (as SML functors do), since it wouldn't be able to resolve the instance at all otherwise |
2022-01-03 18:15:57 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds) |
2022-01-03 18:17:37 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2022-01-03 18:17:43 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) |
2022-01-03 18:17:59 +0100 | spaceseller | (~spacesell@31.147.205.13) (Quit: Leaving) |
2022-01-03 18:20:35 +0100 | vglfr | (~vglfr@46.96.180.119) |
2022-01-03 18:20:37 +0100 | MoC | (~moc@user/moc) |
2022-01-03 18:21:50 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-03 18:22:10 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2022-01-03 18:23:29 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-01-03 18:25:55 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 18:27:35 +0100 | obfusk_ | (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-01-03 18:27:58 +0100 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) |
2022-01-03 18:28:59 +0100 | slack1256 | (~slack1256@191.126.227.213) |
2022-01-03 18:29:01 +0100 | <EvanR> | sub0, there's a video about why type classes should be... on types https://www.youtube.com/watch?v=hIZxTQP1ifo |
2022-01-03 18:29:27 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-01-03 18:29:48 +0100 | <slack1256> | Is there a function with the signature `idCallStack :: HasCallStack => a -> a`? |
2022-01-03 18:29:55 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds) |
2022-01-03 18:30:16 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) (Quit: leaving) |
2022-01-03 18:30:27 +0100 | fef | (~thedawn@user/thedawn) |
2022-01-03 18:30:27 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 18:30:50 +0100 | <geekosaur> | EvanR, their real question is why are they global instead of module local |
2022-01-03 18:31:51 +0100 | <polyphem> | this talk https://www.youtube.com/watch?v=2EdQFCP5mZ8 loks at typeclasses in comparison to with scalas implicits , funny talk |
2022-01-03 18:32:02 +0100 | <polyphem> | *looks* |
2022-01-03 18:37:59 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-03 18:42:23 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-01-03 18:43:44 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-01-03 18:46:51 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 18:47:42 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2022-01-03 18:49:01 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-03 18:49:24 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-01-03 18:53:18 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2022-01-03 18:53:34 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) |
2022-01-03 18:55:25 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 18:57:30 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 18:57:30 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 18:57:30 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 18:58:37 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
2022-01-03 18:58:57 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
2022-01-03 18:59:30 +0100 | Kaiepi | (~Kaiepi@156.34.47.253) |
2022-01-03 18:59:36 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2022-01-03 19:01:57 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-01-03 19:03:21 +0100 | yauhsien | (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-01-03 19:03:21 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 19:07:44 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
2022-01-03 19:10:28 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2022-01-03 19:11:32 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 19:11:32 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 19:11:32 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 19:13:15 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 19:14:51 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2022-01-03 19:15:57 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-03 19:16:40 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 19:17:34 +0100 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .) |
2022-01-03 19:19:23 +0100 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
2022-01-03 19:19:48 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-03 19:21:50 +0100 | gaff | (~gaff@49.207.213.199) (Quit: Bye ...) |
2022-01-03 19:22:08 +0100 | gaff | (~gaff@49.207.213.199) |
2022-01-03 19:22:20 +0100 | gaff | (~gaff@49.207.213.199) (Client Quit) |
2022-01-03 19:23:53 +0100 | fresheyeball | (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2022-01-03 19:24:17 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-03 19:25:37 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-01-03 19:28:56 +0100 | otherwise | (~otherwise@2601:602:880:90f0:b9b8:da9b:a3ca:da99) |
2022-01-03 19:29:15 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2022-01-03 19:34:52 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 19:36:16 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-01-03 19:39:28 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 19:39:30 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-01-03 19:42:45 +0100 | vysn | (~vysn@user/vysn) |
2022-01-03 19:47:41 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 19:48:23 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 19:48:23 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 19:48:23 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 19:48:28 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-01-03 19:51:01 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-01-03 19:51:17 +0100 | ec_ | ec |
2022-01-03 19:51:53 +0100 | shapr | (~user@2601:7c0:c202:5190:269b:9097:c1eb:4c93) |
2022-01-03 19:54:57 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
2022-01-03 19:55:49 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 19:56:17 +0100 | `2jt | (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2022-01-03 19:56:53 +0100 | stevenxl | (~stevenxl@174.128.182.180) (Quit: leaving) |
2022-01-03 19:57:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 19:57:55 +0100 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2022-01-03 19:58:22 +0100 | shapr | (~user@2601:7c0:c202:5190:269b:9097:c1eb:4c93) (Remote host closed the connection) |
2022-01-03 19:59:45 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 20:00:43 +0100 | shapr | (~user@2601:7c0:c202:5190:daf3:e6d8:8056:7417) |
2022-01-03 20:00:58 +0100 | jco | (~jco@90-228-194-139-no542.tbcn.telia.com) |
2022-01-03 20:01:20 +0100 | <sub0> | should I use process or typed-process for running a CLI program and interacting with its stdin/stdout? |
2022-01-03 20:03:19 +0100 | <jco> | Hi, is there a key I can press in `ghcid` to make it "rerun"? I'm using it for running Cabal tests, but it seems it doesn't "detect" changes in my system-under-test code, so I have to make a dummy change in the test file, to make it pick up that something needs to happen... |
2022-01-03 20:05:39 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 20:05:46 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-01-03 20:06:51 +0100 | `2jt | (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) |
2022-01-03 20:06:56 +0100 | <EvanR> | I've used System.Process without much problem |
2022-01-03 20:08:09 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-03 20:08:24 +0100 | aku | (~aku@163.172.137.34) |
2022-01-03 20:09:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-03 20:11:42 +0100 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
2022-01-03 20:12:03 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-01-03 20:14:47 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds) |
2022-01-03 20:15:43 +0100 | hyiltiz | (~quassel@31.220.5.250) |
2022-01-03 20:16:38 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-01-03 20:18:20 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 20:19:13 +0100 | otherwise | (~otherwise@2601:602:880:90f0:b9b8:da9b:a3ca:da99) () |
2022-01-03 20:21:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2022-01-03 20:26:01 +0100 | cosimone | (~user@93-47-228-11.ip115.fastwebnet.it) |
2022-01-03 20:26:17 +0100 | deadmarshal | (~deadmarsh@95.38.118.93) (Ping timeout: 240 seconds) |
2022-01-03 20:28:18 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
2022-01-03 20:28:34 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 20:28:52 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-01-03 20:29:02 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi) |
2022-01-03 20:29:54 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2022-01-03 20:31:01 +0100 | slack1256 | (~slack1256@191.126.227.213) (Remote host closed the connection) |
2022-01-03 20:31:37 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-03 20:38:41 +0100 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) (Quit: Client limit exceeded: 20000) |
2022-01-03 20:40:15 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds) |
2022-01-03 20:40:15 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-01-03 20:42:15 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-03 20:45:19 +0100 | sub0 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Error)) |
2022-01-03 20:45:40 +0100 | sub0 | (~bc8147f2@cerf.good1.com) |
2022-01-03 20:46:47 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 20:50:59 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 20:55:04 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-01-03 21:02:24 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-01-03 21:04:20 +0100 | werneta_ | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2022-01-03 21:05:03 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 256 seconds) |
2022-01-03 21:06:44 +0100 | juhp | (~juhp@128.106.188.82) |
2022-01-03 21:08:08 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) |
2022-01-03 21:09:18 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 21:09:59 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-03 21:10:35 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection) |
2022-01-03 21:10:51 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-03 21:11:24 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection) |
2022-01-03 21:12:56 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 21:14:17 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds) |
2022-01-03 21:14:46 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::45db) |
2022-01-03 21:15:49 +0100 | SridharRatnakuma | (~sridmatri@2001:470:69fc:105::1c2) (Quit: Client limit exceeded: 20000) |
2022-01-03 21:16:29 +0100 | octeep[m] | (~octeepoct@2001:470:69fc:105::1:3dbf) (Quit: Client limit exceeded: 20000) |
2022-01-03 21:17:31 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-01-03 21:17:34 +0100 | xb0o2 | (~xb0o2@user/xb0o2) (Quit: Client closed) |
2022-01-03 21:19:28 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::45db) (Remote host closed the connection) |
2022-01-03 21:19:50 +0100 | Heffalump[m] | (~hsenagmat@2001:470:69fc:105::e11) (Quit: Client limit exceeded: 20000) |
2022-01-03 21:20:18 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::45db) |
2022-01-03 21:20:27 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-03 21:23:32 +0100 | <[itchyjunk]> | I know this might be a horrible solution to the problem but the exercise said to define a function f :: String -> Sting that take string and returns the upper case of it. |
2022-01-03 21:23:33 +0100 | <[itchyjunk]> | https://bpa.st/ZEGQ |
2022-01-03 21:23:41 +0100 | <[itchyjunk]> | this is my first solution to it |
2022-01-03 21:23:45 +0100 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) |
2022-01-03 21:23:57 +0100 | Heffalump[m] | (~hsenagmat@2001:470:69fc:105::e11) |
2022-01-03 21:23:57 +0100 | aidy | (~aidy@2001:470:69fc:105::c7b4) (Quit: Client limit exceeded: 20000) |
2022-01-03 21:24:09 +0100 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Quit: Client limit exceeded: 20000) |
2022-01-03 21:24:11 +0100 | octeep[m] | (~octeepoct@2001:470:69fc:105::1:3dbf) |
2022-01-03 21:24:19 +0100 | <dsal> | @hoogle toUpper |
2022-01-03 21:24:19 +0100 | <lambdabot> | Data.Char toUpper :: Char -> Char |
2022-01-03 21:24:19 +0100 | <lambdabot> | GHC.Unicode toUpper :: Char -> Char |
2022-01-03 21:24:19 +0100 | <lambdabot> | Data.Text toUpper :: Text -> Text |
2022-01-03 21:24:24 +0100 | SridharRatnakuma | (~sridmatri@2001:470:69fc:105::1c2) |
2022-01-03 21:24:33 +0100 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2022-01-03 21:24:40 +0100 | polyphem_ | (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a) |
2022-01-03 21:24:46 +0100 | aidy | (~aidy@2001:470:69fc:105::c7b4) |
2022-01-03 21:24:53 +0100 | <monochrom> | You currently have Char->Char but you're on the right track. |
2022-01-03 21:25:33 +0100 | <dsal> | Char -> Char is definitely the right start. |
2022-01-03 21:25:34 +0100 | kalxd[m] | (~kalxdmatr@2001:470:69fc:105::1:576e) (Quit: Client limit exceeded: 20000) |
2022-01-03 21:26:00 +0100 | <[itchyjunk]> | wait, my solution doesn't satisfy the requirement of problem 1 here ? |
2022-01-03 21:26:01 +0100 | kalxd[m] | (~kalxdmatr@2001:470:69fc:105::1:576e) |
2022-01-03 21:26:02 +0100 | <[itchyjunk]> | https://www.cantab.net/users/antoni.diller/haskell/questions/quest05.pdf |
2022-01-03 21:26:11 +0100 | <geekosaur> | Char is not String |
2022-01-03 21:26:13 +0100 | polyphem | (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a) (Ping timeout: 240 seconds) |
2022-01-03 21:26:22 +0100 | <[itchyjunk]> | ah right String is [Char] dur |
2022-01-03 21:26:43 +0100 | <geekosaur> | you're missing only one part |
2022-01-03 21:27:12 +0100 | <geekosaur> | the same part you'd be missing if you had used Data.Char.toUpper instead of defining it yourself |
2022-01-03 21:28:16 +0100 | <monochrom> | You are just one step away, and the title of the PDF says what it is. :) |
2022-01-03 21:28:32 +0100 | <[itchyjunk]> | ah i use map `map toUpper "string"` |
2022-01-03 21:28:40 +0100 | simendsjo | (~user@84.211.91.241) |
2022-01-03 21:28:41 +0100 | <[itchyjunk]> | i just need to incorporate that into a function |
2022-01-03 21:28:45 +0100 | <monochrom> | Well, apart from handling non-English letters such as û... |
2022-01-03 21:28:48 +0100 | <[itchyjunk]> | so it's `String -> String` |
2022-01-03 21:28:59 +0100 | <geekosaur> | Data.Char doesn't either, iiirc |
2022-01-03 21:29:57 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-01-03 21:29:59 +0100 | <dsal> | BTW, if you want to avoid a guard, you can write the above like `toUpper x = if x `elem` ['a'..'z'] then chr (ord x - 32)` |
2022-01-03 21:30:42 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 21:30:56 +0100 | <[itchyjunk]> | does my capitalize function satisfy that problem condition? |
2022-01-03 21:30:57 +0100 | <[itchyjunk]> | https://bpa.st/VNXA |
2022-01-03 21:31:09 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 21:31:09 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 21:31:09 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 21:31:36 +0100 | <[itchyjunk]> | ah ascii (utf?) manupulation, that crossed my mind for a second too |
2022-01-03 21:32:01 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-03 21:32:15 +0100 | <geekosaur> | hm. |
2022-01-03 21:32:19 +0100 | <monochrom> | I would write it off as "the question is open-ended" and not worry. |
2022-01-03 21:32:24 +0100 | <geekosaur> | > toUpper 'ß' |
2022-01-03 21:32:25 +0100 | <lambdabot> | '\223' |
2022-01-03 21:32:31 +0100 | <geekosaur> | > text $ toUpper 'ß' |
2022-01-03 21:32:33 +0100 | <lambdabot> | error: |
2022-01-03 21:32:33 +0100 | <lambdabot> | • Couldn't match type ‘Char’ with ‘[Char]’ |
2022-01-03 21:32:33 +0100 | <lambdabot> | Expected type: String |
2022-01-03 21:32:44 +0100 | <geekosaur> | > text $ toUpper 'ß' : [] |
2022-01-03 21:32:45 +0100 | <lambdabot> | ß |
2022-01-03 21:32:52 +0100 | <monochrom> | Either that, or use standard library's toUpper so "at least it's someone else to blame" |
2022-01-03 21:33:09 +0100 | <monochrom> | > char (toUpper 'û') |
2022-01-03 21:33:10 +0100 | <lambdabot> | Û |
2022-01-03 21:33:26 +0100 | <geekosaur> | didn't handle es-zet though |
2022-01-03 21:33:31 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-03 21:34:57 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 21:35:46 +0100 | <[itchyjunk]> | Ah so solve it for a single value then map it to each element of the list |
2022-01-03 21:35:47 +0100 | <[itchyjunk]> | https://bpa.st/YK4Q |
2022-01-03 21:35:50 +0100 | <[itchyjunk]> | fun |
2022-01-03 21:36:55 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 21:37:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-01-03 21:42:04 +0100 | <monochrom> | Yeah that's the spirit. |
2022-01-03 21:43:36 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2022-01-03 21:44:14 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2022-01-03 21:45:14 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 21:45:14 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 21:45:14 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 21:48:14 +0100 | hrdl | (~hrdl@mail.hrdl.eu) (Remote host closed the connection) |
2022-01-03 21:50:43 +0100 | hrdl | (~hrdl@mail.hrdl.eu) |
2022-01-03 21:50:57 +0100 | soft | (~soft@2001:470:69fc:105::c75) (Quit: Client limit exceeded: 20000) |
2022-01-03 21:53:13 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 21:53:51 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-01-03 21:54:10 +0100 | takuan_dozo | (~takuan@178-116-218-225.access.telenet.be) |
2022-01-03 21:54:18 +0100 | takuan_dozo | (~takuan@178-116-218-225.access.telenet.be) (Client Quit) |
2022-01-03 21:54:58 +0100 | <prrxddq[m]> | Hey guys, I am trying to learn something about profiling. But I am failing at the first command.... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/724af6d32151117bbb99c3c09f84d651b978…) |
2022-01-03 21:57:45 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-03 21:57:56 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2022-01-03 22:01:51 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 22:03:11 +0100 | <geekosaur> | "Loaded package environment from /home/xddq/.ghc/x86_64-linux-8.10.7/environments/default" |
2022-01-03 22:03:21 +0100 | <geekosaur> | rerun the cabal install command with --lib, maybe |
2022-01-03 22:03:24 +0100 | soft | (~soft@2001:470:69fc:105::c75) |
2022-01-03 22:05:37 +0100 | <sm> | prrxddq: probably nothing.. standard fragile haskell toolchain issues :/ |
2022-01-03 22:05:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 22:05:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 22:05:51 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-03 22:06:03 +0100 | <sm> | I'd probably try reinstalling ghc / installing it a different way |
2022-01-03 22:06:27 +0100 | <geekosaur> | neh, this looks like they did a v2-install and then tried to use the result with ghc directly instead of via cabal |
2022-01-03 22:06:49 +0100 | <geekosaur> | so either v1-install, or note that it's using a package environment and use --lib to update the environment |
2022-01-03 22:09:25 +0100 | <sm> | that answer is terrifying :) |
2022-01-03 22:10:17 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-03 22:10:55 +0100 | <geekosaur> | the terrifying part if working with bare ghc |
2022-01-03 22:11:00 +0100 | <geekosaur> | *is working |
2022-01-03 22:11:02 +0100 | <prrxddq[m]> | geekosaur: Sorry I don't understand the implied consequences. I did try to append the --lib argument to the cabal install but it did not change the output of the ghc one. |
2022-01-03 22:12:09 +0100 | <geekosaur> | it should have resolved the missing random library and left the other three not found because you only reinstalled the one |
2022-01-03 22:15:00 +0100 | <geekosaur> | anyway v2-install (which is default these days) is designed to be used with what cabal calls nix-style builds and I tend to think of as implicit sandboxing |
2022-01-03 22:15:35 +0100 | <geekosaur> | because ghc will get anything wrong it can when given the chance, so modern haskell tooling whacks it over the head to keep it from seeing stuff that will confuse it |
2022-01-03 22:16:15 +0100 | <geekosaur> | so the ideal ways to use it is to make a cabal project, specify the libraries you want as dependencies, then "cabal build -p" the project |
2022-01-03 22:17:11 +0100 | <sm> | should cabal exec -p -- ghc ... work ? |
2022-01-03 22:18:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2022-01-03 22:19:11 +0100 | <geekosaur> | I don't think -p can work there because it has no idea what dependencies to build profiled |
2022-01-03 22:19:27 +0100 | <geekosaur> | maybe with --package |
2022-01-03 22:19:37 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 22:19:51 +0100 | nhatanh02 | (~satori@123.24.172.30) (Ping timeout: 256 seconds) |
2022-01-03 22:20:37 +0100 | <sm> | I can say that `stack exec -- ghc -prof -fprof-auto -rtsopts Main.hs` worked here, randomly or not |
2022-01-03 22:21:01 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:fd9c:24e7:5ea:6f47) (Ping timeout: 240 seconds) |
2022-01-03 22:21:02 +0100 | <sm> | by luck or not |
2022-01-03 22:21:11 +0100 | pavonia | (~user@user/siracusa) |
2022-01-03 22:21:42 +0100 | <sm> | pretty much no haskell examples work as written, even the official GHC docs. This is sad |
2022-01-03 22:23:05 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:58c5:6207:2988:1b06) |
2022-01-03 22:25:29 +0100 | machinedgod | (~machinedg@24.105.81.50) (Remote host closed the connection) |
2022-01-03 22:26:46 +0100 | <sm> | another data point: just `ghc -prof -fprof-auto -rtsopts Main.hs` did work for me in a new machine with ghcup-installed tools |
2022-01-03 22:27:10 +0100 | <prrxddq[m]> | <geekosaur> "so the ideal ways to use it is..." <- I did create a project using ```... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/277f4b70bbaefd29ebb1d8aacd1ef0002079…) |
2022-01-03 22:27:54 +0100 | <prrxddq[m]> | sm: mhhh, might as well try to reinstall it then.. I am not really confident in any tooling yet. Thanks for trying it out |
2022-01-03 22:27:59 +0100 | <sm> | -p isn't enough, you need --enable-profiling |
2022-01-03 22:28:02 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 22:28:12 +0100 | <sm> | (when building) |
2022-01-03 22:28:49 +0100 | <prrxddq[m]> | s/// |
2022-01-03 22:28:58 +0100 | <prrxddq[m]> | * I did create a project using... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/4347e1c3934b30f9085fa70e31fe11809d45…) |
2022-01-03 22:29:09 +0100 | <prrxddq[m]> | * I did create a project using... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/32dc26d821e3092a970a244a768cb2d5f131…) |
2022-01-03 22:29:12 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-01-03 22:29:18 +0100 | <prrxddq[m]> | * I did create a project using... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/16f024249ce7d0d51caf2921778e7894a1d6…) |
2022-01-03 22:29:28 +0100 | <geekosaur> | -p is --enable-library-profiling instead of --enable-profiling for some reason |
2022-01-03 22:29:42 +0100 | <geekosaur> | use --enable-profiling or --enable-executable-profiling |
2022-01-03 22:30:07 +0100 | <geekosaur> | also those edits you're doing make a mess on the IRC side of things |
2022-01-03 22:31:09 +0100 | <prrxddq[m]> | geekosaur: Edits in general? I will stop it then, sorry. |
2022-01-03 22:31:11 +0100 | simendsjo | (~user@84.211.91.241) (Ping timeout: 256 seconds) |
2022-01-03 22:31:28 +0100 | <geekosaur> | yeh, IRC doesn't understand edits |
2022-01-03 22:31:41 +0100 | <geekosaur> | at least not from matrix |
2022-01-03 22:32:24 +0100 | <prrxddq[m]> | sm: IT WORKED, yeeeeees! :D Oh man, thank you! sm geekosaur |
2022-01-03 22:33:22 +0100 | <sm> | just FYI, it's good to learn to read the standard profiles, but also there are some tools which can give a sometimes more useful view, like profiterole (and fancier graphical tools) |
2022-01-03 22:33:46 +0100 | acidjnk | (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) |
2022-01-03 22:33:46 +0100 | acidjnk_new | (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) |
2022-01-03 22:42:44 +0100 | drewr | (~drew@user/drewr) |
2022-01-03 22:45:36 +0100 | ouestbillie | vanDamme |
2022-01-03 22:46:01 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 22:46:47 +0100 | vanDamme | ouestbillie |
2022-01-03 22:47:04 +0100 | Guest23 | (~Guest23@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-03 22:47:27 +0100 | Guest23 | (~Guest23@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) () |
2022-01-03 22:50:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 22:50:55 +0100 | zer0bitz | (~zer0bitz@196.244.192.60) (Read error: Connection reset by peer) |
2022-01-03 22:52:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2022-01-03 22:56:07 +0100 | jespada | (~jespada@87.74.33.157) (Ping timeout: 256 seconds) |
2022-01-03 22:57:59 +0100 | jespada | (~jespada@87.74.32.18) |
2022-01-03 22:58:13 +0100 | ubert | (~Thunderbi@p200300ecdf0994ce1454eef4b6fa1895.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-03 22:58:13 +0100 | ub | ubert |
2022-01-03 23:08:33 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 23:13:00 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 23:21:34 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-03 23:31:04 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 23:31:57 +0100 | shapr | (~user@2601:7c0:c202:5190:daf3:e6d8:8056:7417) (Ping timeout: 240 seconds) |
2022-01-03 23:38:47 +0100 | max22- | (~maxime@2a01cb08833598005001445283c93f22.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2022-01-03 23:39:52 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2022-01-03 23:40:25 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-03 23:41:37 +0100 | drewr | (~drew@user/drewr) (Ping timeout: 240 seconds) |
2022-01-03 23:43:00 +0100 | root1 | (root@2600:3c02::f03c:92ff:fe1a:c779) (Quit: WeeChat 2.3) |
2022-01-03 23:45:46 +0100 | ircs | (~ircs@2-111-85-72-cable.dk.customer.tdc.net) |
2022-01-03 23:46:56 +0100 | zebrag | (~chris@user/zebrag) |
2022-01-03 23:48:19 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-03 23:51:47 +0100 | zebrag | (~chris@user/zebrag) (Client Quit) |
2022-01-03 23:55:40 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2022-01-03 23:56:30 +0100 | rond_ | (~rond_@2a01:115f:943:5e00:fd3e:9189:6c2:6793) |
2022-01-03 23:56:53 +0100 | jco | (~jco@90-228-194-139-no542.tbcn.telia.com) (Ping timeout: 256 seconds) |
2022-01-03 23:57:28 +0100 | alx741 | (~alx741@157.100.93.160) |
2022-01-03 23:58:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-03 23:58:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-03 23:58:51 +0100 | wroathe | (~wroathe@user/wroathe) |