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/collects/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/pkgs/net-lib/net/imap.rkt#L21-L25 https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkgs/net-lib/net/imap.rkt#L21-L25 and in the scribbling: https://github.com/plt/racket/blob/3ad009070e063614f22a32fbbffa950a8d84e599/pkgs/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, <mfl...@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 <mfl...@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 <greghendersh...@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