digitalmars.D - Humble request Walter: Could you _please_ fix phobos already?
- downs (20/20) Jul 18 2007 I don't like Tango. Going by looks and usability alone, I'd far prefer t...
- Clay Smith (5/31) Jul 18 2007 I'd rather have Walter work on compiler bugs than standard library issue...
- downs (6/12) Jul 18 2007 I'm actually not sure about that one. Common compiler bugs lead to an IC...
- Steve Teale (3/40) Jul 18 2007 This is to some extent a return to the previous thread - Two standard li...
- Steve Teale (3/40) Jul 18 2007 This is to some extent a return to the previous thread - Two standard li...
- Tristam MacDonald (3/46) Jul 18 2007 There should be a groundswell!
- acarion (3/24) Jul 18 2007 Then make a patch and upload to bugzilla.
- Jarrett Billingsley (3/7) Jul 18 2007 Most phobos patches and submissions are ignored.
- Brad Roberts (5/14) Jul 18 2007 Guys, please don't equate 'not responded to' or 'not yet fixed' with
- Jarrett Billingsley (7/9) Jul 18 2007 Then maybe there needs to be a bugzilla issue status along the lines of
- Bill Baxter (8/20) Jul 18 2007 Ok ...
- Gregor Richards (3/18) Jul 19 2007 I wuv the halting problem.
- Bruno Medeiros (5/25) Jul 22 2007 LOOOOOOOOOOOL, well said :P
- Chris Miller (5/10) Jul 18 2007 How are sockets broken in interesting ways, and why would connect need t...
- downs (7/20) Jul 19 2007 Have you ever tried connecting to multiple sites in multiple threads rap...
- Regan Heath (4/25) Jul 19 2007 connect just calls BSD connect and I don't recall that being
- downs (3/35) Jul 19 2007 :hits-head: Yea, that was it. Stupid me, giving the wrong command. Sorry...
- Nicolai Waniek (6/6) Jul 19 2007 I fully agree with you, but am looking forward to the results of the D
- janderson (8/34) Jul 21 2007 Maybe the community should just make a branch of Phobos
- Walter Bright (18/21) Jul 23 2007 I'm going to do a little rant here, so please indulge me for a moment.
I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences. Those are not unbelievably complex and hard issues (like, for example, Macros) but mostly rather trivial things that could be fixed with a few lines of code. So I really have to ask - why are these issues not being fixed? Why is it that in a post-1.0 project, which should be largely bug-free and feature complete, I still have to debug the _standard library_? When writing code, there are a few basic assumptions that you have to make for the sake of efficiency, like what your tools are telling you is correct. That the standard library works as advertised is one of those assumptions. Why is it, that in a post-1.0 project, important parts of the GC, like generationalCollect, even though they are explicitly mentioned in the documentation, remain unimplemented? I really like D, and I also like Phobos. I think it would be sad if people who don't even particularly _like_ Tango would be pushed towards using it by problems that could have been solved. --downs PS: In a similar vein, some people have observed that longstanding bugs seem to be getting less attention these days. Perhaps it would be .. wise, before going off and adding new features which in turn introduce new bugs, to fix the old ones first?
Jul 18 2007
downs wrote:I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences. Those are not unbelievably complex and hard issues (like, for example, Macros) but mostly rather trivial things that could be fixed with a few lines of code. So I really have to ask - why are these issues not being fixed? Why is it that in a post-1.0 project, which should be largely bug-free and feature complete, I still have to debug the _standard library_? When writing code, there are a few basic assumptions that you have to make for the sake of efficiency, like what your tools are telling you is correct. That the standard library works as advertised is one of those assumptions. Why is it, that in a post-1.0 project, important parts of the GC, like generationalCollect, even though they are explicitly mentioned in the documentation, remain unimplemented? I really like D, and I also like Phobos. I think it would be sad if people who don't even particularly _like_ Tango would be pushed towards using it by problems that could have been solved. --downs PS: In a similar vein, some people have observed that longstanding bugs seem to be getting less attention these days. Perhaps it would be .. wise, before going off and adding new features which in turn introduce new bugs, to fix the old ones first?I'd rather have Walter work on compiler bugs than standard library issues. I think the best solution would be for Walter to put phobos in an SVN and give 1 or 2 trusted D community members commit access so they can merge user patches etc. while Walter simply concentrates on the compiler.
Jul 18 2007
Clay Smith wrote:I'd rather have Walter work on compiler bugs than standard library issues.I'm actually not sure about that one. Common compiler bugs lead to an ICE, which is easily recognizable as a compiler problem. On the other hand, when hunting for the cause of a lone segfault it can take one quite a while to figure out that it actually happens in the standard library (it took me a few hours ^^ )I think the best solution would be for Walter to put phobos in an SVN and give 1 or 2 trusted D community members commit access so they can merge user patches etc. while Walter simply concentrates on the compiler.Agreed.
Jul 18 2007
Clay Smith Wrote:downs wrote:This is to some extent a return to the previous thread - Two standard libraries - which has now mutated into something completely different I believe there is a groundswell in this direction, including making the two libraries compatible. It may get attention at the conference, but that is no reason why those of us who feel this way should not continue to make a noise about it. The time is right!I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences. Those are not unbelievably complex and hard issues (like, for example, Macros) but mostly rather trivial things that could be fixed with a few lines of code. So I really have to ask - why are these issues not being fixed? Why is it that in a post-1.0 project, which should be largely bug-free and feature complete, I still have to debug the _standard library_? When writing code, there are a few basic assumptions that you have to make for the sake of efficiency, like what your tools are telling you is correct. That the standard library works as advertised is one of those assumptions. Why is it, that in a post-1.0 project, important parts of the GC, like generationalCollect, even though they are explicitly mentioned in the documentation, remain unimplemented? I really like D, and I also like Phobos. I think it would be sad if people who don't even particularly _like_ Tango would be pushed towards using it by problems that could have been solved. --downs PS: In a similar vein, some people have observed that longstanding bugs seem to be getting less attention these days. Perhaps it would be .. wise, before going off and adding new features which in turn introduce new bugs, to fix the old ones first?I'd rather have Walter work on compiler bugs than standard library issues. I think the best solution would be for Walter to put phobos in an SVN and give 1 or 2 trusted D community members commit access so they can merge user patches etc. while Walter simply concentrates on the compiler.
Jul 18 2007
Clay Smith Wrote:downs wrote:This is to some extent a return to the previous thread - Two standard libraries - which has now mutated into something completely different I believe there is a groundswell in this direction, including making the two libraries compatible. It may get attention at the conference, but that is no reason why those of us who feel this way should not continue to make a noise about it. The time is right!I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences. Those are not unbelievably complex and hard issues (like, for example, Macros) but mostly rather trivial things that could be fixed with a few lines of code. So I really have to ask - why are these issues not being fixed? Why is it that in a post-1.0 project, which should be largely bug-free and feature complete, I still have to debug the _standard library_? When writing code, there are a few basic assumptions that you have to make for the sake of efficiency, like what your tools are telling you is correct. That the standard library works as advertised is one of those assumptions. Why is it, that in a post-1.0 project, important parts of the GC, like generationalCollect, even though they are explicitly mentioned in the documentation, remain unimplemented? I really like D, and I also like Phobos. I think it would be sad if people who don't even particularly _like_ Tango would be pushed towards using it by problems that could have been solved. --downs PS: In a similar vein, some people have observed that longstanding bugs seem to be getting less attention these days. Perhaps it would be .. wise, before going off and adding new features which in turn introduce new bugs, to fix the old ones first?I'd rather have Walter work on compiler bugs than standard library issues. I think the best solution would be for Walter to put phobos in an SVN and give 1 or 2 trusted D community members commit access so they can merge user patches etc. while Walter simply concentrates on the compiler.
Jul 18 2007
There should be a groundswell! How can a language be ready for prime time when there are 2 competing and non-compatible std libraries? Especially when the official one is broken and the community one doesn't having full support from the compiler implementor (synchronized support for other mutex implementations, etc.)? Steve Teale Wrote:Clay Smith Wrote:downs wrote:This is to some extent a return to the previous thread - Two standard libraries - which has now mutated into something completely different I believe there is a groundswell in this direction, including making the two libraries compatible. It may get attention at the conference, but that is no reason why those of us who feel this way should not continue to make a noise about it. The time is right!I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences. Those are not unbelievably complex and hard issues (like, for example, Macros) but mostly rather trivial things that could be fixed with a few lines of code. So I really have to ask - why are these issues not being fixed? Why is it that in a post-1.0 project, which should be largely bug-free and feature complete, I still have to debug the _standard library_? When writing code, there are a few basic assumptions that you have to make for the sake of efficiency, like what your tools are telling you is correct. That the standard library works as advertised is one of those assumptions. Why is it, that in a post-1.0 project, important parts of the GC, like generationalCollect, even though they are explicitly mentioned in the documentation, remain unimplemented? I really like D, and I also like Phobos. I think it would be sad if people who don't even particularly _like_ Tango would be pushed towards using it by problems that could have been solved. --downs PS: In a similar vein, some people have observed that longstanding bugs seem to be getting less attention these days. Perhaps it would be .. wise, before going off and adding new features which in turn introduce new bugs, to fix the old ones first?I'd rather have Walter work on compiler bugs than standard library issues. I think the best solution would be for Walter to put phobos in an SVN and give 1 or 2 trusted D community members commit access so they can merge user patches etc. while Walter simply concentrates on the compiler.
Jul 18 2007
downs Wrote:I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences. Those are not unbelievably complex and hard issues (like, for example, Macros) but mostly rather trivial things that could be fixed with a few lines of code. So I really have to ask - why are these issues not being fixed? Why is it that in a post-1.0 project, which should be largely bug-free and feature complete, I still have to debug the _standard library_? When writing code, there are a few basic assumptions that you have to make for the sake of efficiency, like what your tools are telling you is correct. That the standard library works as advertised is one of those assumptions. Why is it, that in a post-1.0 project, important parts of the GC, like generationalCollect, even though they are explicitly mentioned in the documentation, remain unimplemented? I really like D, and I also like Phobos. I think it would be sad if people who don't even particularly _like_ Tango would be pushed towards using it by problems that could have been solved. --downs PS: In a similar vein, some people have observed that longstanding bugs seem to be getting less attention these days. Perhaps it would be .. wise, before going off and adding new features which in turn introduce new bugs, to fix the old ones first?Then make a patch and upload to bugzilla. Altough I have already done that, and the patch went completely ignored. Also, I found critical bug in the GC (back on DMD1.10, I think) that I posted and went unheard too.
Jul 18 2007
"acarion" <thrust trust.com> wrote in message news:f7m8ui$dfk$1 digitalmars.com...Then make a patch and upload to bugzilla. Altough I have already done that, and the patch went completely ignored. Also, I found critical bug in the GC (back on DMD1.10, I think) that I posted and went unheard too.Most phobos patches and submissions are ignored.
Jul 18 2007
Jarrett Billingsley wrote:"acarion" <thrust trust.com> wrote in message news:f7m8ui$dfk$1 digitalmars.com...Guys, please don't equate 'not responded to' or 'not yet fixed' with 'ignored'. It's a fallacy. Later, BradThen make a patch and upload to bugzilla. Altough I have already done that, and the patch went completely ignored. Also, I found critical bug in the GC (back on DMD1.10, I think) that I posted and went unheard too.Most phobos patches and submissions are ignored.
Jul 18 2007
"Brad Roberts" <braddr puremagic.com> wrote in message news:mailman.64.1184806108.16939.digitalmars-d puremagic.com...Guys, please don't equate 'not responded to' or 'not yet fixed' with 'ignored'. It's a fallacy.Then maybe there needs to be a bugzilla issue status along the lines of "understood, but won't/can't get to it right away." Lack of official response to me reads as "as good as ignored," especially when there are issues with DMD and phobos which have been sitting in bugzilla, unresolved, some with patches, for over a year.
Jul 18 2007
Brad Roberts wrote:Jarrett Billingsley wrote:Ok ... Most phobos patches and submissions are examined with a fine-toothed comb and then anguished over in perpetuity by Walter. I don't think it matters much to the submitter whether it was "ignored" or "read and examined carefully without any follow-up action". The two look indistinguishable to the submitter. --bb"acarion" <thrust trust.com> wrote in message news:f7m8ui$dfk$1 digitalmars.com...Guys, please don't equate 'not responded to' or 'not yet fixed' with 'ignored'. It's a fallacy.Then make a patch and upload to bugzilla. Altough I have already done that, and the patch went completely ignored. Also, I found critical bug in the GC (back on DMD1.10, I think) that I posted and went unheard too.Most phobos patches and submissions are ignored.
Jul 18 2007
Brad Roberts wrote:Jarrett Billingsley wrote:I wuv the halting problem. - Gregor Richards"acarion" <thrust trust.com> wrote in message news:f7m8ui$dfk$1 digitalmars.com...Guys, please don't equate 'not responded to' or 'not yet fixed' with 'ignored'. It's a fallacy. Later, BradThen make a patch and upload to bugzilla. Altough I have already done that, and the patch went completely ignored. Also, I found critical bug in the GC (back on DMD1.10, I think) that I posted and went unheard too.Most phobos patches and submissions are ignored.
Jul 19 2007
Gregor Richards wrote:Brad Roberts wrote:LOOOOOOOOOOOL, well said :P -- Bruno Medeiros - MSc in CS/E student http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#DJarrett Billingsley wrote:I wuv the halting problem. - Gregor Richards"acarion" <thrust trust.com> wrote in message news:f7m8ui$dfk$1 digitalmars.com...Guys, please don't equate 'not responded to' or 'not yet fixed' with 'ignored'. It's a fallacy. Later, BradThen make a patch and upload to bugzilla. Altough I have already done that, and the patch went completely ignored. Also, I found critical bug in the GC (back on DMD1.10, I think) that I posted and went unheard too.Most phobos patches and submissions are ignored.
Jul 22 2007
On Wed, 18 Jul 2007 10:00:48 -0400, downs <default_357-line yahoo.de> wrote:I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences.How are sockets broken in interesting ways, and why would connect need to be synchronized? It's mostly just directly calling the BSD sockets interface.
Jul 18 2007
Chris Miller wrote:On Wed, 18 Jul 2007 10:00:48 -0400, downs <default_357-line yahoo.de> wrote:Have you ever tried connecting to multiple sites in multiple threads rapidly? I don't know about your system, but it caused a segfault on my Win32 and it causes a segfault on my Linux. I'm pretty sure I debugged it once and traced it back to sock.connect not using threadsafe functions. I don't have the specifics though. I can dig them out again if you want, but my gdb is currently broken. --downsI don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences.How are sockets broken in interesting ways, and why would connect need to be synchronized? It's mostly just directly calling the BSD sockets interface.
Jul 19 2007
downs wrote:Chris Miller wrote:connect just calls BSD connect and I don't recall that being thread-unsafe, however calls to gethostname are, I think. ReganOn Wed, 18 Jul 2007 10:00:48 -0400, downs <default_357-line yahoo.de> wrote:Have you ever tried connecting to multiple sites in multiple threads rapidly? I don't know about your system, but it caused a segfault on my Win32 and it causes a segfault on my Linux. I'm pretty sure I debugged it once and traced it back to sock.connect not using threadsafe functions. I don't have the specifics though. I can dig them out again if you want, but my gdb is currently broken. --downsI don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences.How are sockets broken in interesting ways, and why would connect need to be synchronized? It's mostly just directly calling the BSD sockets interface.
Jul 19 2007
Regan Heath wrote:downs wrote::hits-head: Yea, that was it. Stupid me, giving the wrong command. Sorry. My point, however, still stands. ^^Chris Miller wrote:connect just calls BSD connect and I don't recall that being thread-unsafe, however calls to gethostname are, I think. ReganOn Wed, 18 Jul 2007 10:00:48 -0400, downs <default_357-line yahoo.de> wrote:Have you ever tried connecting to multiple sites in multiple threads rapidly? I don't know about your system, but it caused a segfault on my Win32 and it causes a segfault on my Linux. I'm pretty sure I debugged it once and traced it back to sock.connect not using threadsafe functions. I don't have the specifics though. I can dig them out again if you want, but my gdb is currently broken. --downsI don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences.How are sockets broken in interesting ways, and why would connect need to be synchronized? It's mostly just directly calling the BSD sockets interface.
Jul 19 2007
I fully agree with you, but am looking forward to the results of the D conference. Hopefully, no I'm very confident that some good decisions will be made then. -- .71 nicolai dot waniek at sphere71 dot com
Jul 19 2007
downs wrote:I don't like Tango. Going by looks and usability alone, I'd far prefer to use Phobos. However, sometimes I run into trouble with Phobos, like sockets being broken in interesting ways, the connect function not being synchronized, lack of templates in std.string .. I'm sure many of you have had similar experiences. Those are not unbelievably complex and hard issues (like, for example, Macros) but mostly rather trivial things that could be fixed with a few lines of code. So I really have to ask - why are these issues not being fixed? Why is it that in a post-1.0 project, which should be largely bug-free and feature complete, I still have to debug the _standard library_? When writing code, there are a few basic assumptions that you have to make for the sake of efficiency, like what your tools are telling you is correct. That the standard library works as advertised is one of those assumptions. Why is it, that in a post-1.0 project, important parts of the GC, like generationalCollect, even though they are explicitly mentioned in the documentation, remain unimplemented? I really like D, and I also like Phobos. I think it would be sad if people who don't even particularly _like_ Tango would be pushed towards using it by problems that could have been solved. --downs PS: In a similar vein, some people have observed that longstanding bugs seem to be getting less attention these days. Perhaps it would be .. wise, before going off and adding new features which in turn introduce new bugs, to fix the old ones first?Maybe the community should just make a branch of Phobos (Phobos.Community). Go though all the submissions to bugzilla and add them. Perhaps the person adding the fix could be a different person that summited it so the code get some review. Walter could then come along once and a while and merge it into his branch which is much quicker then adding single fixes at a time (alternatively he could keep fixing Phobos bugs as he already is).
Jul 21 2007
janderson wrote:Maybe the community should just make a branch of Phobos (Phobos.Community). Go though all the submissions to bugzilla and add them.I'm going to do a little rant here, so please indulge me for a moment. Many of the submitted patches are well done, and they aren't put in phobos because I haven't gotten off of my lazy arse and put them in yet. But some are of the form "I don't know how it works, here's a patch that might work but I haven't tried it." Those kind of patches are not helpful. A good patch has the following attributes: 1) It's done based on a good understanding of how the module works and how it should work. 2) It's been tried and found to work. Saying it "seems" to work isn't good enough, and leaves me with the thought that the engineering of the patch will have to be completely redone. 3) Unit tests are included to independently verify that it does, indeed, work and solve the bug. 4) The -cov switch was used to verify that all lines of the patch were executed by the unit tests. Do I consistently live up to this standard 100%? Nope, and shame on me for not. And every time I don't, I get burned.
Jul 23 2007
Walter Bright Wrote: [...]A good patch has the following attributes: 1) It's done based on a good understanding of how the module works and how it should work. 2) It's been tried and found to work. Saying it "seems" to work isn't good enough, and leaves me with the thought that the engineering of the patch will have to be completely redone. 3) Unit tests are included to independently verify that it does, indeed, work and solve the bug. 4) The -cov switch was used to verify that all lines of the patch were executed by the unit tests. Do I consistently live up to this standard 100%? Nope, and shame on me for not. And every time I don't, I get burned.Fair enough. Maybe these guidelines should be put somewhere prominently on the bugs&issues area. (3) and especially (4) slipped my mind. Ciao Tom
Jul 23 2007
Walter Bright wrote:janderson wrote:A good point. Maybe the community could somehow help you find the better ones by voting/reviewing (using the attributes you just outlines). Also ones that are not up to standard could me marked as so (by anyone), so either the original person or another can improve it. I'm imagining each bug-fix being handed to Walter on a sliver spoon, reviewed and improved by many people. Chances are people area more likely to improve their contributions if they know they are not up to scratch. I guess its difficult to motivate people (or to find people who have time for that sort of thing). One way to help this is to have good documentation on Bugzilia about how to contribute to the effort. Another would be to have regular weekly positing of all the bugzilla bug (or perhaps the top 10) to this newsgroup to remind people to review and improve them. ie "Please review these top 10 Phobos bugs and improve them so Walter can take them off the list. ect..." Just a thought.Maybe the community should just make a branch of Phobos (Phobos.Community). Go though all the submissions to bugzilla and add them.I'm going to do a little rant here, so please indulge me for a moment. Many of the submitted patches are well done, and they aren't put in phobos because I haven't gotten off of my lazy arse and put them in yet. But some are of the form "I don't know how it works, here's a patch that might work but I haven't tried it." Those kind of patches are not helpful. A good patch has the following attributes: 1) It's done based on a good understanding of how the module works and how it should work. 2) It's been tried and found to work. Saying it "seems" to work isn't good enough, and leaves me with the thought that the engineering of the patch will have to be completely redone. 3) Unit tests are included to independently verify that it does, indeed, work and solve the bug. 4) The -cov switch was used to verify that all lines of the patch were executed by the unit tests. Do I consistently live up to this standard 100%? Nope, and shame on me for not. And every time I don't, I get burned.
Jul 23 2007