Michael Bernstein | 24 Oct 22:03 2014
Picon

apology for poor formatting

i apologize for the bad newlines in the match thread.


mb
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev
Michael Bernstein | 24 Oct 19:55 2014
Picon

Proposed addition of #:where clause to the match library

I think it would desirable to add a 'where clause' to the
match module (it could be implemented as a keyword argument:
#:where (test).

Below are versions and an insertion sort algorithm from
<http://rosettacode.org/wiki/Sorting_algorithms/Insertion_sort>
First a Qi version, then an Erlang version, followed by a proposed
Racket version with a 'where clause', a failed attempt at writing
a Racket version with a predicate clause, and finally a practical
(at the present time) Racket version of the algorithm.

I'm not an experienced programmer but I am intrigued by pattern
matching and have glanced at pattern matching capabilities in
a variety of functional languages.

I'd appreciate comments on whether this feature is considered
desirable/feasible in Racket.


Qi version of insertion sort using 'where clause':

(define insert
  X []       -> [X]
  X [Y | Ys] -> [X Y | Ys] where (<= X Y)
  X [Y | Ys] -> [Y | (insert X Ys)])
 
(define insertion-sort
  []       -> []
  [X | Xs] -> (insert X (insertion-sort Xs)))
 
(insertion-sort [6 8 5 9 3 2 1 4 7])


Erlang version on same web page using 'when clause':

-module(sort).
-export([insertion/1]).
 
insertion(L) -> lists:foldl(fun insert/2, [], L).

insert(X, [])                      -> [X];
insert(X, L = [H | _]) when X =< H -> [X | L];
insert(X, [H | T])                 -> [H | insert(X, T)].

> sort:insertion([5,3,9,4,1,6,8,2,7]).


Proposed Racket version (based on the Erlang example)
uses #:where keyword:

(define/match (insert X lst)
  [{ X '() }                          (list X)]
  [{ X (cons H T) } #:where (<= X H)  (list* X H T)]
  [{ X (cons H T) }                   (cons H (insert X T))])

(define (insertion-sort lst)
  (foldl insert '() lst))


I don't think that a corresponding Racket predicate match
can be written (I may not have coded it correctly!)
It's also messy:

(define/match (insert-b X lst)
  [{ X                                 '() }      (list X)]
  [{ X (and (cons H T) (? (λ (H X) (<= X H)))) }  (list* X H T)]
  [{ X (cons H T) }                               (cons H (insert-b X T))])

(define (insertion-sort-b lst)
  (foldl insert-b '() lst))

(insertion-sort-b '(6 8 5 9 3 2 1 4 7))


Current working Racket version
(modified slightly from the posted Racket version)
It's necessarily missing the third match pattern:

(define/match (insert-c X lst)
  [{ X '() }         (list X)]
  [{ X (cons H T) }  (cond [(<= X H) (list* X H T)]
                           [else (cons H (insert-c X T))])])

(define (insertion-sort-c lst)
  (foldl insert-c '() lst))

(insertion-sort-c '(6 8 5 9 3 2 1 4 7))


_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev
Ryan Culpepper | 23 Oct 18:48 2014

Pre-Release Checklist for v6.1.1, Second Call

Checklist items for the v6.1.1 release
   (using the v6.1.0.900 release candidate build)

Search for your name to find relevant items, reply when you finish an
item (please indicate which item/s is/are done).  Also, if you have any
commits that should have been picked, make sure that the changes are in.

Important: new builds are created without announcement, usually whenever
I pick a few commits.  If you need to commit changes, please make sure
you tell me to pick it into the release branch.

--> Release candidates are at
-->   http://pre-release.racket-lang.org

Please use these installers (or source bundles) -- don't test from
your own git clone (don't test the `master' branch by mistake!).  To
get the tests, you can do this:

   cd ...racket-root...
   ./bin/raco pkg install -i main-distribution-test

----------------------------------------------------------------------

* Matthias Felleisen <matthias@...>
   - Teachpacks Tests: check that new teachpacks are addable
   - Teachpack Docs: check teachpack docs in the bundles
   - Try teaching-languages testing framework (check-expect)
   Updates:
   - Teachpack Updates: update HISTORY
   (updates should show v6.1.1 as the most current version; email me
   to pick the changes when they're done, or tell me if there are no such
   changes.)

* Eli Barzilay <eli@...>
   - Swindle Tests
   - XREPL Tests
   - Verify PL language
   - Racket Tree: compare new distribution tree to previous one
   - Run the unix installer tests
   - Run zsh completions tests
     (". .../racket-completion.zsh; _racket --self-test")

* Stephen Bloch <sbloch@...>
   - Picturing Programs Tests

* Jon Rafkind <rafkind@...>
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
     compile fine (note that they're still called `plt' and `mz' at
     this stage).
   - Test that the binary installers for both work, try each one in
     both normal and unix-style installation modes. (just ubuntu)
   [Note: get the release candidates from the URL in this email. Use
    the 'static table' link to see a list of all tar files available]

* David Van Horn <dvanhorn@...>
   - EoPL Tests

* Neil Toronto <neil.toronto@...>
   - Plot Tests
   - Images Tests
   - Inspect icons
   - Math tests
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

David Bremner | 22 Oct 21:26 2014
Picon

crash running raco setup with racket 6.1


Building racket 6.1, from racket-6.1-src.tgz, the debian build
calls make install twice,
the first time with PLT_EXTRA="--no-docs --no-zo", and the second time
with PLT_EXTRA="--no-launcher --no-install --no-post-install". This
second (main) call is crashing after some recent change in Debian
unstable (not sure what, but it worked Monday).

At the end you can find a backtrace generated with

% gdb --args racket/racket3m -j -X
"/home/bremner/software/debian/racket/debian/tmp/usr/share/racket/collects" -G
"/home/bremner/software/debian/racket/debian/tmp/etc/racket"  -N "raco" -l- setup  --no-user -j 1
--no-launcher --no-install --no-post-install

(where DESTDIR=/home/bremner/software/debian/racket/tmp)

This particular backtrace is generated with libcairo2 1.14.0-2
(I don't think the debian revision -2 is likely relevant).

For what it's worth, my debian testing system has cairo 1.12.16-5 on it,
and the build runs fine there.

#0  0x00007ffff713f077 in __GI_raise (sig=sig <at> entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff7140458 in __GI_abort () at abort.c:89
#2  0x00000000006a9f9e in fault_handler (
    sn=<optimized out>, si=0x9ea5b0, ctx=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/sighand.c:99
#3  <signal handler called>
#4  0x00007fffe9d63924 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#5  0x00007fffe9da7406 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#6  0x00007fffe9d9952c in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#7  0x00007fffe9d99f95 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#8  0x00007fffe9d9abba in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#9  0x00007fffe9d55d8f in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#10 0x00007fffe9d67062 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#11 0x00007fffe9d9df56 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#12 0x00007fffe9d5dc02 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#13 0x00007fffe9d576e9 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#14 0x00007fffe9d50725 in cairo_stroke ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#15 0x00007ffff76d4d1e in ffi_call_unix64 ()
   from /usr/lib/x86_64-linux-gnu/libffi.so.6
#16 0x00007ffff76d4788 in ffi_call ()
   from /usr/lib/x86_64-linux-gnu/libffi.so.6
#17 0x000000000069b656 in ffi_do_call (
    argv=0x7fffd0599a68, self=0x7ffff458d004, 
    argc=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/../../foreign/foreign.c:3459
#18 0x000000000069b973 in ffi_do_call_after_stack_check (
    argc=1, argv=0x7fffd0599a68, self=0x7fffbe99b338)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/../../foreign/foreign.c:3515
#19 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=1, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#20 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#21 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#22 0x000000000046aaaa in begin0_execute (
    obj=0x7fffecdf6548)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2257
#23 0x00000000004689a8 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    rands=<optimized out>, get_value=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3759
#24 0x000000000048ebf1 in scheme_apply_chaperone (
    o=0x7fffec08ce50, argc=2, argv=0x7fffd0599c40, 
    auto_val=0x0, checks=85, checks <at> entry=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:3714
#25 0x0000000000468592 in scheme_do_eval (
    obj=<optimized out>, num_rands=2, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3087
#26 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#27 0x0000000000469cb2 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3660
#28 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#29 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#30 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    rands=<optimized out>, get_value=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#31 0x000000000048ebf1 in scheme_apply_chaperone (
    o=0x7fffec062558, argc=1, argv=0x7fffd0599e10, 
    auto_val=0x0, checks=85, checks <at> entry=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:3714
#32 0x0000000000468592 in scheme_do_eval (
    obj=<optimized out>, num_rands=1, num_rands <at> entry=0, 
    rands=<optimized out>, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3087
#33 0x000000000048d3a1 in scheme_finish_apply_for_prompt (
    prompt=0x0, _prompt_tag=<optimized out>, 
    proc=0x7fffec062588, argc=argc <at> entry=0, argv=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6216
#34 0x000000000048d556 in scheme_apply_for_prompt (
    prompt=<optimized out>, prompt_tag=<optimized out>, 
    proc=0x7fffec062588, argc=argc <at> entry=0, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6295
#35 0x0000000000492d9f in call_with_prompt (
    in_argc=<optimized out>, in_argv=0x7fffd0599e20)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6794
#36 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=1, num_rands <at> entry=0, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#37 0x0000000000489729 in call_with_values (argc=2, 
    argv=0x7fffd0599e30)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:3888
#38 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=2, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#39 0x000000000046aaaa in begin0_execute (
    obj=0x7fffe41918d0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2257
#40 0x00000000004689a8 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3759
#41 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#42 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=2, rands=<optimized out>, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#43 0x000000000048d3a1 in scheme_finish_apply_for_prompt (
    prompt=0x0, _prompt_tag=<optimized out>, 
    proc=0x7fffc9db0148, argc=argc <at> entry=2, 
    argv=0x7fffffff4bf0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6216
#44 0x000000000048d556 in scheme_apply_for_prompt (
    prompt=<optimized out>, prompt_tag=<optimized out>, 
    proc=0x7fffc9db0148, argc=argc <at> entry=2, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6295
#45 0x0000000000492d9f in call_with_prompt (
    in_argc=<optimized out>, in_argv=0x7fffd0599ec0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6794
#46 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=5, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#47 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    rands=<optimized out>, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#48 0x000000000047de5a in apply_k ()
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1453
#49 0x000000000048546a in scheme_top_level_do_worker (
    k=k <at> entry=0x47dd90 <apply_k>, eb=eb <at> entry=1, 
    new_thread=new_thread <at> entry=1, 
    dyn_state=dyn_state <at> entry=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1285
#50 0x0000000000486bad in scheme_apply_thread_thunk (
    rator=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1493
#51 0x0000000000675142 in start_child (
    child=<optimized out>, child_eval=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:3084
#52 0x000000000067ecca in make_subprocess (
    child_thunk=0x7fffeeac0948, 
    child_start=0x7fffffff54b0, config=0x7fffeeac0a48, 
    cells=0x7fffeeac0a68, break_cell=0x7fffed34c110, 
    mgr=0x0, normal_kill=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:3176
#53 0x000000000067eeff in scheme_thread_w_details (
    thunk=0x7fffeeac0948, config=0x0, cells=0x0, 
    break_cell=0x0, mgr=0x0, suspend_to_kill=16777472)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:3380
#54 0xf9ec250b233b8c00 in ?? ()
#55 0x00007fffffff54f8 in ?? ()
#56 0x00007fffc889a618 in ?? ()
#57 0x0000000000000001 in ?? ()
#58 0x0000000000000005 in ?? ()
#59 0xfffffffffffff400 in ?? ()
#60 0x0000000000000021 in ?? ()
#61 0x00000000ffffffff in ?? ()
#62 0x0000000000469d68 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3345
#63 0x0000000000469e7d in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3413
#64 0x00000000004693a0 in scheme_do_eval (
    obj=<optimized out>, num_rands=780, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3262
#65 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#66 0x0000000000469d68 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    rands=<optimized out>, get_value=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3345
#67 0x000000000046746e in define_execute_with_dynamic_state
    (vec=0x7fffbfd257a8, delta=1, defmacro=0, rp=0x0, 
    dm_env=0x0, dyn_state=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:1935
#68 0x0000000000467cf4 in define_values_execute (
    data=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2079
#69 0x0000000000468d71 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    rands=<optimized out>, get_value=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3724
#70 0xfffffffffffff400 in ?? ()
#71 0xfffffffffffff400 in ?? ()
#72 0x0000000000626783 in scheme_uncopy_stack (
    ok=<optimized out>, b=0x7fffee42e860, 
    prev=prev <at> entry=0x7fffffff6360)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/setjmpup.c:337
#73 0x0000000000626783 in scheme_uncopy_stack (
    ok=<optimized out>, b=0x7fffee42e860, 
    prev=prev <at> entry=0x7fffffff6a00)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/setjmpup.c:337
#74 0x0000000000626783 in scheme_uncopy_stack (
    ok=<optimized out>, b=0x7fffee42e860, 
    prev=prev <at> entry=0x7fffffff70a0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/setjmpup.c:337
#75 0x0000000000626783 in scheme_uncopy_stack (
    ok=<optimized out>, b=0x7fffee42e860, 
    prev=prev <at> entry=0x7fffffff7740)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/setjmpup.c:337
#76 0x0000000000626783 in scheme_uncopy_stack (
    ok=<optimized out>, b=0x7fffee42e860, 
    prev=prev <at> entry=0x7fffffff7de0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/setjmpup.c:337
#77 0x0000000000626783 in scheme_uncopy_stack (
    ok=<optimized out>, b=0x7fffee42e860, 
    prev=prev <at> entry=0x7fffffff8490)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/setjmpup.c:337
#78 0x0000000000626b8a in scheme_longjmpup (
    b=0x7fffee42e860)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/setjmpup.c:621
#79 0x0000000000670ea1 in do_swap_thread ()
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:2793
#80 0x0000000000674b88 in select_thread ()
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:2872
#81 0x000000000067c707 in scheme_weak_suspend_thread (
    r=0x7fffeca93928)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:5396
#82 0x0000000000625486 in scheme_wait_semas_chs (
    n=n <at> entry=1, o=o <at> entry=0x7fffffff8ce0, 
    just_try=just_try <at> entry=0, syncing=syncing <at> entry=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/sema.c:789
#83 0x0000000000624d05 in scheme_wait_sema (
    o=<optimized out>, just_try=just_try <at> entry=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/sema.c:953
#84 0x0000000000671086 in will_executor_go (
    argc=<optimized out>, argv=0x7ffff03b1f20)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:8412
#85 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=1, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#86 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#87 0x000000000046aaaa in begin0_execute (
    obj=0x7fffed4ade10)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2257
#88 0x00000000004689a8 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=0, rands=<optimized out>, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3759
#89 0x000000000048d3a1 in scheme_finish_apply_for_prompt (
    prompt=0x0, _prompt_tag=<optimized out>, 
    proc=0x7fffeca93ec8, argc=argc <at> entry=0, argv=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6216
#90 0x000000000048d556 in scheme_apply_for_prompt (
    prompt=<optimized out>, prompt_tag=<optimized out>, 
    proc=0x7fffeca93ec8, argc=argc <at> entry=0, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6295
#91 0x0000000000492d9f in call_with_prompt (
    in_argc=<optimized out>, in_argv=0x7ffff03b1f48)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6794
#92 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=1, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#93 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    rands=<optimized out>, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#94 0x000000000047de5a in apply_k ()
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1453
#95 0x000000000048546a in scheme_top_level_do_worker (
    k=k <at> entry=0x47dd90 <apply_k>, eb=eb <at> entry=1, 
    new_thread=new_thread <at> entry=1, 
    dyn_state=dyn_state <at> entry=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1285
#96 0x0000000000486bad in scheme_apply_thread_thunk (
    rator=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1493
#97 0x0000000000675142 in start_child (
    child=<optimized out>, child_eval=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:3084
#98 0x000000000067ecca in make_subprocess (
    child_thunk=0x7fffeca97598, 
    child_start=0x7fffffff9c40, config=0x7fffe5d28cb8, 
    cells=0x7fffeca93e10, break_cell=0x7fffed34c110, 
    mgr=0x7fffca3f77b8, normal_kill=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:3176
#99 0x000000000067eeff in scheme_thread_w_details (
    thunk=0x7fffeca97598, config=0x7fffe5d28cb8, 
    cells=0x7fffeca93e10, break_cell=0x0, 
    mgr=0x7fffca3f77b8, suspend_to_kill=16777472)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/thread.c:3380
#100 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#101 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#102 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#103 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#104 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#105 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#106 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#107 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#108 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#109 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#110 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#111 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#112 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#113 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#114 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#115 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#116 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#117 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#118 0x0000000000469f5a in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3438
#119 0x0000000000469cb2 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=2, rands=<optimized out>, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3660
#120 0x000000000048d3a1 in scheme_finish_apply_for_prompt (
    prompt=0x0, _prompt_tag=<optimized out>, 
    proc=0x7fffc9db0148, argc=argc <at> entry=2, 
    argv=0x7fffffffb310)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6216
#121 0x000000000048d556 in scheme_apply_for_prompt (
    prompt=<optimized out>, prompt_tag=<optimized out>, 
    proc=0x7fffc9db0148, argc=argc <at> entry=2, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6295
#122 0x0000000000492d9f in call_with_prompt (
    in_argc=<optimized out>, in_argv=0x7ffff6321d90)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6794
#123 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=5, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#124 0x00000000004690f4 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3460
#125 0x000000000046ad8c in apply_values_execute (
    data=0x7fffc9d95c48)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2139
#126 0x00000000004688a1 in scheme_do_eval (
    obj=<optimized out>, num_rands=<optimized out>, 
    num_rands <at> entry=-1, rands=<optimized out>, 
    rands <at> entry=0x0, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3783
#127 0x0000000000546e13 in body_one_expr (
    prefix_plus_expr=0x7fffda41dbc8, argc=<optimized out>, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5771
#128 0x0000000000467f0e in scheme_do_eval (
    obj=<optimized out>, num_rands=num_rands <at> entry=0, 
    rands=<optimized out>, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3108
#129 0x000000000048d3a1 in scheme_finish_apply_for_prompt (
    prompt=0x0, _prompt_tag=<optimized out>, 
    proc=0x7fffec6e17c0, argc=argc <at> entry=0, argv=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6216
#130 0x000000000048d556 in scheme_apply_for_prompt (
    prompt=<optimized out>, prompt_tag=<optimized out>, 
    proc=0x7fffec6e17c0, argc=argc <at> entry=0, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6295
#131 0x0000000000492d9f in call_with_prompt (
    in_argc=<optimized out>, in_argv=0x7fffffffbe20)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6794
#132 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=num_rands <at> entry=3, 
    rands=<optimized out>, rands <at> entry=0x7fffffffbe20, 
    get_value=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#133 0x0000000000486936 in do_call_with_prompt (
    f=<optimized out>, data=<optimized out>, multi=1, 
    top_level=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:7020
#134 0x000000000055643d in scheme_module_run_finish (
    menv=0x7fffc9d94c10, env=0x7fffe5d28e58)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5868
#135 0x000000000052f2c7 in scheme_module_run_start (
    menv=0x7fffc9d94c10, env=0x7fffe5d28e58, 
    name=0x7fffda41dbe8)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/jitstack.c:672
#136 0x0000000000542d4a in eval_module_body (
    menv=0x7fffc9d94c10, env=0x7fffe5d28e58)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5760
#137 0x000000000043b2b1 in do_start_module (
    menv=<optimized out>, env=<optimized out>, restart=0, 
    m=<optimized out>, m=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5541
#138 0x000000000055008b in start_module (m=0x7fffc9d94d28, 
    env=0x7fffe5d28e58, restart=restart <at> entry=0, 
    syntax_idx=0x7fffc9d76b58, eval_exp=0, 
    eval_run=<optimized out>, base_phase=0, 
    cycle_list=0x98c908 <scheme_null>, not_new=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5638
#139 0x000000000055f87b in _dynamic_require (
    argc=<optimized out>, argv=0x7ffff6321f50, 
    env=0x7fffe5d28e58, get_bucket=0, 
    phase=<optimized out>, indirect_ok=<optimized out>, 
    fail_with_error=1, position=<optimized out>, 
    mod_phase=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:1372
#140 0x0000000000560935 in scheme_dynamic_require (argc=2, 
    argv=0x7ffff6321f50)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:1438
#141 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=2, num_rands <at> entry=-1, 
    rands=<optimized out>, rands <at> entry=0x0, 
    get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#142 0x0000000000546e13 in body_one_expr (
    prefix_plus_expr=0x7fffe6088e28, argc=<optimized out>, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5771
#143 0x0000000000467f0e in scheme_do_eval (
    obj=<optimized out>, num_rands=num_rands <at> entry=0, 
    rands=<optimized out>, get_value=get_value <at> entry=-1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:3108
#144 0x000000000048d3a1 in scheme_finish_apply_for_prompt (
    prompt=0x0, _prompt_tag=<optimized out>, 
    proc=0x7fffc9d76b90, argc=argc <at> entry=0, argv=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6216
#145 0x000000000048d556 in scheme_apply_for_prompt (
    prompt=<optimized out>, prompt_tag=<optimized out>, 
    proc=0x7fffc9d76b90, argc=argc <at> entry=0, 
    argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6295
#146 0x0000000000492d9f in call_with_prompt (
    in_argc=<optimized out>, in_argv=0x7fffffffcda0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:6794
#147 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=num_rands <at> entry=3, 
    rands=<optimized out>, rands <at> entry=0x7fffffffcda0, 
    get_value=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#148 0x0000000000486936 in do_call_with_prompt (
    f=<optimized out>, data=<optimized out>, multi=1, 
    top_level=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:7020
#149 0x000000000055643d in scheme_module_run_finish (
    menv=0x7fffed350e28, env=0x7fffe5d28e58)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5868
#150 0x000000000052f2c7 in scheme_module_run_start (
    menv=0x7fffed350e28, env=0x7fffe5d28e58, 
    name=0x7fffed1392c8)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/jitstack.c:672
#151 0x0000000000542d4a in eval_module_body (
    menv=0x7fffed350e28, env=0x7fffe5d28e58)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5760
#152 0x000000000043b2b1 in do_start_module (
    menv=<optimized out>, env=<optimized out>, restart=0, 
    m=<optimized out>, m=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5541
#153 0x000000000055008b in start_module (m=0x7fffed350f40, 
    env=0x7fffe5d28e58, restart=restart <at> entry=0, 
    syntax_idx=0x7fffe5d297f0, eval_exp=eval_exp <at> entry=-1, 
    eval_run=eval_run <at> entry=1, base_phase=0, 
    cycle_list=0x98c908 <scheme_null>, not_new=0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:5638
#154 0x000000000055d874 in parse_requires (
    form=0x7fffe5d297f0, at_phase=0, 
    base_modidx=0x98af50 <scheme_false>, 
    main_env=0x7fffe5d28e58, rn_set=0x7fffed351058, 
    post_ex_rn_set=post_ex_rn_set <at> entry=0x0, ck=0x0, 
    data=0x0, unpack_kern=1, copy_vars=0, 
    can_save_marshal=0, eval_exp=-1, eval_run=1, 
    all_simple=0x0, modidx_cache=0x0, submodule_names=0x0, 
    non_phaseless=0x0, redef_modname=0x0, for_m=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:12429
#155 0x000000000055f40e in do_namespace_require (
    env=0x7fffe5d28e58, argv=0x7fffffffdbd0, copy=0, 
    etonly=0, argc=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/module.c:1465
#156 0x0000000000469215 in scheme_do_eval (
    obj=<optimized out>, num_rands=1, 
    rands=<optimized out>, get_value=get_value <at> entry=1)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/eval.c:2697
#157 0x000000000047de2d in apply_k ()
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1455
#158 0x000000000048546a in scheme_top_level_do_worker (
    k=k <at> entry=0x47dd90 <apply_k>, eb=eb <at> entry=1, 
    new_thread=new_thread <at> entry=0, 
    dyn_state=dyn_state <at> entry=0x0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1285
#159 0x00000000004867d5 in scheme_top_level_do (eb=1, 
    k=0x47dd90 <apply_k>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1173
#160 _apply (eb=1, multi=0, 
    rands=rands <at> entry=0x7fffffffd650, 
    num_rands=num_rands <at> entry=1, rator=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1468
#161 scheme_apply (rator=<optimized out>, 
    num_rands=num_rands <at> entry=1, 
    rands=rands <at> entry=0x7fffffffdbd0)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/fun.c:1474
#162 0x000000000043e650 in finish_cmd_line_run (
    fa=0x7fffecf001b0, repl=0x43ce40 <do_scheme_rep>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../cmdline.inc:440
#163 0x000000000043eec5 in cont_run (f=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../main.c:465
#164 0x0000000000440113 in run_from_cmd_line (
    argc=<optimized out>, argc <at> entry=16, 
    _argv=0x7fffffffe428, cont_run=0x43eec0 <cont_run>, 
    mk_basic_env=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../cmdline.inc:1571
#165 0x0000000000440aae in main_after_stack (
    data=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../main.c:450
#166 0x0000000000441595 in do_main_stack_setup (
    no_auto_statics=no_auto_statics <at> entry=1, 
    _main=_main <at> entry=0x440a00 <main_after_stack>, 
    data=data <at> entry=0x7fffffffe320)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/salloc.c:198
#167 0x0000000000441665 in scheme_main_stack_setup (
    no_auto_statics=no_auto_statics <at> entry=1, 
    _main=_main <at> entry=0x440a00 <main_after_stack>, 
    data=data <at> entry=0x7fffffffe320)
    at /home/bremner/software/debian/racket/src/racket/gc2/../src/salloc.c:310
#168 0x000000000043cd1e in main_after_dlls (
    argv=<optimized out>, argc=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../main.c:381
#169 main (argc=<optimized out>, argv=<optimized out>)
    at /home/bremner/software/debian/racket/src/racket/gc2/../main.c:341
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

John Clements | 22 Oct 17:36 2014
Picon

Nervous about all of this merging to 6.1.1 release?

Is anyone else nervous about the number of not-obviously-trivial changes we're merging to the 6.1.1 release after the test bundles are out? I for one wouldn't mind re-running my tests before the release.

John

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev
Sam Tobin-Hochstadt | 22 Oct 04:26 2014
Picon
Picon

Strange issue with identifier-binding being wrong for lexical variables

I've found what I think is a bug in the expander where lexical
references can get an `identifier-binding` result that suggests that
they're module-bound.

In particular, you need these three files:

bugtest.rkt:

(module bugtest "wraptest.rkt")

bugtest.scm:

(define (gcbench)
  (define main #f)
  main)

(define main #f)

wraptest.rkt:

#lang racket/base
(provide (rename-out (module-begin #%module-begin)))

(require racket/include
         (for-syntax racket/base))

(define-syntax (module-begin stx)
  (define name (syntax-property stx 'enclosing-module-name))
  #`(#%module-begin
     (include #,(format "~a.scm" name))))

Then run the macro stepper with macro hiding off on "bugtest.rkt".
Click on the reference to `main` inside `gcbench`. You'll see that it
says that it's a module-bound variable named `main.2` which is defined
in this module.

Then try changing the name of the top-level definition in bugtest.scm
to `main2`. Re-run the macro stepper, and you'll see that the
identifier-binding is now lexical.

I tried a few things to get this to go away (such as using
`#%plain-module-begin`) which didn't work. Reducing it to two files,
ie doing the include directly in bugtest.rkt, made the problem
disappear.

Changing the body of the `module-begin` macro to:

(define-syntax (module-begin stx)
  (define name (syntax-property stx 'enclosing-module-name))
  #`(#%module-begin
     #,(datum->syntax stx `(include ,(format "~a.scm" name)))
     #,(datum->syntax stx '(main))))

and then providing a bunch of extra stuff made the issue go away.
Because there's the workaround, the issue isn't urgent.

Sam (and Tobias, who found this bug)
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Dan Liebgold | 22 Oct 03:26 2014
Picon

define-require-syntax issue

If I do a (require (file <some absolute path>)) in a module, the provided stuff gets imported properly.

If I do a special require form that uses define-require-syntax to generate an identical (file <...>) the specified module gets evaluated -- but (seemingly) nothing gets imported.

Is there something special the define-require-syntax transformer needs to do besides generate a syntax object?

samth mentioned on irc that it is probably a hygiene issue... something about generating the right marks on the (file ...) form.

--
Dan Liebgold    [dan.liebgold-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org]
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev
Matthias Felleisen | 20 Oct 23:54 2014

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


DOn't we want to merge this into 6.1.1? 

On Oct 20, 2014, at 3:44 PM, stamourv@... wrote:

> stamourv has updated `master' from 538bb75d64 to 9030680e31.
>  http://git.racket-lang.org/plt/538bb75d64..9030680e31
> 
> =====[ One Commit ]=====================================================
> Directory summary:
>  16.9% pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/
>  83.0% pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/
> 
> ~~~~~~~~~~
> 
> 9030680 Vincent St-Amour <stamourv@...> 2014-10-20 11:34
> :
> | Fix types for foldl and foldr with 3 lists.
> |
> | Thanks to Jack Firth for the report.
> :
>  M .../tests/typed-racket/unit-tests/typecheck-tests.rkt    | 13 +++++++++++++
>  M .../typed-racket-lib/typed-racket/base-env/base-env.rkt  |  4 ++--
> 
> =====[ Overall Diff ]===================================================
> 
> pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
> +++ NEW/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
>  <at>  <at>  -657,11 +657,11  <at>  <at> 
>  (-poly (a b c d)
>         (cl-> [((a b . -> . b) b (-lst a)) b]
>               [((a b c . -> . c) c (-lst a) (-lst b)) c]
> -              [((a b c d . -> . d) d (-lst a) (-lst b) (-lst d)) d]))]
> +              [((a b c d . -> . d) d (-lst a) (-lst b) (-lst c)) d]))]
> [foldr  (-poly (a b c d)
>                (cl-> [((a b . -> . b) b (-lst a)) b]
>                      [((a b c . -> . c) c (-lst a) (-lst b)) c]
> -                     [((a b c d . -> . d) d (-lst a) (-lst b) (-lst d)) d]))]
> +                     [((a b c d . -> . d) d (-lst a) (-lst b) (-lst c)) d]))]
> [filter (-poly (a b) (cl->*
>                       ((asym-pred a Univ (-FS (-filter b 0) -top))
>                        (-lst a)
> 
> pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
> +++ NEW/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
>  <at>  <at>  -1155,6 +1155,19  <at>  <at> 
>                 (-polydots (a) ((list) (a a) . ->... . -Integer))]
>         |#
> 
> +        [tc-e (foldl (lambda: ([x : Integer] [acc : String]) acc) "" '(1 2 3))
> +              -String]
> +        [tc-e (foldl (lambda: ([x : Integer] [y : Float] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6))
> +              -String]
> +        [tc-e (foldl (lambda: ([x : Integer] [y : Float] [z : Symbol ] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6)
'(a b c))
> +              -String]
> +        [tc-e (foldr (lambda: ([x : Integer] [acc : String]) acc) "" '(1 2 3))
> +              -String]
> +        [tc-e (foldr (lambda: ([x : Integer] [y : Float] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6))
> +              -String]
> +        [tc-e (foldr (lambda: ([x : Integer] [y : Float] [z : Symbol ] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6)
'(a b c))
> +              -String]
> +
>         ;; First is same as second, but with map explicitly instantiated.
>         [tc-e/t (plambda: (a ...) [ys : (a ... a -> Number) *]
>                 (lambda: [zs : a ... a]

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

David Bremner | 16 Oct 23:23 2014
Picon

advice on the 6.x build system.


I've been been trying to rework the debian racket packaging, and to
understand the new racket build system.  I need to have the two seperate
targets, which most of the package installation is done in the the
"build-indep-stamp" target.

The following makefile snippet is _almost_ working, except that I'm
missing a launcher for drracket. After installing debian/tmp, running
/usr/lib/racket/gracket and (require drracket) seems to work ok to start
drracket, so I take that as indicating most of the packages / collects
are in the right place.  Can anyone see what I'm doing wrong here?

I should say that I tried to make better use of the top level makefile,
but I ended up with wrong default collects paths (probably just a
different error on my part).

I tried all of this (most recently) with the current release branch
(c326c21b73356e)

destdir:=$(CURDIR)/debian/tmp
base_build_dir:=$(CURDIR)/racket/src/build
PRERACKET:=${destdir}/usr/bin/racket  -X ${destdir}/usr/share/racket/collects

raco_args:=--catalog build/local/catalog --auto -i --skip-installed

${base_build_dir}/Makefile: 
	mkdir -p ${base_build_dir}
	cd ${base_build_dir} && $(CURDIR)/racket/src/configure --prefix=/usr

build-arch-stamp: ${base_build_dir}/Makefile
	$(MAKE) -C ${base_build_dir} 
	$(MAKE) -C ${base_build_dir} DESTDIR=${destdir} install
	touch $ <at> 

build-indep-stamp: build-arch-stamp
	$(MAKE) RACKET="${PRERACKET}" \
		local-source-catalog 
	${PRERACKET} -N raco -l- \
		pkg install ${raco_args}  main-distribution racket-lib
	touch $ <at> 
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Laurent | 16 Oct 16:06 2014
Picon

DrRacket flickers?

Hi,

Using Racket 6.1.1.1--2014-10-13(47b7a28/a) [3m] on Ubuntu 14.04, I see DrRacket flickering during selections, tab switching and other occasions, but it's not consistent.

Does anyone else see the same thing?

Laurent
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev
Ryan Culpepper | 16 Oct 15:13 2014

Pre-Release Checklist for v6.1.1

Checklist items for the v6.1.1 release
   (using the v6.1.0.900 release candidate build)

Search for your name to find relevant items, reply when you finish an
item (please indicate which item/s is/are done).  Also, if you have any
commits that should have been picked, make sure that the changes are in.

Important: new builds are created without announcement, usually whenever
I pick a few commits.  If you need to commit changes, please make sure
you tell me to pick it into the release branch.

--> Release candidates are at
-->   http://pre-release.racket-lang.org

Please use these installers (or source bundles) -- don't test from
your own git clone (don't test the `master' branch by mistake!).  To
get the tests, you can do this:

   cd ...racket-root...
   ./bin/raco pkg install -i main-distribution-test

----------------------------------------------------------------------

* Matthew Flatt <mflatt@...>
   - Racket Tests
   - Languages Tests
   - GRacket Tests (Also check that `gracket -z' and `gracket-text' still
     works in Windows and Mac OS X)
   - mzc --exe tests
   - .plt-packing Tests
   - Games Tests
   - Unit Tests
   - Syntax Color Tests
   - R6RS Tests
   - JPR's test suite
   - Create an executable from a BSL program
   - Run COM tests
   - Embed-in-c test
   - Try compiling with -funsigned-char
   - Try compiling with TEST_ALTERNATE_TARGET_REGISTER
   Updates:
   - Racket Updates: update HISTORY
   (updates should show v6.1.1 as the most current version)
   - Update man pages in racket/man/man1: racket.1, gracket.1, raco.1
   Email me to pick the changes when they're done, or tell me if there
   are no such changes.

* Robby Findler <robby@...>
   - DrRacket Tests
   - Framework Tests
   - Contracts Tests
   - Games Tests
   - Teachpacks Tests: image tests
   - PLaneT Tests
   - Redex Tests
   Updates:
   - DrRacket Updates: update HISTORY
   - Redex Updates: update HISTORY
   (updates should show v6.1.1 as the most current version)
   - Ensure that previous version of DrRacket's preference files still
     starts up with new DrRacket
   - Update man pages in racket/man/man1: drracket.1
   Email me to pick the changes when they're done, or tell me if there
   are no such changes.

* John Clements <clements@...>
   - Stepper Tests
   Updates:
   - Stepper Updates: update HISTORY
   (updates should show v6.1.1 as the most current version; email me
   to pick the changes when they're done, or tell me if there are no such
   changes.)

* Sam Tobin-Hochstadt <samth@...>,
    Vincent St-Amour <stamourv@...>
   - Match Tests
   - Typed Racket Tests
   - Typed Racket Updates: update HISTORY
   (updates should show v6.1.1 as the most current version; email me
   to pick the changes when they're done, or tell me if there are no such
   changes.)

* Matthias Felleisen <matthias@...>
   - Teachpacks Tests: check that new teachpacks are addable
   - Teachpack Docs: check teachpack docs in the bundles
   - Try teaching-languages testing framework (check-expect)
   Updates:
   - Teachpack Updates: update HISTORY
   (updates should show v6.1.1 as the most current version; email me
   to pick the changes when they're done, or tell me if there are no such
   changes.)

* Ryan Culpepper <ryanc@...>
   - Macro Debugger Tests
   - syntax-parse Tests
   - RackUnit GUI Tests
   - Data Tests
   - DB Tests
   - Rackunit Tests
   - SRFI Tests

* Jay McCarthy <jay.mccarthy@...>
   - Web Server Tests
   - XML Tests
   - HTML Tests
   - PLAI Tests
   - Racklog tests
   - Datalog tests

* Stevie Strickland <sstrickl@...>
   - Unit Contract Tests
   - Contract Region Tests
   - Class Contract Tests

* Stephen Chang <stchang@...>
   - Lazy Racket Tests
   - Lazy stepper tests

* Eli Barzilay <eli@...>
   - Swindle Tests
   - XREPL Tests
   - Verify PL language
   - Racket Tree: compare new distribution tree to previous one
   - Run the unix installer tests
   - Run zsh completions tests
     (". .../racket-completion.zsh; _racket --self-test")

* Stephen Bloch <sbloch@...>
   - Picturing Programs Tests

* Greg Cooper <greg@...>
   - FrTime Tests

* Jon Rafkind <rafkind@...>
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
     compile fine (note that they're still called `plt' and `mz' at
     this stage).
   - Test that the binary installers for both work, try each one in
     both normal and unix-style installation modes. (just ubuntu)
   [Note: get the release candidates from the URL in this email. Use
    the 'static table' link to see a list of all tar files available]

* Mike Sperber <sperber@...>
   - DMdA Tests
   - Stepper Tests
   - Signature Tests

* David Van Horn <dvanhorn@...>
   - EoPL Tests

* Neil Toronto <neil.toronto@...>
   - Plot Tests
   - Images Tests
   - Inspect icons
   - Math tests

* Doug Williams <m.douglas.williams@...>
   - Additional Plot Tests

* Shriram Krishnamurthi <sk@...>
   Tour: check the tour and generate a new one if needed.
   [Note: Since this is a v6.1.0.900 build, you will need to edit your
     .../collects/framework/private/version.rkt
   file and change `(version)' to `"6.1.1"'.]
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev


Gmane