[plt-dev] lessons learned
Today's chase for the source of
define-compound-unit/infer: untagged initialization dependent
signature mred^ is supplied from a later unit with link temp4
cost me an hour of my time when a few seconds of common sense would
have sufficed. I don't have such hours to waste.
;; ---
LESSON 1: When I gave the POPL keynote a few years ago about our
project, every single part of the talk had a single lesson:
**************************
* ERROR MESSAGES MATTER. *
**************************
I just can't see how the above error message would point anyone to
this specification
> (define-values/invoke-unit/infer
> (export graphics^)
> (link standard-mred@ graphics-posn-less@))
on line 15 of big-draw.ss. The name of the construct is different
from that in the error message. And the message itself is gobbldedygook.
;; ---
LESSON 2: People recently (27 Mar 2009) changed (see svn log, svn
blame) these lines, and didn't even both to run the file as they did.
*********************************
* WHEN YOU EDIT A FILE, RUN IT. *
*********************************
It takes a cmd-t or a click-run and it evaluates in 3 seconds. Doing
so would have revealed the bug. 3 SECONDS, 1 HOUR.
;; ---
LESSON 3: When you do synthesize such language constructs, put the
effort in to get them right. A simple topological sort would probably
avoid all this nonsense.
;; ---
Guys, this shop is not the federal government. We can't afford this
sloppiness -- Matthias