Re: [racket-users] Clarify project policy on racket2 syntax

2019-08-12 Thread Vincent St-Amour
On Mon, 12 Aug 2019 07:49:30 -0500,
Robby Findler wrote:
> 
> There are piles of lecture notes (in the form of slide presentations
> written in Racket) from the late 90s (so not in any continuous
> integration system anywhere, as far as I know) that still run fine in
> today's Racket for example.

Not only do they run, some of them are still being actively developed. ;)

Vincent


> On Mon, Aug 12, 2019 at 1:37 AM Atlas Atlas  
> wrote:
> >
> > My question was not about backwards compatibility, but about adopting new 
> > default syntax.
> > For me it is as good as dropping s-expressions because only default\main 
> > syntax is what really mater for me.
> > Sorry for not expressing myself clearly enough.
> >
> > воскресенье, 11 августа 2019 г., 21:47:20 UTC+3 пользователь Robby Findler 
> > написал:
> >>
> >> Matthew posted an (IMO) clear explanation of the state of the thinking 
> >> here earlier. tl;dr: sexpressions will never be abandoned and backwards 
> >> compatibility with existing languages will be maintained for the 
> >> foreseeable future.
> >>
> >> ... but read his message if you are worried.  I believe it is included in 
> >> the github discussion you mention.
> >>
> >> Robby
> >>
> > --
> > 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.
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msgid/racket-users/e72b6c20-56a1-4d29-90e1-228877ea8f4c%40googlegroups.com.
> 
> -- 
> 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.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-users/CAL3TdOMFG610kXQwr8RPAOb5Cx%3DoF_-_v1bUUxwXth8X16Li3g%40mail.gmail.com.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/m2lfvybh1s.wl-stamourv%40eecs.northwestern.edu.


[racket-users] Racket v7.2

2019-01-30 Thread Vincent St-Amour
Racket version 7.2 is now available from

http://racket-lang.org/

Racket-on-Chez is done in a useful sense, but we'll wait until it gets
better before making it the default Racket implementation. For more
information, see

http://blog.racket-lang.org/2019/01/racket-on-chez-status.html

In addition, the Racket 7.2 release includes the following improvements,
which apply to both implementations:

- The contract system supports collapsible contracts, which avoid
  repeated wrappers in certain pathological situations. Thanks to Daniel
  Feltey.

- Quickscript, a scripting tool for DrRacket, has become part of the
  standard distribution. Thanks to Laurent Orseau.

- The web server's built-in configuration for serving static files
  recognizes the ".mjs" extension for JavaScript modules.

- The `data/enumerate` library supports an additional form of
  subtraction via `but-not/e`, following Yorgey and Foner's ICFP'18
  paper. Thanks to Max New.

- The `letrec.rkt` example model in Redex has been changed to more
  closely match Racket, which led to some bug fixes in Racket's
  implementation of `letrec` and `set!`.

- The racklog library has seen a number of improvements, including fixes
  to logic variable binding, logic variables containing predicates being
  applicable, and the introduction of an `%andmap` higher-order predicate.

The following people contributed to this release:
Akihide Nano, Alex Feldman-Crough, Alexander McLin, Alexander Shopov,
Alexis King, Alex Knauth, Andrew Kent, Asumu Takikawa, Ben Greenman,
Bogdan Popa, Caner Derici, Chongkai Zhu, Dan Feltey, Darren Newton, Gan
Shen, Greg Hendershott, Gustavo Massaccesi, Jay McCarthy, Jens Axel
Søgaard, John Clements, Jordan Johnson, Kevin Robert Stravers, Leif
Andersen, Leo Uino, Matt Kraai, Matthew Butterick, Matthew Flatt,
Matthias Felleisen, Max New, Michael Burge, Mike Sperber, Paul
C. Anagnostopoulos, Paulo Matos, Philip McGrath, Robby Findler, Ronald
Garcia, Ryan Culpepper, Ryan Kramer, Sam Tobin-Hochstadt, Shu-Hung You,
Sorawee Porncharoenwase, Spencer Florence, Stephen Chang, and Vincent
St-Amour

Feedback Welcome

-- 
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] Re: The performance of ‘set’ vs. lists+‘remove-duplicates’

2018-12-06 Thread Vincent St-Amour
On Thu, 06 Dec 2018 07:05:03 -0600,
'Paulo Matos' via Racket Users wrote:
> 
> 
> 
> On 05/12/2018 11:55, Tony Garnock-Jones wrote:
> > I suspect it will be slow because sets are generics, and generics are
> > slow. 
> 
> I am curious now. How slow? Why? Do you have any data backing this up?
> Generics are very useful, I would be very disappointed if they are
> indeed very slow.

For what it's worth, I seem to recall that generics, while they do
introduce indirection, and not particularly costly on their own.

Contracts for generics, though, which the set library is using, are
really costly.

Vincent

-- 
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] Destructuring a list in (for ...)

2018-11-21 Thread Vincent St-Amour
`in-dict` can get you mostly there.

(for ([(i j) (in-dict '(("a" 1) ("b" 20)))])
  (display (list i j)))

> (a (1))(b (20))

If you have lists of pairs instead of lists of lists, you'll get the
same result as the hash case.

Vincent


On Wed, 21 Nov 2018 10:55:23 -0600,
Brian Adkins wrote:
> 
> I thought it was possible to destructure a list in for, but I've been 
> searching/experimenting for a while without success. I noticed this example 
> in the docs:
> 
> (for ([(i j) #hash(("a" . 1) ("b" . 20))])
> (display (list i j)))
> 
> So, I assumed I could do this:
> 
> (for ([(i j) '(("a" 1) ("b" 20))])
> (display (list i j)))
> 
> But that doesn't work. I'm trying to avoid something as verbose as:
> 
> (for ([(pair) '(("a" 1) ("b" 20))])
> (match-let ([(list i j) pair])
> (display (list i j
> 
> Why do elements of a Hash provide 2 values to for, where a 2-tuple list does 
> not? Is there a more direct way to destructure a list in for?
> 
> Thanks,
> Brian
> 
> -- 
> 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] Racket v7.1

2018-10-26 Thread Vincent St-Amour
Racket version 7.1 is now available from

http://racket-lang.org/

* Although it is still not part of this release, the development of
  Racket on Chez Scheme continues. We still hope and expect that
  Racket-on-Chez will be ready for production use later in the v7.x
  series, perhaps mid-2019.

* Trackpad scrolling works in more reliably in some Windows and
  Linux/Unix environments.

* New users of DrRacket will open files into new tabs (by default).

* The teaching languages support the unicode character for lambda.
  The teaching unit test framework no longer stops testing when a tested
  expression signals an error.

* A refinement to error reporting for compile-time code helps clarify
  when an syntax error is likely due to an earlier unbound identifier
  (because the unbound-identifier error otherwise must be delayed, in
  case a definition appears later).

* A `++lang ` flag for `raco exe` simplifies the creation of
  executables that dynamically load `#lang ` modules at run
  time.

* Typed Racket adds types for mutable and immutable vectors:
  `(Mutable-Vectorof T)`, `(Immutable-Vectorof T)`, `(Immutable-Vector T)`,
  and `(Mutable-Vector T)`. The new types are subtypes of the existing
  `Vectorof` and `Vector` types. The return types of a few standard vector
  functions use the new, more specific, types. When an immutable vector
  flows from untyped code to typed code, Typed Racket may be able to check
  the vector with a flat contract.

* The hashing functions `sha1-bytes`, `sha224-bytes`, and
  `sha256-bytes` are added to `racket/base`.

* `curry` from racket/function supports currying functions with keyword
  arguments, and `procedure-arity` and `procedure-keywords` return the
  correct result when applied to curried functions.

* Slideshow supports widescreen mode (finally!). Implement widescreen
  slides using `slideshow/widescreen` or provide the `--widescreen`
  command-line flag to Slideshow. Combine `--widescreen` with
  `--save-aspect` to make widescreen mode the default in your
  installation.

* Racket supports FreeBSD/aarch64.

* Various improvements and additions were made to the DeinProgramm
  teaching languages and their documentation.

The following people contributed to this release:
Akihide Nano, Alex Harsányi, Alex Knauth, Alexander McLin, Alexis King,
Andrew Kent, Ben Greenman, Bruno Cuconato, Chongkai Zhu, Claes Wallin,
David Benoit, Gary F. Baumgartner, Gustavo Massaccesi, Jay McCarthy,
Jens Axel Søgaard, Jérôme Martin, John Clements, Jordan Johnson, Kimball
Germane, Leif Andersen, Matthew Butterick, Matthew Flatt, Matthias
Felleisen, Mike Sperber, Milo Turner, myfreeweb, Oling Cat, Paulo Matos,
Philip McGrath, Robby Findler, Roman Klochkov, Ryan Culpepper, Sam
Caldwell, Sam Tobin-Hochstadt, Shu-Hung You, Stephen Chang, Tong-Kiat
Tan, Vincent St-Amour, Winston Weinert, and yjqww6.

Feedback Welcome

-- 
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] Capturar valor de retorno da query Racket

2018-09-27 Thread Vincent St-Amour
Olá,

Se eu entendi sua pergunta, a função `dict-ref` é o que você quer:

(dict-ref (query ..) 'insert-id)

Vincent



On Thu, 27 Sep 2018 14:24:39 -0500,
dev.vide...@gmail.com wrote:
> 
> Olá, sou iniciante no racket. Gostaria de capturar o valor insert-id que 
> retorna em um uma struct chama simple-result da query que executo. O retorno 
> é o seguinte:
> 
> (simple-result '((insert-id . 30) (affected-rows . 1)))
> 
> Gostaria de obter o valor 30 por exemplo.
> 
> Código da execução da query:
> 
> (define save_pergunta 
>   (lambda (tf_pergunta)
>   (define result_save_pergunta (query conn "INSERT INTO perguntas VALUES 
> (null, $pergunta)" tf_pergunta))
>   (print result_save_pergunta)
>   (printf "\nPergunta Cadastrada!\n")))
> 
> -- 
> 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] lib "graphics.ss" "graphics"

2018-05-21 Thread Vincent St-Amour
La mejor referencia para `2htdp/universe` es el libro "How to Design
Programs": htdp.org

Esta parte presenta `2htdp/universe`:

http://htdp.org/2018-01-06/Book/part_one.html#%28part._.D.K._sec~3adesign-world%29

Si está utilizando `2htdp/universe`, querrá usar la librería
`2htdp/image`, no `pict`.

La función `text/font` es lo que quires:

http://docs.racket-lang.org/teachpack/2htdpimage.html#%28def._%28%28lib._2htdp%2Fimage..rkt%29._text%2Ffont%29%29

Vincent



On Mon, 21 May 2018 10:30:26 -0500,
Black Panter wrote:
> 
> ¡Gracias! Mil gracias por tu respuesta!!! 
> Por casualidad sabes de un tutorial para la librería 2htdp/universe, esa es 
> muy buen para juegos y estoy haciendo un proyecto de la universidad.
> Gracias por tu colaboración
> 
> El lun., 21 de may. de 2018, 10:27 a.m., Vincent St-Amour 
> <stamo...@eecs.northwestern.edu> escribió:
> 
>  Hola amigo,
> 
>  La librería `graphics` no puede imprimir texto con negrita u otra
>  fuentes.
> 
>  La librería `pict` es lo que quires. La función `text`, específicamente.
> 
>  
> http://docs.racket-lang.org/pict/Basic_Pict_Constructors.html#%28def._%28%28lib._pict%2Fmain..rkt%29._text%29%29
> 
>  Vincent
> 
>  On Mon, 21 May 2018 00:54:32 -0500,
>  Black Panter wrote:
>  > 
>  > hola amigos, estoy intentando imprimir en pantalla un texto con negrita y 
> con otra fuente (en usando la librería graphics), pero me ha resultado casi 
> imposible, si alguien me puede ayudar se lo agradecería de corazón.
>  > 
>  > El contenido de este mensaje y sus anexos son únicamente para el uso del 
> destinatario y pueden contener información clasificada o reservada. Si usted 
> no es el destinatario intencional, absténgase de cualquier uso, difusión, 
> distribución o copia de esta comunicación. 
>  > 
>  > -- 
>  > 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.
> 
> El contenido de este mensaje y sus anexos son únicamente para el uso del 
> destinatario y pueden contener información clasificada o reservada. Si usted 
> no es el destinatario intencional, absténgase de cualquier uso, difusión, 
> distribución o copia de esta comunicación.

-- 
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] lib "graphics.ss" "graphics"

2018-05-21 Thread Vincent St-Amour
Hola amigo,

La librería `graphics` no puede imprimir texto con negrita u otra
fuentes.

La librería `pict` es lo que quires. La función `text`, específicamente.

http://docs.racket-lang.org/pict/Basic_Pict_Constructors.html#%28def._%28%28lib._pict%2Fmain..rkt%29._text%29%29

Vincent



On Mon, 21 May 2018 00:54:32 -0500,
Black Panter wrote:
> 
> hola amigos, estoy intentando imprimir en pantalla un texto con negrita y con 
> otra fuente (en usando la librería graphics), pero me ha resultado casi 
> imposible, si alguien me puede ayudar se lo agradecería de corazón.
> 
> El contenido de este mensaje y sus anexos son únicamente para el uso del 
> destinatario y pueden contener información clasificada o reservada. Si usted 
> no es el destinatario intencional, absténgase de cualquier uso, difusión, 
> distribución o copia de esta comunicación. 
> 
> -- 
> 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] Re: Breaking change to package 'handy'

2018-04-24 Thread Vincent St-Amour
FWIW, this `multi-partition` sounds a lot like the built-in `group-by`.

Vincent


On Tue, 24 Apr 2018 09:55:26 -0500,
David Storrs wrote:
> 
> On Tue, Apr 24, 2018 at 10:54 AM, David Storrs  wrote:
> > The list-utils function in the 'handy' package includes
> > 'multi-partition', which is like the built-in 'partition' except that
> > it can partition into any number of groups.  This function used to
> > have multiple return and now returns a LoL.
> 
> Should have added:  There is now a #:post-process-all-data keyword to
> which you can pass vector->values in order to get the old behavior.
> 
> -- 
> 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] let-syntax example?

2018-04-04 Thread Vincent St-Amour
As an intro, Fear of Macros, by Greg Hendershott:

http://www.greghendershott.com/fear-of-macros/

To dig deeper, Beautiful Racket, by Matthew Butterick:

https://beautifulracket.com/

Vincent



On Wed, 04 Apr 2018 03:53:41 -0500,
若草春男 wrote:
> 
> Additional question.
> 
> I have read Let-Over-Lambda almost all.
> What is the best introduction of racket syntax?
> 
> Haruo
> 
> -- 
> 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] running tests with different #langs

2018-03-23 Thread Vincent St-Amour
The typed versions of the "common" Scheme benchmarks do something similar:


https://github.com/racket/racket/blob/master/pkgs/racket-benchmarks/tests/racket/benchmarks/common/typed/wrapper.rkt

Vincent



On Fri, 23 Mar 2018 16:15:01 -0500,
Stephen Chang wrote:
> 
> I frequently want to run the same tests with different #lang's.
> 
> Has anyone written a test harness that lets me do this without
> duplicating the test code? (I couldnt find anything on the pkg
> server.)
> 
> -- 
> 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] nightly build version is 6.90.0.20 ?

2018-03-12 Thread Vincent St-Amour
It's a massive jump forward leading to Racket 7.0, which will be
released this summer.

Vincent


On Mon, 12 Mar 2018 19:18:05 -0500,
Stephen De Gabrielle wrote:
> 
> Hi, 
> 
> Am I going mad or has the version number on the nightly build gone back from 
> 6.12 to 6.90.0.20? (or is that a massive jump forwards?)
> 
> Kind regards, 
> 
> Stephen
> 
> --
> 
> Process: DrRacket [1813]
> Path: /private/var/folders/*/DrRacket.app/Contents/MacOS/DrRacket
> Identifier: org.racket-lang.DrRacket
> Version: 6.90.0.20 (6.90.0.20)
> Code Type: X86-64 (Native)
> Parent Process: ??? [1]
> Responsible: DrRacket [1813]
> User ID: 502
> 
> Date/Time: 2018-03-13 00:14:00.322 +
> OS Version: Mac OS X 10.13.3 (17D47)
> Report Version: 12
> Anonymous UUID: 818EA46D-C579-9E4C-5EAF-344B941ADCEB
> 
> Sleep/Wake UUID: 399CC752-0959-427C-A233-C5086B6847D2
> 
> Time Awake Since Boot: 1900 seconds
> Time Since Wake: 760 seconds
> 
> System Integrity Protection: enabled
> 
> Notes: Translocated Process
> 
> Crashed Thread: 0
> 
> Exception Type: EXC_CRASH (SIGABRT)
> Exception Codes: 0x, 0x
> Exception Note: EXC_CORPSE_NOTIFY
> 
> Termination Reason: DYLD, [0x1] Library missing
> 
> Application Specific Information:
> dyld: launch, loading dependent libraries
> 
> Dyld Error Message:
> Library not loaded: 
> @executable_path/../../../lib/Racket.framework/Versions/6.90.0.20_3m/Racket
> Referenced from: /private/var/folders/*/DrRacket.app/Contents/MacOS/DrRacket
> Reason: image not found
> 
> Binary Images:
> 0x10f05c000 - 0x10f064fff +org.racket-lang.DrRacket (6.90.0.20 - 6.90.0.20) 
> <35E0E338-9545-367A-80D7-193F5A5CF229> 
> /var/folders/*/DrRacket.app/Contents/MacOS/DrRacket
> 0x117aac000 - 0x117af698f dyld (519.2.2) 
> <6695F30B-4E88-3C0B-9867-7D738C44A3E6> /usr/lib/dyld
> 
> Model: MacBookPro9,
> 
> -- 
> 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] Reliably propagating received log messages to ports

2018-01-31 Thread Vincent St-Amour
Does `with-intercepted-logging` do what you want?

It should take care of the sychronization aspects, like `with-logging-to-port`
does, while letting you do whatever you want with the message, e.g., sending
them to different ports.

Vincent



On Wed, 31 Jan 2018 16:00:58 -0600,
Alexander McLin wrote:
> 
> So I am using Racket's logging facilities in a command-line tool I'm 
> developing. I have various defined loggers in a sensible hierarchical 
> configuration for use as needed.
> 
> During the tool's start up period prior to calling the main function I set up 
> a log receiver to receive messages at the desired level and place it inside a 
> sync loop within its own thread. Each time a sync event is received, it is 
> written out to the port, then
> loop back to waiting for the next sync event.
> 
> It works reasonably well except I have a new problem, when the tool exits, it 
> often exits before the thread handling the log receiver propagation to the 
> port has finished receiving all the log events, as a result my logging output 
> is frequently truncated.
> 
> Given this undesired situation, I need to figure out a better way to reliably 
> propagate all log messages to ports before the tool exits normally or due to 
> a raised exception.
> 
> There is `with-logging-to-port` except I will need to set up multiple ports 
> and the idea of wrapping the tool's main body with multiple 
> `with-logging-to-port` for each port isn't appealing and it still doesn't 
> resolve the problem.
> 
> I was wondering if anyone has a better suggestion? Is there a way to detect 
> if there are pending log events waiting to be received by the log receiver?
> 
> I realize the fundamental nature of my issue is that Racket's logging is 
> asynchronous while I want synchronous behavior. I may be better off just 
> using old-fashioned `println`s
> 
> Thank you for your suggestions.
> 
> Alexander McLin
> 
> -- 
> 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] Racket v6.12

2018-01-26 Thread Vincent St-Amour
Racket version 6.12 is now available from

http://racket-lang.org/

* Changed the way some unsafe operations are exposed via `ffi/unsafe`
  libraries to help smooth a future transition to a new runtime system.

* The `syntax-parse` form supports unwinding side-effects when it
  backtracks, both explicitly with `~undo` patterns and implicitly
  with the built-in managed state (using `syntax-parse-state-ref`,
  etc).

* The `db` library supports SCRAM-SHA-256 authentication for backends
  running PostgreSQL 10 or later. Client support for SCRAM and other
  SASL mechanisms is provided by the new `sasl` library.

* The `lazy-require-syntax` form supports lazy loading of macro
  transformers. Note that the macros must obey certain implementation
  constraints (see the `lazy-require-syntax` documentation).

* Typed Racket no longer enforces types like (U String (Boxof String))
  with the any/c contract. This fixes a type soundness issue, but may
  affect performance. Please submit a bug report if you find a program
  that runs significantly slower on v6.12 than earlier versions.

* Typed Racket's type instantiation (`inst`) uses Any for omitted type
  arguments, allowing APIs to add additional type variables to functions
  without breaking existing programs.

* `for/fold` users can customize the final result of a loop's computation
  using the `#:result` keyword.

* The `--deps` option to `raco test` tests the packages the argument
  packages depends on, in addition to testing the packages themselves.
  For example, `raco test -p --deps pkg1 pkg2` tests all files from
  `pkg1`, `pkg2`, and all of their dependencies.

The following people contributed to this release:
Alexander Shopov, Alexis King, Andrew Gwozdziewycz, Andrew Kent, Ben
Greenman, Chung-chieh Shan, Conor Finegan, Daniel Feltey, Daniel
Mendler, Eric Dobson, Gabriel Ebner, Greg Cooper, Greg Hendershott,
Gustavo Massaccesi, Huma Zafar, Jack Firth, James Bornholt, Jay
McCarthy, John Clements, Kimball Germane, Leif Andersen, Matias
Eyzaguirre, Matthew Butterick, Matthew Flatt, Matthias Felleisen,
Michael Ballantyne, Mike Sperber, Milo Turner, Robby Findler, Rommel
Martinez, Ryan Culpepper, Sam Tobin-Hochstadt, Shu-Hung You, Soulaïmane
Sahmi, Spencer Florence, Stephen De Gabrielle, Vincent St-Amour, Wesley
Kerfoot, and William G Hatch.

Feedback Welcome

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

2017-10-30 Thread Vincent St-Amour
Racket version 6.11 is now available from

http://racket-lang.org/

* Typed Racket supports refinement types and dependent function types.
  Previously an experimental feature, refinement types allow types to
  describe more interesting properties of values, especially integers.
  For example, this type shows that the `max` function always produces a
  number at least as big as its inputs:
  `(-> [x : Integer] [y : Integer]
   (Refine [z : Integer] (and (>= z x) (>= z y`

* DrRacket's Program Contour is significantly more efficient; using it
  no longer hurts DrRacket's interactivity.

* The `web-server/formlets` library produces formlets that are
  serializable, facilitating dynamic uses of formlets in stateless #lang
  web-server servlets. The new `web-server/formlets/stateless` and
  `web-server/formlets/unsafe` libraries provide additional support with
  the same API.

* The `db` library supports the Cassandra database.

The following people contributed to this release:
Alex Knauth, Andrew Gwozdziewycz, Andrew Kent, Asumu Takikawa, Ben
Greenman, Ben Noordhuis, Carlo Dapor, Daniel Feltey, David Christiansen,
David Van Horn, Eric Dobson, Gustavo Massaccesi, Harold Carr, Jack
Firth, Jay McCarthy, Jeannie Tran, Jens Axel Søgaard, jgreco, John
Clements, Jordan Johnson, Justin Slepak, Leandro Facchinetti, Leif
Andersen, Matthew Butterick, Matthew Flatt, Matthias Felleisen, Michael
Ballantyne, Milo Turner, Nadeem Abdul Hamid, Philip McGrath, rain, Robby
Findler, Royall Spence, Ryan Culpepper, Ryan Davis, Sam Tobin-Hochstadt,
Shu-Hung You, Spencer Florence, Stephen Chang, Vincent St-Amour, WarGrey
Gyoudmon Ju, and Weng Shiwei.

Feedback Welcome

-- 
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] New wiki page ‘friends of Racket’

2017-10-30 Thread Vincent St-Amour
Thanks Stephen for giving our wiki some much-needed love!

Vincent


On Sat, 28 Oct 2017 04:56:37 -0500,
Stephen De Gabrielle wrote:
> 
> I created a new wiki page 
> https://github.com/racket/racket/wiki/Friends-of-Racket
> (yes, I got the idea from rust-lang)
> 
> I did it because it is a question that keeps turning up. 
> 
> Racket-devs: If it is not appropriate for the wiki please delete it. 
> 
> Kind regards,
> Stephen
> 
> ―
> 
> Organizations using Racket or a language built on Racket
> 
> * Web-based books Practical Typography, Typography for Lawyers, are build 
> with Pollen
> * YouPatch
> * Hacker News runs on Arc, which is developed in Racket
> * Naughty Dog
> 
> -- 
> Kind regards,
> Stephen
> --
> Ealing (London), 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.

-- 
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] Open source projects

2017-10-20 Thread Vincent St-Amour
I think there's value to having a general projects list, beyond the
office hours one.

The older list was an attempt of that, which failed at that purpose by
becoming more of a "brain dump" area, and falling into disrepair.

I think that for such a list to succeed, it would need to be actively
maintained and curated by someone. John, would you be willing to do it?

Vincent



On Fri, 20 Oct 2017 11:42:27 -0500,
'John Clements' via Racket Users wrote:
> 
> 
> > On Oct 20, 2017, at 8:06 AM, Vincent St-Amour 
> > <stamo...@eecs.northwestern.edu> wrote:
> > 
> > That page is pretty out of date.
> > 
> > This list is more focused on contributing to Racket itself, but is more
> > up to date. It was compiled for the "office hours" portion of the last
> > RacketCon, ~2 weeks ago.
> > 
> >  
> > https://github.com/racket/racket/wiki/Racketeer-Office-Hours-2017-Task-Ideas
> 
> There’s something that I now want, and I’m not sure which list to add it to. 
> Following a discussion with William Hatch about shell usage in Racket, what I 
> think I really want is auto-completion of filenames in DrRacket, probably 
> using a pop-up. That is: I type a string containing a path fragment, and then 
> I hit, say, C-c C-r or some other unused combination (ha!), and I get a 
> dialog that will allow me with a small number of keystrokes to auto-complete 
> to the filename that I’m looking for.
> 
> Should be not-too-impossible.
> 
> If I get a spare ten hours, I’d love to do it myself… 
> 
> Which list should I add this to?
> 
> John
> 
> cc: william hatch except I’m too busy to 
> 
> > 
> > Vincent
> > 
> > 
> > On Fri, 20 Oct 2017 05:14:28 -0500,
> > Stephen De Gabrielle wrote:
> >> 
> >> There is also a suggested projects page on the wiki
> >> 
> >> https://github.com/racket/racket/wiki/Intro-Projects
> >> 
> >> I don’t know if it is still accurate.
> >> 
> >> Kind regards,
> >> 
> >> Stephen
> >> 
> >> On Fri, 20 Oct 2017 at 06:45, Jack Firth <jackhfi...@gmail.com> wrote:
> >> 
> >> Welcome, we're very glad to have you!
> >> 
> >> Open source Racket projects are scattered all over the place, but here are 
> >> some good ways to find actively maintained and hopefully accessible 
> >> projects that might interest you:
> >> 
> >> - Watch some talks from recent RacketCons, especially the most recent one 
> >> (which, conveniently, was barely a week and a half ago). A lot of talks 
> >> are on interesting and wildly unusual open source projects, and as a bonus 
> >> most presenters
> >> give out their contact information so people can reach out if they have 
> >> questions or might be interested in contributing. You can find information 
> >> on the most recent RacketCon at con.racket-lang.org including video and 
> >> livestream recordings,
> >> talk descriptions, and slides for each talk. Info for previous RacketCons 
> >> are available at con.racket-lang.org/2016/, con.racket-lang.org/2015/, 
> >> etc. Alas we don't yet have individual prettily-edited videos for each 
> >> talk at RacketCon 2017; they're
> >> only viewable via the saved livestream on youtube.
> >> - Search the official package catalog at pkgs.racket-lang.org for packages 
> >> whose descriptions sound interesting and which are hosted on GitHub / 
> >> GitLab / some other platform that makes it easy to contribute. Every 
> >> package includes links to its
> >> docs and repostiory, as well as a contact email address for whoever 
> >> maintains it. If you're not looking for a package in a particular problem 
> >> domain your best bet is probably to restrict your search to only packages 
> >> that build, have passing tests,
> >> and have docs. Decent issue / todo lists in the project repo are a nice 
> >> bonus.
> >> - Browse around the front page of the online Racket documentation at 
> >> docs.racket-lang.org. The online docs includes all docs from all 
> >> successfully built user packages at pkgs.racket-lang.org, grouped into top 
> >> level categories. Once you find
> >> some docs for a project that's interesting, it's (hopefully!) not 
> >> difficult to find the package containing those docs by searching 
> >> pkgs.racket-lang.org.
> >> - Hop in the Racket IRC (#racket on freenode) or the Racket Slack channel 
> >> (signup at racket-slack.herokuapp.com) and ask around about what people 
> >> are working

Re: [racket-users] Re: Open source projects

2017-10-20 Thread Vincent St-Amour
That page is pretty out of date.

This list is more focused on contributing to Racket itself, but is more
up to date. It was compiled for the "office hours" portion of the last
RacketCon, ~2 weeks ago.

  https://github.com/racket/racket/wiki/Racketeer-Office-Hours-2017-Task-Ideas

Vincent


On Fri, 20 Oct 2017 05:14:28 -0500,
Stephen De Gabrielle wrote:
> 
> There is also a suggested projects page on the wiki
> 
> https://github.com/racket/racket/wiki/Intro-Projects
> 
> I don’t know if it is still accurate.
> 
> Kind regards,
> 
> Stephen
> 
> On Fri, 20 Oct 2017 at 06:45, Jack Firth  wrote:
> 
>  Welcome, we're very glad to have you!
> 
>  Open source Racket projects are scattered all over the place, but here are 
> some good ways to find actively maintained and hopefully accessible projects 
> that might interest you:
> 
>  - Watch some talks from recent RacketCons, especially the most recent one 
> (which, conveniently, was barely a week and a half ago). A lot of talks are 
> on interesting and wildly unusual open source projects, and as a bonus most 
> presenters
>  give out their contact information so people can reach out if they have 
> questions or might be interested in contributing. You can find information on 
> the most recent RacketCon at con.racket-lang.org including video and 
> livestream recordings,
>  talk descriptions, and slides for each talk. Info for previous RacketCons 
> are available at con.racket-lang.org/2016/, con.racket-lang.org/2015/, etc. 
> Alas we don't yet have individual prettily-edited videos for each talk at 
> RacketCon 2017; they're
>  only viewable via the saved livestream on youtube.
>  - Search the official package catalog at pkgs.racket-lang.org for packages 
> whose descriptions sound interesting and which are hosted on GitHub / GitLab 
> / some other platform that makes it easy to contribute. Every package 
> includes links to its
>  docs and repostiory, as well as a contact email address for whoever 
> maintains it. If you're not looking for a package in a particular problem 
> domain your best bet is probably to restrict your search to only packages 
> that build, have passing tests,
>  and have docs. Decent issue / todo lists in the project repo are a nice 
> bonus.
>  - Browse around the front page of the online Racket documentation at 
> docs.racket-lang.org. The online docs includes all docs from all successfully 
> built user packages at pkgs.racket-lang.org, grouped into top level 
> categories. Once you find
>  some docs for a project that's interesting, it's (hopefully!) not difficult 
> to find the package containing those docs by searching pkgs.racket-lang.org.
>  - Hop in the Racket IRC (#racket on freenode) or the Racket Slack channel 
> (signup at racket-slack.herokuapp.com) and ask around about what people are 
> working on. I'm sure many folks will be delighted to talk about their 
> projects. And this
>  mailing list isn't a bad place to ask either.
>  - If you want to try something more ambitious, you can take a peek at the 
> Github repos in the "racket" organization (https://github.com/racket). These 
> are all (or mostly? not sure) packages in the "main distribution", meaning 
> they ship directly with
>  Racket and don't have to be installed by users. Contributing to these 
> packages can be a little trickier because sometimes they depend on the latest 
> version of Racket's core, meaning you'll have to compile Racket's core from 
> source.
> 
>  Also, all throughout this month Github and DigitalOcean are hosting an 
> online event called Hacktoberfest. By signing up at 
> https://hacktoberfest.digitalocean.com/ you'll get a free tshirt mailed to 
> you if you submit four or more pull requests to any
>  public repositories on Github before October ends. It doesn't matter how 
> large each pull request is and a pull request to your own repo counts. And 
> speaking from experience, they're very comfortable shirts.
> 
>  -- 
>  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.
> 
> -- 
> Kind regards,
> Stephen
> --
> 
> -- 
> 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] (seventh RacketCon) Survey

2017-10-12 Thread Vincent St-Amour
Racketeers,

(seventh RacketCon) was held last weekend. I hope you were able to join
us, be it in person, or via the live stream.

As we're always trying to make RacketCon better, we're interested in
hearing what you thought of this one. If you did not attend, we're also
interested in hearing from you, in the hopes of better reaching you in
the future.

If you're willing to share your thoughts with us, please fill in this
brief survey:


https://docs.google.com/forms/d/e/1FAIpQLScfpVDpXMAtoH_-XmnPpqrhQ_-NVW8fuyGCLQ4CMQAt_67qFg/viewform?c=0w=1usp=mail_form_link

Thanks again to all of you who made this RacketCon possible: speakers,
sponsors, and audience!

Vincent

-- 
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] Thank you all for letting me speak

2017-10-08 Thread Vincent St-Amour
Thank *you* David for the excellent talk!

RacketCon would be nothing without its speakers. Thank you all for
making it possible!

Vincent



On Sun, 08 Oct 2017 12:26:08 -0700,
David Storrs wrote:
> 
> I'd like to thank the organizers of (seventh racketcon) for allowing
> me to speak.  I would also like to thank the kind people who came up
> to me afterwards and said that they enjoyed the speech, asked
> questions, and/or suggested improvements.  As I said in the talk, the
> community is the most powerful and wonderful thing about Racket.
> 
> My slides were minimal, but anyone who would like them is welcome:
> 
>  https://tinyurl.com/David-Storrs-7th-RacketCon
> 
> -- 
> 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] Fwd: Racket Con

2017-10-05 Thread Vincent St-Amour
No mugs this year; another surprise instead. ;)

Vincent



On Thu, 05 Oct 2017 14:18:58 -0500,
'John Clements' via users-redirect wrote:
> 
> Forwarded without comment… :)
> 
>  Begin forwarded message:
> 
>  From: Jasmine Harihar Patel 
>  Subject: Racket Con
>  Date: October 5, 2017 at 11:54:02 AM PDT
>  To: "John B. Clements" 
> 
>  Dear Professor Clements,
> 
>  My name is Jasmine and I am a 2nd year CSC student. I heard that you were 
> going to Racket Con tomorrow and was wondering if there is any way I could 
> get one of those cool heat sensitive mugs (only if it is no trouble). 
> 
>  Thanks,
> 
>  Jasmine Patel
> 
> -- 
> 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] (seventh RacketCon): Early Bird Registration Almost Over!

2017-09-15 Thread Vincent St-Amour
Quick reminder: early bird registration ends tomorrow!

Vincent


On Mon, 04 Sep 2017 10:28:19 -0500,
Vincent St-Amour wrote:
> 
> Racketeers,
> 
> (seventh RacketCon) keeps getting closer! It's almost a month away!
> In less than two weeks, early bird registration[1] will end and ticket
> prices will increase. Get your tickets while they're cheap!
> 
> Our speaker lineup is essentially complete! Check out what tales they'll
> be regaling us with on the RacketCon website [2].
> 
> ---
> 
> RacketCon is a yearly event where members of the Racket community get
> together, featuring talks and demos about the things you do with Racket.
> Racketeer Office Hours is a free-form day for Racketeers to get together
> and collaborate on ongoing projects, start new ones, and get help and
> advice from other members of the community.
> 
> (seventh RacketCon) will be held on October 7th, followed by Racketeer
> Office Hours on October 8th. This year, RacketCon will be in Seattle, WA,
> with support from the Racket group at the University of Washington.
> 
> See you in Seattle!
> 
> Vincent, for the RacketCon team
> 
> -- 
> 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] (racketcon 2017) Is there a shuttle from the hotel?

2017-09-11 Thread Vincent St-Amour
Google maps predicts 14 minutes.

https://www.google.com/maps/dir/Hotel+Deca,+4507+Brooklyn+Ave+NE,+Seattle,+WA+98105/Mary+Gates+Hall,+1851+NE+Grant+Ln,+Seattle,+WA+98105/@47.6582455,-122.3156366,16z/data=!3m1!4b1!4m14!4m13!1m5!1m1!1s0x5490148ac590c9fd:0x5ca09aa87f1f39cd!2m2!1d-122.3145465!2d47.6615196!1m5!1m1!1s0x549014f2ab81c35f:0x6dda64382ddc87a4!2m2!1d-122.3079505!2d47.6549716!3e2

Vincent


On Mon, 11 Sep 2017 17:33:20 -0500,
Leif Andersen wrote:
> 
> How short of a walk?
> 
> I ask because there is about a 30% chance my partner (who is wheel
> chair bound) will be going.
> 
> ~Leif Andersen
> 
> 
> On Mon, Sep 11, 2017 at 2:19 PM, Vincent St-Amour
> <stamo...@eecs.northwestern.edu> wrote:
> > Hi Dave,
> >
> > We're not planning a shuttle; the hotel is a short walk from the venue.
> >
> > If that's an issue for you, please do let us know.
> >
> > Vincent
> >
> >
> >
> > On Mon, 11 Sep 2017 10:35:02 -0500,
> > David Storrs wrote:
> >>
> >> Hi folks,
> >>
> >> Is there a shuttle from the hotel to the venue and, if so, what times does 
> >> it run?
> >>
> >> Dave
> >>
> >> --
> >> 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] (racketcon 2017) Is there a shuttle from the hotel?

2017-09-11 Thread Vincent St-Amour
Hi Dave,

We're not planning a shuttle; the hotel is a short walk from the venue.

If that's an issue for you, please do let us know.

Vincent



On Mon, 11 Sep 2017 10:35:02 -0500,
David Storrs wrote:
> 
> Hi folks,
> 
> Is there a shuttle from the hotel to the venue and, if so, what times does it 
> run?
> 
> Dave
> 
> -- 
> 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] RacketCon Sunday Hours?

2017-09-11 Thread Vincent St-Amour
Hi John,

The plan for Racketeer office hours is to have a town hall / Q (like
the one we had last year) in the morning, then more of a hackathon in
the afternoon, where people can bring their projects to get help, or
work together on various tasks to improve our ecosystem.

We specifically designed the afternoon to be flexible, so people can
leave whenever they need (e.g., to catch flights).

Vincent



On Fri, 08 Sep 2017 18:31:22 -0500,
'John Clements' via Racket Users wrote:
> 
> Like many of you, I’m looking forward to attending RacketCon this
> year. Before I buy plane tickets, though, I’m wondering if we have
> some thought about what the hours of Sunday’s “Office Hours” will
> be. Thoughts?
> 
> Can’t wait!
> 
> 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.

-- 
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] (seventh RacketCon): Early Bird Registration Almost Over!

2017-09-04 Thread Vincent St-Amour
Racketeers,

(seventh RacketCon) keeps getting closer! It's almost a month away!
In less than two weeks, early bird registration[1] will end and ticket
prices will increase. Get your tickets while they're cheap!

Our speaker lineup is essentially complete! Check out what tales they'll
be regaling us with on the RacketCon website [2].

---

RacketCon is a yearly event where members of the Racket community get
together, featuring talks and demos about the things you do with Racket.
Racketeer Office Hours is a free-form day for Racketeers to get together
and collaborate on ongoing projects, start new ones, and get help and
advice from other members of the community.

(seventh RacketCon) will be held on October 7th, followed by Racketeer
Office Hours on October 8th. This year, RacketCon will be in Seattle, WA,
with support from the Racket group at the University of Washington.

See you in Seattle!

Vincent, for the RacketCon team

[1] https://www.eventbrite.com/e/racketcon-2017-tickets-34928590354
[2] http://con.racket-lang.org/

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

2017-07-31 Thread Vincent St-Amour
Racket version 6.10 is now available from

http://racket-lang.org/

Note: Graphical Racket programs such as DrRacket are affected by a bug
in the Windows 10 Creators update which can lead to blue screens and
require reboots. We are aware of the issue, and have mitigated it in
DrRacket, which reduces the incidence of crashes. Microsoft has
diagnosed the issue and will release a fix in a future Windows update.
Additional details are available here:
https://github.com/racket/racket/issues/1671

* Internally, Racket's intermediate compatibility layer over
  operating-system facilities has been moved into its own library,
  "rktio", so it can be used in future Racket implementations. This
  change should be transparent, but the refactoring moves code that
  has many compiler and OS dependencies, so we expect a new glitch or
  two in less-common build and execution environments. Please report
  problems at https://github.com/racket/racket/issues .

* Racket supports cross-compilation of executables in more cases,
  including executables that depend on packages for foreign libraries.

* The `struct` form supports an `#:authentic` annotation to declare
  that chaperones and impersonators are never allowed on instances of
  the declared structure type. This annotation is intended for use on
  a library's internal data structures, where it won't interfere with
  contracts or other forms of extension at a library's interface. It
  can sometimes provide a small performance boost.

* RackUnit adds `nested-info` and `string-info` to grant custom checks
  more control over the display and layout of check failure info.

* The `raco test` command provides the `++arg` and `++args` flags to
  pass arguments to tested programs.

* Typed Racket has types for immutable, mutable, and weak hashtables; in
  other words the type `(HashTable K V)` is a union `(U
  (Immutable-HashTable K V) (Mutable-HashTable K V) (Weak-HashTable K
  V))`. Standard library functions may have more specific return types.
  For example, `hash-set` has type `(-> (HashTable K V) K V
  (Immutable-HashTable K V))`.  When an immutable hashtable flows from
  untyped code to typed code, Typed Racket may use a flat contract to
  verify its type (provided the table's key and value types are flat).

* The Typed Racket Optimizer is disabled in untrusted contexts (e.g.,
  sandboxes). This prevents unsoundness in the Typed Racket type system
  from being used to get access to unsafe operations.

* Racket's internal runtime adds a `scheme_atexit` procedure with
  identical behavior as `atexit` defined in libc.

The following people contributed to this release:
Alex Knauth, Alexander McLin, Alexis King, Andrew Kent, Ben Greenman,
Ben Noordhuis, Carlo Dapor, Conor Finegan, Daniel Feltey, Ethan Estrada,
Georges Dupéron, Gary F. Baumgartner, Gianluca Ciccarelli, Gustavo
Massaccesi, Harold Carr, Jack Firth, Jay McCarthy, John Clements,
Kimball Germane, Leandro Facchinetti, Lehi Toskin, Leif Andersen,
Matthew Butterick, Matthew Flatt, Matthias Felleisen, Michael Orlitzky,
Milo Turner, Mohsen Keyhani, Philip McGrath, Robby Findler, Rob Bassi,
Ryan Culpepper, Sam Caldwell, Sam Tobin-Hochstadt, Scott Moore, Spencer
Florence, Stephen Chang, Stephen De Gabrielle, Vincent St-Amour, WarGrey
Gyoudmon Ju, and William J. Bowman.

Feedback Welcome

-- 
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] [ANN] MessagePack implementation for Racke

2017-07-24 Thread Vincent St-Amour
Hi Alejandro,

This looks cool!

I don't see it listed at pkgs.racket-lang.org. It would be easier for
users to discover it if you posted it there.

Vincent



On Mon, 24 Jul 2017 08:17:30 -0500,
Alejandro Sanchez wrote:
> 
> Hello dear Racketeers,
> 
> I have been writing an implementation of the MessagePack protocol for Racket
> and I think the library is ready to be showcased now:
> 
> https://gitlab.com/HiPhish/MsgPack.rkt
> 
> ### What is MessagePack? ###
> 
> MessagePack is a binary data serialisation format. The website describes it
> "like JSON but fast and small". Unlike JSON the goal is not a format that's
> human-readable, but one that can be very quickly serialised, transported and
> serialised.
> 
> http://msgpack.org/
> 
> ### About the Racket implementation ###
> 
> My goal was to keep everything as simple as possible: there are only two
> functions: pack and unpack. If there is more than one way of packing an object
> the smallest format is selected automatically. Here is a taste:
> 
> (require msgpack/pack msgpack/unpack)
> ;;; A wild hodgepodge to pack
> (define vec #(1 2 "hello" '(3 4) '() #t))
> ;;; A byte string of packed data
> (define packed
> (call-with-output-bytes (λ (out) (pack vec out
> ;;; Unpack the data again
> (define upacked
> (call-with-input-bytes packed (λ (in) (unpack in
> 
> As you can see, data is packed to and unpacked from a binary port. I think 
> this
> is better than packing/unpacking to binary string because MessagePack is
> primarily used for inter-process communication, so there is not much point in
> keeping the packed data inside a process.
> 
> I'd appreciate it a lot if a seasoned Racketeer could take a look at my code,
> in particular if the library is set up properly (the info.rkt files), this is
> my first time doing something in Racket. I am also open to suggestions about
> the API, I haven't committed to version 1.0 yet. In particular, I am not
> familiar with the modularity conventions of Racket libraries, i.e. if it is OK
> to have 'msgpack/pack' and 'msgpack/unpack' or if everything should be covered
> by one large 'provide' from 'msgpack'? There is one new type 'ext' declared,
> should that be part of 'msgpack' or should I move it to 'msgpack/types'
> instead?
> 
> On a related note, I find it really annoying that 'integer->integer-bytes' and
> 'integer-bytes->integer' do not support 8-bit integers. Is there a reason for
> that? I had to write all sorts of ugly extra code for the 8-bit cases. I 
> opened
> an issue on GitHub about it (#1754).
> 
> ### What's next? ###
> 
> Once the API settles I would like to move the library to typed Racket. I would
> also like to submit it to the Racket packages catalog. The reason I wrote this
> library is because I want to eventually write a Racket API client for Neovim:
> 
> https://github.com/neovim/neovim
> https://github.com/neovim/neovim/wiki/Related-projects#api-clients
> 
> Neovim is a fork of Vim which aims to stay backwards compatible with Vim, but
> at the same time bring the code base to modern standards, add long-wanted
> features and make the editor easier to extend. They have already done a lot of
> work, such asynchronous job control, a built-in terminal emulator, Lua
> scripting and in particular a remote API.
> 
> The remote API allows one to write plugins in any language, provided there is 
> a
> client for that language. In contrast, Vim has to be compiled with support for
> additional scripting languages and the integration burden was on the Vim
> developers. This meant that popular languages like Python would be pretty well
> supported, but more obscure languages were practically useless because no one
> would re-compile their Vim just for one plugin. The remote API approach means
> that Racket integration can be de-coupled from the editor development, and we
> can write plugins that can make use of Racket libraries. One could for example
> implement some of the DrRacket features using DrRacket as a library instead of
> re-inventing the wheel. It would also be possible to integrate Neovim inside
> DrRacket or write a Neovim GUI in Racket (GUIs are just very complex plugins 
> in
> Neovim).
> 
> -- 
> 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] (seventh RacketCon): Do You Have Your Ticket?

2017-07-21 Thread Vincent St-Amour
Racketeers,

(seventh RacketCon) is getting closer!

To whet your appetite, you can find details about some of the talks
we're looking forward to on the RacketCon website [1].

Also don't forget to register [2] and take advantage of our group rate
[3] at the very nice Hotel Deca [4].

If you would like to speak about something cool you've built, please get
in touch! Our schedule is already packed with rackety goodness, but we
can still squeeze more in!

---

RacketCon[1] is a yearly event where members of the Racket community get
together, featuring talks and demos about the things you do with Racket.
Racketeer Office Hours is a free-form day for Racketeers to get together
and collaborate on ongoing projects, start new ones, and get help and
advice from other members of the community.

(seventh RacketCon) will be held on October 7th, followed by Racketeer
Office Hours on October 8th. This year, RacketCon will be in Seattle, WA,
with support from the Racket group at the University of Washington.

See you in Seattle!

Vincent, for the RacketCon team


[1] http://con.racket-lang.org/
[2] https://www.eventbrite.com/e/racketcon-2017-tickets-34928590354
[3] 
https://gc.synxis.com/rez.aspx?Hotel=76675=10069=10/6/2017=10/8/2017=1=0=4AM98Y
[4] http://www.hoteldeca.com/

-- 
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 v6.9.0.900 is available for testing

2017-07-18 Thread Vincent St-Amour
Version 6.9.0.900 is now available for testing from

  http://pre-release.racket-lang.org/

(Note that this is not available from the usual download site.)

If all goes well, we will turn this version into a v6.10 release
within a couple of weeks.

This release includes a overhaul of Racket's IO facilities. Because
this is a major change to a portion of the codebase that includes a
lot of platform-specific code, we would like to invite people using
Racket on less common platforms (*BSD, OpenIndiana, etc.) or
architectures to help us test this new implementation.

Your help and feedback in testing this new release candidate would be
much appreciated.

-- 
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] Re: how to get full tracebacks in DrRacket?

2017-07-03 Thread Vincent St-Amour
On Sat, 01 Jul 2017 11:28:31 -0500,
Zelphir Kaltstahl wrote:
> 
> On Friday, June 30, 2017 at 5:10:44 PM UTC+2, Matthew Butterick wrote:
> > Is there a way to configure DrRacket so that it always prints the same 
> > full-length tracebacks that are visible on the command line? Here's an 
> > example of the same module run in both places. 
> 
> On command line I usually don't get a full trace unless I invoke with:
> 
> ~~~
> racket -l errortrace -t 
> ~~~
> 
> Does the option in DrRacket do this internally?

Yes. DrRacket's "debugging" option is roughly equivalent to this.

Vincent

-- 
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] beating java (speed)

2017-07-01 Thread Vincent St-Amour
On Sat, 01 Jul 2017 08:25:01 -0500,
WarGrey Gyoudmon Ju wrote:
> 
> Hello, did you try remove racket/unsafe/ops?
> You do not have to use unsafe operations for fixnum and flonum, Typed Racket 
> will do it for you.
> 
> I am not sure if this is my problem, I found that racket/unsafe/op slows down 
> my typed bitmap library.
> According to the Optimization Coach, FlVector (with unsafe-flvector-ref) 
> should be faster than (Vectorof Flonum), but I found it's not true.

Interesting, but I can believe that. FlVectors store floats unboxed, so
if you extract their contents into a context that expects them boxed,
you end up with extra overhead compared to regular vector.

> Another example is unsafe-vector-ref is slower than vector-ref.

That one is more surprising. `unsafe-vector-ref` should be doing
strictly less work. Would you mind sharing your benchmark?

If you're using TR, it can turn `vector-ref` into code that can call
`unsafe-vector*-ref` in some cases, which should be even faster than
`unsafe-vector-ref`. If you use `unsafe-vector-ref`, that optimization
doesn't kick in. But I wouldn't expect the whole TR-generated code for
that operation to outperform plain `unsafe-vector-ref`.

Vincent



> On Sat, Jul 1, 2017 at 9:07 PM, 'Shakin Billy' via Racket Users 
>  wrote:
> 
>  hi,
> 
>  i've been working a little on project euler problem 501.
>  my first attempt is a burte forcce loop.4iw rote it in java und racket and 
> found java to be faster by factor 3:
> 
>  racket
> 
>  #lang typed/racket
>  (require racket/unsafe/ops)
>  (require racket/fixnum)
>  (require racket/trace)
>  ;(require typed/racket/performance-hint)
> 
>  (: acht-teiler (-> Fixnum Boolean))
>  (define (acht-teiler (n : Fixnum))
>  (: loop (-> Fixnum Fixnum Fixnum Fixnum Boolean))
>  (define (loop (i : Fixnum) (count : Fixnum) (quadrat : Fixnum) (steigung : 
> Fixnum))
>  (cond ((unsafe-fx= quadrat n) #f)
>  ((unsafe-fx> quadrat n) (unsafe-fx= count 3))
>  ((unsafe-fx= (unsafe-fxmodulo n i) 0) (loop (unsafe-fx+ i 1) (unsafe-fx+ 
> count 1) (unsafe-fx+ quadrat steigung) (unsafe-fx+ steigung 2)))
>  (else (loop (unsafe-fx+ 1 i) count (unsafe-fx+ quadrat steigung) (unsafe-fx+ 
> steigung 2)
>  (loop 2 0 4 5))
> 
>  (acht-teiler 36)
> 
>  (: achter (-> Fixnum Fixnum))
>  (define (achter (n : Fixnum))
>  (: loop (-> Fixnum Fixnum Fixnum))
>  (define (loop (i : Fixnum) (count : Fixnum))
>  (cond ((unsafe-fx= i n) count)
>  ((acht-teiler i) (loop (unsafe-fx+ i 1) (unsafe-fx+ count 1)))
>  (else (loop (unsafe-fx+ i 1) count
>  (loop 2 0))
> 
>  (time (achter 100))
>  ; for 100 = 24, 30, 40, 42, 54, 56, 66, 70, 78 and 88
>  ; f(100) = 10, f(1000) = 180 and f(10e6) = 224427
> 
>  for java:
> 
>  import java.util.concurrent.Executor;
>  import java.util.concurrent.ExecutorService;
>  import java.util.concurrent.Executors;
>  import java.util.concurrent.TimeUnit;
> 
>  public class EightDivs implements Runnable{
> 
>  public static Object lock = new Object();
>  public static long count = 0;
> 
>  private long low;
>  private long high;
> 
>  public EightDivs(long low, long high){
>  this.low = low;
>  this.high = high;
>  }
> 
>  public boolean hasEightDivsExact(long a){
>  int divs = 0;
>  for(long i =1;i<=a;i++){
>  if(a % i == 0){
>  divs++;
>  }
>  }
>  return divs == 8;
>  }
> 
>  public boolean hasEightDivs(long a){
>  int divs = 0;
>  for(long i = 2; i*i <= a && divs < 4;i++){
>  if(a % i == 0){
>  divs++;
>  if (i*i == a && divs >= 3){
>  return false;
>  }
>  }
>  }
>  return divs == 3;
>  }
> 
>  public static void main(String[] args) throws InterruptedException {
>  ExecutorService ex = Executors.newFixedThreadPool(4);
>  long old = 1;
>  long start = System.currentTimeMillis();
>  // for(long i = 0L; i<= 1000_000L;i+=100_00){
>  // ex.execute(new EightDivs(old, i));
>   System.out.println(old +" low " + i + " high");
>  // old = i;
>  // }
>  // ex.shutdown();
>  // ex.awaitTermination(300, TimeUnit.SECONDS);
>  new EightDivs(1, 1000_000).run();
>  long end = System.currentTimeMillis();
>  System.out.println((end-start)/1000d+" Seconds");
>  // new EightDivs(1, 1000).hasEightDivs(24);
> 
>  System.out.println(count);
>  }
> 
>  @Override
>  public void run() {
>  for(long i = low;i  if(hasEightDivs(i)){
>  // System.out.println(i);
>  synchronized (lock) {
>  count++;
>  }
>  }
>  }
>  System.out.println(low +" low " + high + " high done");
>  }
> 
>  }
> 
>  --END CODE
> 
>  java code runs in 4.5 seconds
>  racket code takes 12.5 seconds to complete (in cli-mode)
> 
>  i typed racket and used unsafe operations. some perfomance hints from the 
> guide don't seem to apply since i already tyyped racket.
>  the optimization coach hints to use define-inline but it seems to be 
> available only in non-typed-raket.
> 
>  what can i do to speed things up (except better algorithms?)
> 
>  --
>  You received this message because you are subscribed to the Google Groups 
> "Racket 

Re: [racket-users] beating java (speed)

2017-07-01 Thread Vincent St-Amour
On Sat, 01 Jul 2017 08:07:37 -0500,
'Shakin Billy' via Racket Users wrote:
> 
> java code runs in 4.5 seconds
> racket code takes 12.5 seconds to complete (in cli-mode)
> 
> i typed racket and used unsafe operations. some perfomance hints from the 
> guide don't seem to apply since i already tyyped racket. 
> the optimization coach hints to use define-inline but it seems to be 
> available only in non-typed-raket.

You should be able to use `define-inline` by importing it from
`racket/performance-hint`. The Typed Racket typechecker may not be able
to cope with its expansion, though. You can emulate it by replacing your
function with a macro yourself, though.

Vincent

-- 
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] RacketCon Code of Conduct

2017-06-24 Thread Vincent St-Amour
All,

Thank you all for your comments, and thank you Claire and Leif for
bringing this to our attention.

We (the RacketCon organizers) have decided to adopt the SNAPL code of
conduct (based on the ACM's) for RacketCon. You can find it on the
RacketCon web page[1].

Hope to see you all in Seattle!

Vincent


[1] con.racket-lang.org


On Fri, 16 Jun 2017 13:44:39 -0500,
Leif Andersen wrote:
> 
> RacketCon 2017 should have a code of conduct, as pointed out by Claire on 
> twitter [1], and I absolutely agree. It doesn't have to be anything fancy, 
> and can be a fairly standard one.
> 
> Although we are not co-located with Strange Loop this year, they have a 
> fairly sensible one that we could use [2], which is adapted from the one from 
> the geek feminism wiki [3].
> 
> Does anyone have any opinions on what we use? I would also be happy to add it 
> to the RacketCon web page.
> 
> [1]: https://twitter.com/chckadee/status/874345544977707008
> [2]: https://www.thestrangeloop.com/policies.html
> [3]: https://geekfeminism.org/about/code-of-conduct/
> 
> ~Leif Andersen
> 
> -- 
> 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] racket documentation does not open

2017-06-07 Thread Vincent St-Amour
Hi Johannes,

This is a bug in MacOS. Until it gets fixed, here's a workaround:

https://github.com/racket/racket/issues/1685#issuecomment-305898812

Vincent



On Wed, 07 Jun 2017 12:03:31 -0500,
Johannes Brauer wrote:
> 
> Hi,
> 
> I have installed Racket 6.9 on macOs 10.12.5. If I try to open any 
> documentation page I get this error message:
> browser-run: process execute failed: '(# "-e" "open 
> location \"file:///Applications/Entwicklung/Racket%20v6.9/doc/index.html\“")
> 
> What can I do?
> 
> Johannes
> 
> -- 
> 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: (seventh RacketCon) Call for Speakers

2017-06-05 Thread Vincent St-Amour
Hi Charles,

We're still accepting proposals, and I'm the one to send them to.

Looking forward to seeing yours!

Vincent



On Mon, 05 Jun 2017 07:22:10 -0500,
Charles Earl wrote:
> 
> Has the deadline passed for talk proposals? If not, where should they be 
> submitted?
> 
> Charles

-- 
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] immutable hash table references?

2017-05-24 Thread Vincent St-Amour
I believe we used red-black trees.

Matt Might has a nice writeup on functional red-black trees:
  http://matt.might.net/articles/red-black-delete/

Vincent


On Wed, 24 May 2017 10:14:11 -0500,
Robby Findler wrote:
> 
> But it was a different balanced binary tree before. There are many
> things it could be that would behave similarly.
> 
> Robby
> 
> 
> On Wed, May 24, 2017 at 10:05 AM, Stephen Chang  wrote:
> > I believe Racket uses HAMTs [1] for immutable hash tables.
> >
> > [1]: http://lampwww.epfl.ch/papers/idealhashtrees.pdf
> >
> > On Wed, May 24, 2017 at 11:01 AM, 'John Clements' via users-redirect
> >  wrote:
> >> I’m introducing hash tables to students in a first-year class. Is there a 
> >> handy reference for the implementation of immutable hash tables? Is this 
> >> in Okasaki?
> >>
> >> 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.
> >
> > --
> > 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] DrRacket has become unusable: freezes almost immediately

2017-05-23 Thread Vincent St-Amour
On Tue, 23 May 2017 06:35:58 -0500,
Alasdair McAndrew wrote:
> 
> On Tuesday, 23 May 2017 21:06:17 UTC+10, Robby Findler  wrote:
> > If you start DrRacket from the shell, trigger the bad behavior and then 
> > type control-c in the shell, do you get any output?
> > 
> > 
> > Robby
> > 
> Thanks for the suggestion - which I had in fact tried, to no avail.  DrRacket 
> froze, and the only way out of it was via tty2.

After the `killall` from tty2, did the shell you started DrRacket from have any 
output?

Thanks for helping us investigate!

Vincent

-- 
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] Contracts for generic interfaces (or struct type properties?)

2017-05-23 Thread Vincent St-Amour
Hi Philip,

I don't think you can express the contract boundary you have in mind
using the generics library as it is.

The blame you see for both contracts makes sense. In the first case,
`string-server` is not protecting itself from bad inputs (uses `any/c`)
yet promises to return a string. It rightly gets blamed when that
doesn't happen.

In the second case, `string-server` does protect itself (using
`can-be-string/c`), but it protects itself against its callers, who now
have the responsibility to pass it something reasonable. It doesn't
(passes the `buggy` struct along), so it rightly gets blamed.

To get the contract boundary that you want, I think you'd want to wrap
the `buggy` constructor with a contract that makes it commit to
producing a valid `can-be-string`. You could do this either when you
export it from the `buggy` module, or by "laundering" it through a
submodule before getting it to the main module. That way, it should end
up being blamed.

This is not a great solution, because you'd have to do this for every
instance of the generic interface, but the class of boundaries you have
in mind cannot currently be described, I think.

Vincent




On Mon, 22 May 2017 22:31:25 -0500,
Philip McGrath wrote:
> 
> I'm running into trouble in trying to give contracts to methods from generic 
> interfaces (in the sense of racket/generic) that assign blame to the 
> implementor of a bad method implementation. This seems like it's probably a 
> common problem, so I'm
> hoping a solution exists.
> 
> For an example, consider the following:
> 
>  #lang racket
> 
>  (module string-server racket
>  (require racket/generic)
>  (provide gen:can-be-string
>  can-be-string?
>  (contract-out
>  [to-string
>  (-> any/c 
>  string?)]
>  ))
>  (define-generics can-be-string
>  (to-string can-be-string)
>  #:fast-defaults
>  ([string?
>  (define (to-string str)
>  str)])))
> 
>  (module buggy racket
>  (require (submod ".." string-server))
>  (provide (struct-out buggy))
>  (struct buggy ()
>  #:methods gen:can-be-string
>  [(define (to-string this)
>  'not-a-string)]))
> 
>  (require (submod "." string-server)
>  (submod "." buggy))
> 
>  (to-string (buggy))
> 
> This program raises an exception as expected, but blames the string-server 
> module rather than the buggy module.
> 
> The string-server module can deflect blame from itself by changing the 
> contract of to-string to
> (-> (can-be-string/c [to-string (-> any/c string?)]) string?), but the result 
> is even worse: now the error blames the enclosing module.
> 
> The closest thing I've found to a solution is to abandon racket/generic and 
> use a struct type property with a guard that performs lots of checks and 
> eventually calls chaperone-procedure. Aside from being verbose and 
> error-prone (in that it requires
> manually writing checks correctly rather than relying the contract system), 
> it also doesn't really address the problem of blame, since errors from e.g. 
> raise-arguments-error don't blame anything in particular.
> 
> Is there a way to write the kind of contract I have in mind?
> 
> Thanks,
> Philip
> 
> -- 
> 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] raco docs error on macOS 10.12.5

2017-05-22 Thread Vincent St-Amour
Hi Vitaliy,

I believe this should be fixed now, but the fix was not in 6.9, hence
the error you're seeing.

If you want to try it, you can get a nightly build at pre.racket-lang.org

6.10 is due in July, and will include the fix.

Thanks for the report, and please do let us know if the problem persists
on the nightly build.

Vincent




On Mon, 22 May 2017 08:24:58 -0500,
Vitaliy Vlasov wrote:
> 
> Hi all,
> 
> running `raco docs` in the terminal on macOS 10.12.5 gives this:
> 
> ➜  c raco docs
> 0:65: execution error: "file:///Applications/Racket%20v6.9/doc/index.html" 
> doesn’t understand the “open location” message. (-1708)
> browser-run: process execute failed: '(# "-e" "open 
> location \"file:///Applications/Racket%20v6.9/doc/index.html\"")
> 
> I've installed Racket through Homebrew Cask formula. Can someone please point 
> me to the cause of the problem? Is something wrong with my installation?
> 
> Thanks!
> 
> -- 
> 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] Re: Type Racket command-line #:ps causing type error

2017-05-22 Thread Vincent St-Amour
Hi Kay,

On Sun, 21 May 2017 23:30:50 -0500,
kay wrote:
> 
> Hi Vincent,
> 
> Thanks for fixing it. Is there a Github commit that you can refer me
> to? Or does Racket development actually happen on Github?

Yes, Racket development does happen on github.

The relevant commit is this one:
https://github.com/racket/typed-racket/commit/c0af5235d255ca1a9622249c0ca26ad5349ccefa

> In addition, MORE IMPORTANTLY, now that it looks like a bug that I
> found, is there a workaround to this problem without waiting for a new
> release that contains the fix?

I see two potential solutions here:
- You could use a nightly build (from pre.racket-lang.org) instead of a
  released version, until 6.10 comes out (planned for July).
- You could use `require/typed` to import `parse-command-line` at the
  type that you need. That's the procedure version of the `command-line`
  syntax, which should support all the same options, but with a
  different interface. Since it's a procedure, you can ascribe it a type
  yourself.

> How stable is Typed Racket? I know you guys are doing an awesome job
> and I really love it - but just trying to put my expectation right, as
> I'm totally new to TR and this is my first TR problem and I
> encountered this bug, leading me to wonder this question.

I'll let Sam answer this one, or one of TR's users. :)

In general, though, it's possible for TR to lag a bit behind untyped
Racket for some things. If a Racket function, say, gains an extra
keyword argument, we're usually pretty good at adding it to its type
quickly. Sometimes things fall through the cracks; #:ps must have been
one of them.

Vincent



> On Thursday, May 18, 2017 at 1:51:14 PM UTC-7, Vincent St-Amour wrote:
> > I just pushed a fix. Thanks for the report!
> > 
> > Vincent
> > 
> > 
> > On Wed, 17 May 2017 01:47:11 -0500,
> > lu wrote:
> > > 
> > > On Tuesday, May 16, 2017 at 12:47:37 AM UTC-7, kay wrote:
> > > > Hi I feel this might be a bug, can anyone confirm or suggest a fix?
> > > > 
> > > > Here's a minimal usage of `command-line` form:
> > > > 
> > > > ```
> > > > #lang typed/racket
> > > > 
> > > > (define *message* : (Parameterof (Listof String)) (make-parameter '()))
> > > > (define *verbose* : (Parameterof Boolean) (make-parameter #f))
> > > > 
> > > > (define (parse-cmdline)
> > > > (command-line
> > > >  #:program "q"
> > > >  #:once-each
> > > >  [("-v" "--verbose") "verbose mode" (*verbose* #t)]
> > > >  #:ps "foo bar" ; < causing type error
> > > >  #:args #{msg : String} (*message* msg)))
> > > > 
> > > > (parse-cmdline)
> > > > ```
> > > > 
> > > > Note that it gives the below type error[1]. However, if you comment out 
> > > > the line with #:ps, type check passes.
> > > > 
> > > > I noticed that from the error prompt, for argument 3, the expected 
> > > > Union type doesn't include 'ps. This leads me to think it might be a 
> > > > bug. Please tell me it's not and there's a fix:)
> > > > 
> > > > 
> > > > [1]: type error:
> > > > 
> > > > test.rkt:6:0: Type Checker: Polymorphic function `parse-command-line' 
> > > > could not be applied to arguments:
> > > > Argument 1:
> > > >   Expected: Path-String
> > > >   Given:String
> > > > Argument 2:
> > > >   Expected: (U (Listof String) (Vectorof String))
> > > >   Given:(Vectorof String)
> > > > Argument 3:
> > > >   Expected: (Listof (Pairof (U 'final 'help-labels 'multi 'once-any 
> > > > 'once-each) (Listof (Listof Any
> > > >   Given:(List (List 'once-each (List (List String String) (-> Any 
> > > > Void) (Listof (List String (List 'ps String))
> > > > Argument 4:
> > > >   Expected: (-> Any a ... a b)
> > > >   Given:(-> Any String * Void)
> > > > Argument 5:
> > > >   Expected: (Listof String)
> > > >   Given:(List String)
> > > > 
> > > >   in: (define (parse-cmdline) (command-line #:program "q" #:once-each 
> > > > (("-v" "--verbose") "verbose mode" (*verbose* #t)) #:ps "foo bar" 
> > > > #:args msg (*message* msg)))
> > > 
> > > Ping... can anyone help with this problem?
> > > 
> > > -- 
> > > 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] Re: Type Racket command-line #:ps causing type error

2017-05-18 Thread Vincent St-Amour
I just pushed a fix. Thanks for the report!

Vincent


On Wed, 17 May 2017 01:47:11 -0500,
lu wrote:
> 
> On Tuesday, May 16, 2017 at 12:47:37 AM UTC-7, kay wrote:
> > Hi I feel this might be a bug, can anyone confirm or suggest a fix?
> > 
> > Here's a minimal usage of `command-line` form:
> > 
> > ```
> > #lang typed/racket
> > 
> > (define *message* : (Parameterof (Listof String)) (make-parameter '()))
> > (define *verbose* : (Parameterof Boolean) (make-parameter #f))
> > 
> > (define (parse-cmdline)
> > (command-line
> >  #:program "q"
> >  #:once-each
> >  [("-v" "--verbose") "verbose mode" (*verbose* #t)]
> >  #:ps "foo bar" ; < causing type error
> >  #:args #{msg : String} (*message* msg)))
> > 
> > (parse-cmdline)
> > ```
> > 
> > Note that it gives the below type error[1]. However, if you comment out the 
> > line with #:ps, type check passes.
> > 
> > I noticed that from the error prompt, for argument 3, the expected Union 
> > type doesn't include 'ps. This leads me to think it might be a bug. Please 
> > tell me it's not and there's a fix:)
> > 
> > 
> > [1]: type error:
> > 
> > test.rkt:6:0: Type Checker: Polymorphic function `parse-command-line' could 
> > not be applied to arguments:
> > Argument 1:
> >   Expected: Path-String
> >   Given:String
> > Argument 2:
> >   Expected: (U (Listof String) (Vectorof String))
> >   Given:(Vectorof String)
> > Argument 3:
> >   Expected: (Listof (Pairof (U 'final 'help-labels 'multi 'once-any 
> > 'once-each) (Listof (Listof Any
> >   Given:(List (List 'once-each (List (List String String) (-> Any Void) 
> > (Listof (List String (List 'ps String))
> > Argument 4:
> >   Expected: (-> Any a ... a b)
> >   Given:(-> Any String * Void)
> > Argument 5:
> >   Expected: (Listof String)
> >   Given:(List String)
> > 
> >   in: (define (parse-cmdline) (command-line #:program "q" #:once-each 
> > (("-v" "--verbose") "verbose mode" (*verbose* #t)) #:ps "foo bar" #:args 
> > msg (*message* msg)))
> 
> Ping... can anyone help with this problem?
> 
> -- 
> 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] sharing a value between a DrRacket tool and a user program

2017-05-16 Thread Vincent St-Amour
John, Austin,

You can use loggers for this. The `data` argument to `log-message`
allows payloads to be carried along with log messages. Just have the
user program log messages with a particular topic, and have the tool
listen on that topic.

That's how the optimization coach (which is a DrRacket tool) gets info
from the the user program.

Vincent



On Tue, 16 May 2017 11:38:32 -0500,
'John Clements' via Racket Users wrote:
> 
> Austin Sparks (cc:ed) and I are struggling with what I believe should be a 
> pretty simple problem; how can we share a value between a DrRacket tool and a 
> user’s program? Specifically, the value in question here is a channel 
> (probably an asynchronous channel) on which the user’s thread can place 
> musical-note-to-be-played values.
> 
> The heavyweight way―I’m pretty confident this would work―is to provide our 
> own “run” button, allowing us to add existing module invocations to the 
> user’s namespace before the user’s module is expanded or invoked. However, 
> I’m thinking there’s … an easier way to do it?
> 
> 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.

-- 
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] (seventh RacketCon) Call for Speakers

2017-05-05 Thread Vincent St-Amour
Racketeers,

(seventh RacketCon) will be held on October 7th, followed by Racketeer
Office Hours on October 8th. This year, RacketCon will be in Seattle, WA,
with support from the Racket group at the University of Washington.

We are pleased to announce that Dan Friedman and Will Byrd will be
giving this year's keynote!

RacketCon[1] is a yearly event where members of the Racket community get
together, featuring talks and demos about the things you do with Racket.
Racketeer Office Hours is a free-form day for Racketeers to get together
and collaborate on ongoing projects, start new ones, and get help and
advice from other members of the community.

If you've built something cool with Racket, we want to hear about it!
We're looking for speakers to give 15 minute talks about their Racket-
based applications, libraries, activities, etc. If that sounds like fun,
please send me a talk proposal! Please note, though, that because of
time constraints, we may not be able to accept all proposals.

RacketCon attendees benefit from a group rate[2] a the Hotel Deca[3],
near the venue. Registration is not open yet, but we'll let you know
when it is.

Hope to see you in Seattle!

Vincent, for the RacketCon team


[1] http://con.racket-lang.org/
[2] 
https://gc.synxis.com/rez.aspx?Hotel=76675=10069=10/6/2017=10/8/2017=1=0=4AM98Y
[3] http://www.hoteldeca.com/

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

2017-05-01 Thread Vincent St-Amour

There was an issue with the signatures on the Windows installers for 6.9.

We've uploaded new, properly signed Windows installers to
download.racket-lang.org

Thanks to Magda Wojciecchowska for the report!

Vincent


On Thu, 27 Apr 2017 15:47:55 -0500,
Vincent St-Amour wrote:
> 
> Racket version 6.9 is now available from
> 
> http://racket-lang.org/
> 
> ---
> 
> Security Announcement:
> 
> A security vulnerability in the `racket/sandbox` library and Typed
> Racket allowed malicious Typed Racket code to escape the sandbox.
> This vulnerability has been fixed in Racket version 6.9. Anyone using
> `racket/sandbox` to execute untrustworthy code with access to Typed
> Racket should upgrade to version 6.9 immediately.
> 
> While this known vulnerability has been eliminated, it is possible that
> similar errors in other installed collections could also be exploited,
> although we are not currently aware of any existing vulnerabilities. We
> recommend that if you use the Racket sandbox to execute untrustworthy
> Racket code, you should also employ additional operating system or
> virtual machine level protections. The documentation for `racket/sandbox`
> has been updated to list recommended security practices for using the
> library.
> 
> Thanks to Scott Moore for identifying this vulnerability.
> 
> ---
> 
> - The official package catalog Web site is revised to have a new user
>   experience.
> 
> - The Northwestern snapshot site keeps weekly snapshots going up to 12
>   weeks into the past. Those provide a middle ground for users who want
>   access to new features earlier than stable releases, but want less
>   churn than nightly builds.
> 
> - DrRacket provides a refactoring tool to remove unused requires in
>   modules.
> 
> - DrRacket's #lang-line customization support works better with buggy
>   (i.e., in development) languages.
> 
> - The web server's cookie libraries, including "id cookie" authentication,
>   support RFC 6265.
> 
> - The `db` library supports PostgreSQL's UUID type.
> 
> - The `raco` command lists matching commands when passed an ambiguous
>   command prefix.
> 
> - The bytecode compiler detects more optimization opportunities for
>   structure operations.
> 
> - Scribble can produce output via XeLaTeX as an alternative to LaTeX.
> 
> - Scribble supports the `acmart` LaTeX style, for use with ACM
>   publications.
> 
> - Scribble supports the use of CJK characters in tags.
> 
> ---
> 
> The following people contributed to this release:
> Alex Knauth, Alexander Shopov, Alexis King, Andrew Kent, Asumu Takikawa,
> Ben Greenman, Daniel Feltey, David Van Horn, Georges Dupéron, Greg
> Hendershott, Gustavo Massaccesi, Ingo Blechschmidt, James Bornholt,
> James Whang, Jay McCarthy, Jeff Shelley, John Clements, Jordan Johnson,
> Leandro Facchinetti, Leif Andersen, Marc Burns, Matthew Butterick,
> Matthew Eric Bassett, Matthew Flatt, Matthias Felleisen, Michael Myers,
> Mike Sperber, Philip McGrath, Philippe Meunier, Robby Findler, Royall
> Spence, Ryan Culpepper, Sam Caldwell, Sam Tobin-Hochstadt, Shu-Hung You,
> Spencer Florence, Stephen Chang, Tony Garnock-Jones, Vincent St-Amour,
> WarGrey Gyoudmon Ju, Wei Tang, and William G Hatch.
> 
> Feedback Welcome
> 
> -- 
> 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] Racket v6.9

2017-04-30 Thread Vincent St-Amour
Hi Meino,

Glad to hear everything is working now!

Thanks for reporting this usability issue in the installer. I'll look
into it.

Vincent



On Fri, 28 Apr 2017 19:42:24 -0500,
tu...@posteo.de wrote:
> 
> Hi Vincent,
> 
> It was a layer eight error...(mine).
> 
> It seems that answering "Yes" to ""/usr/local/racket" exists, delete?"
> means "No" and a simple "y" removes the old installation (guessed).
> The old installation was still in place.
> 
> I fied that and now the brand new racket is the brand new racket.
> 
> :)
> 
> Sorry for the wrong red alert...
> 
> Cheers
> Meino
> 
> 
> 
> On 04/28 02:59, Vincent St-Amour wrote:
> > Hi Meino,
> > 
> > I can't reproduce this on either Mac OS or Linux.
> > 
> > Are you sure you have the right Racket in your path?
> > 
> > Vincent
> > 
> > 
> > 
> > On Thu, 27 Apr 2017 22:14:44 -0500,
> > tu...@posteo.de wrote:
> > > 
> > > Hi,
> > > 
> > > ...it looks like, that the REPL still states to be
> > > verion 6.8 of racket ?
> > > (x86_84/Linux)
> > > 
> > > Cheers
> > > Meino
> > > 
> > > 
> > > On 04/27 03:47, Vincent St-Amour wrote:
> > > > Racket version 6.9 is now available from
> > > > 
> > > > http://racket-lang.org/
> > > > 
> > > > ---
> > > > 
> > > > Security Announcement:
> > > > 
> > > > A security vulnerability in the `racket/sandbox` library and Typed
> > > > Racket allowed malicious Typed Racket code to escape the sandbox.
> > > > This vulnerability has been fixed in Racket version 6.9. Anyone using
> > > > `racket/sandbox` to execute untrustworthy code with access to Typed
> > > > Racket should upgrade to version 6.9 immediately.
> > > > 
> > > > While this known vulnerability has been eliminated, it is possible that
> > > > similar errors in other installed collections could also be exploited,
> > > > although we are not currently aware of any existing vulnerabilities. We
> > > > recommend that if you use the Racket sandbox to execute untrustworthy
> > > > Racket code, you should also employ additional operating system or
> > > > virtual machine level protections. The documentation for 
> > > > `racket/sandbox`
> > > > has been updated to list recommended security practices for using the
> > > > library.
> > > > 
> > > > Thanks to Scott Moore for identifying this vulnerability.
> > > > 
> > > > ---
> > > > 
> > > > - The official package catalog Web site is revised to have a new user
> > > >   experience.
> > > > 
> > > > - The Northwestern snapshot site keeps weekly snapshots going up to 12
> > > >   weeks into the past. Those provide a middle ground for users who want
> > > >   access to new features earlier than stable releases, but want less
> > > >   churn than nightly builds.
> > > > 
> > > > - DrRacket provides a refactoring tool to remove unused requires in
> > > >   modules.
> > > > 
> > > > - DrRacket's #lang-line customization support works better with buggy
> > > >   (i.e., in development) languages.
> > > > 
> > > > - The web server's cookie libraries, including "id cookie" 
> > > > authentication,
> > > >   support RFC 6265.
> > > > 
> > > > - The `db` library supports PostgreSQL's UUID type.
> > > > 
> > > > - The `raco` command lists matching commands when passed an ambiguous
> > > >   command prefix.
> > > > 
> > > > - The bytecode compiler detects more optimization opportunities for
> > > >   structure operations.
> > > > 
> > > > - Scribble can produce output via XeLaTeX as an alternative to LaTeX.
> > > > 
> > > > - Scribble supports the `acmart` LaTeX style, for use with ACM
> > > >   publications.
> > > > 
> > > > - Scribble supports the use of CJK characters in tags.
> > > > 
> > > > ---
> > > > 
> > > > The following people contributed to this release:
> > > > Alex Knauth, Alexander Shopov, Alexis King, Andrew Kent, Asumu Takikawa,
> > > > Ben Greenman, Daniel Feltey, David Van Horn, Georges Dupéron, Greg
> > > > Hender

Re: [racket-users] Racket v6.9

2017-04-28 Thread Vincent St-Amour
Hi Meino,

I can't reproduce this on either Mac OS or Linux.

Are you sure you have the right Racket in your path?

Vincent



On Thu, 27 Apr 2017 22:14:44 -0500,
tu...@posteo.de wrote:
> 
> Hi,
> 
> ...it looks like, that the REPL still states to be
> verion 6.8 of racket ?
> (x86_84/Linux)
> 
> Cheers
> Meino
> 
> 
> On 04/27 03:47, Vincent St-Amour wrote:
> > Racket version 6.9 is now available from
> > 
> > http://racket-lang.org/
> > 
> > ---
> > 
> > Security Announcement:
> > 
> > A security vulnerability in the `racket/sandbox` library and Typed
> > Racket allowed malicious Typed Racket code to escape the sandbox.
> > This vulnerability has been fixed in Racket version 6.9. Anyone using
> > `racket/sandbox` to execute untrustworthy code with access to Typed
> > Racket should upgrade to version 6.9 immediately.
> > 
> > While this known vulnerability has been eliminated, it is possible that
> > similar errors in other installed collections could also be exploited,
> > although we are not currently aware of any existing vulnerabilities. We
> > recommend that if you use the Racket sandbox to execute untrustworthy
> > Racket code, you should also employ additional operating system or
> > virtual machine level protections. The documentation for `racket/sandbox`
> > has been updated to list recommended security practices for using the
> > library.
> > 
> > Thanks to Scott Moore for identifying this vulnerability.
> > 
> > ---
> > 
> > - The official package catalog Web site is revised to have a new user
> >   experience.
> > 
> > - The Northwestern snapshot site keeps weekly snapshots going up to 12
> >   weeks into the past. Those provide a middle ground for users who want
> >   access to new features earlier than stable releases, but want less
> >   churn than nightly builds.
> > 
> > - DrRacket provides a refactoring tool to remove unused requires in
> >   modules.
> > 
> > - DrRacket's #lang-line customization support works better with buggy
> >   (i.e., in development) languages.
> > 
> > - The web server's cookie libraries, including "id cookie" authentication,
> >   support RFC 6265.
> > 
> > - The `db` library supports PostgreSQL's UUID type.
> > 
> > - The `raco` command lists matching commands when passed an ambiguous
> >   command prefix.
> > 
> > - The bytecode compiler detects more optimization opportunities for
> >   structure operations.
> > 
> > - Scribble can produce output via XeLaTeX as an alternative to LaTeX.
> > 
> > - Scribble supports the `acmart` LaTeX style, for use with ACM
> >   publications.
> > 
> > - Scribble supports the use of CJK characters in tags.
> > 
> > ---
> > 
> > The following people contributed to this release:
> > Alex Knauth, Alexander Shopov, Alexis King, Andrew Kent, Asumu Takikawa,
> > Ben Greenman, Daniel Feltey, David Van Horn, Georges Dupéron, Greg
> > Hendershott, Gustavo Massaccesi, Ingo Blechschmidt, James Bornholt,
> > James Whang, Jay McCarthy, Jeff Shelley, John Clements, Jordan Johnson,
> > Leandro Facchinetti, Leif Andersen, Marc Burns, Matthew Butterick,
> > Matthew Eric Bassett, Matthew Flatt, Matthias Felleisen, Michael Myers,
> > Mike Sperber, Philip McGrath, Philippe Meunier, Robby Findler, Royall
> > Spence, Ryan Culpepper, Sam Caldwell, Sam Tobin-Hochstadt, Shu-Hung You,
> > Spencer Florence, Stephen Chang, Tony Garnock-Jones, Vincent St-Amour,
> > WarGrey Gyoudmon Ju, Wei Tang, and William G Hatch.
> > 
> > Feedback Welcome
> > 
> > -- 
> > 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.


[racket-users] Racket v6.9

2017-04-27 Thread Vincent St-Amour
Racket version 6.9 is now available from

http://racket-lang.org/

---

Security Announcement:

A security vulnerability in the `racket/sandbox` library and Typed
Racket allowed malicious Typed Racket code to escape the sandbox.
This vulnerability has been fixed in Racket version 6.9. Anyone using
`racket/sandbox` to execute untrustworthy code with access to Typed
Racket should upgrade to version 6.9 immediately.

While this known vulnerability has been eliminated, it is possible that
similar errors in other installed collections could also be exploited,
although we are not currently aware of any existing vulnerabilities. We
recommend that if you use the Racket sandbox to execute untrustworthy
Racket code, you should also employ additional operating system or
virtual machine level protections. The documentation for `racket/sandbox`
has been updated to list recommended security practices for using the
library.

Thanks to Scott Moore for identifying this vulnerability.

---

- The official package catalog Web site is revised to have a new user
  experience.

- The Northwestern snapshot site keeps weekly snapshots going up to 12
  weeks into the past. Those provide a middle ground for users who want
  access to new features earlier than stable releases, but want less
  churn than nightly builds.

- DrRacket provides a refactoring tool to remove unused requires in
  modules.

- DrRacket's #lang-line customization support works better with buggy
  (i.e., in development) languages.

- The web server's cookie libraries, including "id cookie" authentication,
  support RFC 6265.

- The `db` library supports PostgreSQL's UUID type.

- The `raco` command lists matching commands when passed an ambiguous
  command prefix.

- The bytecode compiler detects more optimization opportunities for
  structure operations.

- Scribble can produce output via XeLaTeX as an alternative to LaTeX.

- Scribble supports the `acmart` LaTeX style, for use with ACM
  publications.

- Scribble supports the use of CJK characters in tags.

---

The following people contributed to this release:
Alex Knauth, Alexander Shopov, Alexis King, Andrew Kent, Asumu Takikawa,
Ben Greenman, Daniel Feltey, David Van Horn, Georges Dupéron, Greg
Hendershott, Gustavo Massaccesi, Ingo Blechschmidt, James Bornholt,
James Whang, Jay McCarthy, Jeff Shelley, John Clements, Jordan Johnson,
Leandro Facchinetti, Leif Andersen, Marc Burns, Matthew Butterick,
Matthew Eric Bassett, Matthew Flatt, Matthias Felleisen, Michael Myers,
Mike Sperber, Philip McGrath, Philippe Meunier, Robby Findler, Royall
Spence, Ryan Culpepper, Sam Caldwell, Sam Tobin-Hochstadt, Shu-Hung You,
Spencer Florence, Stephen Chang, Tony Garnock-Jones, Vincent St-Amour,
WarGrey Gyoudmon Ju, Wei Tang, and William G Hatch.

Feedback Welcome

-- 
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/Dr. Racket on Android?

2017-04-20 Thread Vincent St-Amour
There is! Thanks to Jay McCarthy, Byron Davies, and Black Swan Learning LLC.

https://github.com/jeapostrophe/racket-android

Vincent


On Thu, 20 Apr 2017 11:30:55 -0500,
Lawrence Bottorff wrote:
> 
> Is there a version of Racket for Android yet?
> 
> -- 
> 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] range with small or zero step doesn't return

2017-04-17 Thread Vincent St-Amour
I agree. I'll add a note to the docs.

Vincent


On Mon, 17 Apr 2017 16:16:49 -0500,
Tim Jervis wrote:
> 
> I like the document route; anyone who is happy with the performance tradeoff 
> would be free to implement a more conservative version.
> 
> On 17 Apr 2017, at 21:59, Ben Greenman <benjaminlgreen...@gmail.com> wrote:
> 
>  Maybe, just add a note to the docs?
> 
>  On Mon, Apr 17, 2017 at 4:56 PM, Vincent St-Amour 
> <stamo...@eecs.northwestern.edu> wrote:
> 
>  The latter is easy to fix; I've submitted a pull request.
> 
>  The former is trickier. The problem is not so much due to the step size
>  itself, but rather to a combination of the step size and of a particular
>  iteration state.
> 
>  (For people following along, the issue is that there exists a value `x`
>  such that `(= (+ x 1e-17) x)`, and that the iteration reaches that `x`
>  as its state at some point, then loops.)
> 
>  Guarding against that would require an additional check at each
>  iteration, which may introduce overhead.
> 
>  I did some very, very crude benchmarking, and here's what I got:
> 
>  Without extra check:
>  > (time (for ([i (in-range 100)]) i))
>  cpu time: 19478 real time: 19469 gc time: 0
>  > (time (for ([i (in-range 100)]) i))
>  cpu time: 20171 real time: 20179 gc time: 0
>  > (time (for ([i (in-range 100)]) i))
>  cpu time: 20049 real time: 20043 gc time: 0
> 
>  With extra check:
>  > (time (for ([i (in-range 100)]) i))
>  cpu time: 22100 real time: 22210 gc time: 0
>  > (time (for ([i (in-range 100)]) i))
>  cpu time: 7 real time: 22265 gc time: 0
>  > (time (for ([i (in-range 100)]) i))
>  cpu time: 21934 real time: 22016 gc time: 0
> 
>  The difference is non-insignificant. Admittedly, this is the worst
>  possible case, though.
> 
>  Vincent
> 
>  On Mon, 17 Apr 2017 09:17:32 -0500,
>  Tim Jervis wrote:
>  >
>  > Dear Racket Users,
>  >
>  > I’ve noticed the following procedure calls don’t return (on my 64 bit Mac 
> hardware):
>  >
>  > 1 (range (- 1 1e-16) 1.0 1e-17)
>  > 2 (range 0 1 0)
>  >
>  > While (2) is obvious, (1) tripped me up (as I hadn’t noticed my step size 
> had fallen to effectively zero).
>  >
>  > A small tweak to for.rkt in the racket distribution could trap the 
> condition of an actually or effectively zero step. for.rkt already traps the 
> condition where step is not real.
>  >
>  > If this makes sense, could one of the authors consider adding the tweak? 
> Or is there a reason for leaving it alone?
>  >
>  > Kind regards,
>  >
>  > Tim
>  >
>  > Tim Jervis
>  >
>  > http://timjervis.com/
>  >
>  > --
>  > 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] range with small or zero step doesn't return

2017-04-17 Thread Vincent St-Amour
The latter is easy to fix; I've submitted a pull request.

The former is trickier. The problem is not so much due to the step size
itself, but rather to a combination of the step size and of a particular
iteration state.

(For people following along, the issue is that there exists a value `x`
such that `(= (+ x 1e-17) x)`, and that the iteration reaches that `x`
as its state at some point, then loops.)

Guarding against that would require an additional check at each
iteration, which may introduce overhead.

I did some very, very crude benchmarking, and here's what I got:

Without extra check:
> (time (for ([i (in-range 100)]) i))
cpu time: 19478 real time: 19469 gc time: 0
> (time (for ([i (in-range 100)]) i))
cpu time: 20171 real time: 20179 gc time: 0
> (time (for ([i (in-range 100)]) i))
cpu time: 20049 real time: 20043 gc time: 0

With extra check:
> (time (for ([i (in-range 100)]) i))
cpu time: 22100 real time: 22210 gc time: 0
> (time (for ([i (in-range 100)]) i))
cpu time: 7 real time: 22265 gc time: 0
> (time (for ([i (in-range 100)]) i))
cpu time: 21934 real time: 22016 gc time: 0

The difference is non-insignificant. Admittedly, this is the worst
possible case, though.

Vincent



On Mon, 17 Apr 2017 09:17:32 -0500,
Tim Jervis wrote:
> 
> Dear Racket Users,
> 
> I’ve noticed the following procedure calls don’t return (on my 64 bit Mac 
> hardware):
> 
> 1 (range (- 1 1e-16) 1.0 1e-17)
> 2 (range 0 1 0)
> 
> While (2) is obvious, (1) tripped me up (as I hadn’t noticed my step size had 
> fallen to effectively zero).
> 
> A small tweak to for.rkt in the racket distribution could trap the condition 
> of an actually or effectively zero step. for.rkt already traps the condition 
> where step is not real.
> 
> If this makes sense, could one of the authors consider adding the tweak? Or 
> is there a reason for leaving it alone?
> 
> Kind regards,
> 
> Tim
> 
> Tim Jervis
> 
> http://timjervis.com/
> 
> -- 
> 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] [Shameless self-promotion] Articles about programming-language theory for working programmers in Racket

2017-04-07 Thread Vincent St-Amour
FWIW, I found that blog post interesting as a reductio ad absurdum to
(indirectly) motivate DSLs.

Clearly, if we take a general-purpose language and take away constructs
that can (albeit inadequately) express domain concepts (e.g., numbers,
structs, etc.), we end up with an unmanageable mess. Lambda lambda lambda.

So what about the other direction? Aren't general-purpose languages just
languages in which we've been forced to encode our domain concepts in
terms of the poorly-fitting constructs we had on hand? Doesn't this
suggest we could do better? Turns out we can. (Hint: DSLs) :)

I'll admit that this wasn't directly what the blog post was about, but
it's a small (IMO) extrapolation.

Vincent



On Fri, 07 Apr 2017 16:21:38 -0500,
Matthias Felleisen wrote:
> 
> 
> Leandro, 
> 
> Before I say anything else, I really enjoyed your "playing the game with plt 
> redex”. I have encoded many games in Redex (sometimes for fun to show my 
> sons, sometimes to explain “specification” especially “executable 
> specification” to students on Sw Dev courses). So I was very happy to see 
> that someone had written it up. 
> 
> Your new essay is a throw-back to the 60s and 70s and my own work on 
> “expressive power of programming languages” and many other thoughts. But, I 
> don’t think it’s about PL; rather it is an essay on the translations we 
> typically find in Theory of computation when we wish to explain that all 
> models of computations are equivalent (in that all of the compute the partial 
> recursive functions on N). In your case, you show how to take a program in 
> Racket down to one in a by-value version of Lambda Calculus. Why stop there? 
> You allude to the calculus of S and K, meaning a system in which all 
> computations are expressed in terms of 
> 
>  (define (S x y z) ((x z) (y z)))  [I hope I have the parens right.]
>  (define (K x y) x) 
> 
> So are S and K the essence of a programming language? Why not go down to the 
> 
>  X 
> 
> combinator? A single function that generates them all. (X X) is K and (X (X 
> X)) is S or something like that. 
> 
> Do we really need to go through all of this to explain that “creating 
> programs so that our successors can read them” is the purpose of a language? 
> See 
> 
>  Landin (1960s, all of his papers) 
>  Abelson and Sussman (1980s, preface) 
> 
> for early simple and short ways of expression this same with simple sentences 
> and short papers. I formalized this in 
> 
>  “The Expressive Power of Programming Languages” (1991) 
> 
> and the last page is what it is all about: adding expressive power means 
> removing patterns that the programmer has to encode (usually as some pattern) 
> and risking that the programmer makes a mistake with the “bookkeeping” code 
> that is associated with this stuff. See all your lambdas to get 
> local/recursive functions going. 
> 
> So what to do? Yes we need to bring this across to ordinary programmers but 
> reducing a large language to tons of lambdas may not reach them. How about 
> removing just one feature and demonstrating how unreadable  the code becomes?
> 
> This may sound a bit negative, but I think I know where you wish to go and I 
> very much welcome this idea. 
> 
> ― Matthias
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> > On Apr 3, 2017, at 1:03 PM, Leandro Facchinetti  wrote:
> > 
> > Hi all,
> > 
> > - 
> > https://www.leafac.com/prose/programming-language-theory-explained-for-the-working-programmer--principles-of-programming-languages/
> > 
> >  My most recent article, published just now. It is a journey towards
> >  the essence of programming languages, driven by working code.
> > 
> > - https://www.leafac.com/prose/playing-the-game-with-plt-redex/
> > 
> >  Last month’s article, about using PLT Redex for an unintended task:
> >  play a game of Peg Solitaire.
> > 
> > * * *
> > 
> > I write from the perspective of a Ph.D. student in programming
> > languages, communicating to working programmers the interesting ideas in
> > research. Thus, I avoid the funny symbols and the jargon. Also, the
> > techniques I cover are relevant to everyday programming.
> > 
> > Please send me feedback. In particular, if you get lost, I’d love to
> > know where.
> > 
> > Thank you.
> > -- 
> > Leandro Facchinetti 
> > https://www.leafac.com
> > GPG: 0x5925D0683DF3D583
> > 
> > -- 
> > 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 

Re: [racket-users] minimal vs full racket performance issues

2017-03-16 Thread Vincent St-Amour
`raco pkg remove rackunit && raco pkg remove --auto` should do it.

Vincent


On Thu, 16 Mar 2017 17:42:23 -0500,
Sam Tobin-Hochstadt wrote:
> 
> Unfortunately, I don't think there's an analogue of apt autoremove, so you 
> probably have to do it manually.
> 
> On Thu, Mar 16, 2017, 6:37 PM Dan Liebgold  
> wrote:
> 
>  On Thursday, March 16, 2017 at 3:30:56 PM UTC-7, Sam Tobin-Hochstadt wrote:
>  > Just installing rackunit-lib will avoid the docs and tests, which should 
> substantially reduce the footprint.
>  >
>  > Sam
>  >
> 
>  Very cool now, say I've already gone and installed rackunit. How can I 
> remove all those dependant packages it installed? 
> 
> -- 
> 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] How to type annotate for bindings in complex syntax forms

2017-03-09 Thread Vincent St-Amour
On Mon, 06 Mar 2017 23:50:38 -0600,
lu wrote:
> 
> Awesome. Thanks! Where can I find the documentation for this TR reader syntax?
> 
> Why is TR not able to figure out the type for these variables without
> human help? Does that mean the implementation of `command-line` is in
> TR and the types of those variables are inferred by the type system,
> or they are explicitly typed to be `Any` for simplicity?

`command-line` is a syntactic extension, which gets expanded away before
TR checks types. Its expansion is unfortunately too complex for TR's
inference to handle, hence why it needs your help.

Vincent


> On Monday, March 6, 2017 at 2:48:15 PM UTC-8, Sam Tobin-Hochstadt wrote:
> > You can use the #{x : T} reader syntax to annotate variables in macros
> > like `command-line`. Here's a working version of your code:
> > 
> > ```
> > #lang typed/racket
> > 
> > (define *channel* (make-parameter "#general"))
> > (define *message* : (Parameterof (Listof String)) (make-parameter '()))
> > 
> > 
> > (define (parse-cmdline)
> >   (command-line
> >#:program "q"
> >#:once-each
> >[("-c" "--channel") #{ch : String} "slack channel to post (default:
> > use .qrc setting or default)" (*channel* ch)]
> >#:args #{msg : String}
> >(*message* msg)))
> > ```
> > 
> > On Mon, Mar 6, 2017 at 2:08 AM, kay <> wrote:
> > > For a complex syntax form like `command-line`, I have difficulty 
> > > correctly annotate the bindings it defines.
> > >
> > > More specifically, in the below code, for variable `msg`, even the 
> > > document[1] says the `#:args` binds as list of **strings**, but the error 
> > > indicates that it somehow is declared as `Listof Any`.
> > >
> > > Similarly, for variable `ch` bound in line 11, I believe it should always 
> > > be `String`, but it somehow is declared to be `Any`.
> > >
> > > What should I do with this type of error, if I want my varaibles to be 
> > > more precisely typed than just `Any`?
> > >
> > >
> > > [1]: 
> > > https://docs.racket-lang.org/reference/Command-Line_Parsing.html?q=command-line#%28form._%28%28lib._racket%2Fcmdline..rkt%29._command-line%29%29
> > >
> > > ```
> > >  1  #lang typed/racket
> > >  2
> > >  3  (define *channel* (make-parameter "#general"))
> > >  4  (define *message* : (Parameterof (Listof String)) (make-parameter 
> > > '()))
> > >  5
> > >  6
> > >  7  (define (parse-cmdline)
> > >  8  (command-line
> > >  9   #:program "q"
> > > 10   #:once-each
> > > 11   [("-c" "--channel") ch "slack channel to post (default: use 
> > > .qrc setting or default)" (*channel* ch)]
> > > 12   #:args msg
> > > 13   (*message* msg)))
> > > 14
> > > 15
> > > 16  #|
> > > 17  tr.rkt:11:91: Type Checker: Wrong argument to parameter - 
> > > expected String and got Any in: (*channel* ch)
> > > 18  tr.rkt:13:5: Type Checker: Wrong argument to parameter - expected 
> > > (Listof String) and got (Listof Any) in: (*message* msg)
> > > 19  |#
> > > ```
> > >
> > > --
> > > 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.


[racket-users] Racket v6.8

2017-01-24 Thread Vincent St-Amour
Racket version 6.8 is now available from

http://racket-lang.org/

- Racket sports a new logo, courtesy of Matthew Butterick.

- MacBook Pro laptops with touch bars are supported.

- Support for FreeBSD on PowerPC.

- Initial support for GTK3 on Wayland is available. GL contexts, GC
  blits, and dialog placement currently do not work.

- The macro stepper provides a command-line interface via the
  `raco macro-stepper` command.

- Typed Racket more efficiently represents and computes types and
  propositions, resulting in faster type checking for many programs.
  For more details, see this blog post by Andrew Kent:
  https://pnwamk.github.io/blog/2017/01/08/some-changes-in-typed-racket-v6-8/

- The bytecode optimizer can reduce more expressions of the form
  `(equal? x y)` to `(eqv? x y)` or `(eq? x y)` when the type of `x` or
  `y` is known.

- The bytecode optimizer avoids dropping stack frames in some reductions.
  This provides better stack traces for errors when errotrace is enabled.

- The bytecode compiler detects more optimization opportunities,
  including when variables always hold a boolean value. In particular in
  expressions like `(or (symbol? x) (something))`, the optimizations
  avoid the creation of an intermediate variable to store the result of
  `(symbol? x)`.

- The `syntax` form preserves syntax properties on all template pieces.

- The `scribble/html/extra` module provides renderers for HTML elements
  that are part of the WHATWG HTML standard but not part of the `scribble/html`
  language by default (e.g., `map`, `time`, `video`).

- The DeinProgramm teaching languages support pattern matching using the
  `match` form.

- In the DeinProgramm languages, `define-record-procedures` supports
  specifying signatures as part of the form, instantly enabling
  properties quantifying over such records.

The following people contributed to this release:
Aleksej Saushev, Alex Knauth, Alexander Hedges, Alexander Shopov, Alexis
King, Andrew Kent, Asumu Takikawa, Ben Greenman, Celeste Hollenbeck,
Craig Allen, Don March, Georges Dupéron, Gustavo Massaccesi, James
Bornholt, Jay McCarthy, Jerry James, John Clements, Juan Francisco
Cantero Hurtado, Leandro Facchinetti, Leif Andersen, Matthew Butterick,
Matthew Flatt, Matthias Felleisen, Max New, Mike Sperber, Phil Nguyen,
Reid D McKenzie, Reuben Thomas, Robby Findler, Ryan Culpepper, Sam
Tobin-Hochstadt, Shu-Hung You, Spencer Florence, Stephen Chang, Tim
Brown, Tony Garnock-Jones, Vincent St-Amour, WarGrey Gyoudmon Ju, and
William G Hatch.

Feedback Welcome

-- 
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] Announcing (seventh RacketCon)

2017-01-20 Thread Vincent St-Amour
Racketeers,

(seventh RacketCon) will be held on October 7th, followed by Racketeer
Office Hours on October 8th. This year, RacketCon will be in Seattle, WA,
with support from the Racket group at the University of Washington.

RacketCon is a yearly event where members of the Racket community get
together, featuring talks and demos about the things you do with Racket.

Racketeer Office Hours is a new event that we're trying out this year.
It is a free-form day for Racketeers to get together and collaborate on
ongoing projects, start new ones, and get help and advice from other
members of the community.

Registration is not open yet, but we'll let you know when it is.

See you in Seattle!

Vincent St-Amour, Matthew Butterick, and Matthew Flatt
with help from Emina Torlak and Amanda Robles at UW

-- 
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] Typed Racket & Higher Kinded Types

2017-01-19 Thread Vincent St-Amour
On Thu, 19 Jan 2017 10:42:17 -0600,
Robert Kuzelj wrote:
> 
> As far as I understand Haskell was breaking compatibility now then to
> add new languae features. This enabled the fast iteration (albeit a
> painful one).
> On the other hand F# is the exact opposite - not only looking to
> remain compatible to itself but also to the rest of the .NET eco
> system (and C#). All of that makes the progress of the language pretty
> slow (from my POV) and creates lots of warts that are not necessary if
> you are not into C#.

Unlike these, Racket has #lang, so you can have your cake and eat it too. :)

Vincent

-- 
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] Link to racket doc in scribble?

2017-01-11 Thread Vincent St-Amour
Andreas,

To link to a technical term (i.e., not to a particular binding), you'll
want to use the `tech` function. To link to a term in another document
(in this case the Racket Reference), you'll want to use the `#:doc`
keyword, with the module path of (the top-level of) that document, in
this case `'(lib "scribblings/reference/reference.scrbl")`.

Vincent


On Wed, 11 Jan 2017 03:55:08 -0600,
Andreas Olsson wrote:
> 
>  I'm trying to include highlighted links in my doc to documents in the racket 
> docs. It's not as easy as I thought. How is it done? I like to have like 
> FUTURE highlighted and clickable.
> 
> -- 
> 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] How to embed version and build date in an application executable?

2017-01-05 Thread Vincent St-Amour
You can write compile-time code to query the current date, and get the
version number from an environment variable:

#lang racket
(require (for-syntax racket/date))
(define-syntax (embed-version stx)
  (syntax-case stx ()
[_ #`(format "~a - ~a"
 #,(date->seconds (current-date))
 #,(getenv "VERSION"))]))
(displayln (embed-version))


$ VERSION=3 racket test-date.rkt 
1483670494 - 3
$ VERSION=3 raco make test-date.rkt 
$ racket test-date.rkt
1483670499 - 3
$ racket test-date.rkt
1483670499 - 3

Note: the reason I'm using environment variables is that command-line
arguments are harder to pass through raco make. Probably doable, though.

Vincent


On Thu, 05 Jan 2017 20:08:57 -0600,
Alex Harsanyi wrote:
> 
> I would like to embed versioning and build date information in my application
> executable, and I'm not sure how to do that.  To clarify, in C or C++, I would
> write the following:
> 
>#include 
> 
>#ifndef APPVER
>#define APPVER "no version"
>#endif
> 
>void main()
>{
> printf("%s\n", APPVER);
>}
> 
> I can than compile the code by passing "-D APPVER=1.0" to the compiler command
> line and have it print the correct version.
> 
> How can this be done in Racket?
> 
> I don't really want to check-in a file with the version number in it, and
> besides, I would like to add my GIT commit ID and build date as well in the
> same way.
> 
> My idea is that the build script would write a file like this at build time:
> 
>#lang racket/base
>(define (app-version) "1.0")
>(define (app-commit-id) "abcdefg")
>(define (app-build-date) "06-01-2017T09:10:12")
>(provide app-version app-commit-id app-build-date)
> 
> I would than require this file from other places, but only if it exists,
> something like this:
> 
>(if (file-exists? "app-version.rkt")
>(require "app-version.rkt")
>(begin
>  (define (app-version) "dev build")
>  (define (app-commit-id) "unknown")
>  (define (app-build-date) "no build")))
> 
> Unfortunately, the code above does not work because require needs to be
> defined at top level.
> 
> Does anyone have any suggestions?
> 
> Thanks,
> Alex.
> 
> -- 
> 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] Narrow radix of string->number.

2016-12-27 Thread Vincent St-Amour
I don't see any reason why not, and it doesn't seem (by the discussion)
that anyone is strongly against.

Would you be interested in submitting a pull request to extend
`string->number`? You'd probably want to extend `number->string` as
well, and possibly others.

Vincent



On Thu, 22 Dec 2016 05:51:06 -0500,
Dmitry Igrishin wrote:
> 
> >> Why restricting it to 36?
> >
> >
> > I guess that the original poster implied 10 digits + 26 Latin letters for
> > notation.
> True. And this notation is used in standard numeric conversion
> functions in C, C++ and Common Lisp. So, I think it's reasonable to
> use it in Racket.
> 
> -- 
> 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] small cosmetic comment

2016-12-09 Thread Vincent St-Amour
Hi John,

Thanks for the report! I just pushed a fix.

Vincent


On Tue, 29 Nov 2016 16:25:35 -0600,
JCG wrote:
> 
> On the mailing lists section of the Racket site, there are users, 
> announcements and dev groups.  Underneath each are three IMG tags referencing 
> bad urls, e.g.
> 
> http://gmane.org/plot-rate.php?group=gmane.comp.lang.racket.user
> 
> I just thought to mention it after seeing dead-link pictures for quite some 
> time.
> 
> Thanks again for Racket,
> John Griffin
> 
> -- 
> 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] running dr racket on chromebook without ubuntu

2016-12-01 Thread Vincent St-Amour
Is your filesystem mounted with "noexec"?

Vincent


On Mon, 28 Nov 2016 09:14:01 -0600,
yehoshua zaman wrote:
> 
> I have asus chromebook c100p. i am in developer mode. I installed dr racket 
> while in developer mode by entering crosh, then typing shell then finding the 
> location of downloads and while in that location typing racket.sh (i renamed 
> it to racket.sh) after that i went into the directory of racket and am trying 
> to run drracket by typing ./drracket it says bash: ./drracket permission 
> denied. i tried chmod +x drracket and chmod u+x drracket still it says 
> permission denied. the rights of the file are -rwxr-xr-x
> 
> -- 
> 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] Plot multiple lines from data set

2016-11-30 Thread Vincent St-Amour
Hi Stephen,

Renderers are values, so you could simply define each one separately,
then build the list, then pass it to plot. No need for macros.

(define line1 )
(define line2 )

(define all-lines (list line1 line2 ))
 (plot all-lines) 

Vincent



On Wed, 30 Nov 2016 09:24:44 -0600,
Stephen De Gabrielle wrote:
> 
> Hi, 
> 
> I'm trying to work out how I can include multiple datasets in a single plot.
> (plot (list (function) ...)) works, 
> 
> Should I write a macro that creates an enormous plot statement? Is there 
> another way to build the list of renderers?
> 
> I've attached my example 
> 
> Kind regards,
> 
> Stephen
> 
> -- 
> Kind regards,
> Stephen
> --
> Bigger than Scheme, cooler than Clojure & more fun than CL.(n=1)
> --
> 
> -- 
> 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] syntax-class composed of literals

2016-11-17 Thread Vincent St-Amour
On Wed, 16 Nov 2016 21:42:14 -0600,
Ryan Culpepper wrote:
> 
> On 11/16/2016 07:51 PM, Vincent St-Amour wrote:
> > FWIW, Eric Dobson wrote a very nice `define-literal-syntax-class` macro
> > that is used extensively inside TR.
> > 
> > 
> > https://github.com/racket/typed-racket/blob/master/typed-racket-lib/typed-racket/utils/literal-syntax-class.rkt
> > 
> > Its companion `define-merged-syntax-class` is quite nice too.
> > 
> > 
> > https://github.com/racket/typed-racket/blob/master/typed-racket-lib/typed-racket/optimizer/utils.rkt#L110
> > 
> > I've used those in other projects as well, and like them a lot.
> > 
> > Ryan: Would you consider adding them (or something like them) to
> > syntax/parse?
> 
> I could add a `#:define-syntax-class name` option to
> `define-literal-set` that would additionally define `name` as a
> syntax-class matching any of the literals. I would want to wait to add
> that until I implement the backtracking-aware handling of
> disappeared-uses, which I just haven't gotten to yet.

Sure, that works.

> For `define-merged-syntax-class`, I don't think I would put it in core
> syntax/parse, but maybe as a library in syntax/parse/lib/*.

Yeah, that one is just a nice-to-have. It's pretty easy to express using
the existing syntax-parse API.

Vincent

-- 
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] syntax-class composed of literals

2016-11-16 Thread Vincent St-Amour
FWIW, Eric Dobson wrote a very nice `define-literal-syntax-class` macro
that is used extensively inside TR.

   
https://github.com/racket/typed-racket/blob/master/typed-racket-lib/typed-racket/utils/literal-syntax-class.rkt

Its companion `define-merged-syntax-class` is quite nice too.

   
https://github.com/racket/typed-racket/blob/master/typed-racket-lib/typed-racket/optimizer/utils.rkt#L110

I've used those in other projects as well, and like them a lot.

Ryan: Would you consider adding them (or something like them) to
syntax/parse?

Vincent



On Wed, 16 Nov 2016 17:11:26 -0600,
Dan Liebgold wrote:
> 
> Hi,
> 
> A couple questions about literals in syntax-parse:
> 
> 1. I'd like to make a syntax-class that is just a set of literals (with a 
> clear error for something not matching any literal). Is there a better way 
> than this:
> 
> http://pasterack.org/pastes/86722
> 
> I need to ignore the bindings for those identifiers, and I need to preserve 
> the syntax context.
> 
> 2. Is there any plan or easy way to implement #:datum-literal-sets  for 
> syntax-classes?  It'd be nice to share a list of literals (with ignored 
> bindings) among multiple classes.
> 
> Thanks,
> Dan
> 
> -- 
> 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] All members of a list between two items

2016-11-08 Thread Vincent St-Amour
There's no built-in function that does exactly that.

It's pretty straightforward to implement using a combination of `dropf`
and `dropf-right`, though.

Vincent



On Tue, 08 Nov 2016 15:50:56 -0600,
David Storrs wrote:
> 
> Given a list of arbitrary data, I'd like to be able to say "look through
> the list for X and Y; give me everything between them." Ideally there
> would be a way to specify inclusive/exclusive on that.
> 
> Example: (between-items '(a b c d e f) 'b 'e) => '(b c d e)
> 
> Ideally it would also have a simple method for specifying which, if
> either, of the predicate-triggering items should be included in the
> return value. That way you could do: 
> 
> Example: (between-items '(a b c d e f) 'b 'e #:start #f) => '(c d e)
> Example: (between-items '(a b c d e f) 'b 'e #:end #f) => '(b c d)
> Example: (between-items '(a b c d e f) 'b 'e #:start #f #:end #f) => '(c
> d)
> 
> I could write this manually, but I wonder if there is a simple Racket
> way?
> 
> -- 
> 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] Code in The Seasoned Schemer not accessible from REPL in Geiser or Dr. Racket

2016-11-08 Thread Vincent St-Amour
Ian,

`oh` is indeed unbound inside the call to `call/cc`.

`oh` is only bound within the body of the `lambda` that is on the
right-hand side of the `letrec`; it is not bound in the body of the
`letrec`, which is where the call to `call/cc` is.

I don't have my copy of TSS handy. Did you make a mistake while
transcribing the program?

Vincent




On Tue, 08 Nov 2016 12:48:14 -0600,
Ian Thomas wrote:
> 
> Hello list,
> 
> I've been working through The Seasoned Schemer and have come across code that 
> I can't access in the Racket REPL: specifically, the version of rember1* 
> shown on p. 139 of the 17th chapter.
> 
> I'm not sure why there is a complaint about the 'oh' variable being unbound 
> in the last let form. 
> 
> Any suggestions/explanations would be most welcome. 
> 
> 
> Geiser error message.
> racket@> ,enter 
> "/Users/ian/src/Scheme/books/the_seasoned_schemer/017_we_change_therefore_we_are.rkt"
> 017_we_change_therefore_we_are.rkt:226:28: oh: unbound identifier in module
>   in: oh
>   context...:
>/Applications/Racket v6.6/collects/racket/private/more-scheme.rkt:261:28
>standard-module-name-resolver
>/Users/ian/.emacs.d/geiser/scheme/racket/geiser/user.rkt:54:0: enter!
>/Applications/Racket v6.6/collects/racket/private/misc.rkt:88:7
> 
> Dr. Racket message.
> oh: unbound identifier in module in: oh
> 
> 
> Below is the code.
> ;;rember1*
>  
> (define rember1*
>   (lambda (l a)
> (letrec ([R (lambda (l oh)
>   (cond
>[(null? l)
> (oh (quote no))]
>[(atom? (car l))
> (if (eq? (car l)
>  a)
> (cdr l)
> (cons (car l)
>   (R (cdr l)
>  oh)))]
>[else
> (let ([new-car (call/cc oh
> (R (car l)
>oh))])
>   (if (atom? new-car)
>   (cons (car l)
> (R (cdr l)
>oh))
>   (cons new-car
> (cdr l]))])
>   (let ([new-l (call/cc oh
> (R l
>oh))])
> (if (atom? new-l)
> l
> new-l)
> 
> -- 
> 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] Of editors and mere mortals

2016-11-05 Thread Vincent St-Amour
There's a section of the guide that discusses tools to use Racket with
various text editors, including Emacs:

http://docs.racket-lang.org/guide/other-editors.html

Vincent



On Sat, 05 Nov 2016 08:14:34 -0500,
Ken MacKenzie wrote:
> 
> So as much as I know there is much love for Dr Racket, I am not the biggest 
> fan.  Yes I must admit some of its helper features are great for working in 
> racket and if I must debug something it is probably the best place to work.
> 
> Anyway was wondering what other editors people use.  I have been a vim user 
> for a while.  Lately navigating away from it for more IDE like tasks.  I have 
> found VS code on linux to actually be a pretty good racket environment with 
> the drracket plugin available for it.
> 
> My latest love is I have started to get into emacs.  Years ago I tried it and 
> didn't see the advantage over vim.  Now having been coding in racket, elisp 
> looks less like annoying voodoo to me.  Also I am finding all the things one 
> can do within emacs that are outside the scope of editing to be handy.
> 
> Anyway just curious what other editors people use.  And particularly if you 
> use emacs, what add ons or setup do you do for racket or scheme editing in 
> general.
> 
> Ken
> 
> -- 
> 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] Extending DrRacket's LaTeX Shortcuts

2016-11-04 Thread Vincent St-Amour
Hi Kelly,

The table's source is there:

https://github.com/racket/gui/blob/master/tex-table/tex-table.rkt

It doesn't look like the list is user-extensible, but you can extend it
by modifying the file.

To do so, you'd want to update the `tex-table` package to use a
from-source version (from the directory where you'd like the code to be):

raco pkg update --clone tex-table

Then, add the characters you want to the table, then run `raco setup` to
recompile the package.

You may also want to consider submitting a pull request on Github, to
merge your changes with mainline Racket. You can do this either by
cloning the `racket/gui` repoon github, then pushing your changes (if
you know git), or using Github's own browser-based editor.

Vincent



On Fri, 04 Nov 2016 20:23:05 +0100,
Kelly Smith wrote:
> 
> I've been learning Racket for awhile now (it's the first language I've 
> seriously pursued), and I can usually fumble together what I need for small 
> projects. However, lately I've been working with Pollen, and my documents 
> call for a lot of math symbols. I'm wondering if there's a reasonable way to 
> extend DrRacket's `M-\` LaTeX shortcuts (e.g. `\sum` -> ∑, ). I have no 
> experience with this kind of thing.
> 
> I've investigated the keybindings, and found that `M-\` is bound to a 
> function/command called "TeX Compress". I can't seem to find out anything 
> more than that. I've even looked through the sources for DrRacket on GitHub, 
> but no luck.
> 
> I have no idea if this is a reasonable/tractable objective, but I'll gladly 
> learn what I need to work on it; I'm just a little lost at the moment.
> 
> -- 
> 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] Re: Recursive stepping down a list patially?

2016-10-31 Thread Vincent St-Amour
FWIW, your `find-it` is a thin wrapper over `memf` from `racket/base`.

Vincent



On Tue, 01 Nov 2016 05:06:47 +0100,
George Neuner wrote:
> 
> On Tue, 1 Nov 2016 04:28:26 +0100,
> meino.cra...@gmx.de wrote:
> 
> >
> >Hi Jon,
> >
> >thanks for reply! :)
> >
> >My plan was, to return only one element from that list and
> >possibly some extra informations and pass that to the processing
> >function so it could right jump onto that train...
> >
> >Is that possible?
> 
> Sure. I'm guessing that the list elements are not simple values that
> can be matched directly, but rather you need to extract and match a
> search key.
> 
> You can do something like:
> 
> (define (find-it lst key)
>   (cond
> ([null? lst]
>  ;; end of the list
>  (list #f '()))
> ([equal? (car lst) key]
>  ;; matched the search key
>  ;; return item and next list position
>  (list (car lst)(cdr lst)))
> (else
>  ;; keep going
>  (find-it (cdr lst) key))
>  ))
> 
> 
> To return the 2 values, you can use a list, a vector, a structure or
> even (values).  Depends on what you need to do with them.
> 
> 
> In Racket (or Scheme or Lisp) an object is just a reference to a heap
> allocation somewhere.  In C terms, you are always dealing with
> pointers that are implicitly dereferenced when you look at them ...
> and it isn't possible to get a null pointer.  
> [Actually it's more like workin with references in C++.]
> 
> When you return the "tail of the list", all that is being passed is a
> pointer to some element of the original list.
> 
> This explanation is very simplistic [and not quite correct], but it is
> close enough to reality that you won't go far wrong thinking about
> things in this way.  The technical details are too involved for you to
> worry about until you learn more.
> 
> Hope this helps,
> George
> 
> -- 
> 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] Building regexen in at-exp

2016-10-28 Thread Vincent St-Amour
To understand what's going on, consider the following program:

#lang at-exp racket

(define a "this")
(define (f . l)
  (for-each displayln l))

@f{^@a}

which prints

^
this

What's going on is that the `{}` in at-exp notation will evaluate to a
list of strings. One for the "^", and one for `a`. `pregexp` accepts a
single string as argument (whereas `f` accepts as many as you want).

To make this work, you have to combine all these strings into one, as
you did using `~a`.

Vincent



On Fri, 28 Oct 2016 14:18:10 -0500,
David Storrs wrote:
> 
> tl;dr :  Why is the following an error?
> 
> #lang at-exp racket
> (define a "this")
> @pregexp{^@a}  ;; Should produce #px"^this" but errors out
> @pregexp{@(~a "^" a)}  ;; This works but is clumsy
> 
> Long version:
> 
> The at-exp language
> (http://www.greghendershott.com/2015/08/at-expressions.html and
> https://docs.racket-lang.org/scribble/reader-internals.html) allows
> for (among other things) more convenient construction of regexen, like
> so:
> 
> (pregexp "\\d\\d\\.\\d\\d") ;; base racket. Ugh.
> @pregexp{\d\d\.\d\d}  ;; at-exp...ah, much better
> 
> I started to reply to Ken MacKenzie's recent post about string
> prefixes with a suggestion that, although string-prefix was what he
> wanted in this case, a regex would be a more general solution.  When I
> went to test the code I was suggesting, I was surprised to find it
> didn't work as expected.  I thought maybe "^@" was a function or
> special form in Racket, but a quick search of the docs revealed
> nothing.  I tried various forms of quoting inside the at-exp but
> nothing worked.
> 
> What am I missing?
> 
> -- 
> 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: Racket v6.7

2016-10-27 Thread Vincent St-Amour
This looks like an import conflict.

In 6.7, we added a `vector-sort!` function to `racket/vector`. There was
already one in `rnrs/sorting-6`. So if your program requires both
libraries, you will have a conflict.

You can resolve the conflict by looking for places where you require
`rnrs/sorting-6`, and either adding an `except-in` form to your
`require`, to avoid requiring `vector-sort!`, or maybe even skip using
that library altogether.

Sorry for the trouble.

Vincent




On Thu, 27 Oct 2016 09:31:00 -0500,
Some Dude wrote:
> 
> Great news, especially the integrated Android support.
> 
> However, I get this for one of my programs:
> 
> module: identifier already imported from a different source in:
>   vector-sort!
>   rnrs/sorting-6
>   racket/gui
> 
> But what's worse, it doesn't show where the bug occurs, even though debugging 
> is switched on in the language. (The program uses racket/gui).
> 
> Is there a fix for this? Is this a known problem?

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

2016-10-26 Thread Vincent St-Amour
Racket version 6.7 is now available from

http://racket-lang.org/

- Racket supports building graphical applications on Android through the
  racket-android project: https://github.com/jeapostrophe/racket-android

- The Racket REPL comes with line-editing, command and result history,
  and various meta-commands out of the box, via the `racket/interactive`
  module. See the `racket/interactive` and `xrepl` documentation for
  details.

- The package system supports authentication when installing packages
  from git, using the `raco pkg config git-checkout-credentials`
  configuration option.

- HTTP libraries, as well as `raco pkg`, support proxying via HTTP
  CONNECT.

- Typed Racket provides typed versions of `racket/os` and
  `racket/db/sqlite`.

- The `PLT_COMPILED_FILE_CHECK` environment variable provides more
  fine-grained control over when ".zo" files are consulted.

- The documentation search supports searching for "#lang"s and
  "#reader"s via the "L:" and "R:" search prefixes.

- The `file/glob` module implements globbing for path-strings.

- Optimizations in the bytecode compiler improve performance for
  structure, list, string, and byte-string operations.

The following people contributed to this release:
Alex Knauth, Alex Harsanyi, Alexis King, Andrew Kent, Asumu Takikawa,
Ben Greenman, Brian Lachance, Chongkai Zhu, Daniel Feltey, Georges
Dupéron, Gustavo Massaccesi, Jay McCarthy, John Clements, Jonathan
Schuster, Leif Andersen, Marc Burns, Matthew Butterick, Matthew Flatt,
Matthias Felleisen, Mike Sperber, Robby Findler, Rohin Shah, Ryan
Culpepper, Sam Tobin-Hochstadt, Spencer Florence, Stephen Chang, Stephen
De Gabrielle, Tim Brown, Tony Garnock-Jones, Vincent St-Amour, WarGrey
Gyoudmon Ju, and William J. Bowman.

Feedback Welcome

-- 
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] proposed minor improvement to stepper semantics

2016-10-20 Thread Vincent St-Amour
Reducing to something, rather than disappearing, does sound like a good
idea to me.

On the other hand, one may expect something that reduces to `#true` to
print `#true` to the interactions window, which isn't what happens.

Vincent



On Thu, 20 Oct 2016 13:33:19 -0500,
Racket Users wrote:
> 
> I’m trying to clean up some code near where Mike Sperber discovered a stepper 
> bug, and I accidentally made a change that I think actually improves the 
> stepper. 
> 
> Specifically, in the past, the step from, e.g.,  (check-expect 13 13) to 
> #true was silently omitted. So, for instance, if you wrote this program:
> 
> (check-expect 13 13) (check-expect (+ 4 5) 9)
> 
> The first step would be from 
> 
> #true
> (check-expect (+ 4 5) 9)
> 
> to
> 
> #true
> (check-expect 9 9)
> 
> … and there would be no other steps.
> 
> Turning off reduction hiding around the application of the 
> check-expect-checker-fun instead appears to yield a sequence of three steps:
> 
> from 
> 
> (check-expect 13 13) (check-expect (+ 4 5) 9)
> 
> to 
> 
> #true (check-expect (+ 4 5) 9)
> 
> then the step that I mentioned before, then finally a step from 
> 
> #true (check-expect 9 9)
> 
> to
> 
> #true #true
> 
> I regard this as an improvement, but please let me know if you disagree.
> 
> Thanks!
> 
> 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.

-- 
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] DrRacket et al not starting in Sierra (10.12)?

2016-10-17 Thread Vincent St-Amour
Hi,

Sierra changed the way applications need to be signed, so if you have an
old installation of Racket 6.6, it won't work.

We've since uploaded a new 6.6 installer that is signed for Sierra at
http://download.racket-lang.org/

The pre-release builds for the upcoming 6.7 release should work too
http://pre-release.racket-lang.org/

Vincent



On Mon, 17 Oct 2016 15:11:28 -0500,
ylluminate wrote:
> 
> I'm able to start DrRacket up just fine in 10.12 via the shell (e.g., 
> `/Applications/Racket\ v6.6/DrRacket.app/Contents/MacOS/`), but double 
> clicking the app just won't start.
> 
> Anyone else see this or know of a work around for this issue?
> 
> Same is true for all of the other apps in the `Racket v6.6` folder...
> 
> -- 
> 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] Any information on whether/when Sixth RacketCon videos will be available?

2016-10-17 Thread Vincent St-Amour
This is a good candidate for "most Rackety thing ever". ;)

Vincent


On Mon, 17 Oct 2016 10:49:50 -0500,
Leif Andersen wrote:
> 
> Yes, the videos are coming along and will be out soon.
> 
> It is taking a bit longer to get them out this time because I created
> #lang video, which is a Racket based DSL for video editing, which will
> hopefully make putting them out in future years faster.
> 
> ~Leif Andersen
> 
> On Mon, Oct 17, 2016 at 9:07 AM, Vincent St-Amour
> <stamo...@eecs.northwestern.edu> wrote:
> 
> Hi Hashim,
> 
> Do not fear, the videos are coming!
> 
> They take some time to prepare, though. We need to do some
> post-production to splice in the audio capture (the camera's audio
> is
> not as good as we'd like), and splice in the screen capture (or
> slides,
> when that wasn't available), to make sure viewers see everything.
> 
> Leif (our AV expert) informs me that the videos should be out this
> week.
> Leif, could you confirm?
> 
> Vincent
> 
> 
> 
> 
> 
> 
> On Mon, 17 Oct 2016 03:50:49 -0500,
> hashim muqtadir wrote:
> >
> > The videos for the live streams are available on youtube but they
> aren't as clear audio/video-wise as the individual talks videos are
> for older RacketCons are. The website does say they will be made
> available; I just hope that plan did not get scrapped, did 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.
> 
> --
> 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] Any information on whether/when Sixth RacketCon videos will be available?

2016-10-17 Thread Vincent St-Amour
Hi Hashim,

Do not fear, the videos are coming!

They take some time to prepare, though. We need to do some
post-production to splice in the audio capture (the camera's audio is
not as good as we'd like), and splice in the screen capture (or slides,
when that wasn't available), to make sure viewers see everything.

Leif (our AV expert) informs me that the videos should be out this week.
Leif, could you confirm?

Vincent




On Mon, 17 Oct 2016 03:50:49 -0500,
hashim muqtadir wrote:
> 
> The videos for the live streams are available on youtube but they aren't as 
> clear audio/video-wise as the individual talks videos are for older 
> RacketCons are. The website does say they will be made available; I just hope 
> that plan did not get scrapped, did 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.

-- 
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] How to insert @ character into scribble-generated output?

2016-10-13 Thread Vincent St-Amour
FWIW, that's confused me too in the past, so I've added this as an extra
example in the docs.

Vincent


On Thu, 13 Oct 2016 08:42:13 -0500,
Robby Findler wrote:
> 
> You can do @"@" (i.e. escape to Racket with the first @ and then make
> a string that has an @ in it as the result of the escape).
> 
> Or you can change the @ character to another one, perhaps using pollen
> (it uses a diamond lozenge thingy).
> 
> Robby
> 
> 
> On Thu, Oct 13, 2016 at 8:20 AM, Kathi Fisler  wrote:
> > I need to put a sample of a JUnit test case in a sribble document, along 
> > the lines of
> >
> >  @verbatim{
> >@Test
> >public void checkHBLen() {
> >   assertEquals(HapBD.lenInSeconds, 25);
> > }
> >   }
> >
> > What's the escape sequence for treating the @ on Test literally, rather 
> > than as a scribble command.  Couldn't find this in the reader documentation.
> >
> > thanks.
> >
> > --
> > 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] Unable to track down what is requiring inclusion of tzinfo module

2016-10-13 Thread Vincent St-Amour
The tzinfo dependency comes from gregor (well, from gregor-lib, which
gregor depends on).

But, I would have also expected installing gregor to pull in that
dependency. How did you install gregor?

Vincent



On Thu, 13 Oct 2016 13:02:09 -0500,
Ian Thomas wrote:
> 
> Hello list,
> 
> I'm receiving the following error when trying to run my application:
> 
> ./date_analyzer --help
> 
> standard-module-name-resolver: collection not found
>   for module path: tzinfo/zoneinfo-data
>   collection: "tzinfo"
>   in collection directories:
>   context...:
>show-collection-err
>standard-module-name-resolver
>/Applications/Racket v6.6/collects/syntax/modresolve.rkt:58:0: 
> resolve-module-path11
>/Applications/Racket 
> v6.6/collects/racket/contract/private/arrow-val-first.rkt:306:25
>#%embedded:g2357:main: [running body]
>#%embedded:g2314:main: [traversing imports]
>#%embedded:g2249:date_analysis: [traversing imports]
>#%mzc:driver: [traversing imports]
>loop
> 
> My application is made up of the following 5 files, with the requirements 
> listed after each, and none of the files contain functions from the tzinfo 
> package. 
> 
> bin/driver.rkt
> #lang racket
> (require racket/base
>racket/cmdline
>  "../lib/date_analysis.rkt")
> 
> lib/date_analysis.rkt
> #lang racket
> (require gregor
>"series.rkt")
> 
> lib/ipt_file.rkt
> #lang racket
> 
> lib/series.rkt
> #lang racket
> 
> test/test.rkt
> #lang racket
> (require "series.rkt")
> 
> Additional suggestions on other things to try to track down the source of 
> this bug are welcome.
> 
> 
> -- 
> 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] Re: FUSE filesystem package

2016-10-12 Thread Vincent St-Amour
On Wed, 12 Oct 2016 16:31:46 -0500,
Scott Moore wrote:
> 
> PS: is the documentation for use-once/c somewhere?
> 
> I’ll add it to the docs when I get a chance. You can see the definition
> here:
> https://github.com/thinkmoore/racket-fuse/blob/master/private/filesystem.rkt#L132
> 
> use-once/c is a combinator that takes a procedure contract and makes it
> so that the contracted procedure can only be applied once. Ideally, I’d
> enforce the stronger property that you can use only one of the response
> or error callback for each procedure, but that would have been a bit
> trickier due to the need to attach the contract to two values at once.
> use-once/c is a nod to at least making sure you didn’t reuse them
> between operations...

Any connection to Jesse's affine contracts?

http://planet.racket-lang.org/package-source/tov/affine-contracts.plt/2/2/planet-docs/manual/index.html

Vincent

-- 
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] how to understand this code? permutations use recursive 4 times

2016-10-09 Thread Vincent St-Amour
The link is dead.

Vincent


On Sun, 09 Oct 2016 01:44:39 -0500,
231c wrote:
> 
> https://hackpad.com/I-dont-know-how-to-understand-this-works-and-correct-T9yCt51UGSh
> 
> -- 
> 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, Picts, and Serialize/Deserialize Oddities

2016-10-06 Thread Vincent St-Amour
Wild guess: this may be a bug in record-dc%.

IIRC, DrRacket uses record-dc% when rendering picts, and it would make
sense that serialization would too. But drawing picts directly wouldn't.

The last time I saw that kind of bug (inconsistent pict rendering
between contexts), it turned out that record-dc% was not keeping track
of some properties of the drawing, and so rendering was off when the
recording was rendered.

As a first step, I'd recommend trying to render your pict using a
regular dc and a render-dc, to see if that's where the difference is
coming from. Then, if that's the case, you can see which dc commands
your example runs, and make sure that record-dc records everything about
them faithfully.

Vincent



On Thu, 06 Oct 2016 14:32:19 -0500,
Leif Andersen wrote:
> 
> I have been playing with scribble and serialize/deserialize a bit lately
> in a (somewhat successful) attempt to make my paper build in a
> reasonable amount of time.
> 
> Anyway, I noticed some interesting behavior when Scribble is combined
> with picts and serialize/deserialize. And I'm kind of stumped as to what
> could cause it.
> 
> Take the following file:
> 
> ```
> #lang scribble/manual
> 
> @(require pict
> racket/serialize)
> 
> @(define x
> (vc-append
> (filled-rectangle 30 10 #:color "yellow")
> (filled-rectangle 30 10 #:color "yellow")))
> 
> @x
> 
> @(deserialize (serialize x))
> ```
> 
> This code defines a pict made out of two yellow rectangles stacked on
> top of each other. It makes a document containing these two rectangles,
> followed by the two rectangles after they've been serialized and
> deserialized. Provided that `x` is serializable (which it supposedly
> is), I would imagine that the two pictures would look the same. Instead
> however, it ends up looking like this. (The PDF file is also attached).
> Inline image 1
> Note how after its been serialized and deserialized, the two rectangles,
> appear slightly further apart and have a doubly thick line.
> 
> For what its worth, if I have DrRacket draw the pict it always shows up
> like the bottom rectangle.
> 
> Both of these images make sense (depending on how we intemperate
> border), but I'm a bit confused why it would show up differently after
> being serialized and deserialized. Any ideas?
> 
> Thank you.
> 
> ~Leif Andersen 
> 
> -- 
> 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] Highlighting non-racket code in slideshow

2016-10-03 Thread Vincent St-Amour
`codeblock-pict` should do what you want, assuming there's a
corresponding #lang (doesn't need to be a full implementation, just
needs a lexer).

Alternatively, you can use my `java-lexer` package which, despite its
name, does a decent job with much more than just Java. I've used it to
get some ok highlighting for Haskell, for example. Turns out at the
lexer level, a lot of things kind of look the same. :)

Vincent



On Mon, 03 Oct 2016 18:16:56 -0500,
C K Kashyap wrote:
> 
> Hi,
> What's a good way to syntax-highlight non-racket code within slideshow?
> I've been using pandoc so far which has support for multiple languages
> but I'd like to start using slideshow.
> Regards,
> Kashyap
> 
> -- 
> 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] Contract violation where number expected - can't understand why

2016-10-01 Thread Vincent St-Amour
On Sat, 01 Oct 2016 15:44:18 -0500,
Angus wrote:
> 
> And it is now more obvious to me that in:
> 
> (define (bigger w)
>   (interval (min (interval-big w) 
>  (add1 (guess w)))
> (interval-big w) (+ (interval-guesses w) 1)))
> 
> The (interval... part is a constructor ? for an interval and that is
> what this function returns - the new state of the world.

Precisely. Welcome to functional programming. :)

> It's interesting here that there is no assignment as such.  Although
> big-bang must somehow be dealing with mutating internal state
> somehow.

Probably not, in fact.

Internally, big-bang is probably just a recursive function that simply
passes the new world as argument to its next call. No need for mutation
there.

Vincent

-- 
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] Contract violation where number expected - can't understand why

2016-10-01 Thread Vincent St-Amour
On Sat, 01 Oct 2016 09:47:00 -0500,
Angus wrote:
> I don't understand.  How would I pass it an interval?
> 
> I am confused about the w parameter in smaller.  ie (define (smaller w)
> 
> what is w?  Is that the current interval held as state within big-bang?

Yes, that is correct.

Have a closer look at the docs for big-bang. They should explain how
big-bang passes the value of the world to the handlers which, in your
program, pass it in turn to your `smaller` function.

On Sat, 01 Oct 2016 09:53:56 -0500,
Angus wrote:
> 
> This seems to work:
> 
> (define (smaller w)
>   (interval (interval-small w)
> (max (interval-small w) 
>  (sub1 (guess w))) (+ (interval-guesses w) 1)))
> 
> But I don't understand why???
> 
> the first argument is passed as (interval w)
> 
> what does that mean?  Does it mean that interval-small should be set to the 
> current interval-small???

What is the current interval? An interval is just a structure. You could
have as many as you want. Imagine you're writing a 2-player version of
your game, or even a multi-player tournament version. You'd need an
interval for each player.

Since there's no intrinsic "right" interval, your code must be explicit
about which interval it want to get the `small` field of. In this case,
you care about the interval that corresponds to the current state of the
world, which is bound to the variable `w`.

> So then what does 
> 
> (+ (interval-guesses w) 1) mean?
> 
> set interval guesses to whatever the current state is (represented by w) plus 
> 1?

That code doesn't set anything. It simply computes the number of guesses
of the current state, plus 1 (as you said).

If you want to use that value as the new number of guesses for the next
value of the state of the world, then you need to create a new interval
(as your code is already doing), and use that new number as its number
of guesses.

Vincent

-- 
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] Contract violation where number expected - can't understand why

2016-10-01 Thread Vincent St-Amour
On Sat, 01 Oct 2016 09:13:25 -0500,
Angus wrote:
> Then I changed smaller (and bigger) like this:
> 
> (define (smaller w)
>   (interval (interval-small w)
> (max (interval-small w) 
>  (sub1 (guess w)
> 
> to
> 
> (define (smaller w)
>   (interval (interval-small w)
> (max (interval-small w) 
>  (sub1 (guess w))) ((+ interval-guesses 1) w)))
> 
> 
> 
> But with these changes, when I run the program I get:
> 
> +: contract violation
>   expected: number?
>   given: #
>   argument position: 1st
>   other arguments...:
>1

What is `interval-guesses`? Your code would like it to be a number, but
it's actually an *accessor*. If you pass it an interval, then you'll get
the number you want.

Jumping ahead a little: you may also want to double-check how you're
constructing your intervals.

Vincent

-- 
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] On my calendar: "TR gains support for generics"

2016-09-28 Thread Vincent St-Amour
Maybe that was to remind you to start working on it? ;)

More seriously, I don't remember where that could have been from, and I
don't think there's anyone actively working on it at this point.

Vincent



On Tue, 27 Sep 2016 23:10:51 -0500,
Racket Users wrote:
> 
> Anyone have any idea why on this date on my calendar it says, “TR gains 
> support for generics” ? I admit, I’ve completely forgotten why I put it 
> there….
> 
> Ah well.
> 
> 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.

-- 
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] TR issue with the type of expt

2016-09-27 Thread Vincent St-Amour
You are correct, the implementation of `expt` is not aware of that fact.

However, TR assigns `expt` a type after the fact, and so is able to
encode more precise properties.

The particular one under discussion happens to not hold, as Pierpaolo
explained.

Vincent



On Tue, 27 Sep 2016 08:36:43 -0500,
Matthew Eric Bassett wrote:
> 
> I do not believe this is an oversight.  The function expt has type
> signature (-> Number Number Number).  Mathematically, yes, a^b is a real
> when a and b are reals.  But the implementation of expt is not aware of
> it (it is, in principle, possible to do case-by-case types for a
> function, but expt does not appear to take advantage of this).
> 
> Because of this, (expt a b) is a Number, but your function definition
> requires it to be the more restrictive Real.  Since you know that a and
> b are reals, you could probably get away with a cast to Real.
> 
> On 09/27/2016 02:23 PM, Tim Brown wrote:
> > The following snippet:
> > 
> > --
> > #lang typed/racket
> > (: ** [Real Real -> Real])
> > (define (** a b)
> >   (expt a b))
> > --
> > 
> > Throws:
> > unsaved editor:5:2: Type Checker: type mismatch expected: Real given: 
> > Number in: (expt a b)
> >   #(67 10)
> > 
> > 
> > I believe (because I can’t think of a counterexample) that
> > (expt Real Real) is never Complex; and therefore expt can be of type
> > (Real Real -> Real).
> > 
> > First off, is the statement above true?
> > 
> > Is there a technical reason why my example HAS TO fall back to
> > (Number Number -> Number)? Or is this simply an oversight?
> > 
> > Regards,
> > 
> > Tim
> > 
> > Version: 6.6.0.4--2016-09-08(-/f) [3m].
> > 
> 
> -- 
> Matthew Eric Bassett | http://mebassett.info
> 
> -- 
> 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] A Racket talk in Rubyconf Brazil

2016-09-25 Thread Vincent St-Amour
I agree! Nice overview.

Vincent


On Sun, 25 Sep 2016 13:31:59 -0400,
Matthias Felleisen wrote:
> 
> Looks like a cool talk. Thanks for sharing. 
> 
> On Sep 25, 2016, at 11:53 AM, Ronie Uliana 
> wrote:
> 
> 
> 
> 
> Hi, there!
> 
> 
> I gave a talk about Racket in Rubyconf Brazil yesterday (saturday
> 24).
> 
> 
> Here are the slides translated to English and here the original in
> Portuguese :)
> 
> 
> Not sure I gave the right importance to the right points, but people
> liked it a lot.
> 
> 
> Thank you all for the amazing job in the Racket!
> 
> 
> []s
> Ronie
> 
> 
> -- 
> 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.


[racket-users] Re: (sixth RacketCon) General Q

2016-09-16 Thread Vincent St-Amour
Hi Greg,

Yes, we are planning to live stream RacketCon. Details will be on the
web page once the stream is set up.

We'll have people monitoring the #racket IRC channel on freenode
throughout the day. If you (or anyone) has any questions at any point,
they will relay them to the speaker.

Finally, we'll also be recording the talks for posterity. If you miss
anything, you'll be able to catch up on it later.

Vincent




On Fri, 16 Sep 2016 04:06:27 -0500,
Greg Trzeciak wrote:
> 
> As unfortunately I won't be attending RacketCon I would like to know if there 
> is any live streaming planned for the event?
> Also if it is possible I would like to ask related questions to be addressed 
> on Q (if streamed/recorded). 
> 
> What are future plans toward portability of Racket (ie:Racket on 
> Android/JS/JVM/CLR(DLR) etc.)? and if there is any ongoing work in this 
> direction? What are the main obstacles before it is possible? What's the 
> feasibility of full portability? What's the expected priority and timeline of 
> such plans?
> 
> Thank you
> 
> Greg

-- 
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] (sixth RacketCon) General Q

2016-09-12 Thread Vincent St-Amour
Racketeers,

RacketCon is less than a week away! Do you have your tickets?

This year, we're trying something new. To wrap the day up, we'll have an
open Q session, where we welcome any and all questions about the
current state of Racket, future plans, the Racket implementation, any
part of the ecosystem, new things you'd like to see, etc. Questions from
anyone in the audience, and anyone in the audience can answer.

Of course, this can only be a success if you participate! So please come
prepared with questions.

See you in St. Louis!

Vincent

-- 
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] Logos for Scheme (DrRacket,Bigloo)

2016-09-08 Thread Vincent St-Amour
Neat!

You should put it on pkgs.racket-lang.org.

Vincent



On Thu, 08 Sep 2016 08:44:21 -0500,
Damien MATTEI wrote:
> 
> Hi,
> just a few words to say my enhanced version of Logos (a Scheme program to 
> maipulate logical expressions symbolically) is on sourceforge:
> 
> https://sourceforge.net/projects/logos1/
> 
> improvments are the Quine–McCluskey algorithm implementation and a Bigloo 
> version (needed adaptation mainly for hash-tables)
> Regards,
> Damien
> 
> -- 
> 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] Racket Shell

2016-08-22 Thread Vincent St-Amour
On Mon, 22 Aug 2016 11:38:37 -0500,
Andrew Gwozdziewycz wrote:
> 
> This discussion has reminded of SHILL
> (https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-moore.pdf)
> which is less user focused, and more security / capabilities focused,
> but the prototype (in Racket) utilizes contracts to enforce
> capabilities checks.

Yes, that's really cool work!

For those interested, Scott will be speaking about Shill at RacketCon[1]
next month.

Vincent


[1] con.racket-lang.org

-- 
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] (sixth RacketCon) Speaker Roster and Social Event

2016-08-05 Thread Vincent St-Amour
Racketeers,

RacketCon is getting closer. Do you have your tickets?

I'm pleased to announce that our complete roster of speakers is
available on the RacketCon web page [1], along with bios and talk
information. On the program are topics ranging all across Racketdom,
from language-building to theater lighting.

Furthermore, we'll be having a pre-RacketCon social event on the evening
of September 17th (the day before RacketCon) at the Morgan Street
Brewery in downtown St. Louis. We hope to see you there!

Vincent


[1] con.racket-lang.org
[2] www.morganstreetbrewery.com

-- 
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] How do I "make base"

2016-08-04 Thread Vincent St-Amour
Tim,

Do keep in mind that, even if you check out a specific release tag
(e.g., to build something equivalent to 6.6), `raco pkg` will pull in
the latest version of packages in the main distributions when possible,
rather than the versions packaged with the 6.6 installers. If that's
what you want, you should have your install use the 6.6 release catalog.

Of course, if you're fine with running directly from `master`, none of
this applies.

Vincent



On Thu, 04 Aug 2016 06:15:15 -0500,
Tim Brown wrote:
> 
> William, Stephen,
> 
> Thank you for your help. It seems that what I want to do is not an
> appropriate use of the prepackaged source, and I am now progressing
> using a git clone.
> 
> Thanks again,
> 
> Tim
> 
> On 03/08/2016 18:11, William J. Bowman wrote:
> > I always forget the build process when I'm hacking on Racket too and have 
> > to glare at the INSTALL file
> > for a while.
> > Maybe the INSTALL file has too much detail, or the wrong details, and the 
> > instructions get lost in it?
> > 
> > I always build a minimal install via `make PKGS=base in-place` from the 
> > top-level directory of the Racket
> > repo, then install everything else via `raco pkg install`.
> > Binaries, including raco, end up in `racket/racket/bin`.
> > 
> > --
> > William J. Bowman
> > 
> > 
> > On Wed, Aug 03, 2016 at 06:02:53PM +0100, Tim Brown wrote:
> >> Here's hoping someone can answer this without too much (any) difficulty:
> >> 
> >> I have the Unix source in racket-6.6-src.tgz from the download page.
> >> It's untarred into racket-6.6 . I want this because it has a superset
> >> of the packages I'll eventually want in my installation.
> >> 
> >> If I:
> >> 
> >>   configure
> >>   make
> >>   make plain-install
> >> 
> >> I don't get a raco executable built.
> >> 
> >> On IRC, it was suggested that I do a `make base` -- which should get me
> >> a raco capabale of pkg and setup. Problem is -- I can't find base as a
> >> target.
> >> 
> >> It was also suggested that it is not in src/Makefile, instead:
> >> "I'm usually in the top-level checkout dir", to quote stamourv.
> >> 
> >> A git clone later and I *still* don't have base in any makefile.
> >> 
> >> Folks... how do I either make base or get as minimal a racket
> >> installation as I can with a capable raco?
> >> 
> >> Thanks in anticipation,
> >> 
> >> Tim
> >> 
> >> --
> >> Tim Brown - t...@timb.net - +44(0)7771714159
> >> 
> >> --
> >> 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.
> 
> 
> -- 
> Tim Brown - t...@timb.net - +44(0)7771714159
> 
> -- 
> 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] Error message from GUI

2016-07-29 Thread Vincent St-Amour
Should this change be added to gui-lib?

Vincent


On Fri, 29 Jul 2016 10:08:46 -0500,
Dmitry Pavlov wrote:
> 
> Matthew,
> 
> Yes that works, thank!
> 
> Also I figured why the message did not show up on my "first" WinXP
> installation: the spreadsheet-editor package has not been updated there.
> Newer version of spreadsheet-editor sets (style '(hide-vscroll)) and
> (style '(hide-hscroll)) to panels with row and column buttons.
> 
> Styles cause the error. Changing styles to just '(hscroll) and
> '(vscroll) does not remove the error.
> Anyway, I need those (hide-vscroll) and (hide-hscroll), so I am going to
> use the patch you proposed, unless there is a more elegant solution I am
> unaware of.
> 
> (Another question is why there is a stack trace in 32-bit Windows and
> just a message in 64-bit Windows, but that is of purely theoretical
> importance to me.)
> 
> Best regards,
> 
> Dmitry
> 
> 
> On 07/29/2016 05:25 PM, Matthew Flatt wrote:
> > It may be that a guard against a 0-sized drawing dimension is needed.
> > The right place for the guard might be in the `get-cr` method of
> > 
> >   gui-lib/mred/private/wx/common/backing-dc.rkt
> > 
> > after `get-backing-size` is called. A zero dimension could be just
> > increased to 1 before passing it to `get-backing-bitmap`. Can you try
> > making that change to see if it solves the problem on your machine?
> > 
> > At Fri, 29 Jul 2016 17:08:42 +0300, Dmitry Pavlov wrote:
> >> Jens,
> >> 
> >> Oddly, another installation of Racket 6.6 on 32-bit Windows XP not only
> >> reproduced the error, but also gave a stack trace:
> >> 
> >> initialization for bitmap%: bad argument combination: 495 0 #f #t 1.25
> >> context...:
> >>  C:\Program
> >> Files\Racket\share\pkgs\draw-lib\racket\draw\private\syntax.rkt:252:13: 
> >> next
> >>  C:\Program
> >> Files\Racket\share\pkgs\draw-lib\racket\draw\private\bitmap.rkt:156:2
> >>  C:\Program
> >> Files\Racket\collects\racket\private\class-internal.rkt:3553:0:
> >> continue-make-object
> >>  C:\Program
> >> Files\Racket\collects\racket\private\class-internal.rkt:3507:0:
> >> do-make-object
> >>  C:\Program
> >> Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\backing-dc.rkt:122:4:
> >> get-cr method in backing-dc%
> >>  C:\Program
> >> Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\canvas-mixin.rkt:144:4:
> >> do-on-paint method in ...mon/canvas-mixin.rkt:118:2
> >>  C:\Program
> >> Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\queue.rkt:454:6
> >>  C:\Program
> >> Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\queue.rkt:505:32
> >>  C:\Program
> >> Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\queue.rkt:653:3
> >> 
> >> bitmap.rkt confirms your hypothesis that the first number is the width,
> >> and the second number is the height, and they both must be positive.
> >> 
> >>  [([exact-positive-integer? w]
> >>[exact-positive-integer? h]
> >>[any? [b? #f]]
> >>[any? [alpha? #f]]
> >>[positive-real? [scale 1.0]])
> >> 
> >> The width is not specified exactly in the app. I do not know why the
> >> height is zero. I do not use bitmaps directly, just controls and canvas.
> >> I will go with trial and error to get a small reproducible example.
> >> 
> >> Regards,
> >> 
> >> Dmitry
> >> 
> >> 
> >> On 07/28/2016 11:50 PM, Jens Axel Søgaard wrote:
> >>> Just a hunch: If 486 is a width - then the 0 could be a problematic
> >>> height?
> >>> 
> >>> Do you recognize the number 486?
> >>> 
> >>> /Jens Axel
> >>> 
> >>> 
> >>> 2016-07-28 22:29 GMT+02:00 >:
> >>> 
> >>>  Hello,
> >>> 
> >>>  Running my GUI app from Racket 6.6, I see the following error
> >>>  message in the console:
> >>> 
> >>>  initialization for bitmap%: bad argument combination: 486 0 #f #t 1.0
> >>> 
> >>>  It happens on 64-bit Windows 7 and 10, and does not happen on
> >>>  32-bit Windows XP and 64-bit Linux.
> >>> 
> >>>  It also did not happen on Racket 6.5.
> >>> 
> >>>  The app continues to work despite the error. There is no stack
> >>>  trace whatsoever.
> >>>  What can I do to trace the problem?
> >>> 
> >>> 
> >>>  Best regards,
> >>> 
> >>>  Dmitry
> >>> 
> >>>  --
> >>>  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
> 

[racket-users] Racket v6.6

2016-07-22 Thread Vincent St-Amour
Racket version 6.6 is now available from

http://racket-lang.org/

- The new Macro Profiler command-line tool (`raco macro-profiler`) shows
  how macros contribute to the final expanded code size of a program.

- Typed Racket supports intersection types. This allows the type system
  to track more information, and for programmers to express more precise
  types.

- Typed Racket produces up to 4x smaller compiled files compared with
  Racket 6.5, reducing the size of the Racket distribution by 50M.

- Typed Racket issues warnings in cases where the contract generated for
  `Any` was not strict enough in the past. These warnings will become
  errors in a future release. Warnings are enabled via View -> Show Log
  in DrRacket, and shown by default on command-line Racket.

- Typed Racket enforces uses of `cast` more correctly, by checking both
  the "casted-to" and "casted-from" types. Previously, only the former
  were checked. In some cases, this will produce contract errors in
  programs that did not have errors before.

- `syntax-parse` raises an error when an ellipsis pattern has an empty
  match rather than diverging, and it logs a warning when it statically
  detects a nullable pattern, such as `((~seq) ...)`. In the next version
  of Racket, it will reject the pattern instead, and it will remove
  special handling that currently makes some uses of such patterns
  terminate.

- `htdp/dir`: The `create-dir` function delivers data information for
  files in a new field. The domain of its functions are backwards
  compatible.

The following people contributed to this release:
Alex Knauth, Alexander Shopov, Alexis King, Andrew Kent, Asumu Takikawa,
Ben Greenman, Bernardo Sulzbach, Brian Lachance, Chris Jester-Young, Dan
Feltey, Eric Dobson, Georges Dupéron, Gustavo Massaccesi, James Bornholt,
Jay McCarthy, John Clements, Leandro Facchinetti, Leif Andersen, Maksim
Kochkin, Matthew Flatt, Matthias Felleisen, Mike Sperber, Paul Stansifer,
Pedro Caldeira, Philip McGrath, Robby Findler, Ryan Culpepper, Sam
Tobin-Hochstadt, Spencer Florence, Stephen Chang, Stephen De Gabrielle,
Tim Brown, Tony Garnock-Jones, Vincent St-Amour, WarGrey Gyoudmon Ju,
William J. Bowman, and Zeina Migeed.

Feedback Welcome

-- 
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] TR could be even more spectacularly awesome:

2016-07-12 Thread Vincent St-Amour
OC gets its dead code info from TR, so the two should agree.

Vincent


On Tue, 12 Jul 2016 16:54:10 -0500,
Robby Findler wrote:
> 
> I think you are saying that TR does not declare variables in for/hash
> as dead code but that OC does. Is that what you're saying? Is that
> true?
> 
> Robby
> 
> On Tue, Jul 12, 2016 at 4:51 PM, Matthias Felleisen
>  wrote:
> >
> > The coach is different from the type checker.
> >
> > I think that the type checker should use these colors only when type
> > checking succeeds, and in that case, I’d consider the colors highly
> > useful.
> >
> >
> >
> >
> >
> >
> >> On Jul 12, 2016, at 5:46 PM, Robby Findler  
> >> wrote:
> >>
> >> That would require too mcuh work and also be ugly, IMO. :)
> >>
> >> I think that an on-mouseover option would be too hard to discover.
> >>
> >> John raises a good point.
> >>
> >> Robby
> >>
> >>
> >> On Tue, Jul 12, 2016 at 4:42 PM, Sam Tobin-Hochstadt
> >>  wrote:
> >>> I hesitate to suggest it as well, but what about the little red
> >>> squiggles seen in editors/word processors/etc?
> >>>
> >>> But I'm happy with any of these options.
> >>>
> >>> Sam
> >>>
> >>> On Tue, Jul 12, 2016 at 5:38 PM, Robby Findler
> >>>  wrote:
>  Yes.
> 
>  I hesitate to suggest it, but would a background color on the text be
>  the way to go? I find that a bit on the annoying side, tho.
> 
>  You could use an existing pipeline to do something like the unused
>  require highlighting (which requires mouseover).
> 
>  Robby
> 
>  On Tue, Jul 12, 2016 at 4:36 PM, Sam Tobin-Hochstadt
>   wrote:
> > Could this be an API like the one for tooltips? IOW, some sort of 
> > general
> > warning with a message and a syntax location?
> >
> > Sam
> >
> > On Tue, Jul 12, 2016 at 5:34 PM Robby Findler 
> > 
> > wrote:
> >>
> >> I think it would be straightforward to add something to Check Syntax
> >> that reported unreachable code and that seems pretty cool and useful
> >> for TR. So CS could report any code that TR could prove was
> >> unreachable and yet the code came from the original program. I guess
> >> if John had seen that showing up in his program it might have prompted
> >> him to figure out what the bug was?
> >>
> >> Robby
> >>
> >>
> >> On Tue, Jul 12, 2016 at 4:13 PM, Matthias Felleisen
> >>  wrote:
> >>>
>  On Jul 12, 2016, at 5:07 PM, Sam Tobin-Hochstadt 
>  
>  wrote:
> 
> >
> > 2) Is there some nice user interface that we could use to make the
> > warnings visible to the case of the user? Maybe a “I think I have a 
> > bug, can
> > I see the compilation warnings” button?
> 
>  I agree -- I think we need a better story generally for warning UI in
>  Racket, but I don't know what the right solution is.
> >>>
> >>>
> >>> [Sorry John, I overlooked your questions.]
> >>>
> >>>
> >>> Instead of watching warnings scroll by in some widget, I’d rather see
> >>> the coloring solution for testing from the teaching languages adapted 
> >>> to TR.
> >>>
> >>> At a minimum, I could see two colors:
> >>>
> >>> RED: you’re typed. Blessed. You’re wonderful.
> >>> BLUE: you’re bad. Untyped. My propositions hate you.
> >>>
> >>> Or something like that. I could see the use of four or five colors 
> >>> even.
> >>> But starting with two would be a _good thing_.
> >>>
> >>> More brainstorming ideas?
> >>>
> >>> --
> >>> 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 

[racket-users] Reminder: (sixth RacketCon) Call for Speakers

2016-06-28 Thread Vincent St-Amour
Racketeers,

The (sixth RacketCon) program is starting to take shape! Check out our
web page[1] for a sneak peek.

We still have a couple of speakers slots open, but not many. If you're
interested in speaking about a Racket-related project of yours, please
let me know!

Also, if you haven't registered yet, please do at:
https://www.eventbrite.com/e/racketcon-2016-tickets-24349152972

(sixth RacketCon) will be held on September 18th in St. Louis.
We are pleased to once more be co-located with Strange Loop[2].

RacketCon is a yearly event where members of the Racket community get
together, featuring talks and demos about the things you do with Racket.

See you in St. Louis!

Vincent, for the Racket team


[1] http://con.racket-lang.org/
[2] https://thestrangeloop.com/

-- 
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] special symbols in scribble

2016-06-16 Thread Vincent St-Amour
Hi Jos,

Is this what you had in mind?

http://docs.racket-lang.org/drracket/Keyboard_Shortcuts.html#%28part._.La.Te.X_and_.Te.X_inspired_keybindings%29

Vincent


On Thu, 16 Jun 2016 11:33:54 -0500,
Jos Koot wrote:
> 
> special symbols in scribble
> 
> Hi, 
> 
> Some days ago I encountered a nice survey of how to put special symbols
> in a scribble file, 
> such as the mathematical symbols for 'exists' , 'for all' and 'member of
> set'. 
> I think it was part of the scribble docs, I am not sure. 
> But now I can't find the survey. Have surfed a lot through the docs
> without finding it again. 
> If you understand what I mean, can you tell me where to look in the
> docs? 
> It is there, for I saw it before. 
> 
> Thanks, 
> Jos Koot 
> 
> -- 
> 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.


  1   2   >