Re: Canvas line style comments

On Sat, 21 Jun 2008, Philip Taylor wrote:
> > 
> > It is intended to be a consequence of the lack of any capping. I've 
> > clarified this, but I haven't added a must -- I don't know what the 
> > must would be. Is line rendering really not testable?
> 
> If I understand my thought processes correctly: I interpret the word 
> "must" as a marker meaning "this sentence(/paragraph/etc) describes a 
> behaviour to write a test for". I want the spec to tell me to write a 
> test for lineCap='butt', so it should say "must" in a sentence that 
> describes the butt behaviour.
> 
> Currently the only "must" ("The stroke() method must calculate the 
> strokes of all the subpaths of the current path, using the lineWidth, 
> lineCap, lineJoin, etc etc") is three pages away. If that kind of 
> indirect transitive mustiness was acceptable, the spec could just say 
> "the canvas element must be implemented as follows: [20 pages without 
> saying 'must' again]", which would defeat the point of there being the 
> "must" keyword, so clearly that's a bad idea, and I can't think of any 
> better ideas, so I prefer the interpretation where "must" simply means 
> "write a test here".
> 
> (Fortunately the spec pretty much works that way already, and 
> lineCap=butt is one of the few cases where it doesn't quite work, so I 
> assume my viewpoint is not too radical :-) )
> 
> So I don't care about adding "must" in a way that makes a difference 
> according to the rules of English and of logic - I just want it to exist 
> as a marker in approximately the right location. If it said something 
> like "The butt value means that the end of each line must have a flat 
> edge perpendicular to the direction of the line", that would satisfy me.

I think if you are using "must" as a way to find requirements, you will 
find most requirements, but will miss some of the most interesting ones, 
which are the ones that fall out of the combinations of the others, and 
the ones that are the lack of any other behaviour.

lineCap = 'butt' literally means "don't render a line cap", so I don't see 
what we can require the UAs to _do_, specifically, we are requiring them 
not to do anything extra.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Tuesday, 5 August 2008 10:21:42 UTC