Re: [racket-users] European Racketeers and conferences

2017-09-04 Thread Matthew Eric Bassett
I regret that I am not able to make it and that I didn't organise anything. 
Best wishes to everyone!

Sent from my iPad

> On 4 Sep 2017, at 10:07, Tim Jervis <t...@timjervis.com> wrote:
> 
> Looking forward to meeting you.
> 
> Tim
> 
>> On 3 Sep 2017, at 11:04, Matthew Flatt <mfl...@cs.utah.edu> wrote:
>> 
>> For anyone who can make the trip to Oxford, we'll be at the Swan & Castle at 
>> 6:30pm on Monday. We hope to see you there!
>> 
>> Matthew
>> 
>>> On Aug 27, 2017, at 8:12 PM, Matthias Felleisen <matth...@ccs.neu.edu> 
>>> wrote:
>>> 
>>> 
>>> HI — we compared constraints with Matthew B. (London) to coordinate but we 
>>> haven’t heard back from him whether we’ll meet in Oxford or London. Sadly 
>>> the other 3 (Sam of Typed Racket fame is attending too) are now at a 
>>> secret-cabal-ifip meeting seem to be off-line too. If anything gets 
>>> organized still, we’ll get i touch with the Oxford/London people. — Matthias
>>> 
>>> 
>>> 
>>> 
>>>> On Aug 27, 2017, at 7:16 AM, Chris Gallagher <chrisgal...@gmail.com> wrote:
>>>> 
>>>> Hi Matthias.  I am based near Oxford and would be interested in joining an 
>>>> informal get together while people are at ICFP. 
>>>> 
>>>> Kind Regards
>>>> Chris
>>>> 
>>>>> On Tuesday, 22 August 2017 15:51:03 UTC+1, Matthias Felleisen  wrote:
>>>>> Matthew F, Robby, and I will be in Oxford for ICFP starting late next 
>>>>> week. None of us thought of this before but I am sure we could at least 
>>>>> arrange for some dinner or afternoon get-together. — Matthias
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>> On Aug 22, 2017, at 10:44 AM, Tim Jervis <t...@timjervis.com> wrote:
>>>>>> 
>>>>>> Hi Matthew,
>>>>>> 
>>>>>> I’m based in London and would be interested in a get-together.
>>>>>> 
>>>>>> Kind regards,
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Tim
>>>>>> 
>>>>>>> On 22 Aug 2017, at 15:20, Daniel Brunner <dan...@dbrunner.de> wrote:
>>>>>>> 
>>>>>>> Hey Matthew,
>>>>>>> 
>>>>>>> I live in Germany and use Racket for teaching students, teaching our
>>>>>>> apprentices (dual education system in Germany) and use it "in
>>>>>>> production" for some tasks.
>>>>>>> 
>>>>>>> Best wishes,
>>>>>>> Daniel
>>>>>>> 
>>>>>>>> Am 22.08.2017 um 15:15 schrieb Matthew Eric Bassett:
>>>>>>>> Hi all,
>>>>>>>> 
>>>>>>>> Gutted I can't make it to RacketCon this year.  Really glad to see it
>>>>>>>> growing.
>>>>>>>> 
>>>>>>>> Question for y'all - how many Racketeers are active on this side of the
>>>>>>>> Atlantic?  Enough for a specific get-together over here?  Or are there
>>>>>>>> already appropriate venues for that that I'm unaware of (I am already
>>>>>>>> familiar with the European lisp symposium)
>>>>>>>> 
>>>>>>>> Best,
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> 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 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.
>>> 
>> 
> 
> 
> 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] European Racketeers and conferences

2017-08-23 Thread Matthew Eric Bassett
So there's at least 7 of us around UK/Germany/France/Netherlands that
are active on the mailing list.  What would we need at a European
Rackeeteers Meeting to ensure that *at least* all 7 of us would travel
to it ?

@Matthias - it'd be fantastic if we could arrange something in London or
Oxford.  I'm just getting back from Salone this week and wasn't planning
on making to ICFP, but I'll see if I can help organize something.  Can
you sure your itinerary ?


On 08/23/2017 11:13 AM, 'Paulo Matos' via Racket Users wrote:
> 
> 
> On 22/08/17 16:20, Daniel Brunner wrote:
>> Hey Matthew,
>>
>> I live in Germany and use Racket for teaching students, teaching our
>> apprentices (dual education system in Germany) and use it "in
>> production" for some tasks.
>>
> 
> In Germany as well - Nuernberg to be precise. I learned Racket back in
> version 53 - that was something around 1999. On and off for a few years
> and now I am using in commercially in my own company.
> 
> Happy to join a European Racket gathering.
> 
> Paulo Matos
> 
>> Best wishes,
>> Daniel
>>
>> Am 22.08.2017 um 15:15 schrieb Matthew Eric Bassett:
>>> Hi all,
>>>
>>> Gutted I can't make it to RacketCon this year.  Really glad to see it
>>> growing.
>>>
>>> Question for y'all - how many Racketeers are active on this side of the
>>> Atlantic?  Enough for a specific get-together over here?  Or are there
>>> already appropriate venues for that that I'm unaware of (I am already
>>> familiar with the European lisp symposium)
>>>
>>> Best,
>>>
>>>
>>
> 


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


signature.asc
Description: OpenPGP digital signature


[racket-users] European Racketeers and conferences

2017-08-22 Thread Matthew Eric Bassett
Hi all,

Gutted I can't make it to RacketCon this year.  Really glad to see it
growing.

Question for y'all - how many Racketeers are active on this side of the
Atlantic?  Enough for a specific get-together over here?  Or are there
already appropriate venues for that that I'm unaware of (I am already
familiar with the European lisp symposium)

Best,


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


signature.asc
Description: OpenPGP digital signature


[racket-users] `apply`ing polymorphic functions in typed/racket

2017-01-04 Thread Matthew Eric Bassett
Hi everyone,

I have a strange example for you.  The following code throws an error in
typed/racket 6.7:

> (define (list1) : (Listof (Setof  Positive-Byte))
(list (set 2) (set 3 2)))
  (apply set-union (list1))
Type Checker: Bad arguments to function in `apply':
Domain: (Setof e) (Setof e) *
Arguments: (Listof (Setof Positive-Byte)) *
in: (apply set-union (list1))

At first I thought "doh! There's a note in the docs about polymorphic
function, just use inst".  But on the other hand,

> (define list0 
(list (set 2) (set 3 2)))
  (apply set-union list0)

Happily compiles and evaluates to the expected result.  For the record,
(inst set-union Positive-Byte) does not help.

What is weirder is that if I open a fresh repl and try:

> (define list0 : (Listof (Setof Positive-Byte)) 
(list (set 2) (set 3 2)))
  (apply set-union list0)

It then throws the same error.

I wasn't able to get the same error with other polymorphic functions as
much as I tried. It turns out this is limited to set-union and
set-subtract.  the type signatures of this functions are:
(-> (Setof e) (Setof e) * (Setof e))

Therein lies our problem.  we need to curry set-union, et al, to get rid
of that leading argument!  But to curry we run into polymorphic type
problems.  so we do:

> (apply (curry (inst set-union Positive-Byte) (ann (set) (Setof 
> Positive-Byte))) (list1))

That's a bit of a mouthful, but racket is as happy as a clam.  Might I
hope for a cleaner way to write this in a later version?
Somewhat related, I have one parting question: Out of the two:

> (define list0 
(list (set 2) (set 3 2)))
  (apply set-union list0)

> (define list2 : (Listof (Setof Positive-Byte)) 
(list (set 2) (set 3 2)))
  (apply set-union list2)

Why does the former work and the latter fail ?

Thanks,

Matthew Eric

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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] TR issue with the type of expt

2016-09-27 Thread Matthew Eric Bassett
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.


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] warnings for requiring opaque types in typed racket 6.6

2016-08-24 Thread Matthew Eric Bassett
On 08/24/2016 02:28 PM, Alex Knauth wrote:
> That's the short-term solution. A better solution would be for typed racket 
> to implement a different version of #:opaque that would actually wrap the 
> values in opaque structs when they flow from untyped-to-typed and unwrap them 
> when they flow from typed-to-untyped. That way typed racket would know how to 
> protect the values.

we will be eagerly awaiting such a change to typed racket, as unsafe
requires are worrisome.   If a lay-programmer could contribute do let me
know, though I am not sure I know where to start.

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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] warnings for requiring opaque types in typed racket 6.6

2016-08-24 Thread Matthew Eric Bassett
thank you for your reply, Alex.  That was informative and helpful.

On 08/19/2016 02:56 PM, Alex Knauth wrote:
> So to work around that, you can use `define-new-subtype` along with 
> `unsafe-require/typed`.
> 
> #lang typed/racket
> (require typed/racket/unsafe)
> (define-new-subtype My-Type (make-my-type My-Type))
> (unsafe-require/typed "untyped.rkt" [my-type? (-> Any Boolean : My-Type)] 
> [my-type My-Type])
> 

This is quite wonky and the warnings in the Typed Racket docs about
unsafe make me very wary about using such stuff in production.  Can the
others confirm if this is indeed the desired behavior or something that
might be fixed in a later version?

Regards,

M.e.




> 
> Alex Knauth
> 
>> Hi all,
>>
>> I note that Racket 6.6 now issues warnings for certain generated
>> contracts in typed/untyped interactions.  In particular, these warnings
>> come up when requiring an untyped file from a typed file.  For example,
>> say I have
>>
>> test.rkt:
>> -
>> #lang racket
>>
>>
>> (define my-type
>> (let ()
>>  (struct my-type () )
>>  (my-type)))
>> (define (my-type? x)
>> (eq? x my-type))
>>
>>
>> (provide my-type? my-type)
>>
>> And follow that with type interactions:
>>
>> $ racket -I typed/racket
>> Welcome to Racket v6.6.
>> -> (require/typed "test.rkt" [#:opaque My-Type my-type?] [my-type My-Type])
>> my-type?: contract violation
>>  any-wrap/c: Unable to protect opaque value passed as `Any`
>>  value: #
>>  This warning will become an error in a future release.
>>  in: the 1st argument of
>>  a part of the or/c of
>>  (or/c
>>   struct-predicate-procedure?/c
>>   (-> Any boolean?))
>>  contract from: (interface for my-type?)
>>  blaming: top-level
>>   (assuming the contract is correct)
>>  at: readline-input:1.44
>>
>> I use a similar pattern to call the untyped db library from typed code,
>> say with
>> (require/typed db [#:opaque Sql-Null] [sql-null Sql-Null]), which would
>> bring up a similar warning.
>>
>> Is there a "correct" way to handle these sorts of cases?
>>
>> Thanks!
>>
>> Matthew Eric
>>
>> -- 
>> Matthew Eric Bassett | http://mebassett.info
> 
> 

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


signature.asc
Description: OpenPGP digital signature


[racket-users] warnings for requiring opaque types in typed racket 6.6

2016-08-19 Thread Matthew Eric Bassett
Hi all,

I note that Racket 6.6 now issues warnings for certain generated
contracts in typed/untyped interactions.  In particular, these warnings
come up when requiring an untyped file from a typed file.  For example,
say I have

test.rkt:
-
#lang racket


(define my-type
 (let ()
  (struct my-type () )
  (my-type)))
(define (my-type? x)
 (eq? x my-type))


(provide my-type? my-type)

And follow that with type interactions:

$ racket -I typed/racket
Welcome to Racket v6.6.
-> (require/typed "test.rkt" [#:opaque My-Type my-type?] [my-type My-Type])
my-type?: contract violation
  any-wrap/c: Unable to protect opaque value passed as `Any`
  value: #
  This warning will become an error in a future release.
  in: the 1st argument of
  a part of the or/c of
  (or/c
   struct-predicate-procedure?/c
   (-> Any boolean?))
  contract from: (interface for my-type?)
  blaming: top-level
   (assuming the contract is correct)
  at: readline-input:1.44

I use a similar pattern to call the untyped db library from typed code,
say with
(require/typed db [#:opaque Sql-Null] [sql-null Sql-Null]), which would
bring up a similar warning.

Is there a "correct" way to handle these sorts of cases?

Thanks!

Matthew Eric


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


signature.asc
Description: OpenPGP digital signature


[racket-users] typed racket, pattern matching, and hash tables

2016-06-13 Thread Matthew Eric Bassett
Hi all,

I'm really having a lot of fun playing with typed racket these days.

But I keep hitting some confusing issues with hash tables.

The following bit of code works fine in #lang racket but chokes on #lang
typed/racket:

(match (hash 'low 5 'high 5)
  [(hash-table ('low (? integer? low))
   ('high (? integer? high)))
   (list low high)])

racket responds with:

Type Checker: Polymorphic function `hash-map' could not be applied to
arguments:
Domains: HashTableTop (-> Any Any c)
 (HashTable a b) (-> a b c)
Arguments: (HashTable Symbol Integer) (All (a) (-> a * (Listof a)))
 in: (match (hash (quote low) 5 (quote high) 5) ((hash-table ((quote
low) (? integer? low)) ((quote high) (? integer? high))) (list low high)))

In an ideal world, I would use (match (bytes->jsexpr
hopefuly-valid-json-bytes) [(hash-table ...)]) to extract typed
parameters from some json input in a reasonable way.  But perhaps I'm
abusing match.

For the moment set that problem aside - why doesn't my match work in
typed racket?  What am I not understanding?

Thanks,

M.e.


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


Re: [racket-users] Weirdness with typed racket and hashes

2016-05-23 Thread Matthew Eric Bassett
Thank you, Brian, that was very helpful.

On 05/23/2016 03:46 PM, Brian LaChance wrote:
> Hi, Matthew
> 
> I'm pretty sure the problem you're having is that, even when you make
> a hash table using hash, TR can't tell that it's immutable. It only
> has one hash table type, HashTable, which is used for both mutable and
> immutable variants. You'll see a similar problem with your cons
> examples if you switch those to mutable pairs using mcons/MPairof.
> 
> As for why you can annotate the first hash expression, the one that
> works as expected, it's the same reason you can define t* with an
> annotation like
> 
> (: t* (HashTable Any Any))
> (define t* (hash 'a 1 'b "cat"))
> 
> The other examples don't work because when you define t* without the
> explicit annotation, it's as if you had annotated it with the "given"
> type that you see in the error messages. If you were able to then
> later annotate it with the rejected types, you could put arbitrary
> values into the hash table. A consumer who thought they were getting
> (U String One) values out (after all, that's t*'s type) could be
> surprised with a non-One Integer.
> 
> Commingling mutable and immutable hash tables into the same type is
> definitely confusing in TR. Hopefully we can tease them apart in the
> future to remove at least some of the confusion. Let me know if this
> didn't help clear things up.
> 
> -Brian
> 
> On Mon, May 23, 2016 at 6:54 AM, Matthew Eric Bassett
> <mebass...@gegn.net> wrote:
>> Hi all,
>>
>> I noticed something weird today when playing around with typed racket (and
>> flirting with the idea of using it in production).
>>
>> If I do something like:
>>
>> -> (ann (cons 'a 1) (Pairof Any Any))
>> - : (Pairof Any Any)
>> '(a . 1)
>>
>> That works as expected.  As does:
>>
>> -> (define t (cons 'a 1))
>> -> (ann t (Pairof Any Any))
>> - : (Pairof Any Any)
>> '(a . 1)
>>
>> Now, if I do
>>
>> -> (ann (hash 'a 1 'b "cat") (HashTable Any Any))
>> - : (HashTable Any Any)
>> '#hash((a . 1) (b . "cat"))
>>
>> That also works as expected.  Things get weird if I do:
>>
>> -> (define t* (hash 'a 1 'b "cat"))
>> -> (ann t* (HashTable Any Any))
>>
>> This gives a type mismatch error:
>>
>> ; readline-input:30:5: Type Checker: type mismatch
>> ;   expected: (HashTable Any Any)
>> ;   given: (HashTable Symbol (U String One))
>> ;   in: t*
>>
>>
>> Am I being completely daft here?  Is there some hidden knowledge
>> required to use
>> hash tables here?
>>
>> Note that the following also does not work:
>>
>> -> (ann t* (HashTable Symbol (U String Integer)))
>> ; readline-input:31:5: Type Checker: type mismatch
>> ;   expected: (HashTable Symbol (U Integer String))
>> ;   given: (HashTable Symbol (U String One))
>> ;   in: t*
>>
>> Regards,
>>
>> Matthew Eric
>>
>> --
>> 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.
> 

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


signature.asc
Description: OpenPGP digital signature


[racket-users] Weirdness with typed racket and hashes

2016-05-23 Thread Matthew Eric Bassett
Hi all,

I noticed something weird today when playing around with typed racket (and
flirting with the idea of using it in production).

If I do something like:

-> (ann (cons 'a 1) (Pairof Any Any))
- : (Pairof Any Any)
'(a . 1)

That works as expected.  As does:

-> (define t (cons 'a 1))
-> (ann t (Pairof Any Any))
- : (Pairof Any Any)
'(a . 1)

Now, if I do

-> (ann (hash 'a 1 'b "cat") (HashTable Any Any))
- : (HashTable Any Any)
'#hash((a . 1) (b . "cat"))

That also works as expected.  Things get weird if I do:

-> (define t* (hash 'a 1 'b "cat"))
-> (ann t* (HashTable Any Any))

This gives a type mismatch error:

; readline-input:30:5: Type Checker: type mismatch
;   expected: (HashTable Any Any)
;   given: (HashTable Symbol (U String One))
;   in: t*


Am I being completely daft here?  Is there some hidden knowledge
required to use
hash tables here?

Note that the following also does not work:

-> (ann t* (HashTable Symbol (U String Integer)))
; readline-input:31:5: Type Checker: type mismatch
;   expected: (HashTable Symbol (U Integer String))
;   given: (HashTable Symbol (U String One))
;   in: t*

Regards,

Matthew Eric

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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Re: new #lang sicp

2016-03-21 Thread Matthew Eric Bassett
This is great Neil. I am running a London study group on SICP and we can help 
test this after the easter holiday.

Many thanks to everyone who has worked on this.

Matthew Eric Bassett | https://mebassett.info

> On Mar 21, 2016, at 14:55, Brian Adkins <lojicdot...@gmail.com> wrote:
> 
>> On Friday, March 18, 2016 at 8:03:29 AM UTC-4, Neil Van Dyke wrote:
>> Could anyone currently working through or teaching SICP please try out 
>> the new `#lang sicp` support, in Jens Axel Sogaard's `sicp` package in 
>> the new package system?
>> 
>> http://docs.racket-lang.org/sicp-manual/
>> 
>> If you find any problems with this, please let me and Jens Axel know.
>> 
>> I'd prefer to shake out any glaring problems now, before people start 
>> working through SICP in the summer or September.  (I expect a few 
>> problems, and I don't want them to be first encountered by new students 
>> trying to do their homework, so am "crowdsourcing QA" in advance.)
>> 
>> I've updated my old PLaneT package 
>> ("http://www.neilvandyke.org/racket/sicp/;) to point people to Jens 
>> Axel's new one.
>> 
>> Neil V.
> 
> This is great - thanks to all who had a part in updating the package. I've 
> had "work through SICP" on my list for a while, so I'll use the package when 
> I start that in a couple months or so, and post any issues.
> 
> -- 
> 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.


smime.p7s
Description: S/MIME cryptographic signature


[racket-users] hot reloading code and html templates for web app development

2016-01-06 Thread Matthew Eric Bassett
Hi all,

I often use serve/servlet to launch my webapp.  Often from the repl
while I'm developing.

One major annoyance I have, however, is that I cannot easily hot-swap
code.  If I change a required dependency I then need to kill the process
(usually re-enter! from the repl to update the changed dependency) and
serve/servlet again.  It's an annoying process, but as enter! only
updates changed files it only takes a few seconds.

Things get worse when I change templates.  These don't reload until I've
exited out of the repl and come in again - enter! doesn't seem to notice
that templates have changed.   This is an intolerable annoyance!

I must be doing something silly, as this is a very inefficient process.
 Is there a way to get racket to hotswap templates and updated
dependencies without having to explicitly restart the serve/servlet
thread, or worse the entire racket machine ?

Thanks,

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


signature.asc
Description: OpenPGP digital signature