--- Log opened Fri Apr 03 00:00:59 2015 |
00:37 | <@Ogredude> | woohoo, updated to 4 independent lighting zones |
00:54 | | Derakon[AFK] is now known as Derakon |
00:58 | | thalass [thalass@Nightstar-inc.0nd.223.216.IP] has quit [Ping timeout: 121 seconds] |
01:11 | <~Vornicus> | what'cha growing, oggy? |
01:13 | <@Alek> | what else? :P |
01:14 | <@Ogredude> | haha |
01:14 | <@Ogredude> | Alek knows |
01:15 | <@Ogredude> | Vornicus: food and medicine |
01:15 | <@Ogredude> | this fancy stuff is all for the medicine |
01:15 | <@Ogredude> | actually screw it, it's not for medicine, we're not going to be doing the medical end very much at all |
01:16 | <@Ogredude> | we're on track to get licensed as recreational cannabis producers |
01:16 | <~Vornicus> | nice |
01:17 | <@Ogredude> | we could probably make damn good money on the medical end, except for the whole medical system is very much against making money... it's all about providing medicine to patients, and any recompense is considered a "donation" |
01:17 | <@Ogredude> | hell with that. I want this to be clearly for-profit. |
01:17 | <@Tamber> | Rather than "sneakily for-profit"? |
01:17 | <@Ogredude> | right. |
01:19 | | gnolam_ [lenin@Nightstar-oru2ae.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
01:20 | <@Ogredude> | and since cannabis is one of those plants where the more light you throw at it, the bigger your crop... |
01:20 | <@Ogredude> | we figure what better to light it up with than a fusion reactor encompassing 99% of the matter in the solar system |
01:20 | <@Alek> | and you don't want to spring for LEDs or fluorescent - incandescent or halogen or bust. you need heat too. right? |
01:21 | <@Alek> | or solar, sure. |
01:21 | <@Ogredude> | nope, we're not going to need heat here |
01:21 | <@Ogredude> | our main foe is humidity |
01:21 | <@Alek> | where are you, the Amazon? |
01:21 | <@Ogredude> | Central Oregon coast |
01:22 | <@Alek> | huh. Ida thunk you'd want heat to guard against sudden cold snaps. not to mention to keep growing through the winter. |
01:22 | <@Alek> | but what do I know. *shrugs* |
01:22 | <@Ogredude> | it doesn't really get cold enough in the winter to worry about here |
01:23 | <@Ogredude> | especially not in a greenhouse |
01:23 | <@Ogredude> | and growing through the winter is why the supplemental lighting |
01:23 | <@Ogredude> | we won't get enough daylight to support the vegetative state until late April |
01:23 | <@Ogredude> | for outdoor planting |
01:40 | | thalass [thalass@Nightstar-inc.0nd.223.216.IP] has joined #code |
01:40 | | mode/#code [+o thalass] by ChanServ |
01:49 | | thalass [thalass@Nightstar-inc.0nd.223.216.IP] has quit [[NS] Quit: laters] |
02:03 | | Reiver is now known as Orth |
02:03 | <&Derakon> | This is pretty interesting: the kinds of hoops you have to jump through to make a 3D platformer in 1995. http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-part-1/ |
02:18 | <&McMartin> | This is the one with the story about the expected lifetime of the PS1 CD drive, isn't it |
02:18 | <&McMartin> | That was a scream |
02:18 | <&Derakon> | I think so, yeah. |
02:18 | <&Derakon> | I mean, he mentions virtual memory on the PlayStation. |
02:18 | <&Derakon> | That's, uh, going to go poorly~ |
02:22 | <&Derakon> | Ah, yes. |
02:22 | <&Derakon> | "Andy had given Kelly a rough idea of how we were getting so much detail through the system: spooling. Kelly asked Andy if he understood correctly that any move forward or backward in a level entailed loading in new data, a CD ?hit.? Andy proudly stated that indeed it did. Kelly asked how many of these CD hits Andy thought a gamer that finished Crash would have. Andy did some thinking and off the top of his head said ?Roughly 120 |
02:22 | <&Derakon> | ,000.? Kelly became very silent for a moment and then quietly mumbled ?the PlayStation CD drive is ?rated? for 70,000.?" |
02:22 | <&Derakon> | "Kelly thought some more and said ?let?s not mention that to anyone? and went back to get Sony on board with Crash." |
02:24 | <&McMartin> | And nobody ever noticed, which is a sign that the PSX was actually heavily overengineered. |
02:37 | <~Vornicus> | As a guy who 100%'d Crash twice on the original hardware, quite |
02:37 | <~Vornicus> | (you get about 50% more level runs, 100%ing) |
03:23 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has quit [Connection closed] |
03:23 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has joined #code |
03:31 | | celticminstrel [celticminst@Nightstar-orch4o.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
03:31 | | celticminstrel [celticminst@Nightstar-orch4o.dsl.bell.ca] has joined #code |
03:31 | | mode/#code [+o celticminstrel] by ChanServ |
05:03 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
05:04 | | Derakon is now known as Derakon[AFK] |
05:04 | | * McMartin fiddles with Rust a bit |
05:05 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [[NS] Quit: Quit] |
05:05 | <&McMartin> | I see what they're aiming at, but this has some very unfortunate side effects unless there are idioms I'm not using and thus fighting against. |
05:48 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
05:59 | | Kindamoody[zZz] is now known as Kindamoody |
06:36 | | Turaiel is now known as Turaiel[Offline] |
08:06 | | celticminstrel [celticminst@Nightstar-orch4o.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
08:50 | | Meatyhandbag [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has quit [Client exited] |
08:52 | | Attilla [sid13723@Nightstar-h2b233.irccloud.com] has quit [Connection closed] |
09:23 | | Attilla [sid13723@Nightstar-h2b233.irccloud.com] has joined #code |
09:30 | | Kindamoody is now known as Kindamoody|afk |
09:53 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
10:02 | | SyloqAgain [Syloq@Nightstar-hco.fem.152.204.IP] has joined #code |
10:02 | | mode/#code [+o SyloqAgain] by ChanServ |
10:09 | | AverageJoe [evil1@Nightstar-2ofrtr.ph.cox.net] has joined #code |
10:23 | <@Tarinaky> | http://blog.erratasec.com/2015/04/pin-pointing-chinas-attack-against.html |
10:34 | | AverageJoe [evil1@Nightstar-2ofrtr.ph.cox.net] has quit [[NS] Quit: Leaving] |
10:40 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has quit [Connection closed] |
10:40 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has joined #code |
10:48 | | Orthia [orthianz@Nightstar-ea5.84h.224.119.IP] has quit [Ping timeout: 121 seconds] |
10:52 | | Orthia [orthianz@Nightstar-lgh.cn1.184.203.IP] has joined #code |
10:52 | | mode/#code [+o Orthia] by ChanServ |
12:49 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
12:49 | | mode/#code [+o Checkmate] by ChanServ |
13:56 | | Meatyhandbag [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has joined #code |
14:08 | | gnolam_ [lenin@Nightstar-oru2ae.priv.bahnhof.se] has joined #code |
14:26 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
14:46 | | Meatyhandbag [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has quit [Ping timeout: 121 seconds] |
14:52 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has joined #code |
14:52 | | mode/#code [+o Checkmate] by ChanServ |
15:00 | | Meatyhandbag [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has joined #code |
15:09 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
15:09 | | mode/#code [+o thalass] by ChanServ |
15:55 | <@Tarinaky> | This looks like a joke: https://en.wikipedia.org/wiki/Exception_handling_syntax#Visual_Basic |
15:55 | <@Tarinaky> | With New Try: On Error Resume Next... |
15:55 | <@Tarinaky> | Wut. |
15:55 | < [R]> | It's not |
15:56 | < [R]> | It's the same as a giant try{ ... }catch(Exception e); block |
15:57 | <@Tarinaky> | That's only the first... 10 lines or so. |
15:57 | <@Tarinaky> | Class Try looks to be boilerplate. |
15:58 | <@Tarinaky> | But the With New Try: On Error Resume Next just looks like Take Off Every Zip. |
15:58 | <@Tarinaky> | *Zig |
15:58 | <@Tarinaky> | In fact, that's what I'll call it: With New Try: Take Off Every Zig. |
15:59 | < [R]> | Oh! The "With New Try" is part of it too |
15:59 | < [R]> | That's new... |
16:04 | <@Tarinaky> | It's worse than public static void main. |
16:09 | < [R]> | What's bad about that? |
16:09 | < [R]> | Just the boilerplate of it? |
16:09 | <@Tarinaky> | While public static void main makes /perfect/ sense to anyone with a passing familiarity with C++... |
16:10 | <@Tamber> | To me, it seems a little weird. |
16:10 | <@Tarinaky> | I was thinking more of the story about the say before the final exam for a first year CS course where the TA was having the room chant 'public static void main'. |
16:10 | <@Tarinaky> | *the day |
16:11 | <@Tamber> | (I mean, 'main' is perhaps the one function you really *want* to be global, surely? :p) |
16:13 | <@Tarinaky> | I'm not sure we're working on the same definition of global. |
16:13 | <@Tarinaky> | Class Methods != global |
16:14 | <@Tamber> | Perhaps not. |
16:14 | <@Tarinaky> | And there are quite a few good reasons for classes to have class methods. |
16:14 | <@Tamber> | C++, to me, is just "C with some extra stuff tacked on that I don't really pay any attention to"~ |
16:15 | <@Tarinaky> | I think it's fair to say that more describes 'modern' C than it does 'modern' C++ |
16:15 | <@Tamber> | Perhaps to you. |
16:15 | <@Tamber> | To me, if it's not in c89, I probably won't use it ever. |
16:16 | <@Tamber> | Hell, I don't really think I even use the full extent of c89. |
16:16 | <@Tarinaky> | C99 has a lot of exta stuff tacked on. |
16:16 | <@Tarinaky> | You're... pretty much making my point. |
16:16 | <@Tarinaky> | What's the standard after C99? C11? |
16:16 | <@Tamber> | No idea. |
16:17 | <@Tamber> | ...it appears so. |
16:20 | <@Tamber> | The point I think I'm trying to make is that it seems unusual to make main(), which is generally your program's entry point, static -- that is, visible only in that file. ;) |
16:20 | <@Tarinaky> | Oh well 1) I missed that and 2) I said anyone with a passing familiarity with C++ |
16:21 | <@Tamber> | I know. |
16:21 | <@Tamber> | I just said it seems weird to me. :p |
16:21 | <@Tamber> | And I just splash around in a very shallow puddle of programming. |
16:21 | <@Tarinaky> | So I don't know why you think C counts as C++ :P |
16:21 | <@Tamber> | I did not. |
16:21 | <@Tamber> | I was off on a tangent. Perhaps a poorly marked one. ;) |
16:22 | <@Tarinaky> | My mission for tonight is to squeeze in some time to work on my current magnum opus before I have to drive to a party. |
16:22 | <@Tamber> | Good luck. |
16:24 | | Kindamoody|afk is now known as Kindamoody |
16:36 | | celticminstrel [celticminst@Nightstar-orch4o.dsl.bell.ca] has joined #code |
16:36 | | mode/#code [+o celticminstrel] by ChanServ |
16:46 | < gnolam_> | <Tamber> The point I think I'm trying to make is that it seems unusual to make main(), which is generally your program's entry point, static -- that is, visible only in that file. ;) |
16:46 | < gnolam_> | Can't tell if serious |
16:46 | <@Tamber> | Heh |
16:47 | <@Tamber> | Yes, it was. Why, how dumb is it? |
16:48 | < [R]> | static methods aren't static functions. |
16:48 | < [R]> | static methods are available without instantizing the class. |
16:48 | | * Tamber facedesks. |
16:49 | <@Tamber> | As I clearly did not make clear enough, I was off on a tangent about how it seems weird to me, because I view it through a mostly C pair of spectacles. |
16:50 | <@Tamber> | And not very good ones, at that. |
17:07 | | grindhold [quassel@Nightstar-0ona3l.cyan.servdiscount-customer.com] has quit [[NS] Quit: No Ping reply in 180 seconds.] |
17:15 | | grindhold [quassel@Nightstar-0ona3l.cyan.servdiscount-customer.com] has joined #code |
17:20 | | grindhold [quassel@Nightstar-0ona3l.cyan.servdiscount-customer.com] has quit [Ping timeout: 121 seconds] |
17:24 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Ping timeout: 121 seconds] |
18:00 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
18:00 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
18:50 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
18:50 | | mode/#code [+o thalass] by ChanServ |
19:03 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Ping timeout: 121 seconds] |
19:24 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
19:24 | | mode/#code [+o thalass] by ChanServ |
19:44 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code |
19:44 | | mode/#code [+o Vash] by ChanServ |
19:48 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Operation timed out] |
20:32 | | Turaiel[Offline] is now known as Turaiel |
20:48 | <&McMartin> | C99 is AFAIK still the latest C standard and the only its of it anyone uses are // comments and structure initialization with named fields. |
20:48 | <&McMartin> | C++11 is the latest actually released C++ and it has diverged very, very far from C. |
20:54 | <&McMartin> | there was a C++14 that was I think tentative but then became C++1x again what with 2014 being over |
20:54 | <&McMartin> | Oh wait, C++14 was approved in December |
20:55 | <&McMartin> | And it was C++1y before that. What may be C++17 is currently C++1z. -__ |
20:55 | <&McMartin> | -_- |
20:55 | <@celticminstrel> | Heh. |
20:55 | <@celticminstrel> | I suppose that's so that "C++1x" doesn't mean two completely different things in different compiler versions. |
20:56 | <&McMartin> | Exactly that, yes. C++11 was the original C++1x |
20:56 | <&McMartin> | But the big jump is from C++98 to C++11, as one might expect |
20:57 | <&McMartin> | Even within C++98, the "working subset" of the language was so diverse across programmers I think overall it might end up being completely disjoint |
20:57 | <&McMartin> | Only the only parts of C++ that literally everyone uses are the parts that are also in, like, JavaScript |
20:57 | <&ToxicFrog> | McMartin: // comments, struct initialization, for loop inline declarations, interleaved declarations, and VA macros, you mean? |
20:58 | <@celticminstrel> | Which parts? |
20:58 | <&McMartin> | celticminstrel: +, -, *, /, etc |
20:58 | <&ToxicFrog> | Apparently there is actually a C11 now, too |
20:58 | <@celticminstrel> | So, the operators? |
20:58 | <&McMartin> | ToxicFrog: You said "interleaved declarations" twice, and I don't know what VA macros even are, so no. |
20:58 | <@celticminstrel> | Yeah, I thought there was another C... |
20:59 | <@celticminstrel> | And that's vararg macros. |
20:59 | <&McMartin> | I'd forgotten that interleaved declarations were actually official in C99 |
20:59 | <&ToxicFrog> | McMartin: varargs macros, and no I didn't. |
20:59 | <&McMartin> | Yeah, I'd say lots of C programmers don't use varargs macros |
20:59 | <&ToxicFrog> | For loop inline declarations are "for (int i = 0; ...)" |
20:59 | <&McMartin> | Yeah |
20:59 | <&ToxicFrog> | And interleaved declarations are the ability to mix declarations with code rather than having to declare all your variables at the start of the function. |
20:59 | <&McMartin> | I'm calling that part of interleaved declarations. |
21:00 | <&McMartin> | Just a necessary part for them to work properly |
21:00 | | Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has quit [Ping timeout: 121 seconds] |
21:00 | <&McMartin> | I admit it had been done wrong in the past |
21:00 | <&ToxicFrog> | It has scope implications you can't get with just interleaved declarations, though |
21:00 | <&McMartin> | #define for if (0);else for |
21:00 | <&McMartin> | ^^ actual workaround for when they got it wrong the first time |
21:01 | <&McMartin> | Or was it C++ that got it wrong the first time. It might have been. |
21:01 | <&McMartin> | But that's not quite what you mean |
21:01 | <&McMartin> | I think I disagree because "for (int i ...) {}" is equivalent to "{ int i; for (i ...) {}}" |
21:02 | <&McMartin> | With the extra outer scope autogenerated and inextensible |
21:02 | <&McMartin> | Also, actually |
21:02 | <&McMartin> | C89 did not require start of the *function* |
21:02 | <&McMartin> | It required start of the *block* |
21:02 | <&McMartin> | Having just wrapped up a small JS project, these are not the same thing, and "start of the *block*" is much easier to mechanically compensate for in a source-to-source translator -_- |
21:03 | <&McMartin> | (That is, even in C89, "int i; for (i = 0; i < 10; ++i) { int j = i * i; printf("%d\n", j); }" is legal and works the way you would expect, with j being rebound each loop iteration) |
21:04 | | grindhold [quassel@Nightstar-0ona3l.cyan.servdiscount-customer.com] has joined #code |
21:04 | <&McMartin> | Anyway, yeah, of that list, the only one that you actually would normally say "I will use C99 here" to use is actually the struct initializers (and maybe VA macros; I'm not sure because I didn't use them) |
21:05 | <&McMartin> | Because the other three are enabled by default by clang and gcc as part of their default-extended-c89 mode which is the default. |
21:05 | <&ToxicFrog> | So, my disagreement is that I say --std=c99 for for loop initializers a lot more often than for struct initializers |
21:06 | <&ToxicFrog> | And while it's true you can fake it in C89 mode, the same is true of // |
21:06 | <&McMartin> | ANd it's also true of interleaved declarations |
21:06 | <@celticminstrel> | I thought the initializers were also included in that mode. |
21:06 | <@celticminstrel> | At least in clang. |
21:07 | <@celticminstrel> | Oh wait. |
21:07 | <&McMartin> | I mean, that is literally what I just said there |
21:07 | <&McMartin> | "Because the other three are enabled by default by clang and gcc as part of their default-extended-c89 mode which is the default." |
21:07 | <&McMartin> | The other three being interleaved, for loops, and // comments |
21:07 | <&McMartin> | I was going to say "I think we're talking past each other here" but I'm no longer sure even that is true |
21:08 | <@celticminstrel> | Never mind, I was thinking of clang accepting certain C99 features in non-strict C++ mode, including the designated initializers. |
21:08 | <&McMartin> | C++98 and C99 disagree sharply on certain things |
21:08 | <&McMartin> | But those C99 features are being borrowed from C++98. |
21:09 | <&McMartin> | C++98 *demands* the // comments and the for loop initializers and the interleaved declarations and it *forbids* the field initializers. |
21:09 | <@Wizard> | Question |
21:09 | <&McMartin> | (I think something like the field initializers came in eventually but usually you're supposed to use constructors for that so I dunno) |
21:09 | <@Wizard> | Me and a dude are confused: Why are complex single-touch gestures called "$1" or "dollar" gestures? |
21:09 | <&McMartin> | I have never heard that phrase before, as it happens |
21:10 | <@Tamber> | I would imagine due to the similarity with, say, tracing out a dollar sign on your display with your finger? :p |
21:10 | <@Wizard> | McMartin: https://vimeo.com/2874413 |
21:10 | <&McMartin> | There are people who refer to fancy sesquipedalian speech as using "$2 words", maybe it could be that too |
21:10 | <@Wizard> | Tamber: That is hardly single-touch, though |
21:10 | <@celticminstrel> | I don't think C++ got anything like C99's designated field initializers. |
21:10 | <@Tamber> | Wizard, not necessarily. |
21:11 | <&McMartin> | Slated for C++17: removal of trigraphs |
21:11 | <@celticminstrel> | I wonder if anyone ever used those. |
21:11 | <@Wizard> | It doesn't help that what seems to be the de facto study for dollar gestures has 16 gestures, none of which are the dollar sign |
21:11 | <@Tamber> | Both people who used them will be upset~ |
21:11 | <@celticminstrel> | I suppose that includes the digraphs. |
21:12 | <&McMartin> | Also slated for C++17: removal of std::auto_ptr |
21:12 | <&McMartin> | *everyone* will cheer that. |
21:12 | <&ToxicFrog> | McMartin: at least last time I used C regularly, either gnu89 was not the default mode, or that mode did not yet include those features |
21:12 | <&ToxicFrog> | Because every single project was "run compiler, watch it choke on for loops, rerun with --std=c99" |
21:12 | <&McMartin> | Mmm |
21:12 | <&McMartin> | Yeah, in UQM it was 'works on Linux, port to windows, chokes on everything but // because MSVC6, rewrite to be closer to c89" |
21:13 | <&McMartin> | It may be that my memory has also conflated for loops with interleaved declarations |
21:13 | <&ToxicFrog> | (the compiler in my case is inevitably gcc, since even for windows stuff I just cross-compile) |
21:13 | <&McMartin> | But we usually did the rewrite by adding {} blocks that ran all the time. |
21:17 | <&McMartin> | (MS in fact abandoned C. I think they announced "we won't add full C99 support ever") |
21:18 | <&McMartin> | (OTOH, Linux is now a target for MSVS, and it's not tremendously difficult to bind the gcc toolchain to MSVS either, so I dunno) |
21:18 | <@celticminstrel> | I heard they did add a few C99 features though. |
21:19 | <&McMartin> | Wouldn't surprise me if they did port over the bits C++ also has. |
21:19 | <&McMartin> | Haven't actually checked in 10 years, though |
21:20 | <&McMartin> | OK, just checked. Yeah, for loops do require c99 or gnu99 |
21:20 | <&McMartin> | I have no idea what gnu99 is. |
21:22 | <&McMartin> | The man page says "it's the parts of C99 we actually did, see this webpage for details, it'll be the default once we actually support the standard" |
21:22 | <&McMartin> | Check webpage, it says "we've basically supported the standard since like 4.1", still isn't the default |
21:22 | <&McMartin> | welp |
21:24 | <@celticminstrel> | gnu99 would be "c99 + GNU extensions", wouldn't it? |
21:25 | <&McMartin> | You'd think, but the manpage is clear that it's actually "c99 to the extent GNU gave a shit" |
21:25 | <@celticminstrel> | Manpage for gcc? |
21:25 | <&McMartin> | Yep |
21:25 | <&McMartin> | "gnu99: GNU dialect of ISO C99. When ISO C99 is fully implemented in GCC, this will become the default" |
21:26 | <&McMartin> | "c99: ISO C99. Note that this standard is not yet fully supported; see <http://gcc.gnu.org/c99status.html> for more information." |
21:26 | <&McMartin> | "c11: ISO C11, the 2011 revision of the ISO C standard. Support is incomplete and experimental." |
21:28 | <&McMartin> | . |
21:28 | <&McMartin> | "When a base standard is specified, the compiler accepts all programs following that standard plus those using GNU extensions that do not contradict it." |
21:29 | <&McMartin> | And the example they use is that setting -std=c90 permits you to omit the midle term of a ?: expression, as no conforming C90 program would ever do that and so it is OK to accept them. o_O |
21:29 | <&McMartin> | THAT IS NOT WHAT CONFORMANCE MEANS |
21:29 | <@Tamber> | It is in the GNU world(!) |
21:30 | <@Namegduf> | "Do not contradict" means "Does not assign a contrary meaning to something which would otherwise be valid code." |
21:30 | <&McMartin> | Right |
21:31 | <&McMartin> | But this means that, e.g., you cannot use "gcc accepted this program" as evidence that you conform to the standard |
21:31 | <&McMartin> | In fact, even with -pedantic you cannot do this, as I am now seeing in the warnings for that |
21:31 | <@Tamber> | ... |
21:31 | <@Namegduf> | You can't with "c90", though. |
21:31 | <@Tamber> | -sorta-pedantic-but-not-really ? |
21:31 | <&McMartin> | c90 and c89 are synonyms according to this |
21:31 | <@Namegduf> | -though |
21:31 | <@Namegduf> | Are you sure that c89 allows GNU extensions? |
21:32 | <&McMartin> | I am reading the man page on this |
21:32 | <&McMartin> | It doesn't allow *all* GNU extensions |
21:32 | <&McMartin> | inline asm is called out as forbidden |
21:32 | <&McMartin> | But "omit middle term of ?:" is called out as acceptable |
21:32 | <&McMartin> | Tamber: -pedantic apparently will fire messages that where the standard says "a diagnostic message is *required*" |
21:32 | <@Namegduf> | Looks like you're right. |
21:33 | <@Namegduf> | Does -ansi do what you are wanting? |
21:33 | <@Namegduf> | Ah, no. |
21:33 | <&McMartin> | That looks like it's -std=c90 or -std=c++98 depending on source language |
21:34 | <&McMartin> | "The -ansi option does not cause non-ISO programs to be rejected gratuitously. For that, -Wpedantic is required in addition to -ansi" |
21:34 | <&McMartin> | Obviously false on at least two counts |
21:34 | <@Namegduf> | Yeah. |
21:34 | <&McMartin> | First, the whole discussion about how -pedantic doesn't do that |
21:34 | <@Namegduf> | Okay, so it looks like GCC can't validate standard compliance. |
21:34 | <&McMartin> | Second, -Wpedantic only ever warns. |
21:35 | <@Tamber> | And things like this are why it's nice to have actually viable alternative compilers and whatnot~ |
21:35 | <&McMartin> | p. much |
21:35 | <@Namegduf> | Yeah. |
21:35 | <&McMartin> | clang has a quirk-for-quirk compat mode for gcc but it's not on by default |
21:36 | <@Tamber> | I should, at some point, try to make my current project compile in clang. |
21:36 | <@Tamber> | I forsee it being incredibly painful, though. |
21:36 | <&McMartin> | clang has *really* good diagnostics |
21:36 | <@celticminstrel> | ^ |
21:36 | <@Tamber> | My current project has inline asm; and I never *did* manage to get clang to cross-compile. |
21:38 | <@Tamber> | I think that, once I figure out what to do with the inline asm, I should be okay with option-futzing until it works. |
21:39 | <&McMartin> | Most of the vendor-specific extensions that aren't just borrowing from future standards are awful anyway and you'd never use them~ |
21:39 | <@Tamber> | (But, I do agree, clang has really, really nice diagnostics!) |
21:40 | <&McMartin> | (inline asm is one of the few exceptions, but the usual way to handle that is to banish it to its own source file and have the makefile do the juggling) |
21:41 | <@Tamber> | *nods* |
21:42 | <@Tamber> | It wouldn't add *too* much juggling, I think; I've mostly got the asm separated out anyway. |
21:59 | <&McMartin> | Yeah, it's not actually hard unless you were super-casual about mixing C and asm within functions |
21:59 | <&McMartin> | For all the craziness in OpenSSL, they actually went one better on this and split it out into .c and .asm sources, to be turned into binaries by totally different tools. |
22:01 | <@Tamber> | Well, even a stopped clock, etc., etc. |
22:01 | <@Tamber> | :) |
22:06 | | Kindamoody is now known as Kindamoody[zZz] |
22:10 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [Connection closed] |
22:20 | | Turaiel is now known as Turaiel[Offline] |
22:23 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
22:23 | | mode/#code [+o Checkmate] by ChanServ |
--- Log closed Sat Apr 04 00:00:14 2015 |