2024/06/02

2024-06-02 00:01:07 +0200andrewboltachev(~andrey@178.141.226.53) (Quit: Leaving.)
2024-06-02 00:01:15 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-06-02 00:12:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-02 00:12:31 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2024-06-02 00:14:35 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-06-02 00:15:29 +0200fliifetjbc
2024-06-02 00:15:53 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-06-02 00:15:58 +0200tjbcfliife
2024-06-02 00:17:33 +0200fliife(~fliife@user/fliife) (Quit: ZNC 1.8.2 - https://znc.in)
2024-06-02 00:17:43 +0200fliife(~fliife@user/fliife)
2024-06-02 00:18:49 +0200fliifetjbc
2024-06-02 00:19:21 +0200tjbc(~fliife@user/fliife) (Remote host closed the connection)
2024-06-02 00:19:50 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
2024-06-02 00:20:01 +0200fliife(~fliife@user/fliife)
2024-06-02 00:21:48 +0200fliifetjbc
2024-06-02 00:22:06 +0200tjbcfliife
2024-06-02 00:23:04 +0200fliife(~fliife@user/fliife) (Client Quit)
2024-06-02 00:23:14 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-06-02 00:24:14 +0200fliife(~fliife@user/fliife)
2024-06-02 00:28:16 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds)
2024-06-02 00:29:24 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-06-02 00:34:36 +0200ACuriousMoose(~ACuriousM@142.68.181.38) (Ping timeout: 260 seconds)
2024-06-02 00:39:26 +0200fliife(~fliife@user/fliife) (Quit: ZNC 1.8.2 - https://znc.in)
2024-06-02 00:40:06 +0200tjbc(~tjbc@user/fliife)
2024-06-02 00:46:07 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-06-02 00:55:30 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-06-02 00:57:11 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-06-02 01:18:35 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 268 seconds)
2024-06-02 01:20:44 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds)
2024-06-02 01:27:47 +0200nain(~nain@169.150.196.154) (Quit: Konversation terminated!)
2024-06-02 01:29:17 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-06-02 01:35:14 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-06-02 01:35:58 +0200kimiamania(~76637481@user/kimiamania) (Quit: PegeLinux)
2024-06-02 01:36:18 +0200kimiamania(~76637481@user/kimiamania)
2024-06-02 01:44:00 +0200tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2024-06-02 01:47:34 +0200acidjnk(~acidjnk@p200300d6e714dc29c5d26c84eddccd81.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-06-02 01:54:41 +0200kimiamania(~76637481@user/kimiamania) (Quit: PegeLinux)
2024-06-02 01:57:30 +0200kimiamania(~65804703@user/kimiamania)
2024-06-02 02:07:44 +0200pavonia(~user@user/siracusa)
2024-06-02 02:18:22 +0200mhatta(~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
2024-06-02 02:19:20 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-06-02 02:19:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
2024-06-02 02:19:20 +0200califax(~califax@user/califx) (Read error: Connection reset by peer)
2024-06-02 02:19:20 +0200chiselfuse(~chiselfus@user/chiselfuse) (Read error: Connection reset by peer)
2024-06-02 02:19:37 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2024-06-02 02:19:45 +0200califax(~califax@user/califx)
2024-06-02 02:20:02 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-06-02 02:20:23 +0200chiselfuse(~chiselfus@user/chiselfuse)
2024-06-02 02:23:43 +0200mhatta(~mhatta@www21123ui.sakura.ne.jp)
2024-06-02 02:23:46 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2024-06-02 02:24:18 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-06-02 02:47:28 +0200Midjak(~MarciZ@82.66.147.146) (Quit: Leaving)
2024-06-02 03:22:28 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-06-02 03:24:23 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2024-06-02 03:35:10 +0200troydm(~troydm@user/troydm) (Ping timeout: 268 seconds)
2024-06-02 03:50:54 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-06-02 03:59:40 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 246 seconds)
2024-06-02 04:05:04 +0200op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-06-02 04:05:35 +0200op_4(~tslil@user/op-4/x-9116473)
2024-06-02 04:16:16 +0200son0p(~ff@186.121.56.64) (Ping timeout: 260 seconds)
2024-06-02 04:34:55 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-06-02 04:50:43 +0200td_(~td@i53870928.versanet.de) (Ping timeout: 268 seconds)
2024-06-02 04:52:02 +0200td_(~td@i53870901.versanet.de)
2024-06-02 05:04:09 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-06-02 05:08:36 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-06-02 05:12:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-06-02 05:17:14 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-06-02 05:20:39 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-06-02 05:27:40 +0200Rodney_(~Rodney@176.254.244.83) (Ping timeout: 260 seconds)
2024-06-02 05:31:54 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-06-02 05:50:13 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-06-02 05:50:16 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10:fbf2:b01f:1d47:7542)
2024-06-02 05:55:09 +0200aforemny(~aforemny@2001:9e8:6ce2:0:e082:74dd:a9a3:528e) (Ping timeout: 268 seconds)
2024-06-02 05:55:24 +0200aforemny_(~aforemny@i59F516D1.versanet.de)
2024-06-02 06:09:23 +0200chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2024-06-02 06:10:17 +0200chiselfuse(~chiselfus@user/chiselfuse)
2024-06-02 06:12:50 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
2024-06-02 06:13:49 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-06-02 06:16:21 +0200philopsos1(~caecilius@user/philopsos)
2024-06-02 06:24:56 +0200son0p(~ff@167.0.161.21)
2024-06-02 06:26:50 +0200lol__jcarpenter2
2024-06-02 06:38:39 +0200mulk(~mulk@p5b112e4a.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-06-02 06:40:53 +0200mulk(~mulk@p5b2dc1a2.dip0.t-ipconnect.de)
2024-06-02 06:43:10 +0200andrei_n(~andrei_n@2a02:a03f:c091:a800:fde8:6a4:b1d:60ec)
2024-06-02 06:44:27 +0200andrei_n(~andrei_n@2a02:a03f:c091:a800:fde8:6a4:b1d:60ec) (Client Quit)
2024-06-02 07:04:59 +0200leah2(~leah@vuxu.org) (Ping timeout: 260 seconds)
2024-06-02 07:08:51 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 268 seconds)
2024-06-02 07:37:00 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-02 07:37:36 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2024-06-02 07:39:55 +0200xdminsy(~xdminsy@117.147.70.212) (Quit: Konversation terminated!)
2024-06-02 07:40:21 +0200xdminsy(~xdminsy@117.147.70.212)
2024-06-02 07:49:32 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-06-02 07:49:49 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-06-02 07:54:10 +0200euphores(~SASL_euph@user/euphores)
2024-06-02 07:56:32 +0200wheatengineer(~frederik@p200300f63f4e89007666e2f77a3735a1.dip0.t-ipconnect.de)
2024-06-02 08:03:08 +0200philopsos1(~caecilius@user/philopsos)
2024-06-02 08:05:23 +0200causal(~eric@50.35.88.207) (Quit: WeeChat 4.1.1)
2024-06-02 08:12:11 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-02 08:21:51 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-06-02 08:21:55 +0200poscat(~poscat@user/poscat) (Ping timeout: 268 seconds)
2024-06-02 08:22:07 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-02 08:22:23 +0200poscat(~poscat@user/poscat)
2024-06-02 08:22:56 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-02 08:57:51 +0200wheatengineer-fa(~frederik@193.32.248.193)
2024-06-02 09:00:01 +0200tt1231097(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Quit: The Lounge - https://thelounge.chat)
2024-06-02 09:00:13 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com)
2024-06-02 09:00:19 +0200wheatengineer(~frederik@p200300f63f4e89007666e2f77a3735a1.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2024-06-02 09:01:40 +0200wheatengineer(~frederik@p200300f63f4e89007666e2f77a3735a1.dip0.t-ipconnect.de)
2024-06-02 09:02:51 +0200tt1231097(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee)
2024-06-02 09:03:28 +0200wheatengineer-fa(~frederik@193.32.248.193) (Ping timeout: 246 seconds)
2024-06-02 09:04:47 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 264 seconds)
2024-06-02 09:05:09 +0200mei(~mei@user/mei)
2024-06-02 09:07:24 +0200andrewboltachev(~andrey@178.141.226.53)
2024-06-02 09:09:30 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Quit: WeeChat 4.2.2)
2024-06-02 09:22:43 +0200wheatengineer(~frederik@p200300f63f4e89007666e2f77a3735a1.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2024-06-02 09:28:19 +0200mei(~mei@user/mei) (Ping timeout: 246 seconds)
2024-06-02 09:29:22 +0200mei(~mei@user/mei)
2024-06-02 09:38:19 +0200cheater(~Username@user/cheater)
2024-06-02 09:43:54 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net)
2024-06-02 09:46:39 +0200poscat0x04(~poscat@user/poscat)
2024-06-02 09:46:43 +0200poscat(~poscat@user/poscat) (Ping timeout: 268 seconds)
2024-06-02 09:50:04 +0200Lycurgus(~georg@user/Lycurgus)
2024-06-02 09:54:58 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-06-02 10:00:45 +0200acidjnk(~acidjnk@p200300d6e714dc176c976a8b55dd22bd.dip0.t-ipconnect.de)
2024-06-02 10:01:21 +0200leah2(~leah@vuxu.org)
2024-06-02 10:09:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-02 10:26:36 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-06-02 10:33:45 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10:fbf2:b01f:1d47:7542) (Remote host closed the connection)
2024-06-02 10:42:15 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-06-02 10:43:16 +0200lxsameer(~lxsameer@Serene/lxsameer)
2024-06-02 10:44:27 +0200gmg(~user@user/gehmehgeh)
2024-06-02 10:46:24 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-02 10:47:25 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 246 seconds)
2024-06-02 10:55:33 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-06-02 11:17:22 +0200rosco(~rosco@90.58.221.226)
2024-06-02 11:22:30 +0200__monty__(~toonn@user/toonn)
2024-06-02 11:23:43 +0200sawilagar(~sawilagar@user/sawilagar)
2024-06-02 11:26:01 +0200billchenchina(~billchenc@103.152.35.21)
2024-06-02 11:26:48 +0200andrewboltachev(~andrey@178.141.226.53) (Quit: Leaving.)
2024-06-02 11:29:05 +0200billchenchina(~billchenc@103.152.35.21) (Client Quit)
2024-06-02 11:38:59 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-06-02 11:54:34 +0200tremon(~tremon@83.80.159.219)
2024-06-02 11:59:21 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-06-02 12:03:35 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-06-02 12:10:43 +0200wheatengineer(~frederik@p200300f63f4e89007666e2f77a3735a1.dip0.t-ipconnect.de)
2024-06-02 12:23:26 +0200sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2024-06-02 12:24:24 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-06-02 12:25:53 +0200gastus(~gastus@185.6.123.201)
2024-06-02 12:26:32 +0200sefidel(~sefidel@user/sefidel)
2024-06-02 12:45:51 +0200TonyStone(~TonyStone@user/TonyStone) (Ping timeout: 268 seconds)
2024-06-02 12:49:47 +0200kimiamania(~65804703@user/kimiamania) (Quit: PegeLinux)
2024-06-02 12:50:12 +0200kimiamania(~65804703@user/kimiamania)
2024-06-02 12:58:58 +0200TonyStone(~TonyStone@user/TonyStone)
2024-06-02 13:02:29 +0200mrmr1553343(~mrmr@user/mrmr) (Quit: Bye, See ya later!)
2024-06-02 13:10:21 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2024-06-02 13:10:32 +0200pie_(~pie_bnc@user/pie/x-2818909)
2024-06-02 13:14:45 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2024-06-02 13:18:51 +0200mrmr1553343(~mrmr@user/mrmr)
2024-06-02 13:28:10 +0200 <lxsameer> b
2024-06-02 13:30:25 +0200 <int-e> i c u
2024-06-02 13:32:19 +0200rosco(~rosco@90.58.221.226) (Ping timeout: 260 seconds)
2024-06-02 13:33:23 +0200rosco(~rosco@90.58.221.226)
2024-06-02 13:35:14 +0200 <ncf> b i c a l s e t s
2024-06-02 13:51:58 +0200rosco(~rosco@90.58.221.226) (Quit: Lost terminal)
2024-06-02 13:53:07 +0200rosco(~rosco@90.58.221.226)
2024-06-02 13:54:55 +0200wheatengineer(~frederik@p200300f63f4e89007666e2f77a3735a1.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-06-02 13:55:51 +0200philopsos1(~caecilius@user/philopsos)
2024-06-02 14:17:07 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 268 seconds)
2024-06-02 14:23:25 +0200Rodney_(~Rodney@176.254.244.83)
2024-06-02 14:29:04 +0200target_i(~target_i@user/target-i/x-6023099)
2024-06-02 14:40:33 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-06-02 14:42:04 +0200AlexZenon(~alzenon@178.34.150.84) (Quit: ;-)
2024-06-02 14:42:55 +0200AlexNoo(~AlexNoo@178.34.150.84) (Quit: Leaving)
2024-06-02 14:50:42 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
2024-06-02 15:00:27 +0200ocra8(ocra8@user/ocra8) (Quit: WeeChat 4.2.2)
2024-06-02 15:03:17 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2024-06-02 15:29:01 +0200AlexNoo(~AlexNoo@178.34.150.84)
2024-06-02 15:29:48 +0200AlexZenon(~alzenon@178.34.150.84)
2024-06-02 15:44:53 +0200Square(~Square@user/square) (Quit: Leaving)
2024-06-02 15:45:59 +0200red-snail(~snail@static.151.210.203.116.clients.your-server.de) (Ping timeout: 252 seconds)
2024-06-02 16:14:42 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-06-02 16:14:45 +0200rosco(~rosco@90.58.221.226) (Quit: Lost terminal)
2024-06-02 16:19:46 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2024-06-02 16:21:53 +0200infinity0(~infinity0@pwned.gg)
2024-06-02 16:22:17 +0200mrmr15533431(~mrmr@user/mrmr)
2024-06-02 16:22:43 +0200mrmr1553343(~mrmr@user/mrmr) (Ping timeout: 246 seconds)
2024-06-02 16:22:43 +0200mrmr15533431mrmr1553343
2024-06-02 16:23:36 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-06-02 16:24:18 +0200 <lxsameer> Any recommendation for an high level networking library? I need to build a TCP/Unix socket service
2024-06-02 16:26:30 +0200ocra8(ocra8@user/ocra8)
2024-06-02 16:34:27 +0200 <probie> lxsameer: Can you elaborate on what you mean by "high level"?
2024-06-02 16:35:58 +0200 <lxsameer> probie: e.g calling syscalls and manually take care of every detail == low level, A nice abstraction or framework to care about your communication only == highlevel
2024-06-02 16:35:59 +0200red-snail(~snail@static.151.210.203.116.clients.your-server.de)
2024-06-02 16:36:52 +0200TMA(tma@twin.jikos.cz) (Ping timeout: 260 seconds)
2024-06-02 16:42:59 +0200igghibu(~igghibu@178.249.211.83)
2024-06-02 16:43:07 +0200igghibu(~igghibu@178.249.211.83) (Client Quit)
2024-06-02 16:43:29 +0200igghibu(~igghibu@178.249.211.83)
2024-06-02 16:47:47 +0200aforemny(~aforemny@2001:9e8:6cce:6100:d5d5:d4fb:65d2:c482)
2024-06-02 16:49:26 +0200aforemny_(~aforemny@i59F516D1.versanet.de) (Ping timeout: 268 seconds)
2024-06-02 16:54:49 +0200troydm(~troydm@user/troydm)
2024-06-02 17:01:58 +0200zer0bitz(~zer0bitz@user/zer0bitz) (Quit: https://zer0bitz.dy.fi)
2024-06-02 17:06:19 +0200remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2024-06-02 17:07:10 +0200remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz)
2024-06-02 17:10:33 +0200igghibu(~igghibu@178.249.211.83) (Quit: igghibu)
2024-06-02 17:15:36 +0200kmein(~weechat@user/kmein) (Ping timeout: 260 seconds)
2024-06-02 17:21:07 +0200 <probie> lxsameer: But are your requirements at level of "I could write my program reading/writing stdin/stdout and then wrap it with socat", or do you need a bit more control?
2024-06-02 17:22:17 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-06-02 17:22:46 +0200mechap(~mechap@user/mechap)
2024-06-02 17:24:06 +0200gmg(~user@user/gehmehgeh)
2024-06-02 17:25:59 +0200 <probie> Depending on what you want network-simple https://hackage.haskell.org/package/network-simple probably works well enough. If you need ssl, perhaps crypton-connection https://hackage.haskell.org/package/crypton-connection
2024-06-02 17:28:05 +0200 <mauke> manually take care of every detail = raw sockets; communication only = stream sockets a.k.a tcp
2024-06-02 17:35:31 +0200 <EvanR> it's funny because all these answers are much lower level than what you get in python or javascript. Because haskell comes with nice concurrency which is useful for not just networking, so a library doesn't have to deal with that
2024-06-02 17:36:47 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2024-06-02 17:38:23 +0200myme(~myme@2a01:799:d5c:5f00:1e69:7aff:feab:e7ae) (Ping timeout: 256 seconds)
2024-06-02 17:45:32 +0200nschoe-(~nschoe@2a01:e0a:8e:a190:542f:7ca5:d166:8539) (Quit: ZNC 1.8.2 - https://znc.in)
2024-06-02 17:45:49 +0200nschoe(~nschoe@2a01:e0a:8e:a190:b029:5729:77ae:d1dd)
2024-06-02 17:48:35 +0200rosco(~rosco@90.58.221.226)
2024-06-02 17:49:48 +0200son0p(~ff@167.0.161.21) (Quit: Leaving)
2024-06-02 17:51:30 +0200turlando(~turlando@user/turlando) (Quit: No Ping reply in 180 seconds.)
2024-06-02 17:52:17 +0200zer0bitz(~zer0bitz@user/zer0bitz)
2024-06-02 17:52:47 +0200turlando(~turlando@user/turlando)
2024-06-02 18:02:40 +0200inedia(~irc@2600:3c00:e000:287::1) (Quit: WeeChat 4.1.2)
2024-06-02 18:04:40 +0200inedia(~irc@2600:3c00:e000:287::1)
2024-06-02 18:07:48 +0200ak-1_(~ak-1@149.50.189.146)
2024-06-02 18:08:45 +0200ak-1(~ak-1@149.50.189.92) (Ping timeout: 272 seconds)
2024-06-02 18:10:26 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-06-02 18:10:42 +0200lxsameer(~lxsameer@Serene/lxsameer) (Quit: WeeChat 4.2.1)
2024-06-02 18:11:00 +0200rvalue(~rvalue@user/rvalue)
2024-06-02 18:13:23 +0200son0p(~ff@167.0.161.21)
2024-06-02 18:15:05 +0200aforemny(~aforemny@2001:9e8:6cce:6100:d5d5:d4fb:65d2:c482) (Ping timeout: 256 seconds)
2024-06-02 18:15:09 +0200rosco(~rosco@90.58.221.226) (Ping timeout: 268 seconds)
2024-06-02 18:19:13 +0200aforemny(~aforemny@i59F516FA.versanet.de)
2024-06-02 18:23:50 +0200rosco(~rosco@90.58.221.226)
2024-06-02 18:30:18 +0200 <haskellbridge> <pzka> EvanR: what are lower level python or js lib you're thinking for ?
2024-06-02 18:32:19 +0200 <EvanR> python and js get hype for their high level evented i/o libraries
2024-06-02 18:32:36 +0200 <haskellbridge> <pzka> because I don't see much difference between network-simple and https://docs.python.org/3/library/socket.html
2024-06-02 18:33:25 +0200glguy(g@libera/staff/glguy) (Read error: Connection reset by peer)
2024-06-02 18:33:38 +0200 <EvanR> I'm comparing the high level haskell suggestion of "tcp socket" to high level twisted
2024-06-02 18:33:55 +0200glguy(g@libera/staff/glguy)
2024-06-02 18:37:27 +0200 <haskellbridge> <pzka> is there no event driven networking framework in Haskell ?
2024-06-02 18:38:43 +0200 <haskellbridge> <sm (@simonmic:matrix.org)> what did you find on hackage ?
2024-06-02 18:39:24 +0200 <geekosaur> (is that really your display name?)
2024-06-02 18:39:36 +0200 <haskellbridge> <pzka> sm: many thing
2024-06-02 18:40:52 +0200 <haskellbridge> <sm (@simonmic:matrix.org)> maybe pick the best known framework of that kind and search for its name, it might be mentioned in descriptions
2024-06-02 18:51:55 +0200 <EvanR> event driven framework in haskell might amount to looping over a TChan
2024-06-02 18:52:54 +0200 <EvanR> then event sources don't need to written against a framework, they just use a TChan
2024-06-02 18:57:29 +0200kmein(~weechat@user/kmein)
2024-06-02 19:09:21 +0200 <haskellbridge> <pzka> @sm I just took twisted's description of himself in their doc.
2024-06-02 19:09:21 +0200 <haskellbridge> ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/MmYeXVsivFNcOiebQhzNpoCD (3 lines)
2024-06-02 19:10:03 +0200 <jackdk> @hackage reflex-backend-socket exists, but I don't think anyone built anything nontrivial atop it. Caveat lector
2024-06-02 19:10:04 +0200 <lambdabot> https://hackage.haskell.org/package/reflex-backend-socket exists, but I don't think anyone built anything nontrivial atop it. Caveat lector
2024-06-02 19:10:39 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-06-02 19:11:51 +0200 <haskellbridge> <pzka> interesting project
2024-06-02 19:13:01 +0200yin(~yin@user/zero)
2024-06-02 19:15:24 +0200euleritian(~euleritia@dynamic-176-001-216-155.176.1.pool.telefonica.de)
2024-06-02 19:16:38 +0200 <monochrom> We have efficient green threads. We just use green threads, one thread per blocking I/O.
2024-06-02 19:17:01 +0200 <monochrom> Another way to put it: the RTS already contains the event loop.
2024-06-02 19:17:14 +0200 <haskellbridge> <sm (@simonmic:matrix.org)> I spent a few minutes searching for buzzwords and found eg amazon EventBridge things on hackage. Cloud haskell also comes to mind. But yes there's no well known framework to point you at.
2024-06-02 19:18:36 +0200 <monochrom> It is interesting how Haskell is very different and so conventional wisdoms from other languages simply don't carry over.
2024-06-02 19:19:17 +0200 <monochrom> "how do I write a for loop?" : just don't, use a lazy list :: "how do I write an event loop?" : just don't, use threads.
2024-06-02 19:21:26 +0200 <glguy> whoops, I used green threads to implement my event loop https://github.com/glguy/irc-core/blob/v2/src/Client/EventLoop.hs#L137-L160
2024-06-02 19:23:42 +0200 <monochrom> I teach a Unix course including select() and epoll(). I also teach that reality that just because you call send()/write() once for 5 bytes doesn't mean that the receiver just needs one recv()/read() and expects to get all 5 in one go.
2024-06-02 19:25:14 +0200mechap(~mechap@user/mechap) (Quit: WeeChat 4.3.0)
2024-06-02 19:27:12 +0200 <monochrom> Then I thought of giving them an assignment on writing your own select()/epoll() loop communicating with multiple clients. Well, the complexity dawns on me that given the fragmentation mentioned, you now have to keep so much bookkeeping state for each client, you are writing your own OS.
2024-06-02 19:27:32 +0200 <monochrom> So why not use the existing OS? Just use threads.
2024-06-02 19:36:33 +0200TactfulCitrus(~al@2a02:8012:87a6:0:fbe0:6116:6e30:e047) (Ping timeout: 268 seconds)
2024-06-02 19:41:51 +0200 <haskellbridge> <pzka> I agree that asynchronous programming is more complex, but threads are more costly. Matter of choice I guess
2024-06-02 19:43:06 +0200 <geekosaur> not in Haskell
2024-06-02 19:43:21 +0200 <monochrom> This is where you take advantage of cheap green threads from GHC. IOW GHC RTS does the reinvent-my-own-OS for you.
2024-06-02 19:43:24 +0200 <geekosaur> they're designed to be extremely cheap (but I think this comes with other tradeoffs)
2024-06-02 19:43:40 +0200 <monochrom> But even with Unix OS threads it is not too bad.
2024-06-02 19:44:02 +0200 <glguy> threads introduce synchronization complexity, even in Haskell. There's no single ideal solution; it's all tradeoffs
2024-06-02 19:48:33 +0200 <monochrom> I come from the angle that code that is trivial to write and obviously correct at first glance has a higher priority than a constant factor of cost.
2024-06-02 19:50:29 +0200 <glguy> If you're writing GHC/Haskell then the green threads are the concurrency primitive and they're pretty easy to use, but they do make somethings harder to synchronize
2024-06-02 19:50:43 +0200 <monochrom> OK you can then reply that GHC RTS itself cannot possibly be trivial to write and obviously correct at first glance. So even correctness itself has a tradeoff between "is the issue in my code" and "is the issue in someone else's code" heh.
2024-06-02 19:50:44 +0200euleritian(~euleritia@dynamic-176-001-216-155.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-06-02 19:51:02 +0200euleritian(~euleritia@77.22.252.56)
2024-06-02 19:51:04 +0200 <glguy> threads can make the code less obviously correct at first glance, though, as you have to reason about a much more complicated interleaving
2024-06-02 19:51:14 +0200 <haskellbridge> <pzka> you need synchronisation if you share data. This not necessarily induced by the threads usage
2024-06-02 19:52:12 +0200 <geekosaur> Haskell changes that a bit, actually. you need to send data between threads, not share it
2024-06-02 19:52:21 +0200 <haskellbridge> <pzka> I'm really not an expert on Haskell. So I'm willing to believe that green threads are a better solution in this language.
2024-06-02 19:52:21 +0200 <geekosaur> the usual mechanism for that is a TChan
2024-06-02 19:52:43 +0200 <geekosaur> this is because of purity
2024-06-02 19:52:53 +0200 <haskellbridge> <pzka> Yes agree
2024-06-02 19:52:57 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-06-02 19:53:02 +0200 <haskellbridge> <pzka> I was thinking about that too
2024-06-02 19:53:18 +0200 <glguy> You can either send data with channels, or have shared state with MVars, TVars, etc
2024-06-02 19:53:54 +0200 <glguy> STM is nice in how it allows you to wait any number of different events at once
2024-06-02 19:54:21 +0200 <geekosaur> STM (pretty much anything prefixed with T) is a lightweight mechanism for both
2024-06-02 19:54:29 +0200 <haskellbridge> <pzka> "An MVar t is a mutable location " Oh no ...
2024-06-02 19:54:56 +0200 <monochrom> Read on. You will find that it is instead a message box of capacity 1.
2024-06-02 19:55:05 +0200 <haskellbridge> <pzka> ah ok
2024-06-02 19:55:14 +0200 <monochrom> So suddenly it's just a message queue not shared memory.
2024-06-02 19:55:51 +0200 <haskellbridge> <pzka> ah yes I see so synchronisation is handled by the MVar itself right ?
2024-06-02 19:56:11 +0200 <haskellbridge> <pzka> no need for semaphoe, mutex etc...
2024-06-02 19:56:16 +0200 <monochrom> I follow my thesis supervisor in believing that message channels are much better than shared memory.
2024-06-02 19:56:32 +0200 <haskellbridge> <pzka> (That's what I mean by synchronization)
2024-06-02 19:56:41 +0200califax(~califax@user/califx)
2024-06-02 19:56:41 +0200 <monochrom> You can use MVar () to get a mutex.
2024-06-02 19:57:21 +0200 <monochrom> But I would just (re)design everything around channels in the first place.
2024-06-02 19:57:23 +0200 <haskellbridge> <pzka> ok
2024-06-02 19:57:49 +0200 <haskellbridge> <pzka> sadly I have to go but this discussion was very interesting
2024-06-02 19:57:57 +0200 <monochrom> rather than, IMO, regressively reactively use channels to emulate dark age shared memory.
2024-06-02 19:58:03 +0200 <haskellbridge> <pzka> I will hjave a look to MVar
2024-06-02 19:58:43 +0200 <probie> I don't think I'm willing to accept that "message channels are much better than shared memory". I'm happy with "message channels are nearly always much better than shared memory" though
2024-06-02 19:58:47 +0200 <haskellbridge> <pzka> I think no "modern" language do that
2024-06-02 19:59:23 +0200 <monochrom> Yeah I am happy with just "nearly always"
2024-06-02 19:59:33 +0200 <haskellbridge> <pzka> Maybe for highly cpu bound application
2024-06-02 19:59:54 +0200 <monochrom> I confess that I have a program that even just use one IORef with atomicModifyIORef.
2024-06-02 20:00:36 +0200 <glguy> all of this depends on the program you're making
2024-06-02 20:00:51 +0200 <geekosaur> doesn't the MVaar documentation (maybe it's the atomicModifyIORef docs) even suggest you do that if you're only using one?
2024-06-02 20:01:12 +0200 <monochrom> I have a Data.Map. I put it in an IORef for multiple-thread access. There is no race condition because I only have 1 IORef, not even 2.
2024-06-02 20:01:41 +0200 <monochrom> Yeah this is actually an underrated technique.
2024-06-02 20:02:51 +0200 <monochrom> The trick is that Data.Map is immutable so all the talks about race conditions over a large data structure and how you now need elaborate lock-free techniques in mainstream imperative languages is completely lost because we are in an immutable functional language.
2024-06-02 20:03:10 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer)
2024-06-02 20:03:25 +0200 <monochrom> The only problem is it doesn't even scale to 2 IORefs. >:)
2024-06-02 20:07:06 +0200 <jackdk> Ah, but we have product types for that
2024-06-02 20:07:31 +0200 <monochrom> Haha true. Data.Map is just doing that on steroid.
2024-06-02 20:08:19 +0200troydm(~troydm@user/troydm) (Ping timeout: 268 seconds)
2024-06-02 20:09:40 +0200Sgeo(~Sgeo@user/sgeo)
2024-06-02 20:09:54 +0200 <probie> Vaguely related complaint. Go prefer message channels to shared memory, however since maps are mutable, to (safely) send a map over a channel, you have to copy the entire thing.
2024-06-02 20:10:56 +0200 <probie> This means if you're sending across some struct which contains several maps, you're stuck either copying them all (even if only one changed) or having a more complicated protocol where you need to specify what parts have changed
2024-06-02 20:11:13 +0200 <probie> meanwhile in Haskell-land, I don't even need to think about this
2024-06-02 20:11:37 +0200 <monochrom> Selection bias but there is a reason I'm in this channel not the Go channel :)
2024-06-02 20:12:16 +0200 <monochrom> I bet also for most of us here. :)
2024-06-02 20:19:33 +0200 <probie> It's important to see what other languages are doing. Even the worst ones (apart from PHP) have some good ideas
2024-06-02 20:32:20 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-06-02 20:33:10 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-06-02 20:34:45 +0200lxsameer(~lxsameer@Serene/lxsameer)
2024-06-02 20:36:00 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: Leaving)
2024-06-02 20:41:48 +0200 <yin> why no whole-program compilation in haskell?
2024-06-02 20:42:25 +0200 <yin> my intuition is that haskell has a huge potential for cross-library optimizations
2024-06-02 20:42:35 +0200lxsameer(~lxsameer@Serene/lxsameer) (WeeChat 4.2.2)
2024-06-02 20:43:19 +0200 <glguy> yin: definitions can be inlined into the interface files generated when compiling a module for the cases where that's most impactful
2024-06-02 20:47:04 +0200 <geekosaur> yin, jhc did WPC, and the GRIN project has been experimenting with a WPC mechanism for GHC
2024-06-02 20:48:03 +0200adium(adium@user/adium) (Leaving)
2024-06-02 20:49:14 +0200 <mauke> does anyone know if there's a select() for haskell on hackage?
2024-06-02 20:49:22 +0200 <yin> ooh that's nice
2024-06-02 20:49:30 +0200 <mauke> or do I have to implement my own (on top of threads?)?
2024-06-02 20:50:07 +0200 <raehik> Are there any parser combinator libraries out there that don't support backtracking? that probably generate LL(1) parsers?
2024-06-02 20:50:40 +0200 <raehik> asking because it appears that's my type-level parser combinator lib is and I'm trying to reason about it
2024-06-02 20:50:40 +0200 <geekosaur> mauke, I only see one and it's from 2013
2024-06-02 20:50:53 +0200phma(~phma@host-67-44-208-88.hnremote.net) (Read error: Connection reset by peer)
2024-06-02 20:51:46 +0200phma(phma@2001:5b0:211c:2db8:8455:4a59:eacb:62a6)
2024-06-02 20:51:47 +0200 <monochrom> mauke: There is an "epoll", there is a "kqueue". I heard of them a long time ago. Not sure if there are others.
2024-06-02 20:52:51 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-06-02 20:52:56 +0200 <geekosaur> both of those will be OS dependent (epoll is Linux, kqueue is *BSD)
2024-06-02 20:54:28 +0200causal(~eric@50.35.88.207)
2024-06-02 20:57:18 +0200califax(~califax@user/califx)
2024-06-02 21:05:31 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 246 seconds)
2024-06-02 21:08:43 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-06-02 21:11:38 +0200dispater(~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-06-02 21:11:38 +0200orcus(~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-06-02 21:13:37 +0200dispater(~dispater@mail.brprice.uk)
2024-06-02 21:14:07 +0200orcus(~orcus@mail.brprice.uk)
2024-06-02 21:17:33 +0200califax(~califax@user/califx)
2024-06-02 21:20:38 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-06-02 21:21:18 +0200andrei_n(~andrei_n@2a02:a03f:c091:a800:f349:d45c:cf6b:1a3e)
2024-06-02 21:37:26 +0200andrei_n(~andrei_n@2a02:a03f:c091:a800:f349:d45c:cf6b:1a3e) (Ping timeout: 256 seconds)
2024-06-02 21:45:55 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-06-02 21:48:51 +0200andrei_n(~andrei_n@2a02:a03f:c091:a800:f349:d45c:cf6b:1a3e)
2024-06-02 21:58:01 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 246 seconds)
2024-06-02 21:59:30 +0200michalz(~michalz@185.246.207.221)
2024-06-02 22:04:29 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-06-02 22:06:06 +0200vnogueira(~vnogueira@2804:7f1:e2c0:4f34:9ed5:e091:ca3:9df2)
2024-06-02 22:07:05 +0200vnogueira(~vnogueira@2804:7f1:e2c0:4f34:9ed5:e091:ca3:9df2) ()
2024-06-02 22:19:45 +0200myme(~myme@2a01:799:d5c:5f00:69d5:8c7b:dd4d:cbe8)
2024-06-02 22:43:05 +0200andrei_n(~andrei_n@2a02:a03f:c091:a800:f349:d45c:cf6b:1a3e) (Quit: Leaving)
2024-06-02 22:53:53 +0200ak-1_(~ak-1@149.50.189.146) (Ping timeout: 252 seconds)
2024-06-02 23:09:18 +0200m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 268 seconds)
2024-06-02 23:15:26 +0200m5zs7k(aquares@web10.mydevil.net)
2024-06-02 23:16:08 +0200 <dmj`> yin: there's huge potential, GHC was started when memory was ~1MB, so everything had to be incremental compilation. Inlining typeclass definitions for the /entire/ program's dep. tree, not just interface files is a huge win.
2024-06-02 23:21:17 +0200 <mauke> that works as long as your program doesn't create types at runtime
2024-06-02 23:33:13 +0200michalz(~michalz@185.246.207.221) (Quit: ZNC 1.9.0 - https://znc.in)
2024-06-02 23:35:15 +0200rosco(~rosco@90.58.221.226) (Quit: Lost terminal)
2024-06-02 23:39:10 +0200troydm(~troydm@user/troydm)
2024-06-02 23:46:58 +0200myxos(~myxos@syn-065-028-251-121.res.spectrum.com) (Remote host closed the connection)
2024-06-02 23:48:09 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 268 seconds)
2024-06-02 23:51:05 +0200troojg(~troojg@99.36.5.199)
2024-06-02 23:54:42 +0200__monty__(~toonn@user/toonn) (Quit: leaving)