Logs on 2022-06-09 (liberachat/#haskell)
| 00:00:33 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 00:06:53 | × | Topsi1 quits (~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 00:08:07 | → | werneta joins (~werneta@137.79.206.133) |
| 00:08:29 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 252 seconds) |
| 00:08:32 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:10:06 | → | califax joins (~califax@user/califx) |
| 00:16:53 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 00:18:29 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:18:41 | → | xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp) |
| 00:18:48 | → | img joins (~img@user/img) |
| 00:25:50 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds) |
| 00:26:36 | × | kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving) |
| 00:27:33 | × | stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 00:28:59 | → | kadir joins (~kadir@85.103.235.158) |
| 00:29:16 | ← | kadir parts (~kadir@85.103.235.158) () |
| 00:35:43 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 00:37:02 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 00:40:17 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 00:44:50 | × | xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 240 seconds) |
| 00:46:45 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 00:46:56 | → | nate3 joins (~nate@98.45.169.16) |
| 00:49:03 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 00:49:15 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
| 00:50:18 | Lord_of_Life_ | is now known as Lord_of_Life |
| 00:50:50 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 00:51:37 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 00:53:48 | → | tnkmon joins (~tnkmon@181.208.236.212) |
| 00:57:46 | → | pottsy joins (~pottsy@129.227.183.244) |
| 00:58:31 | <tnkmon> | a good book to start in haskell?? |
| 01:02:04 | <geekosaur> | @where books |
| 01:02:04 | <lambdabot> | https://www.extrema.is/articles/haskell-books http://www.vex.net/~trebla/haskell/learn-sources.html, see also @where LYAH, RWH, YAHT, HFTVB, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, |
| 01:02:04 | <lambdabot> | FSAF |
| 01:03:47 | → | Guest57 joins (~Guest57@pool-108-21-81-113.nycmny.fios.verizon.net) |
| 01:04:11 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 01:04:13 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds) |
| 01:04:16 | × | Guest57 quits (~Guest57@pool-108-21-81-113.nycmny.fios.verizon.net) (Client Quit) |
| 01:07:20 | × | pottsy quits (~pottsy@129.227.183.244) (Ping timeout: 265 seconds) |
| 01:08:00 | × | tnkmon quits (~tnkmon@181.208.236.212) (Quit: Client closed) |
| 01:08:08 | → | pottsy joins (~pottsy@129.227.183.244) |
| 01:08:36 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:10:27 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:12:28 | × | DNH quits (~DNH@2a02:8108:1100:16d8:e92a:ff3d:d8c7:63da) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:12:58 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
| 01:15:53 | × | DigitalKiwi quits (~kiwi@2604:a880:400:d0::1ca0:e001) (Quit: quite.) |
| 01:15:56 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 01:16:33 | → | DigitalKiwi joins (~kiwi@137.184.156.191) |
| 01:16:35 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:18:41 | <EvanR> | @where intro |
| 01:18:41 | <lambdabot> | http://www.haskell.org/haskellwiki/Learn_Haskell_in_10_minutes |
| 01:18:47 | <EvanR> | @where gentle |
| 01:18:48 | <lambdabot> | http://www.haskell.org/tutorial/ |
| 01:19:02 | <EvanR> | this one this one |
| 01:27:49 | → | sebastiandb_ joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) |
| 01:28:25 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 01:28:50 | × | werneta quits (~werneta@137.79.206.133) (Ping timeout: 255 seconds) |
| 01:33:08 | → | xff0x joins (~xff0x@s5.HtokyoFL1.vectant.ne.jp) |
| 01:35:24 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 276 seconds) |
| 01:37:23 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:37:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 02:04:23 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds) |
| 02:07:23 | × | gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
| 02:12:40 | → | dextaa joins (~DV@user/dextaa) |
| 02:17:22 | × | td_ quits (~td@muedsl-82-207-238-024.citykom.de) (Ping timeout: 246 seconds) |
| 02:19:30 | → | td_ joins (~td@94.134.91.150) |
| 02:21:18 | <DigitalKiwi> | tomsmeding: piiiing |
| 02:23:55 | <DigitalKiwi> | https://mostlyabsurd.com/files/2022-06-08-212240_1454x1373_scrot.png |
| 02:25:59 | <DigitalKiwi> | https://mostlyabsurd.com/files/2022-06-08-212549_2313x1745_scrot.png |
| 02:26:02 | <DigitalKiwi> | other side |
| 02:29:52 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 02:34:39 | <DigitalKiwi> | hmm do i 3d print it or laser cut it ;D |
| 02:41:58 | → | bilegeek joins (~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) |
| 02:41:58 | → | zwu joins (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net) |
| 02:42:02 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 250 seconds) |
| 02:46:34 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
| 02:48:58 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 02:49:55 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 02:53:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 02:59:51 | → | frost joins (~frost@user/frost) |
| 03:13:22 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 03:20:07 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 03:25:50 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds) |
| 03:27:23 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 03:31:02 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 03:31:52 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 03:33:24 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 03:35:26 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:39:27 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:45:29 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 03:46:18 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 03:47:43 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:01:40 | → | fef joins (~thedawn@user/thedawn) |
| 04:11:46 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:12:40 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 04:14:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 04:15:04 | → | Vajb joins (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) |
| 04:21:34 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 04:25:26 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 04:26:36 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 04:32:21 | × | sebastiandb_ quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 04:36:29 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 255 seconds) |
| 04:51:17 | × | monochrom quits (~trebla@216.138.220.146) (Quit: NO CARRIER) |
| 04:53:01 | → | nate3 joins (~nate@98.45.169.16) |
| 04:53:07 | → | slac77372 joins (~slack1256@191.125.99.201) |
| 04:53:53 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 256 seconds) |
| 04:54:12 | → | dcoutts_ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 04:55:23 | × | slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 255 seconds) |
| 04:56:59 | × | dcoutts quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 240 seconds) |
| 04:57:11 | × | dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 255 seconds) |
| 04:57:51 | → | dcoutts joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 04:58:12 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 04:59:39 | → | monochrom joins (~trebla@216.138.220.146) |
| 05:06:20 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 05:06:39 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds) |
| 05:07:05 | → | fef joins (~thedawn@user/thedawn) |
| 05:19:05 | × | causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.5) |
| 05:19:59 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 05:31:42 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) |
| 05:34:11 | → | cfricke joins (~cfricke@user/cfricke) |
| 05:39:02 | → | chomwitt joins (~chomwitt@2a02:587:dc1f:5600:28f0:c157:4d87:4f4e) |
| 05:44:45 | → | yosef` joins (~user@user/yosef/x-2947716) |
| 05:48:15 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 05:51:19 | → | nicbk joins (~nicbk@user/nicbk) |
| 05:52:37 | → | Guest34 joins (~Guest34@176.122.87.241) |
| 05:53:03 | <Guest34> | Good day |
| 05:54:24 | × | Guest34 quits (~Guest34@176.122.87.241) (Client Quit) |
| 05:57:27 | → | Guest34 joins (~Guest34@176.122.87.241) |
| 05:58:28 | <DigitalKiwi> | hi Guest34 |
| 05:58:58 | <Guest34> | I am using library odpic-raw to access oracle database |
| 05:59:18 | <Guest34> | main :: IO () |
| 05:59:19 | <Guest34> | main = do |
| 05:59:19 | <Guest34> | withContext $ \ctx -> |
| 05:59:20 | <Guest34> | withPool ctx cfg return \pool -> |
| 05:59:20 | <Guest34> | withPoolConnection pool $ \conn -> |
| 05:59:21 | <Guest34> | withStatement conn False "select name from db.report_date where id = 1" $ \st -> do |
| 05:59:21 | <Guest34> | r <- executeStatement st ModeExecDefault |
| 05:59:22 | <Guest34> | f <- fetch st |
| 05:59:22 | <Guest34> | (DataVarchar v) <- getQueryValue st 1 |
| 05:59:23 | <Guest34> | peekCStringLen (bytes v) >>= print |
| 05:59:27 | <DigitalKiwi> | oh no |
| 05:59:36 | <Guest34> | ? |
| 05:59:49 | <nerdypepper> | x_x |
| 06:00:02 | <Guest34> | i can't ask? |
| 06:00:13 | <nerdypepper> | Guest34: please upload your source code in a pastebin service and paste a link to that here |
| 06:00:21 | <Guest34> | sorry |
| 06:00:22 | <Guest34> | ok |
| 06:00:34 | → | alp joins (~alp@user/alp) |
| 06:01:14 | <nerdypepper> | Guest34: https://paste.tomsmeding.com/ or similar |
| 06:02:20 | <Guest34> | https://pastebin.com/t093XNLk |
| 06:03:45 | <Guest34> | NLS_LANG is AMERICAN.AMERICA=UTF8 |
| 06:04:28 | <Guest34> | from plsql i get normal string "Январь 2022" |
| 06:05:14 | <Guest34> | haskell code get me "\1071\1085\1074\1072\1088\1100 2022" |
| 06:06:12 | <Guest34> | can you suggest what is the problem? |
| 06:07:26 | <Axman6> | > text "\1071\1085\1074\1072\1088\1100 2022" |
| 06:07:27 | <lambdabot> | Январь 2022 |
| 06:07:49 | <Axman6> | that's just what the show instance for strings does for non ascii codepoints |
| 06:08:20 | <Axman6> | that _is_ the string you are expecting to get back, if you run putStrLn "\1071\1085\1074\1072\1088\1100 2022" in ghci you'll see if prints exactly that |
| 06:09:40 | <Axman6> | because you are caling print, show is applied to the string, use putStrLn instead |
| 06:09:55 | <Axman6> | peekCStringLen (bytes v) >>= putStrLn is the fix |
| 06:10:20 | <Axman6> | @src print |
| 06:10:21 | <lambdabot> | print x = putStrLn (show x) |
| 06:11:10 | <Hecate> | @src fix |
| 06:11:10 | <lambdabot> | fix f = let x = f x in x |
| 06:11:36 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 06:11:36 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 06:11:40 | <Hecate> | Guest34: unfortunately there is no problem |
| 06:12:16 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 06:12:59 | <Guest34> | thanks for the help |
| 06:13:15 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:13:20 | <Axman6> | first time I've ever seen anyone connect to Oracle |
| 06:15:47 | <Guest34> | i started learning Haskell. trying to write a web api for old software with oracle db |
| 06:17:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:17:27 | <Axman6> | Good luck! |
| 06:18:00 | <Axman6> | the web API side of things is quite nice in Haskell, no idea how much your milage will vary working with Oracle though |
| 06:18:08 | <Guest34> | Thanks! |
| 06:20:22 | × | fef quits (~thedawn@user/thedawn) (Quit: Killer) |
| 06:23:15 | × | raym quits (~raym@user/raym) (Quit: ed is the standard editor) |
| 06:25:44 | → | raym joins (~raym@user/raym) |
| 06:28:14 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 06:30:40 | × | Guest34 quits (~Guest34@176.122.87.241) (Quit: Client closed) |
| 06:40:12 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:42:46 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) |
| 06:53:35 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 06:54:01 | × | slac77372 quits (~slack1256@191.125.99.201) (Read error: Connection reset by peer) |
| 06:56:29 | → | zaquest joins (~notzaques@5.130.79.72) |
| 06:57:13 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:54fe:417d:8656:9d4e) |
| 06:58:15 | → | coot joins (~coot@213.134.190.95) |
| 07:12:14 | → | pmk joins (~user@2a02:587:9418:69b8:b896:d770:251d:c4d7) |
| 07:16:34 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 07:18:25 | <toluene> | edwardk, mniip asks how are you |
| 07:19:34 | × | nicbk quits (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
| 07:19:50 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 07:19:59 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 07:22:33 | × | raym quits (~raym@user/raym) (Ping timeout: 258 seconds) |
| 07:22:35 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) |
| 07:24:59 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:25:03 | → | bilegeek_ joins (~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) |
| 07:27:29 | × | bilegeek quits (~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) (Ping timeout: 255 seconds) |
| 07:32:21 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 07:33:38 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 07:37:07 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 258 seconds) |
| 07:41:47 | × | cross quits (~cross@spitfire.i.gajendra.net) (Quit: Lost terminal) |
| 07:42:37 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:42:44 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:46:34 | → | Pickchea joins (~private@user/pickchea) |
| 07:47:52 | × | wonko quits (~wjc@2a0e:1c80:11::50) (Quit: See You Space Cowboy..) |
| 07:48:16 | <Guillaum[m]> | I'm surprised that `-Wredundant-constraint` warning does not trigger a warning in the following code: `type EqOrd a = (Eq a, Ord a); buz'' :: EqOrd a => a -> Bool; buz'' i = i == i`. I understand that the redundant constraint is bundled inside a type alias, but is there a way to trigger a warning? Should I open a ticket? |
| 07:48:25 | → | raym joins (~raym@user/raym) |
| 07:50:46 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 07:50:51 | xstill- | is now known as xstill_ |
| 07:51:17 | × | wonko- quits (~wjc@user/wonko) (Ping timeout: 260 seconds) |
| 07:51:30 | × | Ekho quits (~Ekho@user/ekho) (Remote host closed the connection) |
| 07:52:49 | → | Ekho joins (~Ekho@user/ekho) |
| 07:53:55 | × | myme quits (~myme@2a01:799:d5a:cd00:dd4e:6782:5084:ddd1) (Quit: WeeChat 3.4.1) |
| 07:54:22 | → | myme joins (~myme@2a01:799:d5a:cd00:cf5c:a138:5106:fe37) |
| 07:55:33 | → | DNH joins (~DNH@2a02:8108:1100:16d8:5929:26d:553d:b545) |
| 07:56:43 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 07:58:56 | → | bilegeek joins (~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) |
| 07:59:33 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 08:00:47 | × | bilegeek_ quits (~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) (Ping timeout: 255 seconds) |
| 08:02:07 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds) |
| 08:03:54 | → | jonathanx__ joins (~jonathan@c-5eea340e-74736162.cust.telenor.se) |
| 08:03:54 | × | jonathanx__ quits (~jonathan@c-5eea340e-74736162.cust.telenor.se) (Read error: Connection reset by peer) |
| 08:05:34 | → | jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 08:06:27 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds) |
| 08:07:46 | × | jonathanx__ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 08:08:12 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) |
| 08:09:47 | × | kitty1 quits (~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 255 seconds) |
| 08:09:49 | → | jonathanx joins (~jonathan@c-5eea340e-74736162.cust.telenor.se) |
| 08:10:11 | → | kitty1 joins (~kitty@096-039-147-043.res.spectrum.com) |
| 08:15:46 | mal1 | is now known as lieven |
| 08:19:45 | Hash | is now known as Enchantertim |
| 08:19:47 | Enchantertim | is now known as EnchanterTim |
| 08:21:17 | EnchanterTim | is now known as OpenSores |
| 08:23:06 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 08:28:39 | × | Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection) |
| 08:29:12 | → | CiaoSen joins (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 08:31:01 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 08:38:13 | × | maerwald quits (~maerwald@user/maerwald) (Quit: gone) |
| 08:38:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 08:38:54 | → | maerwald joins (~maerwald@mail.hasufell.de) |
| 08:39:15 | → | sagax joins (~sagax_nb@user/sagax) |
| 08:40:05 | × | maerwald quits (~maerwald@mail.hasufell.de) (Changing host) |
| 08:40:05 | → | maerwald joins (~maerwald@user/maerwald) |
| 08:40:08 | → | thornAvery joins (~thornAver@104.156.232.89) |
| 08:40:35 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 08:40:36 | <thornAvery> | hello, im setting up Stack with Nix integration, and im wondering if theres a way to use a flakes defined shell with the --nix-shell-file flag? |
| 08:44:48 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 244 seconds) |
| 08:50:58 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) |
| 08:51:02 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 08:51:10 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:53:16 | × | jonathanx quits (~jonathan@c-5eea340e-74736162.cust.telenor.se) (Ping timeout: 272 seconds) |
| 08:54:42 | → | nate3 joins (~nate@98.45.169.16) |
| 08:57:28 | <Benzi-Junior> | http://ix.io/3ZKI < so I took the advice to pattern match on the construction of my agents, consuming only the "agent" part but when I test it, it appears to do nothing |
| 08:57:33 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:59:28 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
| 08:59:56 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) |
| 09:00:01 | × | DNH quits (~DNH@2a02:8108:1100:16d8:5929:26d:553d:b545) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:07:45 | × | pottsy quits (~pottsy@129.227.183.244) (Ping timeout: 265 seconds) |
| 09:07:47 | × | forell quits (~forell@user/forell) (Ping timeout: 240 seconds) |
| 09:08:05 | → | pottsy joins (~pottsy@129.227.183.244) |
| 09:09:11 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 09:12:53 | OpenSores | is now known as Hash |
| 09:14:06 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 258 seconds) |
| 09:14:45 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:18:24 | → | forell joins (~forell@user/forell) |
| 09:20:10 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 240 seconds) |
| 09:22:14 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds) |
| 09:26:37 | <[Leary]> | Benzi-Junior: Have you read the 'Terminating the program' section in the Control.Concurrent docs? Your main thread is probably finishing and killing the children before they can do anything. |
| 09:29:43 | <[Leary]> | `atoms` also seems to be ignoring the next action in sequence, when you probably want it to recurse. |
| 09:31:24 | → | ubert joins (~Thunderbi@2a02:8109:abc0:6434:88ad:201e:ada:568e) |
| 09:39:13 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) |
| 09:42:34 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
| 09:43:25 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 09:43:37 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 258 seconds) |
| 09:51:56 | → | chreekat2 joins (~b@80-254-69-77.dynamic.monzoon.net) |
| 09:52:39 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) |
| 09:55:22 | → | DNH joins (~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) |
| 09:57:39 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 244 seconds) |
| 09:58:26 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection) |
| 10:04:46 | <Benzi-Junior> | [Leary], aye I fixed the recursion issue (to an extent) and am looking into the "Terminating the program" thing |
| 10:06:24 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) |
| 10:06:25 | <Benzi-Junior> | well my testing isn't done in a "standalone GHC program" but rather with ghci |
| 10:10:56 | → | mrd joins (~mrd@45.61.147.211) |
| 10:11:04 | × | mrd quits (~mrd@45.61.147.211) (Changing host) |
| 10:11:04 | → | mrd joins (~mrd@user/mrd) |
| 10:13:22 | <Benzi-Junior> | [Leary], you are however right |
| 10:13:48 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 10:14:13 | <Benzi-Junior> | adding a simple threadDelay onto the main thread of the function was sufficient to get a little bit of output |
| 10:14:40 | × | zachel quits (~zachel@user/zachel) (Quit: DIsconnected: v7+nano) |
| 10:14:58 | → | zachel joins (~zachel@user/zachel) |
| 10:17:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 10:20:43 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-166-223.wlan.tudelft.nl) (Ping timeout: 246 seconds) |
| 10:22:10 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 10:22:23 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:23:02 | → | SCombinator joins (~SCombinat@118.179.211.17) |
| 10:23:43 | <SCombinator> | Heya fellas |
| 10:23:48 | → | Teacup joins (~teacup@user/teacup) |
| 10:24:01 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5) |
| 10:24:55 | <SCombinator> | i'm trying out the haskell extension in VSCode and it seems like this thing is actually downloading its own copy of GHC, HLS, stack, & cabal for every project I open |
| 10:25:33 | × | CiaoSen quits (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 10:25:38 | <SCombinator> | My projects are managed by stack so I don't see why this should be necessary |
| 10:28:41 | <fendor[m]> | SCombinator: It should only download these once, but you can disable downloading for cabal and ghc, iirc |
| 10:29:23 | <fendor[m]> | however, you will have to make sure on your own that your HLS binary is compiled with exactly the same GHC version you are using with stack |
| 10:29:54 | <fendor[m]> | see https://github.com/haskell/vscode-haskell#setting-a-specific-toolchain for details |
| 10:31:00 | → | bilegeek_ joins (~bilegeek@175.sub-174-208-226.myvzw.com) |
| 10:31:32 | × | bilegeek quits (~bilegeek@2600:1008:b011:d18c:911b:fa07:1468:57c3) (Ping timeout: 255 seconds) |
| 10:33:27 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
| 10:33:49 | × | bilegeek_ quits (~bilegeek@175.sub-174-208-226.myvzw.com) (Client Quit) |
| 10:35:20 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:35:35 | × | xff0x quits (~xff0x@s5.HtokyoFL1.vectant.ne.jp) (Ping timeout: 256 seconds) |
| 10:36:23 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 10:37:07 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving) |
| 10:39:45 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 10:54:30 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 10:58:55 | <SCombinator> | fendor[m] thanks for the pointer |
| 11:00:40 | × | dcoutts_ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Remote host closed the connection) |
| 11:01:02 | → | dcoutts_ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 11:01:04 | <SCombinator> | :/ why is haskell tooling so complicated... |
| 11:01:08 | → | dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 11:01:23 | <SCombinator> | so many layers just to get a working dev environment lol |
| 11:01:50 | <SCombinator> | is stack still the way to go for reproducible builds? |
| 11:02:27 | <SCombinator> | and just wondering, should I prefer package.yaml or just manage my .cabal directly? |
| 11:02:43 | <SCombinator> | this is for a small project of 3 people |
| 11:03:09 | <sm> | if you're already used to it, I'd say yes. Keep your package.yaml if it's providing value, otherwise just edit .cabal directly |
| 11:03:25 | × | dcoutts quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 246 seconds) |
| 11:03:32 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 11:04:04 | <sm> | you might want to disable stack's ghc-installing and use ghcup for that |
| 11:05:28 | <sm> | unless it's working just fine |
| 11:05:44 | <jackdk> | I do not use stack or hpack (package.yaml) and do not miss anything they claim to provide *shrug* |
| 11:06:12 | <SCombinator> | sm: wow lol i feel kinda stupid that I didn't think of forcing stack to use the ghcup installs |
| 11:06:53 | <sm> | add use-system-ghc: true and install-ghc: false in ~/.stack/config.yaml, IIRC |
| 11:07:56 | <SCombinator> | jackdk: oh wow...i just stuck to stack by habit because they forced it down our throats back when I was in uni...maybe i'll try the ghc+cabal approach again |
| 11:08:11 | <SCombinator> | sm: thanks for the help! much appreciated |
| 11:08:59 | <jackdk> | I think stack a) forced cabal to get a lot better and b) solved some very real problems at the time, but I don't find it compelling these days. Not when you can use cabal.project.freeze files |
| 11:09:08 | <sm> | np. Lots of people like stack, lots of people don't like it. It is still easier than cabal for reproducibility. |
| 11:09:37 | <jackdk> | Similarly, hpack: newer versions of the cabal file format let you DRY up large cabal files |
| 11:09:52 | <jackdk> | I generally use nix for reproducibility |
| 11:11:41 | <SCombinator> | jackdk: i'm realizing how little i know about cabal haha |
| 11:11:57 | <maerwald> | sm: how so? |
| 11:12:36 | <SCombinator> | jackdk: i've heard of nix but it honestly looks like another intimidating package manager for my already overpopulated system...is it worth it? |
| 11:12:38 | <sm> | oh I don't have time for this debate yet again, I'm sorry :) got to eat |
| 11:12:52 | <maerwald> | stack is harder for reproducibility |
| 11:13:10 | <maerwald> | because it doesn't have a resolver, you're forced to a predefined set of packages |
| 11:13:23 | gehmehgeh | is now known as gmg |
| 11:13:25 | <maerwald> | cabal has a resolver and supports stackage |
| 11:14:33 | × | chreekat2 quits (~b@80-254-69-77.dynamic.monzoon.net) (Ping timeout: 276 seconds) |
| 11:15:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 11:15:16 | <jackdk> | SCombinator: nix is incredible but the learning curve is quite steep (but slowly improving). I put a lot of effort into learning NixOS when I started a previous job, because they weren't expecting me to be productive for a little while. I think if you're just starting to learn Haskell, stick with that. Nix is good for heaps of stuff but can come later. |
| 11:15:35 | <sm> | I'll just say: stack introduced the term resolver, meaning a snapshot of compatible packages. cabal has a constraint solver, which is free to find any plan it can on a given day. This is a useful tool at times but it is the enemy of reproducibility. |
| 11:16:02 | <maerwald> | sm: the term resolver is a joke even, because it doesn't have one ;) |
| 11:16:10 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 11:17:18 | <maerwald> | sm: you're aware cabal can freeze a resolution? |
| 11:17:24 | <maerwald> | how's that the enemy of reproducibility |
| 11:18:57 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 11:19:09 | <maerwald> | in fact "reproducible" is pretty orthogonal to "curated package set" |
| 11:19:21 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 11:19:44 | → | gmg joins (~user@user/gehmehgeh) |
| 11:19:59 | → | terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 11:22:41 | <maerwald> | SCombinator: no it's not worth it, unless you have very specific needs. And even then there are usually alternatives |
| 11:22:44 | <tdammers> | a curated package set is one way you can achieve reproducible builds (or at least part of a strategy) |
| 11:24:05 | <maerwald> | tdammers: well, a curated package set can be rolling, so... |
| 11:24:11 | <yushyin> | but then you need a package that is not on stackage and you resort to hackage ... |
| 11:24:12 | → | mehlon joins (~mehlon@user/mehlon) |
| 11:24:27 | <mehlon> | good day |
| 11:24:59 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 11:25:00 | <maerwald> | in fact that's what e.g. gentoo does: the stable branch *is curated*, but it's also rolling |
| 11:29:46 | <mehlon> | so I am running a mapM_ function list but I think it stops running through the list when it hits an error, is there a way I can ignore the errors? |
| 11:32:47 | × | alp quits (~alp@user/alp) (Ping timeout: 240 seconds) |
| 11:34:32 | → | alp joins (~alp@user/alp) |
| 11:35:19 | → | lyle joins (~lyle@104.246.145.85) |
| 11:37:58 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 11:39:28 | <tdammers> | maerwald: right, you still need pinning |
| 11:39:47 | <tdammers> | advantage of the curated package set is that you can just pin to a specific version of the entire package set |
| 11:39:59 | <maerwald> | yeah... but tbf... stack does have better pinning. The old hackage revision debate |
| 11:40:37 | <maerwald> | with cabal you pin the entire index state, not specific revisions |
| 11:40:48 | <maerwald> | that doesn't make it less reproducible though |
| 11:41:08 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) |
| 11:43:24 | → | mbuf joins (~Shakthi@122.174.63.81) |
| 11:45:31 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 258 seconds) |
| 11:46:06 | <mehlon> | alright I figured it out, I just added a 'try' from Control.Exception to each function call |
| 11:51:01 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 11:52:24 | × | qwedfg quits (~qwedfg@user/qwedfg) (Read error: Connection reset by peer) |
| 11:56:54 | → | qwedfg joins (~qwedfg@user/qwedfg) |
| 11:57:45 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 11:58:32 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:00:33 | <Benzi-Junior> | http://ix.io/3ZL9 ignoring my issue with waiting for the threads to finish for now, when I run "runIO [ping,pong]" it doesn't seem to pass back and forth, I only get a single "Ping" |
| 12:03:26 | → | jonathanx_ joins (~jonathan@94.234.52.14) |
| 12:03:49 | <jackdk> | maerwald: cabal freeze generates cabal.project.freeze - doesn't that get you specific package version pins? |
| 12:04:09 | <maerwald> | jackdk: yes, but not *revisions* |
| 12:04:28 | <maerwald> | https://github.com/haskell-infra/hackage-trustees/blob/master/revisions-information.md |
| 12:04:42 | <maerwald> | they're a wart |
| 12:05:00 | <maerwald> | reverse fixing stuff is almost always the wrong approach |
| 12:06:13 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 258 seconds) |
| 12:08:08 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b72719872c4440223ec.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 12:09:43 | <maerwald> | it would already help if PVP was revision aware, but |
| 12:10:04 | <maerwald> | now they're an infrastructure specific thing |
| 12:12:25 | → | user__ joins (~mehlon@user/mehlon) |
| 12:12:43 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 12:13:10 | × | mehlon quits (~mehlon@user/mehlon) (Remote host closed the connection) |
| 12:13:27 | <Benzi-Junior> | I suspect the issue is with my implementation of receive |
| 12:13:34 | × | user__ quits (~mehlon@user/mehlon) (Client Quit) |
| 12:16:15 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 12:17:30 | → | noteness joins (~noteness@user/noteness) |
| 12:19:24 | → | dcoutts joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 12:20:15 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 244 seconds) |
| 12:20:48 | <Benzi-Junior> | huh |
| 12:21:27 | × | dcoutts_ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 240 seconds) |
| 12:21:40 | <Benzi-Junior> | turns out I have a race condition problem |
| 12:21:57 | → | dcoutts_ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 12:21:57 | × | dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 260 seconds) |
| 12:24:45 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 12:24:57 | <Benzi-Junior> | somehow each thread isn't keeping balance between sending and receiving |
| 12:27:03 | × | SCombinator quits (~SCombinat@118.179.211.17) (Quit: Client closed) |
| 12:27:33 | → | xff0x joins (~xff0x@2405:6580:b080:900:c0b4:77d6:672c:4cc) |
| 12:28:16 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-166-231.wlan.tudelft.nl) |
| 12:37:02 | <Benzi-Junior> | so I'm ending with both threads waiting for something to eb put into the channel |
| 12:38:00 | → | __monty__ joins (~toonn@user/toonn) |
| 12:47:10 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
| 12:49:05 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de) |
| 12:49:14 | → | dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 12:51:35 | × | dcoutts_ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 256 seconds) |
| 12:51:56 | × | dcoutts quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 255 seconds) |
| 12:52:09 | → | dcoutts joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 12:56:11 | → | nate3 joins (~nate@98.45.169.16) |
| 13:01:13 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 13:18:56 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
| 13:20:15 | <tdammers> | maerwald: yeah, the thing revisions do, that's actually what the 4th part of a PVP version number would be perfect for |
| 13:21:37 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 13:21:46 | <maerwald> | tdammers: I prefer -rX, because tools will treat those different from other version components |
| 13:22:17 | <maerwald> | if you request 3.0.0 it's supposed to pick the one with the highest revision |
| 13:22:37 | <maerwald> | can be a little confusing this exception |
| 13:24:31 | <maerwald> | and there's also a quirk in PVP wrt 3.0.0 vs 3.0.0.0 |
| 13:25:24 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 13:26:03 | <maerwald> | well, not quirk, but https://github.com/haskell/pvp/issues/36 |
| 13:28:41 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection) |
| 13:28:54 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 13:30:41 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 13:30:58 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 13:32:04 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection) |
| 13:32:15 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 13:42:00 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5) |
| 13:42:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) |
| 13:44:12 | → | coot joins (~coot@213.134.190.95) |
| 13:44:13 | × | Vajb quits (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 13:44:20 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:45:42 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 13:46:04 | → | CiaoSen joins (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 13:46:17 | × | pmk quits (~user@2a02:587:9418:69b8:b896:d770:251d:c4d7) (Read error: Connection reset by peer) |
| 13:47:00 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 13:47:46 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 272 seconds) |
| 13:49:05 | → | zebrag joins (~chris@user/zebrag) |
| 13:49:35 | → | pmk joins (~user@2a02:587:9418:69b8:b896:d770:251d:c4d7) |
| 13:50:05 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:50:05 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:50:05 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:50:50 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 240 seconds) |
| 14:00:43 | → | cfricke joins (~cfricke@user/cfricke) |
| 14:06:55 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 14:08:23 | → | Teacup joins (~teacup@user/teacup) |
| 14:13:56 | <oats> | https://haskle.net/ |
| 14:13:58 | <oats> | this is delightful |
| 14:14:52 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
| 14:15:28 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 244 seconds) |
| 14:20:50 | defanor_ | is now known as defanor |
| 14:24:50 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 240 seconds) |
| 14:25:56 | → | Vajb joins (~Vajb@85-76-5-232-nat.elisa-mobile.fi) |
| 14:26:46 | <Benzi-Junior> | can anyone see how my code is running into a race condition http://ix.io/3ZL9 |
| 14:27:37 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 14:28:04 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection) |
| 14:29:09 | → | Teacup joins (~teacup@user/teacup) |
| 14:29:19 | <Benzi-Junior> | the problem has to be with my application of "atomically" because I'm ending up with an empty TChan and both threads trying to read from it |
| 14:30:16 | × | Vajb quits (~Vajb@85-76-5-232-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 14:30:58 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:31:31 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 14:31:35 | <geekosaur> | can't tell about that but I see you got caught by threadDelay being in microseconds; you're delaying for 10ms instead of 1s |
| 14:31:47 | <geekosaur> | (maybe you intended that and the comments are wrong?) |
| 14:33:26 | <Benzi-Junior> | geekosaur, ye the intervals for threadDelay are all just, what was convenient for testing |
| 14:33:29 | → | BusConscious joins (~martin@ip5f5bdee2.dynamic.kabel-deutschland.de) |
| 14:33:44 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 14:33:46 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:34:23 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 14:34:54 | × | cheater quits (~Username@user/cheater) (Quit: (BitchX) Mr. Rogers uses BitchX. Won't you be my neighbor?) |
| 14:35:10 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 14:35:39 | → | cheater joins (~Username@user/cheater) |
| 14:36:18 | <geekosaur> | aside from that, I think you might have a misunderstanding of TChan |
| 14:37:28 | → | kenran joins (~kenran@200116b82bb85a00e08a64920c7e7441.dip.versatel-1u1.de) |
| 14:37:32 | <[Leary]> | It might help to broadcast before the delay. Or to peek or unget values you didn't want. Or both. |
| 14:38:54 | <geekosaur> | if the ping agent receives its own message, the pong agent won't receive it, and vice versa. there are broadcast channels that work that way but you seem to be using an ordinary TChan |
| 14:39:12 | <geekosaur> | there's a broadcast TChan in the smae place but note how you have to use it |
| 14:39:26 | <geekosaur> | (also there's no …IO version) |
| 14:39:29 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds) |
| 14:41:18 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:43:13 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 14:43:33 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 14:48:35 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 14:49:12 | × | xff0x quits (~xff0x@2405:6580:b080:900:c0b4:77d6:672c:4cc) (Ping timeout: 272 seconds) |
| 14:49:15 | <BusConscious> | When writing my unix shell, should I parse directly into a IO monad (ShellEnv monad transformer on IO to be precise) instead of an AST? |
| 14:49:29 | → | xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp) |
| 14:49:34 | × | dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
| 14:49:54 | <BusConscious> | I could have all the benefits of having IO and parsing being seperated, while not having to recursively traverse an AST |
| 14:50:23 | <BusConscious> | As a Haskell newcomer this legitimately blows my mind rn |
| 14:53:30 | × | kenran quits (~kenran@200116b82bb85a00e08a64920c7e7441.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 14:59:25 | <BusConscious> | What would be the downsides to that approach? My monad being less comprohensible than an AST? |
| 14:59:34 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
| 14:59:39 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 15:00:00 | → | slack1256 joins (~slack1256@186.11.84.227) |
| 15:00:14 | × | yosef` quits (~user@user/yosef/x-2947716) (Remote host closed the connection) |
| 15:00:28 | → | yosef` joins (~user@user/yosef/x-2947716) |
| 15:00:36 | × | CiaoSen quits (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 15:02:19 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 15:02:26 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 15:02:40 | → | slac51054 joins (~slack1256@191.126.227.214) |
| 15:03:55 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 15:04:32 | → | Karel joins (~Karel@ptr-9091p57aekjr6i5k27f.18120a2.ip6.access.telenet.be) |
| 15:05:17 | × | slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 260 seconds) |
| 15:05:27 | <lortabac> | BusConscious: what do you mean by "parsing into an IO monad"? parsing the shell commands into IO actions without an intermediate data type? |
| 15:06:10 | <BusConscious> | yes precisely |
| 15:06:50 | <lortabac> | an intermediate structure allows you to introspect and/or optimize the commands |
| 15:07:02 | <lortabac> | and it's probably easier to work with |
| 15:07:24 | <lortabac> | but of course it depends on what exactly you are doing |
| 15:08:11 | <BusConscious> | ok you can do some intermediate optimizations on that tree |
| 15:08:34 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 15:09:31 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 15:09:45 | <Karel> | I'm looking for a blog post I read a couple of years ago, I think it references haskell quite a bit but it wasn't primarily about the language itself. I've been trying to find it for a while how, hopefully someone here remembers it: |
| 15:09:45 | <Karel> | The core idea was that when devs compare programming languages, when they look down towards lower level languages they see obvious definciencies, but when they look upwards to higher level languages they don't see the advantages and just think "huh, that's strange". |
| 15:10:00 | <BusConscious> | But with my unix shell, I'm not really sure, if I really need that. I certainly don't need it on the level of word expansions, where I originally came up with that approach, but in the parsing stage? |
| 15:10:09 | <BusConscious> | I'm not really sure tbh |
| 15:10:25 | <geekosaur> | an intermediate structure also helps you figure out beforehand what other forkProcess operations you need (consider `someOperation | while read line; do ... done`, where that `while` loop potentially needs to be in a subshell) |
| 15:10:57 | <lortabac> | BusConscious: even if you don't need it right now, you don't lose anything by introducing an extra step, and it might be handy in case you need extra functionality |
| 15:10:59 | <geekosaur> | in particular you'll need a separate subprocess if it is itself part of a longer pipeline and not the end of it |
| 15:11:15 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5) |
| 15:11:39 | <geekosaur> | Karel, I'd ask that on reddit or the discourse, I think |
| 15:11:59 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 15:12:19 | <BusConscious> | lortabac: fair point I will probably stick with an AST for parsing the shell grammar |
| 15:12:29 | <Karel> | geekosaur, Yeah good idea! |
| 15:13:02 | <BusConscious> | But I will use the parsing directly to IOMonads approach when parsing words for word expansions at runtime |
| 15:13:10 | <BusConscious> | this seems like a sensible compromise |
| 15:13:49 | <lortabac> | IIRC PHP didn't have an AST at the beginning (opcodes were emitted directly during parsing), then they realized it was a bad idea |
| 15:13:58 | → | self-similar joins (~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df) |
| 15:16:06 | <geekosaur> | well, php wasn't intended to be a language at first, just a macro processor that produced perl |
| 15:18:46 | × | self-similar quits (~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df) (Read error: Connection reset by peer) |
| 15:19:13 | → | self-similar joins (~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df) |
| 15:20:44 | <self-similar> | hi everyone ! |
| 15:23:44 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 15:23:56 | → | jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 15:24:15 | <geekosaur> | hello |
| 15:25:53 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection) |
| 15:26:10 | × | jonathanx_ quits (~jonathan@94.234.52.14) (Ping timeout: 240 seconds) |
| 15:26:11 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 15:27:08 | <Bulby[m]> | i'm really disapointed with the error capabilities of parser-combinators' Control.Monad.Combinators.Expr |
| 15:27:58 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 15:29:58 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 15:32:08 | × | yosef` quits (~user@user/yosef/x-2947716) (Ping timeout: 255 seconds) |
| 15:33:58 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5) |
| 15:35:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 15:35:52 | <Karel> | Someone on reddit has found what I was looking for already, it was called "the Blub Paradox": https://wiki.c2.com/?BlubParadox |
| 15:36:00 | <c_wraith> | Bulby[m]: my experience with parser-combinators is that the maintainers are pretty responsive. I asked them to reimplement a whole feature once to improve it slightly, and it got done in about a week. They might be equally responsive to another report with some concrete suggestions of what additional stuff you're looking for. |
| 15:38:43 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 15:38:49 | → | coot joins (~coot@213.134.190.95) |
| 15:39:26 | × | self-similar quits (~self-simi@2a02:2f04:c102:7000:e1d5:67a5:1a81:e6df) (Remote host closed the connection) |
| 15:41:59 | <Bulby[m]> | https://craftinginterpreters.com/appendix-i.html#expressions is this grammar even parsable by it |
| 15:42:06 | <Bulby[m]> | specifically expressions |
| 15:44:43 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) |
| 15:45:25 | <c_wraith> | it doesn't look like what the expression parser is intended to handle. Portions of it could be, but you'd have to rewrite them significantly from that form. |
| 15:45:45 | <Bulby[m]> | yeah, figures |
| 15:47:14 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 15:48:13 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 15:49:12 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Ping timeout: 248 seconds) |
| 15:53:20 | → | slack1256 joins (~slack1256@186.11.84.227) |
| 15:53:34 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 15:54:31 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 15:54:32 | <c_wraith> | but the grammar there is already factored to build in associativity and precedence |
| 15:55:10 | × | slac51054 quits (~slack1256@191.126.227.214) (Ping timeout: 240 seconds) |
| 15:55:39 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 15:57:02 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 15:57:08 | → | kaskal- joins (~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b) |
| 15:57:46 | × | kaskal quits (~kaskal@089144209011.atnat0018.highway.a1.net) (Ping timeout: 246 seconds) |
| 15:59:00 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 15:59:32 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 16:00:51 | <Bulby[m]> | writing my own chainl1, it's actually fairly easy to work with |
| 16:03:36 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 248 seconds) |
| 16:03:38 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 16:03:59 | → | kenran joins (~kenran@200116b82bb85a007f00c59d6ba2f8c0.dip.versatel-1u1.de) |
| 16:05:15 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 16:06:10 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 16:06:31 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer) |
| 16:07:18 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 16:08:23 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 16:12:44 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer) |
| 16:13:44 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
| 16:14:34 | <kronicma1> | Anyone know how I can make Cont work with freer-simple? |
| 16:14:59 | × | arkeet quits (arkeet@moriya.ca) (Ping timeout: 240 seconds) |
| 16:15:01 | <kronicma1> | I can't seem to implement `Eff (Cont r ': effs) ~> Eff effs` in any reasonable way |
| 16:16:15 | → | z0k joins (~z0k@206.84.142.123) |
| 16:17:14 | → | noteness joins (~noteness@user/noteness) |
| 16:18:35 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 16:19:12 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 16:22:40 | → | arkeet joins (arkeet@moriya.ca) |
| 16:22:48 | × | arkeet quits (arkeet@moriya.ca) (Client Quit) |
| 16:22:52 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 16:23:47 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds) |
| 16:24:07 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 16:24:16 | → | arkeet joins (arkeet@moriya.ca) |
| 16:26:18 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 16:27:07 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 16:29:54 | × | DNH quits (~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:30:26 | → | DNH joins (~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) |
| 16:30:40 | × | DNH quits (~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) (Client Quit) |
| 16:34:31 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-166-231.wlan.tudelft.nl) (Ping timeout: 246 seconds) |
| 16:35:29 | → | arjun joins (~arjun@user/arjun) |
| 16:36:11 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 16:36:58 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:54fe:417d:8656:9d4e) (Quit: WeeChat 2.8) |
| 16:37:26 | → | DNH joins (~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) |
| 16:38:21 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 16:38:30 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 16:39:43 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer) |
| 16:40:14 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 16:40:27 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 16:41:46 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) |
| 16:43:11 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 16:43:18 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 16:43:40 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:45:08 | → | Teacup joins (~teacup@user/teacup) |
| 16:47:25 | <slack1256> | I got a Stream (well it is a list), that I want to guarrantee it won't be shared anywhere on the program. Otherwise the stream behaviour I specify will be stored on memory once the first consumer run. What are my options here? Can I use the newer linear type extensions for this? |
| 16:48:25 | <c_wraith> | how strong of a guarantee? |
| 16:49:23 | <slack1256> | I don't know how to measure guarantee. But if I get a some examples on how to do it, maybe I can compare them. |
| 16:49:26 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 16:49:36 | <c_wraith> | because anything type-based doesn't guarantee a lack of unsafeCoerce shenanigans |
| 16:49:36 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 16:49:38 | <slack1256> | I was thinking on a Rank2Type trick like ST to guarrantee an scope of validity. |
| 16:49:50 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 16:49:51 | <slack1256> | s_an_a. |
| 16:50:11 | <c_wraith> | but yes, a higher-rank trick is the usual approach. |
| 16:51:33 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 16:51:50 | <slack1256> | I was thinking on some definition annotation that will tell GHC to not "let float" or share this value. That way I can tag the initial producer of the stream. |
| 16:53:06 | <slack1256> | I usually keep in mind "who is the end consumer of this pipeline" and who is the "producer". That way the pipeline of functions work well with the demand analyzer on GHC and I get good consistent behaviour. But that trick can be done better if I can get this guarrantee. |
| 16:53:15 | → | Teacup joins (~teacup@user/teacup) |
| 16:54:32 | → | slac77221 joins (~slack1256@191.125.227.72) |
| 16:54:44 | <slac77221> | Oh, I changed network, but I am slack1256. |
| 16:57:42 | → | nate3 joins (~nate@98.45.169.16) |
| 16:58:05 | <c_wraith> | I'm a bit concerned about how important you are describing this as. |
| 16:58:24 | × | slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 276 seconds) |
| 16:59:06 | <c_wraith> | Are you doing something unsafe and trying to make it safe by carefully controlling consumption? |
| 16:59:55 | <sm> | Karel: sounds like the blub paradox by Paul Graham ? |
| 17:00:22 | <sm> | ack answered, missed it |
| 17:00:59 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 17:01:14 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds) |
| 17:01:31 | [_] | is now known as [itchyjunk] |
| 17:02:31 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 17:04:13 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Read error: Connection reset by peer) |
| 17:04:21 | → | zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) |
| 17:04:38 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 17:05:06 | <Karel> | sm, Yeah, thanks though! |
| 17:05:16 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Read error: Connection reset by peer) |
| 17:05:40 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 17:07:43 | × | pottsy quits (~pottsy@129.227.183.244) (Ping timeout: 265 seconds) |
| 17:08:02 | → | pottsy joins (~pottsy@129.227.183.244) |
| 17:09:33 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 17:11:21 | → | vicfred joins (~vicfred@user/vicfred) |
| 17:12:58 | <BusConscious> | quick Q: what does the second SourceName type parameter in parse (Text.Parsec) represent and how does it choice affect parse? |
| 17:13:53 | × | kaskal- quits (~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b) (Quit: ZNC - https://znc.in) |
| 17:14:10 | → | kaskal joins (~kaskal@089144209011.atnat0018.highway.a1.net) |
| 17:15:53 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 17:18:14 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 17:18:20 | <Bulby[m]> | can i specifically hide all constructors of a data type |
| 17:18:22 | <Bulby[m]> | when importing |
| 17:19:16 | <geekosaur> | put the type in the import list by itself |
| 17:19:52 | <geekosaur> | Foo is just the type, Foo(Ctor[, Ctor…]) is a list of data constructors, Foo(..) is all data constructors |
| 17:21:04 | <sm> | import Module (Type()) is it ? |
| 17:21:42 | × | bjobjo quits (~bjobjo@user/bjobjo) (Quit: leaving) |
| 17:22:32 | <Bulby[m]> | \o/ |
| 17:22:33 | <Bulby[m]> | no |
| 17:22:38 | <geekosaur> | import Module (Type) |
| 17:22:45 | <Bulby[m]> | but that only imports the type |
| 17:22:50 | <Bulby[m]> | I mean import everything, except the constructors of the type |
| 17:22:58 | <geekosaur> | as every new Haskeller learns when they forget the (..) to import all ctors) |
| 17:23:04 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
| 17:23:06 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) (Remote host closed the connection) |
| 17:23:19 | <geekosaur> | wait, you want the data ctors but not the type ctor? that's useless |
| 17:23:33 | → | k8yun joins (~k8yun@user/k8yun) |
| 17:23:34 | <geekosaur> | you can't refer to the data ctors you imported without the type |
| 17:24:02 | → | dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 17:27:22 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 17:28:20 | × | danso quits (danso@danso.ca) (Quit: ZNC - https://znc.in) |
| 17:28:48 | <geekosaur> | Bulby[m], why do you think you want untyped data constructors? Aside from the fact that you're translating from Java where they would have a "type" (every type inherits from java.lang.Object) |
| 17:29:38 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a4d3:9794:7d08:2a06) |
| 17:30:16 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 17:31:33 | → | danso joins (~danso@danso.ca) |
| 17:34:05 | × | cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 255 seconds) |
| 17:34:07 | → | Tuplanolla joins (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) |
| 17:34:10 | → | bjobjo joins (~bjobjo@user/bjobjo) |
| 17:34:19 | → | cods joins (~fred@82-65-232-44.subs.proxad.net) |
| 17:34:43 | → | econo joins (uid147250@user/econo) |
| 17:34:57 | × | ubert quits (~Thunderbi@2a02:8109:abc0:6434:88ad:201e:ada:568e) (Remote host closed the connection) |
| 17:37:18 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
| 17:37:23 | × | kaskal quits (~kaskal@089144209011.atnat0018.highway.a1.net) (Quit: ZNC - https://znc.in) |
| 17:37:44 | → | kaskal joins (~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b) |
| 17:39:46 | → | Pickchea joins (~private@user/pickchea) |
| 17:40:52 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 17:41:46 | <sm> | maybe add a import Module hiding (Type) |
| 17:42:47 | <geekosaur> | maybe that's what they mean. I don't think they can mean the other as ghc can't touch the data ctors without having a type for them |
| 17:48:08 | × | slac77221 quits (~slack1256@191.125.227.72) (Ping timeout: 248 seconds) |
| 17:48:43 | → | slack1256 joins (~slack1256@191.126.99.206) |
| 17:50:43 | → | janschneider[m] joins (~janschnei@2001:470:69fc:105::1:7625) |
| 17:51:50 | <slack1256> | c_wraith: Not something unsafe. But perfomance will suffer if I share this stream and the values are retained in memory. |
| 17:52:31 | × | zaquest quits (~notzaques@5.130.79.72) (Read error: Connection reset by peer) |
| 17:53:14 | × | k8yun quits (~k8yun@user/k8yun) (Quit: Leaving) |
| 17:54:01 | × | kaskal quits (~kaskal@2001:4bb8:2e8:3abf:bc97:9581:8b80:8f4b) (Ping timeout: 244 seconds) |
| 17:59:55 | → | Karel_ joins (~Karel@d51a4910f.access.telenet.be) |
| 17:59:55 | × | Karel quits (~Karel@ptr-9091p57aekjr6i5k27f.18120a2.ip6.access.telenet.be) (Killed (osmium.libera.chat (Nickname regained by services))) |
| 17:59:55 | Karel_ | is now known as Karel |
| 18:00:58 | × | m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 246 seconds) |
| 18:02:08 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 18:02:34 | → | Batzy joins (~quassel@user/batzy) |
| 18:03:03 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 18:03:34 | → | m1dnight joins (~christoph@78-22-9-5.access.telenet.be) |
| 18:03:39 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 18:04:45 | × | slack1256 quits (~slack1256@191.126.99.206) (Read error: Connection reset by peer) |
| 18:05:03 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 18:05:22 | → | slack1256 joins (~slack1256@186.11.84.227) |
| 18:06:41 | <Bulby[m]> | hm, how would you handle `this` in classes with a heap |
| 18:06:52 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 18:07:39 | <geekosaur> | depends. some pass it as a hidden parameter |
| 18:07:47 | <Bulby[m]> | I guess pass it as an arg? |
| 18:08:45 | → | zaquest joins (~notzaques@5.130.79.72) |
| 18:09:10 | × | mbuf quits (~Shakthi@122.174.63.81) (Quit: Leaving) |
| 18:11:46 | → | kaskal joins (~kaskal@2001:4bb8:2d3:39b7:6dc3:9794:9538:b6b) |
| 18:14:39 | <Bulby[m]> | the "javaism" is binding to it, which sounds sort of sane |
| 18:14:41 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
| 18:15:24 | × | YoungFrog quits (~youngfrog@2a02:a03f:c21b:f900:6013:240:b757:7b6f) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
| 18:15:39 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 18:15:43 | → | YoungFrog joins (~youngfrog@2a02:a03f:c21b:f900:4407:6901:d62:3299) |
| 18:16:59 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 18:21:30 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 18:24:18 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 18:38:58 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds) |
| 18:40:22 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 18:44:31 | <Bulby[m]> | users would expect `var foo = new Foo(); var bar = foo; bar.field = "foo"; print foo.field;` to print "foo", right? |
| 18:44:32 | <Bulby[m]> | i.e. instances are stored by reference |
| 18:45:06 | <geekosaur> | generally yes, but consider copy constructors in C++ |
| 18:45:09 | <Bulby[m]> | haxe does it that way, and it would make the implementation easier |
| 18:46:29 | <geekosaur> | (of course C++ complicates things by having struct/class be non-reference, plus references and pointers which aren't the same thing) |
| 18:46:49 | <geekosaur> | but `this` is implicitly a reference |
| 18:46:52 | → | ashln joins (~ashln@98.38.236.123) |
| 18:47:41 | × | kenran quits (~kenran@200116b82bb85a007f00c59d6ba2f8c0.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 18:48:03 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 18:49:17 | <Bulby[m]> | what would be expected for `var foo = new Foo(); var bar = foo; foo = 1; print bar;` should it print "instance Foo"? |
| 18:49:31 | <Bulby[m]> | i.e. something changes when assigning? |
| 18:49:34 | <Bulby[m]> | because that borks a lot of the scope |
| 18:49:53 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 18:50:49 | <geekosaur> | seems to me that bar should be the object and foo should be 1, at the end of that |
| 18:50:59 | → | Batzy joins (~quassel@user/batzy) |
| 18:51:18 | <Bulby[m]> | yes, which is what I expected |
| 18:51:26 | <Bulby[m]> | this compilicates things |
| 18:51:30 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds) |
| 18:51:32 | <geekosaur> | if that breaks something then you may need to rethink things; you should simply be reassigning heap "pointers" |
| 18:53:09 | <Bulby[m]> | as in memory when assigning `foo = 1;` I would have to define a new heap value of 1 to keep bar intact |
| 18:53:33 | <geekosaur> | yes. which might mean deciding whether numbers are objects |
| 18:53:46 | <Bulby[m]> | and expressions aren't really meant to edit the stack, which is what would have to happen |
| 18:54:49 | <geekosaur> | hm, would it? object references might simply be 2-level |
| 18:55:20 | <geekosaur> | possibly with their own heap |
| 18:56:17 | <geekosaur> | this might mean runtime type information so you know when that happens, though, otherwise you might treat an object reference as a number or something |
| 18:57:02 | <geekosaur> | the more common approach is everything is an object, so `1.add(2)` would be meaningful |
| 18:57:57 | <geekosaur> | and every heap reference is then depth 2, once for the object reference and the second for the actual value |
| 18:58:31 | <geekosaur> | (or the java approach where primitive unboxed types are still depth 1, but that complicates things considerably) |
| 18:59:04 | → | coot joins (~coot@213.134.190.95) |
| 19:00:47 | × | Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.) |
| 19:02:19 | → | Teacup joins (~teacup@user/teacup) |
| 19:04:30 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de) |
| 19:05:43 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Read error: Connection reset by peer) |
| 19:05:53 | → | \yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 19:07:03 | <geekosaur[m]> | Come to think of it, your vars need RTTI anyway, you just add a new "ref" type |
| 19:07:13 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 19:09:21 | × | \yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Read error: Connection reset by peer) |
| 19:09:27 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 19:16:20 | × | alp quits (~alp@user/alp) (Ping timeout: 252 seconds) |
| 19:20:00 | → | alp joins (~alp@user/alp) |
| 19:21:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 19:22:06 | × | arjun quits (~arjun@user/arjun) (Quit: tip toe-ing my way outta here) |
| 19:26:38 | × | TimWolla quits (~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye) |
| 19:26:55 | <geekosaur> | oh, hm, if the type is stored in the var instead of the value then that still edits the stack I guess. unless the vars are 2-level ({type, value}) |
| 19:27:41 | <geekosaur> | but if you don't do that you still hit this with `var foo = 1; foo = "a"` |
| 19:28:09 | <geekosaur> | types of course avoid this, but Lox is untyped |
| 19:32:25 | → | TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667) |
| 19:33:17 | × | zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!) |
| 19:34:30 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds) |
| 19:36:27 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 19:36:34 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 19:42:37 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 19:44:14 | → | Guest27 joins (~Guest27@2601:281:d47f:1590::59a2) |
| 19:50:16 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds) |
| 19:52:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 19:52:54 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 19:54:25 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5) |
| 19:55:50 | × | hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 240 seconds) |
| 19:57:39 | → | hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net) |
| 19:59:15 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 19:59:26 | × | martin02 quits (~silas@141.84.69.76) (Ping timeout: 255 seconds) |
| 20:01:47 | <Bulby[m]> | yes, a new ref value would make sense |
| 20:02:04 | × | hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 246 seconds) |
| 20:02:29 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 20:02:30 | × | lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5) |
| 20:02:36 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:03:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:03:46 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 20:05:54 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 20:06:09 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 20:10:31 | → | hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net) |
| 20:12:17 | → | martin02 joins (~silas@141.84.69.76) |
| 20:14:24 | <EvanR> | java, the best dynamically typed language |
| 20:14:43 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:14:48 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:14:58 | → | Henson joins (~kvirc@107-179-133-201.cpe.teksavvy.com) |
| 20:16:47 | <Henson> | does anybody have any recommendations for Haskell consulting firms? |
| 20:17:50 | <geekosaur> | the only one I'm aware of is well-typed, and they may be outside your spending range |
| 20:17:59 | <geekosaur> | (that doesn't prove there aren't others) |
| 20:20:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:21:24 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 20:22:34 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:26:33 | <Henson> | geekosaur: is well-typed really expensive? |
| 20:26:59 | <geekosaur> | don't really know but I kinda expect consultants to be up there |
| 20:27:26 | <geekosaur> | and they gotta be able to fund something like half the folks involved with ghc dev somehow :) |
| 20:28:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:28:04 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 20:28:45 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:29:06 | → | slac32089 joins (~slack1256@191.126.227.204) |
| 20:29:18 | <Bulby[m]> | wtf you can't even derive eq, ord, or show for GADTs |
| 20:30:27 | <sclv> | there's a ton of haskell consulting firms these days actually. i don't know much about them as firms, but i know people in them -- tweag, stackbuilders, obsidian, serokell are all some bigger names |
| 20:30:28 | <Bulby[m]> | why are gadts so painufl |
| 20:30:39 | <geekosaur> | you can't derive through an existential. rarely you can use standalone deriving, but most of the time the existential prevents you from doing much of anything |
| 20:31:05 | <geekosaur> | because it has no knowable type from the outside |
| 20:31:20 | × | slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 248 seconds) |
| 20:31:23 | <sclv> | oh i guess monadfix is a notable consultancy too, among many others im sure im omitting |
| 20:32:42 | <sclv> | Henson: as for which is right for you, i'd look at the projects of each and see what seems most suited to the sorts of things you need. |
| 20:33:18 | <sclv> | if you use gadts for type indexing rather than existentials you can get pretty far |
| 20:33:22 | <sclv> | with standalone deriving |
| 20:33:29 | <EvanR> | GADTs are sort of the beginning of your ability to use logic, and then logic comes back with a vengance |
| 20:33:37 | <Henson> | sclv: thank you for the names, I'll take a look into them |
| 20:33:45 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:33:48 | <EvanR> | poetically we have no one but ourselves to blame |
| 20:34:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:34:21 | <EvanR> | other programming languages manage to get things done by being illogical |
| 20:34:48 | → | Guest9 joins (~Guest9@109.206.198.75) |
| 20:35:34 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 20:36:15 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 20:36:42 | → | stackdroid18 joins (14094@user/stackdroid) |
| 20:41:00 | <Bulby[m]> | you can standalone derive, but why can't you just uh derive |
| 20:41:30 | <Bulby[m]> | i also wish there was wizardry that let generic work |
| 20:42:13 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Remote host closed the connection) |
| 20:42:16 | <sclv> | thats actually a really good question -- vis a vis deriving. generics you need a different lib/approach, but it _should_ be that if you can standalone derive it you should be able to just derive it. i think that's probably something that could be worked out more carefully into a ghc proposal |
| 20:42:19 | → | causal joins (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
| 20:44:34 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 20:47:06 | × | alp quits (~alp@user/alp) (Ping timeout: 250 seconds) |
| 20:50:56 | × | Guest9 quits (~Guest9@109.206.198.75) (Quit: Client closed) |
| 20:54:09 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 20:54:44 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:56:56 | → | pavonia joins (~user@user/siracusa) |
| 20:57:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:57:19 | × | kjak quits (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 20:58:25 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 246 seconds) |
| 20:58:28 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 20:58:52 | × | dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in) |
| 20:59:13 | → | nate3 joins (~nate@98.45.169.16) |
| 20:59:48 | → | zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) |
| 21:00:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 21:00:31 | → | ClathomasPrime joins (~Clathomas@pool-98-110-124-224.cmdnnj.fios.verizon.net) |
| 21:00:49 | × | pmk quits (~user@2a02:587:9418:69b8:b896:d770:251d:c4d7) (Remote host closed the connection) |
| 21:01:25 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 21:02:31 | <ClathomasPrime> | Hello! I'm trying to edit a big string by performing a function on every place in the string which matches a simple regex. It was looking like the replace-megaparsec function streamEdit is just what I need, but I can't figure out how to convert my simple regex to a Parsec |
| 21:02:53 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Ping timeout: 255 seconds) |
| 21:02:58 | <geekosaur> | I think part of the problem there is the specifications for deriving those instances are from the Report and would require an extension. it's a good question whether that should be enabled by standalone deriving or if another extension would be needed to produce non-Report deriving code |
| 21:03:23 | <ClathomasPrime> | The regex is just "<br>[^<]*</td>", and I'd like to run the function on everything which matches the [^<]* |
| 21:03:25 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 21:04:01 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 21:05:19 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 21:05:23 | <geekosaur> | this is parsing and you do it by parsing the string with parse or parseMaybe https://hackage.haskell.org/package/megaparsec-9.2.1/docs/Text-Megaparsec.html |
| 21:05:57 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:06:05 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 21:06:50 | × | slac32089 quits (~slack1256@191.126.227.204) (Read error: Connection reset by peer) |
| 21:07:39 | <ClathomasPrime> | how is a "search and replace" type of operation a special case of parsing? |
| 21:07:46 | → | slack1256 joins (~slack1256@186.11.84.227) |
| 21:08:23 | <geekosaur> | `parsing` is how you get that `Parsec` thing you wanted |
| 21:09:31 | → | kjak joins (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) |
| 21:09:41 | <Bulby[m]> | i want to do something like rust |
| 21:09:46 | <Bulby[m]> | with resource allocation and freeing |
| 21:09:56 | <Bulby[m]> | "RAII" as the C++ crew calls it |
| 21:11:14 | <geekosaur> | isn't this ResourceT? |
| 21:11:54 | <int-e> | :t Control.Exception.bracket |
| 21:11:55 | <lambdabot> | IO a -> (a -> IO b) -> (a -> IO c) -> IO c |
| 21:12:02 | <geekosaur> | ClathomasPrime, also regexes are simple parsers |
| 21:12:20 | <dsal> | regexes are parser whose input needs to be parsed so they can parse their input |
| 21:13:46 | <ClathomasPrime> | I think I understand in theory. But I can't figure out how make a Parsec which matches in the same way as the regex "<br>[^<]*</td>" |
| 21:15:20 | <dsal> | So, you're looking for text that starts with a <br> and satisfies `not . (== '<')` followed by </td> ? |
| 21:15:25 | → | adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan) |
| 21:16:04 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds) |
| 21:16:22 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 21:16:51 | <ClathomasPrime> | yes (with the longest possible string of not . (== '<')) |
| 21:16:54 | <dsal> | You can use `between` with `(string "<br>") (string "</td>")` for anything satisfying `not . (== '<')` |
| 21:17:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 21:17:48 | <EvanR> | do any of the regex libs in haskell simply have this sort of find and replace |
| 21:18:00 | <geekosaur> | `string "br" *> manyTill anyChar '<' <* string "</td>"` ? |
| 21:18:06 | <EvanR> | i.e. what everyone uses regex for |
| 21:18:14 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:18:19 | <geekosaur> | probably not. I sometimes think thye regex api in haskell was designed to drive people away |
| 21:18:41 | <dsal> | I tried a thing with regex before I learned how to do parsec things and had a very bad time. |
| 21:18:50 | <geekosaur> | because you're "supposed to" write a parser |
| 21:18:54 | <dsal> | The worst part was async exceptions. |
| 21:19:13 | <Guest27> | Just write a Haskell function that takes a String and passes it to sed as a script :P |
| 21:19:13 | <EvanR> | so regexen need some love in haskell |
| 21:19:22 | <hpc> | i mean, a regex is basically just a non-recursive parsec parser |
| 21:19:33 | <EvanR> | that is orders of magnitude shorter in code xD |
| 21:20:04 | <dsal> | megaparsec code is generally easier to read and gives much better error messages when things go wrong. |
| 21:20:10 | <EvanR> | and doesn't explain the find and replace part |
| 21:20:13 | <EvanR> | parsec |
| 21:20:27 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 21:20:52 | <EvanR> | yeah a formal parser you want to reuse is better in fooparsec |
| 21:21:03 | <dsal> | I've not looked at replace-megaparsec |
| 21:21:57 | <EvanR> | a book just came in the mail which does input validation in increasingly haskelly and safer ways. Maybe someone should write such a book on "find and replace" xD |
| 21:22:57 | <geekosaur> | hm, I think a pair of <> got et earlier |
| 21:23:11 | <EvanR> | Bulby[m], now you need linear types! |
| 21:24:53 | → | Pickchea joins (~private@user/pickchea) |
| 21:25:07 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Ping timeout: 258 seconds) |
| 21:25:52 | <geekosaur> | `string "<br>" *> manyTill anyChar '<' <* string "/td>"` I think |
| 21:26:25 | → | alp joins (~alp@user/alp) |
| 21:29:16 | <ClathomasPrime> | thank you geekosaur! It looks right for Parsec. I have to also convert it to MegaParsec though, and now I'm having trouble there. Trying though |
| 21:30:01 | <geekosaur> | you may have to import Control.Applicative.Combinators |
| 21:30:02 | <dsal> | Does that not work for megaparsec? Do you have a particular error? |
| 21:30:43 | <geekosaur> | (the functionality was separated out because it's actually in common with a bunch of other parsers) |
| 21:32:01 | <dsal> | I think `manyTill` wants a parser for the second function. So like `manyTill anyChar (single '<')` |
| 21:32:11 | <dsal> | er, param. I should take a nap. |
| 21:32:18 | <geekosaur> | mm, yes, sorry |
| 21:32:34 | <geekosaur> | or `char` instead of `single` should work I think |
| 21:33:20 | <dsal> | Yeah, that looks better. |
| 21:33:30 | <ClathomasPrime> | It looks like "import Text.Megaparsec" doesn't bring in the functions string or anyChar |
| 21:33:37 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 21:33:47 | <dsal> | https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec-Char.html |
| 21:33:51 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:34:46 | <geekosaur> | megaparsec can parse more than just `String`s |
| 21:35:11 | <geekosaur> | so there are separate modules for various things it can work with directly, plous tools for building your own |
| 21:35:33 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 21:35:35 | <ClathomasPrime> | nice, Text.Megaparsec.Char brought in "string". Still looking for "anyChar" |
| 21:35:49 | <dsal> | You can press `s` on the docs to find related symbols. |
| 21:36:52 | × | Guest27 quits (~Guest27@2601:281:d47f:1590::59a2) (Ping timeout: 252 seconds) |
| 21:36:56 | <dsal> | I don't see `anyChar`, but I see `anySingle`. Looking through my own code, I see that I use `anyChar` in attoparsec some. |
| 21:37:07 | <dsal> | There are lot of parser libraries in Haskell. It's basically hello world. |
| 21:39:21 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 21:39:33 | <ClathomasPrime> | nice, looks like anySingle is what I needed! |
| 21:39:52 | <ClathomasPrime> | Thanks for a lot of good tips (e.g. I had no idea on pressing s) |
| 21:40:04 | <ClathomasPrime> | Looks like the parser works, let's see if I can do my replacing |
| 21:40:04 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b72c8bc739f4cc151f2.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 21:40:44 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 21:43:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 21:43:17 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 21:44:06 | → | dolio joins (~dolio@130.44.130.54) |
| 21:45:14 | × | dolio quits (~dolio@130.44.130.54) (Client Quit) |
| 21:45:38 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 21:47:37 | → | dolio joins (~dolio@130.44.130.54) |
| 21:53:43 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 21:54:30 | × | slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 240 seconds) |
| 21:58:16 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Ping timeout: 248 seconds) |
| 22:01:05 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:01:06 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:11:35 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:13:41 | × | Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
| 22:13:56 | × | Karel quits (~Karel@d51a4910f.access.telenet.be) (Ping timeout: 248 seconds) |
| 22:17:54 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:18:32 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 248 seconds) |
| 22:26:20 | → | Karel joins (~Karel@ptr-9091p57aekjr6i5k27f.18120a2.ip6.access.telenet.be) |
| 22:26:20 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 22:27:18 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds) |
| 22:27:28 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 22:28:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 22:30:57 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) (Ping timeout: 260 seconds) |
| 22:32:13 | × | Karel quits (~Karel@ptr-9091p57aekjr6i5k27f.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer) |
| 22:33:23 | → | slack1256 joins (~slack1256@186.11.84.227) |
| 22:34:53 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:35:56 | × | ClathomasPrime quits (~Clathomas@pool-98-110-124-224.cmdnnj.fios.verizon.net) (Quit: Client closed) |
| 22:36:15 | → | yosef` joins (~user@user/yosef/x-2947716) |
| 22:41:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 22:42:01 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds) |
| 22:42:50 | × | chomwitt quits (~chomwitt@2a02:587:dc1f:5600:28f0:c157:4d87:4f4e) (Ping timeout: 244 seconds) |
| 22:46:06 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:46:21 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 22:50:38 | <Haskelytic> | guys, how is cabal freeze different from stack resolver? |
| 22:52:10 | × | slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 246 seconds) |
| 22:52:32 | <hpc> | the package set hasn't already been written by someone else |
| 22:53:05 | <geekosaur> | you can get a cabal.freeze from stackage.org |
| 22:53:22 | <geekosaur> | there are a few operational differences but I don't recall what they are off the top of my head |
| 22:54:08 | <Haskelytic> | so stackage and hackage are basically both package indices? |
| 22:54:47 | <Bulby[m]> | i think stackage is an attempt to keep it more stable |
| 22:55:43 | <hpc> | in theory you can make a package depend on all of a stack lts at the same time and it will still be coherent |
| 22:55:49 | <geekosaur> | hackage is the master repository, which even stackage uses. stackage publishes curated sets of packages, sourced from hackage, which are known to work together |
| 22:56:37 | <Haskelytic> | ohhh, makes sense now. thanks :) |
| 22:57:48 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:58:14 | <geekosaur> | if you use `cabal freeze` to create a freeze file, cabal won't upgrade packages listed in it just because a new version comes out, which it will otherwise do as long as the new package fits version constraints |
| 22:58:41 | <geekosaur> | this may avoid thrashing or discovery of bad package dependencies on a new release |
| 22:59:06 | <Haskelytic> | hmm I see |
| 22:59:23 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:b817:6713:b967:11bc) |
| 22:59:24 | <Haskelytic> | so it would be up to the developer to "unfreeze" as needed? |
| 22:59:35 | <geekosaur> | yes |
| 22:59:43 | → | tabemann joins (~tabemann@2600:1700:7990:24e0:ac21:ff4e:45be:2497) |
| 23:00:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:00:09 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 23:00:18 | <geekosaur> | because you want something from a newer version, or just because you can afford have your dependencies getting rebuilt instead of just the thing you're working on :) |
| 23:01:01 | <geekosaur> | (hence "thrashing". I don't use a freeze file on my xmonad config, which uses dbus, and it rebuilds conduit and/or lens every couple weeks…) |
| 23:01:37 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 23:01:37 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 23:01:37 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:01:47 | <Haskelytic> | ahh i see |
| 23:01:55 | <Haskelytic> | thanks for that detailed example |
| 23:03:07 | × | julian quits (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian))) |
| 23:08:34 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:10:42 | → | AlexNoo_ joins (~AlexNoo@94.233.240.35) |
| 23:11:52 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:12:49 | × | AlexZenon quits (~alzenon@178.34.150.134) (Ping timeout: 246 seconds) |
| 23:13:52 | × | Alex_test quits (~al_test@178.34.150.134) (Ping timeout: 246 seconds) |
| 23:14:22 | × | AlexNoo quits (~AlexNoo@178.34.150.134) (Ping timeout: 258 seconds) |
| 23:16:53 | → | AlexZenon joins (~alzenon@94.233.240.35) |
| 23:17:38 | → | bilegeek joins (~bilegeek@2600:1008:b016:eaf8:86d7:87a2:4b7e:8f8b) |
| 23:18:30 | → | Alex_test joins (~al_test@94.233.240.35) |
| 23:22:30 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:24:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:29:50 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 23:29:51 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds) |
| 23:31:35 | × | DNH quits (~DNH@2a02:8108:1100:16d8:d5e4:216a:268c:a812) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:33:07 | × | yosef` quits (~user@user/yosef/x-2947716) (Ping timeout: 246 seconds) |
| 23:33:12 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds) |
| 23:34:59 | × | alp quits (~alp@user/alp) (Ping timeout: 255 seconds) |
| 23:36:57 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:37:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:39:27 | → | kaskal- joins (~kaskal@2001:4bb8:2a7:f3b8:36de:fd74:7690:c176) |
| 23:39:39 | × | zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!) |
| 23:39:59 | × | kaskal quits (~kaskal@2001:4bb8:2d3:39b7:6dc3:9794:9538:b6b) (Ping timeout: 240 seconds) |
| 23:41:28 | → | nicbk joins (~nicbk@user/nicbk) |
| 23:45:14 | × | cosimone` quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 23:45:54 | → | cosimone` joins (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) |
| 23:48:17 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a) |
| 23:50:10 | × | hueso quits (~root@user/hueso) (Ping timeout: 240 seconds) |
| 23:50:20 | → | hueso joins (~root@user/hueso) |
| 23:51:43 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:52:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:52:56 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: Lost terminal) |
| 23:54:18 | × | hueso quits (~root@user/hueso) (Read error: Connection reset by peer) |
| 23:56:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:56:30 | → | hueso joins (~root@user/hueso) |
| 23:56:32 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
All times are in UTC on 2022-06-09.