Re: std.unittests/exception Update and Vote
Steven Schveighoffer schvei...@yahoo.com wrote in message news:op.vqm05qx8eav7ka@steve-laptop... *playing* in the snow is way different than *battling* the snow :) Not to me ;) (It's freeze your nuts off either way.)
Re: std.unittests/exception Update and Vote
*Sigh* I was hoping for a clearer vote than this. assertThrown, assertNotThrown, and collectExceptionMsg are clearly in, but the vote on assertPred is not so clear. No --- Brad Roberts (I appeared to be against but didn't vote outright) David Nadlinger Don Jim? (I _think_ that he was voting no, but he didn't seem to think that he could vote) Michel Fortin SHOO Spir Yes --- Andrei Alexandrescu (at least he was until the most recent discussion on improving assert) Andrej Mitrovic Andrew Wiley Jens Mueller Lars T. Kyllingstad (from his comments, he appears to be in favor, but he never outright voted) Nick Sabalausky Tomek Sowiński (he definitely seems to be in favor but didn't vote outright) I _think_ that I got everyone, but most of the discussion on it has been how to improve it, not voting on whether it went in or not. In some cases, it's not entirely clear that someone actually voted even if their intent was clear. And there are definitely people who were involved in the discussion who never voted. I think that in the future, we need to try and separate the improvement discussions from the votes, with a specific, relatively short time frame (as in more like a week than a month) for votes - rather than having them spread throughout the discussion. I _tried_ to get people to vote at the end, but I guess that I wasn't clear enough or not enough people were paying attention. So, it's around a tie with regards to assertPred, with a definite lack of voting. We have not gotten a commitment that assert will be improved, and assertPred does more than assert could do even if it were improved (out of the 8 overloads of assertPred, assert could only replace two of them at best - albeit the most useful two). Don asked me to open an enhancement request for improving assert, which I still need to do, but it's not clear that it's actually going to happen, and at least some of the voting seems to be done with the idea that if we're going to get an improved assert, then there's no need for assertPred (which I'm not sure I agree with, but it could be debated). So, it's obvious from those who voted that there is no overwhelming vote in favor of adding assertPred to Phobos, but it's not exactly against either - though there are some people on both sides who are very strongly. We got a fairly ambigous vote IMHO. So, I don't know what that means we should do. Ideally, I'd prefer to have a second vote to make it clear, since so few people voted (and many of those who did weren't clear about it), and I had to scour older posts to find most of them. But it's not like we have formalized rules on all of this yet. Looking at the Boost page that Andrei gave previously ( http://www.boost.org/community/reviews.html ) does not make it all clear about what Boost does with regards to voting. - Jonathan M Davis
Re: std.unittests/exception Update and Vote
On Tue, 08 Feb 2011 03:52:30 -0800, Jonathan M Davis wrote: *Sigh* I was hoping for a clearer vote than this. assertThrown, assertNotThrown, and collectExceptionMsg are clearly in, but the vote on assertPred is not so clear. No --- Brad Roberts (I appeared to be against but didn't vote outright) David Nadlinger Don Jim? (I _think_ that he was voting no, but he didn't seem to think that he could vote) Michel Fortin SHOO Spir Yes --- Andrei Alexandrescu (at least he was until the most recent discussion on improving assert) Andrej Mitrovic Andrew Wiley Jens Mueller Lars T. Kyllingstad (from his comments, he appears to be in favor, but he never outright voted) Sorry, forgot to place my vote. I am definitely in favour of adding assertThrown, assertNotThrown and collectExceptionMsg, but as of lately I'm on the fence regarding assertPred. If it turns out to be both possible and desirable to improve the messages produced by built-in assert, that may be better. I'd like to see how that plays out before placing a definitive vote. Also, if it turns out only the exception-related stuff goes into Phobos, maybe std.exception will be the best place to put it after all? -Lars
Re: std.unittests/exception Update and Vote
On Tue, 08 Feb 2011 06:52:30 -0500, Jonathan M Davis jmdavisp...@gmx.com wrote: *Sigh* I was hoping for a clearer vote than this. Sorry for the lack of voting/attention, I've had barely any time to work with D lately, and I haven't even looked at your lib. -Steve P.S. I'm f***ing sick of snow...
Re: std.unittests/exception Update and Vote
Steven Schveighoffer schvei...@yahoo.com wrote in message news:op.vqk74auaeav7ka@steve-laptop... On Tue, 08 Feb 2011 06:52:30 -0500, Jonathan M Davis jmdavisp...@gmx.com wrote: *Sigh* I was hoping for a clearer vote than this. Sorry for the lack of voting/attention, I've had barely any time to work with D lately, and I haven't even looked at your lib. -Steve P.S. I'm f***ing sick of snow... I got sick of snow ten years ago. Makes me wonder why I'm still in Cleveland...
Re: std.unittests/exception Update and Vote
On Tue, 08 Feb 2011 15:36:14 -0500, Nick Sabalausky a@a.a wrote: Steven Schveighoffer schvei...@yahoo.com wrote in message news:op.vqk74auaeav7ka@steve-laptop... On Tue, 08 Feb 2011 06:52:30 -0500, Jonathan M Davis jmdavisp...@gmx.com wrote: *Sigh* I was hoping for a clearer vote than this. Sorry for the lack of voting/attention, I've had barely any time to work with D lately, and I haven't even looked at your lib. -Steve P.S. I'm f***ing sick of snow... I got sick of snow ten years ago. Makes me wonder why I'm still in Cleveland... I'd wonder why you were in Cleveland for a number of reasons ;) This is the worst winter I've ever experienced. My whole body aches from battling ice dams for weeks. There's few things worse than having to put on snow clothes still wet (and smelly) from yesterday to go up on a ladder in the rain and whack ice you cleared just yesterday because water is again seeping in your house... -Steve
Re: std.unittests/exception Update and Vote
On 2/8/11 3:50 PM, Steven Schveighoffer wrote: On Tue, 08 Feb 2011 15:36:14 -0500, Nick Sabalausky a@a.a wrote: Steven Schveighoffer schvei...@yahoo.com wrote in message news:op.vqk74auaeav7ka@steve-laptop... On Tue, 08 Feb 2011 06:52:30 -0500, Jonathan M Davis jmdavisp...@gmx.com wrote: *Sigh* I was hoping for a clearer vote than this. Sorry for the lack of voting/attention, I've had barely any time to work with D lately, and I haven't even looked at your lib. -Steve P.S. I'm f***ing sick of snow... I got sick of snow ten years ago. Makes me wonder why I'm still in Cleveland... I'd wonder why you were in Cleveland for a number of reasons ;) This is the worst winter I've ever experienced. My whole body aches from battling ice dams for weeks. There's few things worse than having to put on snow clothes still wet (and smelly) from yesterday to go up on a ladder in the rain and whack ice you cleared just yesterday because water is again seeping in your house... -Steve I'm completely weird I guess. I love snow and winter. I'm just back from a skiing day non-stop 11am to 4pm on the most difficult slopes (including two extreme terrain runs starting at 3963 meters). My water and food froze in my pockets. At times I could hardly feel my face. I still breathe twice the normal rate. Every cubic inch of my body aches. And... I'm loving every minute of it. Andrei
Re: std.unittests/exception Update and Vote
On 02/09/2011 01:38 AM, Andrei Alexandrescu wrote: On 2/8/11 3:50 PM, Steven Schveighoffer wrote: On Tue, 08 Feb 2011 15:36:14 -0500, Nick Sabalausky a@a.a wrote: Steven Schveighoffer schvei...@yahoo.com wrote in message news:op.vqk74auaeav7ka@steve-laptop... On Tue, 08 Feb 2011 06:52:30 -0500, Jonathan M Davis jmdavisp...@gmx.com wrote: *Sigh* I was hoping for a clearer vote than this. Sorry for the lack of voting/attention, I've had barely any time to work with D lately, and I haven't even looked at your lib. -Steve P.S. I'm f***ing sick of snow... I got sick of snow ten years ago. Makes me wonder why I'm still in Cleveland... I'd wonder why you were in Cleveland for a number of reasons ;) This is the worst winter I've ever experienced. My whole body aches from battling ice dams for weeks. There's few things worse than having to put on snow clothes still wet (and smelly) from yesterday to go up on a ladder in the rain and whack ice you cleared just yesterday because water is again seeping in your house... -Steve I'm completely weird I guess. I love snow and winter. I'm just back from a skiing day non-stop 11am to 4pm on the most difficult slopes (including two extreme terrain runs starting at 3963 meters). My water and food froze in my pockets. At times I could hardly feel my face. I still breathe twice the normal rate. Every cubic inch of my body aches. And... I'm loving every minute of it. Can understand you. But, by me (south-west of F) get about 15 °C these days... abnormal temperatures upwards, after having frozen as early as late October. Denis -- _ vita es estrany spir.wikidot.com
Re: std.unittests/exception Update and Vote [Please Vote]
There are a number of people who have responded positively to my unit test functions - including assertPred - as it has moved through the review process. Please reiterate that positive vote here (or negative if you're so inclined). The deadline for votes is today. As it stands, I believe that assertThrown, assertNotThrown, and collectExceptionMsg will clearly pass the vote, but it's not so clear if the vote is in favor of assertPred. Going off just the votes in this thread, I believe that it would be a tie as to whether assertPred made it in or not. But if we took the votes for the group of functions as a whole from previous posts, I believe that it would get in. It would be better though if such votes were confirmed here - especially if the vote is close. I'd prefer not to have an ambiguous vote. So, please vote. - Jonathan M Davis
Re: std.unittests/exception Update and Vote [Please Vote]
Jonathan M Davis jmdavisp...@gmx.com wrote in message news:mailman.1363.1297067437.4748.digitalmar...@puremagic.com... There are a number of people who have responded positively to my unit test functions - including assertPred - as it has moved through the review process. Please reiterate that positive vote here (or negative if you're so inclined). The deadline for votes is today. As it stands, I believe that assertThrown, assertNotThrown, and collectExceptionMsg will clearly pass the vote, but it's not so clear if the vote is in favor of assertPred. Going off just the votes in this thread, I believe that it would be a tie as to whether assertPred made it in or not. But if we took the votes for the group of functions as a whole from previous posts, I believe that it would get in. It would be better though if such votes were confirmed here - especially if the vote is close. I'd prefer not to have an ambiguous vote. So, please vote. Reiterating my previous vote: Yes to all.
Re: std.unittests/exception Update and Vote [Please Vote]
On 02/07/2011 09:30 AM, Jonathan M Davis wrote: There are a number of people who have responded positively to my unit test functions - including assertPred - as it has moved through the review process. Please reiterate that positive vote here (or negative if you're so inclined). The deadline for votes is today. As it stands, I believe that assertThrown, assertNotThrown, and collectExceptionMsg will clearly pass the vote, but it's not so clear if the vote is in favor of assertPred. Going off just the votes in this thread, I believe that it would be a tie as to whether assertPred made it in or not. But if we took the votes for the group of functions as a whole from previous posts, I believe that it would get in. It would be better though if such votes were confirmed here - especially if the vote is close. I'd prefer not to have an ambiguous vote. So, please vote. (dunno whether a newcomer like me is supposed to vote, but in case: * assertThrown : + * assertNotThrown : ? * collectExceptionMsg : ? * assertPred : - I only really need something with semantic similars to asserThrown's. My overall picture of asserts and unittests is different, anyway --as you know. ) Denis -- _ vita es estrany spir.wikidot.com
Re: std.unittests/exception Update and Vote [Please Vote]
Not that I have a say in this matter, but although I think the code is excellent in technical merits, is not a central part of the problem it aims to mend actually an insufficiency in druntime? I'd rather see the regular, language provided assert() fulfilling the needs as the assertion mechanism. Why would it otherwise be there? It would be like a language feature that nobody uses because it isn't good enough.. :/ Jim Jonathan M Davis Wrote: There are a number of people who have responded positively to my unit test functions - including assertPred - as it has moved through the review process. Please reiterate that positive vote here (or negative if you're so inclined). The deadline for votes is today. As it stands, I believe that assertThrown, assertNotThrown, and collectExceptionMsg will clearly pass the vote, but it's not so clear if the vote is in favor of assertPred. Going off just the votes in this thread, I believe that it would be a tie as to whether assertPred made it in or not. But if we took the votes for the group of functions as a whole from previous posts, I believe that it would get in. It would be better though if such votes were confirmed here - especially if the vote is close. I'd prefer not to have an ambiguous vote. So, please vote. - Jonathan M Davis
Re: std.unittests/exception Update and Vote [Please Vote]
On Monday 07 February 2011 03:36:33 Jim wrote: Not that I have a say in this matter, but although I think the code is excellent in technical merits, is not a central part of the problem it aims to mend actually an insufficiency in druntime? I'd rather see the regular, language provided assert() fulfilling the needs as the assertion mechanism. Why would it otherwise be there? It would be like a language feature that nobody uses because it isn't good enough.. :/ That's part of what's up in the air. However, 1. assertPred does more than assert will ever do, no matter how much it's improved - though the likely _main_ usages of assertPred (such as assertPred!==(a, b) instead of assert(a == b)) may end up fixed in assert. Stuff like assertPred!opCmp, assertPred!-, and assertPred!+= won't ever be in assert, because they do more than just improve the error message on failure. It's pretty much just the versions which take a comparison operator and a general predicate which could be replaced by an improved assert. 2. Even if it is certain that assert will be improved, and even if it is certain that we don't want assertPred in std.exception in the long run, we still may want it in std.exception until assert _does_ get improved. 3. Some people may just assertPred regardless of what happens with assert. So, yes. It would be great if assert were improved. But it's not clear that it will be, and even if it _does_ happen that doesn't necessarily mean that we don't want assertPred in Phobos. - Jonathan M Davis
Re: std.unittests/exception Update and Vote [Please Vote]
On Mon, Feb 7, 2011 at 2:30 AM, Jonathan M Davis jmdavisp...@gmx.comwrote: There are a number of people who have responded positively to my unit test functions - including assertPred - as it has moved through the review process. Please reiterate that positive vote here (or negative if you're so inclined). The deadline for votes is today. As it stands, I believe that assertThrown, assertNotThrown, and collectExceptionMsg will clearly pass the vote, but it's not so clear if the vote is in favor of assertPred. Going off just the votes in this thread, I believe that it would be a tie as to whether assertPred made it in or not. But if we took the votes for the group of functions as a whole from previous posts, I believe that it would get in. It would be better though if such votes were confirmed here - especially if the vote is close. I'd prefer not to have an ambiguous vote. So, please vote. I realize I'm not much of an active community member, but I would vote yes to all. I agree with you that assertPred does more than assert by itself could ever reasonably do, and I don't find it difficult to understand (at least, no more difficult than the a b binaryFun syntax).
Re: std.unittests/exception Update and Vote
Jonathan M Davis wrote: Okay, the latest code and documentation is here: http://is.gd/HZQwNz I've also made the changes in my github fork of Phobos here: https://github.com/jmdavis/phobos . So, if this passes the vote, it's just a pull request away from being in Phobos. assertPred, assertThrown, assertNotThrown, and collectExceptionMsg have been merged into std.exception and their documentation updated again. There are fewer examples now, and hopefully it's more to everyone's liking, though the changes aren't drastic. Hopefully, I didn't miss anything that needed changing. Also, since collectExceptionMsg was catching Throwable and collectException was catching Exception, I made them both templated on the type to catch with Exception as the default. So, you can use both to catch any Throwable, but they default to Exception, so no code should break as a result. I kept Exception in their names with the idea that you really shouldn't be catching Throwable or Errors except in exception circumstances, so collectException is more correct for general use and its name doesn't encourage people to catch the wrong thing (it also avoids having to create an alias for backwards compatability). We're coming up on the time when the proposal has to be voted in or out (Feb 7th). It looks like Don and/or Walter _may_ make it so that assert is improved such that it does some of what assertPred does, printing much better error messages, and if that's the case, assertPred will need to be reworked or tossed entirely (but whether that happens depends on what they decide between now and Feb 7th). So, unless Andrei has a problem with it, I'd ask that you vote for assertPred separately from assertThrown, assertNotThrown, and collectExceptionMsg. So, if it's decided that assert is going to be improved and assertPred won't work as is, at least we can get assertThrown, assertNotThrown, and collectExceptionMsg into Phobos (assuming that they pass the vote). If assert is improved and assertPred doesn't make it in, and some portion of assertPred's other capabilities should still be in Phobos, they can be reworked in a future proposal (though if assert doesn't get improved, then they're in assertPred as it is). So, please make any last comments or suggestions on this proposal, and vote on whether you think that assertPred should be in Phobos (assuming that assert isn't going to be improved such that assertPred isn't necessary) and whether you think that assertThrown, assertNotThrown, and collectExceptionMsg should get in regardless of whether assertPred does. I vote for inclusion of assertThrown and assertNotThrown. BTW will an improved built-in assert support something like assert(notThrown(expression)) with a good error message? collectExceptionMsg may seem too simple and not useful. But I think it should be included because I don't see how to write a good one-liner using collectException for the equivalent of assert(collectExceptionMsg(myExpression) == MyMessage); That's why I think it should be included as well. collectExceptionMsg's implementation may be changed using collectException like this (untested code): auto result = collectException!(E)(expression()); if (result is null) return cast(string)null; elsereturn result.msg; But that can be done at a later point. I'm a bit unhappy with how std.unittests ended. I understand that having a better assert in the language itself is much preferred. Because only this way one can make sure that it works properly with contracts. On bright side Jonathan proposing better assertions started this whole process and this is very important to me. Thank you very much. I also vote for inclusion of assertPred. Maybe one can make it deprecated even though it's a bit strange. And once the new built-in assert is ready replace assertPred's code to give a good message describing how to migrate. I'm in favor of improved assertions even though they will be replaced later. Because I cannot foresee when the new built-in assert will be available. Jens
Re: std.unittests/exception Update and Vote
Jonathan M Davis wrote: Okay, the latest code and documentation is here: http://is.gd/HZQwNz I've also made the changes in my github fork of Phobos here: https://github.com/jmdavis/phobos . So, if this passes the vote, it's just a pull request away from being in Phobos. assertPred, assertThrown, assertNotThrown, and collectExceptionMsg have been merged into std.exception and their documentation updated again. There are fewer examples now, and hopefully it's more to everyone's liking, though the changes aren't drastic. Hopefully, I didn't miss anything that needed changing. Also, since collectExceptionMsg was catching Throwable and collectException was catching Exception, I made them both templated on the type to catch with Exception as the default. So, you can use both to catch any Throwable, but they default to Exception, so no code should break as a result. I kept Exception in their names with the idea that you really shouldn't be catching Throwable or Errors except in exception circumstances, so collectException is more correct for general use and its name doesn't encourage people to catch the wrong thing (it also avoids having to create an alias for backwards compatability). We're coming up on the time when the proposal has to be voted in or out (Feb 7th). It looks like Don and/or Walter _may_ make it so that assert is improved such that it does some of what assertPred does, printing much better error messages, and if that's the case, assertPred will need to be reworked or tossed entirely (but whether that happens depends on what they decide between now and Feb 7th). So, unless Andrei has a problem with it, I'd ask that you vote for assertPred separately from assertThrown, assertNotThrown, and collectExceptionMsg. So, if it's decided that assert is going to be improved and assertPred won't work as is, at least we can get assertThrown, assertNotThrown, and collectExceptionMsg into Phobos (assuming that they pass the vote). If assert is improved and assertPred doesn't make it in, and some portion of assertPred's other capabilities should still be in Phobos, they can be reworked in a future proposal (though if assert doesn't get improved, then they're in assertPred as it is). So, please make any last comments or suggestions on this proposal, and vote on whether you think that assertPred should be in Phobos (assuming that assert isn't going to be improved such that assertPred isn't necessary) and whether you think that assertThrown, assertNotThrown, and collectExceptionMsg should get in regardless of whether assertPred does. - Jonathan M Davis Yes for assertThrown and assertNotThrown. Ambivalent about collectExceptionMsg. I strongly believe that assertPred should not be included. But I think it can be done properly. Please make a bugzilla request for the improvements to assert().
Re: std.unittests/exception Update and Vote
On 2/4/11 4:05 PM, Jonathan M Davis wrote: So, please make any last comments or suggestions on this proposal, and vote on whether you think that assertPred should be in Phobos (assuming that assert isn't going to be improved such that assertPred isn't necessary) and whether you think that assertThrown, assertNotThrown, and collectExceptionMsg should get in regardless of whether assertPred does. I think the topic has already been discussed quite exhaustive, so I'll just list my votes: Strong yes for assertThrown (I have something like that in all of my D1/D2 projects), rather ambivalent regarding assertNotThrown and collectExceptionMsg, and a definite no to assertPred – we can do better than that! David
Re: std.unittests/exception Update and Vote
Jonathan M Davis jmdavisp...@gmx.com wrote in message news:mailman.1276.1296831944.4748.digitalmar...@puremagic.com... So, please make any last comments or suggestions on this proposal, and vote on whether you think that assertPred should be in Phobos (assuming that assert isn't going to be improved such that assertPred isn't necessary) and whether you think that assertThrown, assertNotThrown, and collectExceptionMsg should get in regardless of whether assertPred does. I'm in favor of all of them. Sure, maybe we could do better than assertPred, but when's that actually going to happen? In the meantime, assertPred is a hell of an improvement over the current state and it exists *now*. I don't want to needlessly hijack the present just for the sake of some still-hypothetical future.
std.unittests/exception Update and Vote
Okay, the latest code and documentation is here: http://is.gd/HZQwNz I've also made the changes in my github fork of Phobos here: https://github.com/jmdavis/phobos . So, if this passes the vote, it's just a pull request away from being in Phobos. assertPred, assertThrown, assertNotThrown, and collectExceptionMsg have been merged into std.exception and their documentation updated again. There are fewer examples now, and hopefully it's more to everyone's liking, though the changes aren't drastic. Hopefully, I didn't miss anything that needed changing. Also, since collectExceptionMsg was catching Throwable and collectException was catching Exception, I made them both templated on the type to catch with Exception as the default. So, you can use both to catch any Throwable, but they default to Exception, so no code should break as a result. I kept Exception in their names with the idea that you really shouldn't be catching Throwable or Errors except in exception circumstances, so collectException is more correct for general use and its name doesn't encourage people to catch the wrong thing (it also avoids having to create an alias for backwards compatability). We're coming up on the time when the proposal has to be voted in or out (Feb 7th). It looks like Don and/or Walter _may_ make it so that assert is improved such that it does some of what assertPred does, printing much better error messages, and if that's the case, assertPred will need to be reworked or tossed entirely (but whether that happens depends on what they decide between now and Feb 7th). So, unless Andrei has a problem with it, I'd ask that you vote for assertPred separately from assertThrown, assertNotThrown, and collectExceptionMsg. So, if it's decided that assert is going to be improved and assertPred won't work as is, at least we can get assertThrown, assertNotThrown, and collectExceptionMsg into Phobos (assuming that they pass the vote). If assert is improved and assertPred doesn't make it in, and some portion of assertPred's other capabilities should still be in Phobos, they can be reworked in a future proposal (though if assert doesn't get improved, then they're in assertPred as it is). So, please make any last comments or suggestions on this proposal, and vote on whether you think that assertPred should be in Phobos (assuming that assert isn't going to be improved such that assertPred isn't necessary) and whether you think that assertThrown, assertNotThrown, and collectExceptionMsg should get in regardless of whether assertPred does. - Jonathan M Davis