Home liberachat/#haskell: Logs Calendar

Logs on 2022-05-27 (liberachat/#haskell)

00:00:52 × Pickchea quits (~private@user/pickchea) (Ping timeout: 258 seconds)
00:02:08 zebrag joins (~chris@user/zebrag)
00:02:20 tremon is now known as tremon_
00:08:50 euandreh joins (~euandreh@2804:14c:33:966c:2059:6e22:1326:6607)
00:16:03 <Axman6> we already have #haskell-in-depth mostly for that sort of discussion, FYI
00:21:01 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:21:01 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
00:22:45 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:23:37 × jollygood2 quits (www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (Ping timeout))
00:24:50 <Axman6> geekosaur: I was going to say I thought IBM already did that, but it's their "i" virtual instruction set, where pointers are defined to be 128 bits and translated to the native size on the host
00:26:27 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
00:29:26 × vysn quits (~vysn@user/vysn) (Ping timeout: 255 seconds)
00:32:49 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:3962:822c:3b35:6c99) (Remote host closed the connection)
00:40:41 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
00:40:59 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:3962:822c:3b35:6c99)
00:41:36 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:44:51 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
00:46:23 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:47:43 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
00:47:53 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:50:08 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 255 seconds)
00:51:17 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
00:54:45 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
00:55:53 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
00:57:13 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 258 seconds)
01:02:56 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
01:02:56 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
01:03:11 gentauro joins (~gentauro@user/gentauro)
01:07:37 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:07:37 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:07:37 wroathe joins (~wroathe@user/wroathe)
01:10:00 benin joins (~benin@183.82.205.79)
01:14:10 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
01:20:50 wroo^ joins (~wroo@173-160-91-30-atlanta.hfc.comcastbusiness.net)
01:23:29 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
01:26:38 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
01:28:41 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
01:31:15 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
01:34:35 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
01:37:30 xff0x joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
01:41:53 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
01:44:13 × mixfix41 quits (~sdenynine@user/mixfix41) (Ping timeout: 256 seconds)
01:44:38 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:45:23 andrey__ joins (~andrey@p200300dbcf0c4300976b5d73a51b6ad8.dip0.t-ipconnect.de)
01:47:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds)
01:47:59 × andrey_ quits (~andrey@p200300dbcf12d50000223011ec3a0f6f.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
01:49:08 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
01:50:41 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
01:58:42 POGtastic joins (~mike@2601:1c0:6000:fe1:319d:5717:f15a:5d14)
01:59:52 × pgib quits (~textual@173.38.117.71) (Ping timeout: 244 seconds)
02:00:05 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 256 seconds)
02:01:38 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
02:02:38 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
02:04:27 <POGtastic> Howdy all. I'm writing a Lisp interpreter, and I'm looking at how to implement `set!`. All Lisp expressions are of type Expr. My pure `eval` function is of type `Map String Expr` -> Expr -> Expr; the map stores variables, and we eval the expression to another expression. I *think* that I want to change this so that I return a tuple (Expr, Map String Expr) - the result, and the new state. However,
02:04:29 <POGtastic> this doesn't quite like up with the State monad - the State monad is along the lines of `s -> (a, s)`, and instead I want something of `a -> (a, s)`. Is there such a pattern?
02:08:17 <EvanR> I suspect you don't mean a -> (a, s)
02:08:43 <sm2n> POGtastic: I think s -> (a, s) is what you want. The environment is the state you're passing around
02:08:45 <EvanR> since that is letterphonically (technical term) the same as s -> (a,s)
02:09:05 <jackdk> `eval :: Map String Expr -> Expr -> (Expr, Map String Expr)` sounds right for now (you might need something richer once you start dealing with scope)
02:09:13 <sm2n> You probably just also want a function a -> s -> (a, s)
02:09:23 <sm2n> (which is basically what your eval is)
02:09:53 <Axman6> @unmtl State s a
02:09:53 <lambdabot> s -> (a, s)
02:09:54 <POGtastic> jackdk: Scope is achieved by `union`ing maps of local scope with the outer scope.
02:10:10 <sm2n> Anyway, I have a question: does anyone know how to hook up Cabal and Alex (and Happy)? I appear to be in cabal hell of sorts
02:10:25 <sm2n> (or if anyone knows of a working somewhat minimal example)
02:10:31 <Axman6> sm2n: not without knowing anything about your project or the errors you're getting
02:10:35 <Axman6> @where paste
02:10:35 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
02:10:36 <jackdk> POGtastic: how do you know which map to write back into when performing a `(set!)`?
02:10:43 <sm2n> sure, I'll do that
02:10:51 <POGtastic> jackdk: oh no, I've bamboozled myself
02:10:53 <EvanR> dynamic scope xD
02:10:58 <anon15041149> is my base case here fine? https://paste.tomsmeding.com/Ih9Sefze
02:12:02 <anon15041149> I need to use recursion and not just power n k = n^k
02:12:16 <jackdk> anon15041149: what about raising numbers that aren't 0?
02:13:16 <anon15041149> jackdk: for example?
02:13:28 <jackdk> anon15041149: 6^0
02:13:47 <Axman6> > 6^0
02:13:49 <lambdabot> 1
02:13:57 <monochrom> It is possible that the base case can assert that generally power anything 0 = 1.
02:13:58 <anon15041149> power n 0 = 1
02:14:23 <monochrom> Another way to put it is that you just have to do induction on the exponent.
02:15:05 <POGtastic> thinking some more - should I reverse the arguments of `eval`? Having `eval :: Exp -> Map String Expr -> (Expr, Map String Expr)` means that I can call `state (eval expr)` and get a `State (Map String Expr) Expr`, I think
02:15:52 <POGtastic> (not that it matters since there's `flip`, but that would require more flips and reverses than missy elliot
02:16:58 <sm2n> https://paste.tomsmeding.com/7WZjeEEO
02:16:59 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
02:17:06 <anon15041149> monochrom: Oh I think I got it
02:17:39 <anon15041149> https://paste.tomsmeding.com/svjkwWS1
02:18:46 [_] is now known as [itchyjunk]
02:18:58 × POGtastic quits (~mike@2601:1c0:6000:fe1:319d:5717:f15a:5d14) (Quit: WeeChat 3.5)
02:19:15 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
02:19:56 <EvanR> > 0^0
02:19:57 <lambdabot> 1
02:20:01 <EvanR> \o/
02:20:13 <Axman6> you CAN make somethign from nothing!
02:20:17 <Axman6> something too
02:22:12 <Clint> sm2n: Tiger/Main.hs ≠ Main.hs ?
02:22:38 <anon15041149> EvanR: is that the right solution using recursion?
02:22:58 <monochrom> Yes.
02:23:07 <anon15041149> monochrom: thanks :)
02:23:52 frost joins (~frost@user/frost)
02:29:32 jargon joins (~jargon@184.101.87.126)
02:31:49 <anon15041149> I'm kinda stuck on the ilog3 question :/
02:33:22 <Axman6> what's "the ilog3 question"?
02:33:45 <EvanR> integer log... 3
02:33:57 <Axman6> 1
02:34:00 <Axman6> NEXT!
02:34:23 <Axman6> actually, 0
02:34:23 <anon15041149> https://paste.tomsmeding.com/GMuMIFhS
02:34:35 × wroo^ quits (~wroo@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Ping timeout: 258 seconds)
02:34:57 <EvanR> I object to the notion that div rounds down for you
02:35:21 <EvanR> but I may just be channeling old school professor len blanks
02:35:36 <Axman6> "2/3 = 0.666 (gets rounded down to 0)" ... "ilog3 2 ==> 1" does not compute for me
02:36:52 <Axman6> > let haskellyiLog3 = length . takeWhile (> 3) . iterate (`div` 3) in haskellyiLog3 7
02:36:54 <lambdabot> 1
02:37:06 <EvanR> > div (-2) 3
02:37:08 <lambdabot> -1
02:37:15 <Axman6> > let haskellyiLog3 = length . takeWhile (> 1) . iterate (`div` 3) . abs in haskellyiLog3 7
02:37:17 <lambdabot> 2
02:37:23 <Axman6> > let haskellyiLog3 = length . takeWhile (> 1) . iterate (`div` 3) . abs in haskellyiLog3 2
02:37:24 <lambdabot> 1
02:37:56 <Axman6> oh I misread the example, nevermind my first comment
02:38:03 <Axman6> > let haskellyiLog3 = length . takeWhile (> 1) . iterate (`div` 3) . abs in haskellyiLog3 20
02:38:05 <lambdabot> 3
02:38:16 <Axman6> anon15041149: don't use that ;)
02:39:41 <anon15041149> Axman6: dw I can't read
02:40:01 <Axman6> I SAID: DON'T USE THAT :P
02:40:38 <sm2n> Clint: no
02:46:38 <Axman6> > let haskellyiLog3 = length . takeWhile (> 1) . iterate (`div` 3) . abs in haskellyiLog3 9
02:46:40 <lambdabot> 2
02:47:00 <Axman6> > let haskellyiLog3 = length . takeWhile (> 2) . iterate (`div` 3) . abs in haskellyiLog3 9
02:47:03 <lambdabot> 2
02:49:20 <anon15041149> ilog3 0 = 0 \n ilog3 x = 1 + ilog3 (div x 3)
02:54:15 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:54:15 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:54:15 finn_elija is now known as FinnElija
03:01:59 × jargon quits (~jargon@184.101.87.126) (Remote host closed the connection)
03:08:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:11:07 × kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
03:11:30 <anon15041149> noob question but how does this evaluate? https://paste.tomsmeding.com/7ejbgQz0
03:11:42 <anon15041149> what does the result++str do?
03:12:09 <Axman6> > "Hello, " ++ "world!"
03:12:11 <lambdabot> "Hello, world!"
03:12:36 <Axman6> that is a very slow way to write that function though
03:12:52 <Axman6> O(n^2) concatenations
03:13:12 <Axman6> ish
03:13:13 <anon15041149> what about the paste bin? can you explain what is happening?
03:13:32 <Axman6> why don't you try to explain to me what's happening?
03:13:48 <Axman6> how does repeatString 3 "ABC" evaluate?
03:13:57 <anon15041149> ABCABCABC
03:14:03 <Axman6> repeatString 3 "ABC" => ???
03:14:06 <Axman6> no, one step at a time
03:14:06 <anon15041149> what type is result?
03:14:10 <anon15041149> oh
03:14:21 <Axman6> repeatString 3 "ABC" => repeatHelper 3 "ABC"
03:14:23 <Axman6> => ???
03:14:29 <Axman6> => ???
03:14:31 jargon joins (~jargon@184.101.87.126)
03:14:53 × russruss quits (~russruss@my.russellmcc.com) (Ping timeout: 256 seconds)
03:14:57 <Axman6> (missed the "" above, oops)
03:15:09 <anon15041149> reslt is "" ?
03:15:17 <Axman6> yep
03:15:50 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:16:15 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:16:15 <Axman6> resultHelper 3 "ABC" "" => if (3 == 0) then "" else repeatHelper (3-1) str (""++"ABC") -- do you agree?
03:16:24 russruss joins (~russruss@my.russellmcc.com)
03:16:56 <Axman6> repeatHelper*
03:17:21 <anon15041149> I'm just writing it out, I will put it into a paste bin
03:21:01 <anon15041149> Yes
03:21:38 <anon15041149> I got stuck after 2
03:22:02 <anon15041149> https://paste.tomsmeding.com/vjqIYr1I
03:22:32 <anon15041149> shouldn't str be "ABC"
03:25:45 <anon15041149> Axman6: ??
03:27:14 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
03:28:22 <monochrom> Ugh please don't use a helper for this. The helper makes things worse.
03:28:43 × MironZ quits (~MironZ@nat-infra.ehlab.uk) (K-Lined)
03:29:21 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
03:29:31 <monochrom> Your helper is on its way to becoming an inefficent quadratic-time algorithm actually.
03:29:59 <anon15041149> ok but I'm lecture 2 from the mooc
03:30:19 <anon15041149> and they are talking about helpers
03:30:43 <monochrom> Some other problems benefit from helpers. Not this one.
03:30:58 <monochrom> Reversing a list benefits greatly from a helper. Not this one.
03:31:12 <anon15041149> monochrom: can you help explain the evaluation?
03:31:39 <monochrom> No. I refuse to help with this helper version. It would be a crime.
03:32:10 <anon15041149> Please?
03:34:15 <anon15041149> monochrom: please can you help
03:37:43 dsrt^ joins (~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net)
03:39:12 coot joins (~coot@213.134.190.95)
03:44:08 <hololeap> anon15041149: do you have a deadline or something?
03:45:13 <hololeap> it might be hard to rush this stuff, depending on your background
03:46:57 nate1 joins (~nate@98.45.169.16)
03:49:40 <hololeap> learn it like you would a foreign language :D
03:51:41 <hololeap> what was the book that was mentioned somewhat recently about calculating theta time for haskell functions?
03:52:01 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 258 seconds)
03:52:03 <EvanR> help me monochrom kenobi
03:52:05 <maerwald[m]> Their teacher doesn't speak english well, that's why they didn't follow the lecture (supposedly)
03:52:26 <hololeap> I've been there :(
03:53:34 <hololeap> having your questions fall flat because of a language barrier sucks
03:54:28 <sm> ha I've experienced that with many teachers sharing my same first
03:54:28 <sm> language
03:54:53 <hololeap> excatly, it alread is difficult and when there is a language barrier it just feels hopeless...
03:55:36 <hololeap> it's a good way to learn to shut up and take the D
03:55:56 <hololeap> no double entendre intended
03:56:57 <monochrom> They have successfully done "power n k = n * recursive call" without a spurrious helper. repeatString is similar. At this point the teacher has nothing to do with this.
03:57:47 <maerwald[m]> It's always the teachers fault
03:58:40 <hololeap> right we should just pay thousands of dollars to be self-educated
03:58:57 <hololeap> because the teacher shouldn't have to know how to teach
03:59:51 <hololeap> obviously it's a double edged sword
03:59:57 <maerwald[m]> I think you'd have to start with paying them better
04:01:07 × dsrt^ quits (~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Ping timeout: 260 seconds)
04:01:08 <maerwald[m]> Why would the top of the class go into teaching if the pay is shoddy. I mean some still do, but yeah
04:01:30 gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net)
04:01:35 <monochrom> Hell I am not top of the class, just above average. :)
04:01:58 <monochrom> But I taught evaluation here: http://www.cs.utoronto.ca/~trebla/CSCC24-2022-Summer/01-haskell-basic.html#ev
04:02:13 <monochrom> But it's really just plug and chug and just doing algebra.
04:02:35 <monochrom> Hudak's book spends approximately the same short time on this.
04:02:55 <maerwald[m]> Afair some high school teachers in france make half of what a junior software dev does per year
04:03:06 <hololeap> monochrom, but we know you are good at answering questions :)
04:03:10 <maerwald[m]> It's a disgrace
04:03:58 <hololeap> some teachers just don't have the langauge down to understand someone who already doesn't know what they are talking about
04:07:20 <monochrom> I would be sympathetic to "the teacher didn't explain", but I'm indifferent to "the teach didn't speak clearly" for the following reason.
04:07:53 <monochrom> Presumably even if you didn't hear anything, there has been tons of code and some written notes.
04:08:10 <monochrom> The student could have shown us those and ask us to fill in the gaps.
04:08:14 <monochrom> In addition.
04:08:38 <maerwald[m]> I told them to go over the lecture notes ;)
04:08:48 <EvanR> Freenode U
04:08:51 <monochrom> My languages are only English and Chinese. Yet one day I ran into a CS MSc thesis in Polish in my research area, I could read it perfectly.
04:10:07 <EvanR> indeed I can understand physics papers from early 20th century in english or german equally
04:10:12 <maerwald[m]> My suspicion is they didn't make notes thinking the teacher will hand them out. But not all do
04:10:17 <monochrom> Generally arbitrary Polish is unguessable, but Polish in a specific context writing about a very narrow topic that I already know something about? You can basically use the math formulas and domain knowledge to reverse engineer the rest. I don't buy the "language barrier" theory.
04:10:17 <EvanR> (equally bad)
04:12:01 <EvanR> I will prove monochrom right by reading a random monad tutorial written in chinese
04:12:11 <EvanR> should come pretty natural
04:12:59 <monochrom> I also ran into a Prof from Singapore who had, well, the Singapore accent, so he pronounced "library" funny, namely, don't raise the "li", raise the "ry" instead.
04:13:08 <hololeap> why can't my monoid be parsed?
04:13:28 <maerwald[m]> Senglish is cute lah
04:13:46 <monochrom> That was no barrier because consider the whole sentence, e.g., "so you call <funny word> functions", you expect "library" there.
04:14:12 <hololeap> (pretend I'm somebody who just came here and asked this)
04:14:38 <sm> hololeap:
04:14:38 <sm> @where paste !!
04:14:39 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
04:14:43 <sm> :)
04:14:51 <monochrom> Yeah, that. :)
04:15:35 <hololeap> ok, but what if they (I) was responded to with "I don't understand your question" and they just chose a different student
04:15:56 <hololeap> it would be a little discouraging, right?
04:16:21 <monochrom> I am not afraid to state "I don't understand your question" tbh.
04:16:51 <monochrom> People need carrot-stick to learn to ask proper questions, too.
04:17:07 <hololeap> but the implication was that "I don't understand your question because my command of your language is not strong enough, so I choose an easier question, that I can answer"
04:17:19 Guest580 joins (~Gambino@user/polo)
04:17:39 <sm> hololeap: I haven't read the whole thread but I agree that the responses in here can sometimes be a little brisk and scary, no offense to anyone
04:18:07 <hololeap> sm, no I'm talking about teachers in college, specifically that don't know the spoken langauge very well
04:18:17 <sm> ah ok
04:18:41 <monochrom> And it is not hard at all. My students may start with a vague question that I may or may not understand, but they don't even wait for me to respond, they immediately know to continue with "actually can I show you my code?". It's that easy.
04:18:54 sm starts the day offering carrots and ends it double wielding sticks, maybe lecturers are like this too ?
04:18:59 <hololeap> I'm just saying that speaking the language in a technical fasion is one half, but understanding n00b questions is the other
04:19:40 <hololeap> monochrom: but they know you _could_ answer the question but just aren't choosing to!
04:19:57 <maerwald[m]> I understood the question behind the question, which was "can you write the code for me?"
04:20:11 <hololeap> that is _way_ better than someone who you suspect can't understand it!
04:23:47 treeshateorcs[m] joins (~treeshate@2001:470:69fc:105::1:41c4)
04:24:05 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
04:24:15 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
04:24:28 <anon15041149> monochrom: what did you mean by this? "They have successfully done "power n k = n * recursive call" without a spurrious helper. repeatString is similar. At this point the teacher has nothing to do with this."
04:25:58 × phma quits (~phma@host-67-44-208-207.hnremote.net) (Read error: Connection reset by peer)
04:28:11 phma joins (~phma@host-67-44-208-124.hnremote.net)
04:29:54 andrey_ joins (~andrey@p508d494e.dip0.t-ipconnect.de)
04:31:34 <Axman6> repeatString and power are basically exactly the same function, if you squint a bit
04:32:54 × andrey__ quits (~andrey@p200300dbcf0c4300976b5d73a51b6ad8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
04:34:05 <anon15041149> https://paste.tomsmeding.com/5qFs8Qux but it's fine
04:35:33 <anon15041149> I hope I didn't upset monochrom
04:37:18 <anon15041149> he wasn't helping because he didn't like the fact there was a helper was inefficient
04:37:22 <Axman6> that looks good - being able to do this is a pretty important skill for debugging haskell code
04:38:26 <anon15041149> Axman6: yeah, it's clearer when you write out each step, I wish there was a programme that did that for you lol, just to quickly see what's happening at each evaluation stafe
04:38:29 <anon15041149> stage*
04:39:00 <Axman6> Evaluating Haskell functions is all about substitution, taking the definition on the left of the = and replacing it with the right, substituting variables with the values passed in. if you can do that - on paper or in a text file - you'll find you can answer all the "how does this work" questions
04:39:16 <Axman6> there are programs that do that IIRC. can't remember where though
04:40:23 <maerwald[m]> Doesn't yahb have some limited functionality for that?
04:46:04 <Axman6> yahb has been dead for a while now :(
04:48:53 <Axman6> I would love it if we could move the ownership of lambdabot and yahb to the haskell infrastructure team. it's mission critical!
04:49:39 <hololeap> what happened to yahb?
04:50:03 × jludwig quits (~justin@li657-110.members.linode.com) (Quit: ZNC - https://znc.in)
04:50:04 <hololeap> I know it's been "dead" for a while, whatever that means
04:51:02 jludwig joins (~justin@li657-110.members.linode.com)
04:52:25 × jludwig quits (~justin@li657-110.members.linode.com) (Changing host)
04:52:25 jludwig joins (~justin@user/jludwig)
04:54:26 × coot quits (~coot@213.134.190.95) (Quit: coot)
04:54:41 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
04:54:43 allbery_b joins (~geekosaur@xmonad/geekosaur)
04:54:46 allbery_b is now known as geekosaur
04:56:39 coot joins (~coot@213.134.190.95)
04:58:02 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:58:43 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
04:58:56 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
05:00:27 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
05:00:40 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
05:01:40 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
05:02:53 Vajb joins (~Vajb@2001:999:600:879a:e69c:7638:2849:8a14)
05:06:35 <Axman6> I haven't seen mniip for a while
05:13:24 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
05:13:57 × Guest580 quits (~Gambino@user/polo) (Read error: Connection reset by peer)
05:14:10 × shailangsa quits (~shailangs@host109-152-9-235.range109-152.btcentralplus.com) (Ping timeout: 240 seconds)
05:16:14 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
05:19:04 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
05:19:49 biberu joins (~biberu@user/biberu)
05:27:04 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
05:28:49 <treeshateorcs[m]> hello everyone, sorry for the noob question, but can i create macos native apps with haskell?
05:29:43 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
05:32:44 Guest6540 joins (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net)
05:34:33 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:39:54 × Guest6540 quits (~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
05:41:37 vysn joins (~vysn@user/vysn)
05:44:55 michalz joins (~michalz@185.246.204.119)
05:46:11 Lycurgus joins (~juan@user/Lycurgus)
05:46:59 <Lycurgus> treeshateorcs[m], yes if you compile it there
05:47:34 × jargon quits (~jargon@184.101.87.126) (Remote host closed the connection)
05:53:10 <Axman6> treeshateorcs[m]: that depends how you define "apps"makingmacOS .app's is technically possible but difficult. making programs that run on macOS is trivial and people do it every day
05:55:49 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
05:57:28 shailangsa joins (~shailangs@host86-186-136-116.range86-186.btcentralplus.com)
05:58:07 aliosablack joins (~chomwitt@2a02:587:dc05:e000:904f:df51:bc87:e667)
06:12:38 <shachaf> Is there a nice way to split a list into two halves in one pass?
06:14:47 <[Leary]> If it doesn't need to be the first and second halves, you can get the odd and even halves without needing to be too clever.
06:15:02 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds)
06:17:33 <shachaf> Yes, but if it does.
06:17:36 <shachaf> But I think I have it.
06:17:39 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
06:17:53 <int-e> > let splitH xs = go xs xs where go (_:_:xs) (x:zs) = first (x:) (go xs zs); go _ zs = ([], zs) in splitH [1..3]
06:17:55 <lambdabot> ([1],[2,3])
06:18:05 <shachaf> λ> let evens [] = []; evens [x] = [x]; evens (x:_:xs) = x:evens xs
06:18:15 <shachaf> λ> let split i = go (evens i) i where go [] xs = ([],xs); go (_:es) (x:xs) = let (l,r) = go es xs in (x:l,r)
06:18:22 <shachaf> Oh, int-e beat me to it.
06:18:32 <int-e> No, I did something different
06:18:40 <int-e> or did I?
06:18:58 <int-e> I didn't, you're using 'evens' as a helper to match half the length
06:19:11 <shachaf> Yep, pretty much the same thing, except yours is more direct.
06:19:32 <shachaf> I had previously written "zipWith const xs (evens xs)" to get the first half, was why I had this function.
06:19:53 <int-e> (well, there's an off-by-one difference for lists of odd length)
06:20:12 <shachaf> Right, but you can just choose what to do there.
06:22:04 christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
06:35:38 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
06:41:53 singaporee joins (~singapore@vps-e326d58d.vps.ovh.ca)
06:42:57 simeon joins (~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de)
06:43:58 × gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
06:48:17 <simeon> Why is it that in ghci :t [1] returns Num a => [a], but if I define x = [1] in an .hs file and load it in ghci, :t x returns [Integer]?
06:49:20 <opqdonut> defaulting
06:50:15 <opqdonut> or: the dreaded monomorphism restriction
06:50:25 <opqdonut> this might help: https://wiki.haskell.org/Monomorphism_restriction
06:51:47 <simeon> but doesn't ghci do defaulting as well? I thought that it was even more aggressive in that respect (with ExtendedDefaultRules and such)
06:52:39 <opqdonut> good question. it might not apply the defaulting when using :t, only when evaluating stuff?
06:53:55 <opqdonut> right, ghci does have defaulting, but it doesn't have the monomorphism rstriction?
06:56:28 × coot quits (~coot@213.134.190.95) (Read error: Connection reset by peer)
06:56:40 coot joins (~coot@213.134.190.95)
06:56:53 × singaporee quits (~singapore@vps-e326d58d.vps.ovh.ca) (Ping timeout: 255 seconds)
06:57:36 singaporee joins (~singapore@36.72.111.36)
07:00:19 <simeon> yeah, so with :set -XMonomorphismRestriction let x = [1]; :t x returns [Integer]
07:00:52 vpan joins (~0@212.117.1.172)
07:01:10 <simeon> but :t [1] always returns the more general type no matter whether it's enabled or not
07:04:36 cfricke joins (~cfricke@user/cfricke)
07:05:00 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:08:25 gehmehgeh joins (~user@user/gehmehgeh)
07:19:34 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
07:19:59 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
07:20:39 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
07:23:35 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
07:25:10 zaquest joins (~notzaques@5.130.79.72)
07:28:09 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
07:28:42 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
07:29:09 nschoe joins (~quassel@178.251.84.79)
07:29:10 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
07:31:04 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
07:32:54 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
07:37:05 × Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
07:37:05 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
07:37:18 chexum joins (~quassel@gateway/tor-sasl/chexum)
07:37:45 Chai-T-Rex joins (~ChaiTRex@user/chaitrex)
07:40:10 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
07:45:14 × coot quits (~coot@213.134.190.95) (Quit: coot)
07:45:20 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:48:10 machinedgod joins (~machinedg@24.105.81.50)
07:48:28 nate1 joins (~nate@98.45.169.16)
07:53:17 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
07:53:22 arjun joins (~arjun@user/arjun)
07:57:23 jollygood2 joins (www-data@2607:5300:60:8be::1)
08:00:40 bahamas joins (~lucian@188.27.148.107)
08:02:21 × zaquest quits (~notzaques@5.130.79.72) (Read error: Connection reset by peer)
08:02:46 zaquest joins (~notzaques@5.130.79.72)
08:02:56 coot joins (~coot@213.134.190.95)
08:03:28 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:3962:822c:3b35:6c99) (Remote host closed the connection)
08:05:09 × singaporee quits (~singapore@36.72.111.36) (Ping timeout: 244 seconds)
08:08:27 × bahamas quits (~lucian@188.27.148.107) (Ping timeout: 260 seconds)
08:11:14 jakalx parts (~jakalx@base.jakalx.net) ()
08:13:36 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
08:15:22 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 258 seconds)
08:23:44 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 255 seconds)
08:33:17 Kaiepi joins (~Kaiepi@156.34.47.253)
08:35:43 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:44:34 jakalx joins (~jakalx@base.jakalx.net)
08:47:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:50:14 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:50:46 zeenk joins (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
09:00:10 × Inst[m] quits (~instrmatr@2001:470:69fc:105::1:903e) (Quit: You have been kicked for being idle)
09:03:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
09:04:25 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:06:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:08:08 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Ping timeout: 250 seconds)
09:11:50 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
09:12:09 biberu joins (~biberu@user/biberu)
09:12:37 phma_ joins (~phma@host-67-44-208-124.hnremote.net)
09:12:48 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
09:13:10 arjun joins (~arjun@user/arjun)
09:15:33 × phma quits (~phma@host-67-44-208-124.hnremote.net) (Ping timeout: 258 seconds)
09:23:05 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
09:24:10 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
09:30:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:44:57 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:47:45 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:48:06 × xff0x quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 276 seconds)
09:56:13 × cfricke quits (~cfricke@user/cfricke) (Read error: Connection reset by peer)
09:58:32 cfricke joins (~cfricke@user/cfricke)
10:05:40 CiaoSen joins (~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
10:08:36 briandaed joins (~briandaed@109.95.143.129.r.toneticgroup.pl)
10:17:01 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
10:23:00 × jollygood2 quits (www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (EOF))
10:32:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
10:33:31 notzmv joins (~zmv@user/notzmv)
10:42:29 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
10:42:39 ubert joins (~Thunderbi@p200300ecdf3b99a7e4ef9cea09a026ef.dip0.t-ipconnect.de)
10:43:34 razetime joins (~quassel@117.254.34.35)
10:47:46 × phma_ quits (~phma@host-67-44-208-124.hnremote.net) (Read error: Connection reset by peer)
10:48:45 phma_ joins (~phma@2001:5b0:211c:55f8:2664:c781:c87b:c562)
10:49:34 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
10:54:06 mncheckm joins (~mncheck@193.224.205.254)
10:56:43 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 256 seconds)
11:05:49 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:08:57 jakalx parts (~jakalx@base.jakalx.net) ()
11:09:56 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
11:10:25 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:11:14 jakalx joins (~jakalx@base.jakalx.net)
11:13:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
11:16:32 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:17:13 phma_ is now known as phma
11:17:56 zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:d47c:b2d:c58e:501b)
11:34:11 × shailangsa quits (~shailangs@host86-186-136-116.range86-186.btcentralplus.com) (Remote host closed the connection)
11:39:47 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 240 seconds)
11:43:19 __monty__ joins (~toonn@user/toonn)
11:48:27 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
11:49:16 <anon15041149> Axman6: is this possible without importing genericLength? https://paste.tomsmeding.com/W1laDnJC
11:49:58 nate1 joins (~nate@98.45.169.16)
11:50:17 <geekosaur> you've already used fromIntegral once
11:51:38 <anon15041149> Ok?
11:51:53 <geekosaur> do you understand what it does?
11:52:19 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
11:52:31 <anon15041149> converts and Int into Float I think
11:52:38 <anon15041149> but it doesn't work when I use it there
11:52:47 <geekosaur> how are you using it?
11:53:03 <geekosaur> my guess is you get your parentheses wrong (or missing entirely)
11:54:08 <anon15041149> https://paste.tomsmeding.com/x0KzeKwd
11:55:01 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 258 seconds)
11:55:01 alx741 joins (~alx741@host-186-3-154-11.netlife.ec)
11:55:29 <geekosaur> fromIntegral doesnot do the `length` for you
11:55:39 <geekosaur> you apply it to the *result* of `length`
11:56:02 <anon15041149> how do you do that?
11:56:22 <geekosaur> uh. this sounds like you haven't been through the basics yet
11:56:37 <anon15041149> It's a syntax issue
11:56:45 jollygood2 joins (~bc8147f2@cerf.good1.com)
11:56:45 × alx741 quits (~alx741@host-186-3-154-11.netlife.ec) (Read error: Connection reset by peer)
11:57:55 <maerwald[m]> geekosaur: it's still the assignment from yesterday and they didn't listen to the lecture; )
11:58:13 alx741 joins (~alx741@host-186-3-154-11.netlife.ec)
11:58:45 <anon15041149> The assignment is over, I'm already too late
11:58:55 pavonia joins (~user@user/siracusa)
11:58:55 <anon15041149> I've done the first 2 sets of the mooc
11:58:59 <geekosaur> I know it's still that assignment, I recognize the data type
11:59:06 <anon15041149> Yes
11:59:09 <anon15041149> I know
11:59:15 <anon15041149> but I've run out of time
11:59:22 <geekosaur> fromIntegral (length i1)
11:59:26 × alx741 quits (~alx741@host-186-3-154-11.netlife.ec) (Client Quit)
11:59:38 <geekosaur> or: (fromIntegral . length) i1
11:59:55 <anon15041149> how does the full stop work? is that an operator?
12:00:03 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:01:59 <geekosaur> yes
12:02:07 <geekosaur> it's the composition operator
12:02:18 <geekosaur> (f . g) x = f (g x)
12:02:19 <anon15041149> https://stackoverflow.com/questions/2486564/what-does-a-fullstop-or-period-or-dot-mean-in-haskell
12:02:39 <geekosaur> it lets us compose functions to make bigger functions
12:03:54 <geekosaur> (or chain functions together, but Haskellers prefer the more mathy "compose")
12:05:30 wootehfoot joins (~wootehfoo@user/wootehfoot)
12:06:32 <hpc> it's the closest thing in ascii to the notation for https://en.wikipedia.org/wiki/Function_composition
12:11:47 × jollygood2 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Error))
12:12:11 jollygood2 joins (~bc8147f2@cerf.good1.com)
12:12:11 <maerwald[m]> Teaching through fear 😄
12:12:16 × ubert quits (~Thunderbi@p200300ecdf3b99a7e4ef9cea09a026ef.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
12:12:25 × jollygood2 quits (~bc8147f2@cerf.good1.com) (Client Quit)
12:12:47 jollygood2 joins (~bc8147f2@cerf.good1.com)
12:15:03 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
12:15:45 <anon15041149> hoping my course work allows me to pass this class
12:16:13 shailangsa joins (~shailangs@host86-186-136-116.range86-186.btcentralplus.com)
12:17:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
12:20:27 × raym quits (~raym@user/raym) (Ping timeout: 260 seconds)
12:20:54 jakalx joins (~jakalx@base.jakalx.net)
12:21:01 raym joins (~raym@user/raym)
12:26:37 <geekosaur> @where cis194
12:26:37 <lambdabot> https://www.seas.upenn.edu/~cis194/spring13/lectures.html
12:27:16 <geekosaur> might be worth going through this, especially if you're getting the same kind of incomprehensible TAs I did when I was in college :)
12:29:31 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
12:29:31 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Read error: Connection reset by peer)
12:29:31 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Read error: Connection reset by peer)
12:30:50 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
12:31:40 <exarkun> in cis194 homework 6 exercise 2 it directs you to implement implement an O(n) fibonacci function using "standard recursion pattern(s) from the Prelude as appropriate". What does it mean by "recursion patterns"?
12:32:21 <geekosaur> map, foldl, foldr, etc.
12:32:49 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
12:33:11 <exarkun> Are "pattern" and "function" synonyms? Or are only some functions patterns?
12:33:34 <geekosaur> think "design pattern"
12:34:28 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
12:34:51 <exarkun> Hmmmm
12:35:08 <exarkun> Oookay
12:35:24 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
12:35:24 × joo-_ quits (~joo-_@fsf/member/joo--) (Read error: Connection reset by peer)
12:36:28 <geekosaur> there's a common misapprehension that a "design pattern" is anything that can't be expressed directly in a language and represents a shortcoming. really it's any recurrent pattern of code
12:36:42 <geekosaur> we use things like maps and folds very often, so they're Haskell design patterns
12:37:16 <geekosaur> the alternative would be writing them out by hand every time, which *would* be an example of that misapprehension
12:38:21 CHUD joins (~CHUD@host-80-41-95-245.as13285.net)
12:39:00 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:39:11 joo-_ joins (~joo-_@80-62-116-159-mobile.dk.customer.tdc.net)
12:39:11 × joo-_ quits (~joo-_@80-62-116-159-mobile.dk.customer.tdc.net) (Changing host)
12:39:11 joo-_ joins (~joo-_@fsf/member/joo--)
12:41:21 × vpan quits (~0@212.117.1.172) (Quit: Leaving.)
12:43:10 × `2jt quits (~jtomas@182.red-88-17-61.dynamicip.rima-tde.net) (Quit: Leaving)
12:45:21 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
12:48:16 MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net)
12:50:51 hololeap joins (~hololeap@user/hololeap)
12:51:49 × CHUD quits (~CHUD@host-80-41-95-245.as13285.net) (Remote host closed the connection)
12:53:38 ubert joins (~Thunderbi@p200300ecdf3b99a7f84e44c270da9848.dip0.t-ipconnect.de)
12:53:42 Infinite joins (~Infinite@49.39.121.239)
12:54:07 × ubert quits (~Thunderbi@p200300ecdf3b99a7f84e44c270da9848.dip0.t-ipconnect.de) (Client Quit)
13:01:03 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
13:02:14 azimut joins (~azimut@gateway/tor-sasl/azimut)
13:07:37 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
13:12:00 × _xor quits (~xor@72.49.198.103) (Quit: bbiab)
13:12:06 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Ping timeout: 250 seconds)
13:14:53 × razetime quits (~quassel@117.254.34.35) (Ping timeout: 255 seconds)
13:15:35 vicfred joins (~vicfred@user/vicfred)
13:27:32 × MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Quit: WeeChat 3.4)
13:37:11 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
13:37:11 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
13:37:11 wroathe joins (~wroathe@user/wroathe)
13:37:44 <telser_> Is there anyone around here that could review a stackage-content PR?
13:41:58 × vysn quits (~vysn@user/vysn) (Ping timeout: 258 seconds)
13:44:30 goran[m] joins (~goranoour@2001:470:69fc:105::2:1b44)
13:47:27 tremon_ is now known as tremon
13:48:51 stilgart_ is now known as stilgart
13:49:24 × Infinite quits (~Infinite@49.39.121.239) (Quit: Client closed)
13:53:03 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
13:58:56 shriekingnoise joins (~shrieking@201.231.16.156)
14:00:33 causal joins (~user@50.35.83.177)
14:03:01 Infinite joins (~Infinite@49.39.121.239)
14:06:14 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
14:11:11 mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a)
14:21:50 × Infinite quits (~Infinite@49.39.121.239) (Ping timeout: 252 seconds)
14:23:43 polo joins (~money@user/polo)
14:28:34 × polo quits (~money@user/polo) (Remote host closed the connection)
14:28:54 polo joins (~money@user/polo)
14:28:55 × polo quits (~money@user/polo) (Excess Flood)
14:29:19 polo joins (~money@user/polo)
14:29:21 × polo quits (~money@user/polo) (Excess Flood)
14:29:40 polo joins (~money@user/polo)
14:29:42 × polo quits (~money@user/polo) (Excess Flood)
14:30:02 polo joins (~money@user/polo)
14:36:40 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Remote host closed the connection)
14:38:28 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
14:38:30 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
14:38:39 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
14:40:29 srz joins (~srz@157.92.6.58)
14:40:37 srz_ joins (~srz@157.92.6.58)
14:42:07 × srz_ quits (~srz@157.92.6.58) (Remote host closed the connection)
14:42:08 × srz quits (~srz@157.92.6.58) (Remote host closed the connection)
14:43:54 Sgeo joins (~Sgeo@user/sgeo)
14:47:12 × coot quits (~coot@213.134.190.95) (Quit: coot)
14:48:02 × polo quits (~money@user/polo) (Ping timeout: 255 seconds)
14:48:37 coot joins (~coot@213.134.190.95)
15:02:13 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
15:07:26 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection)
15:07:39 kritzefitz joins (~kritzefit@debian/kritzefitz)
15:08:31 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
15:11:47 × christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 246 seconds)
15:18:15 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5)
15:19:59 × nschoe quits (~quassel@178.251.84.79) (Ping timeout: 255 seconds)
15:22:15 × coot quits (~coot@213.134.190.95) (Quit: coot)
15:22:31 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:23:31 img joins (~img@user/img)
15:24:27 Tuplanolla joins (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
15:27:59 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5)
15:28:27 JannisO joins (~JannisO@89.233.88.60)
15:29:53 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:30:56 img joins (~img@user/img)
15:31:36 × arjun quits (~arjun@user/arjun) (Ping timeout: 258 seconds)
15:33:28 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:37:34 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
15:37:51 JannisO joins (~JannisO@89.233.88.60)
15:39:24 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:41:36 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
15:41:53 JannisO joins (~JannisO@89.233.88.60)
15:42:43 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:43:45 img joins (~img@user/img)
15:44:10 vysn joins (~vysn@user/vysn)
15:46:07 × img quits (~img@user/img) (Client Quit)
15:47:33 × martin02 quits (~silas@141.84.69.76) (Ping timeout: 276 seconds)
15:47:33 img joins (~img@user/img)
15:47:57 king_gs joins (~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55)
15:51:00 Guest|47 joins (~Guest|47@49.37.147.228)
15:51:28 nate1 joins (~nate@98.45.169.16)
15:52:07 × Guest|47 quits (~Guest|47@49.37.147.228) (Client Quit)
15:54:26 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
15:54:43 JannisO joins (~JannisO@89.233.88.60)
15:56:10 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
15:56:29 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
15:56:57 cheater joins (~Username@user/cheater)
15:57:04 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds)
15:59:52 martin02 joins (~silas@141.84.69.76)
16:01:31 × Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
16:03:13 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
16:03:30 JannisO joins (~JannisO@89.233.88.60)
16:10:45 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Remote host closed the connection)
16:15:15 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
16:20:03 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
16:21:19 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 240 seconds)
16:21:35 elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
16:21:48 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection)
16:25:04 zebrag joins (~chris@user/zebrag)
16:26:31 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
16:29:16 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
16:29:33 JannisO joins (~JannisO@89.233.88.60)
16:30:14 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
16:32:44 fantasia joins (~fi@197.244.205.32)
16:38:03 GiacomoC joins (~GiacomoC@host-95-250-241-5.retail.telecomitalia.it)
16:42:06 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
16:42:23 JannisO joins (~JannisO@89.233.88.60)
16:44:03 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
16:44:20 JannisO joins (~JannisO@89.233.88.60)
16:45:10 favonia joins (~favonia@user/favonia)
16:48:04 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
16:48:21 JannisO joins (~JannisO@89.233.88.60)
16:50:01 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
16:50:18 JannisO joins (~JannisO@89.233.88.60)
16:53:08 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
16:53:17 × benin quits (~benin@183.82.205.79) (Ping timeout: 246 seconds)
16:53:26 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
16:54:00 Guest|62 joins (~Guest|62@c-71-205-105-44.hsd1.co.comcast.net)
16:54:35 benin joins (~benin@2401:4900:2323:6c4b:5923:ae7:d378:d557)
16:54:59 econo joins (uid147250@user/econo)
16:57:40 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
16:59:40 × GiacomoC quits (~GiacomoC@host-95-250-241-5.retail.telecomitalia.it) (Quit: Ping timeout (120 seconds))
17:02:18 × dcoutts_ quits (~duncan@host109-149-15-56.range109-149.btcentralplus.com) (Ping timeout: 276 seconds)
17:02:50 <Guest|62> Hey again all. Still working on this Haskell build. I've got the project to compile successfully now, but when i do `cabal install`, i get:
17:02:51 <Guest|62> \
17:02:51 <Guest|62> https://paste.tomsmeding.com/c4PLCLfN
17:03:29 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
17:04:04 azimut joins (~azimut@gateway/tor-sasl/azimut)
17:04:54 arjun joins (~arjun@user/arjun)
17:05:25 <geekosaur> did you run `cabal update` first? (and are you running `cabal install` from the right directory/folder?)
17:06:20 zincy joins (~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411)
17:06:55 <dmj`> Guest|62: --allow-newer ;)
17:06:56 benin8 joins (~benin@183.82.25.126)
17:07:10 <geekosaur> that doesn't look like that error
17:07:20 <geekosaur> especially since it has an "any" in it
17:07:57 <geekosaur> it looks like it has required dependencies but can't find them in the hackage index, which is why I asked about `cabal update`
17:07:57 <Guest|62> I did do `cabal update` prior to `cabal build` and i do think im running `cabal install` from the right dir. Running it from the dir that contains `cabal.project`
17:08:07 <geekosaur> hm
17:08:19 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
17:08:19 <dmj`> those deps potentially exist, but at older versions, --allow-newer will have the affect of jailbreaking the cabal file
17:08:58 × benin quits (~benin@2401:4900:2323:6c4b:5923:ae7:d378:d557) (Ping timeout: 258 seconds)
17:08:59 benin8 is now known as benin
17:09:25 <Guest|62> hmm i did a `cabal install --allow-newer` and get the same error
17:09:28 christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
17:10:30 <dmj`> Guest|62: then do a ' cabal exec -- ghc-pkg list resource-pool' for example
17:10:38 <dmj`> and see what version is in your ghc-pkg list
17:11:04 <Guest|62> ```Resolving dependencies...
17:11:05 <Guest|62>     (no packages)```
17:11:33 <Guest|62> so i did notice that the cabal.project file did not contain these packages
17:11:51 <geekosaur> they wouldn't be there unless you were vendoring them
17:12:01 eraziel joins (~eraziel@modemcable169.17-58-74.mc.videotron.ca)
17:12:07 <geekosaur> normally you'd get them from hackage
17:12:41 <Guest|62> ahh ok! i think im too used to npm. This is the first Haskell project i've tried to build. Forgive my ignorance:(
17:13:04 <dmj`> Guest|62: can you paste your cabal file
17:13:12 <eraziel> is it possible to define nested subcommands with optparse-applicative ?
17:13:16 <sclv> note that if you can build you don't really need to install -- you just build the binary and execute it directly from the path as given by `cabal list-bin`
17:13:20 <eraziel> kinda like the aws cli is doing: aws eks update-kubeconfig --name clustername
17:14:05 <Guest|62> dmj`: https://paste.tomsmeding.com/44ZE1Ayv
17:14:24 <dmj`> eraziel: yes
17:15:01 <Guest|62> sclv: ahh yeah i tried looking for where the bin was stored... i was seeing symlinks, and i couldnt run it
17:15:01 <eraziel> do you have an example somewhere ? I can't find anything, I think I might be searching the wrong terms
17:15:28 <dmj`> Guest|62: is that your cabal.project file?
17:15:45 <Guest|62> yessir dmj`
17:15:55 <sclv> `cabal install` ignores the project file altogether, so it looks like that project, with all those pinned deps, wasn't written to be used with it at all -- just with build
17:16:20 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
17:16:29 <Guest|62> so `cabal lisk-bin` just gives me:
17:16:29 <Guest|62> `cabal: One target is required, none provided`
17:16:57 × fantasia quits (~fi@197.244.205.32) (K-Lined)
17:17:28 <dmj`> Guest|62: can you paste your cabal file
17:17:36 <dmj`> not the cabal.project one, but like the real one
17:17:53 <geekosaur> eraziel, looks to me you just use a `command` like you would a `strOption` or etc., nesting them as needed
17:18:31 <Guest|62> dmj`: ok my bad. I think this is the one you are referring?
17:18:32 <Guest|62> https://github.com/kadena-io/chainweb-node/blob/master/chainweb.cabal
17:18:46 <Guest|62> So im trying to build this `chainweb-node` crypto project called Kadena
17:20:08 <dmj`> Guest|62: nix build
17:20:27 <maerwald[m]> tapas: maybe can help ^
17:20:38 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
17:21:56 <eraziel> geekosaur: `command`'s signature is `String -> ParserInfo a -> Mod CommandFields a`, I don't think you can nest those
17:22:03 <tapas> In order, the following will be built (use -v for more details):
17:22:03 <tapas> - chainweb-2.14 (lib:chainweb, exe:chainweb-node, exe:cwtool, test:chainweb-tests, bench:bench) (additional components to build)
17:22:11 <tapas> confused as to why `list-bin` just can't handle this
17:22:44 <sclv> it doesn't list all the bins -- you just need to pass it the target
17:23:11 <sclv> arguably we could change it so it does list all the bins, :-)
17:23:51 <tapas> but there's only 1 target
17:23:54 <tapas> lmao
17:24:01 <tapas> it's one project
17:24:02 <tapas> 2 bins
17:24:14 <eraziel> ahh nvm I got it, duh
17:24:18 <geekosaur> eraziel, that is why you use it with `subparser`
17:24:53 <sclv> the target is a specific binary -- there's four here. two executable stanzas plus a bench and a test
17:25:14 <sclv> Guest|62: so `cabal list-bin exe:chainweb-node` or the like will probably work
17:25:33 <Guest|62> hmmm `cabal: No or multiple targets given`
17:26:24 <tapas> https://www.irccloud.com/pastebin/ebtRAgN2/
17:26:32 <tapas> this is so counterintuitive -.-'
17:29:40 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
17:29:57 JannisO joins (~JannisO@89.233.88.60)
17:31:37 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
17:31:54 JannisO joins (~JannisO@89.233.88.60)
17:32:06 × hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 250 seconds)
17:33:54 hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net)
17:37:59 <dmj`> Guest|62: the nix scripts are probably more maintained than the cabal build. The reason the cabal build is failing is most likely due to a pinned nixpkgs that is a little older
17:38:21 <dmj`> and cabal's resolver is having a hard time reconciling tht
17:40:53 <Guest|62> I can give it a go. I've avoided it because when i go to `our wiki` it brings me to the pact project... I sort of assumed I would just be building pact.
17:44:53 Guest46 joins (~Guest46@mv-213-141-53-146.telecable.es)
17:45:43 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
17:50:06 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
17:50:44 <Guest|62> lol just installing nix is proving to be a pain ;(
17:51:31 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds)
17:51:46 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
17:52:04 <Guest|62> first wont let me install it as root, i create a user, su newuser, rerun multiuser install script, error with:
17:52:05 <Guest|62> `/tmp/nix-binary-tarball-unpack.yOzs0Bxsfs/unpack/nix-2.8.1-aarch64-linux/install-multi-user: line 319: sudo: command not found`
17:55:26 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
17:55:43 JannisO joins (~JannisO@89.233.88.60)
17:55:51 <maerwald> yeah, good luck
17:56:29 <dmj`> Guest|62: did you use the instructions?
17:56:34 <dmj`> Guest|62: sh <(curl -L https://nixos.org/nix/install) --daemon
17:57:35 <Guest|62> yep I walk through that interactive installer
17:58:01 <Guest|62> https://paste.tomsmeding.com/hl7c5VGy
17:58:20 <Guest|62> Starting to feel like I was destined to be a construction worker or something '=(
17:58:50 × mncheckm quits (~mncheck@193.224.205.254) (Ping timeout: 255 seconds)
18:00:11 <int-e> sudo: command not found <-- yeah, should not blindly assume that sudo is installed
18:00:25 <dmj`> Guest|62: what distro are you on
18:00:41 <geekosaur> or that it's in /usr/bin
18:00:57 <dminuoso> λ ~/ which sudo #=> /run/wrappers/bin/sudo
18:01:22 <Guest|62> int-e: docker base image is ubuntu:20.04
18:01:32 <dminuoso> Using nix inside a docker container.
18:01:34 <dminuoso> Heh.
18:01:46 <geekosaur> 20.04 should have it in /usr/bin
18:01:52 <maerwald> Guest|62: at least it's honest work
18:01:52 <int-e> yeah I'd want nix isolated from where it can do real harm as well
18:01:54 jakalx joins (~jakalx@base.jakalx.net)
18:02:15 <int-e> (that may be unfair. nix is an alien beast to me.)
18:02:16 <dminuoso> int-e: funny, Im using nix precisely to avoid said harm.
18:02:37 stoned is now known as Hash
18:02:51 <maerwald> that *is* funny indeed :D
18:03:09 <Guest|62> I should have probably mentioned that this stuff is far beyond my level of expertise (if that wasnt obvious enough) im just a lowly node.js engineer.
18:03:15 <exarkun> using nix can definitely harm your tolerance for the way imperative, side-effect-y linux distributions work
18:03:33 <dminuoso> exarkun: But only once you have crossed a certain threshold.
18:03:41 <dminuoso> The point-of-no-return on the blackhole that nix is.
18:03:45 <maerwald> Guest|62: I'm a trained brick layer. Nothing wrong with going back to construction if your health permits :p
18:03:53 <exarkun> dminuoso: I guess this is known as "dose response".
18:04:09 <Guest|62> maerwald: :')
18:05:22 <int-e> geekosaur: tbf, it's not assuming anything about sudo's location: https://github.com/NixOS/nix/blob/master/scripts/install-multi-user.sh#L92
18:06:09 <dminuoso> exarkun: I think its a similar thing to kubernetes which is probably great technology that addresses a particular set of problems well. But it requires years of building up expertise on something that is almost, but not quite, entirely unlike traditional linux.
18:06:18 <maerwald> exarkun: using nix harms my tolerance of ergonomic package managers and configuration languages.
18:06:42 <exarkun> dminuoso: it may well be
18:06:50 <int-e> But there may not be a sudo at all (as is the case here). It's a frequent guest on CVE (though tbf it seems to be /mostly/ misconfigurations): https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=sudo
18:06:53 exarkun contains the k8s rant
18:06:57 × vysn quits (~vysn@user/vysn) (Ping timeout: 260 seconds)
18:07:31 <dminuoso> Every technology has their zealot defenders. :)
18:08:13 <dmj`> Guest|62: are you using a nixos image? If so, you can avoid the installation step
18:08:37 <dminuoso> maerwald: Ive come to the point that what I really care about is not nix-the-package-manager, but nixos.
18:08:45 <Guest|62> dmj`: maybe that's the answer... Im using an ubuntu:20.04 image
18:08:51 <dminuoso> And nixos has quite decent ergonomics for the most part
18:09:05 <maerwald> uhm
18:09:05 <exarkun> yea if you're going to use nix and docker, you may as well start with a nix-friendly docker image.
18:09:08 <dmj`> Guest|62: https://hub.docker.com/r/nixos/nix
18:09:35 <int-e> that's the first time I hear about nixos having decent ergonomics
18:09:56 <maerwald> I've tried NixOS 4 times over the years. It was always awful. Sure, you can invest enough time in anything, but that's just sunk cost fallacy.
18:10:05 <exarkun> it depends on what you mean by "ergonomics".
18:10:17 <exarkun> It does some stuff extremely well.
18:10:22 <exarkun> It does some stuff extremely poorly.
18:10:24 <int-e> I think it's more about "decent".
18:10:28 <dminuoso> At work we maintain an infrastructure of several hundred servers and VMs.
18:10:38 <maerwald> it solves a difficult niche use case, but provides the worst possible ergonomics in the process
18:10:39 <Guest|62> So the ultimate goal here for me, is to build the Kadena node from souce in a docker image, do any necessary configuration, and run the beast within the (same?) container. This is the standard procedure at the company I'm at.
18:10:47 <exarkun> maerwald: The worst possible, you say? :)
18:10:51 <int-e> I'm not in enough pain with the current situation to even be tempted to try nixos.
18:10:53 <dminuoso> Managing all their lifetime well has been easiest with nixos by far.
18:11:22 <int-e> Probably not doing enough serious software development.
18:11:33 <maerwald> exarkun: yes... I've removed nix managed infrastructure before and replaced it with something simpler. Turns out the only reason it was put in place was because the former devops was a nix fanboy, but the business had zero use for it.
18:11:48 <exarkun> maerwald: That seems orthogonal.
18:11:59 <exarkun> I was mostly poking fun because I can think of several trivial ways to make nix worse.
18:12:44 <exarkun> Anyway, sure, it's bad at many things and not the right tool for all problems. As usual.
18:12:53 <exarkun> And it would have been better if it had used Haskell instead of inventing its own language. :)
18:13:03 <int-e> And yeah, docker was mentioned... we have ways to isolate software installations for different tasks, why do we need to put them all into the same environment (fs etc)?
18:13:17 <dminuoso> With nixos to manage the lifecycle of many servers means we can trivially roll out system updates, roll them back, rebuild machines identical in behavior, nuking a server and rebuilding it always gives us the same configuration state back.
18:13:29 <exarkun> int-e: The premise of that question, I think, is that Docker comes with no drawbacks.
18:13:43 <exarkun> int-e: But of course this isn't true - so it comes down to deciding which trade-offs make sense in a certain circumstance.
18:13:47 <int-e> exarkun: Nah, it has its own drawbacks as well.
18:13:50 <maerwald> dminuoso: that's not even the main advantage or use case of nix
18:14:00 <int-e> I just don't see what would need to happen for nix to actually win.
18:14:01 <dminuoso> maerwald: Like I said. For us it is.
18:14:16 <exarkun> int-e: What does "win" mean?
18:14:16 <dminuoso> A determinstic way to describe and manage our infrastructure.
18:14:30 <maerwald> the main advantage is that you can share configuration across *different environments* and see similar results. If you control the environment anyway... it's rather pointless
18:14:34 <int-e> exarkun: having a better balance of benefits vs. drawbacks
18:14:56 <int-e> note, familiarity is likely to be a factor there.
18:15:04 <int-e> I'm not familiar at all.
18:15:43 <int-e> heterogeneous environments... noted
18:15:46 <exarkun> I don't think there are a lot of universally "better" balances. We solve a very diverse set of problems with software. The same tool is not going to be right for all of them.
18:16:08 slack1256 joins (~slack1256@191.125.227.88)
18:16:46 <exarkun> maerwald: Did you build a simpler functional Linux management tool, or is the simpler Nix replacement you mentioned above something like "Debian running Docker"?
18:17:15 <maerwald> exarkun: what do you mean with "functional Linux management tool"?
18:17:21 <dminuoso> maerwald: If you control the environment meaning what exactly? That you have a genie in a bottle that magically addresses all your lifecycle management problems? Can you easily orchestrate a system update across a hundred servers? Roll them back if need be? Rebuild them after a disaster scenario exactly to spec? What about auditors?
18:17:31 <exarkun> maerwald: Just trying to imagine what your Nix replacement was
18:17:53 <exarkun> maerwald: Do you have a Haskell DSL for configuring a Linux system? That would be neat.
18:17:57 <maerwald> terraform + propellor
18:18:05 <exarkun> Ah right Propeller, was trying to remember that name
18:18:14 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
18:18:15 <unit73e> It's possible to have a simple package manager that fits all but who's going to spend time with that? I just use arch
18:18:39 <maerwald> unit73e: let us know when they figured out how to package GHC correctly
18:18:45 <dminuoso> Yeah we've looked very deeply at Puppet, which we can equate with Propellor in terms of what it does and how it does that.
18:18:45 <unit73e> lol
18:18:45 <EvanR> I want my IT infrastructure to automatically heal itself even if thanos punches a hole in it
18:18:55 <maerwald> dminuoso: nah, puppet is more advanced
18:18:59 <maerwald> I wouldn't recommend propellor
18:19:12 <unit73e> cabal used to be much worse tbh
18:19:15 bahamas joins (~lucian@84.232.141.167)
18:20:28 <dminuoso> The way nixos is beneficial for us probably doesnt apply to when you only have a few servers to manage. Unless you already have the expertise, the learning curve is *definitely* not worth it for that task.
18:20:55 <dminuoso> We're at 40 servers right now but steadily increasing
18:21:36 <dmj`> Nix, or something like it that guarantees reproducible builds based on a merkle tree hash scheme is the solution imo, for dep. mgmt at the very least. Now getting Nix / NixOps / NixOS to act more like kubernetes is the hard part. Nixops doesn't support rolling deploys ootb afaict.
18:22:20 <dminuoso> Yeah, I mean when you get to that scale you're pretty much in k8s waters
18:22:39 <maerwald> it's easier to hire for k8s devs
18:23:01 <maerwald> and I don't want to do either of those ;)
18:23:21 <exarkun> it's easier to hire golang devs too
18:23:23 seriously joins (~seriously@ool-18bd5811.dyn.optonline.net)
18:23:25 <exarkun> let's all use golang
18:23:26 <dminuoso> Nixos has the benefit that we still have linux VMs, which means the bunch of more traditional linux admins we have can still log into machines, interact with systemd, and do things.
18:23:45 × frost quits (~frost@user/frost) (Quit: Client closed)
18:23:55 <dminuoso> With k8s your average linux administrator wont be able to apply almost any of their experience
18:23:58 <maerwald> exarkun: well... if you're talking from a *business* perspective, golang may indeed be a better choice
18:24:15 <exarkun> maerwald: it's true, a lot of businesses go a long way churning out crappy software
18:24:23 <dminuoso> Not everybody has the freedom to just fire their team and hire hipster k8s devs *shrugs*
18:24:25 <exarkun> and a lot of really nice software dies in the dark with failed businesses
18:24:36 <maerwald> but most programmers have a hard time to distinguish between "I like to use this tech" and "this tech is important for the business"
18:25:09 <exarkun> but also it's nice not to be miserable all day long, which is what a lot of good programmers would be if using golang, even if it is good for the business
18:25:28 <exarkun> and maybe having miserable programmers is actually bad for business sometimes
18:25:36 <maerwald> yes, I don't want to do golang, but I might recommend it to someone doing a startup
18:25:55 danyisill joins (~danny@2a02:2149:8b7e:c000:514a:5a34:fc40:cdf3)
18:26:24 <maerwald> if all they got is 50k and 6 months to impress investors... and you tell them to find a Haskell dev
18:26:26 <maerwald> uhm yeah
18:26:29 <seriously> hey guys... can someone help explain this to me? let's say im in the GHCi; 1. I declare  x = 20 :: Integer     2. If I check the type of x, it is "Integer" (:type x)     3. declare x 15 = 30    4. If I check the type of x, its now "x:: (Eq a, Num a, Num p) => a -> p"
18:26:46 <exarkun> I won't claim any insight into how to advise a shoe-string startup on their path to success
18:26:58 <slack1256> seriously: You shadowed a variable.
18:27:31 <exarkun> seriously: ie, ghci will let you replace the first x with a new, totally unrelated x
18:28:05 <slack1256> In fact the second `x` instance is a function (with a single defined equation).
18:28:11 <dmj`> dminuoso: even hipster k8s devs struggle w/ k8s ime
18:28:28 mokee joins (~mokee@37.228.215.170)
18:28:32 <dmj`> have to go outside and take a smoke break while the cluster is down
18:29:10 × eraziel quits (~eraziel@modemcable169.17-58-74.mc.videotron.ca) (Quit: Client closed)
18:29:55 <maerwald> what's a hipster k8s dev
18:30:04 <seriously> slack1256 How is "x 20" a function ? And how could I explain it in words?
18:30:06 <int-e> seriously: There's a hidden complication here: x 15 = 30 desugars into something like x a | a == 15 = 30, so that's why in addition to Num a dna Num b (for making 15 and 30) you also get Eq a.
18:30:37 <int-e> :t let x (15 :: Integer) = 30 :: Integer in x
18:30:38 <lambdabot> Integer -> Integer
18:31:09 <int-e> :t let x 15 = 30 :: Integer in x -- (somewhat mysterious) Eq again
18:31:11 <lambdabot> (Eq a, Num a) => a -> Integer
18:31:22 <seriously> int-e ok that clears it up then!
18:31:35 <slack1256> > x 15 = 30
18:31:37 <lambdabot> <hint>:1:6: error: parse error on input ‘=’
18:31:41 <slack1256> > let x 15 = 30
18:31:43 <lambdabot> <no location info>: error: not an expression: ‘let x 15 = 30’
18:31:53 <int-e> lambdabot needs an expression
18:31:53 <geekosaur> have to use @let
18:31:55 × mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Quit: Going elsewhere)
18:31:59 <int-e> or that...
18:32:00 <slack1256> @let x 15 = 30
18:32:02 <lambdabot> Defined.
18:32:06 <slack1256> > x 15
18:32:08 <lambdabot> error:
18:32:08 <lambdabot> Ambiguous occurrence ‘x’
18:32:08 <lambdabot> It could refer to
18:32:17 <slack1256> >.>
18:32:17 <geekosaur> also beware of shadowing single character variables, as they belong to simple-reflect normally
18:32:20 <int-e> @undef
18:32:20 <lambdabot> Undefined.
18:32:21 coot joins (~coot@213.134.190.95)
18:32:22 <int-e> :t x
18:32:24 <lambdabot> Expr
18:32:33 <geekosaur> > L.x 15
18:32:35 <lambdabot> error: Not in scope: ‘L.x’
18:32:38 <int-e> > map f [x, y, z]
18:32:39 <geekosaur> oh, undef'd
18:32:41 <geekosaur> rip
18:32:42 <lambdabot> error:
18:32:42 <lambdabot> • Ambiguous type variable ‘b0’ arising from a use of ‘show_M718660257584...
18:32:42 <lambdabot> prevents the constraint ‘(Show b0)’ from being solved.
18:32:46 <int-e> hah.
18:32:52 <int-e> > map f [x, y, z] :: [Expr]
18:32:54 <lambdabot> [f x,f y,f z]
18:32:55 mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a)
18:33:00 <slack1256> @let seriously_func 15 = 30
18:33:02 <lambdabot> Defined.
18:33:07 <slack1256> > seriously_func 15
18:33:09 <lambdabot> 30
18:33:26 <slack1256> OK, but what if I pass to `seriously_func` the value 17 ?
18:33:26 <int-e> > seriously_func 42
18:33:28 <lambdabot> *Exception: /tmp/mueval8-0.hs:152:1-22: Non-exhaustive patterns in function ...
18:33:32 <seriously> Ultimately I was trying to understand this line of code (from the wai libraries): app :: Application
18:33:32 <seriously> app _request respond = respond $ responseBuilder status200 [] "Hello!"
18:33:47 <slack1256> As int-e showed, it is not defined. You are missing equations.
18:34:25 <int-e> geekosaur: sorry, yeah L.x would've worked
18:34:56 <int-e> But I wanted to show off the predefined x (from simple-reflect)
18:36:59 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
18:37:16 JannisO joins (~JannisO@89.233.88.60)
18:37:42 × mokee quits (~mokee@37.228.215.170) (Quit: off)
18:37:48 slac11991 joins (~slack1256@181.43.228.252)
18:38:02 mokee joins (~mokee@37.228.215.170)
18:39:58 × mokee quits (~mokee@37.228.215.170) (Client Quit)
18:40:22 mokee joins (~mokee@37.228.215.170)
18:40:27 × slack1256 quits (~slack1256@191.125.227.88) (Ping timeout: 276 seconds)
18:43:19 slac11991 is now known as slack1256
18:45:46 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
18:46:03 JannisO joins (~JannisO@89.233.88.60)
18:48:31 justsomeguy joins (~justsomeg@user/justsomeguy)
18:49:48 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
18:50:24 Guest4365 joins (~Guest43@197.148.45.199)
18:51:01 × zincy quits (~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411) (Remote host closed the connection)
18:51:13 <Guest|62> trying to build chainweb-node in the nix docker image is proving to be another struggle:
18:51:13 <Guest|62> `error: Package ‘sbv-8.14’ in /nix/store/fa7d7b3920mzvbk9ad2nv14gp6n4xpvl-source/pkgs/development/haskell-modules/hackage-packages.nix:226984 is not supported on ‘aarch64-linux’, refusing to evaluate.`
18:52:03 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
18:52:27 hololeap joins (~quassel@user/hololeap)
18:52:34 × noteness quits (~noteness@user/noteness) (Ping timeout: 240 seconds)
18:54:16 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
18:54:39 noteness joins (~noteness@user/noteness)
18:55:20 <dmj`> Guest|62: are you on an m1 mac?
18:56:06 <Guest|62> yup
18:56:08 <dmj`> Guest|62: what does your Dockerfile look like
18:56:53 <Guest|62> So I just used `FROM nixos/nix` and ran that so i could sandbox
18:58:33 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
18:58:44 <Guest|62> but essentially, i just cloned the chainweb-node repo, cd into it, echo'ed these lines:
18:58:45 <Guest|62> `substituters = https://nixcache.chainweb.com https://cache.nixos.org/`
18:58:45 <Guest|62> `trusted-public-keys = nixcache.chainweb.com:FVN503ABX9F8x8K0ptnc99XEz5SaA4Sks6kNcZn2pBY= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=`
18:58:46 <Guest|62> into the `/etc/nix/nix.conf` file
18:58:46 <Guest|62> then run `nix-build` from the root chainweb-node dir
18:58:50 JannisO joins (~JannisO@89.233.88.60)
18:59:08 <Guest|62> following the nix build instructions here: https://github.com/kadena-io/pact/wiki/Building-Kadena-Projects#building-with-nix
19:00:02 × jollygood2 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
19:00:19 Guest84 joins (~Guest84@102.89.32.131)
19:02:05 <Guest84> Hello
19:02:16 <Guest84> I'm new here
19:02:31 × Guest4365 quits (~Guest43@197.148.45.199) (Quit: Client closed)
19:02:46 <Hash> change your nickname
19:02:57 <Guest84> Oh okay
19:02:59 <Hash> Get a permanent one
19:03:05 <Hash> register with /nickserv
19:03:11 <Hash> read the libera.chat irc website
19:03:20 <Hash> good luck and welcome
19:04:51 <Guest84> Thank you
19:06:56 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
19:07:02 Demmy joins (~Demmy@102.89.32.131)
19:07:13 JannisO joins (~JannisO@89.233.88.60)
19:07:56 <Demmy> How do I register
19:08:13 <geekosaur> /msg nickserv help register
19:08:53 zincy joins (~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411)
19:09:00 <Demmy> soory where exactly
19:09:16 <Demmy> I just joined with no password
19:09:39 <geekosaur> if you type that into your client, nickserv will tell you how to register your nickname and associate a password with it
19:09:55 <geekosaur> (/msg sends a private message)
19:12:10 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 244 seconds)
19:12:16 × Guest84 quits (~Guest84@102.89.32.131) (Quit: Client closed)
19:16:22 × CiaoSen quits (~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
19:19:46 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
19:20:03 JannisO joins (~JannisO@89.233.88.60)
19:21:47 × zeenk quits (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
19:23:36 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
19:25:35 <[exa]> Hash: I remember all guests by number tho
19:26:12 <Hash> That can be useful
19:28:16 <[exa]> Demmy: btw registering on irc is only required if you really care that others don't accidentally/malevolently use your nickname. Gives a tiny bit of authentication but not required at all.
19:28:33 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
19:29:14 <geekosaur> I'd also say it's not necessary if all you're planning to do is ask a couple of questions and move on
19:30:26 <[exa]> anyway -- does anyone have any experience with Hasura? I'm reading that it can do remote joins (aka graph federation), but can't find any benchmarks / performance guesses etc
19:30:55 <monochrom> Please don't just ask a couple of questions and move on. Please get addicted like the rest of us. >:)
19:31:06 <geekosaur> also you might prefer element (matrix) to IRC especially if you're using webchat
19:31:16 <geekosaur> it provides all the modern bells and whistles
19:32:04 <geekosaur> (I use element on my phone, but hexchat on my desktop because I'm an old coot :)
19:32:12 <[exa]> [90yo unix guy voice:] today irc clients have whistles?
19:33:38 <[exa]> re Hasura -- the main question is basically how much data I could throw to it (and try to connect through the federated queries) and expect it not to explode or so
19:34:04 × mokee quits (~mokee@37.228.215.170) (Quit: off)
19:34:56 × hololeap quits (~quassel@user/hololeap) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
19:35:56 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:38:54 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
19:39:12 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
19:42:47 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 255 seconds)
19:42:58 hololeap joins (~quassel@user/hololeap)
19:45:29 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
19:45:58 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
19:46:51 dcleonarski joins (~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea)
19:47:56 × bahamas quits (~lucian@84.232.141.167) (Ping timeout: 246 seconds)
19:50:12 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
19:50:29 JannisO joins (~JannisO@89.233.88.60)
19:51:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Remote host closed the connection)
19:52:58 nate1 joins (~nate@98.45.169.16)
19:57:30 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
19:57:59 <monochrom> w00t 9.2.3
20:07:26 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
20:07:43 JannisO joins (~JannisO@89.233.88.60)
20:07:48 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
20:08:07 obabo joins (~obabo@563BF107.catv.pool.telekom.hu)
20:09:22 <unit73e> element interface is just super ugly. the protocol is fine but can't make a decent interface?
20:09:29 <unit73e> ugly hexchat looks better to me
20:09:39 <unit73e> make I should make my own
20:09:49 <geekosaur> glirc?
20:11:41 <unit73e> what's glirc? granted I haven't search matrix clients that much
20:11:55 <geekosaur> IRC client written in Haskell
20:12:11 <geekosaur> @hackage glirc
20:12:11 <lambdabot> https://hackage.haskell.org/package/glirc
20:12:28 <unit73e> one of those console ones. I'll give it try, thanks.
20:13:28 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
20:14:49 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
20:15:17 king_gs1 joins (~Thunderbi@187.201.97.18)
20:15:35 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
20:15:39 × king_gs quits (~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) (Ping timeout: 258 seconds)
20:15:40 king_gs1 is now known as king_gs
20:18:04 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
20:18:12 Polo joins (~textual@user/polo)
20:18:21 JannisO joins (~JannisO@89.233.88.60)
20:18:36 × obabo quits (~obabo@563BF107.catv.pool.telekom.hu) (Ping timeout: 276 seconds)
20:20:16 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
20:20:32 JannisO joins (~JannisO@89.233.88.60)
20:24:21 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
20:24:38 JannisO joins (~JannisO@89.233.88.60)
20:26:05 × king_gs quits (~Thunderbi@187.201.97.18) (Ping timeout: 246 seconds)
20:28:20 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
20:28:23 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
20:28:47 JannisO joins (~JannisO@89.233.88.60)
20:29:04 × zincy quits (~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411) (Remote host closed the connection)
20:31:22 × danyisill quits (~danny@2a02:2149:8b7e:c000:514a:5a34:fc40:cdf3) (Remote host closed the connection)
20:32:03 × Guest|62 quits (~Guest|62@c-71-205-105-44.hsd1.co.comcast.net) (Quit: Connection closed)
20:32:18 × Polo quits (~textual@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:32:32 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
20:35:13 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
20:35:16 Polo joins (~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
20:35:17 Polo is now known as Guest7798
20:35:19 king_gs joins (~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55)
20:36:21 × Guest7798 quits (~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host)
20:36:21 Guest7798 joins (~textual@user/polo)
20:38:13 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:39:44 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 246 seconds)
20:40:03 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
20:40:14 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
20:43:28 yosef``` joins (~user@2409:8a55:e21b:5cf0:58b9:4cff:fea0:d9)
20:43:42 × Demmy quits (~Demmy@102.89.32.131) (Quit: Client closed)
20:45:04 × yosef`` quits (~user@user/yosef/x-3154124) (Ping timeout: 272 seconds)
20:45:13 × Guest7798 quits (~textual@user/polo) (Read error: Connection reset by peer)
20:46:35 Guest5803 joins (~textual@user/polo)
20:47:36 nate1 joins (~nate@98.45.169.16)
20:47:40 Guest5803 is now known as POLO
20:53:24 POLO is now known as money
20:54:54 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:57:26 Midjak joins (~Midjak@82.66.147.146)
20:58:44 vysn joins (~vysn@user/vysn)
21:03:10 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:03:27 JannisO joins (~JannisO@89.233.88.60)
21:05:07 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:05:21 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Remote host closed the connection)
21:05:24 JannisO joins (~JannisO@89.233.88.60)
21:07:19 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:07:28 × hueso quits (~root@user/hueso) (Read error: Connection reset by peer)
21:07:35 hueso_ joins (~root@user/hueso)
21:07:37 JannisO joins (~JannisO@89.233.88.60)
21:09:17 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:09:39 JannisO joins (~JannisO@89.233.88.60)
21:19:17 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
21:19:47 × slack1256 quits (~slack1256@181.43.228.252) (Ping timeout: 244 seconds)
21:20:03 × Guest46 quits (~Guest46@mv-213-141-53-146.telecable.es) (Quit: Client closed)
21:21:09 Demmy joins (~Demmy@102.89.33.153)
21:21:20 × vysn quits (~vysn@user/vysn) (Ping timeout: 255 seconds)
21:24:26 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:24:26 machinedgod joins (~machinedg@24.105.81.50)
21:24:43 JannisO joins (~JannisO@89.233.88.60)
21:28:28 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:28:50 JannisO joins (~JannisO@89.233.88.60)
21:30:30 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:30:47 JannisO joins (~JannisO@89.233.88.60)
21:32:27 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:32:44 JannisO joins (~JannisO@89.233.88.60)
21:32:56 × martin02 quits (~silas@141.84.69.76) (Ping timeout: 246 seconds)
21:33:14 × coot quits (~coot@213.134.190.95) (Quit: coot)
21:36:04 × michalz quits (~michalz@185.246.204.119) (Remote host closed the connection)
21:38:43 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
21:38:56 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
21:40:56 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:41:13 JannisO joins (~JannisO@89.233.88.60)
21:41:37 × dcleonarski quits (~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea) (Ping timeout: 260 seconds)
21:43:17 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:43:34 JannisO joins (~JannisO@89.233.88.60)
21:45:14 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:45:31 JannisO joins (~JannisO@89.233.88.60)
21:46:15 martin02 joins (~silas@141.84.69.76)
21:47:02 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
21:48:27 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
21:48:28 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
21:48:28 wroathe joins (~wroathe@user/wroathe)
21:48:43 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
21:48:56 dcoutts_ joins (~duncan@host109-149-15-56.range109-149.btcentralplus.com)
21:51:34 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
21:51:51 JannisO joins (~JannisO@89.233.88.60)
21:52:52 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:55:53 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
21:56:41 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
21:57:53 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
21:58:09 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
21:59:00 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
21:59:49 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:00:56 × money quits (~textual@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:02:22 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
22:04:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
22:04:25 Guest5473 joins (~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
22:06:11 × christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 246 seconds)
22:07:13 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:07:19 × king_gs quits (~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) (Quit: king_gs)
22:08:03 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
22:13:12 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
22:13:29 JannisO joins (~JannisO@89.233.88.60)
22:14:49 kenaryn joins (~aurele@89-88-44-27.abo.bbox.fr)
22:17:27 × aliosablack quits (~chomwitt@2a02:587:dc05:e000:904f:df51:bc87:e667) (Ping timeout: 240 seconds)
22:18:33 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:19:45 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
22:20:23 <trisolaran> does haskell memory management has the notions of heap or stack memory like in C ?
22:21:05 <trisolaran> ghc seems to compile haskell down to C code
22:21:48 × Demmy quits (~Demmy@102.89.33.153) (Ping timeout: 252 seconds)
22:22:01 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
22:23:50 dolio joins (~dolio@130.44.130.54)
22:24:06 × Guest5473 quits (~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:25:44 <unit73e> trisolaran, that's not a C characteristic, it's more of a modern OS characteristic
22:26:25 ec joins (~ec@gateway/tor-sasl/ec)
22:26:31 <unit73e> but haskell uses memory management similar to Java garbage collector, sort off
22:26:47 <geekosaur> ghc hasn't compiled down to C in a decade or so
22:26:47 × Vajb quits (~Vajb@2001:999:600:879a:e69c:7638:2849:8a14) (Read error: Connection reset by peer)
22:26:58 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
22:27:25 <unit73e> I don't know how haskell does GC but most likely is using heap for almost everything
22:27:45 <hpc> ghc has a heap and a stack, but the stack is used for evaluating thunks rather than actually being all the functions you've entered in order
22:27:56 <geekosaur> stack is used only for pattern matching and for external C calls
22:28:08 <trisolaran> unit73e: so do haskell programmers reason their programs in terms of heaps and stacks like c programmers? I know there's GCs, but still people need to be aware of memory management i suppose
22:28:33 <gentauro> trisolaran: they do in terms of `spaceleaks` :P
22:28:38 <hpc> haskell devs use equational reasoning
22:28:43 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
22:28:52 <hpc> getting down to what the machine does only really comes into play when you have a performance issue
22:29:05 <darkling> I don't know... right now, I seem to be using dumb luck. :)
22:29:05 <gentauro> trisolaran: and when it all goes bad, they add a lot of ! everywhere xD
22:29:07 <hpc> or maybe if you're doing some particularly finnicky thing with ffi
22:30:12 <unit73e> I wouldn't say the reasoning is similar to C because in C you're a lot more concerned were to put your data (heap vs stack) and memory leaks, while in haskell you will be more concerned if the data is in general being used efficiently, so like Java
22:30:26 <trisolaran> I'm encouraged to think low level even while programming in a high level language
22:30:40 <trisolaran> that's why i'm curious
22:31:05 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
22:31:18 <hpc> nah, think as high level as you can imo
22:31:24 <unit73e> yeah I agree
22:31:29 <hpc> (maybe with most languages "as high as you can" is still low level, but still)
22:31:46 <unit73e> why be high level if you still have think low level?
22:31:50 <unit73e> makes no sense to me
22:31:55 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
22:32:07 <unit73e> the GC is there so you don't have to bother with memory management, for the most part
22:32:13 <darkling> Being able to go down to that level is occasionally (and I mean occasionally) useful, but the higher-level abstraction is there to be helpful to you in the general case.
22:32:41 <unit73e> of course knowing how the GC works and if you have leaks is useful
22:32:49 <unit73e> maybe your question is more how do you know that
22:33:31 <trisolaran> right, i think knowing more about the GC will reassure my mind
22:33:56 <unit73e> you're on the right track about that, knowing the GC is important, imo
22:34:34 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:35:08 <unit73e> I'm not aware of an updated document about that though, the best I got is an article from 2008, and it's similar to Java parallel gc
22:36:00 Guest6629 joins (~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
22:36:14 <unit73e> so this: https://wiki.haskell.org/GHC/Memory_Management
22:36:53 <darkling> I don't think I've ever cared about the GC in any GC-based language I've used (although I have rolled my eyes to heaven a few times with Java).
22:37:37 <trisolaran> I've read some tutorial on the GHC runtime system by ezyang which is quite helpful
22:37:42 <darkling> Knowing the semantics of function parameters and pointers/references is more useful.
22:37:46 <unit73e> I had to care because some administrator "geniuses" thought they could do a better job in than the defaults in Java servers. In Haskell I never cared.
22:38:35 <unit73e> I believe hp2ps is still the standard profilling tool for those things?
22:39:48 <unit73e> or just that option I forgot in ghc
22:39:52 × rodental quits (~rodental@38.146.5.222) (Remote host closed the connection)
22:39:57 × Guest6629 quits (~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host)
22:39:57 Guest6629 joins (~textual@user/polo)
22:40:05 rodental joins (~rodental@38.146.5.222)
22:40:08 × m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 246 seconds)
22:40:14 <unit73e> basically the equivalent to jvisualvm
22:40:43 <EvanR> ghc-viz is cool, not sure if you could use it for production code
22:42:32 m1dnight joins (~christoph@78-22-9-5.access.telenet.be)
22:42:56 × simeon quits (~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
22:43:03 simeon joins (~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de)
22:45:03 <geekosaur> http://ezyang.com/jfp-ghc-rts-draft.pdf perhaps?
22:48:13 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 258 seconds)
22:49:43 × rodental quits (~rodental@38.146.5.222) (Remote host closed the connection)
22:49:56 rodental joins (~rodental@38.146.5.222)
22:50:02 × seriously quits (~seriously@ool-18bd5811.dyn.optonline.net) (Ping timeout: 252 seconds)
22:50:25 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
22:52:15 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
22:52:46 × dcoutts_ quits (~duncan@host109-149-15-56.range109-149.btcentralplus.com) (Ping timeout: 250 seconds)
22:52:52 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
22:52:58 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:53:00 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
22:54:10 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
22:54:33 <EvanR> in C you're concerned with memory leaks (among other things), in haskell you're concerned with space leaks :thonk:
22:54:35 JannisO joins (~JannisO@89.233.88.60)
22:54:37 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Read error: Connection reset by peer)
22:54:48 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
22:55:17 <EvanR> as the traveler said time, space, and thought are all different manifestations of the same thing
22:55:24 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
22:55:33 stackdroid18 joins (14094@user/stackdroid)
22:56:04 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
22:56:38 <maerwald[m]> heh
22:57:34 × tired- quits (~tired@user/tired) (Quit: /)
22:58:59 tired joins (~tired@user/tired)
23:00:49 × JannisO quits (~JannisO@89.233.88.60) (Remote host closed the connection)
23:02:35 Guest6629 is now known as POLO
23:05:46 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
23:08:23 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
23:14:41 × ix quits (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Read error: Connection reset by peer)
23:14:51 ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
23:15:22 dcleonarski joins (~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea)
23:18:57 zeenk joins (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
23:19:03 × zeenk quits (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Client Quit)
23:20:36 × POLO quits (~textual@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:21:00 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
23:24:39 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
23:37:12 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
23:40:55 Guest5485 joins (~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
23:41:24 × Guest5485 quits (~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host)
23:41:24 Guest5485 joins (~textual@user/polo)
23:43:39 × Guest5485 quits (~textual@user/polo) (Client Quit)
23:43:55 Guest5840 joins (~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
23:44:11 × Guest5840 quits (~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Client Quit)
23:44:49 Gambino joins (~Gambino@user/polo)
23:45:44 nate1 joins (~nate@98.45.169.16)
23:46:47 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
23:50:30 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds)
23:55:26 × foul_owl quits (~kerry@23.82.193.89) (Quit: WeeChat 2.3)
23:56:04 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
23:59:44 dfip^ joins (~dfip@173-160-91-30-atlanta.hfc.comcastbusiness.net)

All times are in UTC on 2022-05-27.