2024/04/05

2024-04-05 00:02:04 +0200alexherbo2(~alexherbo@2a02-8440-3240-7e76-652c-a596-803f-a5ea.rev.sfr.net) (Remote host closed the connection)
2024-04-05 00:02:23 +0200alexherbo2(~alexherbo@2a02-8440-3240-7e76-652c-a596-803f-a5ea.rev.sfr.net)
2024-04-05 00:03:21 +0200Eoco(~ian@128.101.131.218)
2024-04-05 00:14:44 +0200acidjnk_new(~acidjnk@p200300d6e714dc57ec96801fcefcf5b5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-04-05 00:27:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 00:29:30 +0200 <Inst> curious, how does unsafeCoerce work, anyways, and how can I predict where it'll segfault?
2024-04-05 00:31:33 +0200 <monochrom> If "newtype T = MkT Int" for example, then unsafeCoerce between T and Int is OK (unless you also need their typeclass instances).
2024-04-05 00:32:18 +0200 <monochrom> But that use case is better served with the compiler-generated safe Coercible instance.
2024-04-05 00:32:24 +0200 <monochrom> s/with/by/
2024-04-05 00:32:55 +0200 <EvanR> unsafeCoerce dismisses the type checker and so you're at the mercy of dreaded actual behavior of the compiler
2024-04-05 00:33:13 +0200 <EvanR> if you use it wrong, good luck predicting *where* it will segfault, if it even does that
2024-04-05 00:33:35 +0200 <EvanR> it could cause monkeys to fly out of your nose!
2024-04-05 00:34:04 +0200 <Inst> yeah, i'm having fun
2024-04-05 00:34:11 +0200 <Inst> did you know that [Void] is inhabited?
2024-04-05 00:34:26 +0200 <Inst> Incidentally, by the same logic, so's Maybe Void
2024-04-05 00:34:31 +0200 <sadie_> > [] @Void
2024-04-05 00:34:33 +0200 <lambdabot> <hint>:1:4: error: parse error on input ‘@’
2024-04-05 00:34:54 +0200 <sadie_> > ([] :: [Void])
2024-04-05 00:34:55 +0200 <lambdabot> []
2024-04-05 00:35:00 +0200 <monochrom> Maybe Void is inhabited by Nothing and this is independent of Void.
2024-04-05 00:35:12 +0200 <sadie_> :3
2024-04-05 00:35:32 +0200 <Inst> actually it's trivial, in the same way Proxy (a :: k) is a thing
2024-04-05 00:36:07 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 256 seconds)
2024-04-05 00:38:09 +0200Guest96(~Guest96@sgyl-43-b2-v4wan-169648-cust2111.vm6.cable.virginm.net)
2024-04-05 00:39:40 +0200yin(~yin@user/zero)
2024-04-05 00:39:53 +0200 <EvanR> Void is inhabited too
2024-04-05 00:40:09 +0200Guest96(~Guest96@sgyl-43-b2-v4wan-169648-cust2111.vm6.cable.virginm.net) ()
2024-04-05 00:40:38 +0200 <EvanR> newton may have been on to something when he claimed there were ghosts of departed quantity
2024-04-05 00:40:49 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-05 00:41:05 +0200 <Inst> bottom, of course
2024-04-05 00:46:17 +0200 <EvanR> http://sigtbd.csail.mit.edu/pubs/2016/paper9.pdf
2024-04-05 01:04:23 +0200poxel(~lennart@user/poxel) (Quit: WeeChat 4.2.1)
2024-04-05 01:09:10 +0200yin(~yin@user/zero) (Ping timeout: 255 seconds)
2024-04-05 01:18:04 +0200 <Inst> is there a specific terminology to "being only inhabited by bottom"?
2024-04-05 01:20:02 +0200 <EvanR> equivalent to Void xD
2024-04-05 01:20:51 +0200meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2024-04-05 01:21:10 +0200 <ncf> empty
2024-04-05 01:23:38 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 01:27:48 +0200 <EvanR> the type speaks an infinite deal of nothing
2024-04-05 01:28:50 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-05 01:31:00 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 01:31:06 +0200yin(~yin@user/zero)
2024-04-05 01:33:23 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 01:34:50 +0200 <Maxdamantus> how many bottom values are there?
2024-04-05 01:35:46 +0200mei(~mei@user/mei)
2024-04-05 01:35:47 +0200 <c_wraith> as many as you want.
2024-04-05 01:35:57 +0200 <c_wraith> Depending on how willing you are to distinguish them.
2024-04-05 01:36:05 +0200 <c_wraith> Or two.
2024-04-05 01:36:13 +0200 <Maxdamantus> is `fix id` the same as `undefined`? is `undefined` the same as `error "defined"`?
2024-04-05 01:36:23 +0200 <c_wraith> If the only things you'll recognize is "runtime exception" vs "nontermination"
2024-04-05 01:37:58 +0200 <c_wraith> segfault is the same as undefined!
2024-04-05 01:38:21 +0200 <Maxdamantus> well, if I'm allowed to decide, I decide that there are 0 bottom values, since the evaluation never finishes.
2024-04-05 01:39:25 +0200 <c_wraith> that's a very internal viewpoint, but IO can distinguish between runtime exceptions and non-termination. (though it can't distinguish non-termination from "not terminated yet")
2024-04-05 01:39:35 +0200 <Maxdamantus> so `Void` has 0 values and `[Void]` has 1 value and people can make sense of the world again.
2024-04-05 01:39:43 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-04-05 01:39:59 +0200 <c_wraith> Eh. [Void] has n values.
2024-04-05 01:40:04 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-05 01:40:05 +0200 <c_wraith> no matter how many Void has.
2024-04-05 01:40:23 +0200 <Maxdamantus> I can at least accept the logic there.
2024-04-05 01:41:32 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 01:42:42 +0200 <EvanR> you can decide to ignore differences for the sake of abstraction
2024-04-05 01:43:02 +0200 <EvanR> but you can't introduce differences where there are none... apparently like multi-electron wavefunctions
2024-04-05 01:43:12 +0200 <EvanR> or you get the wrong statistics
2024-04-05 01:43:18 +0200 <c_wraith> You can even mumble "fast and loose reasoning is morally correct" and ignore bottoms entirely when analyzing behavior in fully-defined situations.
2024-04-05 01:44:03 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 01:44:58 +0200 <c_wraith> If your code generates fully-defined outputs for all fully-defined inputs, then you've at least established some bounds on its behavior even if you ignore inputs with bottoms in them.
2024-04-05 01:46:48 +0200 <EvanR> [Void] has n values?
2024-04-05 01:47:00 +0200 <EvanR> what is n
2024-04-05 01:47:11 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 01:47:22 +0200 <c_wraith> some number.
2024-04-05 01:47:27 +0200 <EvanR> which one xD
2024-04-05 01:47:40 +0200 <c_wraith> bigger than whichever one you're gonna ask about.
2024-04-05 01:47:44 +0200 <EvanR> lool
2024-04-05 01:47:55 +0200 <EvanR> n + 1 ?
2024-04-05 01:48:05 +0200 <c_wraith> nope, bigger.
2024-04-05 01:48:14 +0200 <EvanR> n > n + 1
2024-04-05 01:48:50 +0200 <c_wraith> now, solve the recurrance...
2024-04-05 01:49:45 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 01:50:30 +0200 <EvanR> 0 > 1
2024-04-05 01:50:53 +0200 <EvanR> that's absurd
2024-04-05 01:53:52 +0200 <yin> :t absurd
2024-04-05 01:53:54 +0200 <lambdabot> Void -> a
2024-04-05 01:55:10 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Ping timeout: 268 seconds)
2024-04-05 01:55:34 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-05 01:57:18 +0200meinside(uid24933@id-24933.helmsley.irccloud.com)
2024-04-05 01:57:32 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 01:58:28 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2024-04-05 01:58:47 +0200EvanR(~EvanR@user/evanr)
2024-04-05 01:59:22 +0200shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2024-04-05 01:59:50 +0200[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2024-04-05 01:59:55 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 02:00:04 +0200[Leary](~Leary]@user/Leary/x-0910699)
2024-04-05 02:02:59 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 02:05:28 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 02:11:34 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 02:14:02 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 02:14:26 +0200fererrorocher(fererroroc@gateway/vpn/protonvpn/fererrorocher) (Quit: WeeChat 4.2.1)
2024-04-05 02:24:58 +0200mima(~mmh@87-99-53-133.internetia.net.pl) (Quit: leaving)
2024-04-05 02:31:59 +0200sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection)
2024-04-05 02:54:16 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Quit: Leaving.)
2024-04-05 03:00:40 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2024-04-05 03:01:39 +0200bairyn(~bairyn@50.250.232.19) (Ping timeout: 255 seconds)
2024-04-05 03:03:34 +0200bairyn(~bairyn@50.250.232.19)
2024-04-05 03:11:26 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 03:16:03 +0200TheCoffeMaker_(~TheCoffeM@200.114.213.75) (Ping timeout: 260 seconds)
2024-04-05 03:16:03 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-04-05 03:16:25 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-05 03:18:50 +0200mei(~mei@user/mei)
2024-04-05 03:20:07 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-04-05 03:24:03 +0200dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-05 03:26:07 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-04-05 03:26:39 +0200dolio(~dolio@130.44.134.54)
2024-04-05 03:39:11 +0200alexherbo2(~alexherbo@2a02-8440-3240-7e76-652c-a596-803f-a5ea.rev.sfr.net) (Remote host closed the connection)
2024-04-05 03:39:51 +0200xff0x(~xff0x@2405:6580:b080:900:1c1a:c3eb:5e35:e984) (Ping timeout: 260 seconds)
2024-04-05 03:45:08 +0200prasad(~prasad_ma@2601:243:c001:3f07::54) (Quit: Leaving)
2024-04-05 03:45:46 +0200otto_s(~user@p5de2fc81.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2024-04-05 03:47:33 +0200otto_s(~user@p5b04448d.dip0.t-ipconnect.de)
2024-04-05 04:03:04 +0200cipherrot(~znc-user@user/petrichor)
2024-04-05 04:04:13 +0200petrichor(~znc-user@user/petrichor) (Ping timeout: 255 seconds)
2024-04-05 04:13:30 +0200yangby(~secret@36.24.163.39) (Quit: Go out for a walk and buy a drink.)
2024-04-05 04:13:51 +0200yangby(~secret@36.24.163.39)
2024-04-05 04:16:05 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 04:16:40 +0200ystael(~ystael@user/ystael) (Ping timeout: 246 seconds)
2024-04-05 04:16:53 +0200travgm(~travgm@fsf/member/travgm)
2024-04-05 04:17:59 +0200yin(~yin@user/zero) (Ping timeout: 264 seconds)
2024-04-05 04:19:43 +0200yangby(~secret@36.24.163.39) (Quit: Go out for a walk and buy a drink.)
2024-04-05 04:20:04 +0200yangby(~secret@36.24.163.39)
2024-04-05 04:24:19 +0200yin(~yin@user/zero)
2024-04-05 04:24:52 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-04-05 04:26:24 +0200yangby(~secret@36.24.163.39) (Quit: Go out for a walk and buy a drink.)
2024-04-05 04:29:04 +0200travgm(~travgm@fsf/member/travgm) (Ping timeout: 256 seconds)
2024-04-05 04:36:18 +0200sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-05 04:36:43 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-05 04:39:08 +0200mei(~mei@user/mei)
2024-04-05 04:42:45 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
2024-04-05 04:44:21 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-05 04:46:05 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::)
2024-04-05 04:50:06 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net)
2024-04-05 04:53:00 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-05 04:54:08 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) ()
2024-04-05 04:54:42 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-05 04:56:58 +0200yin(~yin@user/zero) (Ping timeout: 264 seconds)
2024-04-05 04:58:15 +0200td_(~td@i53870905.versanet.de) (Ping timeout: 260 seconds)
2024-04-05 04:59:45 +0200td_(~td@i53870915.versanet.de)
2024-04-05 04:59:55 +0200yin(~yin@user/zero)
2024-04-05 05:07:01 +0200yin(~yin@user/zero) (Ping timeout: 272 seconds)
2024-04-05 05:08:49 +0200yin(~yin@user/zero)
2024-04-05 05:25:46 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-04-05 05:26:11 +0200aforemny(~aforemny@i59F516F4.versanet.de)
2024-04-05 05:26:49 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2024-04-05 05:27:28 +0200aforemny_(~aforemny@2001:9e8:6cc4:5e00:b48c:6599:621f:9f88) (Ping timeout: 255 seconds)
2024-04-05 05:29:47 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2024-04-05 05:32:17 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 06:05:08 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-04-05 06:08:07 +0200caconym(~caconym@user/caconym)
2024-04-05 06:11:09 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-04-05 06:13:44 +0200igemnace(~ian@user/igemnace)
2024-04-05 06:17:11 +0200yin(~yin@user/zero)
2024-04-05 06:22:10 +0200yin(~yin@user/zero) (Ping timeout: 264 seconds)
2024-04-05 06:31:43 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-05 06:37:00 +0200yin(~yin@user/zero)
2024-04-05 06:37:06 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Quit: Leaving.)
2024-04-05 06:41:30 +0200visilii(~visilii@188.254.110.118)
2024-04-05 06:42:19 +0200visilii_(~visilii@46.61.242.185) (Ping timeout: 256 seconds)
2024-04-05 06:42:34 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-04-05 06:46:05 +0200michalz(~michalz@185.246.207.193)
2024-04-05 06:48:00 +0200yin(~yin@user/zero) (Ping timeout: 255 seconds)
2024-04-05 06:49:56 +0200yin(~yin@user/zero)
2024-04-05 06:54:05 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
2024-04-05 07:00:38 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-05 07:00:57 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-04-05 07:05:52 +0200sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection)
2024-04-05 07:09:59 +0200yin(~yin@user/zero) (Ping timeout: 268 seconds)
2024-04-05 07:15:46 +0200Square(~Square4@user/square)
2024-04-05 07:24:04 +0200yin(~yin@user/zero)
2024-04-05 07:41:09 +0200danza(~francesco@151.43.187.104)
2024-04-05 07:44:58 +0200yin(~yin@user/zero) (Ping timeout: 264 seconds)
2024-04-05 07:46:18 +0200sroso(~sroso@user/SrOso)
2024-04-05 07:53:34 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-04-05 07:57:14 +0200sroso(~sroso@user/SrOso) (Remote host closed the connection)
2024-04-05 07:57:56 +0200sroso(~sroso@user/SrOso)
2024-04-05 07:58:23 +0200sroso(~sroso@user/SrOso) (Max SendQ exceeded)
2024-04-05 07:58:24 +0200yin(~yin@user/zero)
2024-04-05 07:58:43 +0200sroso(~sroso@user/SrOso)
2024-04-05 07:58:50 +0200sroso(~sroso@user/SrOso) (Client Quit)
2024-04-05 07:59:26 +0200gentauro(~gentauro@user/gentauro)
2024-04-05 08:00:04 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-04-05 08:05:58 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-04-05 08:07:42 +0200ec_(~ec@gateway/tor-sasl/ec)
2024-04-05 08:10:28 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 08:11:57 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-04-05 08:16:29 +0200ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-04-05 08:18:03 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2024-04-05 08:18:50 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2024-04-05 08:19:06 +0200ec_(~ec@gateway/tor-sasl/ec)
2024-04-05 08:19:47 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-04-05 08:20:54 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2024-04-05 08:21:29 +0200ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-04-05 08:21:58 +0200ec_(~ec@gateway/tor-sasl/ec)
2024-04-05 08:22:19 +0200yin(~yin@user/zero)
2024-04-05 08:27:06 +0200euphores(~SASL_euph@user/euphores)
2024-04-05 08:29:20 +0200 <mauke> what is unicode syntax good for if it doesn't let me replace -> by ≥ ?
2024-04-05 08:29:58 +0200 <danza> >= ?
2024-04-05 08:31:56 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-04-05 08:36:45 +0200 <mauke> ⤜ is the closest I can find
2024-04-05 08:37:23 +0200bilegeek(~bilegeek@2600:1008:b06f:5190:2e65:7fa0:5226:d224)
2024-04-05 08:37:46 +0200 <mauke>
2024-04-05 08:47:11 +0200danza(~francesco@151.43.187.104) (Ping timeout: 252 seconds)
2024-04-05 08:48:04 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-04-05 08:53:08 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-05 08:55:56 +0200euphores(~SASL_euph@user/euphores)
2024-04-05 09:08:13 +0200acidjnk_new(~acidjnk@p200300d6e714dc123800cc33cf682def.dip0.t-ipconnect.de)
2024-04-05 09:13:04 +0200CiaoSen(~Jura@2a05:5800:29a:5e00:e6b9:7aff:fe80:3d03)
2024-04-05 09:13:10 +0200CiaoSen(~Jura@2a05:5800:29a:5e00:e6b9:7aff:fe80:3d03) (Client Quit)
2024-04-05 09:13:23 +0200CiaoSen(~Jura@2a05:5800:29a:5e00:e6b9:7aff:fe80:3d03)
2024-04-05 09:13:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 09:21:02 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-04-05 09:21:17 +0200caconym(~caconym@user/caconym)
2024-04-05 09:21:38 +0200zetef(~quassel@5.2.182.99) (Ping timeout: 268 seconds)
2024-04-05 09:21:55 +0200yin(~yin@user/zero) (Ping timeout: 255 seconds)
2024-04-05 09:22:54 +0200caconym(~caconym@user/caconym) (Client Quit)
2024-04-05 09:25:55 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-04-05 09:28:24 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 09:28:50 +0200CiaoSen(~Jura@2a05:5800:29a:5e00:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds)
2024-04-05 09:31:19 +0200yin(~yin@user/zero)
2024-04-05 09:40:20 +0200tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-04-05 09:40:34 +0200danse-nr3(~danse-nr3@151.44.199.122)
2024-04-05 09:45:35 +0200igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-04-05 09:46:18 +0200yin(~yin@user/zero) (Ping timeout: 268 seconds)
2024-04-05 09:47:24 +0200yin(~yin@user/zero)
2024-04-05 10:00:11 +0200tomsmedinghopes mauke 's question was in jest
2024-04-05 10:00:35 +0200 <Reinhilde> mauke, do you mean →
2024-04-05 10:01:53 +0200 <tomsmeding> the actual problem with UnicodeSyntax is that you can't write \ as λ
2024-04-05 10:02:14 +0200 <Reinhilde> hwat
2024-04-05 10:02:27 +0200igemnace(~ian@user/igemnace)
2024-04-05 10:02:31 +0200 <tomsmeding> (because λ is a letter so it's a valid variable name)
2024-04-05 10:05:33 +0200 <mauke> tomsmeding: that's a feature, not a bug
2024-04-05 10:06:05 +0200gmg(~user@user/gehmehgeh)
2024-04-05 10:06:15 +0200 <tomsmeding> mauke: you started complaining that you couldn't write -> as ≥ xD
2024-04-05 10:06:35 +0200 <Reinhilde> greater than or equal to
2024-04-05 10:06:50 +0200 <mauke> those are still symbols
2024-04-05 10:07:04 +0200 <tomsmeding> → also is
2024-04-05 10:07:23 +0200 <mauke> I don't want letters in my symbols and λ is clearly a letter
2024-04-05 10:08:07 +0200tomsmedingwas mostly joking about λ, but is now suspecting mauke of not joking about ≥
2024-04-05 10:09:09 +0200Square(~Square4@user/square) (Ping timeout: 256 seconds)
2024-04-05 10:09:09 +0200 <mauke> sometimes it's hard to tell
2024-04-05 10:09:15 +0200 <tomsmeding> % type a ≥ b = a -> b
2024-04-05 10:09:15 +0200 <yahb2> <no output>
2024-04-05 10:09:34 +0200 <tomsmeding> % type a ≥ b = a -> b; infixr 0 ≥
2024-04-05 10:09:34 +0200 <yahb2> <no output>
2024-04-05 10:09:39 +0200 <tomsmeding> can't quite give it -1
2024-04-05 10:10:20 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-04-05 10:10:51 +0200 <mauke> % (show :: Int ≥ String) 42
2024-04-05 10:10:51 +0200 <yahb2> "42"
2024-04-05 10:11:27 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Quit: o/)
2024-04-05 10:11:41 +0200 <mauke> % (show ⚃ Int ≥ String) 42
2024-04-05 10:11:41 +0200 <yahb2> <interactive>:21:7: error: ; Variable not in scope: (⚃) :: (a0 -> String) -> t3 -> t6 ; ; <interactive>:21:9: error: ; • Illegal term-level use of the type constructor ‘Int’ ; impo...
2024-04-05 10:13:37 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-04-05 10:14:22 +0200gmg(~user@user/gehmehgeh)
2024-04-05 10:14:25 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2024-04-05 10:17:23 +0200shara_(~shara@c-24-60-154-223.hsd1.ma.comcast.net)
2024-04-05 10:19:55 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-04-05 10:20:13 +0200sharan(~shara@c-24-60-154-223.hsd1.ma.comcast.net) (Ping timeout: 268 seconds)
2024-04-05 10:21:51 +0200akegalj(~akegalj@141-136-147-171.dsl.iskon.hr)
2024-04-05 10:26:19 +0200danse-nr3(~danse-nr3@151.44.199.122) (Remote host closed the connection)
2024-04-05 10:26:24 +0200yin(~yin@user/zero)
2024-04-05 10:26:43 +0200danse-nr3(~danse-nr3@151.44.199.122)
2024-04-05 10:28:40 +0200Square2(~Square@user/square)
2024-04-05 10:30:33 +0200ft(~ft@p4fc2a20e.dip0.t-ipconnect.de) (Quit: leaving)
2024-04-05 10:45:15 +0200titibandit_(~titibandi@ip-037-201-154-121.um10.pools.vodafone-ip.de)
2024-04-05 10:45:26 +0200danse-nr3(~danse-nr3@151.44.199.122) (Ping timeout: 252 seconds)
2024-04-05 10:47:35 +0200ubert(~Thunderbi@p200300ecdf1b4f9949cdb76d47d708bb.dip0.t-ipconnect.de)
2024-04-05 10:55:58 +0200danse-nr3(~danse-nr3@151.44.199.122)
2024-04-05 11:03:14 +0200cfricke(~cfricke@user/cfricke)
2024-04-05 11:03:18 +0200titibandit(~titibandi@user/titibandit)
2024-04-05 11:05:47 +0200zetef(~quassel@5.2.182.99)
2024-04-05 11:08:31 +0200 <tomsmeding> % (show ∷ Int ≥ String) 42
2024-04-05 11:08:31 +0200 <yahb2> <interactive>:23:7: error: ; Variable not in scope: (∷) :: (a0 -> String) -> t3 -> t6 ; ; <interactive>:23:9: error: ; • Illegal term-level use of the type constructor ‘Int’ ; impo...
2024-04-05 11:08:32 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2024-04-05 11:08:39 +0200 <tomsmeding> % :set -XUnicodeSyntax
2024-04-05 11:08:39 +0200 <yahb2> <no output>
2024-04-05 11:08:41 +0200 <tomsmeding> % (show ∷ Int ≥ String) 42
2024-04-05 11:08:41 +0200 <yahb2> "42"
2024-04-05 11:11:14 +0200titibandit(~titibandi@user/titibandit) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
2024-04-05 11:11:14 +0200titibandit_titibandit
2024-04-05 11:11:15 +0200titibanditGuest9522
2024-04-05 11:12:23 +0200titibandit(~titibandi@user/titibandit)
2024-04-05 11:16:22 +0200yin(~yin@user/zero)
2024-04-05 11:20:58 +0200fryguybob(~fryguybob@024-094-050-022.inf.spectrum.com) (Ping timeout: 264 seconds)
2024-04-05 11:26:21 +0200fryguybob(~fryguybob@024-094-050-022.inf.spectrum.com)
2024-04-05 11:26:34 +0200bilegeek(~bilegeek@2600:1008:b06f:5190:2e65:7fa0:5226:d224) (Quit: Leaving)
2024-04-05 11:31:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 11:35:15 +0200Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2024-04-05 11:36:22 +0200Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
2024-04-05 11:38:21 +0200 <Inst> Did anyone look at Universum?
2024-04-05 11:39:28 +0200qqq(~qqq@92.43.167.61)
2024-04-05 11:39:53 +0200Square(~Square4@user/square)
2024-04-05 11:40:09 +0200mrmr1553349(~mrmr@user/mrmr)
2024-04-05 11:40:31 +0200mrmr155334(~mrmr@user/mrmr) (Ping timeout: 255 seconds)
2024-04-05 11:40:31 +0200mrmr1553349mrmr155334
2024-04-05 11:42:54 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-04-05 11:46:03 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-04-05 11:47:02 +0200yin(~yin@user/zero)
2024-04-05 11:50:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 11:51:36 +0200son0p(~ff@191.104.17.254)
2024-04-05 12:07:51 +0200Guest9522(~titibandi@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Remote host closed the connection)
2024-04-05 12:09:21 +0200titibandit(~titibandi@user/titibandit) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
2024-04-05 12:13:21 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-04-05 12:14:22 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 264 seconds)
2024-04-05 12:17:44 +0200sroso(~sroso@user/SrOso)
2024-04-05 12:23:27 +0200otto_s(~user@p5b04448d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-04-05 12:23:39 +0200 <Inst> anyone have an opinion on Crypton-connection?
2024-04-05 12:23:52 +0200misterfish(~misterfis@046044172198.static.ipv4.heldenvannu.net)
2024-04-05 12:25:03 +0200otto_s(~user@p5de2f5c3.dip0.t-ipconnect.de)
2024-04-05 12:25:40 +0200titibandit(~titibandi@user/titibandit)
2024-04-05 12:29:56 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2024-04-05 12:30:09 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2024-04-05 12:32:17 +0200titibandit(~titibandi@user/titibandit)
2024-04-05 12:33:00 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-04-05 12:33:43 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2024-04-05 12:35:54 +0200Lord_of_Life_Lord_of_Life
2024-04-05 12:38:24 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net)
2024-04-05 12:38:48 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net) (Client Quit)
2024-04-05 12:41:03 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net)
2024-04-05 12:41:36 +0200yin(~yin@user/zero)
2024-04-05 12:43:55 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net) (Client Quit)
2024-04-05 12:45:02 +0200Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2024-04-05 12:45:23 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-04-05 12:46:00 +0200Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
2024-04-05 12:46:04 +0200 <kuribas> fullstack means javascript + javascript (nodejs), right?
2024-04-05 12:46:07 +0200 <kuribas> I wish it could mean haskell + purescript ...
2024-04-05 12:49:48 +0200 <ncf> mauke: that's kind of odd; usually → would be replaced by ≤
2024-04-05 12:50:38 +0200 <ncf> (decategorifying sets into numbers, e.g. Void → () becomes 0 ≤ 1)
2024-04-05 12:52:19 +0200 <kuribas> I thought -> is exponentiation
2024-04-05 12:52:40 +0200 <kuribas> (Void -> ()) ~= 0^1 == 0
2024-04-05 12:54:03 +0200 <mauke> f :: Void ≥ Void; f_1 v = v; f_2 v = absurd v
2024-04-05 12:54:10 +0200 <mauke> 0^0 == 2
2024-04-05 12:54:45 +0200 <ncf> yeah you have to look at a category of sets and injections
2024-04-05 12:54:58 +0200 <ncf> i guess you could argue that surjections would give you the opposite order...
2024-04-05 12:55:35 +0200 <ncf> except when 0 is involved
2024-04-05 12:56:13 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net)
2024-04-05 12:56:25 +0200ubert(~Thunderbi@p200300ecdf1b4f9949cdb76d47d708bb.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2024-04-05 12:59:22 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net) (Changing host)
2024-04-05 12:59:22 +0200philopsos(~caecilius@user/philopsos)
2024-04-05 12:59:26 +0200philopsos(~caecilius@user/philopsos) (Client Quit)
2024-04-05 12:59:27 +0200danse-nr3(~danse-nr3@151.44.199.122) (Read error: Connection reset by peer)
2024-04-05 12:59:29 +0200ubert(~Thunderbi@p548c8b9f.dip0.t-ipconnect.de)
2024-04-05 12:59:41 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net)
2024-04-05 12:59:58 +0200philopsos(~caecilius@pool-71-183-97-38.nycmny.fios.verizon.net) (Changing host)
2024-04-05 12:59:58 +0200philopsos(~caecilius@user/philopsos)
2024-04-05 13:00:21 +0200danse-nr3(~danse-nr3@151.57.3.21)
2024-04-05 13:00:38 +0200 <ncf> mauke: i would simply assume funext
2024-04-05 13:01:14 +0200philopsos(~caecilius@user/philopsos) (Client Quit)
2024-04-05 13:01:57 +0200 <Inst> kuribas: does fullstack imply that you use node.js as a backend language?
2024-04-05 13:02:00 +0200philopsos(~caecilius@user/philopsos)
2024-04-05 13:02:11 +0200 <Inst> fullstack ruby on rails is a thing
2024-04-05 13:02:25 +0200 <Inst> and i suppose you could wasm for frontend as well?
2024-04-05 13:02:36 +0200philopsos(~caecilius@user/philopsos) (Client Quit)
2024-04-05 13:03:38 +0200 <int-e> I think the joke was that you could be a "full stack" developer while knowing only a single programming language
2024-04-05 13:03:39 +0200philopsos(~caecilius@user/philopsos)
2024-04-05 13:04:08 +0200philopsos(~caecilius@user/philopsos) (Client Quit)
2024-04-05 13:04:13 +0200 <Inst> how is that funny?
2024-04-05 13:04:24 +0200philopsos(~caecilius@user/philopsos)
2024-04-05 13:04:52 +0200philopsos(~caecilius@user/philopsos) (Client Quit)
2024-04-05 13:05:09 +0200philopsos(~caecilius@user/philopsos)
2024-04-05 13:06:13 +0200 <mauke> stack of one
2024-04-05 13:06:36 +0200ftweedal(~ftweedal@211.30.152.176) (Ping timeout: 260 seconds)
2024-04-05 13:07:21 +0200misterfish(~misterfis@046044172198.static.ipv4.heldenvannu.net) (Ping timeout: 255 seconds)
2024-04-05 13:09:34 +0200 <ncf> full-stack is when you only use forth
2024-04-05 13:12:10 +0200alexherbo2(~alexherbo@2a02-8440-3241-3a37-b147-e92e-839c-d513.rev.sfr.net)
2024-04-05 13:12:15 +0200xff0x(~xff0x@2405:6580:b080:900:2bd3:fa41:7b29:56d9)
2024-04-05 13:15:48 +0200misterfish(~misterfis@84.53.85.146)
2024-04-05 13:21:41 +0200sroso(~sroso@user/SrOso) (Ping timeout: 240 seconds)
2024-04-05 13:22:58 +0200sroso(~sroso@user/SrOso)
2024-04-05 13:30:29 +0200 <danse-nr3> a fullstack dev usually works with different languages. A whole stack in the same lang is (improperly) called "isomorphic" if i recall correctly
2024-04-05 13:33:01 +0200random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 255 seconds)
2024-04-05 13:36:12 +0200sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-04-05 13:38:10 +0200visilii(~visilii@188.254.110.118) (Ping timeout: 268 seconds)
2024-04-05 13:43:33 +0200destituion(~destituio@85.221.111.174)
2024-04-05 13:44:38 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-04-05 13:45:26 +0200yeitrafferin(~user@2a04:4540:7205:cc00:73fb:e92e:478f:daa3)
2024-04-05 13:56:32 +0200ph88(~ph88@ip5b403f30.dynamic.kabel-deutschland.de)
2024-04-05 13:57:05 +0200 <ph88> when i have multiple records with the same field name is there an extension that can help to find out from which record type to use the field ?
2024-04-05 13:58:40 +0200 <kuribas> Inst: I thought it did.
2024-04-05 13:59:37 +0200 <tomsmeding> ph88: there is https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/disambiguate_record_fields.html#ext… but it's not very powerful iirc
2024-04-05 14:01:04 +0200 <ph88> how can i use it on the call site ?
2024-04-05 14:01:09 +0200 <tomsmeding> kuribas: the exponentiation goes the other way, a -> b is b^a
2024-04-05 14:01:51 +0200 <tomsmeding> it's a product of bs, one for every value of a
2024-04-05 14:02:02 +0200 <tomsmeding> ph88: the extension works or it doesn't work :p
2024-04-05 14:02:42 +0200 <tomsmeding> if it doesn't, there's probably a reason why that case is hard in general
2024-04-05 14:02:57 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-04-05 14:06:03 +0200jle`(~jle`@2603-8001-3b02-84d4-c3f6-003a-068f-efb1.res6.spectrum.com) (Remote host closed the connection)
2024-04-05 14:06:29 +0200jle`(~jle`@2603-8001-3b02-84d4-fb26-0043-58fe-e57b.res6.spectrum.com)
2024-04-05 14:08:33 +0200yeitrafferin(~user@2a04:4540:7205:cc00:73fb:e92e:478f:daa3) (Quit: Leaving)
2024-04-05 14:11:12 +0200 <ph88> when i use SomeModule https://bpa.st/3UEA in another module it can not differentiate which record extraChildren belong to. Do i have to enable some extensions in the calling module too?
2024-04-05 14:14:38 +0200 <tomsmeding> ph88: I think you need the DisambiguateRecordFields extension in the module where the disambiguation needs to happen
2024-04-05 14:14:43 +0200 <tomsmeding> hence in the calling module
2024-04-05 14:15:27 +0200 <tomsmeding> but relying on the extension in a public interface is not particularly nice, precisely because it cannot handle all cases that one would want
2024-04-05 14:16:10 +0200yin(~yin@user/zero) (Ping timeout: 264 seconds)
2024-04-05 14:21:12 +0200danse-nr3(~danse-nr3@151.57.3.21) (Read error: Connection reset by peer)
2024-04-05 14:26:20 +0200yin(~yin@user/zero)
2024-04-05 14:28:13 +0200 <ph88> is there any way i can specificy "manually" which `extraChildren` i want without the use of extensions?
2024-04-05 14:37:04 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-04-05 14:39:16 +0200qqq(~qqq@92.43.167.61)
2024-04-05 14:45:34 +0200ftweedal(~ftweedal@211.30.152.176)
2024-04-05 14:50:17 +0200danse-nr3(~danse-nr3@151.57.121.183)
2024-04-05 14:50:39 +0200danse-nr3(~danse-nr3@151.57.121.183) (Remote host closed the connection)
2024-04-05 14:51:04 +0200danse-nr3(~danse-nr3@151.57.121.183)
2024-04-05 14:51:27 +0200 <kuribas> tomsmeding: right :)
2024-04-05 14:52:54 +0200 <Hecate> https://fosstodon.org/@haskell/112218627494648144
2024-04-05 14:52:59 +0200 <Hecate> https://twitter.com/HaskellOrg/status/1776226543204700248
2024-04-05 14:54:25 +0200 <Rembane> \o/
2024-04-05 14:56:40 +0200 <opqdonut> is there something special in 9.8.2?
2024-04-05 14:57:56 +0200 <Hecate> opqdonut: yah it's not very adopted :D
2024-04-05 14:59:48 +0200 <Hecate> opqdonut: more interestingly, GHC 9.8 implements the semaphore concurrency proposal, which (with the right cabal-install version) enables you to greatly improve compilation performance when a lot of different modules/units can be compiled in parallel
2024-04-05 14:59:59 +0200 <opqdonut> well that's nice for sure
2024-04-05 15:00:19 +0200 <opqdonut> I'm reading https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.8 and it doesn't seem that big of a change language-wise
2024-04-05 15:00:30 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 15:00:39 +0200 <Hecate> opqdonut: nope but bound bumps are not automagic :)
2024-04-05 15:00:45 +0200 <Hecate> (one day they will be)
2024-04-05 15:00:45 +0200 <opqdonut> sure, sure
2024-04-05 15:01:27 +0200 <haskellbridge> <s​hapr> I just heard about https://github.com/nomeata/cabal-plan-bounds
2024-04-05 15:05:47 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 15:10:37 +0200philopsos(~caecilius@user/philopsos) (Ping timeout: 256 seconds)
2024-04-05 15:14:07 +0200ystael(~ystael@user/ystael)
2024-04-05 15:25:59 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 15:26:49 +0200 <yin> as i understand it GHC doesn't perform cross-module optimizations. wouldn't this be a very valuable thing specially in a language like haskell?
2024-04-05 15:29:32 +0200 <yin> maybe it's cross-library?
2024-04-05 15:30:54 +0200 <yin> anyways, compiling a program as a whole seems like it would be a very good thing
2024-04-05 15:33:02 +0200 <kuribas> tomsmeding: so "() -> void" has cardinality 1^0 = 1, since there is no way to get a void value out of a tuple, but "void -> ()" has 0^1 = 1, since there is one way to get a tuple out of a void value (absurd proof)?
2024-04-05 15:33:09 +0200ftweedal(~ftweedal@211.30.152.176) (Ping timeout: 255 seconds)
2024-04-05 15:33:58 +0200 <ncf> other way around
2024-04-05 15:34:31 +0200 <kuribas> right
2024-04-05 15:38:24 +0200 <probie> yin: GHC will still inline things marked with the inline pragma across both module and library boundaries. Whole program compilation (in the style of stalin or mlton) is slow and resource intensive
2024-04-05 15:43:49 +0200malte(~malte@mal.tc) (Remote host closed the connection)
2024-04-05 15:44:57 +0200malte(~malte@mal.tc)
2024-04-05 15:52:23 +0200yin(~yin@user/zero) (Ping timeout: 272 seconds)
2024-04-05 15:56:56 +0200akegalj(~akegalj@141-136-147-171.dsl.iskon.hr) (Remote host closed the connection)
2024-04-05 16:03:10 +0200alex`(~user@149.22.101.75)
2024-04-05 16:06:41 +0200berekolo(~berekolo@112.78.178.130)
2024-04-05 16:13:32 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-04-05 16:16:19 +0200califax(~califax@user/califx)
2024-04-05 16:18:47 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-04-05 16:18:51 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2024-04-05 16:19:18 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 16:20:32 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.1.2)
2024-04-05 16:23:19 +0200fererrorocher(fererroroc@gateway/vpn/protonvpn/fererrorocher)
2024-04-05 16:29:36 +0200 <EvanR> semaphore concurrency proposal?
2024-04-05 16:29:53 +0200bjorkintosh(~bjork@user/bjorkintosh)
2024-04-05 16:29:56 +0200bjorkintosh(~bjork@user/bjorkintosh) (Leaving)
2024-04-05 16:31:12 +0200tomsmedingnods at ncf and kuribas
2024-04-05 16:32:27 +0200 <tomsmeding> Hecate: why migrate? Isn't support enough?
2024-04-05 16:42:36 +0200Sgeo(~Sgeo@user/sgeo)
2024-04-05 16:43:53 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-05 16:44:34 +0200fererrorocher(fererroroc@gateway/vpn/protonvpn/fererrorocher) (Quit: WeeChat 4.2.1)
2024-04-05 16:46:18 +0200mei(~mei@user/mei)
2024-04-05 16:48:32 +0200 <tomsmeding> EvanR: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0540-jsem.rst
2024-04-05 16:51:27 +0200 <EvanR> execute build plans in shorter wall-time durations
2024-04-05 16:51:31 +0200 <EvanR> in other words
2024-04-05 16:51:34 +0200 <EvanR> run faster
2024-04-05 16:51:35 +0200 <tomsmeding> yes
2024-04-05 16:51:49 +0200 <tomsmeding> "sooner", in the terminology of the ghc user guide
2024-04-05 16:52:42 +0200tomsmedinghopes to be able to pass -jsem to cabal in the future without having to also pass --ghc-options=-jsem
2024-04-05 16:53:26 +0200 <EvanR> oh, it uses system semaphores, interesting
2024-04-05 16:53:42 +0200 <tomsmeding> well it's not very "system"
2024-04-05 16:54:23 +0200 <tomsmeding> it uses a POSIX semaphore but it's a bespoke protocol for haskell tools
2024-04-05 16:54:31 +0200 <tomsmeding> it's not like make(1) knows about it :)
2024-04-05 16:55:02 +0200Rembaneteaches make about all the things
2024-04-05 16:55:23 +0200 <tomsmeding> one of the alternatives in the proposal was to do the converse, to teach ghc and cabal about the make semaphore protocol
2024-04-05 16:55:35 +0200 <tomsmeding> see the proposal for reasons why that was considered a bad idea
2024-04-05 16:56:07 +0200 <EvanR> ghc uses make?
2024-04-05 16:56:10 +0200 <EvanR> at all?
2024-04-05 16:56:14 +0200 <tomsmeding> no
2024-04-05 16:56:18 +0200 <EvanR> ok good
2024-04-05 16:56:53 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 16:56:54 +0200 <tomsmeding> but to me "system semaphore" sounds like if you run ghc as well as other tools inside a single make(1) graph or something, they will cooperate
2024-04-05 16:56:54 +0200 <EvanR> not that I have anything against make itself, for not-haskell
2024-04-05 16:56:56 +0200 <tomsmeding> they will not
2024-04-05 16:57:06 +0200 <tomsmeding> I would just have said "a semaphore"
2024-04-05 16:57:16 +0200 <tomsmeding> implementation details being that it's a POSIX semaphore on unixy systems
2024-04-05 16:57:24 +0200 <EvanR> I was referring to just thing supported by the OS
2024-04-05 16:57:37 +0200 <EvanR> instead of reinvented
2024-04-05 16:57:40 +0200 <tomsmeding> yeah that's funny, posix semaphores were a TIL for me too
2024-04-05 16:58:25 +0200 <EvanR> unix linux has all these things you can use but probably shouldn't for reasons xD
2024-04-05 16:58:27 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-05 16:58:41 +0200 <EvanR> because the person who replaces you won't know how it works
2024-04-05 16:58:46 +0200 <EvanR> e.g.
2024-04-05 16:59:00 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 16:59:28 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-04-05 16:59:38 +0200 <EvanR> the only way to future proof anything is rewrite it in rust!!!
2024-04-05 16:59:59 +0200Square(~Square4@user/square) (Ping timeout: 256 seconds)
2024-04-05 17:00:17 +0200 <ph88> EvanR, you like rust ?
2024-04-05 17:00:30 +0200 <EvanR> this has been a meme
2024-04-05 17:00:47 +0200misterfish(~misterfis@84.53.85.146) (Ping timeout: 272 seconds)
2024-04-05 17:01:27 +0200 <EvanR> haskell is great because we don't want to rewrite everything in it
2024-04-05 17:01:28 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-05 17:01:49 +0200 <danse-nr3> don't we?
2024-04-05 17:01:54 +0200danse-nr3is disappointed
2024-04-05 17:02:54 +0200img(~img@user/img)
2024-04-05 17:04:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 17:04:52 +0200yin(~yin@user/zero)
2024-04-05 17:05:32 +0200Eoco(~ian@128.101.131.218) (Ping timeout: 260 seconds)
2024-04-05 17:07:32 +0200destituion(~destituio@85.221.111.174) (Ping timeout: 268 seconds)
2024-04-05 17:08:57 +0200poxel2(~lennart@user/poxel)
2024-04-05 17:11:32 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-04-05 17:12:21 +0200destituion(~destituio@2a02:2121:107:22da:bbaf:a6d8:6599:5221)
2024-04-05 17:14:14 +0200vpan(~vpan@212.117.1.172)
2024-04-05 17:15:28 +0200 <tomsmeding> most of us are too sensible for that
2024-04-05 17:15:50 +0200 <tomsmeding> and also people who do haskell are typically interested in programming languages in general, somehow, meaning that they typically know more than 1 language
2024-04-05 17:17:01 +0200 <danse-nr3> yeah was kidding. It seems legit to be fantasizing about writing something existing in another lang though
2024-04-05 17:17:30 +0200 <danse-nr3> especially if one is in a cult :D
2024-04-05 17:17:45 +0200 <Rembane> cult-lang-2000
2024-04-05 17:17:46 +0200 <EvanR> the knights of lambda calculus
2024-04-05 17:18:00 +0200 <danse-nr3> the church of haskell obviously!
2024-04-05 17:18:18 +0200 <EvanR> the church of curry
2024-04-05 17:18:41 +0200alex`(~user@149.22.101.75) (Ping timeout: 256 seconds)
2024-04-05 17:19:03 +0200 <tomsmeding> yum
2024-04-05 17:21:20 +0200polyphem(~rod@p200300ef271ab1008634ba5d8231450c.dip0.t-ipconnect.de)
2024-04-05 17:22:39 +0200Eoco(~ian@128.101.131.218)
2024-04-05 17:29:46 +0200Eoco(~ian@128.101.131.218) (Remote host closed the connection)
2024-04-05 17:31:01 +0200Eoco(~ian@128.101.131.218)
2024-04-05 17:31:06 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-04-05 17:31:21 +0200 <Inst> (knights of lambda calculus is actually a thing)
2024-04-05 17:31:25 +0200 <Inst> (see MIT and Scheme)
2024-04-05 17:32:44 +0200skiimagines that's why they were mentioned
2024-04-05 17:32:53 +0200 <yin> is there a way to force whole program compilation?
2024-04-05 17:34:22 +0200sawilagar(~sawilagar@user/sawilagar)
2024-04-05 17:36:05 +0200 <yin> hmm not in GHC i see
2024-04-05 17:36:30 +0200 <geekosaur> unless you count GRIN
2024-04-05 17:38:00 +0200Eoco(~ian@128.101.131.218) (Remote host closed the connection)
2024-04-05 17:38:26 +0200gmg(~user@user/gehmehgeh)
2024-04-05 17:39:05 +0200Eoco(~ian@128.101.131.218)
2024-04-05 17:43:18 +0200igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-04-05 17:44:59 +0200tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-04-05 17:45:33 +0200 <yin> geekosaur: thanks
2024-04-05 17:46:51 +0200 <kuribas> GRIN doesn't do recursive inlining.
2024-04-05 17:47:02 +0200 <kuribas> So it isn't as good as GHC's optimizer.
2024-04-05 17:52:39 +0200danse-nr3(~danse-nr3@151.57.121.183) (Ping timeout: 255 seconds)
2024-04-05 17:56:57 +0200 <geekosaur> WPC generally requires a different compilation strategy, although GRIN was (is? not sure if it's still alive) I think an experiment in a middle path
2024-04-05 18:00:44 +0200igemnace(~ian@user/igemnace)
2024-04-05 18:07:46 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2024-04-05 18:08:37 +0200yin_(~yin@user/zero)
2024-04-05 18:09:18 +0200zetef(~quassel@5.2.182.99) (Ping timeout: 255 seconds)
2024-04-05 18:10:08 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-04-05 18:16:09 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-04-05 18:18:05 +0200visilii(~visilii@188.254.110.118)
2024-04-05 18:22:45 +0200berekolo(~berekolo@112.78.178.130) (Remote host closed the connection)
2024-04-05 18:29:11 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-05 18:30:05 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 256 seconds)
2024-04-05 18:31:16 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 18:31:36 +0200mei(~mei@user/mei)
2024-04-05 18:32:13 +0200igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-04-05 18:38:12 +0200vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2024-04-05 18:38:38 +0200rvalue(~rvalue@user/rvalue)
2024-04-05 18:38:52 +0200ft(~ft@p4fc2a20e.dip0.t-ipconnect.de)
2024-04-05 18:44:15 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-04-05 18:50:35 +0200yin(~yin@user/zero)
2024-04-05 18:50:47 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2024-04-05 18:54:41 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-04-05 18:58:00 +0200 <Inst> btw did someone prune libraries from Hackage recently?
2024-04-05 18:58:08 +0200 <Inst> i feel like the total number of libs dropped
2024-04-05 19:00:03 +0200 <geekosaur> it's supposed to be append-only
2024-04-05 19:00:28 +0200 <Inst> yeah, it's weird, i just remember ed we had 18k packages and somehow it's only 16k
2024-04-05 19:00:37 +0200 <Inst> 4300 libs updated in the last 24 months
2024-04-05 19:01:09 +0200 <Inst> vs about 2940 in the last 12 months
2024-04-05 19:03:19 +0200 <yin_> one possibility that i'm completely making up is mergers
2024-04-05 19:03:29 +0200pavonia(~user@user/siracusa)
2024-04-05 19:10:13 +0200 <int-e> Inst: https://hackage.haskell.org/packages/deprecated is where the difference is, I think (1268 packages)
2024-04-05 19:12:44 +0200 <Hecate> tomsmeding: the tweets say "support"
2024-04-05 19:18:08 +0200 <tomsmeding> Hecate: right :)
2024-04-05 19:18:17 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-04-05 19:27:13 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-05 19:27:25 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 19:38:00 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 19:39:53 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2024-04-05 19:41:01 +0200ChanServ+o litharge
2024-04-05 19:41:01 +0200litharge-qo *!*@92.237.136.64 litharge
2024-04-05 19:44:15 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-04-05 19:45:09 +0200target_i(~target_i@user/target-i/x-6023099)
2024-04-05 19:54:25 +0200misterfish(~misterfis@84.53.85.146)
2024-04-05 19:58:59 +0200zetef(~quassel@5.2.182.99)
2024-04-05 20:08:18 +0200Inst_(~Inst@120.244.192.170)
2024-04-05 20:11:22 +0200Inst(~Inst@120.244.192.126) (Ping timeout: 264 seconds)
2024-04-05 20:15:29 +0200misterfish(~misterfis@84.53.85.146) (Ping timeout: 256 seconds)
2024-04-05 20:20:44 +0200 <yin_> oh weird. i'm getting warnings about lazy fields in data tyeps
2024-04-05 20:21:06 +0200 <geekosaur> HLS?
2024-04-05 20:21:25 +0200 <tomsmeding> yin_: are those "lints"?
2024-04-05 20:21:27 +0200 <tomsmeding> probably from hlint
2024-04-05 20:21:34 +0200 <geekosaur> the stan plugin was accidentally enabled by default when it was re-added
2024-04-05 20:21:43 +0200 <tomsmeding> oh or stan, yes
2024-04-05 20:31:34 +0200tomsmedinghas haskell.plugin.hlint.globalOn = false and haskell.plugin.stan.globalOn = false
2024-04-05 20:35:21 +0200sharan(~shara@c-24-60-154-223.hsd1.ma.comcast.net)
2024-04-05 20:36:39 +0200 <yin_> hls
2024-04-05 20:37:49 +0200shara_(~shara@c-24-60-154-223.hsd1.ma.comcast.net) (Ping timeout: 268 seconds)
2024-04-05 20:42:10 +0200 <mauke> just add `!` so it knows you mean business
2024-04-05 20:45:58 +0200alexherbo2(~alexherbo@2a02-8440-3241-3a37-b147-e92e-839c-d513.rev.sfr.net) (Remote host closed the connection)
2024-04-05 20:46:18 +0200alexherbo2(~alexherbo@2a02-8440-3241-3a37-b147-e92e-839c-d513.rev.sfr.net)
2024-04-05 20:49:13 +0200yin_(~yin@user/zero) (Ping timeout: 268 seconds)
2024-04-05 20:50:48 +0200 <monochrom> Ugh that is going to be a problem if I give students an assignment in which it is important to have a lazy data field.
2024-04-05 20:51:18 +0200 <monochrom> We are talking about beginners who do not know that a standard toolchain is not to be trusted.
2024-04-05 20:52:40 +0200 <tomsmeding> monochrom: too lazy (heh) to search when it was introduced, but "stan on by default" was apparently fixed in HLS 2.6 https://github.com/haskell/haskell-language-server/pull/3917
2024-04-05 20:53:26 +0200 <monochrom> That only solves the symptom.
2024-04-05 20:53:51 +0200Square2(~Square@user/square) (Ping timeout: 268 seconds)
2024-04-05 20:53:55 +0200 <tomsmeding> well it means that students will only see this warning if they manually enable stan
2024-04-05 20:54:15 +0200 <monochrom> The deeper and worse problem is why personal niche religious opinions keep getting standardized in standard toolchains.
2024-04-05 20:54:46 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-05 20:54:50 +0200 <tomsmeding> I mean, there are a number of formatters in HLS too
2024-04-05 20:54:56 +0200 <tomsmeding> code formatting is subjective too
2024-04-05 20:55:06 +0200 <tomsmeding> at least they don't run unless you ask for it
2024-04-05 20:55:10 +0200 <tomsmeding> (unlike hlint)
2024-04-05 20:56:15 +0200misterfish(~misterfis@84.53.85.146)
2024-04-05 20:57:33 +0200 <Rembane> I miss brittany!
2024-04-05 21:03:00 +0200 <tomsmeding> monochrom: a decent reason why all these things are in HLS proper now (they are written as plugins, but the plugins are bundled with standard HLS downloads) is that a separate plugin system would be cumbersome
2024-04-05 21:03:10 +0200alexherbo2(~alexherbo@2a02-8440-3241-3a37-b147-e92e-839c-d513.rev.sfr.net) (Remote host closed the connection)
2024-04-05 21:03:29 +0200alexherbo2(~alexherbo@2a02-8440-3241-3a37-b147-e92e-839c-d513.rev.sfr.net)
2024-04-05 21:03:33 +0200 <tomsmeding> s/downloads/builds/
2024-04-05 21:06:21 +0200ubert(~Thunderbi@p548c8b9f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-04-05 21:07:44 +0200ubert(~Thunderbi@p548c9ed6.dip0.t-ipconnect.de)
2024-04-05 21:09:30 +0200 <tomsmeding> yin: so in case you missed it, the fix is to upgrade to hls >= 2.6 or to set haskell.plugin.stan.globalOn = false in your editor LSP config
2024-04-05 21:12:25 +0200poxel2(~lennart@user/poxel) (Quit: WeeChat 4.2.1)
2024-04-05 21:12:35 +0200ubert(~Thunderbi@p548c9ed6.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-04-05 21:14:07 +0200poxel(~lennart@user/poxel)
2024-04-05 21:22:50 +0200poxel(~lennart@user/poxel) (Ping timeout: 256 seconds)
2024-04-05 21:28:02 +0200liamzy__(~Inst@120.244.192.170)
2024-04-05 21:28:31 +0200Inst_(~Inst@120.244.192.170) (Ping timeout: 260 seconds)
2024-04-05 21:29:35 +0200liamzy__Inst
2024-04-05 21:31:26 +0200tmtt(~tmtt@user/tmtt)
2024-04-05 21:34:57 +0200AlexZenon(~alzenon@94.233.240.255) (Ping timeout: 255 seconds)
2024-04-05 21:36:50 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-05 21:39:08 +0200philopsos(~caecilius@user/philopsos)
2024-04-05 21:39:58 +0200AlexZenon(~alzenon@94.233.240.255)
2024-04-05 21:40:57 +0200poxel(~lennart@user/poxel)
2024-04-05 21:46:28 +0200 <tmtt> Hi! I'm writing a small brainfuck compiler in Haskell to learn the language and compiler design. I'm currently working on parsing loops, and wondering what would be the common way of recursively parsing those loops. Right now, I have this code <https://paste.tomsmeding.com/XYyvZpGp> (see line 40) which doesn't work since it doesn't "skip" the tokens after it finishes parsing the inside of the loop. Thanks in advance for any help and sor
2024-04-05 21:46:28 +0200 <tmtt> ry fot the weird question lol
2024-04-05 21:48:34 +0200 <mauke> the general idea is that your parser needs to return not just a parsed result, but also the unparsed/unconsumed rest of the input
2024-04-05 21:48:54 +0200 <mauke> parse :: [Token] -> (Result, [Token])
2024-04-05 21:49:20 +0200 <ski> `BracketOpen' and `BracketClosed' cases of the parser looks incorrect
2024-04-05 21:49:22 +0200 <ski> (and what mauke said)
2024-04-05 21:49:37 +0200 <tmtt> ski: yeah, they're not working as of now
2024-04-05 21:50:41 +0200 <tmtt> mauke: I see. Let me try something with that
2024-04-05 21:51:39 +0200 <ski> in the `BracketClose' case, you need to have `[]' as `Program' result, and `xs' as unconsumed input
2024-04-05 21:52:32 +0200yin(~yin@user/zero) (Ping timeout: 260 seconds)
2024-04-05 21:52:46 +0200 <ski> that way, in the `BracketOpen' case, when you get the `Program' result from the recursive call on `xs', you can stuff that `Program' inside `Loop', and then call recursively again, on the remainder of `xs'
2024-04-05 21:53:00 +0200 <mauke> once you've done that, you might realize that [Token] -> (a, [Token]) looks a lot like the State monad
2024-04-05 21:53:20 +0200 <ski> of course, you'll need to adapt the other cases to just forward the remaining input from the recursive call
2024-04-05 21:53:34 +0200 <tmtt> yeah
2024-04-05 21:53:45 +0200 <ski> are you familiar with monads yet ?
2024-04-05 21:53:45 +0200 <mauke> and then you might realize that your parsing code only modifies the state in very particular ways and write a few helper functions for that
2024-04-05 21:53:52 +0200 <mauke> and then you've invented parser combinators
2024-04-05 21:54:04 +0200 <tmtt> ski: not really
2024-04-05 21:54:14 +0200 <ski> okay, don't worry about that, for now, then
2024-04-05 21:54:27 +0200 <mauke> yeah, the manual approach works fine
2024-04-05 21:54:37 +0200 <mauke> particularly for brainfuck :-)
2024-04-05 21:54:47 +0200 <ski> just make the parser input a "state", whose versions are threaded through your computation, as sketched above
2024-04-05 21:54:57 +0200 <tmtt> mauke: Yeah lol
2024-04-05 21:55:00 +0200 <tmtt> ski: I see
2024-04-05 21:55:11 +0200 <tmtt> I think I got it, I'll try to make it work with that
2024-04-05 21:55:16 +0200 <mauke> I'm still bad at programming in brainfuck
2024-04-05 21:55:38 +0200 <darkling> Isn't everyone?
2024-04-05 21:55:40 +0200 <mauke> I once wrote a bf assembler in haskell
2024-04-05 21:55:51 +0200 <mauke> then I used that to write a bf compiler in bf
2024-04-05 21:55:52 +0200 <tmtt> that's exactly what I'm trying to do here
2024-04-05 21:55:56 +0200 <tmtt> oh
2024-04-05 21:56:09 +0200 <darkling> I've got most of a BF CPU in Verilog here. :)
2024-04-05 21:56:15 +0200 <mauke> no, I was going from a DSL to BF
2024-04-05 21:56:57 +0200 <tmtt> Oh ok
2024-04-05 22:00:07 +0200alexherbo2(~alexherbo@2a02-8440-3241-3a37-b147-e92e-839c-d513.rev.sfr.net) (Remote host closed the connection)
2024-04-05 22:02:51 +0200YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 255 seconds)
2024-04-05 22:04:14 +0200yin(~yin@user/zero)
2024-04-05 22:04:17 +0200YuutaW(~YuutaW@mail.yuuta.moe)
2024-04-05 22:07:11 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-04-05 22:08:30 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2024-04-05 22:09:58 +0200 <probie> I wrote a BF to web assembly text "compiler" in BF once, which sounds more impressive than it was, because it just output a simple interpreter with the program to run hardcoded in
2024-04-05 22:11:47 +0200 <darkling> BF (interpreter|compiler) makes a good practice thing for lots of cases, because it's such a simple model.
2024-04-05 22:12:23 +0200titibandit(~titibandi@user/titibandit) (Read error: Connection reset by peer)
2024-04-05 22:12:28 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 22:15:22 +0200YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 246 seconds)
2024-04-05 22:15:44 +0200michalz(~michalz@185.246.207.193) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-05 22:16:13 +0200 <probie> I've "written" more impressive things in BF, but they don't really count, because they've really been written in higher level languages with BF as a compilation target, and also require a specialised compiler to run at any reasonable speed
2024-04-05 22:16:26 +0200YuutaW(~YuutaW@mail.yuuta.moe)
2024-04-05 22:16:58 +0200 <tomsmeding> https://git.tomsmeding.com/bfturing/about/
2024-04-05 22:17:27 +0200 <tomsmeding> also written in a higher-level language and then compiled, but the HLL was English and the compiler was me :p
2024-04-05 22:19:14 +0200euphores(~SASL_euph@user/euphores)
2024-04-05 22:19:37 +0200 <tomsmeding> now write your programs on a bare turing machine >:D
2024-04-05 22:19:45 +0200euleritian(~euleritia@dynamic-176-006-182-016.176.6.pool.telefonica.de)
2024-04-05 22:21:16 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 22:25:46 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 22:27:06 +0200 <probie> I implemented an 8-bit CPU (with 16-bit addresses), so a "program" involved setting up the CPU itself, writing the instructions to memory and then jumping into the main "CPU" loop. However, every read/write from memory was rather expensive without a magical compiler
2024-04-05 22:30:12 +0200 <tomsmeding> probie: because it had to loop linearly to the correct memory cell? :p
2024-04-05 22:30:34 +0200 <tomsmeding> doing multi-byte arithmetic at every cell to check if you're there yet
2024-04-05 22:30:39 +0200 <tomsmeding> perfect
2024-04-05 22:31:38 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-04-05 22:34:00 +0200 <Inst> do people try to write prelude extensions?
2024-04-05 22:34:21 +0200 <Inst> I know of this
2024-04-05 22:34:21 +0200 <Inst> https://hackage.haskell.org/package/extra
2024-04-05 22:37:22 +0200tmtt(~tmtt@user/tmtt) (Quit: Leaving.)
2024-04-05 22:37:53 +0200 <dolio> Just don't write Turing machines. They're awful.
2024-04-05 22:38:22 +0200yin(~yin@user/zero) (Ping timeout: 264 seconds)
2024-04-05 22:38:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 22:38:56 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-05 22:41:53 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2024-04-05 22:43:13 +0200 <tomsmeding> dolio: I challenge you to write a lambda calculus interpreter in brainfuck :p
2024-04-05 22:43:50 +0200 <int-e> sounds painful
2024-04-05 22:44:04 +0200 <tomsmeding> at least a turing machine is something that's humanly possible
2024-04-05 22:44:12 +0200 <dolio> Isn't brainfuck almost as bad as Turing machines? :)
2024-04-05 22:44:21 +0200 <tomsmeding> yes
2024-04-05 22:44:25 +0200 <int-e> yes
2024-04-05 22:44:43 +0200vhs(~vhs@185.76.9.56)
2024-04-05 22:45:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-05 22:45:40 +0200 <int-e> including the wonderful experience of walking the pointer back and forth to get any real work done
2024-04-05 22:46:03 +0200 <int-e> the pointer being what the tape head would be for a "real" Turing machine
2024-04-05 22:46:14 +0200 <dolio> Yeah.
2024-04-05 22:47:05 +0200 <tomsmeding> even a combinator graph reducer sounds painful in brainfuck
2024-04-05 22:47:37 +0200 <dolio> Turing actually wrote a paper where he implemented lambda calculus on Turing machines, I think.
2024-04-05 22:47:43 +0200 <dolio> So you could crib that.
2024-04-05 22:47:49 +0200 <tomsmeding> worth a paper apparently
2024-04-05 22:48:19 +0200 <tomsmeding> though it makes sense that that would be a thing that needed to be done back then
2024-04-05 22:48:34 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-04-05 22:48:40 +0200 <int-e> tomsmeding: a string representation will be easier (pointers are fiendishly difficult)... but then you have to move substrings around a lot so it's undoubtedly still a mess.
2024-04-05 22:48:54 +0200 <tomsmeding> hm true
2024-04-05 22:49:22 +0200 <tomsmeding> moving a suffix of a string by a statically-known number of characters is at least easy (if slow)
2024-04-05 22:49:54 +0200tomsmedingresists starting an attempt to write one
2024-04-05 22:55:20 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-04-05 22:56:29 +0200ph88(~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2024-04-05 22:58:25 +0200vhsconnect(~vhs@81-233-2-46-no600.tbcn.telia.com)
2024-04-05 23:00:35 +0200flounders(~flounders@24.246.176.178) (Quit: WeeChat 4.1.2)
2024-04-05 23:00:47 +0200ubert(~Thunderbi@p200300ecdf39578eeee93514f98d266d.dip0.t-ipconnect.de)
2024-04-05 23:00:57 +0200vhs(~vhs@185.76.9.56) (Ping timeout: 256 seconds)
2024-04-05 23:01:16 +0200__monty__(~toonn@user/toonn)
2024-04-05 23:01:17 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 23:05:24 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2024-04-05 23:12:19 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Quit: Leaving.)
2024-04-05 23:15:19 +0200misterfish(~misterfis@84.53.85.146) (Ping timeout: 255 seconds)
2024-04-05 23:24:25 +0200 <Inst> just curious, from Haskellers, how would you rank base / stdlib of various languages?
2024-04-05 23:26:32 +0200 <EvanR> often missing something obvious that exists in haskell
2024-04-05 23:28:15 +0200 <sm> python's is considered more full-featured ("batteries included") than haskell's. Haskell's usually feels more rigorous and trustworthy than others.
2024-04-05 23:28:15 +0200 <Inst> just as Haskell is missing something obvious that exists in other langs? :3
2024-04-05 23:28:31 +0200 <int-e> Haskell is always missing something that exists on hackage.
2024-04-05 23:28:33 +0200 <Inst> To an extent, I feel that Haskell's Prelude / base is almost deliberately bad
2024-04-05 23:28:35 +0200 <int-e> ;)
2024-04-05 23:28:55 +0200 <geekosaur> haskell has reasons to keep base small, though
2024-04-05 23:28:56 +0200 <int-e> It's not deliberate. The attitude towards base has changed.
2024-04-05 23:29:02 +0200 <Inst> how has that changed?
2024-04-05 23:29:05 +0200 <geekosaur> (they're working on fixing the main reason)
2024-04-05 23:29:25 +0200 <int-e> It used to be batteries included, and then at some point it stopped because that attitude lead to feature creep.
2024-04-05 23:29:28 +0200 <Inst> by deliberately, I mean that if you're too opinionated with base, you cut off innovation
2024-04-05 23:29:51 +0200 <int-e> No, the attitude now is that you're supposed to use other packages alongside base.
2024-04-05 23:30:10 +0200 <Inst> but that comes with its own drawbacks, no?
2024-04-05 23:30:30 +0200 <int-e> yes, you can't please everybody
2024-04-05 23:30:47 +0200 <int-e> I bet if people started over, base would be *smaller*.
2024-04-05 23:32:24 +0200 <Inst> would deepseq be in base, then?
2024-04-05 23:32:42 +0200 <int-e> probably not?
2024-04-05 23:33:03 +0200 <Inst> what's the arguments for keeping deepseq out of base?
2024-04-05 23:33:19 +0200 <int-e> Who knows. And whatever base would be would still displease the majority of people.
2024-04-05 23:33:33 +0200 <int-e> And that's not a base problem, it's a people problem. :P
2024-04-05 23:33:51 +0200 <int-e> It can be an extra package easily.
2024-04-05 23:33:53 +0200int-eshrugs
2024-04-05 23:36:09 +0200phma(phma@2001:5b0:211c:a48:b538:9e99:373e:ab2f) (Read error: Connection reset by peer)
2024-04-05 23:36:45 +0200 <int-e> FWIW, the core libraries are collectively the standard library to my mind. But of course they don't cover all bases either. I believe ghcup has its own notion of default packages, so those could be standard libraries.
2024-04-05 23:37:06 +0200 <int-e> Some people will include lens, others some web libraries like servant... programmers are different and have different needs.
2024-04-05 23:37:09 +0200phma(~phma@host-67-44-208-145.hnremote.net)
2024-04-05 23:37:15 +0200 <int-e> None of this is really a problem in my eyes.
2024-04-05 23:37:36 +0200 <tomsmeding> int-e: the argument for keeping deepseq out of base is the same for keeping anything else that doesn't _need_ to be in base out of base
2024-04-05 23:37:48 +0200 <int-e> exactly
2024-04-05 23:38:03 +0200 <tomsmeding> namely that you can upgrade it without upgrading the compiler, that you can have several different implementations, experiment, etc.
2024-04-05 23:38:08 +0200 <int-e> but maybe 20 years ago people would've felt differently
2024-04-05 23:38:20 +0200 <tomsmeding> sure, what I'm saying is the current feeling towards base
2024-04-05 23:38:24 +0200 <Inst> the problem is that if in a functional language, you're writing eDSLs all the time, the varying combinations of libraries essentially comprise their own eDSLs
2024-04-05 23:38:26 +0200 <tomsmeding> *toward
2024-04-05 23:38:32 +0200 <int-e> support for extra packages has improved dramatically since then, and that's a huge factor
2024-04-05 23:38:33 +0200 <Inst> then is Haskell a single language?
2024-04-05 23:38:44 +0200 <tomsmeding> is lisp a single language?
2024-04-05 23:38:47 +0200 <tomsmeding> is c++ a single language?
2024-04-05 23:38:53 +0200YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 240 seconds)
2024-04-05 23:38:55 +0200 <int-e> is english a single language?
2024-04-05 23:39:16 +0200shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-04-05 23:39:37 +0200 <sm> haskell platform was an attempt at a more complete standard lib. A stackage snapshot could also be seen as one.
2024-04-05 23:40:13 +0200 <Inst> iirc there's advice floating around to -XNoImplicitPrelude and roll your own if you want to use Haskell seriously
2024-04-05 23:40:26 +0200 <EvanR> three languages in a trenchcoat
2024-04-05 23:40:31 +0200 <tomsmeding> and there's also advice floating around to not do that
2024-04-05 23:40:32 +0200 <Inst> heh
2024-04-05 23:40:42 +0200 <tomsmeding> people's opinions will differ
2024-04-05 23:40:50 +0200 <tomsmeding> if you want a language that doesn't allow dissenting opinions, use Go :p
2024-04-05 23:40:54 +0200 <shapr> ouch
2024-04-05 23:41:11 +0200 <EvanR> auto formatters
2024-04-05 23:41:17 +0200 <EvanR> don't question it
2024-04-05 23:41:40 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-04-05 23:42:16 +0200 <sm> alternate preludes are a good idea, in principle they can compete and one of them could become popular, but more support from GHC/ecosystem seems needed to make them easier
2024-04-05 23:42:16 +0200YuutaW(~YuutaW@mail.yuuta.moe)
2024-04-05 23:43:14 +0200 <sm> or, just better docs/guidance so we make and use them more
2024-04-05 23:43:31 +0200 <sm> but I think there are some unnecessary roadbumps
2024-04-05 23:44:04 +0200 <shapr> it's instructive to try writing your own prelude
2024-04-05 23:44:12 +0200 <shapr> or at least, I learned much from my own attempt
2024-04-05 23:44:28 +0200 <Inst> tbh I just had a culture shock looking at Julia's batteries included base / stdlib
2024-04-05 23:44:31 +0200 <sm> I want the scripter's prelude, PHP-like - everything you need in scope. (This isn't just about a prelude, but also involves imports...)
2024-04-05 23:44:57 +0200 <sm> why, what's that like Inst ?
2024-04-05 23:44:59 +0200 <Inst> i'd rather just see a prelude extension; rather, instead of -XNoImplicitPrelude, you import it alongside prelude instead
2024-04-05 23:45:01 +0200 <shapr> Yeah, I like reading about the default imports used by high scoring Advent of Code participants
2024-04-05 23:45:39 +0200 <Inst> tbh an erdorsed prelude / base extension actually makes sense insofar as it works as an alpha test of changes to prelude
2024-04-05 23:45:56 +0200 <Inst> currently i guess all the alt preludes effectively function as R&D for standard prelude
2024-04-05 23:46:11 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-05 23:46:19 +0200 <yushyin> i sometimes use mixins + base-prelude for my toy projects, spares me from importing so many things from base
2024-04-05 23:47:23 +0200 <Inst> that is really cool, thanks for bringing it up
2024-04-05 23:48:01 +0200 <shapr> now that I think about it, cabal-add integration with haskell-language-server brings me closer to a much larger Prelude
2024-04-05 23:48:29 +0200 <shapr> that's the separation between Prelude and everything else, right? that I have to manually add something to my cabal file?
2024-04-05 23:48:36 +0200mei(~mei@user/mei)
2024-04-05 23:49:26 +0200sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-05 23:49:34 +0200 <yushyin> Inst: so like `mixins: base hiding (Prelude), base-prelude (BasePrelude as Prelude)', weird but works
2024-04-05 23:50:30 +0200 <sm> you can choose a different prelude in a stack script / cabal script too IIRC
2024-04-05 23:51:47 +0200zetef(~quassel@5.2.182.99) (Remote host closed the connection)
2024-04-05 23:51:58 +0200 <Inst> holy at Python stdlib
2024-04-05 23:52:07 +0200 <Inst> is this the peak kitchen sink of stdlibs?
2024-04-05 23:52:34 +0200ftweedal(~ftweedal@211.30.152.176)
2024-04-05 23:52:50 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-05 23:53:26 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-04-05 23:53:36 +0200 <Inst> https://docs.julialang.org/en/v1/stdlib/TOML/
2024-04-05 23:54:07 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2024-04-05 23:54:39 +0200 <Inst> the argument for a larger standard lib is that a lot of these things in Haskell are outsourced to FOSS maintainers, or it doesn't even exist
2024-04-05 23:54:59 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-04-05 23:55:03 +0200 <Inst> and FOSS maintainers might get bored and walk off
2024-04-05 23:55:14 +0200 <Inst> recall what happened with cryptonite, right?
2024-04-05 23:55:29 +0200 <sm> I'll see your julia/python stdlib and raise you https://www.stackage.org/lts-22.15
2024-04-05 23:56:06 +0200 <Inst> i like Network.I like this
2024-04-05 23:56:07 +0200 <Inst> lol
2024-04-05 23:56:08 +0200 <Inst> https://hackage.haskell.org/package/http-conduit-2.3.8.3
2024-04-05 23:56:29 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-05 23:56:41 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-05 23:56:47 +0200 <Inst> sm: are we going to start the cabal stack wars again?
2024-04-05 23:56:58 +0200 <sm> why would you say that ? please don't
2024-04-05 23:57:08 +0200 <EvanR> if python doesn't come with an MMORPG engine what's even the point
2024-04-05 23:57:37 +0200 <EvanR> literally useless
2024-04-05 23:58:23 +0200 <Inst> what was the background behind that again?
2024-04-05 23:58:31 +0200 <Inst> I don't get why Snoyman is considered so controversial
2024-04-05 23:58:51 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-04-05 23:58:52 +0200 <sm> I don't either but seriously please, let's not
2024-04-05 23:59:21 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-04-05 23:59:53 +0200 <Inst> i mean that I thought the cabal stack wars ended with a cabal victory