Saurabh T | 31 Oct 01:42 2014

Errors compiling on cygwin


I downloaded racket-6.1-src-builtpkgs.tgz. According to src/README, this 
should be compilable on cygwin with --enable-shared. I did not have 
success doing so.

The first problem was dynsrc/mzdyn.c failed to 
compile due to "expected specifier-qualifier-list before ‘(’ token" 
error at schemex.h:1004. The line here reads
(*scheme_jit_find_code_end)(void *p);
I grepped some and stuck a void* in front of it, and compilation went ahead.

But then it failed with "'WINDOWS_DEFAULT_STACK_SIZE' undeclared (first use in this function)" at eval.c:546

 am at a loss at this point. Is racket not expected to compile on 
cygwin? If so, can someone remove the cygwin parts in src/README?

Thank you. 		 	   		  
  Racket Developers list:
Byron Davies | 29 Oct 23:55 2014

Pretty-printing properties in syntax browser

I’m putting large s-expressions as properties on syntax objects.  When I display them in the right pane of
the syntax browser, they go way off the side of the pane.  I’d like to be able to pretty-print the values of properties.

I can’t figure out how to insert pretty-print into the property display routine.  Any ideas?


  Racket Developers list:
Stephen Chang | 29 Oct 21:40 2014

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

Reviewing the git logs, it looks like I made a mistake (according to
commit b192620b0d1c26773167c6afa14ceb6303588591), and that it's
actually the docs that are wrong. Sorry. Fixing it now.

On Wed, Oct 29, 2014 at 4:33 PM,  <stchang@...> wrote:
> stchang has updated `master' from 3d2fdbc8cf to 40422d35d3.
> =====[ One Commit ]=====================================================
> Directory summary:
>   93.4% pkgs/racket-pkgs/racket-test/tests/racket/
>    6.5% racket/collects/racket/
> ~~~~~~~~~~
> 40422d3 Stephen Chang <stchang@...> 2014-10-29 16:31
> :
> | change set/c default #:kind to dont-care, to match docs
> |
> | - add set/c tests
> :
>   M racket/collects/racket/set.rkt                    |  2 +-
>   M .../racket-pkgs/racket-test/tests/racket/set.rktl | 29 ++++++++++++++++++++
> =====[ Overall Diff ]===================================================
> pkgs/racket-pkgs/racket-test/tests/racket/set.rktl
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/racket-pkgs/racket-test/tests/racket/set.rktl
> +++ NEW/pkgs/racket-pkgs/racket-test/tests/racket/set.rktl
(Continue reading)

Ryan Culpepper | 29 Oct 20:30 2014

Release Announcement for v6.1.1, Second Draft

The release announcement sketch that I have so far is below.  Please
mail me new items and/or edits.

Racket version 6.1.1 is now available from

* Mac OS X Yosemite: fixed compatibility problems, mainly by patching
   the Pango text-drawing library that is bundled with Racket.

* Windows, 32-bit version: fixed window-update crashes by patching
   the Cairo drawing library that is bundled with Racket.

* Windows: made the GUI library DPI-aware.

* Added a "binary library" installation mode to install packages
   without source or documentation. Use the `--binary-lib` option
   with `raco pkg install`.

* Repaired the compiler's use-before-defined analysis for certain
   forms of nested `letrec`, some `let` forms, and some uses of
   `set!` or `with-continuation-mark`.

* Added bytecode optimizations (thanks to Gustavo Massaccesi).

* Added a `replace-evt` event constructor (as suggested by Jan Dvořák).

* Added the drracket/check-syntax library to facilitate check
   syntax-like behavior in other IDEs.
(Continue reading)

Asumu Takikawa | 29 Oct 01:25 2014

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

On 2014-10-28 17:58:49 -0400, asumu@... wrote:
> 64bc7d4 Asumu Takikawa <asumu@...> 2014-10-28 17:41
> :
> | Send thunks to check-syntax for type tooltips
> |
> | This avoids the cost of computing the printed types
> | to some degree. It still does have overhead (~5%) over
> | not computing anything related to tooltips because of
> | the cost of traversing the type table and computing
> | tooltip locations.

Actually I may have mismeasured this and I think the overhead may be
lower or non-significant. I'll just wait for DrDr to run on a few pushes
and see how the test graphs look.

  Racket Developers list:

Matthias Felleisen | 28 Oct 18:37 2014

unstable contract lib

Just re-built HEAD on my desktop and got a load of missing dependency declarations -- unstable-contract-lib. What happened? -- Matthias


> raco setup: --- checking package dependencies ---
> raco setup: found undeclared dependency:
> raco setup:   mode: run
> raco setup:   for package: "future-visualizer-typed"
> raco setup:   on package: "unstable-contract-lib"
> raco setup:   dependent source: /Users/matthias/plt/pkgs/future-visualizer-pkgs/future-visualizer-typed/future-visualizer/compiled/typed_rkt.zo
> raco setup:   used module: (lib "unstable/contract.rkt")
> raco setup: found undeclared dependency:
> raco setup:   mode: run
> raco setup:   for package: "images-lib"
> raco setup:   on package: "unstable-contract-lib"
> raco setup:   dependent source: /Users/matthias/plt/pkgs/images-pkgs/images-lib/images/compiled/flomap_rkt.zo
> raco setup:   used module: (lib "unstable/contract.rkt")
> raco setup: found undeclared dependency:
> raco setup:   mode: run
> raco setup:   for package: "images-lib"
> raco setup:   on package: "unstable-contract-lib"
> raco setup:   dependent source: /Users/matthias/plt/pkgs/images-pkgs/images-lib/images/private/compiled/deep-flomap-parameters_rkt.zo
> raco setup:   used module: (lib "unstable/contract.rkt")
> raco setup: found undeclared dependency:
> raco setup:   mode: run
> raco setup:   for package: "images-lib"
> raco setup:   on package: "unstable-contract-lib"
> raco setup:   dependent source: /Users/matthias/plt/pkgs/images-pkgs/images-lib/images/private/compiled/deep-flomap-render_rkt.zo
> raco setup:   used module: (lib "unstable/contract.rkt")
(Continue reading)

Asumu Takikawa | 28 Oct 17:26 2014

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

On 2014-10-28 12:05:12 -0400, samth@... wrote:
> | Avoid requires of contracts when they're not used.
> |
> | This changes when various libraries that provide contract
> | support to possible contracted bindings to declare when
> | those bindings are needed.

Is there some unit test we can write that will check to make sure these
requires are not included when they're not used?

(I ask because there are some refactorings of contract generation I'd
 like to merge eventually and I don't want to break the improvement
 you've made here)

  Racket Developers list:

Eric Dobson | 28 Oct 16:45 2014

Understanding the performance of raco make

I'm trying to improve the compilation speed of some modules, and to do that I need to understand how raco make is spending its time.

I decided to call parallel-compile-files myself with a handler that gets the time of start and done messages, and then turn those into a timeline plot.

I have a attached a screen shot of what that produces.​

The problem I have found is that when one builder is building a module I don't get insight into what it is doing while compiling that modules dependencies that were not prefetched by a different builder. This causes two problems. The first is that compilation time for some modules looks very long, even though most of it is in compiling their dependencies. The second is that I cannot tell what is going on when only the original threads are doing processing, and so it isn't obvious why other threads start up again.

Is there a better way to instrument raco make?

Hacky code:

Instrumented compile:
#lang racket/base

(require setup/parallel-build racket/match)
(define times (make-hash))
(parallel-compile-files (list
    (λ (id type path-string msg out err)
      (define time (current-inexact-milliseconds))
      (define ps (if (path? path-string) (path->string path-string) path-string))
        [(equal? type 'start)
         (hash-set! times (list ps id) time)]
        [(equal? type 'done)
         (hash-set! times (list ps id) (list (hash-ref times (list ps id)) time))])))
(for ([(name time) times])
  (match-define (list start stop) time)
  (match-define (list file id) name)
  (write (list id file start stop))

#lang racket/base

(require plot racket/match racket/list)
(plot-new-window? #t)

(define work-units
  (call-with-input-file* "data.rktd"
    (lambda (port)
      (let loop ([items empty])
        (define item (read port))
        (if (eof-object? item)
            (loop (cons item items)))))))

(define converted-work-units
  (for/list ([work-unit (in-list work-units)])
    (match-define (list index file-name start stop) work-unit)
        #:alpha 0
        (list (list (ivl start stop) (ivl (- index 1/3) (+ index 1/3)))))
        (list (/ (+ start stop) 2) index)
        #:anchor 'center
        #:point-size 0))))

  #:width 1500

  Racket Developers list:
Dan Liebgold | 28 Oct 00:00 2014

using module system for alternate namespaces

I have a namespace behind a particular API. I'd love to hook into the module system to control compilation, visibility, etc. of all the definitions and references.

Here's an example. 'a' is available in the top level module even though it was defined by module 'm1' and not provided by any explicit mechanism. (Also, order dependencies seem imminent.)

#lang racket

(module base racket
  (define my-table (make-hasheq))
  (define-syntax (my-define stx)
(syntax-case stx ()
 [(_ my-id expr) (identifier? #'my-id)
  #'(hash-set! my-table 'my-id expr)]))
  (define-syntax (my-eval stx)
(syntax-case stx ()
 [(_ my-id)
  #'(hash-ref my-table my-id #f)]))
  (provide my-define

(module m1 racket
  (require (submod ".." base))
  (my-define a (+ 1 2))

(require 'base

(my-eval 'a)

Is there any example of doing something like this using the module system without polluting the top level namespace?  Am I correct in assuming that this will not work under separate module compilation?

Dan Liebgold    []
  Racket Developers list:
Ryan Culpepper | 27 Oct 17:25 2014

Release Announcement for v6.1.1

The release announcement sketch that I have so far is below.  Please
mail me new items and/or edits.

  - optimizations (most from Gustavo Massaccesi) (82ffd405, 25c05d66,
    a7a912ee, 1f2f7a1d, d14b4a80, 769c5b6e, 35eb6562, 15423988)
  - add replace-evt (as suggested by Jan Dvořák) (bc69a9b0)
  - performance tuning (c570a862, 1809df45)
  - windows: use native api for dates (135ccf09)
  - allow mixing exceptions with ffi/unsafe/alloc (from Jan Dvořák)
  - fixing letrec updates? (eg 926e64f5?)
  - senora gc (2916fc34, a312f499, 881990ed)
  - raco pkg add '--binary-lib' (05523a0b, b2b00010)
  - Mac OS X Yosemite Pango repair (76f1ebde)
  - throw out latex back-end for picts ? (77ddf71b)
  - chaperones w/o redirections (1f1a10db, a8d0534e)
  - DPI-aware racket/gui on Windows (a64a1cb1)
  - Windows: fix handling of junctions as links (cf7c0134)
  - behavior of numpad Enter (7d388a07, a41cc0c3)
  - UDP improvements (2a387ace)
  - natipkg (40f5ec07)

  - add #:post condition to meta functions (e991dd46)
  - improve the random checking for ->i (72c83a32)
  - add contract-correct caveat to error messages (1dda800c)
  - add #:pre to define-judgment-form (54a6d317)
  - contract-stronger (eaf48bbb, 05185dcd, f669c47c, ...)

  - check-satisfied (ecfafe63,  and following)

  - remove dependence on libgtkgl (c601b82f)

  - add pattern expanders to syntax/parse (from Alex Knauth) (81cc6bf4)
  - openssl server-side SNI (from Jay Kominek) (320079ee, 2d2f5dc3)


  Racket Developers list:

Update libffi to 3.1

Hello all,


I submitted a commit for updating the libffi, I tested it and it works fine:


Any suggestion, please talk to me :)


Thank you.

  Racket Developers list: