2021-08-18 00:05:13 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-08-18 00:08:49 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-18 00:12:20 +0200 | cheater | (~Username@user/cheater) |
2021-08-18 00:13:25 +0200 | benin036932 | (~benin@183.82.178.142) (Ping timeout: 268 seconds) |
2021-08-18 00:14:10 +0200 | aarvar | (~aaron@2601:602:a080:fa0:c9d0:9f94:946c:b2f0) (Ping timeout: 240 seconds) |
2021-08-18 00:17:36 +0200 | <lechner> | Hi, in source files, are SQL queries best entered as mklti-line strings? |
2021-08-18 00:17:45 +0200 | <lechner> | multi |
2021-08-18 00:18:20 +0200 | <monochrom> | Depends on whether it looks nicer? |
2021-08-18 00:18:41 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 248 seconds) |
2021-08-18 00:19:29 +0200 | michalz | (~michalz@185.246.204.62) (Remote host closed the connection) |
2021-08-18 00:20:10 +0200 | benin036932 | (~benin@183.82.178.142) |
2021-08-18 00:20:39 +0200 | dajoer | (~david@user/gvx) |
2021-08-18 00:20:47 +0200 | <lechner> | it's too long for a single line. is there an alternative? |
2021-08-18 00:20:51 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-18 00:21:10 +0200 | <monochrom> | Then make it multi-line. |
2021-08-18 00:21:34 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-08-18 00:22:13 +0200 | <lechner> | ouay, thanus! |
2021-08-18 00:22:25 +0200 | <lechner> | okay thanks! |
2021-08-18 00:22:41 +0200 | <lechner> | changed some keks |
2021-08-18 00:22:41 +0200 | <sm> | I often do s = unlines [ |
2021-08-18 00:22:41 +0200 | <sm> | ... |
2021-08-18 00:22:41 +0200 | <sm> | ] |
2021-08-18 00:22:59 +0200 | <lechner> | sm: i liue that! |
2021-08-18 00:23:04 +0200 | <lechner> | like |
2021-08-18 00:23:06 +0200 | <sm> | there are nice libs like `here` but they bring complications |
2021-08-18 00:23:51 +0200 | <lechner> | as a previous Perl addict, i'll explore |
2021-08-18 00:24:19 +0200 | <sm> | quasiquoter, so maybe less well supported by some |
2021-08-18 00:24:19 +0200 | <sm> | platforms/some tools, eg |
2021-08-18 00:24:45 +0200 | <monochrom> | unlines inserts newlines. not sure you want newlines in the middle of a SQL query. |
2021-08-18 00:24:59 +0200 | <sm> | and just another dependency, so another source of problems |
2021-08-18 00:25:34 +0200 | <lechner> | hm |
2021-08-18 00:25:49 +0200 | <sm> | oh I think those are fine for postgres at least ? if not then yes, unwords |
2021-08-18 00:27:23 +0200 | <monochrom> | unwords is more intuitive, yeah, you do expect to insert a space into ["select", "foo", "where"], which even multi-line string doesn't do for you and you'll be puzzled. |
2021-08-18 00:27:57 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b955208843bbbc6b733a4.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2021-08-18 00:28:26 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-18 00:29:10 +0200 | <monochrom> | ah I guess SQL uses ; to mark the end, so it is happy with newlines left right and centre. |
2021-08-18 00:29:27 +0200 | <hpc> | left right and inner |
2021-08-18 00:30:22 +0200 | <sm> | it's nice to see a a big query nicely formatted on multiple lines in logs, when debugging etc |
2021-08-18 00:30:26 +0200 | <hpc> | i vote multiline strings |
2021-08-18 00:30:40 +0200 | <hpc> | it's a bit ugly, but having to faff about with list syntax is worse imo |
2021-08-18 00:31:11 +0200 | <sm> | hpc: what kind are those again ? something with / line endings ? |
2021-08-18 00:31:35 +0200 | <monochrom> | \ |
2021-08-18 00:31:48 +0200 | <monochrom> | "hello I am \ |
2021-08-18 00:31:53 +0200 | <monochrom> | \monochrom" |
2021-08-18 00:32:58 +0200 | <sm> | yeah those seem really ugly and tool-unfriendly but I will give it another try |
2021-08-18 00:33:20 +0200 | <monochrom> | In fact, it doesn't have to have a newline in the middle. It's generally \whitespaces\ |
2021-08-18 00:33:32 +0200 | <monochrom> | > "hello I am \ \monochrom" |
2021-08-18 00:33:34 +0200 | <lambdabot> | "hello I am monochrom" |
2021-08-18 00:34:36 +0200 | <hpc> | in my experience the only tool that matters is ghc :P |
2021-08-18 00:35:00 +0200 | <sm> | hm, not for me |
2021-08-18 00:35:09 +0200 | <monochrom> | I would blame it on the tools if they're unfriendly to a piece of very-standardized-for-over-20-years Haskell syntax that merely needs a simple regex to recognize. |
2021-08-18 00:35:30 +0200 | hiruji` | (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-08-18 00:35:40 +0200 | fernand | (~fernand@179.156.35.4) (Ping timeout: 240 seconds) |
2021-08-18 00:35:42 +0200 | <monochrom> | We are not even talking about recognizing layouts. |
2021-08-18 00:35:58 +0200 | <sm> | ha, surely a simple regex will solve everything |
2021-08-18 00:36:25 +0200 | <hpc> | it'll certainly solve most regular problems :P |
2021-08-18 00:36:28 +0200 | <monochrom> | But emacs haskell-mode works pretty much correctly with this one. |
2021-08-18 00:37:10 +0200 | <glguy> | My vim recognizes haskell's multiline strings. I forget if that's default or not though |
2021-08-18 00:37:12 +0200 | <monochrom> | It does still have a bug but it can be mitigated by deleting and re-inserting some double quotes. |
2021-08-18 00:38:15 +0200 | <sm> | these paper cuts add up |
2021-08-18 00:38:37 +0200 | <hpc> | my vim gets confused sometimes by multiline strings, but that's just syntax highlighting |
2021-08-18 00:38:37 +0200 | <sm> | i'd be interested to know what percentage of haskell projects use that syntax |
2021-08-18 00:38:46 +0200 | <hpc> | my ide is a vertical split terminal with ghci on one side |
2021-08-18 00:38:52 +0200 | <glguy> | I redid the haskell.vim syntax highlighting locally |
2021-08-18 00:39:22 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-08-18 00:41:01 +0200 | <sm> | hpc: not even ghcid ? brutal :) |
2021-08-18 00:41:33 +0200 | <monochrom> | I haven't needed ghcid since -fdefer-type-errors was introduced. |
2021-08-18 00:41:44 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-08-18 00:42:22 +0200 | <hpc> | i like minimalism |
2021-08-18 00:42:30 +0200 | <glguy> | Just having ghcid's reload-on-save behavior changes the way I write Haskell |
2021-08-18 00:42:56 +0200 | <hpc> | (also i have learned minimalism over time - sometimes i use vi instead of vim because i don't know what's installed) |
2021-08-18 00:43:20 +0200 | <monochrom> | I use vim.tiny. vi lacks cursor keys. |
2021-08-18 00:43:54 +0200 | <hpc> | it's probably vim.tiny, just whatever the distro's /bin/vi is |
2021-08-18 00:44:03 +0200 | fendor | (~fendor@77.119.161.62.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-08-18 00:44:13 +0200 | <monochrom> | Either that, or it lacks supporting cursor keys when in insert mode. |
2021-08-18 00:44:42 +0200 | <hpc> | it's both - i remember using real vi aaaaaages ago |
2021-08-18 00:45:14 +0200 | <sm> | cursor keys are always broken one way or another |
2021-08-18 00:45:25 +0200 | <sm> | it's a law |
2021-08-18 00:45:53 +0200 | <hpc> | sometimes i enjoy when they don't work |
2021-08-18 00:46:00 +0200 | <hpc> | once i put the konami code in my ssh password |
2021-08-18 00:46:12 +0200 | <sm> | in terminals, at least |
2021-08-18 00:46:28 +0200 | <monochrom> | hahaha |
2021-08-18 00:52:40 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-18 00:52:42 +0200 | <pompez> | Hi, new and learning Haskell. I am wondering -- why does the this short snippet (https://paste.tomsmeding.com/6iIA5HM8) evaluate as I'd expect it to? I'd expect 2 input prompts and then evaluating as a 2 elements long IO [String]. But the program just doesn't stop with the prompts. Could it be something about IO that prevents it from being lazily evaluated? |
2021-08-18 00:53:11 +0200 | <pompez> | *doesn't |
2021-08-18 00:53:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 00:54:11 +0200 | <hpc> | you're mixing evaluation and execution |
2021-08-18 00:54:39 +0200 | <hpc> | execution is strict (unless you use a few specific definitions that use lazy IO) |
2021-08-18 00:55:10 +0200 | <sclv> | sequence just runs the io actions one after the other |
2021-08-18 00:55:38 +0200 | <hpc> | and since you use repeat, it's going to keep asking forever |
2021-08-18 00:56:04 +0200 | <hpc> | now what you can do is write something like do {lineActions <- repeat getLine; sequence (take 2 lineActions)} |
2021-08-18 00:56:19 +0200 | <hpc> | er |
2021-08-18 00:56:22 +0200 | <pompez> | I tried that and it worked as expected |
2021-08-18 00:56:37 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 00:56:40 +0200 | <hpc> | that first line is let ...=... but you know what i mean |
2021-08-18 00:56:54 +0200 | <pompez> | I do |
2021-08-18 00:56:59 +0200 | <monochrom> | You're expecting the equivalent of: if you have "main = getLine >> getLine >> return ()", it will never need any input from you. |
2021-08-18 00:57:01 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-08-18 00:57:07 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
2021-08-18 00:57:07 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 00:57:39 +0200 | <monochrom> | I can respect that expectation if you don't know better a priori, but one single empirical test readily debunks that mental model. |
2021-08-18 00:58:51 +0200 | <monochrom> | Let's get more whimsical and philosophical. If you have "main = putStrLn "hello"" and run it but you don't look, does the printing happen? |
2021-08-18 00:59:17 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-18 00:59:23 +0200 | <pompez> | monochrom: That example (with a test) really helps |
2021-08-18 00:59:25 +0200 | jay-invariant | (~jay@c-24-4-6-169.hsd1.ca.comcast.net) (Quit: Leaving) |
2021-08-18 00:59:26 +0200 | <sclv> | i'd need to look to find out :-) |
2021-08-18 00:59:37 +0200 | <sclv> | like maybe the computer caught fire |
2021-08-18 00:59:44 +0200 | <pompez> | Hah |
2021-08-18 01:00:09 +0200 | <hpc> | @quote warm |
2021-08-18 01:00:10 +0200 | <lambdabot> | edwardk says: i think the comonads are warm fuzzy, and the monads are warm sticky. its easy to get out of a comonad, its soft and you like wearing it. monads on the other hand stick to you and are |
2021-08-18 01:00:10 +0200 | <lambdabot> | icky |
2021-08-18 01:00:18 +0200 | <pompez> | Well, but would it be impossible to do inputs in a lazy manner? |
2021-08-18 01:00:28 +0200 | sclv | has debugged far too many things to trust anything happens |
2021-08-18 01:00:33 +0200 | <monochrom> | That's the realm of getContents. |
2021-08-18 01:00:59 +0200 | <hpc> | @quote 286.ghc |
2021-08-18 01:00:59 +0200 | <lambdabot> | cjeris says: vincenz: no, on a 286 GHC feels warm, like a little fire you can warm your hands at. wait, that smells funny. wait, that was my CPU. |
2021-08-18 01:01:18 +0200 | <monochrom> | I generally discourage it unless you have proved that you can perfectly predict lazy evaluation. |
2021-08-18 01:01:19 +0200 | <sclv> | you can look at the source of sequence, and write a similar version that calls `unsafePerformIO` every time it actually executes an IO action, and that would correspond to what you're looking for |
2021-08-18 01:01:25 +0200 | <sclv> | but I do _not_ recommend this in practice :-) |
2021-08-18 01:01:49 +0200 | <hpc> | more directly, there's unsafeInterleaveIO |
2021-08-18 01:02:06 +0200 | <sclv> | oh right, i meant to say interleave rather than what i did |
2021-08-18 01:02:41 +0200 | <hpc> | and just to emphasize, the word "unsafe" there is not just for fun |
2021-08-18 01:02:51 +0200 | <pompez> | Well, I am not intending to do something just because. But why is it not used in practice? |
2021-08-18 01:02:52 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-08-18 01:02:58 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-08-18 01:03:08 +0200 | <sclv> | unsafeInterleaveIO basically takes an `IO a` and "delays" it so that when you get the `a` out of it, it doesn't actually perform the IO action until the `a` is evaluated. So hrm... you could map unsafeInterleave over your list, then sequence it..? |
2021-08-18 01:03:22 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
2021-08-18 01:03:29 +0200 | <hpc> | pompez: evaluation order isn't guaranteed, so tying execution to evaluation makes execution order not guaranteed |
2021-08-18 01:03:34 +0200 | <sclv> | its not used in practice because predicting evaluation order is tricky, and can lead to surprising effects, even for seasoned programmers |
2021-08-18 01:04:01 +0200 | <sclv> | and at times things may be repeatedly executed you expected to only be executed once, or things you thought would be executed never are |
2021-08-18 01:04:07 +0200 | <monochrom> | We want I/O to jump-start lazy evaluation (lest there is really nothing to evaluate). This is simplest if I/O is not lazy. |
2021-08-18 01:04:31 +0200 | <sclv> | so the sequencing the IO monad provides gives nice guardrails that help reasoning |
2021-08-18 01:04:34 +0200 | <pompez> | Makes sense |
2021-08-18 01:04:35 +0200 | <monochrom> | Besides, we don't really want to answer the kind of whimsical philosophical question I posed. |
2021-08-18 01:05:05 +0200 | <monochrom> | "if no one is looking, should getLine and putStrLn do anything?" |
2021-08-18 01:05:24 +0200 | <monochrom> | You don't want to go down that rabbit hole. They do their jobs here and now. KISS. |
2021-08-18 01:05:27 +0200 | <sclv> | (note: I have used and do use these primitives carefully, and in situations that warrant it, but only after thinking really hard, consulting, and deciding it actually makes sense. and even then i've made mistakes and been surprised) |
2021-08-18 01:05:44 +0200 | Cajun | (~Cajun@user/cajun) (Quit: Client closed) |
2021-08-18 01:05:55 +0200 | Guest84 | (~Guest84@2406:3003:2006:447e:a859:4a56:2629:b84e) |
2021-08-18 01:07:27 +0200 | <pompez> | Could you maybe recommend a good resource that talks about evaluationand execution as it pertains to Haskell? |
2021-08-18 01:08:57 +0200 | <sclv> | https://www.seas.upenn.edu/~cis194/fall16/lectures/06-io-and-monads.html ? |
2021-08-18 01:09:07 +0200 | <sclv> | I suggest playing around yourself just a little longer as you have been |
2021-08-18 01:09:15 +0200 | <sclv> | and you'll probably get a good intuition fast |
2021-08-18 01:10:53 +0200 | <pompez> | Will do |
2021-08-18 01:10:57 +0200 | <pompez> | And thanks a lot |
2021-08-18 01:13:55 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-18 01:20:17 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-08-18 01:20:35 +0200 | <Cale> | pompez: Evaluation is the process of turning expressions into values, typically for the purposes of deciding which pattern matches, or occasionally in order to turn an expression of a function type into a lambda so that it can be applied. |
2021-08-18 01:20:59 +0200 | <Cale> | pompez: In Haskell, that process doesn't cause anything user-visible to happen apart from memory being allocated and the CPU getting hot. |
2021-08-18 01:22:15 +0200 | <Cale> | Instead, IO action values describe effects. Evaluating the expression for an IO action doesn't cause the effect to occur, it just possibly does some work to figure out which thing to do is being described. |
2021-08-18 01:23:03 +0200 | <Cale> | Execution is the process of carrying out the effects described by IO action values. In a compiled program, the IO action called 'main' gets executed, and you can also execute IO actions by giving them to ghci. |
2021-08-18 01:23:53 +0200 | aarvar | (~aaron@2601:602:a080:fa0:2492:1e35:77f6:26e2) |
2021-08-18 01:24:11 +0200 | <Cale> | (It will magically notice when an expression denotes an IO action and execute it for you as well as print the result of the execution. Otherwise, it just tries to use 'show' on things to turn them into a String to print.) |
2021-08-18 01:25:15 +0200 | <hpc> | one useful thing to note here is that there's no in-language notion of "just execute this" - just sequencing which is "after this executes, execute this" |
2021-08-18 01:25:22 +0200 | Matthia__ | (~Matthias1@2603-8001-b545-4900-55c2-9e3a-8dc6-4263.res6.spectrum.com) (Remote host closed the connection) |
2021-08-18 01:25:47 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-08-18 01:25:48 +0200 | <hpc> | and no in-language notion of "just evaluate this" either - just "in order to evaluate this, you need to evaluate that" |
2021-08-18 01:25:55 +0200 | <Cale> | Yeah, do-blocks let you combine a bunch of IO actions to produce another IO action, and those are syntax sugar for a chain of uses of (>>=) which basically does the same. |
2021-08-18 01:26:01 +0200 | argento | (~argent0@168-227-97-23.ptr.westnet.com.ar) |
2021-08-18 01:26:02 +0200 | Matthias1 | (~Matthias1@2603-8001-b545-4900-55c2-9e3a-8dc6-4263.res6.spectrum.com) |
2021-08-18 01:27:10 +0200 | <hpc> | and when you're figuring out how something gets evaluated, think in terms of chains of those if-thens |
2021-08-18 01:27:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-18 01:28:52 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 245 seconds) |
2021-08-18 01:29:03 +0200 | <hpc> | (also when someone says "expr is strict in x", they're saying "in order to evaluate expr, you need to evaluate x") |
2021-08-18 01:29:50 +0200 | superbil | (~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 252 seconds) |
2021-08-18 01:30:52 +0200 | Matthias1 | (~Matthias1@2603-8001-b545-4900-55c2-9e3a-8dc6-4263.res6.spectrum.com) (Ping timeout: 245 seconds) |
2021-08-18 01:32:27 +0200 | <lbseale> | I am using haddock to generate some docs, and it's working, but it's ignoring my input for the title. Instead of the title it just says "ml" in the top-left. Anyone know what to do? |
2021-08-18 01:32:33 +0200 | <pompez> | Cale: Are list comprehensions with <- also just synax sugar for the same thing? |
2021-08-18 01:33:35 +0200 | <Cale> | pompez: Basically. You could also desugar them in terms of concatMap, but that is equivalent to the (>>=) for lists. |
2021-08-18 01:33:59 +0200 | Gurkenglas_ | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-08-18 01:34:19 +0200 | <hpc> | [f x | x <- something; boolean expression] translates to do {x <- something; guard (boolean expression); pure (f x)} |
2021-08-18 01:34:26 +0200 | <monochrom> | Instead of answering that question, I would evade it and answer "the generated asm code is the same", and "does it really matter how to compiler gets there?" |
2021-08-18 01:34:27 +0200 | <lambdabot> | Alternative f => Bool -> f () |
2021-08-18 01:35:00 +0200 | <hpc> | there's a language extension that makes list comprehensions work for more than just lists, but it's a bit of a gimmick |
2021-08-18 01:35:06 +0200 | <monochrom> | or at least, s/the generated asm code/after optimizations, the generated asm code/ |
2021-08-18 01:35:17 +0200 | <hpc> | i like do notation better, personally |
2021-08-18 01:35:58 +0200 | <monochrom> | s/how to compiler/how the compiler/ |
2021-08-18 01:35:58 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) |
2021-08-18 01:37:10 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-08-18 01:41:43 +0200 | polyphem | (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) |
2021-08-18 01:45:55 +0200 | slack1256 | (~slack1256@181.203.101.233) (Ping timeout: 268 seconds) |
2021-08-18 01:48:10 +0200 | pompez | (~martin@user/pompez) (Ping timeout: 240 seconds) |
2021-08-18 01:50:57 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 245 seconds) |
2021-08-18 01:57:02 +0200 | superbil | (~superbil@1-34-176-171.HINET-IP.hinet.net) |
2021-08-18 01:57:25 +0200 | Matthias1 | (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com) |
2021-08-18 01:59:46 +0200 | fernand | (~fernand@179.156.35.4) |
2021-08-18 01:59:56 +0200 | thyriaen | (~thyriaen@x4dbf521a.dyn.telefonica.de) |
2021-08-18 02:00:24 +0200 | Matthias1 | (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com) (Remote host closed the connection) |
2021-08-18 02:00:27 +0200 | fabfianda | (~fabfianda@mob-5-91-112-128.net.vodafone.it) (Remote host closed the connection) |
2021-08-18 02:00:57 +0200 | polyphem | (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2021-08-18 02:01:47 +0200 | Matthias1 | (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com) |
2021-08-18 02:03:46 +0200 | polyphem | (~polyphem@2a00:20:c044:9066:4432:d689:6451:b719) |
2021-08-18 02:07:13 +0200 | fabfianda | (~fabfianda@mob-5-91-112-128.net.vodafone.it) |
2021-08-18 02:10:48 +0200 | Guest84 | (~Guest84@2406:3003:2006:447e:a859:4a56:2629:b84e) (Quit: Client closed) |
2021-08-18 02:12:12 +0200 | polyphem | (~polyphem@2a00:20:c044:9066:4432:d689:6451:b719) (Ping timeout: 245 seconds) |
2021-08-18 02:13:02 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 02:16:40 +0200 | aarvar | (~aaron@2601:602:a080:fa0:2492:1e35:77f6:26e2) (Ping timeout: 240 seconds) |
2021-08-18 02:16:48 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 02:20:40 +0200 | fernand | (~fernand@179.156.35.4) (Ping timeout: 240 seconds) |
2021-08-18 02:20:56 +0200 | Xnuk | (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in) |
2021-08-18 02:21:12 +0200 | Xnuk | (~xnuk@vultr.xnu.kr) |
2021-08-18 02:22:41 +0200 | <lechner> | Hi, i can't find much documentation or many examples for here/heredoc. Do any of them support the pipe-less syntax shown here? https://www.reddit.com/r/haskell/comments/8ereh/a_here_document_syntax/c091t96 |
2021-08-18 02:23:11 +0200 | chomwitt | (~chomwitt@ppp-94-67-193-240.home.otenet.gr) (Remote host closed the connection) |
2021-08-18 02:24:12 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 245 seconds) |
2021-08-18 02:27:58 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-18 02:29:43 +0200 | <lechner> | never mind, i think Data.String.Here does! |
2021-08-18 02:31:25 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 244 seconds) |
2021-08-18 02:39:53 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-08-18 02:46:40 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 240 seconds) |
2021-08-18 02:47:57 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds) |
2021-08-18 03:04:19 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-18 03:09:12 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds) |
2021-08-18 03:15:36 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2021-08-18 03:16:57 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-18 03:18:46 +0200 | tabemann_ | tabemann |
2021-08-18 03:20:30 +0200 | Cajun | (~Cajun@user/cajun) |
2021-08-18 03:24:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 03:26:32 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-08-18 03:36:53 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-08-18 03:41:10 +0200 | pbrisbin | (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-08-18 03:47:45 +0200 | keutoi | (~keutoi@157.48.90.57) |
2021-08-18 03:47:55 +0200 | xff0x | (~xff0x@2001:1a81:535d:2700:6b08:445c:db9b:4d20) (Ping timeout: 258 seconds) |
2021-08-18 03:48:00 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
2021-08-18 03:49:38 +0200 | xff0x | (~xff0x@2001:1a81:5394:ea00:e22:1073:dc28:9e41) |
2021-08-18 03:50:50 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) |
2021-08-18 03:58:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-18 03:59:40 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-08-18 04:00:53 +0200 | alx741 | (~alx741@181.196.68.125) (Quit: alx741) |
2021-08-18 04:01:44 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-18 04:11:13 +0200 | td_ | (~td@muedsl-82-207-238-133.citykom.de) (Ping timeout: 248 seconds) |
2021-08-18 04:12:16 +0200 | ahlk | (~user@2600:1700:31c0:3a10::48) |
2021-08-18 04:13:11 +0200 | td_ | (~td@94.134.91.158) |
2021-08-18 04:15:38 +0200 | thyriaen_ | (~thyriaen@dynamic-077-013-081-232.77.13.pool.telefonica.de) |
2021-08-18 04:16:48 +0200 | sleblanc | (~sleblanc@user/sleblanc) |
2021-08-18 04:17:18 +0200 | rubix | (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) |
2021-08-18 04:19:10 +0200 | thyriaen | (~thyriaen@x4dbf521a.dyn.telefonica.de) (Ping timeout: 240 seconds) |
2021-08-18 04:22:05 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-08-18 04:22:05 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (zinc.libera.chat (Nickname regained by services))) |
2021-08-18 04:22:05 +0200 | finn_elija | FinnElija |
2021-08-18 04:23:05 +0200 | thyriaen_ | (~thyriaen@dynamic-077-013-081-232.77.13.pool.telefonica.de) (Remote host closed the connection) |
2021-08-18 04:23:40 +0200 | benin036932 | (~benin@183.82.178.142) (Ping timeout: 240 seconds) |
2021-08-18 04:27:25 +0200 | Matthias1 | (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com) (Read error: Connection reset by peer) |
2021-08-18 04:28:03 +0200 | Matthias1 | (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) |
2021-08-18 04:30:24 +0200 | hiruji | (~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-08-18 04:30:38 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-08-18 04:30:39 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-08-18 04:30:42 +0200 | allbery_b | geekosaur |
2021-08-18 04:36:27 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-18 04:38:18 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-08-18 04:41:33 +0200 | obs | (~obscur1ty@user/obs/x-5924898) (Read error: Connection reset by peer) |
2021-08-18 04:46:25 +0200 | <lechner> | Hi, could someone please explain this error with postgres-simple? https://paste.debian.net/1208064/ |
2021-08-18 04:48:20 +0200 | <Axman6> | you probably need to add a type annotation so the compiler knows what type you actually want |
2021-08-18 04:48:38 +0200 | <lechner> | where, though? |
2021-08-18 04:49:01 +0200 | <c_wraith> | anywhere that specifies it |
2021-08-18 04:49:21 +0200 | <lechner> | output? |
2021-08-18 04:49:29 +0200 | <c_wraith> | type inference means you can mention the type anywhere and it will be plumbed through appropriately |
2021-08-18 04:49:33 +0200 | <Axman6> | (rows :: [Foo]) <- query... or something. that might need a language extension though |
2021-08-18 04:50:09 +0200 | <Axman6> | if you use `rows` somewhere, you can also add it there by replacing `rows` with `(rows :: [Foo])` |
2021-08-18 04:51:24 +0200 | Seby | (~Seby@115.98.232.63) |
2021-08-18 04:51:40 +0200 | <lechner> | what's the easiest way to print rows? i think it's a [String] |
2021-08-18 04:52:06 +0200 | <c_wraith> | (mapM_ putStrLn) ? |
2021-08-18 04:52:25 +0200 | <c_wraith> | and... it's probably not a [String] |
2021-08-18 04:52:47 +0200 | <c_wraith> | I don't think that instance exists |
2021-08-18 04:53:49 +0200 | <c_wraith> | lechner: it's polymorphic in the return type. it can be anything that has an appropriate instance |
2021-08-18 04:54:08 +0200 | <lechner> | yeah, i get that |
2021-08-18 04:54:16 +0200 | <c_wraith> | though it will have runtime errors if the instance doesn't fit the returned data |
2021-08-18 04:54:42 +0200 | <lechner> | i just cant figure out what i will get back |
2021-08-18 04:55:24 +0200 | <c_wraith> | then how could the compiler? :P |
2021-08-18 04:56:04 +0200 | <c_wraith> | the fact is, we can't tell you. |
2021-08-18 04:56:10 +0200 | <c_wraith> | it depends on the query |
2021-08-18 04:56:34 +0200 | <lechner> | yeah it's my first time with pg-simple |
2021-08-18 04:56:56 +0200 | <c_wraith> | for quick'n'dirty, you probably want a tuple type |
2021-08-18 04:57:14 +0200 | <c_wraith> | with a number of elements matching the number of things you're selecting, and appropriate types for each element |
2021-08-18 04:57:16 +0200 | <lechner> | single column |
2021-08-18 04:58:05 +0200 | <lechner> | https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#t… |
2021-08-18 04:58:11 +0200 | <lechner> | sorry |
2021-08-18 04:58:38 +0200 | <c_wraith> | You probably want the 1-tuple, then. https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#t… |
2021-08-18 04:59:21 +0200 | <c_wraith> | try mapM_ (putStrLn . fromOnly) |
2021-08-18 04:59:32 +0200 | <Axman6> | yeah I was going to say, Only will be the type you need |
2021-08-18 04:59:49 +0200 | <Axman6> | so it'll return Only String's |
2021-08-18 04:59:53 +0200 | <lechner> | Only or [Only String] ? |
2021-08-18 05:00:09 +0200 | <c_wraith> | r ~ Only String |
2021-08-18 05:00:18 +0200 | <c_wraith> | the return type is IO [r] |
2021-08-18 05:03:33 +0200 | rubix | (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) (ERC (IRC client for Emacs 28.0.50)) |
2021-08-18 05:03:47 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-18 05:04:49 +0200 | <lechner> | it's magic! the calls to fromOnly inside mapM_ were enough to compile |
2021-08-18 05:04:59 +0200 | <c_wraith> | the advantage of printing with (mapM_ (putStrLn . fromOnly)) is that type inference means that it uniquely identifies the type of r |
2021-08-18 05:05:15 +0200 | <lechner> | yeah, it's amazing! |
2021-08-18 05:05:34 +0200 | <lechner> | which way of printin wuold not do so? |
2021-08-18 05:05:40 +0200 | <lechner> | printing |
2021-08-18 05:05:49 +0200 | <lechner> | would |
2021-08-18 05:06:04 +0200 | <c_wraith> | replacing putStrLn with print would leave the type ambiguous |
2021-08-18 05:06:24 +0200 | <c_wraith> | or just using (mapM_ print) |
2021-08-18 05:06:27 +0200 | iqubic | (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) |
2021-08-18 05:06:41 +0200 | <c_wraith> | it would *work*, but the types wouldn't be inferred |
2021-08-18 05:07:57 +0200 | Skyfire | (~pyon@user/pyon) (Quit: WeeChat 3.2) |
2021-08-18 05:08:21 +0200 | Skyfire | (~pyon@user/pyon) |
2021-08-18 05:08:53 +0200 | <lechner> | unfortunately the query result is wrong. can -simple pass Pg array types? |
2021-08-18 05:09:11 +0200 | <lechner> | the query is otherwise tested |
2021-08-18 05:09:17 +0200 | <lechner> | and short |
2021-08-18 05:10:24 +0200 | <c_wraith> | looks like it |
2021-08-18 05:10:28 +0200 | <c_wraith> | https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple-Types.… |
2021-08-18 05:12:01 +0200 | hueso | (~root@user/hueso) (Ping timeout: 248 seconds) |
2021-08-18 05:14:35 +0200 | hueso | (~root@user/hueso) |
2021-08-18 05:17:26 +0200 | sim590 | (~simon@modemcable090.207-203-24.mc.videotron.ca) (Quit: WeeChat 2.9) |
2021-08-18 05:19:32 +0200 | simon1 | (~simon@modemcable090.207-203-24.mc.videotron.ca) |
2021-08-18 05:19:50 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 05:20:08 +0200 | <lechner> | Is there an easier way to write this? mapM_ (putStrLn $) (map ("Need " <>) $ map fromOnly rows |
2021-08-18 05:21:21 +0200 | <c_wraith> | well, a left section of ($) is always redundant |
2021-08-18 05:21:49 +0200 | <lechner> | point taken |
2021-08-18 05:22:12 +0200 | <c_wraith> | and then you have three consecutive maps. well, one is a mapM_, but that could be written as sequence_ . map |
2021-08-18 05:22:20 +0200 | <c_wraith> | you can always fuse consecutive maps |
2021-08-18 05:22:43 +0200 | <c_wraith> | mapM_ (putStrLn . ("Need " <>) . fromOnly) rows |
2021-08-18 05:22:47 +0200 | <Axman6> | that's mapM_ (putStrLn . ("Need "<>) . fromOnly) rows |
2021-08-18 05:23:09 +0200 | Axman6 | highfives c_wraith |
2021-08-18 05:23:12 +0200 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-08-18 05:23:24 +0200 | <lechner> | i had a problem with the operator precedence of <> vs unapplied fromOnly |
2021-08-18 05:23:41 +0200 | <lechner> | i see |
2021-08-18 05:23:47 +0200 | <lechner> | TIL |
2021-08-18 05:23:47 +0200 | <c_wraith> | that should be irrelevant when using a section |
2021-08-18 05:25:06 +0200 | <lechner> | Axman6: thanks! it must be painful to watch |
2021-08-18 05:26:10 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 240 seconds) |
2021-08-18 05:28:05 +0200 | monochrom | (trebla@216.138.220.146) |
2021-08-18 05:29:15 +0200 | <lechner> | c_wraith: thank you so much for your help! i have a VALUES vs unnest() problem but will have to solve that later tonight. great progress! |
2021-08-18 05:33:27 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-08-18 05:35:14 +0200 | jamie101 | (~jamie101@pa49-199-6-183.pa.vic.optusnet.com.au) |
2021-08-18 05:39:09 +0200 | jamie101 | (~jamie101@pa49-199-6-183.pa.vic.optusnet.com.au) () |
2021-08-18 05:47:01 +0200 | aarvar | (~aaron@2601:602:a080:fa0:d9cd:315e:aa0a:fa0) |
2021-08-18 05:47:28 +0200 | aarvar | (~aaron@2601:602:a080:fa0:d9cd:315e:aa0a:fa0) (Client Quit) |
2021-08-18 05:47:57 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
2021-08-18 05:50:07 +0200 | falafel | (~falafel@2601:483:4e00:2b20:e0f3:c7c1:91ca:fe6e) |
2021-08-18 05:50:58 +0200 | u0_a253 | (~u0_a253@2402:9d80:247:f919:764b:d5cb:dc9:2b1d) |
2021-08-18 05:51:35 +0200 | <u0_a253> | hello world |
2021-08-18 05:54:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 05:55:33 +0200 | <lechner> | Hi, is [1, 2, 3] the same as [(1), (2), (3)] please? |
2021-08-18 05:56:02 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 05:56:24 +0200 | <lechner> | it's for this with one column https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple-Types.… |
2021-08-18 05:58:24 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-18 05:59:14 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2021-08-18 06:00:03 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-18 06:02:53 +0200 | mei | (~mei@user/mei) |
2021-08-18 06:04:07 +0200 | <int-e> | lechner: yes to your question, but it's not applicable to the documentation, which has a list of tuples, more like [(1,2), (3,4)] |
2021-08-18 06:04:25 +0200 | <int-e> | > length [(1,2),(3,4)] |
2021-08-18 06:04:27 +0200 | <lambdabot> | 2 |
2021-08-18 06:04:44 +0200 | <lechner> | int-e: what if my tuples contain only one element each? |
2021-08-18 06:05:03 +0200 | <int-e> | > [(1),(2),(3),(4)] |
2021-08-18 06:05:05 +0200 | <lambdabot> | [1,2,3,4] |
2021-08-18 06:05:16 +0200 | <int-e> | I already said yes :-/ |
2021-08-18 06:06:03 +0200 | severen | (~severen@202.36.179.72) |
2021-08-18 06:07:02 +0200 | <lechner> | am i not doing the same thing as the example? https://paste.debian.net/1208072/ |
2021-08-18 06:12:04 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-08-18 06:17:09 +0200 | <oak-> | >[(1,),(2,),(3,),(4,)] |
2021-08-18 06:17:33 +0200 | <oak-> | > [(1,),(2,),(3,),(4,)] |
2021-08-18 06:17:35 +0200 | <lambdabot> | error: |
2021-08-18 06:17:35 +0200 | <lambdabot> | • No instance for (Typeable t0) |
2021-08-18 06:17:35 +0200 | <lambdabot> | arising from a use of ‘show_M72548533020348860047’ |
2021-08-18 06:18:11 +0200 | <glguy> | > (1,) 2 |
2021-08-18 06:18:13 +0200 | <lambdabot> | (1,2) |
2021-08-18 06:18:59 +0200 | <glguy> | > (,1) 2 |
2021-08-18 06:19:01 +0200 | <lambdabot> | (2,1) |
2021-08-18 06:20:39 +0200 | severen | (~severen@202.36.179.72) (Quit: WeeChat 3.2) |
2021-08-18 06:22:33 +0200 | ahlk | (~user@2600:1700:31c0:3a10::48) (ERC (IRC client for Emacs 26.1)) |
2021-08-18 06:22:54 +0200 | <int-e> | https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#t… |
2021-08-18 06:23:01 +0200 | <int-e> | lechner: ^^ |
2021-08-18 06:24:39 +0200 | <int-e> | (which I found via the list of instances of ToRow) |
2021-08-18 06:28:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-18 06:32:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 248 seconds) |
2021-08-18 06:39:58 +0200 | derelict | (~derelict@user/derelict) |
2021-08-18 06:44:12 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 245 seconds) |
2021-08-18 06:44:16 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Quit: Reconnecting) |
2021-08-18 06:44:31 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-08-18 06:51:13 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-18 06:52:54 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-08-18 06:54:51 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-08-18 06:55:54 +0200 | <nerdypepper> | hiya o/, is there a parser library for haskell that can help produce loseless syntax trees? something like rowan for rust: https://github.com/rust-analyzer/rowan |
2021-08-18 06:56:43 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
2021-08-18 07:01:13 +0200 | <lechner> | int-e: unfortunately, i have no idea where to stick that Only https://paste.debian.net/1208074/ |
2021-08-18 07:01:14 +0200 | <Axman6> | what does a "lossless syntax tree" mean? |
2021-08-18 07:02:11 +0200 | <Axman6> | lechner: Only is for the results, not the arguments |
2021-08-18 07:03:02 +0200 | <nerdypepper> | Axman6: it preserves whitespace, comments etc., a more common term is concrete syntax tree. the idea is you can reproduce the source text from the syntax tree |
2021-08-18 07:03:35 +0200 | <Axman6> | you could definitely do that with any of the parser libraries I would think |
2021-08-18 07:05:56 +0200 | <nerdypepper> | Axman6: oh yeah for sure, you can still preserve whitespace tokens etc. i was hoping to find a library that does the necessary performance optimizations for you (like rowan). |
2021-08-18 07:06:33 +0200 | <nerdypepper> | rowan explicitly tries to avoid allocating every single token by interning whitespace and sharing structurally similar subtrees etc. |
2021-08-18 07:07:26 +0200 | <int-e> | It's needed for the outer tuple, I think. Only (Values [blah,blub]) |
2021-08-18 07:07:53 +0200 | argento | (~argent0@168-227-97-23.ptr.westnet.com.ar) (Quit: leaving) |
2021-08-18 07:09:31 +0200 | <Axman6> | edwardk: do you have any thoughts on nerdypepper's question? It feels like trifecta/parsers should be able to do this for you, but I'm not familliar enough to say for sure |
2021-08-18 07:10:36 +0200 | <int-e> | nerdypepper: And I think it wants ByteString or Text, never String. |
2021-08-18 07:11:32 +0200 | <lechner> | int-e: it seems a step closer, perhaps https://paste.debian.net/1208075/ |
2021-08-18 07:12:16 +0200 | <int-e> | sorry for picking the wrong nick all the time :-/ |
2021-08-18 07:15:21 +0200 | <Axman6> | lechner: why are you using Values? |
2021-08-18 07:15:31 +0200 | <Axman6> | it seems like you're really complicating things more than they need to be |
2021-08-18 07:15:48 +0200 | <lechner> | please go ahead |
2021-08-18 07:15:55 +0200 | <iqubic> | I see that #haskell survived the transition to Libera. That's good to see. |
2021-08-18 07:16:01 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-08-18 07:16:17 +0200 | <lechner> | Axman6: 'semver' cast, maybe? |
2021-08-18 07:16:28 +0200 | <int-e> | Well, the ToField Char indicates that it used a ToField a => ToRow [a] instance to get at ToRow String, so something went wrong apart from not using ByteString or Text (the string should be a field, not a row) |
2021-08-18 07:16:40 +0200 | Seby | (~Seby@115.98.232.63) (Ping timeout: 240 seconds) |
2021-08-18 07:16:41 +0200 | <Axman6> | oh actually... I hadn't looked at the query very closely |
2021-08-18 07:17:13 +0200 | <Axman6> | iqubic: irc is just a medium, #haskell will never die |
2021-08-18 07:17:18 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-18 07:17:25 +0200 | <iqubic> | That's good to know. |
2021-08-18 07:17:34 +0200 | int-e | isn't fully following either. |
2021-08-18 07:17:58 +0200 | <lechner> | Axman6: it's also an antijoin via EXCEPT |
2021-08-18 07:19:03 +0200 | <int-e> | lechner: Quite possibly the strings also need Only. And by ByteString or Text, not String. |
2021-08-18 07:19:14 +0200 | <int-e> | s/by/be/ |
2021-08-18 07:19:33 +0200 | <Axman6> | ok I can see now what you were trying to do but I have no idea how it's supposed to be done |
2021-08-18 07:19:45 +0200 | <lechner> | without Only from the strings https://paste.debian.net/1208076/ |
2021-08-18 07:20:32 +0200 | <lechner> | Axman6: it's a value transfer issue. i could also use JSON |
2021-08-18 07:20:34 +0200 | <int-e> | lechner: Only turns a field into a row. |
2021-08-18 07:21:03 +0200 | <int-e> | and there is a ToField instance for Text. |
2021-08-18 07:21:13 +0200 | <Axman6> | Have you tried `(Values ["semver"] [Only ("2.1.6" :: ByteString)])`? |
2021-08-18 07:21:25 +0200 | <Axman6> | or Text? |
2021-08-18 07:21:38 +0200 | <int-e> | Axman6: We're getting there. You also need Only on the outside. |
2021-08-18 07:22:32 +0200 | <lechner> | that compile, with Text |
2021-08-18 07:22:37 +0200 | <lechner> | compiled |
2021-08-18 07:23:01 +0200 | <Axman6> | so all good? |
2021-08-18 07:23:11 +0200 | <Axman6> | does the query run??? :o |
2021-08-18 07:23:47 +0200 | <lechner> | the query isn't working |
2021-08-18 07:23:58 +0200 | <Axman6> | now for the fun part :P |
2021-08-18 07:24:38 +0200 | <lechner> | the query is tested; and this is the second time around |
2021-08-18 07:26:05 +0200 | <lechner> | i can probably use PGArray with unnest or a JSON string but VALUES seemed so easy |
2021-08-18 07:30:12 +0200 | <edwardk> | Axman6: context? |
2021-08-18 07:30:16 +0200 | <edwardk> | *reading back* |
2021-08-18 07:30:31 +0200 | <Axman6> | see message at XX:55 |
2021-08-18 07:30:39 +0200 | <edwardk> | lossless parsing? |
2021-08-18 07:30:39 +0200 | <lechner> | what does the "fat" arrow here mean, please? https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#v… |
2021-08-18 07:31:05 +0200 | <Axman6> | it's a type class constraint |
2021-08-18 07:31:24 +0200 | <Axman6> | saying that q must be an instance of the ToRow class |
2021-08-18 07:31:59 +0200 | <edwardk> | i usually wind up building a parser for whitespace that captures everything inside the whitespace and then make sure my syntax trees are very close to the surface language syntax with little whitespace bins in the tree wherever spaces could occur. this works until you need layout and then regenerating the tree has some extra consistency crap it has to satisfy. |
2021-08-18 07:32:24 +0200 | <edwardk> | but i don't know a general purpose 'exactprint' style library |
2021-08-18 07:32:53 +0200 | <edwardk> | (whitespace here includes comments, etc.) |
2021-08-18 07:32:59 +0200 | <dibblego> | we started writing one aaaaages ago |
2021-08-18 07:32:59 +0200 | Axman6 | awaits the nerdsnipe to kick in... |
2021-08-18 07:33:20 +0200 | <edwardk> | not happening. groq's keeping me busy this month and i just bought a house and am moving =) |
2021-08-18 07:33:33 +0200 | <Axman6> | 'grats! |
2021-08-18 07:34:10 +0200 | iqubic` | (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) |
2021-08-18 07:34:19 +0200 | iqubic` | (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) () |
2021-08-18 07:34:53 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-18 07:38:10 +0200 | iqubic | (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) (Ping timeout: 240 seconds) |
2021-08-18 07:40:11 +0200 | <cdsmith> | Does this exist somewhere? data ReifiedInstance (cls :: Type -> Constraint) (a :: Type) where ReifiedInstance :: cls a => ReifiedInstance cls a |
2021-08-18 07:42:56 +0200 | <nerdypepper> | Axman6: thanks for the mention, trifecta looks great, i will take a look at that. it would be a pretty mega project to rewrite something like rowan, but i am not opposed to trying that out either! |
2021-08-18 07:43:11 +0200 | <hsek[m]> | Are there resources for me to read regarding separating API types from the DB types in `servant`? I don't really understand why because it seems really convenient. But I know that a lot of people advocate against it. https://old.reddit.com/r/haskell/comments/p64g1q/servantutil_extending_servant_with_database/h9bbp… |
2021-08-18 07:44:11 +0200 | fabfianda | (~fabfianda@mob-5-91-112-128.net.vodafone.it) (Ping timeout: 268 seconds) |
2021-08-18 07:49:44 +0200 | Gurkenglas_ | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds) |
2021-08-18 07:51:34 +0200 | ablutor | (~quassel@wasscher.com) (Quit: going for vitamine d) |
2021-08-18 07:51:51 +0200 | ablutor | (~quassel@wasscher.com) |
2021-08-18 07:52:07 +0200 | <cdsmith> | hsek: Can't point to a document, but APIs have different compatibility constraints. They might start out looking similar to backend data, but over time, you'll want to migrate your storage schemas, while APIs must stay the same. That's hard to handle if they are the same type. |
2021-08-18 07:55:56 +0200 | favonia | (~favonia@user/favonia) |
2021-08-18 07:59:25 +0200 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) (Remote host closed the connection) |
2021-08-18 08:02:28 +0200 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) |
2021-08-18 08:02:39 +0200 | <hsek[m]> | I see, thanks Chris Smith ! |
2021-08-18 08:02:41 +0200 | arahael | (~arahael@124.170.238.106) (Ping timeout: 248 seconds) |
2021-08-18 08:03:10 +0200 | falafel | (~falafel@2601:483:4e00:2b20:e0f3:c7c1:91ca:fe6e) (Ping timeout: 240 seconds) |
2021-08-18 08:03:32 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-08-18 08:04:43 +0200 | Obo | (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
2021-08-18 08:06:34 +0200 | <lechner> | int-e Axman6: it was the stupidest of all errors. the function was not called. anyway, now I have a runtime type error: Incompatible {errSQLType = "semver", errSQLTableOid = Nothing, errSQLField = "lintian_version", errHaskellType = "Text", errMessage = "types incompatible"} |
2021-08-18 08:07:31 +0200 | <lechner> | but it's quite late here. thank you both for your help so far! |
2021-08-18 08:10:17 +0200 | ubert | (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) |
2021-08-18 08:12:03 +0200 | arahael | (~arahael@203.221.97.63) |
2021-08-18 08:16:43 +0200 | echoreply1 | (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8) |
2021-08-18 08:17:01 +0200 | Seby | (~Seby@115.98.232.63) |
2021-08-18 08:17:46 +0200 | Seby | (~Seby@115.98.232.63) (Client Quit) |
2021-08-18 08:17:50 +0200 | vysn | (~vysn@user/vysn) |
2021-08-18 08:18:03 +0200 | echoreply | (~echoreply@45.32.163.16) |
2021-08-18 08:18:10 +0200 | chomwitt | (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374) |
2021-08-18 08:20:04 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-08-18 08:22:45 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-08-18 08:25:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 08:28:47 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 245 seconds) |
2021-08-18 08:32:47 +0200 | aegon | (~mike@174.127.249.180) (Quit: Lost terminal) |
2021-08-18 08:37:43 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-08-18 08:41:19 +0200 | smitop | (~smitop@user/smitop) (Remote host closed the connection) |
2021-08-18 08:42:08 +0200 | smitop | (~smitop@user/smitop) |
2021-08-18 08:43:46 +0200 | lortabac | (~lortabac@151.73.97.57) |
2021-08-18 08:44:52 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b955250c7a959aba8feb6.dip0.t-ipconnect.de) |
2021-08-18 08:48:06 +0200 | ubert1 | (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) |
2021-08-18 08:48:33 +0200 | michalz | (~michalz@185.246.204.62) |
2021-08-18 08:48:48 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-18 08:49:39 +0200 | Unhammer | (~Unhammer@user/unhammer) |
2021-08-18 08:59:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
2021-08-18 09:03:11 +0200 | derelict | (~derelict@user/derelict) |
2021-08-18 09:04:15 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-08-18 09:04:40 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2021-08-18 09:05:28 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-08-18 09:10:46 +0200 | <albet70> | please unbanned 47.245.54.240 |
2021-08-18 09:15:00 +0200 | <dibblego> | albet70: read the topic |
2021-08-18 09:16:52 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2021-08-18 09:23:58 +0200 | u0_a2531 | (~u0_a253@2402:9d80:247:f919:942:7578:ff92:e257) |
2021-08-18 09:24:47 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-18 09:25:17 +0200 | lortabac | (~lortabac@151.73.97.57) (Read error: Connection reset by peer) |
2021-08-18 09:26:05 +0200 | u0_a253 | (~u0_a253@2402:9d80:247:f919:764b:d5cb:dc9:2b1d) (Remote host closed the connection) |
2021-08-18 09:26:44 +0200 | u0_a2531 | (~u0_a253@2402:9d80:247:f919:942:7578:ff92:e257) (Remote host closed the connection) |
2021-08-18 09:28:56 +0200 | lortabac | (~lortabac@151.73.97.57) |
2021-08-18 09:30:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 09:34:20 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-08-18 09:35:05 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-08-18 09:39:13 +0200 | slack1256 | (~slack1256@191.125.227.92) |
2021-08-18 09:40:59 +0200 | justache | (~justache@user/justache) (Ping timeout: 252 seconds) |
2021-08-18 09:41:42 +0200 | benin036932 | (~benin@183.82.178.142) |
2021-08-18 09:43:00 +0200 | justache | (~justache@user/justache) |
2021-08-18 09:44:33 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 09:45:10 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 09:47:10 +0200 | justache | (~justache@user/justache) (Ping timeout: 240 seconds) |
2021-08-18 09:47:10 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-18 09:47:21 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-18 09:49:21 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
2021-08-18 09:52:17 +0200 | justache | (~justache@user/justache) |
2021-08-18 09:56:07 +0200 | Xnuk | (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in) |
2021-08-18 09:56:25 +0200 | Xnuk | (~xnuk@45.76.202.58) |
2021-08-18 09:58:27 +0200 | justache | (~justache@user/justache) (Read error: Connection reset by peer) |
2021-08-18 09:58:49 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-18 09:59:18 +0200 | justache | (~justache@user/justache) |
2021-08-18 09:59:32 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 10:03:16 +0200 | <merijn> | sshine_: I wouldn't say that's *cabal* failing, but it's a weird error. You're using a much newer version of hspec than your stack setup, but afaict the newer Hspec still exports Spec there, so that compilation still shouldn't fail |
2021-08-18 10:04:50 +0200 | <maralorn> | maerwald: I have just tested streamly-posix with hspec 2.7.10 (because that’s the stackage-lts version). That worked. So theoretically you could lower the version bound on it. |
2021-08-18 10:05:23 +0200 | <merijn> | sshine_: oh, I have a *wildly* speculative theory, lemme test it :) |
2021-08-18 10:05:25 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-08-18 10:05:42 +0200 | <maerwald> | maralorn: hspec-discover as well? |
2021-08-18 10:06:05 +0200 | slack1256 | (~slack1256@191.125.227.92) (Remote host closed the connection) |
2021-08-18 10:06:13 +0200 | <maralorn> | maerwald: Yes |
2021-08-18 10:06:37 +0200 | <maerwald> | maralorn: what version? |
2021-08-18 10:06:47 +0200 | <maralorn> | Same |
2021-08-18 10:07:20 +0200 | dschrempf | (~dominik@2a01-036d-0118-a2d1-3c86-9363-4322-fee7.pool6.digikabel.hu) |
2021-08-18 10:08:36 +0200 | Kirat | (~Gill@103.217.122.17) |
2021-08-18 10:08:40 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-08-18 10:08:47 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:f185:3872:6a89:c741) |
2021-08-18 10:09:57 +0200 | <maralorn> | maerwald: ^ |
2021-08-18 10:10:07 +0200 | <maralorn> | (forgot the highlight) |
2021-08-18 10:12:25 +0200 | oldsk00l | (~znc@ec2-3-69-166-47.eu-central-1.compute.amazonaws.com) |
2021-08-18 10:12:42 +0200 | Kirat | (~Gill@103.217.122.17) (Client Quit) |
2021-08-18 10:13:39 +0200 | Guest48 | (~Guest48@2001:8003:33f0:c100:90f4:2120:7bc8:55aa) |
2021-08-18 10:14:05 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-08-18 10:17:23 +0200 | ubert | (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) (Quit: ubert) |
2021-08-18 10:17:24 +0200 | ubert1 | ubert |
2021-08-18 10:17:39 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-08-18 10:17:39 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-08-18 10:17:42 +0200 | allbery_b | geekosaur |
2021-08-18 10:17:42 +0200 | ub | (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) |
2021-08-18 10:17:58 +0200 | <merijn> | sshine_: That I can't test, because I can't reproduce it locally >.> But at the very least I see a couple of errors in the repo/config |
2021-08-18 10:22:07 +0200 | ub | (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) (Ping timeout: 245 seconds) |
2021-08-18 10:22:36 +0200 | oldsk00l | (~znc@ec2-3-69-166-47.eu-central-1.compute.amazonaws.com) (Remote host closed the connection) |
2021-08-18 10:23:07 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-08-18 10:27:55 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-18 10:30:04 +0200 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving) |
2021-08-18 10:31:13 +0200 | rovert | (uid389732@id-389732.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-18 10:35:41 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-08-18 10:36:22 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-08-18 10:36:49 +0200 | micro | (~micro@user/micro) (Quit: Lost terminal) |
2021-08-18 10:37:35 +0200 | micro | (~micro@user/micro) |
2021-08-18 10:38:25 +0200 | Guest48 | (~Guest48@2001:8003:33f0:c100:90f4:2120:7bc8:55aa) (Quit: Client closed) |
2021-08-18 10:38:29 +0200 | fendor | (~fendor@77.119.161.62.wireless.dyn.drei.com) |
2021-08-18 10:40:44 +0200 | defanor | (~defanor@tart.uberspace.net) |
2021-08-18 10:43:55 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) () |
2021-08-18 10:46:54 +0200 | <defanor> | Hello. I've just updated to Cabal 3 (cabal-install from Debian 11 repositories), and failing to find how to install custom libraries (the ones I'm writing) properly: `cabal install --lib` appears to work fine (no errors), but then `cabal install` says "unknown package" when I'm trying to build projects dependent on such a library. Is it the intended behaviour, and how does one build projects like that with Cabal 3 ( |
2021-08-18 10:46:54 +0200 | <defanor> | except for v2- commands)? |
2021-08-18 10:47:09 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 10:48:07 +0200 | <merijn> | defanor: tbh, you really shouldn't be using "install --lib" |
2021-08-18 10:48:37 +0200 | <merijn> | defanor: Also, in cabal 3 the X and "v2-X" are identical |
2021-08-18 10:49:11 +0200 | <defanor> | merijn: Oh, perhaps I had in mind v1- ones then; meant the old behaviour. What should I use instead of install, then? |
2021-08-18 10:49:25 +0200 | <merijn> | It depends *why* you want to install |
2021-08-18 10:49:45 +0200 | <merijn> | If it is "so I can use this in another library/project I work on" the answer is: you shouldn't use install at all |
2021-08-18 10:50:20 +0200 | <defanor> | Indeed, to use those libraries from other projects. What should I use instead, then? |
2021-08-18 10:51:45 +0200 | <merijn> | defanor: If the libraries are on hackage, then nothing, they will be installed automatically when you use "build" if you want to depend on local (modified?) versions of libraries or unreleased libraries, then you want to use a cabal.project file with either 1) a remote-repo entry or 2) a filled in "local-packages:" pointing at the relevant local paths |
2021-08-18 10:51:51 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-08-18 10:52:42 +0200 | <defanor> | It's the latter in this case (some of those are work-related), will look into those options. Thanks! |
2021-08-18 10:52:46 +0200 | <merijn> | defanor: See https://cabal.readthedocs.io/en/latest/cabal-project.html#specifying-the-local-packages which has examples of both |
2021-08-18 10:52:49 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 248 seconds) |
2021-08-18 10:52:49 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 248 seconds) |
2021-08-18 10:53:04 +0200 | <merijn> | defanor: And https://cabal.readthedocs.io/en/latest/cabal-project.html#specifying-packages-from-remote-version-… |
2021-08-18 10:54:38 +0200 | <merijn> | defanor: For work situations where everyone is consistently using the same "internal" packages, you should probably just commit the cabal.project file to the repo for everyone to use |
2021-08-18 10:56:12 +0200 | <merijn> | also, in the category more complicated (but thorough) solutions: It's perfectly possible to run your own private hackage server and point cabal-install at that so it will consult both the internal hackage server and public hackage |
2021-08-18 11:00:02 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) (Ping timeout: 245 seconds) |
2021-08-18 11:00:27 +0200 | <defanor> | I keep thinking of packaging everything into .deb and running an apt repository that way, to reuse a single package manager for everything (reducing the possibility of version mismatches, setting external dependencies from system repositories, etc). But will probably look into that later, just manual building for now. |
2021-08-18 11:08:45 +0200 | fabfianda | (~fabfianda@37.183.255.57) |
2021-08-18 11:20:27 +0200 | <defanor> | Tried to build with a cabal.project, seems to work for me. The packages live in a single repository (subdirectories), so have put cabal.project into its root. |
2021-08-18 11:21:17 +0200 | <merijn> | defanor: That's pretty much the intended use of cabal.project, yes :) |
2021-08-18 11:22:03 +0200 | <merijn> | defanor: Note that you can specify local overrides for it in cabal.project.local (the idea being you can commit cabal.project to the repo for everyone working on it and .local has whatever tweaks specific to what you're doing) |
2021-08-18 11:23:08 +0200 | Axma70428 | (~Axman6@user/axman6) |
2021-08-18 11:24:41 +0200 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 256 seconds) |
2021-08-18 11:25:07 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 245 seconds) |
2021-08-18 11:27:10 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
2021-08-18 11:27:41 +0200 | jespada | (~jespada@90.254.247.46) |
2021-08-18 11:29:28 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-08-18 11:39:06 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-18 11:39:08 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2021-08-18 11:43:38 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-08-18 11:50:10 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-18 11:53:01 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) |
2021-08-18 11:54:42 +0200 | __monty__ | (~toonn@user/toonn) |
2021-08-18 11:56:29 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-18 11:56:42 +0200 | ikex1 | (~ash@user/ikex) |
2021-08-18 11:56:55 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 11:58:15 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 268 seconds) |
2021-08-18 11:58:16 +0200 | ikex1 | ikex |
2021-08-18 12:01:39 +0200 | dschrempf | (~dominik@2a01-036d-0118-a2d1-3c86-9363-4322-fee7.pool6.digikabel.hu) (Ping timeout: 258 seconds) |
2021-08-18 12:01:47 +0200 | tinwood | (~tinwood@canonical/tinwood) (Remote host closed the connection) |
2021-08-18 12:02:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-18 12:03:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 12:04:49 +0200 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) |
2021-08-18 12:04:49 +0200 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host) |
2021-08-18 12:04:49 +0200 | tinwood | (~tinwood@canonical/tinwood) |
2021-08-18 12:05:14 +0200 | lortabac | (~lortabac@151.73.97.57) (Quit: WeeChat 2.8) |
2021-08-18 12:09:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-18 12:09:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 12:11:45 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 248 seconds) |
2021-08-18 12:13:03 +0200 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-08-18 12:13:20 +0200 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-08-18 12:14:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-18 12:15:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 12:16:59 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 12:20:13 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-18 12:20:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-18 12:21:17 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-08-18 12:21:19 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 12:21:58 +0200 | <albet70> | dibblego, is there a limit days for banned user or permanent? |
2021-08-18 12:22:27 +0200 | <[exa]> | albet70: there's another channel for that, see topic |
2021-08-18 12:22:51 +0200 | <albet70> | oh, I see, sorry |
2021-08-18 12:25:55 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) (Quit: leaving) |
2021-08-18 12:26:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-18 12:27:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 12:28:20 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) |
2021-08-18 12:29:10 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) |
2021-08-18 12:30:14 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 12:33:16 +0200 | ChanServ | +o dibblego |
2021-08-18 12:33:30 +0200 | dibblego | -b *!*@47.245.54.240 |
2021-08-18 12:33:31 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-18 12:33:44 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-18 12:33:46 +0200 | ChanServ | -o dibblego |
2021-08-18 12:34:49 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-08-18 12:36:17 +0200 | chomwitt | (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds) |
2021-08-18 12:37:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-08-18 12:38:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 12:43:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-18 12:43:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 12:44:28 +0200 | fendor | (~fendor@77.119.161.62.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-08-18 12:44:40 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) |
2021-08-18 12:47:32 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b955250c7a959aba8feb6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2021-08-18 12:57:49 +0200 | fvr | (uid503686@id-503686.highgate.irccloud.com) |
2021-08-18 13:01:04 +0200 | alx741 | (~alx741@181.196.68.125) |
2021-08-18 13:01:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 13:03:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 13:04:33 +0200 | ubert | (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) (Ping timeout: 248 seconds) |
2021-08-18 13:05:25 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 13:06:26 +0200 | dsrt^ | (~dsrt@209.65.131.194) (Ping timeout: 258 seconds) |
2021-08-18 13:08:24 +0200 | chomwitt | (~chomwitt@ppp-94-67-193-240.home.otenet.gr) |
2021-08-18 13:08:54 +0200 | AlexNoo_ | (~AlexNoo@94.233.241.41) |
2021-08-18 13:12:52 +0200 | AlexZenon | (~alzenon@94.233.240.231) (Ping timeout: 268 seconds) |
2021-08-18 13:12:52 +0200 | Alex_test | (~al_test@94.233.240.231) (Ping timeout: 268 seconds) |
2021-08-18 13:12:52 +0200 | AlexNoo | (~AlexNoo@94.233.240.231) (Ping timeout: 268 seconds) |
2021-08-18 13:16:24 +0200 | Alex_test | (~al_test@94.233.241.41) |
2021-08-18 13:16:49 +0200 | AlexZenon | (~alzenon@94.233.241.41) |
2021-08-18 13:22:22 +0200 | lortabac | (~lortabac@151.73.97.57) |
2021-08-18 13:22:41 +0200 | benin036932 | (~benin@183.82.178.142) (Ping timeout: 248 seconds) |
2021-08-18 13:25:18 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-08-18 13:27:23 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-08-18 13:29:59 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-08-18 13:35:21 +0200 | Matthias1 | (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection) |
2021-08-18 13:36:21 +0200 | Matthias1 | (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) |
2021-08-18 13:37:59 +0200 | Matthias1 | (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Read error: Connection reset by peer) |
2021-08-18 13:42:11 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 13:43:33 +0200 | favonia | (~favonia@user/favonia) |
2021-08-18 13:43:51 +0200 | _\_ | (~o@user/ding) (Quit: ___) |
2021-08-18 13:44:04 +0200 | _\_ | (~o@user/ding) |
2021-08-18 13:44:06 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) |
2021-08-18 13:46:17 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 245 seconds) |
2021-08-18 13:47:59 +0200 | <Hecate> | am sad |
2021-08-18 13:48:04 +0200 | <Hecate> | I had a very nice usecase for Comonads |
2021-08-18 13:48:11 +0200 | <Hecate> | and turns out `getField` does the job |
2021-08-18 13:48:18 +0200 | <Hecate> | (with probably less overhead lol) |
2021-08-18 13:48:26 +0200 | aguapesada | (~aguapesad@2804:14c:8793:8e2f:a406:863b:f810:2d4c) |
2021-08-18 13:49:23 +0200 | <hpc> | ah yes, truly your life is full of hardships :D |
2021-08-18 13:50:38 +0200 | <hpc> | i had something similar with Cont, until i realized something entirely different instead |
2021-08-18 13:55:10 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 13:56:47 +0200 | lortabac_ | (~lortabac@151.73.3.232) |
2021-08-18 13:58:22 +0200 | lortabac | (~lortabac@151.73.97.57) (Ping timeout: 245 seconds) |
2021-08-18 14:00:09 +0200 | benin036932 | (~benin@183.82.178.142) |
2021-08-18 14:01:58 +0200 | ubert | (~Thunderbi@178.115.35.155.wireless.dyn.drei.com) |
2021-08-18 14:03:02 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-08-18 14:04:40 +0200 | keutoi | (~keutoi@157.48.90.57) (Ping timeout: 240 seconds) |
2021-08-18 14:05:10 +0200 | lortabac_ | lortabac |
2021-08-18 14:12:33 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-18 14:15:47 +0200 | <merijn> | hpc: I actually have a use of Cont in my code! |
2021-08-18 14:15:55 +0200 | <merijn> | And I even understood it when I wrote it! |
2021-08-18 14:16:10 +0200 | <merijn> | Don't understand shit about it anymore, but it still works, so I just don't touch it :p |
2021-08-18 14:18:29 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 14:20:49 +0200 | <hpc> | hah |
2021-08-18 14:22:32 +0200 | <lechner> | Hi, I have postgresql-simple working via 'text'/Data.Text result types. Can the module hadle more custom conversions, such as from SEMVER from the Pg extension pg-simple to SemVer.Version from 'semver' in Haskell? |
2021-08-18 14:22:46 +0200 | <lechner> | pg-semver |
2021-08-18 14:22:57 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
2021-08-18 14:29:22 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-18 14:31:25 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-08-18 14:33:04 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 258 seconds) |
2021-08-18 14:38:16 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 14:38:22 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2021-08-18 14:39:27 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 14:41:36 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 14:47:04 +0200 | pbrisbin | (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net) |
2021-08-18 14:49:17 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-08-18 14:50:01 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) |
2021-08-18 14:54:09 +0200 | ubert | (~Thunderbi@178.115.35.155.wireless.dyn.drei.com) (Quit: ubert) |
2021-08-18 14:54:27 +0200 | ubert | (~Thunderbi@178.115.35.155.wireless.dyn.drei.com) |
2021-08-18 14:59:54 +0200 | chomwitt | (~chomwitt@ppp-94-67-193-240.home.otenet.gr) (Ping timeout: 258 seconds) |
2021-08-18 15:07:03 +0200 | <maerwald> | how to convert `[Word8]` to `ByteArray#`? |
2021-08-18 15:07:53 +0200 | <Hecate> | < hpc> ah yes, truly your life is full of hardships :D // This is the only hardship in my life that is relevant to this channel :p |
2021-08-18 15:08:38 +0200 | <Hecate> | maerwald: 'coerce' ? :p |
2021-08-18 15:09:07 +0200 | <Hecate> | no more seriously, maerwald, 'byteArrayFromList :: Prim a => [a] -> ByteArray' |
2021-08-18 15:09:15 +0200 | <maerwald> | I'm already doing that |
2021-08-18 15:09:21 +0200 | <maerwald> | it doesn't yield an unlifted type |
2021-08-18 15:09:34 +0200 | <Hecate> | oh shit yes |
2021-08-18 15:09:36 +0200 | <Hecate> | sorry |
2021-08-18 15:09:48 +0200 | <maerwald> | unpacking from the constructor, oddly, also doesn't |
2021-08-18 15:10:29 +0200 | <maerwald> | so `(\(BA.ByteArray ba) -> ba) . BA.byteArrayFromList $ ws` doesn't work |
2021-08-18 15:13:47 +0200 | Guest40 | (~Guest40@2a02:6b64:708f:0:9101:3c1b:1de7:cf00) |
2021-08-18 15:13:47 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2021-08-18 15:14:17 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-18 15:17:48 +0200 | <Guest40> | is this the best place to get beginner help for haskell? |
2021-08-18 15:18:22 +0200 | <dminuoso> | Whether it's the best that's for you to decide. |
2021-08-18 15:18:39 +0200 | <dminuoso> | But we welcome beginners in this channel. |
2021-08-18 15:19:10 +0200 | <dminuoso> | We also have #haskell-beginners which is less noisy, but dont feel pressured to go there. Sometimes this channel can be busy. :) |
2021-08-18 15:19:28 +0200 | <Guest40> | that's nice, was just wondering because i didn't see anyone sending messages |
2021-08-18 15:19:42 +0200 | <Guest40> | and whether people usually help out |
2021-08-18 15:19:48 +0200 | <Guest40> | i'll make sure to join , thanks |
2021-08-18 15:20:06 +0200 | <dminuoso> | You will usually have better response times in here |
2021-08-18 15:20:21 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-08-18 15:20:38 +0200 | <Lycurgus> | and it's newbie friendly unlike some other langs/channels |
2021-08-18 15:21:16 +0200 | <dminuoso> | Indeed, dont be scared away if people start off with advanced discussions. We dont mind beginner questions at all, even if they are very basic. :) |
2021-08-18 15:22:31 +0200 | AlexNoo_ | AlexNoo |
2021-08-18 15:22:48 +0200 | <Guest40> | thank you |
2021-08-18 15:27:30 +0200 | <merijn> | Guest40: Activity here is spiky :p Also, most US people are asleep and the EU people are (pretending) to work :p |
2021-08-18 15:31:14 +0200 | <maerwald> | is dlist good at fusing? |
2021-08-18 15:31:55 +0200 | <maerwald> | example: https://paste.tomsmeding.com/GOQCMLgl |
2021-08-18 15:32:09 +0200 | <maerwald> | I wonder if it will nicely build the bytestring or keep the list in memory |
2021-08-18 15:35:23 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 15:35:48 +0200 | <albet70> | could Cont replace Maybe or Either? |
2021-08-18 15:35:59 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-08-18 15:36:46 +0200 | <janus> | how would it? it has only one constructor |
2021-08-18 15:37:05 +0200 | wxallowed | (~d4@151.51.133.244) (Ping timeout: 258 seconds) |
2021-08-18 15:37:24 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-18 15:38:27 +0200 | <albet70> | oh I forget that, they all can do early exit in >>=, so I wonder that |
2021-08-18 15:39:40 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-08-18 15:40:23 +0200 | <albet70> | Cont can jump back to the beginning in the >>= chain, how would it? |
2021-08-18 15:40:23 +0200 | <janus> | but any definition of >>= can do early exit, surely that doesn't make them all replacements for Maybe/Either? |
2021-08-18 15:40:34 +0200 | <dminuoso> | albet70: Cont can implement all the other haskell-writable monads. |
2021-08-18 15:40:37 +0200 | <dminuoso> | All. |
2021-08-18 15:41:46 +0200 | <albet70> | dminuoso how would it? |
2021-08-18 15:42:57 +0200 | <albet70> | I wonder who create or discover Cont first? |
2021-08-18 15:45:11 +0200 | tengu1 | (~tengu1@cpe-70-121-244-14.neb.res.rr.com) |
2021-08-18 15:45:40 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 15:46:37 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 15:46:41 +0200 | <dminuoso> | albet70: https://web.archive.org/web/20150925081214/https://www.fpcomplete.com/user/dpiponi/the-mother-of-a… |
2021-08-18 15:50:40 +0200 | chomwitt | (~chomwitt@ppp-94-67-193-240.home.otenet.gr) |
2021-08-18 15:52:24 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 15:54:30 +0200 | <JavierNeira[m]> | the original post, still available was http://blog.sigfpe.com/2008/12/mother-of-all-monads.html |
2021-08-18 15:54:48 +0200 | slack1256 | (~slack1256@191.125.227.92) |
2021-08-18 15:56:43 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-08-18 15:58:14 +0200 | lortabac | (~lortabac@151.73.3.232) (Quit: WeeChat 2.8) |
2021-08-18 16:00:36 +0200 | [Kalisto] | (~nico@user/kalisto/x-8968079) |
2021-08-18 16:01:16 +0200 | <[Kalisto]> | hi |
2021-08-18 16:01:28 +0200 | <[Kalisto]> | i am trying to compile an old project of mine and i get this error |
2021-08-18 16:01:30 +0200 | <[Kalisto]> | https://paste.tomsmeding.com/dVLlVsCb |
2021-08-18 16:01:37 +0200 | <[Kalisto]> | i don't know what to do |
2021-08-18 16:01:39 +0200 | <[Kalisto]> | :( |
2021-08-18 16:01:58 +0200 | <[Kalisto]> | in the cabal file i have this |
2021-08-18 16:01:59 +0200 | <[Kalisto]> | build-depends: base >=4.11 && <4.12, gd >=3000.7 && <3000.8, mtl >=2.2 && <2.3, parsec >=3.1 && <3.2 |
2021-08-18 16:03:08 +0200 | <raehik> | it looks like your installed GHC is too new for your base dependency |
2021-08-18 16:03:17 +0200 | <merijn> | That, yeah |
2021-08-18 16:03:22 +0200 | <dminuoso> | [__1] rejecting: base-4.14.1.0/installed-4.14.1.0 (conflict: miniLogo => base>=4.11 && <4.12) |
2021-08-18 16:03:42 +0200 | <[Kalisto]> | oh |
2021-08-18 16:03:46 +0200 | <raehik> | you could loosen the dependency and see if it works, or install an older GHC |
2021-08-18 16:03:51 +0200 | <dminuoso> | [Kalisto]: This reads: miniLogo induces a base dependency (you can, more or less, equate this with GHC version) of >=4.11 && <4.12 |
2021-08-18 16:04:08 +0200 | <[Kalisto]> | i am compiling it inside a docker container |
2021-08-18 16:04:12 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 16:04:16 +0200 | <dminuoso> | [Kalisto]: And it rejects the (installed) base package of version 4.14.1.0 because it conflicts with that constraint I just cited. |
2021-08-18 16:04:39 +0200 | <[Kalisto]> | i tried to, but I got errors |
2021-08-18 16:04:42 +0200 | <[Kalisto]> | No instance for (MonadFail Data.Functor.Identity.Identity) |
2021-08-18 16:04:53 +0200 | <[Kalisto]> | i just want to compile it :P |
2021-08-18 16:06:37 +0200 | <[Kalisto]> | thanks |
2021-08-18 16:08:31 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds) |
2021-08-18 16:09:12 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-08-18 16:12:21 +0200 | sleblanc | (~sleblanc@user/sleblanc) (Ping timeout: 258 seconds) |
2021-08-18 16:12:55 +0200 | <[Kalisto]> | it's alive, alive! :P |
2021-08-18 16:13:07 +0200 | <[Kalisto]> | I used the 8.4.4 docker image and it worked |
2021-08-18 16:13:10 +0200 | <[Kalisto]> | thank you |
2021-08-18 16:13:47 +0200 | Guest40 | (~Guest40@2a02:6b64:708f:0:9101:3c1b:1de7:cf00) (Quit: Client closed) |
2021-08-18 16:15:11 +0200 | wxallowed | (~d4@151.51.135.6) |
2021-08-18 16:22:30 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) (Quit: WeeChat 3.2) |
2021-08-18 16:23:15 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-18 16:25:08 +0200 | gambpang | (~ishipman@207.181.230.156) |
2021-08-18 16:26:24 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 16:28:44 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2021-08-18 16:28:49 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-18 16:29:26 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-18 16:30:31 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-08-18 16:31:32 +0200 | pompez | (~martin@user/pompez) |
2021-08-18 16:33:13 +0200 | <tomsmeding> | it seems like the major thing impacting compatibility with early-8 series with now is MonadFail |
2021-08-18 16:33:57 +0200 | <tomsmeding> | will ghc have one major compatibility-breaking change every major series? :p First FAM, then MonadFail |
2021-08-18 16:34:57 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 16:37:23 +0200 | Cajun | (~Cajun@user/cajun) (Quit: Client closed) |
2021-08-18 16:39:15 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 16:41:18 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 16:44:48 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
2021-08-18 16:45:23 +0200 | <albet70> | dminuoso, very good article, Cont can jump back, so [] can? but [] can't early exit in jump back |
2021-08-18 16:45:29 +0200 | artem | (uid512590@id-512590.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-18 16:46:35 +0200 | <gambpang> | Setting aside style considerations, is there any reason to prefer expressions like `f $ g $ h $ x` in a codebase to `f . g . h $ x` (or vice versa)? |
2021-08-18 16:47:17 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 16:47:28 +0200 | <albet70> | dminuoso, now I feel I can use Cont to do something but I don't understand it |
2021-08-18 16:48:05 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-08-18 16:48:09 +0200 | Guest87 | (~Guest87@2a01:c23:5d93:6500:cd2c:9f7f:eeb2:be5b) |
2021-08-18 16:48:23 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 258 seconds) |
2021-08-18 16:50:14 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
2021-08-18 16:51:40 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 240 seconds) |
2021-08-18 16:51:45 +0200 | <albet70> | and in that article, it does not mention the notorious callCC |
2021-08-18 16:53:47 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 245 seconds) |
2021-08-18 16:54:43 +0200 | <merijn> | albet70: Not understanding Cont is normal :p |
2021-08-18 16:55:02 +0200 | <merijn> | I've written non-trivial code using Cont, but it still melts my brain each time >.> |
2021-08-18 16:55:10 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-18 16:55:25 +0200 | s-h-i-n-o-b-i | (~quassel@104.244.75.124) |
2021-08-18 16:56:15 +0200 | <albet70> | merijn do u have some classic examples for ContT r IO a? |
2021-08-18 16:56:38 +0200 | <albet70> | when should I use ContT? |
2021-08-18 16:56:46 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-18 16:56:53 +0200 | <merijn> | albet70: Did you see the SO example on "ContT as bracket" yet? |
2021-08-18 16:56:58 +0200 | <albet70> | which case it should be used? |
2021-08-18 16:57:14 +0200 | <merijn> | https://stackoverflow.com/questions/26436095/what-are-good-haskell-conventions-for-managing-deeply… |
2021-08-18 16:57:14 +0200 | <albet70> | not yet |
2021-08-18 16:57:16 +0200 | skykanin | (~skykanin@115.81-166-221.customer.lyse.net) |
2021-08-18 16:57:17 +0200 | <merijn> | That one |
2021-08-18 16:57:23 +0200 | <merijn> | Which is what I mostly use it for too |
2021-08-18 17:01:45 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-08-18 17:02:43 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-18 17:02:56 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-08-18 17:03:01 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-08-18 17:04:21 +0200 | Obo | (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
2021-08-18 17:05:36 +0200 | Guest87 | (~Guest87@2a01:c23:5d93:6500:cd2c:9f7f:eeb2:be5b) (Quit: Client closed) |
2021-08-18 17:06:22 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-08-18 17:06:26 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Remote host closed the connection) |
2021-08-18 17:07:22 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 252 seconds) |
2021-08-18 17:07:41 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-18 17:08:15 +0200 | <albet70> | some people said Cont can do branch control or jump back |
2021-08-18 17:08:38 +0200 | <albet70> | full of magic |
2021-08-18 17:09:28 +0200 | <kuribas> | is "fromListWith (++) " quadratic in the combining function? |
2021-08-18 17:10:08 +0200 | <albet70> | :t maybe |
2021-08-18 17:10:09 +0200 | <lambdabot> | b -> (a -> b) -> Maybe a -> b |
2021-08-18 17:10:12 +0200 | <kuribas> | nvm, it is prepending, ... |
2021-08-18 17:11:09 +0200 | <albet70> | when b ~ Cont r a, it can be used to something? |
2021-08-18 17:13:25 +0200 | tengu1 | (~tengu1@cpe-70-121-244-14.neb.res.rr.com) (Quit: Client closed) |
2021-08-18 17:14:05 +0200 | qbt | (~edun@user/edun) |
2021-08-18 17:14:57 +0200 | qbt | (~edun@user/edun) (Remote host closed the connection) |
2021-08-18 17:15:43 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-08-18 17:17:03 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 17:17:36 +0200 | <kuribas> | albet70: probably... |
2021-08-18 17:18:15 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 17:18:51 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-08-18 17:19:14 +0200 | nate1 | (~nate@2600:1010:b02a:2679:7ca9:9738:1435:e8d1) |
2021-08-18 17:20:26 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 17:20:48 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-08-18 17:22:38 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 17:22:56 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-08-18 17:23:23 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-18 17:24:40 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 17:27:54 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) |
2021-08-18 17:28:14 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2021-08-18 17:28:45 +0200 | <c_wraith> | kuribas: prepending is the bad case for nested calls to (++). I expect fromListWith (++) would be pretty bad if there were a lot of duplicated keys |
2021-08-18 17:28:51 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-08-18 17:30:15 +0200 | burnsidesLlama | (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-18 17:30:39 +0200 | skykanin | (~skykanin@115.81-166-221.customer.lyse.net) (Quit: WeeChat 3.2) |
2021-08-18 17:31:01 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-08-18 17:31:48 +0200 | <c_wraith> | kuribas: oh, wait. English is ambiguous in fun ways. I see what you meant by "prepending", and you're right about that. I still think fromListWith (++) would be bad in the worst case. |
2021-08-18 17:32:35 +0200 | <kuribas> | c_wraith: it's prepending like [el] ++ rest, but that's assuming the input has all singletons. |
2021-08-18 17:33:04 +0200 | <kuribas> | c_wraith: or small lists, then it's still fine. |
2021-08-18 17:33:06 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-08-18 17:33:18 +0200 | <kuribas> | actually it's always linear... |
2021-08-18 17:33:40 +0200 | t0zy | (~t0zy@49.207.220.61) |
2021-08-18 17:35:11 +0200 | <c_wraith> | kuribas: a quick check of the source says it's using foldl' |
2021-08-18 17:35:20 +0200 | <c_wraith> | kuribas: which is the bad case for (++) |
2021-08-18 17:36:10 +0200 | <kuribas> | c_wraith: dependends on the direction they apply it? |
2021-08-18 17:36:48 +0200 | <kuribas> | fromListWith (++) [(5,"a"), (5,"b"), (3,"b"), (3,"a"), (5,"a")] == fromList [(3, "ab"), (5, "aba")] |
2021-08-18 17:36:52 +0200 | <kuribas> | (from the docs) |
2021-08-18 17:37:15 +0200 | <kuribas> | that looks like prepending... |
2021-08-18 17:38:15 +0200 | <c_wraith> | oh, weird. that isn't the order I would expect the arguments at all |
2021-08-18 17:38:21 +0200 | <kuribas> | Ah in insertWith: If the key does exist, the function will insert the pair (key, f new_value old_value). |
2021-08-18 17:40:21 +0200 | <c_wraith> | well, I guess that makes fromListWith (++) efficient. But also not at all the operation I'd expect it to be |
2021-08-18 17:41:06 +0200 | <kuribas> | what do you expect then? |
2021-08-18 17:41:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-08-18 17:43:40 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-08-18 17:44:21 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-18 17:46:08 +0200 | <dminuoso> | gambpang: the latter is refactorable, the former not. |
2021-08-18 17:46:10 +0200 | nate1 | (~nate@2600:1010:b02a:2679:7ca9:9738:1435:e8d1) (Ping timeout: 240 seconds) |
2021-08-18 17:46:19 +0200 | <dminuoso> | Or rather "easily refactorable" |
2021-08-18 17:47:45 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 248 seconds) |
2021-08-18 17:48:30 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-18 17:51:15 +0200 | qbt | (~edun@user/edun) |
2021-08-18 17:52:10 +0200 | ubert | (~Thunderbi@178.115.35.155.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2021-08-18 17:52:13 +0200 | <c_wraith> | kuribas: I'd expect it to apply the function to the args in the opposite order such that fromListWith f [(1,a),(1,b),(1,c)] === fromList [(1, (a `f` b) `f' c)] |
2021-08-18 17:52:32 +0200 | <c_wraith> | err. `f` the second time, too. |
2021-08-18 17:53:10 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2021-08-18 17:53:14 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-08-18 17:53:27 +0200 | haykam | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-08-18 17:57:00 +0200 | cheater | (~Username@user/cheater) |
2021-08-18 17:57:36 +0200 | slack1256 | (~slack1256@191.125.227.92) (Remote host closed the connection) |
2021-08-18 17:57:42 +0200 | pavonia | (~user@user/siracusa) |
2021-08-18 17:58:56 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 18:00:36 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-18 18:01:34 +0200 | Cajun | (~Cajun@user/cajun) |
2021-08-18 18:02:36 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-08-18 18:03:10 +0200 | aguapesada | (~aguapesad@2804:14c:8793:8e2f:a406:863b:f810:2d4c) (Quit: CoreIRC for Android - www.coreirc.com) |
2021-08-18 18:04:21 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-08-18 18:07:35 +0200 | <kuribas> | c_wraith: seems they optimized for (++) then :) |
2021-08-18 18:08:43 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 18:09:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 18:12:44 +0200 | favonia | (~favonia@user/favonia) |
2021-08-18 18:13:22 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-08-18 18:15:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-18 18:16:07 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 252 seconds) |
2021-08-18 18:16:25 +0200 | benin0369321 | (~benin@183.82.178.142) |
2021-08-18 18:19:09 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Remote host closed the connection) |
2021-08-18 18:19:58 +0200 | benin036932 | (~benin@183.82.178.142) (Ping timeout: 268 seconds) |
2021-08-18 18:19:59 +0200 | benin0369321 | benin036932 |
2021-08-18 18:20:19 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-18 18:22:58 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-08-18 18:24:44 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-18 18:26:48 +0200 | econo | (uid147250@user/econo) |
2021-08-18 18:36:07 +0200 | <dminuoso> | gambpang: To elaborate on what I said earlier, writing `f . g . h $ x` or `(f . g . h) x` allows for mechanical refactoring since you can just take the composition and float it into a binding, e.g. let q = f . g . h in q x. |
2021-08-18 18:38:34 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 18:39:09 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-08-18 18:40:21 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 18:44:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 18:50:41 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 248 seconds) |
2021-08-18 18:52:00 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 18:52:04 +0200 | ubert | (~Thunderbi@178.115.48.151.wireless.dyn.drei.com) |
2021-08-18 19:02:13 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-08-18 19:02:18 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-08-18 19:04:50 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-08-18 19:05:16 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2021-08-18 19:07:57 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-08-18 19:08:22 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds) |
2021-08-18 19:08:27 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2021-08-18 19:10:12 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-08-18 19:10:28 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2021-08-18 19:12:54 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-08-18 19:13:45 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2021-08-18 19:15:20 +0200 | simon1 | sim590 |
2021-08-18 19:15:56 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-08-18 19:16:11 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-08-18 19:16:18 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 19:16:22 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2021-08-18 19:18:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-18 19:18:49 +0200 | chomwitt | (~chomwitt@ppp-94-67-193-240.home.otenet.gr) (Ping timeout: 252 seconds) |
2021-08-18 19:20:05 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 19:20:13 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-08-18 19:24:39 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-18 19:31:12 +0200 | fef | (~thedawn@user/thedawn) |
2021-08-18 19:34:22 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-08-18 19:40:02 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 245 seconds) |
2021-08-18 19:40:07 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 19:41:10 +0200 | <gambpang> | dminuoso: Yeah, that's a point in favor for sure. Is it likely that the two variants wind up producing the ~same core/machine code? |
2021-08-18 19:41:46 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-18 19:42:06 +0200 | <dminuoso> | Im not confident enough to answer this. |
2021-08-18 19:43:25 +0200 | <dminuoso> | But honestly, that line of thought smells like premature optimization. |
2021-08-18 19:43:37 +0200 | <dminuoso> | I'd worry about writing expressive, readable and maintainable code first. |
2021-08-18 19:44:13 +0200 | <Drew[m]1> | I would be shocked if `let q = f . g . h in q x` did not inline to `(f . g . h) x` |
2021-08-18 19:44:36 +0200 | <dminuoso> | Drew[m]1: I presume they meant ($) vs (.) |
2021-08-18 19:45:03 +0200 | Pickchea | (~private@user/pickchea) |
2021-08-18 19:45:04 +0200 | <dminuoso> | I know GHC has some hacks in place for ($), and if memory serves right ($) actually gets completely elided in the intermediate representation to make runST work. |
2021-08-18 19:45:27 +0200 | <dminuoso> | But Im not confident to make a claim here. |
2021-08-18 19:46:01 +0200 | <Drew[m]1> | {-# INLINE (.) #-} |
2021-08-18 19:46:01 +0200 | <Drew[m]1> | (.) f g = \x -> f (g x) |
2021-08-18 19:46:21 +0200 | <Drew[m]1> | Oops that was meant to be on seperate lines |
2021-08-18 19:46:23 +0200 | chomwitt | (~chomwitt@ppp-94-67-193-240.home.otenet.gr) |
2021-08-18 19:46:47 +0200 | <dminuoso> | And then we begin to have discussions about how the inliner works.. |
2021-08-18 19:46:55 +0200 | <dminuoso> | Or rather the simplifier |
2021-08-18 19:46:58 +0200 | <monochrom> | I cite premature optimization too. If this is in a hotspot, read core and asm code, and/or benchmark. If this is not in a hotspot, why are you worrying. |
2021-08-18 19:47:00 +0200 | <Drew[m]1> | Yeah |
2021-08-18 19:49:19 +0200 | <monochrom> | And even if it's in a hotspot and the more humane code is under-optimized, the GHC people will love to know your use case, then go think about how to optimize it. There is still a possible future in which the humane version is optimized. |
2021-08-18 19:51:10 +0200 | <dminuoso> | I mean granted, there's certain behaviors that generally lead to more performant code. |
2021-08-18 19:52:13 +0200 | <dminuoso> | But that's something you generally develop with experience, and are often still wrong. |
2021-08-18 19:52:37 +0200 | <monochrom> | Drew[m]1, it did come out as seperate lines, no worries, your IRC client split it for you :) |
2021-08-18 19:52:49 +0200 | <dminuoso> | `String`, despite having a horribly inefficient cache-hostile representation, seems to perform generally good enough to not be a hot spot in any of my programs.. |
2021-08-18 19:52:57 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-08-18 19:53:11 +0200 | <dminuoso> | At least not a measurable/relevant hotspot |
2021-08-18 19:53:54 +0200 | <davean> | tring HIGHLY depends on wher in the code it is, also when it is a problem its generally a very spread out problem |
2021-08-18 19:53:59 +0200 | <monochrom> | Idiomatic Haskell tends not to do heavy string processing in the first place anyway. This is not Perl or Tcl or shell script. |
2021-08-18 19:54:04 +0200 | <davean> | But it can be the best option in some cases |
2021-08-18 19:57:29 +0200 | <monochrom> | HTML scrappers would need optimized strings. But HTML scrappers are no longer hip this year. (Yes, 5 or 10 years ago it was hip, every other day someone would come here saying "I'm writing an HTML scrapper, this is taking 1GB for a 100MB file...") |
2021-08-18 19:59:03 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-08-18 20:01:23 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-18 20:02:04 +0200 | <maerwald> | ppl are doing that with haskell |
2021-08-18 20:02:06 +0200 | <maerwald> | see xeno |
2021-08-18 20:02:48 +0200 | <maerwald> | Here's a maintained fork https://gitlab.com/migamake/xeno |
2021-08-18 20:03:22 +0200 | <maerwald> | oddly, it's faster than some C parsers |
2021-08-18 20:03:34 +0200 | <maerwald> | but it's not idiomatic haskell in any sense |
2021-08-18 20:03:49 +0200 | <maerwald> | just bytestring trickery optimizing to pointer tricks |
2021-08-18 20:04:45 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-18 20:04:48 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) (Read error: Connection reset by peer) |
2021-08-18 20:05:13 +0200 | <davean> | maerwald: I don't know what Haskell you're reading, pointer tricks on bytestrings is what most of the Haskell I've read lately is all about! :) |
2021-08-18 20:05:42 +0200 | <maerwald> | I'll be impressed if we have a fast streamly based XML parser |
2021-08-18 20:05:44 +0200 | <maerwald> | not before |
2021-08-18 20:06:11 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-08-18 20:06:37 +0200 | <monochrom> | Well yeah, ever since bytestring, HTML scrapper performance became a solved problem. |
2021-08-18 20:07:22 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-08-18 20:08:54 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-18 20:10:59 +0200 | keutoi | (~keutoi@223.238.95.231) |
2021-08-18 20:16:39 +0200 | aegon | (~mike@174.127.249.180) |
2021-08-18 20:22:18 +0200 | <dminuoso> | code optimizing to memory tricks is a fairly legit and common thing to do to make code fast.. |
2021-08-18 20:22:25 +0200 | <dminuoso> | just saying.. |
2021-08-18 20:27:03 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-08-18 20:27:22 +0200 | <monochrom> | :) |
2021-08-18 20:27:55 +0200 | <aegon> | huh, how do you go about testing somethign that requires a postgresql connection trying to reason about testing functions that interact with postgresql simple, should i create a dummy db and test against that :? |
2021-08-18 20:28:19 +0200 | <dminuoso> | aegon: That's probably the most common way, yes. |
2021-08-18 20:28:58 +0200 | <dminuoso> | Depending on what you want to test, possibly mocking or some tagless final encoding could also help. Also, if you can write code that is portable with sqlite as well, you can use sqlite for testing. |
2021-08-18 20:29:41 +0200 | <dminuoso> | Or you can use unit tests if you can decouple the logic from the database |
2021-08-18 20:29:51 +0200 | <dminuoso> | And bypass the need for a database entirely |
2021-08-18 20:30:06 +0200 | <maerwald> | dminuoso: I dunno, in haskell it feels particularly fragile (and often is), because how things optimize/inline may change drastically from GHC to GHC and library version |
2021-08-18 20:31:29 +0200 | keutoi | (~keutoi@223.238.95.231) (Ping timeout: 248 seconds) |
2021-08-18 20:33:07 +0200 | keutoi | (~keutoi@157.47.26.152) |
2021-08-18 20:34:25 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-08-18 20:36:24 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-08-18 20:48:24 +0200 | keutoi | (~keutoi@157.47.26.152) (Quit: leaving) |
2021-08-18 20:48:25 +0200 | t0zy | (~t0zy@49.207.220.61) (Remote host closed the connection) |
2021-08-18 20:48:40 +0200 | t0zy | (~t0zy@49.207.220.61) |
2021-08-18 20:51:15 +0200 | <dsal> | aegon: I've done something like this by modeling my effects separately in a class and then having different effect providers. This also helped me when I suspected I had a performance issue in my DB layer which ended up being unaffected by a memory-only provider. |
2021-08-18 20:54:32 +0200 | <gambpang> | In case ppl care, the context is that we prefer `f . g . h $ x` (or `(f . g . h) x`) at work exactly because of that "obvious factorization" and nobody knew what if any costs there were over using chaining ($) |
2021-08-18 20:55:28 +0200 | <Cale> | gambpang: The compiled code will typically be identical |
2021-08-18 20:56:18 +0200 | d0ku | (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) |
2021-08-18 20:58:43 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 20:59:10 +0200 | d0ku | (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) (Client Quit) |
2021-08-18 20:59:21 +0200 | d0ku | (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) |
2021-08-18 21:04:26 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-08-18 21:04:42 +0200 | tput | (~tim@S0106a84e3fe54613.ed.shawcable.net) |
2021-08-18 21:08:24 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-08-18 21:14:51 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 21:14:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 21:17:46 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2021-08-18 21:18:28 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-18 21:18:41 +0200 | Cajun | (~Cajun@user/cajun) (Quit: Client closed) |
2021-08-18 21:18:54 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 21:21:24 +0200 | Cajun | (~Cajun@user/cajun) |
2021-08-18 21:22:44 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-08-18 21:40:10 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2021-08-18 21:42:06 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-08-18 21:42:18 +0200 | ystael | (~ystael@user/ystael) (Read error: Connection reset by peer) |
2021-08-18 21:43:50 +0200 | gethuen | (uid502979@id-502979.stonehaven.irccloud.com) |
2021-08-18 21:45:25 +0200 | burnside_ | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 21:45:26 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-08-18 21:46:09 +0200 | alx741 | (~alx741@181.196.68.125) (Ping timeout: 248 seconds) |
2021-08-18 21:48:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-18 21:49:08 +0200 | <aegon> | dsal: dminuoso: roger that I'll try each and see how things vary maybe i should have used persistant vs postgresql-simple |
2021-08-18 21:52:40 +0200 | fabfianda | (~fabfianda@37.183.255.57) (Ping timeout: 240 seconds) |
2021-08-18 21:57:55 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-08-18 21:59:39 +0200 | alx741 | (~alx741@181.196.69.234) |
2021-08-18 22:01:58 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) |
2021-08-18 22:03:37 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-18 22:05:40 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 268 seconds) |
2021-08-18 22:11:47 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-08-18 22:12:23 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-18 22:12:34 +0200 | chisui | (~chisui@200116b8681e48004d4a4305e410a0e6.dip.versatel-1u1.de) |
2021-08-18 22:13:39 +0200 | burnside_ | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 22:13:44 +0200 | <chisui> | Hey, does anyone have a clue why the sound is skipping in this application? https://github.com/chisui/fsynth/blob/master/src/Main.hs I fear that the reason is that it's the context switch from the generating thread to the writing one. |
2021-08-18 22:14:08 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 22:16:11 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-08-18 22:16:22 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 22:16:32 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-18 22:16:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-18 22:17:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 22:17:24 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2021-08-18 22:18:08 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-18 22:18:41 +0200 | <shapr> | chisui: does it help any to spawn off play as a separate thread? |
2021-08-18 22:19:12 +0200 | <shapr> | you have -threaded, so I'd guess garbage collection is already on a separate thread? |
2021-08-18 22:19:25 +0200 | <dsal> | I'm suspicious of `threadDelay 50` |
2021-08-18 22:19:53 +0200 | <davean> | shapr: uh? Is it using hte pauseless GC? |
2021-08-18 22:19:59 +0200 | <davean> | Otherwise thats not how threads and GC work |
2021-08-18 22:20:14 +0200 | <chisui> | shapr: spawning a new thread doesn't help :( |
2021-08-18 22:20:54 +0200 | <chisui> | dsal: the delay is just so that the buffer doesn't overflow. I checked and the buffer is always full enough when popped. |
2021-08-18 22:20:55 +0200 | <dsal> | Is it using too much CPU, or too little? |
2021-08-18 22:21:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-18 22:21:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
2021-08-18 22:21:48 +0200 | <chisui> | dsal: Oh, it uses 100% on both threads it got. |
2021-08-18 22:22:07 +0200 | <dsal> | `threadDelay` is often used as an approximation for a solution to a different problem. |
2021-08-18 22:23:30 +0200 | <davean> | Yah, you usually want to wait until a specific time has happened, or something |
2021-08-18 22:23:44 +0200 | <chisui> | dsal: Yeah, I should probably use something like a `TBQueue`. Unfortunately sdl2 requires the callback to be in `IO` |
2021-08-18 22:24:03 +0200 | <dsal> | Sounds like too much CPU. :) I'd think this wouldn't be particularly expensive. Profiling might help you understand where all the CPU is going, but in general, I don't think any work should be done if there's nothing that needs computation. |
2021-08-18 22:24:04 +0200 | <dsal> | :t atomically |
2021-08-18 22:24:05 +0200 | <lambdabot> | error: Variable not in scope: atomically |
2021-08-18 22:24:09 +0200 | <dsal> | boo |
2021-08-18 22:24:17 +0200 | <dsal> | % :t atomically |
2021-08-18 22:24:17 +0200 | <yahb> | dsal: STM a -> IO a |
2021-08-18 22:24:57 +0200 | <chisui> | is that safe to use in a multythreaded environment? |
2021-08-18 22:25:07 +0200 | <davean> | of course |
2021-08-18 22:25:09 +0200 | <davean> | thats the point |
2021-08-18 22:25:48 +0200 | <dsal> | Most other languages with multithreading support wish they could do this. :) |
2021-08-18 22:25:59 +0200 | <tomsmeding> | chisui: the thing about STM is that all the STM actions within a single 'atomically' block should happen, well, atomically; how it does that in practice is try running it, and if it detects another thread has done something simultaneously, it rolls back and tries again |
2021-08-18 22:26:40 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-08-18 22:27:04 +0200 | <tomsmeding> | where a mutex is "pessimistic concurrency", i.e. always paying the cost of locking expecting that races are going to happen often, STM is "optimistic concurrency", i.e. just going for it and paying when there actually ended up being a race |
2021-08-18 22:27:32 +0200 | <davean> | tomsmeding: Uh, thats an implimentaiton detail that can vary |
2021-08-18 22:27:37 +0200 | <tomsmeding> | I know |
2021-08-18 22:27:56 +0200 | <tomsmeding> | but I think it's helpful in getting an intuitive understanding about what's even going on here, and how it _can_ even be implemented |
2021-08-18 22:28:01 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 252 seconds) |
2021-08-18 22:28:13 +0200 | <davean> | I mean it can be implimented as a mutex too |
2021-08-18 22:28:14 +0200 | <tomsmeding> | I often find that when I have no idea how something could even be implemented, I have no feeling for how to work with it |
2021-08-18 22:28:21 +0200 | <tomsmeding> | okay fair |
2021-08-18 22:28:35 +0200 | <tomsmeding> | then read it as a bit of evangelising about why STM is cool :) |
2021-08-18 22:28:38 +0200 | <stevenxl> | Can someone point out to me what is wrong with ths stack.yaml file: |
2021-08-18 22:28:40 +0200 | <davean> | Ok :) |
2021-08-18 22:28:45 +0200 | <tomsmeding> | or, why ghc's implementation of it is cool |
2021-08-18 22:28:48 +0200 | <stevenxl> | https://www.irccloud.com/pastebin/nUoRzgeh/ |
2021-08-18 22:28:58 +0200 | <davean> | tomsmeding: Its no the the coolest! |
2021-08-18 22:29:10 +0200 | stevenxl | Gives me a warning "Unrecognized field in Snapshot: extra-deps". |
2021-08-18 22:29:12 +0200 | <davean> | tomsmeding: people have played with ones that use HTM, ones that have guarrenteed progress and fairness ... |
2021-08-18 22:29:28 +0200 | <davean> | well, I don't know that the HTM ever happened |
2021-08-18 22:30:41 +0200 | <stevenxl> | https://www.irccloud.com/pastebin/066TZS1X/ |
2021-08-18 22:30:51 +0200 | stevenxl | Even that simple file gives me an error, and that is supposedly the default. |
2021-08-18 22:30:58 +0200 | <chisui> | Ok, I'll will change to stm. Somehow I'm still not convinced that this will fix the issue |
2021-08-18 22:31:53 +0200 | <tomsmeding> | stevenxl: can you give the full command you're invoking, and the full error? |
2021-08-18 22:32:19 +0200 | stevenxl | Hi tomsmeding - thank you for the offer to help. Apparently, A custom snapshot doesn't use extra-deps, they go under packages. |
2021-08-18 22:33:02 +0200 | <tomsmeding> | oh this is not a stack.yaml of a project? |
2021-08-18 22:33:47 +0200 | <dsal> | chisui: My guess is that the issue is that you're burning all the cores and putting in time delays to try to artificially slow stuff down. Just organize information exchanges with queues and have a thread keeping it populated and let the other one read from it when it needs it. Shouldn't be using much CPU. |
2021-08-18 22:34:08 +0200 | stevenxl | tomsmeding: I completely missed the fact that we have a `stack.yaml` which points to a resolver. |
2021-08-18 22:34:24 +0200 | ystael | (~ystael@user/ystael) |
2021-08-18 22:35:05 +0200 | <chisui> | dsal: It' would be great if there was a streaming library that supports this. |
2021-08-18 22:36:04 +0200 | <dsal> | Asking for data from IO is just `atomically . readTBQueue` |
2021-08-18 22:36:16 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
2021-08-18 22:36:23 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-08-18 22:36:35 +0200 | <adamCS> | chisui: Maybe streamly? (https://hackage.haskell.org/package/streamly) |
2021-08-18 22:37:05 +0200 | <chisui> | should I use a bare TBQueue or chunk the data further? |
2021-08-18 22:37:06 +0200 | jolly | (~jolly@208.180.97.158) |
2021-08-18 22:37:21 +0200 | <chisui> | adamCS: thanks, I'll take a look |
2021-08-18 22:37:39 +0200 | <davean> | chisui: lots of streaming libraries can do this sort of thing |
2021-08-18 22:38:07 +0200 | hexfive | (~eric@50.35.83.177) |
2021-08-18 22:38:22 +0200 | <dsal> | chisui: What you decide `a` should be there is up to you. Easy enough to change. |
2021-08-18 22:40:07 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-08-18 22:40:16 +0200 | <tomsmeding> | chisui: how many things are you planning on pushing on that queue per second |
2021-08-18 22:40:33 +0200 | <tomsmeding> | if that's 44100 things, then probably chunk that a bit :) |
2021-08-18 22:40:44 +0200 | cheater | (~Username@user/cheater) |
2021-08-18 22:41:05 +0200 | <chisui> | tomsmeding: It's currently running on a sample rate of 48k ;) |
2021-08-18 22:41:23 +0200 | <davean> | chisui: haha, whats your latency requirement? |
2021-08-18 22:41:31 +0200 | <davean> | chisui: use that to calculate chunk size |
2021-08-18 22:41:37 +0200 | <davean> | but 48kps is nothing |
2021-08-18 22:41:53 +0200 | <davean> | I do that many web requests in a thread |
2021-08-18 22:43:05 +0200 | <tomsmeding> | TBQueue is the classic two-lists implementation of a queue, so it will do a list reversal of roughly the whole queue every once in a while |
2021-08-18 22:43:27 +0200 | <tomsmeding> | while throughput is fine, that's probably not great for latency, depending on exactly how large the queue will be |
2021-08-18 22:43:28 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-18 22:43:36 +0200 | <davean> | chisui: I'd probably make the chunks half the size of your latency requirement |
2021-08-18 22:44:10 +0200 | <davean> | as a first default |
2021-08-18 22:44:22 +0200 | <chisui> | I think that sdl always requests a fixed size chunk. I'll just use that |
2021-08-18 22:45:01 +0200 | <davean> | chisui: last I knew it was configurable |
2021-08-18 22:45:17 +0200 | pompez | (~martin@user/pompez) (Quit: WeeChat 3.2) |
2021-08-18 22:45:23 +0200 | <chisui> | yeah, but once it's configured it doesn't change randomly right? |
2021-08-18 22:45:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-18 22:46:35 +0200 | <davean> | chisui: right, but you need to pick the size of that based on your latency requirement, so its just moving the problem |
2021-08-18 22:55:37 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
2021-08-18 22:57:00 +0200 | fvr | (uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-18 23:01:25 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-18 23:01:42 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:f185:3872:6a89:c741) (Ping timeout: 245 seconds) |
2021-08-18 23:01:56 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-18 23:03:39 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) |
2021-08-18 23:03:52 +0200 | wrengr_away | wrengr |
2021-08-18 23:05:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-18 23:08:19 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-08-18 23:08:50 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-08-18 23:09:31 +0200 | favonia | (~favonia@user/favonia) |
2021-08-18 23:10:22 +0200 | <chisui> | Thank's everyone. Using TBQueue together with sensibly sized chunks worked wonders. |
2021-08-18 23:11:56 +0200 | <tomsmeding> | 🎉 |
2021-08-18 23:14:31 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-08-18 23:15:30 +0200 | <monochrom> | :) |
2021-08-18 23:15:58 +0200 | hexfive | (~eric@50.35.83.177) (Quit: WeeChat 3.0) |
2021-08-18 23:17:35 +0200 | chisui | (~chisui@200116b8681e48004d4a4305e410a0e6.dip.versatel-1u1.de) (Quit: Client closed) |
2021-08-18 23:17:46 +0200 | <monochrom> | Yeah in your case you just go "atomically (enqueue this)" and "atomically (dequeue that)" and that's your IO level. |
2021-08-18 23:18:00 +0200 | chisui | (~chisui@200116b8681e48004d4a4305e410a0e6.dip.versatel-1u1.de) |
2021-08-18 23:18:54 +0200 | <monochrom> | The STM level needs to be more fine-grained because "enqueue this" for example is multiple lines of STM code. |
2021-08-18 23:19:10 +0200 | <monochrom> | or more precisely, multiple operations. |
2021-08-18 23:20:10 +0200 | <chisui> | monochrom: are you talking about the current version I pushed? |
2021-08-18 23:20:11 +0200 | <monochrom> | And other people will also have use cases requiring "atomically (enqueue this and dequeue something else)". |
2021-08-18 23:20:24 +0200 | <monochrom> | I think yes. I haven't checked. |
2021-08-18 23:21:10 +0200 | ubert | (~Thunderbi@178.115.48.151.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2021-08-18 23:21:21 +0200 | <tomsmeding> | chisui: you just missed one message https://ircbrowse.tomsmeding.com/browse/lchaskell?id=145828#trid145828 |
2021-08-18 23:22:05 +0200 | <chisui> | Ah, that makes sense |
2021-08-18 23:22:18 +0200 | <monochrom> | Oh, that. I missed that too haha. |
2021-08-18 23:30:49 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-08-18 23:33:07 +0200 | pgib | (~textual@173.38.117.86) |
2021-08-18 23:34:40 +0200 | qbt | (~edun@user/edun) (Ping timeout: 240 seconds) |
2021-08-18 23:38:11 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-08-18 23:44:23 +0200 | <dsal> | chisui: do you still need that IORef? |
2021-08-18 23:45:08 +0200 | <chisui> | dsal: I use it to fill a single chunk. |
2021-08-18 23:45:09 +0200 | <dsal> | I guess I don't quite understand that part. |
2021-08-18 23:50:08 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-08-18 23:53:55 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) |
2021-08-18 23:56:37 +0200 | zebrag | (~chris@user/zebrag) |
2021-08-18 23:58:47 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |