--- Log opened Wed Jun 10 00:00:35 2015 |
00:02 | | abudhabi [abudhabi@Nightstar-7nkq9k.de] has joined #code |
00:24 | | catadroid [catalyst@Nightstar-rh3.dag.151.95.IP] has quit [Ping timeout: 121 seconds] |
00:27 | | Derakon[AFK] is now known as Derakon |
00:37 | | catadroid [catalyst@Nightstar-iqvfvj.dab.02.net] has joined #code |
01:23 | | macdjord is now known as macdjord|fude |
01:31 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code |
01:31 | | mode/#code [+o Vash] by ChanServ |
01:51 | | himi [fow035@Nightstar-dm0.2ni.203.150.IP] has joined #code |
01:51 | | mode/#code [+o himi] by ChanServ |
03:04 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed] |
03:33 | | thalass [thalass@Nightstar-unv.ss5.114.24.IP] has quit [Connection closed] |
03:56 | | macdjord|fude is now known as macdjord |
04:01 | | macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [[NS] Quit: *tap,] |
04:18 | | macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code |
04:18 | | mode/#code [+o macdjord] by ChanServ |
05:07 | | Tarinaky [tarinaky@Nightstar-e99cts.net] has quit [Ping timeout: 121 seconds] |
05:10 | | Derakon is now known as Derakon[AFK] |
05:12 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
05:16 | | celticminstrel [celticminst@Nightstar-uelp1m.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:57 | | Checkmate [Z@Nightstar-pdi1tp.customer.tdc.net] has quit [Ping timeout: 121 seconds] |
06:18 | | Kindamoody[zZz] is now known as Kindamoody |
06:53 | | catadroid` [catalyst@Nightstar-9nnm31.dab.02.net] has joined #code |
06:55 | | catadroid [catalyst@Nightstar-iqvfvj.dab.02.net] has quit [Ping timeout: 121 seconds] |
07:14 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
07:14 | | mode/#code [+o Checkmate] by ChanServ |
07:40 | | catadroid` is now known as catadroid |
08:00 | | catadroid is now known as cat |
08:16 | | himi [fow035@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds] |
08:34 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [Connection closed] |
08:48 | | macdjord is now known as macdjord|slep |
09:13 | | Kindamoody is now known as Kindamoody|afk |
10:12 | < cat> | garbage collectors have a lot to answer for |
10:12 | < cat> | the messiness of object lifetimes in basically every language other than C++ annoys me greatly |
10:27 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
10:35 | | tarinaky [tarinaky@Nightstar-e99cts.net] has joined #code |
10:35 | | mode/#code [+o tarinaky] by ChanServ |
10:39 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
10:40 | | mode/#code [+o himi] by ChanServ |
10:56 | | Orth is now known as Reivles |
11:31 | | cat [catalyst@Nightstar-9nnm31.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
11:32 | | catadroid [catalyst@Nightstar-9vgm9k.dab.02.net] has joined #code |
12:02 | | catadroid [catalyst@Nightstar-9vgm9k.dab.02.net] has quit [[NS] Quit: Bye] |
12:02 | | catadroid [catalyst@Nightstar-9nnm31.dab.02.net] has joined #code |
13:24 | | catadroid` [catalyst@Nightstar-fls2gk.dab.02.net] has joined #code |
13:27 | | catadroid [catalyst@Nightstar-9nnm31.dab.02.net] has quit [Ping timeout: 121 seconds] |
13:36 | <@tarinaky> | Apple fact: Steve Jobs invented not only the mp3 player, the desktop OS and smartphones but he also invented the Marconigraph. |
13:43 | | gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code |
13:43 | | mode/#code [+o gnolam] by ChanServ |
13:47 | <@gnolam> | https://twitter.com/eviltrout/status/608292681341665281/photo/1 |
13:57 | | catadroid` is now known as catadroid |
14:03 | | celticminstrel [celticminst@Nightstar-uelp1m.dsl.bell.ca] has joined #code |
14:04 | | mode/#code [+o celticminstrel] by ChanServ |
15:29 | | tarinaky is now known as Tarinaky |
16:40 | < catadroid> | so before I was writing into memory that I only knew the type of through context |
16:40 | < catadroid> | now I'm writing into memory that's polymorphic based on the context and I don't know the context yet |
16:40 | < catadroid> | which could be interesting |
16:41 | | * catadroid puts on her hat and monocle and goes adventuring |
16:41 | <@gnolam> | And when you gaze long into a void*, the void * also gazes into you. |
16:53 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
16:57 | < catadroid> | yes |
16:57 | < catadroid> | can confirm I am now made of stars |
16:58 | | kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has joined #code |
17:15 | <@froztbyte> | catadroid: writing C? |
17:15 | <@froztbyte> | oh C++ |
17:15 | <@froztbyte> | don't do that |
17:15 | <@froztbyte> | it's bad for your health |
17:15 | <@froztbyte> | also stop being ridiculous, GCs are way better a solution than pretty much anything most people would come up with :P |
17:16 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has joined #code |
17:16 | | mode/#code [+o Checkmate] by ChanServ |
17:25 | < catadroid> | GCs are arguably fine for memory, it's a shame that not all system resources are memory |
17:27 | <@froztbyte> | catadroid: I'm not sure I understand; what do you mean? |
17:30 | < catadroid> | when I want to handle a file in C++ seamlessly I can handle it's closing via a destructor and know the lifetime of the object implicitly. In, say, C# I have to either trust the GC to clean it up promptly or tidy it up explicitly, either via using, or finally, or whatever. but there are no implicit options |
17:31 | < catadroid> | I'm not saying that either language is flawless, I just feel that managed languages have hamstrung themselves when it comes to object lifetimes because of how much they care about gc |
17:31 | <@froztbyte> | okay but why is this something you care about? |
17:32 | <@froztbyte> | in C++, you basically have no other option /but/ to handle it explicitly, so in C# the distinction is one of "I have extra features and I feel that this is inconvenient", which makes no real sense to me |
17:32 | <@froztbyte> | if you need to write code that closes a filehandle, then you write code that does that |
17:32 | < catadroid> | that's not what I said |
17:32 | <@froztbyte> | catadroid: that's what I'm getting from it, though |
17:33 | < catadroid> | In C++ I have an object that, because of how destructors and object lifetime are defined, lets me stop using the resource the moment the program logic is done with it |
17:33 | <@froztbyte> | so? |
17:33 | <@froztbyte> | I'm trying to understand why that's a reference point for you |
17:33 | <@froztbyte> | why is that a thing that concerns you? |
17:33 | < catadroid> | in C# I can't do that because ending a scope doesn't destroy the object |
17:33 | < catadroid> | because I could write a lot neater and more correct code if it did |
17:34 | < catadroid> | with fewer associated bugs by design |
17:34 | <@froztbyte> | (I'm not saying that there aren't valid reasons, but they're also quite particular) |
17:34 | <@froztbyte> | catadroid: eh. |
17:34 | <@froztbyte> | provide some examples please |
17:36 | <@froztbyte> | I'll provide you a counter-example: fun little libevent fork() bug that would, in a clone() env for threads, end up with mismatched FD tables due to normal-ish stuff (log rotation, clients connecting/disconnecting) happening. one such mismatch would cause a teardown in the main listening socket, and a totally clean shutdown due to ENOENT on read |
17:36 | < catadroid> | I have a class that hooks itself up to a global callback and needs to unsubscribe when it's destroyed. In C++ I could stick that in the destructor and be guaranteed that it'll run at the correct time. Since it did not, I needed to find the place in code that these objects are logically destroyed |
17:36 | <@froztbyte> | (also, only in daemonized mode, because ?????) |
17:36 | < catadroid> | This took me several because of the design of the system |
17:36 | < catadroid> | hours* |
17:37 | < catadroid> | I'm unsure what your example demonstrates |
17:37 | <@froztbyte> | okay, so it sounds like your system is designed around the specific nuances available in hand-managed memory systems? |
17:37 | <@froztbyte> | whereas in other systems that approach is probably one that someone would go "eww, wtf?" |
17:38 | <@froztbyte> | catadroid: that even in reasonably well-written and well-structured code, "stupid C/C++ bullshit" fucks up your day |
17:38 | <@froztbyte> | this was *even better* because it could only fail in one environment |
17:38 | <@froztbyte> | as near as I can tell, it is something around clockrate and cores available |
17:38 | <@froztbyte> | I couldn't make it fail on any of 5 other environments |
17:39 | < catadroid> | I can simplify my problem to 'I would like a syntactic construct in managed languages when an object goes out of scope' |
17:39 | <@froztbyte> | that's an available thing in many of the ones I've dealt with, though |
17:39 | <@froztbyte> | sometimes by fucking around with language semantics, sometimes provided straight-up in the toolset you might be using |
17:39 | < catadroid> | it's not a common idiom in any that I've used professionally |
17:40 | <@froztbyte> | I'm left wondering if "when an object goes out of scope" is the right phrasing/want there |
17:40 | <@froztbyte> | since that's determined by whatever operational sematics the language has on cleaning things up |
17:41 | <@froztbyte> | arguably you want "I want teardown to happen at the right point in the lifecycle of things I'm doing"? |
17:41 | < catadroid> | I feel a bit like you're trying to belittle me when I just want to complain that destructors are a very useful tool that mainstream managed languages don't provide |
17:41 | <@froztbyte> | you're talking shit though |
17:41 | <@froztbyte> | python, ruby, C#, etc |
17:41 | <@froztbyte> | all have destructores |
17:41 | <@froztbyte> | destructors* |
17:41 | <@froztbyte> | what I'm saying is that it sounds like you're trying to solve the problem in a way that isn't suited for the language |
17:42 | < catadroid> | and I'm saying that my problem is that I feel that the design of the language in question has been negatively affected by the idea that all complex objects be garbage collected. |
17:44 | < catadroid> | you've made loads of assumptions about my general skil level and experience and are talking down to me |
17:44 | < catadroid> | that's uncool |
17:44 | <@froztbyte> | well, I didn't mean to |
17:44 | <@froztbyte> | you literally sound like you're outright unaware of things like destructors in things like python and such |
17:44 | <@froztbyte> | and/or are ignoring them for some reason |
17:45 | <@froztbyte> | either case leaves me with question marks |
17:45 | <@froztbyte> | catadroid: I may sometimes communicate brashly, please don't be afraid to poke me with a stick if you feel I'm being a dick. |
17:46 | | * froztbyte can't always tell |
17:46 | < catadroid> | python and C# have finalizers, which are fundamentally different from destructors because they're dictated by when the gc runs NOT by your code logic. You can make them run at the right time by wrapping the blocks in with or using statements |
17:47 | < catadroid> | but destructors are run implicitly and those require explicit code to be written when used |
17:47 | < catadroid> | which means more code which means more bugs |
17:47 | < catadroid> | in C++ (but not C) I can therefore use destructors to remove an entire class of bugs |
17:48 | < catadroid> | whereas finalizers don't run at the right time so I can't use them to solve the same problem. |
17:48 | <@froztbyte> | catadroid: yes, I'm aware of the differences. I'm seriously not really getting where you draw the correlation of "there will definitely be more bugs" |
17:49 | <@froztbyte> | I'm very much getting the impression that you're trying to 1:1 the approach taken, which is pretty much impossible (and, to some level, probably the wrong thing to want to do) |
17:50 | <@froztbyte> | different implementations carry different approaches, and I get the impression that you obviously you know this, so I'm not sure why you'd want the same approach in either scenario |
17:50 | <@froztbyte> | (that's the part that confuses me) |
17:53 | < ToxicFrog> | froztbyte: if you forget the 'with', your code will still compile and run but now you have a very exciting potential issue where your resource may or may not be cleaned up promptly depending on the exact behaviour of the GC. |
17:53 | < ToxicFrog> | This is kind of hard to test for and very hard to debug when it happens unexpectedly. |
17:56 | <@froztbyte> | as a prime hater of file races, commonly seen in things that rotate badly, I'm not going to argue that I think it's the stupidest shit ever |
17:56 | < catadroid> | and yes I wish I could have refcount support in the language to help me write cleaner code, but I don't have those features and that's why I'm complaining |
17:57 | < catadroid> | so of course I can't solve it the same way in those languages, it would just be nice to be able to because I think it's a superior idiom. |
17:59 | < kourbou> | Is this a joke? http://blogs.nvidia.com/blog/2015/06/09/gpu-powered-june-oven/ |
18:00 | < kourbou> | I'm actually confused. |
18:02 | <@Tamber> | I was half-expecting "GPU-powered" to be a "our cards run so hot, you can actually cook your dinner on them" joke. |
18:02 | < kourbou> | Yeah I was too. |
18:02 | < kourbou> | But now I think they could be serious. >.> |
18:03 | <@ErikMesoy> | http://www.wired.com/2015/06/june-oven/ It does not appear to be a joke. |
18:03 | <@Tamber> | Maybe it was an AFJ that someone took seriously. |
18:05 | < kourbou> | wow |
18:05 | < kourbou> | NVidia is the next Intel. o.o |
18:06 | <@ErikMesoy> | It seems like an interesting application of the 80/20 rule. Once you get the oven camera to recognize and properly cook pizza, steak and cookies, you've got a use case. Then you add marginal extras. :P |
18:27 | | catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code |
18:27 | | catadroid [catalyst@Nightstar-fls2gk.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
18:28 | | catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code |
18:28 | | catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
18:31 | | macdjord|slep is now known as macdjord|wurk |
18:33 | | kourbou is now known as kourbou|foodz |
18:34 | | catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
18:34 | | catadroid [catalyst@Nightstar-fls2gk.dab.02.net] has joined #code |
18:43 | | catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code |
18:43 | | catadroid [catalyst@Nightstar-fls2gk.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
18:44 | | catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code |
18:44 | | catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
18:57 | | catadroid` [catalyst@Nightstar-pie2mk.dab.02.net] has joined #code |
18:57 | | catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
19:12 | | catadroid [catalyst@Nightstar-pie2mk.dab.02.net] has joined #code |
19:14 | | catadroid` [catalyst@Nightstar-pie2mk.dab.02.net] has quit [Ping timeout: 121 seconds] |
19:19 | | kourbou|foodz is now known as kourbou |
19:25 | | catadroid [catalyst@Nightstar-pie2mk.dab.02.net] has quit [Ping timeout: 121 seconds] |
19:48 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
19:57 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code |
19:57 | | mode/#code [+o Vash] by ChanServ |
20:38 | | kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has quit [[NS] Quit: Tip about keeping secrets: It's easier if you don't know them.] |
21:20 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has quit [Ping timeout: 121 seconds] |
21:59 | | Kindamoody|afk is now known as Kindamoody |
22:10 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
22:10 | | mode/#code [+o Checkmate] by ChanServ |
22:42 | | Kindamoody is now known as Kindamoody[zZz] |
23:10 | | thalass [thalass@Nightstar-u1q.snj.114.24.IP] has joined #code |
23:10 | | mode/#code [+o thalass] by ChanServ |
23:43 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
23:43 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
--- Log closed Thu Jun 11 00:00:49 2015 |