Logs: freenode/#haskell
| 2021-03-12 14:30:20 | <geekosaur> | nope |
| 2021-03-12 14:30:30 | <Gurkenglas_> | what is an example of such an exotic nonthunk part? |
| 2021-03-12 14:30:34 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 2021-03-12 14:30:40 | <geekosaur> | the nonthunk parts are actual values, pinned arrays, etc. |
| 2021-03-12 14:30:45 | <geekosaur> | not so exotic |
| 2021-03-12 14:30:58 | <geekosaur> | (pinned arrays are most commonly bytestrings) |
| 2021-03-12 14:31:43 | <Gurkenglas_> | what makes dumping the thunks technically hard? |
| 2021-03-12 14:31:59 | → | ADG1089__ joins (~aditya@223.226.229.230) |
| 2021-03-12 14:32:25 | → | joseph joins (~joseph@cpe-24-208-140-96.insight.res.rr.com) |
| 2021-03-12 14:32:27 | <Gurkenglas_> | couldnt one "just" pause the process, look over its ram, and dump every thunks? |
| 2021-03-12 14:32:38 | <geekosaur> | I doubt it |
| 2021-03-12 14:32:50 | joseph | is now known as Guest61892 |
| 2021-03-12 14:33:14 | <Gurkenglas_> | (so i can figure out the path by which that linked string gets onto my screen) |
| 2021-03-12 14:33:25 | <geekosaur> | you still have this assumption that you can reliably identify a thunk just by looking at it |
| 2021-03-12 14:33:32 | Guest61892 | is now known as swarmcollective |
| 2021-03-12 14:33:47 | <Gurkenglas_> | hmm. can i compile everything such that the thunks stay recognizable? |
| 2021-03-12 14:33:51 | <geekosaur> | sorry, just by looking at a random memory address, whether it's a thunk or not |
| 2021-03-12 14:35:18 | × | Guest76930 quits (~joseph@cpe-24-208-140-96.insight.res.rr.com) (Ping timeout: 246 seconds) |
| 2021-03-12 14:35:39 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Ping timeout: 246 seconds) |
| 2021-03-12 14:35:53 | <geekosaur> | do remember that the "shape" of a value is not described anywhere but in code related to that value, so you can't "just" scan through memory and take the things that "look like" thunks — they may well be values |
| 2021-03-12 14:36:32 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 2021-03-12 14:36:47 | × | Natch quits (~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
| 2021-03-12 14:37:09 | <Gurkenglas_> | what thunk might be not part of the "current pattern stack"? |
| 2021-03-12 14:37:20 | → | hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:4b06:962b:f728:a206) |
| 2021-03-12 14:37:27 | <geekosaur> | any thunk not currently being evaluated |
| 2021-03-12 14:38:43 | <geekosaur> | or for that matter any evaluated value not currently in use somewhere |
| 2021-03-12 14:40:11 | <geekosaur> | when your program starts, the pattern stack has "main" on it. if you want to trace through evaluation of thunks, there might be some way to instrument STG but I'd expect it to be fairly slow. |
| 2021-03-12 14:40:30 | <geekosaur> | but that won't let you scan, it'd just track evaluation of thunks |
| 2021-03-12 14:40:40 | <Gurkenglas_> | in "let x = [id] in fix (x !! 1)", x would leave the pattern stack before long, yes? |
| 2021-03-12 14:41:40 | <Gurkenglas_> | but any function that will ever be called again can be found somewhere in the pattern stack, right? |
| 2021-03-12 14:41:51 | → | nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com) |
| 2021-03-12 14:42:07 | → | Natch joins (~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) |
| 2021-03-12 14:42:41 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 2021-03-12 14:42:43 | <geekosaur> | no? the stack gets stuff pushed onto it as needed. that may cause some previously evaluated value to come back into the stack |
| 2021-03-12 14:43:01 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 2021-03-12 14:43:15 | <geekosaur> | you seem to want the stack to be a tree instead of a stack? |
| 2021-03-12 14:43:43 | → | Athas joins (athas@sigkill.dk) |
| 2021-03-12 14:44:14 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 2021-03-12 14:44:26 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed) |
| 2021-03-12 14:45:12 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 2021-03-12 14:45:15 | <Gurkenglas_> | ah so there's an implicit pattern tree and the stack is a path through that tree |
| 2021-03-12 14:45:48 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 2021-03-12 14:46:23 | <Gurkenglas_> | and all thunks in ram are somewhere on that tree |
| 2021-03-12 14:46:28 | <merijn> | Gurkenglas_: Haskell expressions are graphs |
| 2021-03-12 14:46:51 | <Gurkenglas_> | sure, replace tree with graph |
| 2021-03-12 14:47:42 | <merijn> | Gurkenglas_: The stack isn't really "a path through the graph". Evaluation causes (parts of) the graph to simplified/reduced |
| 2021-03-12 14:48:11 | → | Jd007 joins (~Jd007@162.156.11.151) |
| 2021-03-12 14:48:12 | <merijn> | The stack is to keep track of "how to continue when the current evaluation finishes" |
| 2021-03-12 14:48:18 | × | Jd007 quits (~Jd007@162.156.11.151) (Client Quit) |
| 2021-03-12 14:49:04 | × | ixlun quits (~user@109.249.184.132) (Read error: Connection reset by peer) |
| 2021-03-12 14:49:19 | × | nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 276 seconds) |
| 2021-03-12 14:49:40 | <Gurkenglas_> | and when that stack actually loops, that prints <loop>, but stacks depicting recursion are more of a spiral on that graph that would only become a loop if each node were projected onto the identifier that was unpacked to spawn that node |
| 2021-03-12 14:49:58 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 276 seconds) |
| 2021-03-12 14:50:08 | → | ixlun joins (~user@109.249.184.132) |
| 2021-03-12 14:50:48 | <Gurkenglas_> | (or rather it returns a bottom that shows as "<loop>") |
| 2021-03-12 14:51:51 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 2021-03-12 14:52:20 | <epicte7us> | guys guys, I just wrote my first Haskell program that uses the STM TChan, it's SO COOL. I've never done any multi-threaded progrmaming before -- SO COOL |
| 2021-03-12 14:52:28 | × | secdragon quits (~secdragon@185.204.1.185) (Remote host closed the connection) |
| 2021-03-12 14:53:55 | <merijn> | \o/ |
| 2021-03-12 14:53:59 | × | xff0x quits (~xff0x@2001:1a81:520c:1100:aa08:8f09:5c11:60cb) (Ping timeout: 272 seconds) |
| 2021-03-12 14:54:49 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 2021-03-12 14:55:15 | → | xff0x joins (xff0x@gateway/vpn/mullvad/xff0x) |
| 2021-03-12 14:57:00 | → | rj joins (~x@gateway/tor-sasl/rj) |
| 2021-03-12 14:57:25 | <Gurkenglas_> | alright so what i asked for is the spine of the Spineless Tagless G-machine. Would a spineful, tagful variant be more than a constant factor more expensive? |
| 2021-03-12 14:57:34 | → | bergey` joins (~user@107.181.19.30) |
| 2021-03-12 14:57:36 | → | Psybur joins (~user@unaffiliated/psybur) |
| 2021-03-12 14:57:56 | <Psybur> | How would I get stack to tell ghc to use --no-pie instead of -no-pie during linking? |
| 2021-03-12 14:59:02 | → | myShoggoth joins (~myShoggot@75.164.81.55) |
| 2021-03-12 14:59:08 | <Psybur> | Running into weird stuff on archlinux. I had to manually specify the linker path with -pgml just to get this far. Something doesnt seem right heh |
| 2021-03-12 14:59:32 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds) |
| 2021-03-12 15:00:09 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 2021-03-12 15:00:22 | × | xff0x quits (xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 276 seconds) |
| 2021-03-12 15:01:28 | → | xff0x joins (~xff0x@2001:1a81:520c:1100:aa08:8f09:5c11:60cb) |
| 2021-03-12 15:01:59 | <Gurkenglas_> | I've found lub to not fall to the counterexample I constructed yesterday. Just undefined `lub` fix (fmap (const 2)) actually comes out to Just hangs, not Just 2. |
| 2021-03-12 15:06:16 | → | idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 2021-03-12 15:07:17 | <nshepperd> | what's this lub |
| 2021-03-12 15:07:18 | × | marinelli quits (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2021-03-12 15:07:48 | → | graf_blutwurst joins (~user@2001:171b:226e:adc0:51ba:fe70:8240:4759) |
| 2021-03-12 15:08:13 | → | ketas1 joins (~ketas@37.120.211.188) |
| 2021-03-12 15:08:16 | → | nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com) |
| 2021-03-12 15:09:04 | <siraben> | nshepperd: least upper bound, probably. |
| 2021-03-12 15:09:18 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 2021-03-12 15:10:24 | <merijn> | Psybur: You are using the arch packages? |
| 2021-03-12 15:10:34 | <Psybur> | yes |
| 2021-03-12 15:11:16 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 2021-03-12 15:11:28 | <Gurkenglas_> | the least defined value that's more defined than both - lub ((),undefined) (undefined,()) = ((),()). I think the api deliberately doesnt say what it does on lub 1 2 |
| 2021-03-12 15:11:29 | <merijn> | Psybur: Yeah...those are entirely broken |
| 2021-03-12 15:11:58 | <merijn> | Psybur: Arch maintainers insist on installing a GHC that's broken when used "normally" |
| 2021-03-12 15:12:28 | <Psybur> | Strange. So I should uninstall stack and ghc and manually install stack? |
| 2021-03-12 15:12:46 | <merijn> | Psybur: The recommended solution is "don't use GHC installed by Arch" ;) |
| 2021-03-12 15:12:56 | <merijn> | Psybur: Stack *should* probably work |
| 2021-03-12 15:12:58 | × | nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 245 seconds) |
| 2021-03-12 15:13:19 | <Psybur> | Ok thanks |
| 2021-03-12 15:13:41 | <merijn> | Psybur: Because stack fetches and installs its own copy/copies of GHC |
| 2021-03-12 15:14:03 | <merijn> | Psybur: There's a section on the Arch wiki on Haskell |
| 2021-03-12 15:14:16 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 256 seconds) |
| 2021-03-12 15:14:59 | <merijn> | Psybur: Which should have more info. But the short summary is: GHC's default linking mode is static. Arch maintainers only install dynamic libraries for ideological reasons. So default invocations of GHC fail due to static libs not being installed/available. |
| 2021-03-12 15:15:31 | <nshepperd> | oh so lub is like race but recursively |
| 2021-03-12 15:16:32 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 256 seconds) |
| 2021-03-12 15:18:10 | <nshepperd> | lub seems like a dubious name given that there technically isn't always an upper bound |
All times are in UTC.