[racket-users] Racket for Smartphone Apps

2015-09-24 Thread Marc Kaufmann
Hi all,

I am about to start writing an app. Really all it will have to do (for now)
is to give the user a bunch of survey questions at several times (per day
or week or whatever). It does matter quite a bit that it should work on
both Android and iOS (and Windows phones, if it it must). For further
background, I've never written an app in my life, but have worked on a
bunch of websites. I am good enough at it to know that I am not
particularly good at web design.

My questions are these:


   1. I found a thread in February about Racket, and it seems to be the
   case that the Racket runtime compiles to Android, but not to iOS (or only
   with very careful configuration and crossing one's fingers). Is that
   correct?
   2. What does it mean in practical terms that only the runtime compiles
   to it? Or, to quote, that "the Racket runtime system at least compile[s] as
   a framework for iOS (as it does already for Android)". What is missing in
   terms of functionality, both on the users' side and the developers?
   3. Is there any open source code out there from someone who has written
   an app in Racket (even if generating HTML5 and JS) so that I can get a
   sense of what is a sensible way of going about this? The second best would
   be pointers to good GUI programming in Racket.
   4. Would people caution against using Racket for this at this stage -
   i.e. is there a high chance I'll spend a much larger fraction of my time
   chasing down errors related to portability than would be the case with
   alternatives? Since I want to get things working on Android and iOS, I
   might have these problems with most solutions.

My main reason for wanting to use Racket is that I don't want to learn
another language (and be mediocre at it yet again) if I can avoid it, and
the only other languages I can code in without internet connection are
Python and R. R would be rather original as an app programming language.

Thanks,

Marc

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Redex, traces and Graphviz

2015-09-24 Thread Anton Podkopaev
Robby, thank you very much!

BR,
Anton Podkopaev

2015-09-23 23:48 GMT+03:00 Robby Findler :

> Yes, but only in a fairly complex way. Your rendering function would
> have to call out to graphviz, get the results back as a png, use
> read-bitmap to get the png back into Racket, create an image snip and
> then insert that into the editor, using the more complex version of
> the `pp` argument.
>
> Here's an example.
>
> Robby
>
> #lang racket/gui
>
> (define (dot-render t)
>   (define-values (dot-input-in dot-input-out) (make-pipe))
>   (define-values (dot-output-in dot-output-out) (make-pipe))
>   (thread
>(λ ()
>  (define n 0)
>  (define (next) (set! n (+ n 1)) (format "x~a" n))
>  (fprintf dot-input-out "digraph {\n")
>  (let loop ([t t])
> (define me (next))
> (match t
>   [`(,e1 ,e2 ,e3)
>(fprintf dot-input-out "  ~a [label=\"\" width=.2 height=.2]\n"
> me)
>(fprintf dot-input-out "  ~a -> ~a\n" me (loop e1))
>(fprintf dot-input-out "  ~a -> ~a\n" me (loop e2))
>(fprintf dot-input-out "  ~a -> ~a\n" me (loop e3))
>me]
>   [_
>(fprintf dot-input-out "  ~a [shape=point]\n" me)
>me]))
>   (fprintf dot-input-out "}\n")
>  (close-output-port dot-input-out)))
>   (thread (λ ()
> (parameterize ([current-output-port dot-output-out]
>[current-input-port dot-input-in])
>   (system "/usr/local/bin/dot -T png"))
> (close-output-port dot-output-out)))
>   (read-bitmap dot-output-in))
>
> (require redex)
> (define-language L
>   (e ::= (e e e) ⊥))
> (define red
>   (reduction-relation
>L
>(--> e (e ⊥ ⊥))
>(--> e (⊥ e ⊥))
>(--> e (⊥ ⊥ e
>
> (traces red
> (term ⊥)
> #:pp
> (λ (t port n txt)
>   (send txt insert (make-object image-snip% (dot-render t)
>
>
>
> On Wed, Sep 23, 2015 at 12:05 PM, Anton Podkopaev 
> wrote:
> > Hello!
> >
> > I'm working on an operational semantics using PLT Redex. I use `traces`
> a lot to debug my semantics. To represent states in a nice way I'm using a
> pretty printer, but I want more -- I want to use Graphviz. Is it somehow
> possible to call Graphviz from my pretty printer, and incorporate a result
> of rendering into a pretty-printed text?
> >
> > BR,
> > Anton Podkopaev, PhD student, SPbSU
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups "Racket Users" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to racket-users+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Scribble: Typeset equations using Latex packages amsmath and amssym

2015-09-24 Thread Marc Kaufmann
Thanks Alex,

To avoid dealing with escapes like that, you could use the raw-string
> package, which lets you do this:
> raco pkg install raw-string
>
> #lang raw-string/raw-string racket/base #\$
>
>
When I add the package via raco and change the #lang line as you suggest, I
get the following error when running scribble:

---
marc$ scribble --prefix scribble-prefix.tex --pdf effort-tracking.scrbl
standard-module-name-resolver: collection not found
  collection: "raw-string/raw-string/lang"
  in collection directories:
   /home/marc/.racket/5.3.6/pkgs/installed/raw-string
   /home/marc/.racket/5.3.6/pkgs/installed/base
   /home/marc/.racket/5.3.6/collects
   /usr/share/racket/collects
  context...:
   standard-module-name-resolver
   standard-module-name-resolver
   standard-module-name-resolver
   /usr/share/racket/collects/scribble/../racket/private/map.rkt:26:19: loop
   /usr/share/racket/collects/scribble/run.rkt: [running body]
---

The raw-string package is actually under
~/.racket/5.3.6/pkgs/installed/raw-string, so I am not sure what's going
on.


>
You could also use at-exp for that, but raw-string is simpler.
>
>
How does the at-exp work? Or do you mean at-exp with raw-string?

Thanks,

Marc

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] [racket][FFI] memory management when making io ports in C

2015-09-24 Thread WarGrey Gyoudmon Ju
Okay, I am here again.
No lucky, I cannot make it cooperate with the precision GC, even catching
the signal does not work.
The `xform` seems buggy in two ways I have encountered:
1. it may eat some module level non-static constants, say, to export
`syslog` macros 'facilities', 'severities' and  'open flags' as integer,
after `xform`ing the 'open flags' are gone. XFORM_START/END_SKIP will solve
it while *_SUSPEND will not.
2. in the foxpipe.c, XFORM_START/END_SKIP causes contracts error because of
(caar null).

Finally, I redesigned the records that do not depend on any Scheme_Object
and malloc() it as pure data collection. Now the SIGSEGV is out of my
source code. But I get something is worse (Racket Version 6.2.0.5):

core 'core' of 2574:
-  lwp# 1 / thread# 1  
 fd7fff27d3ba _lwp_kill () + a
 fd7fff2127b0 raise (6) + 20
 fd7fff1ecb98 abort () + 98
 006fb295  ()
 fd7fff276206 __sighndlr () + 6
 fd7fff26905b call_user_handler (b, fd7fffdf8d48, fd7fffdf89e0)
+ 1db
 fd7fff2693ce sigacthandler (b, fd7fffdf8d48, fd7fffdf89e0) +
10e
 --- called from signal handler with signal 11 (SIGSEGV) ---
 fd7fff1d9376 memcpy () + 1936
 00702820 propagate_marks () + 120
 00702958 propagate_marks_plus_ephemerons () + 18
 006fdb8a garbage_collect () + 67a
 007009ef collect_now () + 2f
 00705122 GC_malloc_one_small_tagged () + 2b2
 00617561 scheme_make_output_port () + b1
 00630427 scheme_make_byte_string_output_port () + b7
 0068579c format () + 6c
 fd7ffe7038ef  ()
 fd7ffe3f1d6b  ()
 fd7ffe7021dd  ()
 fd7ffe7021dd  ()
 fd7ffe7021dd  ()
 004b5e55 scheme_do_eval () + 1e55
 004cf57d force_values () + cd
 004cf707 _apply_native () + f7
 004dd8e5 scheme_apply_chaperone () + ca5
 004b4a4f scheme_do_eval () + a4f
 004b6c47 _scheme_apply_from_native () + 57
 fd7ffe3418d1  ()
 fd7ffe341f5d  ()
 004b5e55 scheme_do_eval () + 1e55
 004b6e37 _scheme_apply_multi_from_native () + 57
 fd7ffe710ffc  ()
 004b5e55 scheme_do_eval () + 1e55
 004cbc52 apply_k () + b2
 004d3ce8 scheme_top_level_do_worker () + 828
 006c705f start_child () + 3ef
 006d0c34 make_subprocess () + 204
 006d0e74 scheme_thread_w_details () + e4
 fd7fffdfa0a8  ()
-  lwp# 2 / thread# 2  
-  lwp# 3 / thread# 3  
-  lwp# 4 / thread# 4  
-  lwp# 5 / thread# 5  
-  lwp# 6 / thread# 6  
-  lwp# 7 / thread# 7  
-  lwp# 8 / thread# 8  

and

core 'core' of 3008: racket -N sakuyamon -t digivice/sakuyamon.rkt -- izuna
gyoudmon.org lo
-  lwp# 1 / thread# 1  
 fd7fff27d3ba _lwp_kill () + a
 fd7fff2127b0 raise (6) + 20
 fd7fff1ecb98 abort () + 98
 006fb295  ()
 fd7fff276206 __sighndlr () + 6
 fd7fff26905b call_user_handler (b, fd7fffdf8eb8, fd7fffdf8b50)
+ 1db
 fd7fff2693ce sigacthandler (b, fd7fffdf8eb8, fd7fffdf8b50) +
10e
 --- called from signal handler with signal 11 (SIGSEGV) ---
 fd7fff1d9376 memcpy () + 1936
 00702820 propagate_marks () + 120
 00702958 propagate_marks_plus_ephemerons () + 18
 006fdb8a garbage_collect () + 67a
 007009ef collect_now () + 2f
 0070601a GC_malloc_atomic () + 22a
 0050c81b ts_prepare_retry_alloc () + 7b
 fd7ffe715901  ()
 fd7ffe7021dd  ()
 fd7ffe7021dd  ()
 fd7ffe7021dd  ()
 fd7ffe7021dd  ()
 004b5e55 scheme_do_eval () + 1e55
 004cf57d force_values () + cd
 004cf707 _apply_native () + f7
 004dd8e5 scheme_apply_chaperone () + ca5
 004b4a4f scheme_do_eval () + a4f
 004b6c47 _scheme_apply_from_native () + 57
 fd7ffe3418d1  ()
 fd7ffe341f5d  ()
 004b5e55 scheme_do_eval () + 1e55
 004b6e37 _scheme_apply_multi_from_native () + 57
 fd7ffe710ffc  ()
 004b5e55 scheme_do_eval () + 1e55
 004cbc52 apply_k () + b2
 004d3ce8 scheme_top_level_do_worker () + 828
 006c705f start_child () + 3ef
 006d0c34 make_subprocess () + 204
 006d0e74 scheme_thread_w_details () + e4
 fd7fffdfa0a8  ()
-  lwp# 2 / thread# 2  
-  lwp# 3 / thread# 3  
-  lwp# 4 / thread# 4  
-  lwp# 5 / thread# 5  
-  lwp# 6 / thread# 6  

[racket-users] Thanks for latest performance improvements

2015-09-24 Thread JCG
I just rewrote an existing C++ server in Racket in two days, dropping 2,000 C++ 
lines to 700 Racket lines.

The architecture of the previous server was based on fine planning and 
implementation, but quickly degraded from an 18-month succession of band-aids.  
Having laid out a replacement plan, I built a prototype in Racket.  The Racket 
implementation was really clear for me, but sadly about 20 times slower than 
its C++ predecessor.   I tracked half the problem to inefficient netstring 
parsing which brought me to 10 times.  The rest of the performance difference 
appeared to be networking throughput.

So, I was happy with this as a prototype, and it had cleared up enough logic 
that I could actually envision how to clean up everything C++-wise.  I realized 
that following the Racket work, I could probably drop my 2,000 C++ lines to 
1,500 nicer ones.  So, the prototyping had been useful.  

Then, something struck me.  I was running the default 6.1 Racket on my Debian 
8.  I thought that I'd see if anything changed performance-wise, so I placed 
Racket 6.2.900.17 into my /tmp directory and ran the server on that.

I have no idea what networking implementation facts have changed between 6.1 
and this snapshot, but it's now about 20% faster than the C++ server. The 
reimplemented service will remain in Racket.

Thanks to whomever it was that jacked up the networking speed.



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Generating preorders

2015-09-24 Thread erich
 
Von: "Jerzy Karczmarczuk" 
An:"Racket Users" 
Cc:
Gesendet:Thu, 24 Sep 2015 01:07:12 +0200
Betreff:Re: [racket-users] Generating preorders

 A general remark...

 Josh constructs the list of ALL combinations and all total preorders.

 Erich apparently tried the same, so it is OK, but the solution in
Python 
 with generators is more economic, incremental, "non-deterministic".
This 
 somehow didn't appeal to Erich, who calls it an "advanced" feature of

 Python...

By "advanced feature" I really just meant "advanced feature" and
wanted to convey the fact that I didn't know how to extract the actual
algorithm from the example. I'm just not used to reading Python
programs, that's all. In other words, the solution appealed a lot to
me, but I needed one in Racket. 

Thanks a lot again for all the help!


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Scribble: Typeset equations using Latex packages amsmath and amssym

2015-09-24 Thread Alex Knauth

> On Sep 24, 2015, at 7:51 AM, Marc Kaufmann  wrote:
> 
> Ah, I actually had tried that and was about to send you the error code for 
> bad syntax. But then I realised that it complained about me defining $ as the 
> equivalent of math-inline, which of course clashes with #\$.

Oh. 
Well, if you can change the #\$ to a different character, say #\^, then you can 
use ^[\begin{equation*}] instead, to avoid clashes.

> So now it works.
> 
> Btw, what does #\$ do? Is it a package? And does the order of the #lang 
> raw-string ... matter?

It's an option that allows you to change the character that it uses to start a 
raw string, and yes the order does matter.
You have to put the base language before the character, and since it takes a 
module language as a base, not a #lang language, you can't for instance do 
`#lang raw-string at-exp racket #\$`, but you can do `#lang at-exp raw-string 
racket #\$`, because at-exp is more flexible than raw-string.
It might be possible to make raw-string accept an arbitrary #lang language, but 
I don't know how.

> Thanks for the solutions,
> Marc
> 
> On Thu, Sep 24, 2015 at 7:34 AM, Alex Knauth  > wrote:
> 
>> On Sep 24, 2015, at 6:41 AM, Marc Kaufmann > > wrote:
>> 
>> Thanks Alex,
>> 
>> To avoid dealing with escapes like that, you could use the raw-string 
>> package, which lets you do this:
>> raco pkg install raw-string
>> 
>> #lang raw-string/raw-string racket/base #\$
>> 
>> 
>> When I add the package via raco and change the #lang line as you suggest, I 
>> get the following error when running scribble:
>> 
>> ---
>> marc$ scribble --prefix scribble-prefix.tex --pdf effort-tracking.scrbl 
>> standard-module-name-resolver: collection not found
>>   collection: "raw-string/raw-string/lang"
>>   in collection directories:
>>/home/marc/.racket/5.3.6/pkgs/installed/raw-string
>>/home/marc/.racket/5.3.6/pkgs/installed/base
>>/home/marc/.racket/5.3.6/collects
>>/usr/share/racket/collects
> 
> 
>> The raw-string package is actually under 
>> ~/.racket/5.3.6/pkgs/installed/raw-string, so I am not sure what's going on. 
> 
> It might have been installed as `#lang raw-string` then, does that work?
> 
> It might be an issue with older versions of racket interpreting it as a 
> multi-collection package instead of a single-collection package.
> 
> 
>> You could also use at-exp for that, but raw-string is simpler.
>> 
>> 
>> How does the at-exp work? Or do you mean at-exp with raw-string?
> 
> No, I mean at-exp by itself with racket/base:
> 
> #lang at-exp racket/base
> 
> (require scribble/base
>  scribble/core)
> 
> (provide equation*)
> 
> (define (mymath start end . strs)
>   (make-element (make-style "relax" '(exact-chars)) `(,start ,@strs ,end)))
> 
> (define (equation* . strs)
>   (apply mymath @~a|{\begin{equation*}}| @~a|{\end{equation*}}| strs))
> 
> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Scribble: Typeset equations using Latex packages amsmath and amssym

2015-09-24 Thread Norman Gray


Greetings, all.

On 24 Sep 2015, at 13:12, Alex Knauth wrote:

Ah, I actually had tried that and was about to send you the error 
code for bad syntax. But then I realised that it complained about me 
defining $ as the equivalent of math-inline, which of course clashes 
with #\$.



Oh.
Well, if you can change the #\$ to a different character, say #\^, 
then you can use ^[\begin{equation*}] instead, to avoid clashes.


At the risk of a slight tangent...

Recall that (La)TeX allows fairly extensive reallocation of 
functionality to characters: the escape character doesn't have to be 
backslash, the math-open character doesn't have to be dollar.


In my experience, when generating (La)TeX, it's useful to do some 
category-code magic -- even using non-ASCII characters for some of the 
categories -- and generate LaTeX accordingly.  The resulting LaTeX looks 
weird, but completely avoids a whole class of escaping headaches.


Thus:

This is ^Aemph^Bemphasised^C text, and standard LaTeX.

I can fill in further details if that would be useful.

All the best,

Norman


--
Norman Gray  :  http://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Thanks for latest performance improvements

2015-09-24 Thread Matthias Felleisen

> On Sep 24, 2015, at 5:59 AM, JCG  wrote:
> 
> 
> I have no idea what networking implementation facts have changed between 6.1 
> and this snapshot, but it's now about 20% faster than the C++ server. The 
> reimplemented service will remain in Racket.


Wow. Did you test under ‘real world’ circumstances or is this based on ‘micro 
benchmarks’? 


> Thanks to whomever it was that jacked up the networking speed.

No kidding. 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Racket Package Server Security Vulnerabilities

2015-09-24 Thread Michael Wilber
(sorry Sam, forgot to Cc list)

Thank you for disclosing these vulnerabilities! Responsible disclosure
helps everyone.

Sam Tobin-Hochstadt  writes:
> * Check any packages you have uploaded to the site, to ensure that no
> unexpected changes have been made to them.

Is package signing on Racket's roadmap? The only way to protect against
these kinds of attacks is to have clients verify package signatures.
Every major Linux package manager now does this. I think it's at least
worth seriously considering.

One question: If an attacker was able to access the server under the
privileges of the package website, what's stopping them from just
silently uploading a change and then removing that entry from the
"Package Changes" list?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] My Racket Learning Feedback

2015-09-24 Thread Shuhan Zhang

My Racket Learning Feedback

## Little backgroud
I 26 years old full-time software developer in China.
My major programming language is C, C++, C# and python.


## Why I write this
To some extent, you may see how a "average" programmer thinks about the Racket 
programming language.
;D

## Feedback
### Top 1: Add Built-in Generic Container
I 100% agreed with this article: 
http://programming-puzzler.blogspot.hk/2010/08/racket-vs-clojure.html

To be an attractive language for general programmer(instead of just for 
programming language researcher), 
it is vital to have a set of handy data structures and a simple, 
easy-to-remember interface to manage them.

For example, given the following facts, how do I persuade people that Racket is 
very promising and advanced:
+ I have to write `(vector-set! a i (+ (vector-ref a i) 3))` instead of 
`a[i]+=3`?
+ for map operation, I have to remember to use `vector-map` for vector, `map` 
for list, ... ?

I am sure that only 1% or less programmer have the patient to take time to 
learn the power of Racket macro,
given the fact that there is no built-in handy data structure in Racket.
Racket is not like C. In C we trade development-time for execution speed.
People just have **higher expectation** for any new, garbage-collected 
programming languages.

Alexis King's work looks fantastic. 
I think Racket need to build a good generic container into the install package
and introduce the easy-to-use interface from the **very beginning** of the 
Racket Guide. 

### Top 2: Macro document
Before learning racket, I asked myself "Why spend time on this language instead 
of some popular language like Go/Scala?"
The answer is "macro".
This is the only thing that is impossible in other languages.

I learnt Racket macro by reading the official document.
To be honest, the current official document is NOT good enough. 
It confuses people, and can't help readers to build a clear mental model about 
what is happening and why things work.
I can't believe a "how to write macro" document consumes me more time than 
understanding and writing my Y-combinator.

 by Greg Hendershott is great:
http://www.greghendershott.com/fear-of-macros/
I really hope I learnt Racket macro by  instead of Racket Guide.

I suggest replace the macro chapter of Racket Guide with ,
or at least add a link to it in the beginning.


## End
I am happy to spend time on helping improve Racket,
but as for the 2 problem above, I think I don't have the privilege.

If there's something I can help, please tell me.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] My Racket Learning Feedbacks

2015-09-24 Thread Shuhan Zhang

## Little background
I 26 years old full-time software developer in China.
My major programming language is C, C++, C# and python.


## Why I write this
To some extent, you may see how a "average" programmer thinks about the Racket 
programming language.
;D

## Feedback
### Top1: Add Built-in Generic Container
I 100% agreed with this article: 
http://programming-puzzler.blogspot.hk/2010/08/racket-vs-clojure.html

To be an attractive language for general programmer(instead of just for 
programming language researcher), 
it is vital to have a set of handy data structures and a simple, 
easy-to-remember interface to manage them.

For example, given the following facts, how do I persuade people that Racket is 
very promising and advanced:
+ I have to write `(vector-set! a i (+ (vector-ref a i) 3))` instead of 
`a[i]+=3`?
+ for map operation, I have to remember to use `vector-map` for vector, `map` 
for list, ... ?

I am sure that only 1% or less programmer have the patient to take time to 
learn the power of Racket macro,
given the fact that there is no built-in handy data structure in Racket.
Racket is not like C. In C we trade development-time for execution speed.
People just have higher expectation for any new, garbage-collected programming 
languages.

Alexis King's work looks fantastic. 
I think Racket need to build a good generic container into the install package
and introduce the easy-to-use interface from the very beginning of the 
documents. 

### Top2: Macro document
Before learning racket, I asked myself "Why spend time on this language instead 
of some popular language like Go/Scala?"
The answer is "macro".
This is the only thing that is impossible in other languages.

I learnt Racket macro by reading the official document.
To be honest, the current official document is NOT good enough. 
It confuses people, and can't help readers to build a clear mental model about 
what is happening and why things work.
I can't believe a "how to write macro" document consumes me more time than 
understanding and writing my Y-combinator.

 by Greg Hendershott is great:
http://www.greghendershott.com/fear-of-macros/
I really hope I learnt Racket macro by  instead of Racket Guide.

I suggest replace the macro chapter of Racket Guide with ,
or at least add a link to it in the beginning.


## End
I am happy to spend time on helping improve Racket,
but as for the 2 problem above, I think I don't have the privilege.

If there's something I can help, please tell me.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Racket for Smartphone Apps

2015-09-24 Thread mrmyers . random . suffix
I would personally caution against it, for the following reasons:
1. At least for Android, most of what you will need for this is interfacing 
with the respective gui libraries, which take a bit of getting used to, even 
just using Google's relatively helpful and complete documentation. Working with 
underspecified 3rd party tools even if by some chance you find them will 
inevitably be much more difficult than learning a bit of Java.
If you were working on something where most of the work is computing something 
rather than just interfacing, it might personally be worth it to you to go 
through the effort of setting things up with another language, but that does 
not seem to be the case.
2. Learning another programming language won't immediately remove any skills 
acquired in your first language.
3. In either case, I'm not sure an app is actually what you want for this. A 
website would be more easily cross-platform if that is something you value, and 
subjectively, I feel you'd have less steep of a learning curve. You'll need to 
be doing something with that survey data anyways.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Racket for Smartphone Apps

2015-09-24 Thread 'John Clements' via Racket Users

> On Sep 24, 2015, at 4:40 AM, Marc Kaufmann  wrote:
> 
> Hi all,
> 
> I am about to start writing an app. Really all it will have to do (for now) 
> is to give the user a bunch of survey questions at several times (per day or 
> week or whatever). It does matter quite a bit that it should work on both 
> Android and iOS (and Windows phones, if it it must). For further background, 
> I've never written an app in my life, but have worked on a bunch of websites. 
> I am good enough at it to know that I am not particularly good at web design.

This has nothing to do with Racket per se, but have you considered simply 
delivering your app as a web page? This advice would have saved me literally 
hundreds of programmer-hours if I’d heeded it a year ago. Also (and perhaps 
surprisingly), it is generally a *lot* easier to get something that looks 
decent using HTML/CSS than developing a native app.

(Students insisted on native app, spent all year working on it, then I threw it 
away & did it in a week as a web app.)

Best,

John Clements


> 
> My questions are these:
> 
>   • I found a thread in February about Racket, and it seems to be the 
> case that the Racket runtime compiles to Android, but not to iOS (or only 
> with very careful configuration and crossing one's fingers). Is that correct? 
>   • What does it mean in practical terms that only the runtime compiles 
> to it? Or, to quote, that "the Racket runtime system at least compile[s] as a 
> framework for iOS (as it does already for Android)". What is missing in terms 
> of functionality, both on the users' side and the developers?
>   • Is there any open source code out there from someone who has written 
> an app in Racket (even if generating HTML5 and JS) so that I can get a sense 
> of what is a sensible way of going about this? The second best would be 
> pointers to good GUI programming in Racket.
>   • Would people caution against using Racket for this at this stage - 
> i.e. is there a high chance I'll spend a much larger fraction of my time 
> chasing down errors related to portability than would be the case with 
> alternatives? Since I want to get things working on Android and iOS, I might 
> have these problems with most solutions. 
> My main reason for wanting to use Racket is that I don't want to learn 
> another language (and be mediocre at it yet again) if I can avoid it, and the 
> only other languages I can code in without internet connection are Python and 
> R. R would be rather original as an app programming language.
> 
> Thanks,
> 
> Marc
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Redex: call for alpha-equivalence beta testers

2015-09-24 Thread 'William J. Bowman' via Racket Users
Paul asked me to forward this as racket-users is currently rejecting him:

> On Sep 24, 2015, at 14:36, Paul Stansifer  wrote:
> 
> Sorry about that; it looks like I forgot to check the examples after 
> disabling 'rib'. The fix is to change all instances of 'rib' to 'shadow'. 
> I'll try to push a fix soon, but I won't get a chance to do it today. 
> 
> Paul
> 
>> On Thursday, September 24, 2015, William J. Bowman  
>> wrote:
>> I get this error several times during the final `raco setup`:
>> 
>> redex-examples/redex/examples/lazy-with-binding.rkt:30:38: define-language: 
>> expected a shadow, nothing, or nonterminal
>>   in: (rib x ...)
>>   compilation context...:
>>
>> /home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-examples/redex/examples/lazy-with-binding.rkt
>>   context...:
>>
>> /home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/binding-forms-compiler.rkt:190:12:
>>  process-under
>>
>> /home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/binding-forms-compiler.rkt:169:1:
>>  surface-bspec->pat
>>
>> /home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/binding-forms-compiler.rkt:19:1:
>>  compile-binding-forms
>>
>> /home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/reduction-semantics.rkt:1885:0
>>
>> /home/bluephoenix47/workspace/racket/racket/collects/syntax/wrap-modbeg.rkt:46:4
>>
>> /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:346:0: 
>> compile-zo*
>>
>> /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:561:26
>>
>> /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:553:42
>>
>> /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:518:0: 
>> maybe-compile-zo
>>
>> /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:633:2: 
>> do-check
>>/home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:713:4
>>/home/bluephoenix47/workspace/racket/racket/collects/setup/..:261:28
>>/home/bluephoenix47/workspace/racket/racket/collects/setup/..:261:28
>>
>> /home/bluephoenix47/workspace/racket/racket/collects/setup/parallel-do.rkt:435:20:
>>  loop
>> 
>> 
>> I'd add an issue in the repo, but Paul's fork seems to have issues
>> disabled.
>> 
>> --
>> William J Bowman
>> 
>> On Sat, Sep 19, 2015 at 12:21:17PM -0500, Robby Findler wrote:
>> > Paul Stansifer has been implementing the ideas from his dissertation
>> > work in Redex and is now ready to share them with the world.
>> >
>> > Thanks to Paul, Redex languages now understand binding structure,
>> > meaning that if you write a substitution function that just blindly
>> > substitutes, it will actually properly do alpha conversion to avoid
>> > name collisions. In general, pattern matching now has alpha
>> > equivalence smarts (see the docs for more).
>> >
>> > The new features include the #:binding keyword in define-language and
>> > extend-language, and the alpha-equivalent? and substitute functions.
>> >
>> > The plan is to let it stay only in Paul's repo until the next release
>> > goes out and then push it to the main Redex repo to be included in the
>> > release after this one. If you'd like to give it a try, some
>> > instructions are below. Please let us know how it goes!
>> >
>> > Robby
>> >
>> >
>> > 
>> >
>> > To try it out, first download a snapshot build:
>> >
>> >http://pre.racket-lang.org/installers/
>> >
>> > and then create a parent directory to hold the git repo for Redex:
>> >
>> >   cd PLTDIR; mkdir extra-pkgs; cd extra-pkgs
>> >
>> > run this command to get the git version of Redex:
>> >
>> > raco pkg update --clone redex \
>> >   "git://github.com/racket/redex?path=redex" \
>> >   "git://github.com/racket/redex?path=redex-benchmark" \
>> >   "git://github.com/racket/redex?path=redex-doc" \
>> >   "git://github.com/racket/redex?path=redex-examples" \
>> >   "git://github.com/racket/redex?path=redex-gui-lib" \
>> >   "git://github.com/racket/redex?path=redex-lib" \
>> >   "git://github.com/racket/redex?path=redex-pict-lib" \
>> >   "git://github.com/racket/redex?path=redex-test"
>> >
>> > and then get Paul's version:
>> >
>> >   cd redex
>> >   git remote add paul https://github.com/paulstansifer/redex-1.git
>> >   git checkout public
>> >   raco setup
>> >
>> > --
>> > You received this message because you are subscribed to the Google Groups 
>> > "Racket Users" group.
>> > To unsubscribe from this group and stop receiving emails from it, send an 
>> > email to racket-users+unsubscr...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving 

Re: [racket-users] Racket for Smartphone Apps

2015-09-24 Thread j b
Another approach is to use something like cordova.  It basically wraps an 
html/js app in a container that runs on the phone as an app. It's cross 
platform and exposes phone functionality through plugins.  You could always 
write a racket webapi server if you needed server side processing. 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Cover 3.0

2015-09-24 Thread 'John Clements' via Racket Users

> On Sep 22, 2015, at 1:03 PM, Spencer Florence  wrote:
> 
> Hi all,
> 
> We're pleased to announce the release of Cover 3.0!
> 
> Cover is an extensible multi-file code coverage tool for Racket. You can read 
> more about it in our
> README at https://github.com/florence/cover .

Finally got to give this a try. Super awesome!

John Clements



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Thanks for latest performance improvements

2015-09-24 Thread John Griffin
It's pretty real world for me.

The server offers coalesced data from Zacks, TradingEconomics, ETFdb, the
Federal Reserve, the US Commodities Futures Trading Commission and about 10
other sources for consumption by our systems.  Against that server, I'm
running hundreds ETF models daily, each of which loads about 10 time series
for each of 50 to 3000 stocks, each of those with years of data.

Currently, I've fired up a second cloud sibling to the production C++ box.
The new Racket code there is running well, not much faster in total though,
because the processes that crank on the data have not changed (C++ with
Python on top).  The runs are just short of two hours.

The only downside that I see is that I'm using 300 megs of RAM against the
C++'s 60.

By the way, I've also discovered considerable improvements in database
access and FFI speeds, so hats off to those guys too.

Thanks again,
John Griffin






On Thu, Sep 24, 2015 at 10:52 AM, Matthias Felleisen 
wrote:

>
> On Sep 24, 2015, at 5:59 AM, JCG  wrote:
>
>
> I have no idea what networking implementation facts have changed between
> 6.1 and this snapshot, but it's now about 20% faster than the C++ server.
> The reimplemented service will remain in Racket.
>
>
>
> Wow. Did you test under ‘real world’ circumstances or is this based on
> ‘micro benchmarks’?
>
>
> Thanks to whomever it was that jacked up the networking speed.
>
>
> No kidding.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Redex: call for alpha-equivalence beta testers

2015-09-24 Thread William J. Bowman
I get this error several times during the final `raco setup`:

redex-examples/redex/examples/lazy-with-binding.rkt:30:38: define-language: 
expected a shadow, nothing, or nonterminal
  in: (rib x ...)
  compilation context...:
   
/home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-examples/redex/examples/lazy-with-binding.rkt
  context...:
   
/home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/binding-forms-compiler.rkt:190:12:
 process-under
   
/home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/binding-forms-compiler.rkt:169:1:
 surface-bspec->pat
   
/home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/binding-forms-compiler.rkt:19:1:
 compile-binding-forms
   
/home/bluephoenix47/workspace/racket/racket/share/extra-pkgs/redex/redex-lib/redex/private/reduction-semantics.rkt:1885:0
   
/home/bluephoenix47/workspace/racket/racket/collects/syntax/wrap-modbeg.rkt:46:4
   /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:346:0: 
compile-zo*
   /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:561:26
   /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:553:42
   /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:518:0: 
maybe-compile-zo
   /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:633:2: 
do-check
   /home/bluephoenix47/workspace/racket/racket/collects/compiler/cm.rkt:713:4
   /home/bluephoenix47/workspace/racket/racket/collects/setup/..:261:28
   /home/bluephoenix47/workspace/racket/racket/collects/setup/..:261:28
   
/home/bluephoenix47/workspace/racket/racket/collects/setup/parallel-do.rkt:435:20:
 loop


I'd add an issue in the repo, but Paul's fork seems to have issues
disabled.

-- 
William J Bowman

On Sat, Sep 19, 2015 at 12:21:17PM -0500, Robby Findler wrote:
> Paul Stansifer has been implementing the ideas from his dissertation
> work in Redex and is now ready to share them with the world.
> 
> Thanks to Paul, Redex languages now understand binding structure,
> meaning that if you write a substitution function that just blindly
> substitutes, it will actually properly do alpha conversion to avoid
> name collisions. In general, pattern matching now has alpha
> equivalence smarts (see the docs for more).
> 
> The new features include the #:binding keyword in define-language and
> extend-language, and the alpha-equivalent? and substitute functions.
> 
> The plan is to let it stay only in Paul's repo until the next release
> goes out and then push it to the main Redex repo to be included in the
> release after this one. If you'd like to give it a try, some
> instructions are below. Please let us know how it goes!
> 
> Robby
> 
> 
> 
> 
> To try it out, first download a snapshot build:
> 
>http://pre.racket-lang.org/installers/
> 
> and then create a parent directory to hold the git repo for Redex:
> 
>   cd PLTDIR; mkdir extra-pkgs; cd extra-pkgs
> 
> run this command to get the git version of Redex:
> 
> raco pkg update --clone redex \
>   "git://github.com/racket/redex?path=redex" \
>   "git://github.com/racket/redex?path=redex-benchmark" \
>   "git://github.com/racket/redex?path=redex-doc" \
>   "git://github.com/racket/redex?path=redex-examples" \
>   "git://github.com/racket/redex?path=redex-gui-lib" \
>   "git://github.com/racket/redex?path=redex-lib" \
>   "git://github.com/racket/redex?path=redex-pict-lib" \
>   "git://github.com/racket/redex?path=redex-test"
> 
> and then get Paul's version:
> 
>   cd redex
>   git remote add paul https://github.com/paulstansifer/redex-1.git
>   git checkout public
>   raco setup
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


pgpfcghjaOR0v.pgp
Description: PGP signature


Re: [racket-users] Redex: call for alpha-equivalence beta testers

2015-09-24 Thread William J. Bowman
I just ported Cur to use this version of Redex
(https://github.com/wilbowma/cur/tree/redex-with-binding), and was able
to delete and simplify many lines of code and get all tests passing in
minutes. Hurrah! Although, I do not have interesting binding structure.

A few comments

0. Was very easy; kudos. The new Redex build was completely backwards
compatible, and all changes to my code were simplifications, such
as deleting my hand-rolled α-equivalence relation, and deleting
substitution. 

1. It was not obvious to me that /binding-pattern/ was not just a
grammar but a pattern. I tried to specify binding with:

   #:binding-forms (Π (x : t) t #:refers-to x),

but this caused problems until I changed it to:

  #:binding-forms (Π (x : t_0) t_1 #:refers-to x)

2. default-lang was not properly linked in at least one place in the
documentation (in the explanation of default-equiv).

3. I'm getting some seriously long names, making output rather unreadable. The 
output of some of my tests:

  '(λ (x159160161162 : Bool) x159160161162)
  '(λ (x168169170171172 : Bool) x168169170171172)
  '(λ (x178179180181182183 : Bool) x178179180181182183)
  '(λ (x189190191192193194195 : Bool) x189190191192193194195)

Previously, this output was

  '(λ (x2 : Bool) x2)
  '(λ (x1 : Bool) x1)
  '(λ (x2 : Bool) x2)
  '(λ (x1 : Bool) x1)

-- 
William J. Bowman

On Sat, Sep 19, 2015 at 12:21:17PM -0500, Robby Findler wrote:
> Paul Stansifer has been implementing the ideas from his dissertation
> work in Redex and is now ready to share them with the world.
> 
> Thanks to Paul, Redex languages now understand binding structure,
> meaning that if you write a substitution function that just blindly
> substitutes, it will actually properly do alpha conversion to avoid
> name collisions. In general, pattern matching now has alpha
> equivalence smarts (see the docs for more).
> 
> The new features include the #:binding keyword in define-language and
> extend-language, and the alpha-equivalent? and substitute functions.
> 
> The plan is to let it stay only in Paul's repo until the next release
> goes out and then push it to the main Redex repo to be included in the
> release after this one. If you'd like to give it a try, some
> instructions are below. Please let us know how it goes!
> 
> Robby
> 
> 
> 
> 
> To try it out, first download a snapshot build:
> 
>http://pre.racket-lang.org/installers/
> 
> and then create a parent directory to hold the git repo for Redex:
> 
>   cd PLTDIR; mkdir extra-pkgs; cd extra-pkgs
> 
> run this command to get the git version of Redex:
> 
> raco pkg update --clone redex \
>   "git://github.com/racket/redex?path=redex" \
>   "git://github.com/racket/redex?path=redex-benchmark" \
>   "git://github.com/racket/redex?path=redex-doc" \
>   "git://github.com/racket/redex?path=redex-examples" \
>   "git://github.com/racket/redex?path=redex-gui-lib" \
>   "git://github.com/racket/redex?path=redex-lib" \
>   "git://github.com/racket/redex?path=redex-pict-lib" \
>   "git://github.com/racket/redex?path=redex-test"
> 
> and then get Paul's version:
> 
>   cd redex
>   git remote add paul https://github.com/paulstansifer/redex-1.git
>   git checkout public
>   raco setup
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


pgpGTGix3Meza.pgp
Description: PGP signature


Re: [racket-users] Ambiguous binding error, and trying to add generic-interface inheritance

2015-09-24 Thread Alex Knauth
I've figured out where the error is coming from, but I still have no idea 
what's going on.
racket/private/generic-methods.rkt starting on line 174:
(define-syntax (generic-methods stx)
(syntax-case stx ()
  [(_ gen def ...)
   (let ()
 (define info (get-info 'generic-methods stx #'gen))
 (define orig-id (generic-info-name info))
 (define methods (map (make-method-delta #'gen orig-id)
  (generic-info-method-names info)))
 (with-syntax ([(method ...) methods])
   (syntax/loc stx
 (syntax-parameterize ([generic-method-outer-context #'gen])
   (letrec-syntaxes+values
([(method) (make-unimplemented 'method)] ...)
()
(syntax-parameterize ([generic-method-inner-context #'gen])
  def ...
  (values (implementation method) ...)))]))

I didn't change this code at all, but something about how I'm setting up the 
generic interface is causing this to give the ambiguous binding error.
I'm getting the error for get method, which came from a super interface 
(gen:getter), but the has? method, which comes directly from the sub interface 
(gen:pattern), works fine.

#lang racket/base

(require racket/generic rackunit racket/private/generic-methods
 syntax/macro-testing
 (for-syntax racket/base syntax/parse))

(define-generics getter
  (get getter target))

(define-generics pattern
  (has? pattern target)
  #:extends gen:getter)

(generic-methods
 gen:pattern
 (define (has? this target) (pair? target))) ; this works fine

(convert-compile-time-error
 (generic-methods
  gen:pattern
  (define (get this target) (car target ; this gives an ambiguous binding 
error

https://travis-ci.org/AlexKnauth/racket/jobs/82000849#L1868
https://github.com/AlexKnauth/racket/blob/54780f05931ac155589ff0f307e79b76a774a61b/pkgs/racket-test/tests/generic/extend.rkt

Any help?

> On Sep 23, 2015, at 9:04 PM, Alexander D. Knauth  wrote:
> 
> I'm trying to add inheritance to generic interfaces:
> https://github.com/AlexKnauth/racket/tree/gen-extends 
> 
> 
> But it's in a weird state where it's passing some of the time, (seemingly 
> depending on how exactly I fiddle with it, compile it, restart DrRacket, 
> and/or other things), but the other times it's giving me ambiguous binding 
> errors like this:
> 
> https://travis-ci.org/AlexKnauth/racket/jobs/81884173#L1461 
> 
> 
> pkgs/racket-test/tests/generic/extend.rkt:6:3: get: identifier's binding is 
> ambiguous
>   context...:
>#(894142 module) #(894143 module extend 0) #(895177 macro) #(895618 local)
>#(895650 intdef) #(895651 local) #(895652 intdef) #(895655 local)
>#(895656 intdef) #(895661 local) #(895663 intdef) #(895664 local)
>#(895665 intdef) #(895666 local) #(895667 intdef) #(895671 local)
>#(895673 intdef) #(895674 local) #(895675 intdef)
>   matching binding...:
>local get128618
>#(894142 module) #(894143 module extend 0) #(895618 local) #(895650 intdef)
>#(895651 local) #(895652 intdef) #(895655 local) #(895656 intdef) #(895661 
> local)
>#(895663 intdef) #(895664 local) #(895665 intdef) #(895666 local)
>#(895667 intdef) #(895671 local) #(895673 intdef) #(895674 local)
>#(895675 intdef)
>   matching binding...:
>local get128614
>#(894142 module) #(894143 module extend 0) #(895177 macro) #(895618 local)
>#(895650 intdef) #(895651 local) #(895652 intdef) #(895655 local)
>#(895656 intdef) #(895661 local) #(895663 intdef) #(895664 local)
>#(895665 intdef) #(895666 local)
>   matching binding...:
>#f
>#(894142 module) #(894143 module extend 0)
>   in: get
>   compilation context...:
>
> /Users/travis/build/AlexKnauth/racket/pkgs/racket-test/tests/generic/extend.rkt
>   context...:
>
> /Users/travis/build/AlexKnauth/racket/racket/collects/racket/private/generic-methods.rkt:161:2
> 
> I'm also getting errors from data/order.rkt, but that's a separate problem, 
> and an easy one to fix. (I already did on my computer, but Travis is getting 
> data/order from the package, not from my computer.)
> 
> Do you have any idea what's going on, or how to do this right?
> 
> Thanks!
> Alex Knauth
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com 
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to