[#7043] RUBYOPT versioning? — Caleb Tennis <caleb@...>
Matz, others:
[#7050] RDoc patches for BigDecimal in Ruby CVS — mathew <meta@...>
Now that 1.8.4 is out and the initial flurry of problem reports has died
[#7055] More on VC++ 2005 — Austin Ziegler <halostatue@...>
Okay. I've got Ruby compiling. I'm attempting to get everything in
Hi,
On 05/01/06, nobuyoshi nakada <[email protected]> wrote:
On 06/01/06, Austin Ziegler <[email protected]> wrote:
Hi,
On 09/01/06, nobuyoshi nakada <[email protected]> wrote:
[#7057] 64-bit Solaris READ_DATA_PENDING Revisited — Steven Lumos <steven@...>
[#7078] CRC - a proof-of-concept Ruby compiler — Anders Hkersten <chucky@...>
Hello everyone,
[#7084] mathn: ugly warnings — hadmut@... (Hadmut Danisch)
Hi,
Hadmut Danisch wrote:
Daniel Berger wrote:
*Dean Wampler *<deanwampler gmail.com> writes:
On Fri, 13 Jan 2006, mathew wrote:
On Fri, 13 Jan 2006, Mathieu Bouchard wrote:
[email protected] wrote:
On Fri, 13 Jan 2006, James Britt wrote:
Dean Wampler <deanwampler gmail.com> writes:
On Sat, 14 Jan 2006, mathew wrote:
[#7100] core dump with ruby 1.9.0 (2006-01-10) and bdb-0.5.8 — Tanaka Akira <[email protected]>
I found following test script dumps core.
>>>>> "T" == Tanaka Akira <[email protected]> writes:
[#7109] Calling flock with block? — Bertram Scharpf <lists@...>
Hi,
On Thu, 12 Jan 2006, Bertram Scharpf wrote:
[#7129] YAML.load({[]=>""}.to_yaml) — Tanaka Akira <[email protected]>
I found that current YAML doesn't round trip {[]=>""}.
Hi.
Hi.
In article <[email protected]>,
[#7162] FileUtils.mv does not unlink source file when moving over filesystem boundary — Pav Lucistnik <pav@...>
Hi,
On Mon, 16 Jan 2006, Pav Lucistnik wrote:
[#7178] Add XHTML 1.0 Output Support to Ruby CGI — Paul Duncan <pabs@...>
The attached patch against Ruby 1.8.4 adds XHTML 1.0 output support to
[#7186] Ruby 1.9 and FHS — "Kirill A. Shutemov" <k.shutemov@...>
Build and install system changes:
[#7195] trouble due ruby redefining posix function eaccess — noreply@...
Bugs item #3317, was opened at 2006-01-24 15:33
[#7197] SSL-enabled DRb fds on SSLError? — ctm@... (Clifford T. Matthews)
Howdy,
On Jan 24, 2006, at 12:46 PM, Clifford T. Matthews wrote:
Patch worked fine against HEAD.
[#7211] Some troubles with an embedded ruby interpreter — Matt Mower <matt.mower@...>
Hi folks,
[#7216] String#scan loops forefever if scanned string is modified inside block. — noreply@...
Bugs item #3329, was opened at 2006-01-26 10:55
[#7226] Fwd: Re: Question about massive API changes — "Sean E. Russell" <ser@...>
Hello,
Sean E. Russell wrote:
>
On 1/28/06, Caleb Tennis <[email protected]> wrote:
On Saturday 28 January 2006 17:13, Wilson Bilkovich wrote:
Sean E. Russell wrote:
[#7249] PATCH: append option to sysread — Yohanes Santoso <ysantoso-rubycore@...>
[#7259] TCP/UDP server weird lags on 1.8.4 linux — "Bill Kelly" <billk@...>
Hi !
Re: Design contracts and refactoring (was Re: mathn: ugly warnings)
On Fri, 13 Jan 2006, mathew wrote:
> For example, consider a simple vector addition routine in a 3D library.
> The unit tests might test its behavior with Float and Integer vectors,
> since that's why it was written.
Here's another way to factor unit-tests that I haven't mentioned in the
last mail.
suppose you test for + using:
class IntegerTest
def test; 2+2==4 or raise; end
end
class FloatTest
def test; 2.0+2.0==4.0 or raise; end
end
class RationalTest
def test; Rational(2,1)+Rational(2,1)==Rational(4,1) or raise; end
end
you can refactor those tests like this:
class NumericTest
def initialize nt; @nt; end
def make x; raise "abstract class" end
def test; make(2)+make(2)==make(4) or raise; end
end
class IntegerTest; def make x; Integer(x) end end
class FloatTest; def make x; Float(x) end end
class RationalTest; def make x; Rational(x,1) end end
> However, to do that you need to know whether the feature of supporting
> (say) Complex vectors or BigDecimal vectors is intended or not. The unit
> tests won't tell you this.
I once called unit-tests "test-by-example" and contracts "test-by-rule". I
think that those names are preferable to the more common names. I also had
listed "test-by-use" which is to use the software in practice: this may
include testing a component A using the unit tests for B because B uses A.
The last I had listed was "test-by-proof", which is rarer and is the only
one that requires analysing the implementation.
> > One limitation of documentation is that it has no enforcement power,
> > so you have to write tests anyway to test conformance.
> Unit tests have no enforcement power either, because you can just change the
> test. Indeed, I've already had to do this once when it turned out that the
> unit test was wrong. (In net/ftp.)
That was a pretty bad case of strawman argument. Dean was assuming that
your documentation was not executable when you had quite clearly stated
that it was the contracts that acted as documentation!
I've thought of a triad:
A. "the real thing"
B. what it's documented as
C. a way to verify that (1) and (2) agree
and another one:
changing A to match B+C:
programming
changing B to match A+C:
the scientific method (aka reverse engineering)
changing C to match A+B:
unit-tests and contracts and scientific experiments
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - t駘:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montr饌l QC Canada