Logs: freenode/#haskell
| 2021-05-06 08:02:31 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 2021-05-06 08:02:52 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds) |
| 2021-05-06 08:03:06 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 2021-05-06 08:03:36 | <tdammers> | also, the naive OOP design approach ("identify domain objects; make them classes; identify domain operations; make them methods of the class that is the noun of the operation") isn't very good in practice |
| 2021-05-06 08:05:25 | <[exa]> | it's almost a good practice if all classes really correspond to objects and all methods really correspond to verbs |
| 2021-05-06 08:05:58 | <[exa]> | uNfOrTuNaTeLy reality often denies this representation |
| 2021-05-06 08:06:42 | × | fendor_ quits (~fendor@91.141.1.157.wireless.dyn.drei.com) (Remote host closed the connection) |
| 2021-05-06 08:06:52 | → | bahamas_ joins (~lucian@188.27.62.94) |
| 2021-05-06 08:07:02 | → | fendor_ joins (~fendor@91.141.1.157.wireless.dyn.drei.com) |
| 2021-05-06 08:07:10 | × | gitgoood quits (~gitgood@80-44-12-75.dynamic.dsl.as9105.com) (Quit: Probably away to do something really awesome) |
| 2021-05-06 08:09:20 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 246 seconds) |
| 2021-05-06 08:09:57 | × | hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds) |
| 2021-05-06 08:10:30 | → | dpl joins (~dpl@77-121-78-163.chn.volia.net) |
| 2021-05-06 08:12:13 | × | Sgeo quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer) |
| 2021-05-06 08:12:15 | → | hendursaga joins (~weechat@gateway/tor-sasl/hendursaga) |
| 2021-05-06 08:13:26 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds) |
| 2021-05-06 08:13:58 | → | kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49) |
| 2021-05-06 08:14:10 | <tdammers> | it's not the noun-object/verb-method thing I find questionable per se; it's which nouns and verbs you choose, and "verbs must be accompanied by nouns at all times" (Kingdom Of Nouns) |
| 2021-05-06 08:14:35 | <tdammers> | I mean, we do "noun-data/verb-function" in haskell all the time |
| 2021-05-06 08:15:30 | → | ph88 joins (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) |
| 2021-05-06 08:15:40 | <ph88> | hi all |
| 2021-05-06 08:16:02 | <ph88> | is there some thing/hack that can be done to export more from a module for testing purposes only ? |
| 2021-05-06 08:16:34 | <merijn> | ph88: No |
| 2021-05-06 08:17:18 | <merijn> | ph88: You can work around this by having an internal library that exports everything and then have the public library and tests using that, with the public library only exporting a subset |
| 2021-05-06 08:17:27 | <tdammers> | ph88: a somewhat uncontroversial thing to do is to put the library internals in modules named "Internal", but still expose them |
| 2021-05-06 08:17:41 | <ph88> | thanks guys |
| 2021-05-06 08:18:09 | <tdammers> | the "Internal" module name signals that the module isn't intended for consumers of the library, and its API may change without notice, and isn't considered covered by PVP |
| 2021-05-06 08:18:40 | × | othe1 quits (~othe@139.28.218.148) (Remote host closed the connection) |
| 2021-05-06 08:23:45 | → | LKoen joins (~LKoen@140.170.9.109.rev.sfr.net) |
| 2021-05-06 08:24:22 | <olle> | xsperry: I'm actually not convinced that's true. FP feels like you have to touch old code both when adding operations AND new data. |
| 2021-05-06 08:25:37 | <jacks2> | how so? if you add a new operation (function), old code remains the same |
| 2021-05-06 08:26:51 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 2021-05-06 08:27:19 | × | todda7 quits (~torstein@2a02:587:3724:1a75:aca:df22:9d82:969f) (Ping timeout: 260 seconds) |
| 2021-05-06 08:27:23 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 2021-05-06 08:28:13 | <tdammers> | touching old code isn't bad per se |
| 2021-05-06 08:28:37 | <tdammers> | it's only bad when you can't do it safely |
| 2021-05-06 08:28:46 | <DigitalKiwi> | at least in haskell touching old code is not so painful |
| 2021-05-06 08:28:48 | <jacks2> | olle, this page has good examples: http://wiki.c2.com/?ExpressionProblem |
| 2021-05-06 08:29:08 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 2021-05-06 08:29:38 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds) |
| 2021-05-06 08:30:04 | <DigitalKiwi> | python i wrote a week ago i have no effing idea what it does anymore and takes hours to debug; haskell from years ago that i don't even remember how to write i can modify >.> |
| 2021-05-06 08:30:25 | × | toppler quits (~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer) |
| 2021-05-06 08:30:39 | → | toppler joins (~user@mtop.default.momentoftop.uk0.bigv.io) |
| 2021-05-06 08:30:47 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 2021-05-06 08:30:48 | <tdammers> | that's the "change it safely" part I was hinting at |
| 2021-05-06 08:31:27 | <jacks2> | olle, note that this isn't related to languages, but to modeling. record of functions follow OOP style of modeling, so adding a new functionality would require modifying original file (to add new function in the record) |
| 2021-05-06 08:33:24 | <DigitalKiwi> | tdammers: yeah i hadn't even read all of your messages when i started typing lol |
| 2021-05-06 08:34:00 | × | caubert quits (~caubert@136.244.111.235) (Quit: WeeChat 3.0) |
| 2021-05-06 08:34:04 | → | torax joins (~torax@139.28.218.148) |
| 2021-05-06 08:34:18 | → | caubert joins (~caubert@136.244.111.235) |
| 2021-05-06 08:36:38 | → | nineonine joins (~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) |
| 2021-05-06 08:40:48 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.1) |
| 2021-05-06 08:40:49 | × | nineonine quits (~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Ping timeout: 245 seconds) |
| 2021-05-06 08:43:00 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 2021-05-06 08:43:31 | × | lieven quits (~mal@unaffiliated/lieven) (Ping timeout: 250 seconds) |
| 2021-05-06 08:45:00 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit) |
| 2021-05-06 08:45:40 | <olle> | I was thinking if splitting one OOP class into multiple files, each file implementing an interface, would "solve" the expression problem. |
| 2021-05-06 08:46:03 | <olle> | extend class Foo with SaveableInterface { save(dbConnection); } |
| 2021-05-06 08:46:09 | <Aleksejs> | Hello, I tried to implement a "cyclic" type (succ maxBound = minBound) and I managed to do that but it looks quite ugly http://vpaste.net/NmA9K. I wonder if there is a better way |
| 2021-05-06 08:48:33 | × | remedan quits (~remedan@balak.me) (Quit: Bye!) |
| 2021-05-06 08:48:42 | <tdammers> | olle: the explanation is a bit involved, but no, it doesn't. you're just moving the problem around. |
| 2021-05-06 08:49:19 | → | M66bdd7f1f556[m] joins (M66bdd7f1f@gateway/shell/matrix.org/x-oqbjqmoraaxfqpmo) |
| 2021-05-06 08:50:14 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 2021-05-06 08:51:22 | <jacks2> | olle, see this: http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf |
| 2021-05-06 08:51:52 | <olle> | jacks2: thanks! |
| 2021-05-06 08:54:56 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 2021-05-06 08:55:02 | → | remedan joins (~remedan@balak.me) |
| 2021-05-06 08:59:31 | → | dhil joins (~dhil@195.213.192.4) |
| 2021-05-06 08:59:51 | × | nrdmn98 quits (~nrdmn@aufmachen.jetzt) (Ping timeout: 252 seconds) |
| 2021-05-06 09:00:11 | × | amerocu[m] quits (amerocumat@gateway/shell/matrix.org/x-ettekisbiqeapgti) (Quit: Idle for 30+ days) |
| 2021-05-06 09:00:11 | × | stevekrouse1[m] quits (stevekrous@gateway/shell/matrix.org/x-yavjkxinulfgxwlk) (Quit: Idle for 30+ days) |
| 2021-05-06 09:01:23 | × | xff0x quits (~xff0x@2001:1a81:5284:1d00:fc89:b54a:8d08:1b37) (Ping timeout: 260 seconds) |
| 2021-05-06 09:02:09 | → | xff0x joins (~xff0x@2001:1a81:529c:3600:b6e:989c:229a:901a) |
| 2021-05-06 09:05:10 | × | coot quits (~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 2021-05-06 09:05:26 | → | coot joins (~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl) |
| 2021-05-06 09:05:54 | → | acidjnk_new2 joins (~acidjnk@p200300d0c72b9513e05ff4b2b19e02c9.dip0.t-ipconnect.de) |
| 2021-05-06 09:07:41 | × | toppler quits (~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer) |
| 2021-05-06 09:07:58 | → | Synthetica joins (uid199651@gateway/web/irccloud.com/x-zjwhyipdmwoktmxx) |
| 2021-05-06 09:07:58 | → | toppler joins (~user@mtop.default.momentoftop.uk0.bigv.io) |
| 2021-05-06 09:09:12 | → | CrazyPython joins (~crazypyth@98.122.164.118) |
| 2021-05-06 09:12:10 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2021-05-06 09:12:35 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 2021-05-06 09:13:07 | × | hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1) |
| 2021-05-06 09:20:20 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 2021-05-06 09:20:41 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 2021-05-06 09:20:59 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 2021-05-06 09:25:43 | <carbolymer> | my application uses 8GB of RAM, in heap profile I can only see ~1GB of memory |
| 2021-05-06 09:25:52 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 2021-05-06 09:25:56 | <carbolymer> | where's the rest? stack? |
| 2021-05-06 09:26:50 | <[exa]> | fragmentation? |
| 2021-05-06 09:26:59 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 268 seconds) |
| 2021-05-06 09:27:01 | <carbolymer> | you mean slop? or what? |
| 2021-05-06 09:31:35 | <merijn> | carbolymer: How are you measuring that 8GB? |
| 2021-05-06 09:31:58 | <carbolymer> | merijn: EKG, current residency |
| 2021-05-06 09:32:22 | <merijn> | current residency of 8GB? oof... |
| 2021-05-06 09:32:42 | <merijn> | carbolymer: Probably pinned memory if it's not heap? |
| 2021-05-06 09:33:21 | <merijn> | carbolymer: But without any profilng output/source/whatever all anyone can do is blind guesswork |
| 2021-05-06 09:33:45 | <carbolymer> | merijn: pinned shows up in heap output afair |
| 2021-05-06 09:35:13 | <merijn> | carbolymer: I can't think of anything that would be that big and not in the profiling output, tbh |
| 2021-05-06 09:35:36 | <merijn> | carbolymer: What does "+RTS -sstderr" report? |
All times are in UTC.