Jan Dvořák | 27 Sep 01:26 2014



about the <http://pkgs.racket-lang.org/> - the site is getting rather 
large. Wouldn't server-side filtering work better than the client 
javascript solution?

Plus I often have trouble submitting new packages, the form could 
easily be done in the traditional way and the experience would be much 
better. Adding a package would be an atomic operating, unlike the 
current situation where I have to fill out some fields three times 
before they register correctly.

[Firefox on Fedora 20, x86_64]

Best regards,
Jan Dvorak

  Racket Developers list:

Antti Karttunen | 26 Sep 14:44 2014

Working Cairo-bindings for Racket?

Another question:

Would it be a big job to edit the bindings in
so that it worked with the current

(require racket/draw/unsafe/cairo-lib)



I guess it's not just question of "deprecated names for Cairo functions" as mentioned in the ticket:

but also code like: (define libcairo (ffi-lib "libcairo"))

right in the beginning of .../samth/cairo.plt/1/0/cairo.ss


Antti Karttunen

  Racket Developers list:
Antti Karttunen | 25 Sep 21:32 2014

RtMidi library for Racket?

A question:

Has there been any attempts or even discussion of including Gary P. Scavone's RtMidi-library ( http://www.music.mcgill.ca/~gary/rtmidi/ ) into the standard distribution of Racket?

This is the furthest I could follow this trail:
but there doesn't seem to be a Windows-port, which I would need.

Or does anybody have ideas for any shortcut kludge with which I could pipe MIDI-data from Racket to Windows Software Synthesizer / MIDIMapper device? I guess it's not available as a named system file in Windows, which I could just open and start writing to?

I don't need this to have "real-time accuracy required by professional musicians", but just enough for demoing how to produce sounds with a moderate tempo, in general educational setting.



  Racket Developers list:
Roman Klochkov | 20 Sep 22:28 2014

Typo in racket reference


proc : ([port input-port?] [tmp-path path?]  -> . any)

Should be

proc : ([port output-port?] [tmp-path path?]  -> . any)

because in code it got result of open-output-dile 

Roman Klochkov
  Racket Developers list:
Antonio Menezes Leitao | 17 Sep 18:31 2014

Problem with planet and Windows shortcuts


Recent versions of Racket for Windows (at least, starting from cannot install packages from planet when Racket's AppData/Roaming/ folder is a shortcut. I'm sure Racket could do it in previous versions.

The output I get is:

..\..\Program Files\Racket-\collects\racket\path.rkt:66:14: normalize-path: element within the input path is not a directory or does not exist
  element: C:\Users\aml\AppData\Roaming\Racket

Here are some additional tests:

> (directory-exists? "C:\\Users\\aml\\AppData\\Roaming\\Racket")
> (file-exists? "C:\\Users\\aml\\AppData\\Roaming\\Racket")
> (link-exists? "C:\\Users\\aml\\AppData\\Roaming\\Racket")

The reason why I use a shortcut is simply because I use several different machines which synchronize that folder using Dropbox.

Is there a workaround (besides making C:\Users\aml\AppData\Roaming\Racket a regular folder)?


  Racket Developers list:
Stephen Chang | 16 Sep 02:37 2014

Re: [plt] Push #29228: master branch updated

My Drracket is crashing with the steps and error msg below. Does this
commit fix what I'm seeing?

Steps to reproduce:
1) start drracket 6.1 windows 32 bit
2) select BSL
3) add "(require rackunit)" and run
4) switch to "determine language from source"
5) switch back to BSL

skip-whitespace: called on a color:text<%> whose colorer is stopped.
   C:\Program Files
skip-whitespace method in ...rk/private/color.rkt:77:2
   C:\Program Files
   C:\Program Files
highlight-nested-region method in ...rk/private/color.rkt:77:2
   C:\Program Files
   C:\Program Files
after-edit-sequence method in ...rk/private/color.rkt:77:2
   C:\Program Files
end-edit-sequence method in text%
   set-surrogate method
   C:\Program Files
set-current-mode method in .../module-language.rkt:2627:4
   C:\Program Files
after-set-next-settings method in .../module-language.rkt:2627:4
   C:\Program Files
command method in basic-selectable-menu-item%
   C:\Program Files
(x86)\Racket\share\pkgs\gui-lib\mred\private\mrpopup.rkt:49:38: go
   C:\Program Files
   C:\Program Files
   C:\Program Files

On Sun, Sep 7, 2014 at 4:35 PM,  <robby@...> wrote:
> robby has updated `master' from df3c56fae2 to bc83e9b778.
>   http://git.racket-lang.org/plt/df3c56fae2..bc83e9b778
> =====[ 2 Commits ]======================================================
> Directory summary:
>   14.5% pkgs/drracket-pkgs/drracket/drracket/private/
>   79.5% pkgs/gui-pkgs/gui-lib/framework/private/
>    5.8% pkgs/gui-pkgs/gui-test/framework/tests/
> ~~~~~~~~~~
> f4d66ad Robby Findler <robby@...> 2014-09-07 15:34
> :
> | fix magic-open-paren bug
> |
> | also, replace some eq?s with equal?s.
> :
>   M pkgs/gui-pkgs/gui-lib/framework/private/racket.rkt | 11 ++++++-----
>   M pkgs/gui-pkgs/gui-test/framework/tests/racket.rkt  |  1 +
> ~~~~~~~~~~
> bc83e9b Robby Findler <robby@...> 2014-09-05 08:28
> :
> | Open Require Path: ignore .bak files under windows, but ~ files elsewhere
> |
> | instead of ignoring ~ files everywhere
> :
>   M .../drracket/drracket/private/find-completions.rkt           | 4 +++-
> =====[ Overall Diff ]===================================================
> pkgs/drracket-pkgs/drracket/drracket/private/find-completions.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/drracket-pkgs/drracket/drracket/private/find-completions.rkt
> +++ NEW/pkgs/drracket-pkgs/drracket/drracket/private/find-completions.rkt
>  <at>  <at>  -24,7 +24,9  <at>  <at> 
>  (define (ignore? x)
>    (or (member x '("compiled"))
> -      (regexp-match #rx"~$" x)))
> +      (if (equal? (system-type) 'windows)
> +          (regexp-match #rx"[.]bak$" x)
> +          (regexp-match #rx"~$" x))))
>  (define (find-completions str the-current-directory #:alternate-racket [alternate-racket #f])
>    (cond
> pkgs/gui-pkgs/gui-lib/framework/private/racket.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/gui-pkgs/gui-lib/framework/private/racket.rkt
> +++ NEW/pkgs/gui-pkgs/gui-lib/framework/private/racket.rkt
>  <at>  <at>  -1787,7 +1787,7  <at>  <at> 
>      (if (and (send text get-overwrite-mode) (= start-pos end-pos))
>          (send text insert "[" start-pos (add1 start-pos) #f)
>          (send text insert "[" start-pos 'same #f))
> -    (when (eq? (send text classify-position pos) 'parenthesis)
> +    (when (equal? (send text classify-position pos) 'parenthesis)
>        (let* ([before-whitespace-pos (send text skip-whitespace pos 'backward #t)]
>               [keyword/distance (find-keyword-and-distance before-whitespace-pos text)])
>          (cond
>  <at>  <at>  -1852,9 +1852,10  <at>  <at> 
>                                                                  0)])
>                              (cond
>                                [(and second-backwards-match2
> -                                    (eq? (send text classify-position second-backwards-match)
> -                                         ;;; otherwise, this isn't a `let loop', it is a regular let!
> -                                         'symbol)
> +                                    (member (send text classify-position second-backwards-match)
> +                                            ;;; otherwise, this isn't a `let loop',
> +                                            ;;; it is a regular let
> +                                            '(symbol keyword))
>                                      (member "let" letrec-like-forms)
>                                      (text-between-equal? "let"
>                                                           text
>  <at>  <at>  -1875,7 +1876,7  <at>  <at> 
>        [(and (preferences:get 'framework:automatic-parens)
>              (not (in-string/comment? text)))
>         (send text insert real-char start-pos start-pos)
> -       (when (eq? (send text classify-position start-pos) 'parenthesis)
> +       (when (equal? (send text classify-position start-pos) 'parenthesis)
>           (send text insert (case real-char
>                             [(#\() #\)]
>                             [(#\[) #\]]
> pkgs/gui-pkgs/gui-test/framework/tests/racket.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/gui-pkgs/gui-test/framework/tests/racket.rkt
> +++ NEW/pkgs/gui-pkgs/gui-test/framework/tests/racket.rkt
>  <at>  <at>  -81,6 +81,7  <at>  <at> 
>  (test-magic-square-bracket 'let2 "(let (" "(let ([")
>  (test-magic-square-bracket 'let3 "(let loop " "(let loop (")
>  (test-magic-square-bracket 'let3 "(let loop (" "(let loop ([")
> +(test-magic-square-bracket 'let4 "(let rec (" "(let rec ([")
>  (test-magic-square-bracket 'cond1 "(cond " "(cond [")
>  (test-magic-square-bracket 'cond2 "(cond [" "(cond [(")
>  (test-magic-square-bracket 'with-syntax1 "(syntax-case x " "(syntax-case x (")
  Racket Developers list:

Jay McCarthy | 9 Sep 15:59 2014

Package build information

http://pkgs.racket-lang.org now integrates the information from

For package users, the most prominent change is that it is now easy to
read the documentation for packages online.

For package authors, you can use the new information to find out if
there are any problems with your packages:

* Packages without documentation:


* Packages that cannot be installed:


* Packages that need to specify more dependencies:


* Packages with no description


* Packages without tags


I will be adding a UI element to summarize what you need to do with
your packages.



Jay McCarthy

           "Wherefore, be not weary in well-doing,
      for ye are laying the foundation of a great work.
And out of small things proceedeth that which is great."
                          - D&C 64:33
  Racket Developers list:

Asumu Takikawa | 8 Sep 20:39 2014

Racket build crashes on CGC mode

Hi all,

I've found a reproducible crash while building Racket using the CGC mode
on my Linux machine:

  $ ../configure --enable-cgcdefault --enable-sgc
  $ make && make install

  [... output ...]

  raco setup: 2 making: <collects>/file
  While receiving message from parallel-do worker 0 UNKNOWN::98: read:
  bad syntax `#<'
  Makefile:178: recipe for target 'install-cgc' failed
  make[1]: *** [install-cgc] Error 1
  make[1]: Leaving directory
  Makefile:86: recipe for target 'install' failed
  make: *** [install] Error 2
  $ WORKER SEND MESSAGE ERROR: error writing to stream port
    system error: Broken pipe; errno=32
  WORKER SEND MESSAGE ERROR: error writing to stream port
    system error: Broken pipe; errno=32
  WORKER SEND MESSAGE ERROR: error writing to stream port
    system error: Broken pipe; errno=32
  WORKER SEND MESSAGE ERROR: error writing to stream port
    system error: Broken pipe; errno=32

(I don't actually need to use CGC, but I was just curious to see what
 would happen)

  Racket Developers list:

Kevin Forchione | 7 Sep 00:22 2014

DrRacket Parenthesis bug

Hi guys,
I’ve noticed that the named let form parenthesis behavior is different when the name is “rec”. In
that case the inner parenthesis isn’t square brackets. For instance:

	(let rec (()))

instead of (let rec ([])).

  Racket Developers list:

Matthew Flatt | 5 Sep 22:41 2014

Re: GNU lightning version

At Wed, 03 Sep 2014 13:07:05 +0400, Yaroslav Tsarko wrote:
> are there any 
> reasons why Racket currently uses very old
> version of GNU Lightning? According to sources, Racket 6.1 uses GNU 
> Lightning version 1.2 which originates from 2004
> [...]
> Is it manpower problems (there is nobody who can upgrade this component 
> in Racket), technical ones or something else?

There are a few technical issues, any of which might be addressed by
contributing back to Lighting, but mostly it's a question of manpower.

We've modified GNU Lighting in various ways. Some of those ways turned
out to be uninteresting, and we'd do just as well to re-sync with the
latest Lighting. Other changes involved the conventions for register
and stack usage, where where re-syncing might be more difficult, and
Racket depends on some implementation details instead of treating
Lighting as a black box. Some changes should have been wrappers around
GNU Lighting, in retrospect, so re-syncing would be good, but it's a
lot of work.

I don't know GNU Lightning's current stance on jump distances on
various platforms, but for Racket, we adapted it to handle a mixture of
short jumps (faster when the JIT knows that it will work), long jumps
(otherwise), and very long jumps (on x86-64 when the memory allocated
for code becomes further apart than fit in 32-bit values). Adding the
jump-distance generalizations to 2.0 would take some work, and it's
messy enough that I'm not sure the Lighting maintainers would be happy
to take it.

One other change might be tricky: the x86 build uses both SSE and x87
instructions to support a mixture of flonums and extflonums, and
Lighting originally worked with only one or the other --- but that
might have changed.

> and current version of 
> GNU Lightning is 2.0 which supports many new back-ends, particularly MIPS.

I back-ported ARM support from and almost-2.0 version of Lighting, and
that process was relatively easy. I had to know about and adapt
Racket's assumptions about Lightning, though.

  Racket Developers list:

Matthias Felleisen | 5 Sep 16:16 2014

Re: How to translate DrRacket GUI to another (human) language?

A word of caution about *SL error messages. These messages are synthesized from fragments of sentences and
then a global rewriter re-arranges them to improve their meaning based on work done by Guillaume Marceau,
Kathi Fisler and Shriram (see SIGCSE 2010). The rewriter catches English phrases at the moment; you might
be best off checking it out first. 

Sorry -- one day we'll get this aspect right -- Matthias

  Racket Developers list: