Re: [racket-users] Iteration speed

2015-06-01 Thread Matthew Butterick
I've increasingly been using TR this way (= keeping code in a state where it 
can be easily toggled between typechecked and not). It works, though I'm still 
thinking about how to achieve better ergonomics with these issues, which don't 
have automatic solutions:

Q1. How to toggle between `#lang typed/...` and `#lang typed/.../no-check` in a 
group of files.

Q2. How to `(require ...)` typed or untyped versions of other libraries 
depending on whether I'm running in `no-check` mode.

Q3. How to preserve the semantics of type-derived predicates in `no-check`, 
which otherwise all become false.

(define-predicate foo? FooType)
(foo? x) ;; in `no-check` this will always return #f, which breaks the code





On Jun 1, 2015, at 4:39 PM, Sam Tobin-Hochstadt  wrote:

> Yes, if you just change `#lang typed/racket/base` to `#lang
> typed/racket/base/no-check`, that's what you'll get.
> 
> Sam
> 
> On Mon, Jun 1, 2015 at 10:34 PM, John Carmack  wrote:
>> Is there an option to parse all the type annotations, but not do any of the 
>> checking? Highly interactive tuning sessions could work without type 
>> checking, then turn it back on for structural work.
>> 
>> 
>> 
>>> On Jun 1, 2015, at 9:05 PM, Sam Tobin-Hochstadt  
>>> wrote:
>>> 
>>> Unfortunately, Typed Racket typechecking is pretty slow, and so the
>>> times you have there are not out of the ordinary. The most significant
>>> thing that's slow in Typed Racket is type checking numeric operations,
>>> because both the numbers themselves and the operations have
>>> complicated types.
>>> 
>>> If you can say more about the program in particular, I can maybe
>>> suggest something that would speed it up, but it's currently a
>>> combination of expensive-in-principle algorithms and not being
>>> designed for speed many years ago when I started.
>>> 
>>> Sam
>>> 
 On Mon, Jun 1, 2015 at 9:06 PM, John Carmack  wrote:
 I am working on a little project to remotely drive a VR headset with code
 written in Racket as an attempt to make a significantly faster development
 environment for certain types of VR apps.  I am worried about what appears
 to be the compile speed.
 
 
 
 It takes over three seconds from hitting ctrl-R in DrRacket to executing 
 the
 first statement of a 350 line typed racket program.  It only uses:
 
 #lang typed/racket/base
 
 (require racket/tcp)
 
 
 
 That seems to be about twice as slow as a larger untyped racket program
 using a bunch more stuff, but even that isn’t great:
 
 #lang racket
 
 (require 2htdp/universe)
 
 (require 2htdp/image)
 
 (require 2htdp/planetcute)
 
 (require (only-in racket/gui/base play-sound))
 
 
 
 Does Run from DrRacket  have a significant time penalty?
 
 Are there any steps I can take to make typed racket compile faster?
 
 In many cases I don’t care much about the execution speed.
 
 
 
 I would like to think that compiling and running a few hundred lines of 
 code
 on a modern desktop system should be essentially instant.
 
 
 
 
 
 --
 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.
> 
> -- 
> 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] Iteration speed

2015-06-01 Thread Sam Tobin-Hochstadt
Yes, if you just change `#lang typed/racket/base` to `#lang
typed/racket/base/no-check`, that's what you'll get.

Sam

On Mon, Jun 1, 2015 at 10:34 PM, John Carmack  wrote:
> Is there an option to parse all the type annotations, but not do any of the 
> checking? Highly interactive tuning sessions could work without type 
> checking, then turn it back on for structural work.
>
>
>
>> On Jun 1, 2015, at 9:05 PM, Sam Tobin-Hochstadt  wrote:
>>
>> Unfortunately, Typed Racket typechecking is pretty slow, and so the
>> times you have there are not out of the ordinary. The most significant
>> thing that's slow in Typed Racket is type checking numeric operations,
>> because both the numbers themselves and the operations have
>> complicated types.
>>
>> If you can say more about the program in particular, I can maybe
>> suggest something that would speed it up, but it's currently a
>> combination of expensive-in-principle algorithms and not being
>> designed for speed many years ago when I started.
>>
>> Sam
>>
>>> On Mon, Jun 1, 2015 at 9:06 PM, John Carmack  wrote:
>>> I am working on a little project to remotely drive a VR headset with code
>>> written in Racket as an attempt to make a significantly faster development
>>> environment for certain types of VR apps.  I am worried about what appears
>>> to be the compile speed.
>>>
>>>
>>>
>>> It takes over three seconds from hitting ctrl-R in DrRacket to executing the
>>> first statement of a 350 line typed racket program.  It only uses:
>>>
>>> #lang typed/racket/base
>>>
>>> (require racket/tcp)
>>>
>>>
>>>
>>> That seems to be about twice as slow as a larger untyped racket program
>>> using a bunch more stuff, but even that isn’t great:
>>>
>>> #lang racket
>>>
>>> (require 2htdp/universe)
>>>
>>> (require 2htdp/image)
>>>
>>> (require 2htdp/planetcute)
>>>
>>> (require (only-in racket/gui/base play-sound))
>>>
>>>
>>>
>>> Does Run from DrRacket  have a significant time penalty?
>>>
>>> Are there any steps I can take to make typed racket compile faster?
>>>
>>> In many cases I don’t care much about the execution speed.
>>>
>>>
>>>
>>> I would like to think that compiling and running a few hundred lines of code
>>> on a modern desktop system should be essentially instant.
>>>
>>>
>>>
>>>
>>>
>>> --
>>> 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.

-- 
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] Iteration speed

2015-06-01 Thread Spencer Florence
There is a `#lang typed/racket/base/no-check`

On Mon, Jun 1, 2015 at 9:34 PM John Carmack  wrote:

> Is there an option to parse all the type annotations, but not do any of
> the checking? Highly interactive tuning sessions could work without type
> checking, then turn it back on for structural work.
>
>
>
> > On Jun 1, 2015, at 9:05 PM, Sam Tobin-Hochstadt 
> wrote:
> >
> > Unfortunately, Typed Racket typechecking is pretty slow, and so the
> > times you have there are not out of the ordinary. The most significant
> > thing that's slow in Typed Racket is type checking numeric operations,
> > because both the numbers themselves and the operations have
> > complicated types.
> >
> > If you can say more about the program in particular, I can maybe
> > suggest something that would speed it up, but it's currently a
> > combination of expensive-in-principle algorithms and not being
> > designed for speed many years ago when I started.
> >
> > Sam
> >
> >> On Mon, Jun 1, 2015 at 9:06 PM, John Carmack  wrote:
> >> I am working on a little project to remotely drive a VR headset with
> code
> >> written in Racket as an attempt to make a significantly faster
> development
> >> environment for certain types of VR apps.  I am worried about what
> appears
> >> to be the compile speed.
> >>
> >>
> >>
> >> It takes over three seconds from hitting ctrl-R in DrRacket to
> executing the
> >> first statement of a 350 line typed racket program.  It only uses:
> >>
> >> #lang typed/racket/base
> >>
> >> (require racket/tcp)
> >>
> >>
> >>
> >> That seems to be about twice as slow as a larger untyped racket program
> >> using a bunch more stuff, but even that isn’t great:
> >>
> >> #lang racket
> >>
> >> (require 2htdp/universe)
> >>
> >> (require 2htdp/image)
> >>
> >> (require 2htdp/planetcute)
> >>
> >> (require (only-in racket/gui/base play-sound))
> >>
> >>
> >>
> >> Does Run from DrRacket  have a significant time penalty?
> >>
> >> Are there any steps I can take to make typed racket compile faster?
> >>
> >> In many cases I don’t care much about the execution speed.
> >>
> >>
> >>
> >> I would like to think that compiling and running a few hundred lines of
> code
> >> on a modern desktop system should be essentially instant.
> >>
> >>
> >>
> >>
> >>
> >> --
> >> 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.
>

-- 
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] Iteration speed

2015-06-01 Thread John Carmack
Is there an option to parse all the type annotations, but not do any of the 
checking? Highly interactive tuning sessions could work without type checking, 
then turn it back on for structural work.



> On Jun 1, 2015, at 9:05 PM, Sam Tobin-Hochstadt  wrote:
> 
> Unfortunately, Typed Racket typechecking is pretty slow, and so the
> times you have there are not out of the ordinary. The most significant
> thing that's slow in Typed Racket is type checking numeric operations,
> because both the numbers themselves and the operations have
> complicated types.
> 
> If you can say more about the program in particular, I can maybe
> suggest something that would speed it up, but it's currently a
> combination of expensive-in-principle algorithms and not being
> designed for speed many years ago when I started.
> 
> Sam
> 
>> On Mon, Jun 1, 2015 at 9:06 PM, John Carmack  wrote:
>> I am working on a little project to remotely drive a VR headset with code
>> written in Racket as an attempt to make a significantly faster development
>> environment for certain types of VR apps.  I am worried about what appears
>> to be the compile speed.
>> 
>> 
>> 
>> It takes over three seconds from hitting ctrl-R in DrRacket to executing the
>> first statement of a 350 line typed racket program.  It only uses:
>> 
>> #lang typed/racket/base
>> 
>> (require racket/tcp)
>> 
>> 
>> 
>> That seems to be about twice as slow as a larger untyped racket program
>> using a bunch more stuff, but even that isn’t great:
>> 
>> #lang racket
>> 
>> (require 2htdp/universe)
>> 
>> (require 2htdp/image)
>> 
>> (require 2htdp/planetcute)
>> 
>> (require (only-in racket/gui/base play-sound))
>> 
>> 
>> 
>> Does Run from DrRacket  have a significant time penalty?
>> 
>> Are there any steps I can take to make typed racket compile faster?
>> 
>> In many cases I don’t care much about the execution speed.
>> 
>> 
>> 
>> I would like to think that compiling and running a few hundred lines of code
>> on a modern desktop system should be essentially instant.
>> 
>> 
>> 
>> 
>> 
>> --
>> 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] Iteration speed

2015-06-01 Thread Sam Tobin-Hochstadt
Unfortunately, Typed Racket typechecking is pretty slow, and so the
times you have there are not out of the ordinary. The most significant
thing that's slow in Typed Racket is type checking numeric operations,
because both the numbers themselves and the operations have
complicated types.

If you can say more about the program in particular, I can maybe
suggest something that would speed it up, but it's currently a
combination of expensive-in-principle algorithms and not being
designed for speed many years ago when I started.

Sam

On Mon, Jun 1, 2015 at 9:06 PM, John Carmack  wrote:
> I am working on a little project to remotely drive a VR headset with code
> written in Racket as an attempt to make a significantly faster development
> environment for certain types of VR apps.  I am worried about what appears
> to be the compile speed.
>
>
>
> It takes over three seconds from hitting ctrl-R in DrRacket to executing the
> first statement of a 350 line typed racket program.  It only uses:
>
> #lang typed/racket/base
>
> (require racket/tcp)
>
>
>
> That seems to be about twice as slow as a larger untyped racket program
> using a bunch more stuff, but even that isn’t great:
>
> #lang racket
>
> (require 2htdp/universe)
>
> (require 2htdp/image)
>
> (require 2htdp/planetcute)
>
> (require (only-in racket/gui/base play-sound))
>
>
>
> Does Run from DrRacket  have a significant time penalty?
>
> Are there any steps I can take to make typed racket compile faster?
>
> In many cases I don’t care much about the execution speed.
>
>
>
> I would like to think that compiling and running a few hundred lines of code
> on a modern desktop system should be essentially instant.
>
>
>
>
>
> --
> 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] Iteration speed

2015-06-01 Thread William J. Bowman
My mistake! Do you have the same issues if you run program/compile from
the command line with just `racket`?

-- 
William J. Bowman

On Tue, Jun 02, 2015 at 01:17:45AM +, John Carmack wrote:
> I meant time-to-compile penalty, not execution speed.  None of those options 
> seem to make much difference in the Ctrl-R-to-first-effect time.
> 
> -Original Message-
> From: William J. Bowman [mailto:w...@williamjbowman.com] 
> Sent: Monday, June 01, 2015 8:13 PM
> To: John Carmack
> Cc: Racket Users
> Subject: Re: [racket-users] Iteration speed
> 
> On Tue, Jun 02, 2015 at 01:06:34AM +, John Carmack wrote:
> > Does Run from DrRacket  have a significant time penalty?
> By default, DrRacket has debugging instrumentation enabled, which can 
> significantly slow down programs that you may expect to run fast.
> Disabling these will speed things up for you.
> For more information, see:
> https://urldefense.proofpoint.com/v1/url?u=http://docs.racket-lang.org/guide/performance.html&k=ZVNjlDMF0FElm4dQtryO4A%3D%3D%0A&r=Kjg6LltY9QjkipKooaVldA%3D%3D%0A&m=TtP0k4PM6zxM6Zs2sFIAlEm48kO0Bz9hZxPboH5sekQ%3D%0A&s=d4be7aca906d01beded37362c11e777290a6062ee2ff4e0e6e0d735550063c53
> 
> --
> William J. Bowman
> 
> Northeastern University
> College of Computer and Information Science

-- 
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.


signature.asc
Description: Digital signature


Re: [racket-users] Iteration speed

2015-06-01 Thread William J. Bowman
On Tue, Jun 02, 2015 at 01:06:34AM +, John Carmack wrote:
> Does Run from DrRacket  have a significant time penalty?
By default, DrRacket has debugging instrumentation enabled, which can
significantly slow down programs that you may expect to run fast.
Disabling these will speed things up for you.
For more information, see:
http://docs.racket-lang.org/guide/performance.html

-- 
William J. Bowman

Northeastern University
College of Computer and Information Science

-- 
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.


signature.asc
Description: Digital signature


[racket-users] Iteration speed

2015-06-01 Thread John Carmack
I am working on a little project to remotely drive a VR headset with code 
written in Racket as an attempt to make a significantly faster development 
environment for certain types of VR apps.  I am worried about what appears to 
be the compile speed.

It takes over three seconds from hitting ctrl-R in DrRacket to executing the 
first statement of a 350 line typed racket program.  It only uses:
#lang typed/racket/base
(require racket/tcp)

That seems to be about twice as slow as a larger untyped racket program using a 
bunch more stuff, but even that isn't great:
#lang racket
(require 2htdp/universe)
(require 2htdp/image)
(require 2htdp/planetcute)
(require (only-in racket/gui/base play-sound))

Does Run from DrRacket  have a significant time penalty?
Are there any steps I can take to make typed racket compile faster?
In many cases I don't care much about the execution speed.

I would like to think that compiling and running a few hundred lines of code on 
a modern desktop system should be essentially instant.


-- 
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] can't quite reproduce this contract error involving an exported function

2015-06-01 Thread 'John Clements' via users-redirect

> On Jun 1, 2015, at 1:46 PM, Robby Findler  wrote:
> 
> I think that if you don't have up to date .zo files, arbitrary badness
> can ensue.

Just to check my development model; generally, when I’m working on multiple 
interdependent libraries in a collection, my experience has been that if I make 
a change to one, DrR will recompile all of the ones that depend on it… right?

John

-- 
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] can't quite reproduce this contract error involving an exported function

2015-06-01 Thread Robby Findler
I think that if you don't have up to date .zo files, arbitrary badness
can ensue.

Robby

On Mon, Jun 1, 2015 at 3:16 PM, Asumu Takikawa  wrote:
> On 2015-06-01 12:50:33 -0700, 'John Clements' via users-redirect wrote:
>> Contract error: expected “text.rkt”, got #
>> from contract on gather-grades, with contract (“text.rkt” -> boolean?)
>>
>> … In other words, the “ClassInfo?” predicate had mysteriously been replaced
>> by one that checked for the value “text.rkt”, another value exported by the
>> original TR module.
>>
>> I made a trivial change to bad2.rkt to force recompilation, and as expected,
>> the error went away. I then spent 15 minutes trying to recreate the error,
>> but all I’m getting now is this:
>
> FWIW, I think I've seen a creepy error message like this too while using TR. I
> have no idea what caused it, but I was very confused. Solved it by nuking
> compiled files too.
>
> Cheers,
> Asumu
>
> --
> 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] can't quite reproduce this contract error involving an exported function

2015-06-01 Thread Asumu Takikawa
On 2015-06-01 12:50:33 -0700, 'John Clements' via users-redirect wrote:
> Contract error: expected “text.rkt”, got #
> from contract on gather-grades, with contract (“text.rkt” -> boolean?)
> 
> … In other words, the “ClassInfo?” predicate had mysteriously been replaced
> by one that checked for the value “text.rkt”, another value exported by the
> original TR module.
> 
> I made a trivial change to bad2.rkt to force recompilation, and as expected,
> the error went away. I then spent 15 minutes trying to recreate the error,
> but all I’m getting now is this:

FWIW, I think I've seen a creepy error message like this too while using TR. I
have no idea what caused it, but I was very confused. Solved it by nuking
compiled files too.

Cheers,
Asumu

-- 
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] can't quite reproduce this contract error involving an exported function

2015-06-01 Thread 'John Clements' via users-redirect
I just got an interesting and very scary contract error. I tried to reproduce 
it, but I can’t quite do it. I think I can see (part of) what’s going on, 
though.

Suppose I have a file called bad1.rkt that is in Typed Racket (I’m guessing 
this is significant) and exports a structure called ClassInfo using struct-out, 
along with a constant, e.g. K1, with value “text.rkt”.

I also have a file bad2.rkt that requires bad1, and exports a function called 
‘gather-grades’ with contract (-> ClassInfo? boolean?)

Finally, bad3.rkt requires both of the above, constructs a ClassInfo, and 
passes it to gather-grades. 

All good so far.

Now, I made a very small change to bad1.rkt; specifically, I deleted a few 
characters from a regular expression. Then, I ran bad3.rkt. I then got a 
totally frightening contract error, that said (paraphrased from memory, sadly):

Contract error: expected “text.rkt”, got #
from contract on gather-grades, with contract (“text.rkt” -> boolean?)

… In other words, the “ClassInfo?” predicate had mysteriously been replaced by 
one that checked for the value “text.rkt”, another value exported by the 
original TR module.

I made a trivial change to bad2.rkt to force recompilation, and as expected, 
the error went away. I then spent 15 minutes trying to recreate the error, but 
all I’m getting now is this:

link: bad variable linkage;
 reference to a variable that is uninitialized
  reference phase level: 0
  variable module: (submod 
"/Users/clements/git-clements/clements/pkgs/jbc-utils/shelly/bad1.rkt" 
#%contract-defs)
  variable phase: 0
  reference in module: 
"/Users/clements/git-clements/clements/pkgs/jbc-utils/shelly/bad2.rkt" in: 
idX10.94
> 

… which I’m guessing is the “correct” error, in that it’s telling me to 
recompile. Although… perhaps this is another manifestation of the same problem.

I think the trigger here is that I’m using the exported function “ClassInfo?” 
as part of a 'contract-out’ form in bad2.rkt, and that this use isn’t properly 
forcing recompilation.

Also, I initially assumed that TR had something to do with this, but I may be 
mistaken.

Apologies for not copying the original error message before re-running…

Let me know if this is enough information to submit a bug report.


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] Get list of all predefined identifiers for use in vim syntax highlighting

2015-06-01 Thread Greg Hendershott
The syntax forms should be in the KEYWORDS list; try un-commenting that line.

Some highlighters distinguish "keywords" and "builtins", so Jens'
script generates those separately.

If Vim doesn't care, you could combine them into one big list.

(As my other post says, the distinction is kind of squishy in Racket
compared to many other languages. You could say the only keywords are
a dozen or so forms in fully expanded programs, but that would be
weird. Also weird is saying it's the 1400 "primtives" in C. So that's
why Jens' script says it's syntax only from racket (and I might say
only from racket/base). It's a judgment call AFAICT.)

-- 
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] Get list of all predefined identifiers for use in vim syntax highlighting

2015-06-01 Thread Greg Hendershott
1. Jens' solution is good. I've used for the Pygments highlighter and
for racket-mode. I recommend it!  You may want to stop reading now. :)

2. Coincidentally very recently I've been taking a fresh look at this
for racket-mode. I think a recent commit message sums it up pretty
well:

https://github.com/greghendershott/racket-mode/commit/5956f51c0e14d2c295adaf644b0e8c7f6448701d

~~~

The question of what is a "keyword" and a "builtin" is not so simple
in Racket:

1. The distinction between the two is squishy, and from one point of
   view Racket has 1400+ "primitives" (!).

2. As for "builtins", there are many, many "batteries included"
   libraries in the main distribution. Where to draw the line?

3. More fundamentally, Racket is a language for making languages.
   Ultimately the only way to be 100% correct is to do something "live"
   with namespace-mapped-symbols. But I don't see that as performant for
   Emacs font-lock.

Here I'm saying that:

(a) "keywords" are syntax (only) from racket/base

(b) "builtins" are everything else provided by #lang racket and #lang
typed/racket (except the capitalized Types from typed/racket go into
their own list). Plus for modern macros, racket/syntax and a few
items from syntax/parse (but not all the syntax classes, because
things like `id` and `str` are too "generic" and too likely to be
user program identifiers).

Is that somewhat arbitrary? Hell yes. It's my least-worst, practical
idea for now. Also, IMHO it's an improvement over getting pull
requests to add people's favorites, a few at a time. At least this way
is consistent, and can be regenerated programatically as Racket
evolves.

~~~

TL;DR  No fixed list will be correct. Some fixed lists will
pragmatically be OK for most people. It's a judgment call where to
draw the line -- whether you want to include identifiers also from
typed/racket, racket/syntax, syntax/parse, or others.

Also I have a commit to support Emacs font-lock-maximum-decoration
(the level of font-lock), so people who find the pragmatic list of
keywords annoying or distracting can just completely disable
highlighting those.

-- 
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] Get list of all predefined identifiers for use in vim syntax highlighting

2015-06-01 Thread Luke Miles
Thank you very much, Jens. This appears to be all the functions. Do you know of 
anything for special forms? This would include for, for/and, define-values, 
etc...

On Monday, June 1, 2015 at 11:09:31 AM UTC-4, Jens Axel Søgaard wrote:
> Hi Luke,
> 
> 
> This script generates a large list of keywords. It was used to generate the 
> keywords for the Github highlighter.
> 
> 
> https://github.com/soegaard/racket-highlight-for-github/blob/master/generate-keywords.rkt
> 
> 
> 
> /Jens Axel
> 
> 
> 
> 
> 2015-06-01 17:07 GMT+02:00 Luke Miles :
> For those who like to write their racket code in vim, the plugin 
> https://github.com/wlangstroth/vim-racket is pretty essential.
> 
> 
> 
> Unfortunately, it is outdated and many of the new predefined identifiers 
> (e.g. set-add!) are not highlighted.
> 
> 
> 
> I added a few of these in my personal settings, but it would be nice to have 
> a text file with every special form and every function listed.
> 
> 
> 
> Is this list floating around somewhere? If not, is there an easy way to 
> generate it?
> 
> 
> 
> --
> 
> 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...@googlegroups.com.
> 
> For more options, visit https://groups.google.com/d/optout.
> 
> 
> 
> 
> 
> -- 
> 
> -- 
> Jens Axel Søgaard

-- 
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] Get list of all predefined identifiers for use in vim syntax highlighting

2015-06-01 Thread Jens Axel Søgaard
Hi Luke,

This script generates a large list of keywords. It was used to generate the
keywords for the Github highlighter.

https://github.com/soegaard/racket-highlight-for-github/blob/master/generate-keywords.rkt

/Jens Axel


2015-06-01 17:07 GMT+02:00 Luke Miles :

> For those who like to write their racket code in vim, the plugin
> https://github.com/wlangstroth/vim-racket is pretty essential.
>
> Unfortunately, it is outdated and many of the new predefined identifiers
> (e.g. set-add!) are not highlighted.
>
> I added a few of these in my personal settings, but it would be nice to
> have a text file with every special form and every function listed.
>
> Is this list floating around somewhere? If not, is there an easy way to
> generate it?
>
> --
> 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.
>



-- 
-- 
Jens Axel Søgaard

-- 
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] Get list of all predefined identifiers for use in vim syntax highlighting

2015-06-01 Thread Luke Miles
For those who like to write their racket code in vim, the plugin 
https://github.com/wlangstroth/vim-racket is pretty essential.

Unfortunately, it is outdated and many of the new predefined identifiers (e.g. 
set-add!) are not highlighted.

I added a few of these in my personal settings, but it would be nice to have a 
text file with every special form and every function listed.

Is this list floating around somewhere? If not, is there an easy way to 
generate it?

-- 
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/gui : append a multi items into multi columns of a list-box%

2015-06-01 Thread mazert

Hello,

I try to find a easy way to append a data into a list-box% object.
For example, I have 3 columns called ("c1" "c2" "c3"), and I want to add 
a row like ("val1" "val2" "val3").


Append method is nice, but only append data on the first column... :p
http://docs.racket-lang.org/gui/list-box_.html#%28meth._%28%28%28lib._mred%2Fmain..rkt%29._list-box~25%29._append%29%29

The only way I see is to clean and reset all list-box values by using 
"set", that is not a good news. Thats why I'm asking to you if there is 
a better alternative.


Thanks in advance.

--
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.