Re: [racket-dev] RFC: Coding Guidelines

2010-09-02 Thread Eli Barzilay
On Sep  2, Noel Welsh wrote:
> On Thu, Sep 2, 2010 at 11:57 AM, Eli Barzilay  wrote:
> > Well -- you do, in a sense.  When something is broken, someone
> > needs to fix it.  There's tons of stuff that is (or has)
> > bitrotting away since there's no proper owner to take care of some
> > code, or bugs in code with no clear owner need to wait for someone
> > to volunteer to do the work -- and that's less likely to happen.
> 
> Agreed. I think less stuff should be in the core, and this would go
> some way to solving the problem. I think you want this as well.

Yes, I want this -- but the ownership issue is still pending as long
as the libraries in question are maintained in the plt repository as a
group effort.


> To elaborate, I think Racket should still come with all the
> libraries it currently does but 1) they should have versions like
> Planet does and 2) they should be distributable independently of
> Racket core. This way a particular library update is independent of
> updates to other libraries or the core.

(Yes, that's the plan.)

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-09-02 Thread Noel Welsh
On Thu, Sep 2, 2010 at 11:57 AM, Eli Barzilay  wrote:
> Well -- you do, in a sense.  When something is broken, someone needs
> to fix it.  There's tons of stuff that is (or has) bitrotting away
> since there's no proper owner to take care of some code, or bugs in
> code with no clear owner need to wait for someone to volunteer to do
> the work -- and that's less likely to happen.

Agreed. I think less stuff should be in the core, and this would go
some way to solving the problem. I think you want this as well.

To elaborate, I think Racket should still come with all the libraries
it currently does but 1) they should have versions like Planet does
and 2) they should be distributable independently of Racket core. This
way a particular library update is independent of updates to other
libraries or the core.

N.

> My worry re ownership is that making a mess there will lead to more of
> these problems.  To make a concrete example, there's some unstable
> code now that is a big extension to a big library -- and if the
> theoretical plan where the unstable manager merges that code in, we
> get three people involved: (a) the original author of the library, (b)
> the author of the extension, and (c) the unstable manager.  Now what
> happens to bugs in the resulting extended library?  To me, this sounds
> like a recipe for one of those silly volleyball moments where the
> three players stand next to the ball with "I thought *you'd* pick it"
> looks.
>
> Because of this, I much rather see such extension getting in by (b)
> cooperating with (a) to get the extension in.  With the result being
> - (a) making sure he knows all the bits and becoming the owner of
>  the result;
> - (b) becoming the owner of the resulting extended library;
> - or deciding on a clear separation where the two parts are visible
>  (possibly involving work on either side), and the two maintain their
>  own bits.
>
>
>> > * "\"Primum non nocere\"" -- after looking this up (bad for such a
>> >   document), I strongly disagree with it.  IIUC, it reads as "if
>> >   it works, don't mess with it"
>>
>> Idiomatically that would be "if it ain't broke, don't fix it". I too
>> strongly disagree with this.
>
> (Yeah, I saw that -- and the context that it's coming from is dealing
> with a very different kind of machine, where the rules are very
> different...)
>
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-09-02 Thread Eli Barzilay
On Sep  2, Noel Welsh wrote:
> On Sat, Aug 28, 2010 at 5:34 PM, Eli Barzilay  wrote:
> > I (finally) read this and the thread that went on at the time, and
> > I don't see any point in all of this, besides a vage plea to
> > encourage tests, and a slightly more concrete (but impractical)
> > call for stress tests.
> 
> I think laying down general philosophy is useful. It sets a tone.
> However, I agree with most of your other points though I'm less
> concerned about the ownership of code side, probably 'cause I don't
> have to deal with everyday.

Well -- you do, in a sense.  When something is broken, someone needs
to fix it.  There's tons of stuff that is (or has) bitrotting away
since there's no proper owner to take care of some code, or bugs in
code with no clear owner need to wait for someone to volunteer to do
the work -- and that's less likely to happen.

My worry re ownership is that making a mess there will lead to more of
these problems.  To make a concrete example, there's some unstable
code now that is a big extension to a big library -- and if the
theoretical plan where the unstable manager merges that code in, we
get three people involved: (a) the original author of the library, (b)
the author of the extension, and (c) the unstable manager.  Now what
happens to bugs in the resulting extended library?  To me, this sounds
like a recipe for one of those silly volleyball moments where the
three players stand next to the ball with "I thought *you'd* pick it"
looks.

Because of this, I much rather see such extension getting in by (b)
cooperating with (a) to get the extension in.  With the result being
- (a) making sure he knows all the bits and becoming the owner of
  the result;
- (b) becoming the owner of the resulting extended library;
- or deciding on a clear separation where the two parts are visible
  (possibly involving work on either side), and the two maintain their
  own bits.


> > * "\"Primum non nocere\"" -- after looking this up (bad for such a
> >   document), I strongly disagree with it.  IIUC, it reads as "if
> >   it works, don't mess with it"
> 
> Idiomatically that would be "if it ain't broke, don't fix it". I too
> strongly disagree with this.

(Yeah, I saw that -- and the context that it's coming from is dealing
with a very different kind of machine, where the rules are very
different...)

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-09-02 Thread Noel Welsh
On Sat, Aug 28, 2010 at 5:34 PM, Eli Barzilay  wrote:
> I (finally) read this and the thread that went on at the time, and I
> don't see any point in all of this, besides a vage plea to encourage
> tests, and a slightly more concrete (but impractical) call for stress
> tests.

I think laying down general philosophy is useful. It sets a tone.
However, I agree with most of your other points though I'm less
concerned about the ownership of code side, probably 'cause I don't
have to deal with everyday.

> * "\"Primum non nocere\"" -- after looking this up (bad for such a
>  document), I strongly disagree with it.  IIUC, it reads as "if it
>  works, don't mess with it"

Idiomatically that would be "if it ain't broke, don't fix it". I too
strongly disagree with this.

> * Yet another huge ommision from such a document is style.  This comes
>  in several flavors:

Yes. This is one of the most important aspect IMO. Consistent style
makes it easy for anyone to navigate the code base. We have evolved a
house style at Untyped and it is useful.

N.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-28 Thread Eli Barzilay
On Aug 19, Jay McCarthy wrote:
> I hope I've incorporated much of the feedback from this thread:
> 
> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html

I (finally) read this and the thread that went on at the time, and I
don't see any point in all of this, besides a vage plea to encourage
tests, and a slightly more concrete (but impractical) call for stress
tests.

* It talks about code in general -- no distinction between introducing
  new functionality, and fixing existing code.  It looks like the
  emphasis is on the former, but that's not clear.  These two cases
  are very different.

* For the latter case of fixing someone else's code, much of this is
  irrelevant.  If I see a bug in a library, and I tell the author
  about it but it is not fixed after a while -- if the fix is simple,
  I'll probably push it.  (*I*'ll probably fix it right away.)  But
  does that mean that the responsibility of keeping the code (and
  therefore maintaining a test suite) is now all mine?  The text makes
  it look that way, but if these rules were enforced in some concrete
  way (for example -- you touch the slideshow code, and you get to be
  responsible for all its bugs) the net result would be no fixes.

* So obviously some concrete ownership change is out of the question.
  Is there some implicit change, or something less radical like "you
  own your changes"?  Probably -- but such things are hard to
  impossible to formalize in any way.  I think that ultimately it's
  something that gets settled between the owner of the code and the
  person fixing it.

  As someone who was very often at the fixing side, I've just learned
  to deal with things on a case by case basis.  In some cases the
  owner is happy for any fix, even if testing it is very difficult (or
  if the fix is obvious that there's no need for a test).  In other
  cases the owner rejected any change and my fixes got dumped -- and I
  learned to completely avoid such pieces of code.  It yet other cases
  the owner is relatively new, and I'll do more radical changes.  The
  bottom line is that I don't see any formal way to formalize sane
  rules and keep moving at the same time.

* "As long as your code fulfills its promises" seems like a weasel
  passage that can admit anything -- it's me who writes the code and
  me who does the promising, so I can always claim that I never
  promised [whatever you don't like about it, including bugs].

* There's an emphasis on stress testing -- but I don't see anything
  concrete there, and I don't see any way of making any concrete
  conclusions wrt such testing.  To give a few examples:

  - We still have the `seqn' operators in, and they still imply a
runtime cost of ~200.  What should I do in light of the stress
tests passage?
- Add a test that will actually break, knowing that fixing it is
  not a matter of some local change to the code?
- Remove the code, because a 200x is bad enough to be considered a
  bug?
- Spend a month rewriting how sequences are represented to
  actually solve the problem?
- Shut up about it, and learn to ignore it?

  - The unstable/queue code had a much smaller performance hit, but
the code in question was simple enough to make that hit much more
noticeable, so in that case even a small 5x factor is bad.

  - In Hari's code there is generally a similar performance hit, but
in that case the added functionality (being pure) is worth it, and
the code is less simple (certainly not something I'd want to write
myself whenever I need purity).  So a 5x factor is not a problem.

* A minor note: the text refers to the tests/stress/stress library,
  but that code has no real documentation.  (Looking at the code,
  there's some aspects that should really go into `time' -- like the
  ability to run the body multiple times, and average the results.)

* "\"Primum non nocere\"" -- after looking this up (bad for such a
  document), I strongly disagree with it.  IIUC, it reads as "if it
  works, don't mess with it" -- which is a recipe for an ever growing
  codebase with almost no changes to existing code.  There are places
  where this does apply (eg, everything around drracket involve
  subtle state-based issues that random by-passers are unaware of),
  and places where it clearly should not apply.

  The question should really involve ownership: your own dialog with
  the owner of the code, or your willingness to become its owner.

* Speaking about ownership -- IMO it is one of the important aspect of
  any "coding guidelines", yet there is nothing about it in the text.
  So IMO this is a huge omission.

  More specifically, much of my criticism of the unstable collection
  is related to ownership -- code being dumped as is and left as an
  orphan with noone to take care of problems.  (Yes, there's a policy
  of clarifying the owner of each bit, but the bottom line is that
  except for a few things, there was no discussion on it and 

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Matthias Felleisen

I am fine with these changes. 

On Aug 19, 2010, at 10:53 AM, Jay McCarthy wrote:

> I hope I've incorporated much of the feedback from this thread:
> 
> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
> 
> Jay
> 
> On Thu, Aug 19, 2010 at 8:14 AM, Matthias Felleisen
>  wrote:
>> 
>> Yes. I started using the phrase "I have bug reports, therefore I exist" at 
>> Rice. I think Jay should add this phrase right next to the other quote.
>> 
>> 
>> 
>> 
>> On Aug 19, 2010, at 10:03 AM, Robby Findler wrote:
>> 
>>> Guys: we need one more thing to go into the beginning of these
>>> guidelines. Specifically, we should say (something like) "Bugs are
>>> something to be proud of; not to be ashamed of." the rationale being
>>> that there are always bugs, but if they are unknown bugs then it means
>>> your software is not being used.
>>> 
>>>  It is the way we choose to fight our bugs that determines our
>>> character, not their presence or absence.
>>> 
>>> Robby
>> 
>> _
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>> 
> 
> 
> 
> -- 
> Jay McCarthy 
> Assistant Professor / Brigham Young University
> http://teammccarthy.org/jay
> 
> "The glory of God is Intelligence" - D&C 93

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Jay McCarthy
I hope I've incorporated much of the feedback from this thread:

http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html

Jay

On Thu, Aug 19, 2010 at 8:14 AM, Matthias Felleisen
 wrote:
>
> Yes. I started using the phrase "I have bug reports, therefore I exist" at 
> Rice. I think Jay should add this phrase right next to the other quote.
>
>
>
>
> On Aug 19, 2010, at 10:03 AM, Robby Findler wrote:
>
>> Guys: we need one more thing to go into the beginning of these
>> guidelines. Specifically, we should say (something like) "Bugs are
>> something to be proud of; not to be ashamed of." the rationale being
>> that there are always bugs, but if they are unknown bugs then it means
>> your software is not being used.
>>
>>  It is the way we choose to fight our bugs that determines our
>> character, not their presence or absence.
>>
>> Robby
>
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>



-- 
Jay McCarthy 
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
Nevertheless, Shriram, I think you're picking on one of parts of the
system that follows these ideals the best. Better to pick on
slideshow. :)

Robby

On Thu, Aug 19, 2010 at 9:22 AM, Shriram Krishnamurthi  
wrote:
> You put it through Spidey.  If you didn't have any code, what would
> you have put through Spidey?  Nothing.
>
> The code came first.  It had long since been deployed before you did
> this.
>
> Performance testing came when we set out to write a paper and wanted
> to do measurements.  They were initially designed only to measure
> performance, not to actually *stress*.  They morphed into stress tests
> later.  By that time, too, the system was long since deployed.
>
> Shriram
>
> On Thu, Aug 19, 2010 at 9:59 AM, Matthias Felleisen
>  wrote:
>>
>> I, with Paul's help, worked the entire Web server through MrSpidey and 
>> eliminated all but those checks that Herman-Meunier later showed how to 
>> eliminate with their ICFP paper. That's far more than testing in some sense 
>> even if it doesn't show that it serves.
>>
>> Paul set up automatic stress tests back then already. We reported them in 
>> our paper.
>>
>> I call this judgment inaccurate.
>>
>>
>>
>>
>>
>> On Aug 19, 2010, at 9:56 AM, Shriram Krishnamurthi wrote:
>>
>>> Neither would the PLT Web server.   I'm pretty certain Jay's own edits
>>> to it were not preceded by tests.
>>>
>>> Jay's changes to the PLAI language most certainly were not, because
>>> the current PLAI that is bundled with DrRacket is broken.
>>>
>>> (Sorry, Jay, but it's your prose.)
>>>
>>> Shriram
>>>
>>> On Thu, Aug 19, 2010 at 9:50 AM, Casey Klein
>>>  wrote:
 On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
 wrote:
> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
> wrote:
>> Please comment.
>
> I think that this:
>
> "Your first task when changing old code is to build an adequate test
> suite to ensure you do not introduce new mistakes as you attempt to
> improve it. Thank you for improving the world for future generations!"
>
> is too demanding.   There are enormous areas of our code that don't
> have a test suite.   How comprehensive a test suite do I need before
> changing slideshow?   Or scribble (which has a test suite for the
> syntax, but not the language)?

 Robby and Matthew, would Slideshow exist today if you'd be expected to
 build it with this process?
 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

>>> _
>>>   For list-related administrative tasks:
>>>   http://lists.racket-lang.org/listinfo/dev
>>
>>
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Shriram Krishnamurthi
You put it through Spidey.  If you didn't have any code, what would
you have put through Spidey?  Nothing.

The code came first.  It had long since been deployed before you did
this.

Performance testing came when we set out to write a paper and wanted
to do measurements.  They were initially designed only to measure
performance, not to actually *stress*.  They morphed into stress tests
later.  By that time, too, the system was long since deployed.

Shriram

On Thu, Aug 19, 2010 at 9:59 AM, Matthias Felleisen
 wrote:
>
> I, with Paul's help, worked the entire Web server through MrSpidey and 
> eliminated all but those checks that Herman-Meunier later showed how to 
> eliminate with their ICFP paper. That's far more than testing in some sense 
> even if it doesn't show that it serves.
>
> Paul set up automatic stress tests back then already. We reported them in our 
> paper.
>
> I call this judgment inaccurate.
>
>
>
>
>
> On Aug 19, 2010, at 9:56 AM, Shriram Krishnamurthi wrote:
>
>> Neither would the PLT Web server.   I'm pretty certain Jay's own edits
>> to it were not preceded by tests.
>>
>> Jay's changes to the PLAI language most certainly were not, because
>> the current PLAI that is bundled with DrRacket is broken.
>>
>> (Sorry, Jay, but it's your prose.)
>>
>> Shriram
>>
>> On Thu, Aug 19, 2010 at 9:50 AM, Casey Klein
>>  wrote:
>>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>>> wrote:
 On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
 wrote:
> Please comment.

 I think that this:

 "Your first task when changing old code is to build an adequate test
 suite to ensure you do not introduce new mistakes as you attempt to
 improve it. Thank you for improving the world for future generations!"

 is too demanding.   There are enormous areas of our code that don't
 have a test suite.   How comprehensive a test suite do I need before
 changing slideshow?   Or scribble (which has a test suite for the
 syntax, but not the language)?
>>>
>>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>>> build it with this process?
>>> _
>>>   For list-related administrative tasks:
>>>   http://lists.racket-lang.org/listinfo/dev
>>>
>> _
>>   For list-related administrative tasks:
>>   http://lists.racket-lang.org/listinfo/dev
>
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
Yes, we all did. I think it was Matthew who pushed to the point where
we would think of saying such things by his
release-early-respond-quickly philosophy of software building.

(It would be nice to figure out a way to build on Dijkstra's quote to do this.)

Robby

On Thu, Aug 19, 2010 at 9:14 AM, Matthias Felleisen
 wrote:
>
> Yes. I started using the phrase "I have bug reports, therefore I exist" at 
> Rice. I think Jay should add this phrase right next to the other quote.
>
>
>
>
> On Aug 19, 2010, at 10:03 AM, Robby Findler wrote:
>
>> Guys: we need one more thing to go into the beginning of these
>> guidelines. Specifically, we should say (something like) "Bugs are
>> something to be proud of; not to be ashamed of." the rationale being
>> that there are always bugs, but if they are unknown bugs then it means
>> your software is not being used.
>>
>>  It is the way we choose to fight our bugs that determines our
>> character, not their presence or absence.
>>
>> Robby
>
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Matthias Felleisen

Yes. I started using the phrase "I have bug reports, therefore I exist" at 
Rice. I think Jay should add this phrase right next to the other quote. 




On Aug 19, 2010, at 10:03 AM, Robby Findler wrote:

> Guys: we need one more thing to go into the beginning of these
> guidelines. Specifically, we should say (something like) "Bugs are
> something to be proud of; not to be ashamed of." the rationale being
> that there are always bugs, but if they are unknown bugs then it means
> your software is not being used.
> 
>  It is the way we choose to fight our bugs that determines our
> character, not their presence or absence.
> 
> Robby

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
On Thu, Aug 19, 2010 at 9:01 AM, Sam Tobin-Hochstadt  wrote:
> On Thu, Aug 19, 2010 at 9:48 AM, Robby Findler
>  wrote:
>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>> wrote:
>>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
>>> wrote:
 Please comment.
>>>
>>> I think that this:
>>>
>>> "Your first task when changing old code is to build an adequate test
>>> suite to ensure you do not introduce new mistakes as you attempt to
>>> improve it. Thank you for improving the world for future generations!"
>>>
>>> is too demanding.  There are enormous areas of our code that don't
>>> have a test suite.  How comprehensive a test suite do I need before
>>> changing slideshow?  Or scribble (which has a test suite for the
>>> syntax, but not the language)?
>>
>> You should make a reasonable effort to put in a test case or two for
>> the specific functionality that you're adding/modifying. If there is
>> no test suite and you aren't sure how to build one, then ask, see what
>> responses you get, and go from there.
>
> So, to make this concrete, I recently made some small changes to the
> scriblib/autobib library.  These included changing the regexp to allow
> hyphens in last names, as well as allowing multiple citations at once
> in a particular special case.  I tested these changes by running a
> not-then-published paper that I was working on, and seeing that it did
> the right thing.  Then I sent the patch to Matthew, and he said it
> looked good.  Then I committed it.
>
> There's two forms of automated test that I could have added.  I could
> have just added a file the used the functionality, and checked that it
> didn't error when run.  That would have been a minimal test, and
> wouldn't even have exercised the bug fix (it was just parsing my name
> wrong).   Or I could have written a test framework for Scribble PDF
> rendering.  I'm not sure how that would have worked, and it would have
> been a big programming investment.  I don't think I had time then (or
> now) to do that work.

This example sounds to me like you could have written a call to a
scriblib function and checked that there was no error (for the
second). For the first, you probably would have had to expose some
functionality to make the bib record give you back the sorted list of
names (or something like that) that it would have used when rendering.

In general, I'd say that a big piece of good test suite design is
figuring out how to add observations to some library you want to test
so that you can test it only and not test things that it depends on
(pdf rendering in this case).

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
Guys: we need one more thing to go into the beginning of these
guidelines. Specifically, we should say (something like) "Bugs are
something to be proud of; not to be ashamed of." the rationale being
that there are always bugs, but if they are unknown bugs then it means
your software is not being used.

  It is the way we choose to fight our bugs that determines our
character, not their presence or absence.

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Sam Tobin-Hochstadt
On Thu, Aug 19, 2010 at 9:48 AM, Robby Findler
 wrote:
> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
> wrote:
>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  wrote:
>>> Please comment.
>>
>> I think that this:
>>
>> "Your first task when changing old code is to build an adequate test
>> suite to ensure you do not introduce new mistakes as you attempt to
>> improve it. Thank you for improving the world for future generations!"
>>
>> is too demanding.  There are enormous areas of our code that don't
>> have a test suite.  How comprehensive a test suite do I need before
>> changing slideshow?  Or scribble (which has a test suite for the
>> syntax, but not the language)?
>
> You should make a reasonable effort to put in a test case or two for
> the specific functionality that you're adding/modifying. If there is
> no test suite and you aren't sure how to build one, then ask, see what
> responses you get, and go from there.

So, to make this concrete, I recently made some small changes to the
scriblib/autobib library.  These included changing the regexp to allow
hyphens in last names, as well as allowing multiple citations at once
in a particular special case.  I tested these changes by running a
not-then-published paper that I was working on, and seeing that it did
the right thing.  Then I sent the patch to Matthew, and he said it
looked good.  Then I committed it.

There's two forms of automated test that I could have added.  I could
have just added a file the used the functionality, and checked that it
didn't error when run.  That would have been a minimal test, and
wouldn't even have exercised the bug fix (it was just parsing my name
wrong).   Or I could have written a test framework for Scribble PDF
rendering.  I'm not sure how that would have worked, and it would have
been a big programming investment.  I don't think I had time then (or
now) to do that work.

For Typed Racket, testing is a hard problem, but one that I've put a
bunch of effort into making possible, because it needs testing.  But
there's no way I'd expect someone else to put that effort in.
-- 
sam th
sa...@ccs.neu.edu
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Matthias Felleisen

I, with Paul's help, worked the entire Web server through MrSpidey and 
eliminated all but those checks that Herman-Meunier later showed how to 
eliminate with their ICFP paper. That's far more than testing in some sense 
even if it doesn't show that it serves. 

Paul set up automatic stress tests back then already. We reported them in our 
paper. 

I call this judgment inaccurate. 





On Aug 19, 2010, at 9:56 AM, Shriram Krishnamurthi wrote:

> Neither would the PLT Web server.  I'm pretty certain Jay's own edits
> to it were not preceded by tests.
> 
> Jay's changes to the PLAI language most certainly were not, because
> the current PLAI that is bundled with DrRacket is broken.
> 
> (Sorry, Jay, but it's your prose.)
> 
> Shriram
> 
> On Thu, Aug 19, 2010 at 9:50 AM, Casey Klein
>  wrote:
>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>> wrote:
>>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
>>> wrote:
 Please comment.
>>> 
>>> I think that this:
>>> 
>>> "Your first task when changing old code is to build an adequate test
>>> suite to ensure you do not introduce new mistakes as you attempt to
>>> improve it. Thank you for improving the world for future generations!"
>>> 
>>> is too demanding.  There are enormous areas of our code that don't
>>> have a test suite.  How comprehensive a test suite do I need before
>>> changing slideshow?  Or scribble (which has a test suite for the
>>> syntax, but not the language)?
>> 
>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>> build it with this process?
>> _
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>> 
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Jay McCarthy
On Thu, Aug 19, 2010 at 7:56 AM, Shriram Krishnamurthi  
wrote:
> Neither would the PLT Web server.  I'm pretty certain Jay's own edits
> to it were not preceded by tests.

That's not true.

>
> Jay's changes to the PLAI language most certainly were not, because
> the current PLAI that is bundled with DrRacket is broken.

The thing that you are referring to was not tested, but I wrote a test
suite for almost everything else. IMHO The problem with PLAI was that
the printing was not part of the "spec".

>
> (Sorry, Jay, but it's your prose.)
>
> Shriram
>
> On Thu, Aug 19, 2010 at 9:50 AM, Casey Klein
>  wrote:
>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>> wrote:
>>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
>>> wrote:
 Please comment.
>>>
>>> I think that this:
>>>
>>> "Your first task when changing old code is to build an adequate test
>>> suite to ensure you do not introduce new mistakes as you attempt to
>>> improve it. Thank you for improving the world for future generations!"
>>>
>>> is too demanding.  There are enormous areas of our code that don't
>>> have a test suite.  How comprehensive a test suite do I need before
>>> changing slideshow?  Or scribble (which has a test suite for the
>>> syntax, but not the language)?
>>
>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>> build it with this process?
>> _
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>>
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>



-- 
Jay McCarthy 
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
... whoops, sent too soon.

I would say that there is some code where we know how to test it and
laziness is the only thing that keeps it from being tested. There is
other code, however, where it is something more than laziness that
keeps it from being well-tested, ie testing it is a large programming
project in its own right. DrRacket is in that category, but I spend
some energy writing and maintaining test suites for it regardless
(they are FAR from comprehensive). Slideshow is in that category too.

Robby

On Thu, Aug 19, 2010 at 8:55 AM, Robby Findler
 wrote:
> But that's not true for Matthew, say, who has volumes of course slides
> in slideshow that he uses each year. (I think he's the biggest
> slideshow client, tho.)
>
> Slideshow is not an easy thing to test, I'd say. One could probably,
> with sufficient work, build something that would reveal properties of
> picts and then test for them with the combinators, but it would be
> something on the level of complexity of the framework's test engine,
> roughly speaking.
>
> Robby
>
> On Thu, Aug 19, 2010 at 8:53 AM, Matthias Felleisen
>  wrote:
>>
>> There's code and there's code. I don't think slideshow is at the level of 
>> Racket or Typed Racket or DrRacket. If it went away, I'd have no trouble 
>> changing the ten or twenty files in my world that use it. Sure, I'd lose a 
>> few days but if I lost Racket, I'd lose a year and more.
>>
>> -- Matthias
>>
>>
>>
>>
>>
>> On Aug 19, 2010, at 9:50 AM, Casey Klein wrote:
>>
>>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>>> wrote:
 On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
 wrote:
> Please comment.

 I think that this:

 "Your first task when changing old code is to build an adequate test
 suite to ensure you do not introduce new mistakes as you attempt to
 improve it. Thank you for improving the world for future generations!"

 is too demanding.  There are enormous areas of our code that don't
 have a test suite.  How comprehensive a test suite do I need before
 changing slideshow?  Or scribble (which has a test suite for the
 syntax, but not the language)?
>>>
>>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>>> build it with this process?
>>> _
>>>  For list-related administrative tasks:
>>>  http://lists.racket-lang.org/listinfo/dev
>>
>>
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
Racket's core is one of the best tested parts of the system, I'd say.

Robby

On Thu, Aug 19, 2010 at 8:57 AM, Shriram Krishnamurthi  
wrote:
> But most people wouldn't dream of touching the core Racket engine (for
> much the same reason).  Are these guidelines for kernel hackers?
>
> Shriram
>
> On Thu, Aug 19, 2010 at 9:53 AM, Matthias Felleisen
>  wrote:
>>
>> There's code and there's code. I don't think slideshow is at the level of 
>> Racket or Typed Racket or DrRacket. If it went away, I'd have no trouble 
>> changing the ten or twenty files in my world that use it. Sure, I'd lose a 
>> few days but if I lost Racket, I'd lose a year and more.
>>
>> -- Matthias
>>
>>
>>
>>
>>
>> On Aug 19, 2010, at 9:50 AM, Casey Klein wrote:
>>
>>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>>> wrote:
 On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
 wrote:
> Please comment.

 I think that this:

 "Your first task when changing old code is to build an adequate test
 suite to ensure you do not introduce new mistakes as you attempt to
 improve it. Thank you for improving the world for future generations!"

 is too demanding.  There are enormous areas of our code that don't
 have a test suite.  How comprehensive a test suite do I need before
 changing slideshow?  Or scribble (which has a test suite for the
 syntax, but not the language)?
>>>
>>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>>> build it with this process?
>>> _
>>>  For list-related administrative tasks:
>>>  http://lists.racket-lang.org/listinfo/dev
>>
>> _
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>>
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
Shriram: tests do not guarantee the absence of bugs, just their
recurrence. There are lots of PLAI tests, I believe.

Robby

On Thu, Aug 19, 2010 at 8:56 AM, Shriram Krishnamurthi  
wrote:
> Neither would the PLT Web server.  I'm pretty certain Jay's own edits
> to it were not preceded by tests.
>
> Jay's changes to the PLAI language most certainly were not, because
> the current PLAI that is bundled with DrRacket is broken.
>
> (Sorry, Jay, but it's your prose.)
>
> Shriram
>
> On Thu, Aug 19, 2010 at 9:50 AM, Casey Klein
>  wrote:
>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>> wrote:
>>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
>>> wrote:
 Please comment.
>>>
>>> I think that this:
>>>
>>> "Your first task when changing old code is to build an adequate test
>>> suite to ensure you do not introduce new mistakes as you attempt to
>>> improve it. Thank you for improving the world for future generations!"
>>>
>>> is too demanding.  There are enormous areas of our code that don't
>>> have a test suite.  How comprehensive a test suite do I need before
>>> changing slideshow?  Or scribble (which has a test suite for the
>>> syntax, but not the language)?
>>
>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>> build it with this process?
>> _
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>>
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Shriram Krishnamurthi
But most people wouldn't dream of touching the core Racket engine (for
much the same reason).  Are these guidelines for kernel hackers?

Shriram

On Thu, Aug 19, 2010 at 9:53 AM, Matthias Felleisen
 wrote:
>
> There's code and there's code. I don't think slideshow is at the level of 
> Racket or Typed Racket or DrRacket. If it went away, I'd have no trouble 
> changing the ten or twenty files in my world that use it. Sure, I'd lose a 
> few days but if I lost Racket, I'd lose a year and more.
>
> -- Matthias
>
>
>
>
>
> On Aug 19, 2010, at 9:50 AM, Casey Klein wrote:
>
>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>> wrote:
>>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
>>> wrote:
 Please comment.
>>>
>>> I think that this:
>>>
>>> "Your first task when changing old code is to build an adequate test
>>> suite to ensure you do not introduce new mistakes as you attempt to
>>> improve it. Thank you for improving the world for future generations!"
>>>
>>> is too demanding.  There are enormous areas of our code that don't
>>> have a test suite.  How comprehensive a test suite do I need before
>>> changing slideshow?  Or scribble (which has a test suite for the
>>> syntax, but not the language)?
>>
>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>> build it with this process?
>> _
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Shriram Krishnamurthi
Neither would the PLT Web server.  I'm pretty certain Jay's own edits
to it were not preceded by tests.

Jay's changes to the PLAI language most certainly were not, because
the current PLAI that is bundled with DrRacket is broken.

(Sorry, Jay, but it's your prose.)

Shriram

On Thu, Aug 19, 2010 at 9:50 AM, Casey Klein
 wrote:
> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
> wrote:
>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  wrote:
>>> Please comment.
>>
>> I think that this:
>>
>> "Your first task when changing old code is to build an adequate test
>> suite to ensure you do not introduce new mistakes as you attempt to
>> improve it. Thank you for improving the world for future generations!"
>>
>> is too demanding.  There are enormous areas of our code that don't
>> have a test suite.  How comprehensive a test suite do I need before
>> changing slideshow?  Or scribble (which has a test suite for the
>> syntax, but not the language)?
>
> Robby and Matthew, would Slideshow exist today if you'd be expected to
> build it with this process?
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
But that's not true for Matthew, say, who has volumes of course slides
in slideshow that he uses each year. (I think he's the biggest
slideshow client, tho.)

Slideshow is not an easy thing to test, I'd say. One could probably,
with sufficient work, build something that would reveal properties of
picts and then test for them with the combinators, but it would be
something on the level of complexity of the framework's test engine,
roughly speaking.

Robby

On Thu, Aug 19, 2010 at 8:53 AM, Matthias Felleisen
 wrote:
>
> There's code and there's code. I don't think slideshow is at the level of 
> Racket or Typed Racket or DrRacket. If it went away, I'd have no trouble 
> changing the ten or twenty files in my world that use it. Sure, I'd lose a 
> few days but if I lost Racket, I'd lose a year and more.
>
> -- Matthias
>
>
>
>
>
> On Aug 19, 2010, at 9:50 AM, Casey Klein wrote:
>
>> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
>> wrote:
>>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  
>>> wrote:
 Please comment.
>>>
>>> I think that this:
>>>
>>> "Your first task when changing old code is to build an adequate test
>>> suite to ensure you do not introduce new mistakes as you attempt to
>>> improve it. Thank you for improving the world for future generations!"
>>>
>>> is too demanding.  There are enormous areas of our code that don't
>>> have a test suite.  How comprehensive a test suite do I need before
>>> changing slideshow?  Or scribble (which has a test suite for the
>>> syntax, but not the language)?
>>
>> Robby and Matthew, would Slideshow exist today if you'd be expected to
>> build it with this process?
>> _
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Matthias Felleisen

There's code and there's code. I don't think slideshow is at the level of 
Racket or Typed Racket or DrRacket. If it went away, I'd have no trouble 
changing the ten or twenty files in my world that use it. Sure, I'd lose a few 
days but if I lost Racket, I'd lose a year and more. 

-- Matthias





On Aug 19, 2010, at 9:50 AM, Casey Klein wrote:

> On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  
> wrote:
>> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  wrote:
>>> Please comment.
>> 
>> I think that this:
>> 
>> "Your first task when changing old code is to build an adequate test
>> suite to ensure you do not introduce new mistakes as you attempt to
>> improve it. Thank you for improving the world for future generations!"
>> 
>> is too demanding.  There are enormous areas of our code that don't
>> have a test suite.  How comprehensive a test suite do I need before
>> changing slideshow?  Or scribble (which has a test suite for the
>> syntax, but not the language)?
> 
> Robby and Matthew, would Slideshow exist today if you'd be expected to
> build it with this process?
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Casey Klein
On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  wrote:
> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  wrote:
>> Please comment.
>
> I think that this:
>
> "Your first task when changing old code is to build an adequate test
> suite to ensure you do not introduce new mistakes as you attempt to
> improve it. Thank you for improving the world for future generations!"
>
> is too demanding.  There are enormous areas of our code that don't
> have a test suite.  How comprehensive a test suite do I need before
> changing slideshow?  Or scribble (which has a test suite for the
> syntax, but not the language)?

Robby and Matthew, would Slideshow exist today if you'd be expected to
build it with this process?
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Robby Findler
On Thu, Aug 19, 2010 at 8:44 AM, Sam Tobin-Hochstadt  wrote:
> On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  wrote:
>> Please comment.
>
> I think that this:
>
> "Your first task when changing old code is to build an adequate test
> suite to ensure you do not introduce new mistakes as you attempt to
> improve it. Thank you for improving the world for future generations!"
>
> is too demanding.  There are enormous areas of our code that don't
> have a test suite.  How comprehensive a test suite do I need before
> changing slideshow?  Or scribble (which has a test suite for the
> syntax, but not the language)?

You should make a reasonable effort to put in a test case or two for
the specific functionality that you're adding/modifying. If there is
no test suite and you aren't sure how to build one, then ask, see what
responses you get, and go from there.

In the special case that you found a bug and are fixing in, there
should be a way to observe that bug and you should be able to turn
that into a test case. If you cannot, perhaps that points to something
the language is missing. This case, I'd say, is particularly worth
investigating, even in something that has completely no tests.

And, of course, Matthias's earlier caveats apply here too.

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Sam Tobin-Hochstadt
On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy  wrote:
> Please comment.

I think that this:

"Your first task when changing old code is to build an adequate test
suite to ensure you do not introduce new mistakes as you attempt to
improve it. Thank you for improving the world for future generations!"

is too demanding.  There are enormous areas of our code that don't
have a test suite.  How comprehensive a test suite do I need before
changing slideshow?  Or scribble (which has a test suite for the
syntax, but not the language)?
-- 
sam th
sa...@ccs.neu.edu
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread Matthias Felleisen

Supplement it with those words but do leave the prose alone. This is a goal, 
just like smooth releases are. 

In general, I think we have reached a size and complexity and a turn-over (new 
people joining us and committing code) where we should have something to point 
them to. We're not asking you to rip out your code from the base. We're asking 
you to point your students to this set of strong suggestions. 

-- Matthias





On Aug 19, 2010, at 9:08 AM, John Clements wrote:

> 
> On Aug 17, 2010, at 4:27 PM, Jay McCarthy wrote:
> 
>> On Tue, Aug 17, 2010 at 2:24 PM, John Clements
>>  wrote:
>>> 
>>> On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:
>>> 
 We're attempting to write down coding guidelines for the project.
 
 Here is a first attempt:
 
 http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
 
 Please comment.
>>> 
>>> You write
>>> 
>>> "As long as your code fulfills its promises and meets each of these 
>>> criteria, you can push incrementally.
>>> 
>>> For example, I may be working on adding an exhaustive queue library to 
>>> Racket. I imagine supporting 30 different functions across 5 different 
>>> queue implementations. I don't have to wait to push until all 150 function 
>>> implementations are documented, tested, and stressed. I can push whenever I 
>>> make progress on each of the required points."
>>> 
>>> Either this is contradictory, or I'm misunderstanding it.  The first 
>>> paragraph suggests that the code must meet each of the criteria; the second 
>>> suggests that as long as it's *closer* to meeting the required criteria, 
>>> it's fine.
>> 
>> Maybe you can help me say it better. What I'm trying to get at is that
>> 150 functions is perfect to me, but if I only promise 30 functions and
>> meet the criteria for each of them, then I can commit even though it
>> is not "perfect". Progress here is meeting the 4 points for each new
>> function I push.
> 
> Okay, so every individual piece that's committed should meet the criteria.  I 
> think that's the most sensible reading of what you wrote, but it also 
> frightens me. I don't think that very much of our current code meets these 
> criteria, and I'm worried that trying to enforce them is going to pull us 
> into a sinkhole of no-new-functionality. I suppose that we should write down 
> what we want before we figure out how to get there, though. 
> 
> As far as this piece text is concerned, I think I would replace that last 
> sentence with essentially what you wrote in response:
> 
>>> For example, I may be working on adding an exhaustive queue library to 
>>> Racket. I imagine supporting 30 different functions across 5 different 
>>> queue implementations, for a total of 150 functions.  If I have just 30 of 
>>> these documented, tested, and stressed, then it's fine for me to push.
> 
> 
> John
> 
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread John Clements

On Aug 17, 2010, at 4:27 PM, Jay McCarthy wrote:

> On Tue, Aug 17, 2010 at 2:24 PM, John Clements
>  wrote:
>> 
>> On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:
>> 
>>> We're attempting to write down coding guidelines for the project.
>>> 
>>> Here is a first attempt:
>>> 
>>> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
>>> 
>>> Please comment.
>> 
>> You write
>> 
>> "As long as your code fulfills its promises and meets each of these 
>> criteria, you can push incrementally.
>> 
>> For example, I may be working on adding an exhaustive queue library to 
>> Racket. I imagine supporting 30 different functions across 5 different queue 
>> implementations. I don't have to wait to push until all 150 function 
>> implementations are documented, tested, and stressed. I can push whenever I 
>> make progress on each of the required points."
>> 
>> Either this is contradictory, or I'm misunderstanding it.  The first 
>> paragraph suggests that the code must meet each of the criteria; the second 
>> suggests that as long as it's *closer* to meeting the required criteria, 
>> it's fine.
> 
> Maybe you can help me say it better. What I'm trying to get at is that
> 150 functions is perfect to me, but if I only promise 30 functions and
> meet the criteria for each of them, then I can commit even though it
> is not "perfect". Progress here is meeting the 4 points for each new
> function I push.

Okay, so every individual piece that's committed should meet the criteria.  I 
think that's the most sensible reading of what you wrote, but it also frightens 
me. I don't think that very much of our current code meets these criteria, and 
I'm worried that trying to enforce them is going to pull us into a sinkhole of 
no-new-functionality. I suppose that we should write down what we want before 
we figure out how to get there, though. 

As far as this piece text is concerned, I think I would replace that last 
sentence with essentially what you wrote in response:

>> For example, I may be working on adding an exhaustive queue library to 
>> Racket. I imagine supporting 30 different functions across 5 different queue 
>> implementations, for a total of 150 functions.  If I have just 30 of these 
>> documented, tested, and stressed, then it's fine for me to push.

 
John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-17 Thread Shriram Krishnamurthi
It IS a typo in the original.  Matthias, please note.

Frankly, John, I'm just not seeing what you're seeing.  Maybe I read
it too quickly, but at the speed at which I read it, it made perfect
sense to me.

Shriram

On Tue, Aug 17, 2010 at 4:22 PM, Jay McCarthy  wrote:
> It may be a typo in the source material.
>
> http://www.ccs.neu.edu/home/matthias/HtDP2e/prologue.html#(part._not)
>
> On Tue, Aug 17, 2010 at 2:21 PM, John Clements
>  wrote:
>>
>> On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:
>>
>>> We're attempting to write down coding guidelines for the project.
>>>
>>> Here is a first attempt:
>>>
>>> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
>>
>> " and that you and your readers will so in the future"
>>
>> Will so? Should that have been "will also"? Or "do so"?
>>
>> John
>>
>>
>
>
>
> --
> Jay McCarthy 
> Assistant Professor / Brigham Young University
> http://teammccarthy.org/jay
>
> "The glory of God is Intelligence" - D&C 93
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-17 Thread Jay McCarthy
On Tue, Aug 17, 2010 at 2:24 PM, John Clements
 wrote:
>
> On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:
>
>> We're attempting to write down coding guidelines for the project.
>>
>> Here is a first attempt:
>>
>> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
>>
>> Please comment.
>
> You write
>
> "As long as your code fulfills its promises and meets each of these criteria, 
> you can push incrementally.
>
> For example, I may be working on adding an exhaustive queue library to 
> Racket. I imagine supporting 30 different functions across 5 different queue 
> implementations. I don't have to wait to push until all 150 function 
> implementations are documented, tested, and stressed. I can push whenever I 
> make progress on each of the required points."
>
> Either this is contradictory, or I'm misunderstanding it.  The first 
> paragraph suggests that the code must meet each of the criteria; the second 
> suggests that as long as it's *closer* to meeting the required criteria, it's 
> fine.

Maybe you can help me say it better. What I'm trying to get at is that
150 functions is perfect to me, but if I only promise 30 functions and
meet the criteria for each of them, then I can commit even though it
is not "perfect". Progress here is meeting the 4 points for each new
function I push.

Jay



-- 
Jay McCarthy 
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-17 Thread John Clements

On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:

> We're attempting to write down coding guidelines for the project.
> 
> Here is a first attempt:
> 
> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
> 
> Please comment.

You write 

"As long as your code fulfills its promises and meets each of these criteria, 
you can push incrementally.

For example, I may be working on adding an exhaustive queue library to Racket. 
I imagine supporting 30 different functions across 5 different queue 
implementations. I don't have to wait to push until all 150 function 
implementations are documented, tested, and stressed. I can push whenever I 
make progress on each of the required points."

Either this is contradictory, or I'm misunderstanding it.  The first paragraph 
suggests that the code must meet each of the criteria; the second suggests that 
as long as it's *closer* to meeting the required criteria, it's fine.



John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-17 Thread Jay McCarthy
It may be a typo in the source material.

http://www.ccs.neu.edu/home/matthias/HtDP2e/prologue.html#(part._not)

On Tue, Aug 17, 2010 at 2:21 PM, John Clements
 wrote:
>
> On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:
>
>> We're attempting to write down coding guidelines for the project.
>>
>> Here is a first attempt:
>>
>> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
>
> " and that you and your readers will so in the future"
>
> Will so? Should that have been "will also"? Or "do so"?
>
> John
>
>



-- 
Jay McCarthy 
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] RFC: Coding Guidelines

2010-08-17 Thread John Clements

On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:

> We're attempting to write down coding guidelines for the project.
> 
> Here is a first attempt:
> 
> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html

" and that you and your readers will so in the future"

Will so? Should that have been "will also"? Or "do so"?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] RFC: Coding Guidelines

2010-08-17 Thread Jay McCarthy
We're attempting to write down coding guidelines for the project.

Here is a first attempt:

http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html

Please comment.

Jay

-- 
Jay McCarthy 
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev