Logs: liberachat/#haskell
| 2021-07-06 17:45:17 | <monochrom> | vector's fusion is for immutable vectors, and keeps them as immutable vectors. It eliminates intermediate wasteful immutable vectors. |
| 2021-07-06 17:45:51 | <qrpnxz> | right |
| 2021-07-06 17:46:01 | <monochrom> | Linear typing allows changing immutable vectors to a mutable vector. |
| 2021-07-06 17:46:42 | <c_wraith> | to get real performance in GHC, you occasionally need to unwrap IO. :) |
| 2021-07-06 17:46:43 | <qrpnxz> | i mean it could also allow you to modify an immutable directly, since you could prove that the old vector is not used anywhere else |
| 2021-07-06 17:46:54 | <monochrom> | However, this optimization is still on paper. |
| 2021-07-06 17:47:03 | <monochrom> | Right, that. |
| 2021-07-06 17:47:03 | <dminuoso> | qrpnxz: This is the essence of why Clean often performs much better than Haskell. |
| 2021-07-06 17:47:17 | <qrpnxz> | what is clean |
| 2021-07-06 17:47:23 | <monochrom> | nice language |
| 2021-07-06 17:47:28 | <c_wraith> | a language with uniqueness types |
| 2021-07-06 17:47:31 | <qrpnxz> | ic |
| 2021-07-06 17:47:33 | × | Schrostfutz quits (~Schrostfu@schettlerdck.tkn.tu-berlin.de) (Ping timeout: 252 seconds) |
| 2021-07-06 17:47:36 | <c_wraith> | which are what most people think linear types are :P |
| 2021-07-06 17:47:48 | <dsal> | Nice is a research programming language. It demonstrates how the powerful ML-Sub type system can be used in practice. Nice is an object-oriented language, with parametric, polymorphic types, higher-order functions, and more. It combines the advantages of object-orientation and functional programming. |
| 2021-07-06 17:48:08 | <dminuoso> | The uniqueness types allow Clean to both a) have observable immutability and b) actual mutability behind the scenes. |
| 2021-07-06 17:48:29 | <monochrom> | https://clean.cs.ru.nl/Clean |
| 2021-07-06 17:48:39 | <qrpnxz> | thx |
| 2021-07-06 17:48:53 | <qrpnxz> | sad, no code snippets |
| 2021-07-06 17:49:02 | <qrpnxz> | i need program porn cmon |
| 2021-07-06 17:49:09 | <dminuoso> | Clean looks roughly similar to Haskell |
| 2021-07-06 17:49:19 | <qrpnxz> | even haskell at least has that prime number example now xD |
| 2021-07-06 17:49:54 | <monochrom> | ugh, cloogle |
| 2021-07-06 17:50:01 | × | ukari quits (~ukari@user/ukari) (Remote host closed the connection) |
| 2021-07-06 17:50:04 | <monochrom> | that meme is getting old |
| 2021-07-06 17:50:11 | <qrpnxz> | alright gtg |
| 2021-07-06 17:50:17 | → | fengctor joins (~fengctor@2605:b100:313:2cc4:d899:1269:1230:605f) |
| 2021-07-06 17:50:29 | × | fengctor quits (~fengctor@2605:b100:313:2cc4:d899:1269:1230:605f) (Quit: Quit) |
| 2021-07-06 17:50:31 | → | ukari joins (~ukari@user/ukari) |
| 2021-07-06 17:51:02 | <ahdyt> | Clean Doc is 2011 is it abandoned? |
| 2021-07-06 17:51:09 | <dminuoso> | ahdyt: No. |
| 2021-07-06 17:51:22 | <dminuoso> | ahdyt: It's mostly taught in some NL universities |
| 2021-07-06 17:51:22 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 2021-07-06 17:51:32 | <ahdyt> | ah really? cool |
| 2021-07-06 17:51:54 | → | cheater joins (~Username@user/cheater) |
| 2021-07-06 17:51:54 | <monochrom> | Haskel2010 sounds like even more abandoned, I mean earlier by 1 year >:) |
| 2021-07-06 17:52:09 | <dminuoso> | There's even a large Clean toolkit used in some areas in NL, which is called iTask |
| 2021-07-06 17:52:33 | <dminuoso> | Think the government and or military uses it in some places |
| 2021-07-06 17:53:16 | × | mikail quits (~mikail@90.212.77.3) (Ping timeout: 246 seconds) |
| 2021-07-06 17:53:16 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 2021-07-06 17:54:35 | ← | safinaskar parts (~user@109.252.90.89) () |
| 2021-07-06 17:54:37 | → | safinaskar joins (~user@109.252.90.89) |
| 2021-07-06 17:54:53 | <ahdyt> | yeah sure good task manager. |
| 2021-07-06 17:57:05 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 2021-07-06 17:57:44 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 2021-07-06 17:59:55 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 2021-07-06 18:00:07 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 2021-07-06 18:01:26 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-06 18:03:29 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 2021-07-06 18:04:38 | × | hgolden quits (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Quit: Konversation terminated!) |
| 2021-07-06 18:06:49 | → | lortabac joins (~lortabac@95.138.56.124) |
| 2021-07-06 18:07:04 | → | yauhsien joins (~yauhsien@61-231-39-135.dynamic-ip.hinet.net) |
| 2021-07-06 18:08:07 | → | boxscape_ joins (~boxscape_@p4ff0ba7a.dip0.t-ipconnect.de) |
| 2021-07-06 18:08:25 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection) |
| 2021-07-06 18:10:14 | → | fengctor joins (~fengctor@w72-38-155-115.wifi.cgocable.net) |
| 2021-07-06 18:12:00 | × | yauhsien quits (~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 2021-07-06 18:12:07 | <ahdyt> | I wonder which lib one must use to build blazing fast web ? wai + warp? |
| 2021-07-06 18:12:24 | <davean> | ahdyt: how fast do you want it? |
| 2021-07-06 18:12:45 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
| 2021-07-06 18:13:07 | <davean> | I've never gotten past 100k qps per core with Haskell, but I find it pretty trivial to get to 60k qps per core with Haskell, getting into the mid 90s is work. |
| 2021-07-06 18:16:15 | → | dunkeln_ joins (~dunkeln@188.71.194.238) |
| 2021-07-06 18:16:41 | × | juhp quits (~juhp@128.106.188.66) (Quit: juhp) |
| 2021-07-06 18:16:55 | → | juhp joins (~juhp@128.106.188.66) |
| 2021-07-06 18:17:58 | × | ahdyt quits (~ahdyt@103.105.35.77) (Ping timeout: 246 seconds) |
| 2021-07-06 18:18:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) |
| 2021-07-06 18:18:14 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 2021-07-06 18:19:30 | × | qrpnxz quits (~qrpnxz@user/qrpnxz) (Ping timeout: 240 seconds) |
| 2021-07-06 18:21:30 | → | alx741 joins (~alx741@181.196.69.147) |
| 2021-07-06 18:25:22 | × | fengctor quits (~fengctor@w72-38-155-115.wifi.cgocable.net) (Read error: Connection reset by peer) |
| 2021-07-06 18:29:40 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
| 2021-07-06 18:31:19 | → | ahdyt joins (~ahdyt@103.105.35.78) |
| 2021-07-06 18:31:42 | × | ahdyt quits (~ahdyt@103.105.35.78) (Client Quit) |
| 2021-07-06 18:33:27 | → | shapr` joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 2021-07-06 18:33:36 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection) |
| 2021-07-06 18:34:14 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2021-07-06 18:34:25 | → | beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
| 2021-07-06 18:34:26 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1) |
| 2021-07-06 18:35:17 | × | cuz quits (~user@38.140.58.234) (Ping timeout: 252 seconds) |
| 2021-07-06 18:35:26 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 2021-07-06 18:37:45 | → | qrpnxz joins (~qrpnxz@user/qrpnxz) |
| 2021-07-06 18:38:36 | <qrpnxz> | did you guys get my last message just now? client went wonky there |
| 2021-07-06 18:39:18 | <monochrom> | Last I got was <qrpnxz> alright gtg |
| 2021-07-06 18:39:25 | <qrpnxz> | thanks |
| 2021-07-06 18:39:42 | <qrpnxz> | dminuoso, "clang/gcc are quite good at local aggressive optimizations" getting back to this. I noticed a lot of the vector api is "do this, but without bound checks". Languages like Go and Rust are able to automatically ellide bound checks, but i guess this may not really be a thing in haskell? At least it generally doesn't matter because traverse is totally safe in that respect. |
| 2021-07-06 18:39:52 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 2021-07-06 18:39:54 | → | yauhsien joins (~yauhsien@61-231-39-135.dynamic-ip.hinet.net) |
| 2021-07-06 18:41:06 | <monochrom> | Go's and Rust's "a[i]" are compiler-generated code, so bound-check code or lack-of is in the hands of the compiler. |
| 2021-07-06 18:41:38 | <monochrom> | vector's code is library code, so bound-check code or lack-of is in the hands of the library code. |
| 2021-07-06 18:41:55 | <maerwald> | Don't remind me of Go slices... what an abomination |
| 2021-07-06 18:42:07 | <qrpnxz> | they are great :P |
| 2021-07-06 18:42:27 | <qrpnxz> | i implemented them in haskell and i am very happy about how they turned out |
| 2021-07-06 18:42:28 | <maerwald> | 20000 SO posts "what's the difference between an array and a slice in go?" |
| 2021-07-06 18:42:42 | <qrpnxz> | LOL why |
| 2021-07-06 18:42:47 | <qrpnxz> | just read the spec |
| 2021-07-06 18:42:53 | <qrpnxz> | it has the cleanest spec every written |
| 2021-07-06 18:42:59 | <maerwald> | go devs read specs? |
| 2021-07-06 18:43:05 | <qrpnxz> | hahaha |
| 2021-07-06 18:43:08 | <monochrom> | If SO existed in the 1970s, I would expect "what's the difference between array and pointer in C". |
| 2021-07-06 18:43:19 | <monochrom> | Indeed I guess it did happen on Usenet. |
| 2021-07-06 18:43:19 | <qrpnxz> | there |
All times are in UTC.