[racket-dev] [plt] Push #26693: master branch updated

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Sep 17 08:29:40 EDT 2013

I think the problem is the way that the release and development version
numbers got out of sync for a while. Version 5.3.6 is derived fairly
directly from v5.3.4 (and v5.3.5) by adding only a small set of bug-fix
patches. Version 5.3.6 has almost nothing that was added in the
v5.3.4.x development series.

The change should certainly have been in any 5.3.900.x or 5.90.x
development version, though, so I can't explain how you got an error
there.

FWIW, for an individual file in a repo clone, you can follow history
through the split by using `git log --follow`. But there's no way to do
that in the GitHub web interface, as far as I know.

At Mon, 16 Sep 2013 17:07:04 -0400, Greg Hendershott wrote:
> After I saw this, I closed the open pull request over on GitHub:
> 
> https://github.com/plt/racket/pull/324
> 
> BTW here is the commit over on GitHub:
> 
> https://github.com/plt/racket/commit/c6e28435578b6b8607d4c767ee956f88c8388ff0
> 
> I fetched from HEAD at the time, verison 5.3.4.7.  I've been using it
> on that server ever since.
> 
> Today I wanted to move my app to a new server, which has 5.3.6
> official. I was really confused that I got an error because
> imap-append has only 3 args not 4. My PR added the 4th, optional arg.
> 
> Did this not get merged into release, after all??
> 
> Maybe I'm doing something really dumb, but...?
> 
> 
> p.s. I do see my changes as the last commit in collect/net/imap.rkt
> 
> https://github.com/plt/racket/commits/c6e28435578b6b8607d4c767ee956f88c8388ff0/
> collects/net/imap.rkt
> 
> and the scribbling collects/net/scribblings/imap.scrbl
> 
> https://github.com/plt/racket/blob/c6e28435578b6b8607d4c767ee956f88c8388ff0/col
> lects/net/scribblings/imap.scrbl
> 
> This should have been in 5.3.5, as well as 5.3.6. But it doesn't seem
> to be in either (I just tried both).
> 
> 
> p.p.s. Post package split, I'm not sure how to follow the history. But
> searching for "imap-append":
> 
> https://github.com/plt/racket/search?q=imap-append&source=c
> 
> I do see my changes in pkgs/net-lib/net/imap.rkt
> 
> https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkg
> s/net-lib/net/imap.rkt#L21-L25
> https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkg
> s/net-lib/net/imap.rkt#L21-L25
> 
> and in the scribbling:
> 
> https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkg
> s/net-lib/net/imap.rkt#L21-L25
> 
> But I get a similar error running 5.900.
> 
> 
> On Tue, Apr 23, 2013 at 5:50 PM,  <mflatt at racket-lang.org> wrote:
> > mflatt has updated `master' from 8c7632c025 to c6e2843557.
> >   http://git.racket-lang.org/plt/8c7632c025..c6e2843557
> >
> > =====[ 2 Commits ]======================================================
> > Directory summary:
> >   19.8% collects/net/scribblings/
> >   49.1% collects/net/
> >    9.1% collects/racket/private/
> >   21.8% src/racket/src/
> >
> > ~~~~~~~~~~
> >
> > 3779cf6 Matthew Flatt <mflatt at racket-lang.org> 2013-04-23 15:06
> > :
> > | fix `exn:fail:filesystem:missing-module-path'
> > :
> >   M collects/racket/private/kernstruct.rkt | 2 +-
> >   M src/racket/src/makeexn                 | 2 +-
> >   M src/racket/src/schexn.h                | 2 +-
> >   M src/racket/src/schvers.h               | 4 ++--
> >
> > ~~~~~~~~~~
> >
> > c6e2843 Greg Hendershott <greghendershott at gmail.com> 2013-04-23 13:50
> > :
> > | Add optional message flags argument to imap-append.
> > |
> > | Previously this was hard-coded to use the \Seen flag. Now that's the
> > | default value when the argument is not supplied.
> > :
> >   M collects/net/imap.rkt               | 20 +++++++++++++-------
> >   M collects/net/scribblings/imap.scrbl |  5 ++++-
> >
> > =====[ Overall Diff ]===================================================
> >
> > collects/net/imap.rkt
> > ~~~~~~~~~~~~~~~~~~~~~
> > --- OLD/collects/net/imap.rkt
> > +++ NEW/collects/net/imap.rkt
> > @@ -1,8 +1,9 @@
> >  #lang racket/base
> >
> > -(require racket/contract/base
> > -         racket/tcp
> > -         openssl
> > +(require racket/contract/base
> > +         racket/tcp
> > +         openssl
> > +         racket/format
> >           "private/rbtree.rkt")
> >
> >  ;; define the imap struct and its predicate here, for use in the contract, 
> below
> > @@ -16,7 +17,12 @@
> >   [imap-list-child-mailboxes
> >    (->* (imap-connection? (or/c string? bytes? #f))
> >         ((or/c string? bytes?))
> > -       (listof (list/c (listof symbol?) bytes?)))])
> > +       (listof (list/c (listof symbol?) bytes?)))]
> > + [imap-append ((imap? string? (or/c string? bytes?))
> > +               ((listof
> > +                 (or/c 'seen 'answered 'flagged 'deleted 'draft 'recent)))
> > +              . ->* .
> > +              void?)])
> >
> >  (provide
> >   imap-connection?
> > @@ -45,7 +51,7 @@
> >   imap-pending-updates?
> >
> >   imap-get-messages
> > - imap-copy imap-append
> > + imap-copy
> >   imap-store imap-flag->symbol symbol->imap-flag
> >   imap-expunge
> >
> > @@ -539,13 +545,13 @@
> >    (check-ok
> >     (imap-send imap (list "COPY" (box (msg-set msgs)) dest-mailbox) void)))
> >
> > -(define (imap-append imap dest-mailbox msg)
> > +(define (imap-append imap dest-mailbox msg [flags '(seen)])
> >    (no-expunges 'imap-append imap)
> >    (let ([msg (if (bytes? msg) msg (string->bytes/utf-8 msg))])
> >      (check-ok
> >       (imap-send imap (list "APPEND"
> >                             dest-mailbox
> > -                           (box "(\\Seen)")
> > +                           (box (~a (map symbol->imap-flag flags)))
> >                             (box (format "{~a}" (bytes-length msg))))
> >                  void
> >                  (lambda (loop contin)
> >
> > collects/net/scribblings/imap.scrbl
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > --- OLD/collects/net/scribblings/imap.scrbl
> > +++ NEW/collects/net/scribblings/imap.scrbl
> > @@ -416,7 +416,10 @@ Pending expunges must be handled before calling this 
> function; see
> >
> >  @defproc[(imap-append [imap imap-connection?]
> >                        [mailbox string?]
> > -                      [message (or/c string? bytes?)])
> > +                      [message (or/c string? bytes?)]
> > +                      [flags (listof (or/c 'seen 'answered 'flagged
> > +                                           'deleted 'draft 'recent))
> > +                             '(seen)])
> >           void?]{
> >
> >  Adds a new message (containing @racket[message]) to the given
> >
> > collects/racket/private/kernstruct.rkt
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > --- OLD/collects/racket/private/kernstruct.rkt
> > +++ NEW/collects/racket/private/kernstruct.rkt
> > @@ -376,7 +376,7 @@
> >            (quote-syntax make-exn:fail:filesystem:missing-module)
> >            (quote-syntax exn:fail:filesystem:missing-module?)
> >            (list
> > -           (quote-syntax exn:fail:filesystem:missing-module--path)
> > +           (quote-syntax exn:fail:filesystem:missing-module-path)
> >             (quote-syntax exn-continuation-marks)
> >             (quote-syntax exn-message))
> >            '(#f #f #f)
> >
> > src/racket/src/makeexn
> > ~~~~~~~~~~~~~~~~~~~~~~
> > --- OLD/src/racket/src/makeexn
> > +++ NEW/src/racket/src/makeexn
> > @@ -66,7 +66,7 @@ propeties (the latter in curly braces), strings are 
> contracts/comments.
> >                                 (errno "pair of symbol and number" "system 
> error code")]
> >                                "error with system error code")
> >                         (missing-module [module_path_field_check_2
> > -                                        (-path "module path" "module path")
> > +                                        (path "module path" "module path")
> >                                          {exn:module-path 
> scheme_module_path_property |scheme_make_prim(extract_module_path_2)|}]
> >                                         "error resolving a module path"))
> >             (network [] "TCP and UDP errors"
> >
> > src/racket/src/schexn.h
> > ~~~~~~~~~~~~~~~~~~~~~~~
> > --- OLD/src/racket/src/schexn.h
> > +++ NEW/src/racket/src/schexn.h
> > @@ -115,7 +115,7 @@ static exn_rec *exn_table;
> >    static const char *MZEXN_FAIL_SYNTAX_MISSING_MODULE_FIELDS[1] = { "path" 
> };
> >    static const char *MZEXN_FAIL_READ_FIELDS[1] = { "srclocs" };
> >    static const char *MZEXN_FAIL_FILESYSTEM_ERRNO_FIELDS[1] = { "errno" };
> > -  static const char *MZEXN_FAIL_FILESYSTEM_MISSING_MODULE_FIELDS[1] = { 
> "-path" };
> > +  static const char *MZEXN_FAIL_FILESYSTEM_MISSING_MODULE_FIELDS[1] = { 
> "path" };
> >    static const char *MZEXN_FAIL_NETWORK_ERRNO_FIELDS[1] = { "errno" };
> >    static const char *MZEXN_BREAK_FIELDS[1] = { "continuation" };
> >  #endif
> >
> > src/racket/src/schvers.h
> > ~~~~~~~~~~~~~~~~~~~~~~~~
> > --- OLD/src/racket/src/schvers.h
> > +++ NEW/src/racket/src/schvers.h
> > @@ -13,12 +13,12 @@
> >     consistently.)
> >  */
> >
> > -#define MZSCHEME_VERSION "5.3.4.4"
> > +#define MZSCHEME_VERSION "5.3.4.5"
> >
> >  #define MZSCHEME_VERSION_X 5
> >  #define MZSCHEME_VERSION_Y 3
> >  #define MZSCHEME_VERSION_Z 4
> > -#define MZSCHEME_VERSION_W 4
> > +#define MZSCHEME_VERSION_W 5
> >
> >  #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + 
> MZSCHEME_VERSION_Y)
> >  #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + 
> MZSCHEME_VERSION_W)
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.