Logs: freenode/#haskell
| 2020-09-30 21:03:05 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2020-09-30 21:03:11 | <monochrom> | and well-understood |
| 2020-09-30 21:03:11 | <Cale> | and yeah, typically you're going to use bindings to stuff that was optimised at a lower level |
| 2020-09-30 21:03:54 | <monochrom> | It is possible to replicate the same expertise in Haskell if you prepare to spend the same amount of person-years. |
| 2020-09-30 21:04:09 | <monochrom> | But don't expect to take merely days. |
| 2020-09-30 21:04:56 | <aldessa> | i'd be writing my own numerical methods because i'm doing a course in them; |
| 2020-09-30 21:05:08 | <monochrom> | Ah OK then just cause. |
| 2020-09-30 21:05:27 | × | st8less quits (~st8less@ip72-204-59-82.fv.ks.cox.net) (Ping timeout: 240 seconds) |
| 2020-09-30 21:06:05 | <monochrom> | If you aren't aware of how Haskell is compiled to machine code and how laziness is done this way, then expect to suffer inefficiency. |
| 2020-09-30 21:06:30 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 2020-09-30 21:06:43 | <monochrom> | In fact not only constant-multiplier inefficiency. You could be spending linear space where constant space should be enough. |
| 2020-09-30 21:06:54 | <dolio> | Blaming it all on laziness is naive. |
| 2020-09-30 21:07:06 | <monochrom> | I know. |
| 2020-09-30 21:07:19 | <dolio> | If you want efficiency, you need to understand many things about how the compiler works. |
| 2020-09-30 21:07:21 | <monochrom> | But for most numerical algorithms, eagerness is the better default. |
| 2020-09-30 21:07:27 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 2020-09-30 21:07:28 | → | rprije joins (~rprije@203.214.95.251) |
| 2020-09-30 21:07:29 | <aldessa> | i was mostly concerned about memory management |
| 2020-09-30 21:07:29 | <monochrom> | Yes that. |
| 2020-09-30 21:07:47 | <Cale> | Laziness will also be the thing that trips up beginners a bunch, even if there are cases where it can be put to excellent use |
| 2020-09-30 21:08:13 | <monochrom> | Especially if you're transcribing imperative numerical algorithms such as from most textbooks to Haskell. They were written for eager evaluation. |
| 2020-09-30 21:08:15 | <dolio> | monochrom: I know you know that. :) |
| 2020-09-30 21:08:18 | <p0a> | It suffices to say that if you do numerical optimizatio in Haskell you'll be learning two (at least) things at once |
| 2020-09-30 21:08:20 | <monochrom> | OK! |
| 2020-09-30 21:08:29 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
| 2020-09-30 21:08:49 | <aldessa> | i don't know any languages other than Haskell so I'd like to avoid learning another one |
| 2020-09-30 21:08:54 | <aldessa> | anyhow |
| 2020-09-30 21:09:06 | <aldessa> | is foreign ptr meant to only be used for foreign bindings? it seems to be that way |
| 2020-09-30 21:09:07 | <sm[m]> | quite right |
| 2020-09-30 21:09:31 | <monochrom> | Of course if you follow John Hughes's paper and turn your Newton's method into a "generate infinite list of iterates" and a "consume until convergence" then laziness is required. |
| 2020-09-30 21:09:45 | <monochrom> | (But how many numerical method students are going to do that?) |
| 2020-09-30 21:09:56 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 2020-09-30 21:09:58 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2020-09-30 21:10:26 | <dolio> | I just wanted to make sure it's clear in this conversation. People automatically jump to blame laziness, but the truth is you need to know what you're doing in almost any language, and laziness is often used as a scapegoat. |
| 2020-09-30 21:10:31 | <p0a> | consume until convergence sounds scary |
| 2020-09-30 21:10:52 | <p0a> | You could get caught in infinite loops with Newton's method I think :P |
| 2020-09-30 21:11:05 | <monochrom> | p0a: Like this: http://www.cs.utoronto.ca/~trebla/CSCC24-2020-Summer/03-haskell-evaluation.html#lazygood |
| 2020-09-30 21:11:27 | <monochrom> | Oh, every textbook pseudocode for Newton's method has the same problem. |
| 2020-09-30 21:11:30 | <p0a> | ah with x^3 - b = 0 it won't happen |
| 2020-09-30 21:11:37 | × | olliey quits (5f92092d@95.146.9.45) (Remote host closed the connection) |
| 2020-09-30 21:11:55 | <monochrom> | But I stole this idea from John Hughes's "why FP matters" |
| 2020-09-30 21:12:18 | <p0a> | very nice |
| 2020-09-30 21:12:18 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 2020-09-30 21:12:33 | <monochrom> | In hindsight, a lot of us agree that it's really "why FP with laziness matters" |
| 2020-09-30 21:12:46 | → | mu_ joins (~mu@unaffiliated/mu) |
| 2020-09-30 21:13:42 | <Cheery> | subprocess.call(['rsync', '-r', '--delete', src, dst]) |
| 2020-09-30 21:13:49 | <p0a> | I'm going to read your link soon. I have a few todo reads on my list, just ticked off higher-kinded data; I want to learn a bit about FFI next and also your link |
| 2020-09-30 21:14:00 | <Cheery> | google says System.Process gives equivalent. |
| 2020-09-30 21:14:20 | <monochrom> | dolio is right, the criterion for performance is "you understand the compiler". And this is true of Fortran and C, too. |
| 2020-09-30 21:14:55 | <monochrom> | And LAPACK is successful because the authors do understand Fortran compilers. |
| 2020-09-30 21:15:14 | <xsperry> | Cheery, there's also this (several examples on that page): https://hackage.haskell.org/package/typed-process |
| 2020-09-30 21:15:30 | <monochrom> | For example they know that "invariant code motion" is a thing. |
| 2020-09-30 21:16:33 | <motte> | anyone have experience with WAI? how can i access the basic auth username in my Application code? should i try to extract it from the request headers or use a middleware with Vault or something? |
| 2020-09-30 21:16:52 | <Cheery> | Is there monoid for html/xml? |
| 2020-09-30 21:16:57 | × | knupfer quits (~Thunderbi@200116b82ca43f005c40053ed66b0b42.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
| 2020-09-30 21:18:05 | <Cheery> | well I miscommunicated, but some agreed upon way to construct html is what I'm looking for |
| 2020-09-30 21:18:07 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 2020-09-30 21:18:14 | × | ryansmccoy quits (~ryansmcco@156.96.151.132) (Ping timeout: 272 seconds) |
| 2020-09-30 21:18:29 | <Cheery> | eg. (Tag "item" attrs body) |
| 2020-09-30 21:18:32 | <aldessa> | monochrom, that's pretty true. I used SPJ's book to make a broken G machine implementation and you really see how hard it is to do strictness analysis and other stuff. |
| 2020-09-30 21:18:41 | <Cheery> | then forming <item ...>stuff</item> |
| 2020-09-30 21:18:52 | → | ryansmccoy joins (~ryansmcco@193.37.254.27) |
| 2020-09-30 21:19:14 | <aldessa> | i read this paper http://www.leafpetersen.com/leaf/publications/ifl2013/haskell-gap.pdf a while ago; how does GHC compare to the intell haskell research compiler? |
| 2020-09-30 21:20:00 | <monochrom> | Hrm! I thought Intel only had a research C compiler. |
| 2020-09-30 21:20:20 | <phadej> | icc is not a research compiler |
| 2020-09-30 21:20:32 | <Rembane> | Cheery: I'm quite fond of lucid: https://hackage.haskell.org/package/lucid |
| 2020-09-30 21:20:40 | → | son0p joins (~son0p@181.136.122.143) |
| 2020-09-30 21:20:52 | <motte> | nvm got it, there is a function just for that |
| 2020-09-30 21:20:55 | <aldessa> | they wrote a whole program optimising compiler for Haskell |
| 2020-09-30 21:21:25 | → | machinedgod joins (~machinedg@d67-193-126-196.home3.cgocable.net) |
| 2020-09-30 21:22:03 | × | chaosmasttter quits (~chaosmast@p200300c4a70aba018412238bea948280.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 2020-09-30 21:22:13 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 2020-09-30 21:22:20 | × | p0a quits (~user@unaffiliated/p0a) (Quit: bye) |
| 2020-09-30 21:22:28 | hackage | ordinal 0.1.2.0 - Convert numbers to words in different languages. https://hackage.haskell.org/package/ordinal-0.1.2.0 (wvanonsem90) |
| 2020-09-30 21:22:43 | → | mu_ joins (~mu@unaffiliated/mu) |
| 2020-09-30 21:23:16 | <aldessa> | thanks everyone for the caution but because i'm a student the speed really doesn't matter that much |
| 2020-09-30 21:23:20 | <aldessa> | i'm going to go with GHC primitives if i can |
| 2020-09-30 21:24:14 | → | madjestic joins (~madjestic@86-88-72-244.fixed.kpn.net) |
| 2020-09-30 21:27:48 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 2020-09-30 21:30:06 | × | voyons_calisse quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 2020-09-30 21:30:35 | → | voyons_calisse joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 2020-09-30 21:30:45 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 2020-09-30 21:31:32 | → | falafel joins (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
| 2020-09-30 21:32:37 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 2020-09-30 21:32:43 | → | mu__ joins (~mu@unaffiliated/mu) |
| 2020-09-30 21:32:58 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2020-09-30 21:35:21 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 260 seconds) |
| 2020-09-30 21:41:00 | → | heebo joins (~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net) |
| 2020-09-30 21:41:59 | <justsomeguy> | (Sorry about the away messages; I was having keyboard problems.) |
| 2020-09-30 21:42:08 | × | mananamenos_ quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 265 seconds) |
| 2020-09-30 21:42:09 | <heebo> | has haskell performance significantly improved in ghc 8? |
| 2020-09-30 21:42:12 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 2020-09-30 21:42:18 | <heebo> | ive been away from the scene for a while |
| 2020-09-30 21:42:42 | → | mu_ joins (~mu@unaffiliated/mu) |
| 2020-09-30 21:43:08 | <heebo> | im also interested in finding out about hls , just installed it with ghcup , but unsure how to configure emacs to use it |
| 2020-09-30 21:43:31 | <maerwald> | heebo: https://github.com/haskell/haskell-language-server#using-haskell-language-server-with-emacs |
| 2020-09-30 21:44:08 | <heebo> | oh thanks!!! just what the doctor ordered! |
| 2020-09-30 21:45:56 | <sm[m]> | improved since when heebo ? |
| 2020-09-30 21:45:57 | × | AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
| 2020-09-30 21:46:11 | <maerwald> | since 8 |
All times are in UTC.