[racket-dev] [plt] Push #28829: master branch updated
I suggested exactly that name in a private message to Robby.
On Jun 1, 2014, at 7:49 PM, Jay McCarthy wrote:
> Based on this commit, I feel like "assert" would be a better name than
> "invariant-assertion". I can imagine putting these on various internal
> parts of a function where the self-blame would be justified. The
> (define id (assert ctc e)) pattern is just one common use.
>
> Jay
>
> On Sat, May 31, 2014 at 1:46 PM, <matthias at racket-lang.org> wrote:
>> matthias has updated `master' from 9d94ef725e to 89dea63995.
>> http://git.racket-lang.org/plt/9d94ef725e..89dea63995
>>
>> =====[ One Commit ]=====================================================
>> Directory summary:
>> 84.2% pkgs/racket-pkgs/racket-doc/scribblings/reference/
>> 11.0% racket/collects/racket/contract/private/
>> 4.6% racket/collects/racket/contract/
>>
>> ~~~~~~~~~~
>>
>> 89dea63 Matthias Felleisen <matthias at racket-lang.org> 2014-05-31 15:45
>> :
>> | removed _contract_ language from _invariant-..._ as much as possible
>> |
>> | added a hint as to why the error message uses the inappropriate contract language
>> :
>> M racket/collects/racket/contract/private/base.rkt | 4 ++--
>> M racket/collects/racket/contract/region.rkt | 2 +-
>> M .../scribblings/reference/contracts.scrbl | 22 ++++++++++----------
>>
>> =====[ Overall Diff ]===================================================
>>
>> pkgs/racket-pkgs/racket-doc/scribblings/reference/contracts.scrbl
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> --- OLD/pkgs/racket-pkgs/racket-doc/scribblings/reference/contracts.scrbl
>> +++ NEW/pkgs/racket-pkgs/racket-doc/scribblings/reference/contracts.scrbl
>> @@ -1509,24 +1509,24 @@ The @racket[define-struct/contract] form only allows a subset of the
>> (make-salmon #f 'pacific)
>> ]}
>>
>> - at defform[(invariant-contract contract-expr expr)]{
>> - Establishes an invariant of @racket[expr], determined by @racket[contract-expr].
>> + at defform[(invariant-assertion invariant-expr expr)]{
>> + Establishes an invariant of @racket[expr], determined by @racket[invariant-expr].
>>
>> - Unlike other ways to attach contracts to values, an
>> - @racket[invariant-contract] does not establish a boundary
>> - between two parties. Instead, it simply puts the contract
>> - on the value, treating the module containing the
>> - @racket[invariant-contract] expression as the party to be blamed
>> - for any violations of the contract.
>> + Unlike the specification of a contract, an
>> + @racket[invariant-assertion] does not establish a boundary
>> + between two parties. Instead, it simply attaches a logical assertion
>> + to the value. Because the form uses contract machinery to check the
>> + assertion, the surround module is treated as the party to be blamed
>> + for any violations of the assertion.
>>
>> - This means, for example, that the contract is checked on
>> + This means, for example, that the assertion is checked on
>> recursive calls, when an invariant is used on the right-hand
>> - side of a definition.
>> + side of a definition:
>>
>> @examples[#:eval
>> furlongs->feet-eval
>> (define furlongss->feets
>> - (invariant-contract
>> + (invariant-assertion
>> (-> (listof real?) (listof real?))
>> (λ (l)
>> (cond
>>
>> racket/collects/racket/contract/private/base.rkt
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> --- OLD/racket/collects/racket/contract/private/base.rkt
>> +++ NEW/racket/collects/racket/contract/private/base.rkt
>> @@ -3,7 +3,7 @@
>> (provide contract
>> (rename-out [-recursive-contract recursive-contract])
>> current-contract-region
>> - invariant-contract)
>> + invariant-assertion)
>>
>> (require (for-syntax racket/base syntax/name syntax/srcloc)
>> racket/stxparam
>> @@ -89,7 +89,7 @@
>> (procedure-rename new-val vs-name)])]
>> [else new-val])))
>>
>> -(define-syntax (invariant-contract stx)
>> +(define-syntax (invariant-assertion stx)
>> (syntax-case stx ()
>> [(_ ctc e)
>> (quasisyntax/loc stx
>>
>> racket/collects/racket/contract/region.rkt
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> --- OLD/racket/collects/racket/contract/region.rkt
>> +++ NEW/racket/collects/racket/contract/region.rkt
>> @@ -4,7 +4,7 @@
>> define/contract
>> with-contract
>> current-contract-region
>> - invariant-contract)
>> + invariant-assertion)
>>
>> (require (for-syntax racket/base
>> racket/struct-info
>
>
>
> --
> Jay McCarthy <jay at cs.byu.edu>
> Assistant Professor / Brigham Young University
> http://faculty.cs.byu.edu/~jay
>
> "The glory of God is Intelligence" - D&C 93