[racket-users] (chaperone RacketCon) 2020

2020-06-05 Thread Jay McCarthy
In October 2020, we'll be holding a virtual RacketCon, rather than an
in-person meeting as usual. We hope to get back to normal in 2021. We
have not worked out the exact dates and details, but have a few
parameters.

We're thinking about following PLDI, where the general model is to
have pre-recorded talks, which I would help presenters prepare,
followed by live Q with an MC relaying questions from Slack. We'd
hope to have the usual State of Racket presentation from Matthew,
which would lead into a town hall Q/comment session with members of
the Racket team.

The main details we need to work out now are exactly which and how
many days to run it and in what time slots and in what time zones. I
would greatly appreciate any comments you have in response to this
form:

https://forms.gle/cYNNY9XhmEoUBBe19

Thank you!

Jay

--
Jay McCarthy
Associate Professor @ CS @ UMass Lowell
http://jeapostrophe.github.io
Vincit qui se vincit.

-- 
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/CAJYbDamx86%3DMrgekSvarLv5foA9JD56n02Evu7o0Wq8vShgBcw%40mail.gmail.com.


Re: [racket-users] How to change package name on the package index?

2020-06-05 Thread Siddhartha Kasivajhula
I'm pleased to report that the "rename swap" of Originalname ->
Originalname-x -> originalname worked like a charm :) It also preserved the
metadata. Also, the dependent packages built successfully within about an
hour of the upstream rename. Thank you both for your suggestions and input.

If anyone has been using the "Relation" package, please use "relation" from
now on.

I've reported this issue here
.




On Fri, Jun 5, 2020 at 12:41 AM Tony Garnock-Jones <
to...@leastfixedpoint.com> wrote:

> I think the package name system is case-insensitive (??) but
> case-preserving (definitely), and certainly objects to trying to create two
> packages that differ only in case.
>
> So renaming from FOO to foo won't work, because it considers this an
> attempt to overwrite an existing package. I think. We could probably change
> that?
>
> But here's a trick: try renaming FOO to FOO-x, and then to foo. That might
> work.
>
>
> On Friday, June 5, 2020 at 5:59:03 AM UTC+2, Siddhartha Kasivajhula wrote:
>>
>> ...@Alexis King , let's say I add the new package with the lowercase
>> name but other metadata identical to the old one, including the github repo
>> and the collection name. I would then update everything I care about to use
>> the new package and then wait for a day or two for the docs to show up. At
>> that point, how would the documentation server handle the fact that two
>> packages provide identical top-level collections? Would that be OK? Not
>> sure if it matters that this is a top-level collection name.
>>
>>
>>
>>
>> On Thu, Jun 4, 2020 at 8:32 PM Siddhartha Kasivajhula 
>> wrote:
>>
>>> OK, that's a good idea. I guess that still means it would lose the
>>> metadata, correct? That seems less than ideal, but I suppose it's more of
>>> an aesthetic concern.
>>>
>>> Re: the broader case-sensitivity consideration, for anyone interested in
>>> additional context, it looks like the python package index is case
>>> insensitive
>>> ,
>>> while Ruby gems are case sensitive
>>> , although it looks like
>>> capital letters are now disallowed
>>>  following
>>> discussions including this one
>>> .
>>>
>>>
>>> On Thu, Jun 4, 2020 at 7:41 PM Alexis King  wrote:
>>>
 On Jun 4, 2020, at 21:23, Siddhartha Kasivajhula 
 wrote:

 I'd prefer to avoid that since (1) it would lose the package metadata
 and (2) it could be off the package index for up to a day (the package
 index refresh cycle) during which time other packages depending on it would
 be broken


 This isn’t quite right: it’s true that the pkg-build service only runs
 once every 24 hours, but the only thing that depends on that is built
 documentation. The actual package index is refreshed much more rapidly—on
 the order of minutes. You wouldn’t have to wait very long at all to update
 other packages.

 But even if you did, it wouldn’t matter, because there’s an easier
 solution: add your package under the new name *before* you delete the
 old name. Then you can delete the old name once you’ve ensured that
 everything you care about is updated. It’s perhaps a bit strange to have
 the same package simultaneously indexed under two different names, but it
 shouldn’t cause any trouble.

 Alexis

>>> --
> 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/7a1060e0-40ff-44d2-b432-8aa883e676a5o%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/CACQBWF%3DKB7TiRT7wAjtxBYQcDFKt2m3hZMkspyhYxs3dQ5WnCA%40mail.gmail.com.


[racket-users] identifier used out of context

2020-06-05 Thread Sorawee Porncharoenwase
Hi Racketeers,

I’m creating a macro that collects values in the internal-definition
context. E.g.,

($list
 1
 (define x 2)
 x)

should evaluate to '(1 2).

Here’s my implementation, and it kinda works:

#lang racket

(begin-for-syntax
  (define ((do-it gs ctx) e)
(let loop ([e e])
  (define e-expanded (local-expand e (list gs) #f ctx))
  (syntax-case e-expanded (begin define-syntaxes define-values)
[(begin body ...)
 #`(begin #,@(map loop (syntax->list #'(body ...]
[(define-values ids e)
 (begin
   (syntax-local-bind-syntaxes (syntax->list #'ids) #f ctx)
   e-expanded)]
[(define-syntaxes ids e)
 (begin
   (syntax-local-bind-syntaxes (syntax->list #'ids) #'e ctx)
   #'(begin))]
[e #'(set! acc (cons e acc))]

(define-syntax ($list stx)
  (define gs (gensym))
  (define ctx (syntax-local-make-definition-context))
  (syntax-case stx ()
[(_ body ...)
 #`(let ([acc '()])
 #,@(map (do-it gs ctx) (syntax->list #'(body ...)))
 (reverse acc))]))

($list 1
   (define x 2)
   x)

There are problems though. If I change define to define2 as follows:

(define-syntax-rule (define2 x y)
  (define-values (x) y))

($list 1
   (define2 x 2)
   x)

Then I get the “identifier used out of context” error. This doesn’t make
sense to me at all. My define2 should be very similar to define…

There’s also another weird problem:

($list 1
   (define-syntax (x stx) #'2)
   x)

The above works perfectly, but by wrapping x with #%expression, I get the
“identifier used out of context” error again.

($list 1
   (define-syntax (x stx) #'2)
   (#%expression x))

What did I do wrong?

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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CADcuegtJKvcG0kMFp1k2yn8HfGTo5s7z2U2uW2fHF2qa1FQ5_g%40mail.gmail.com.


Re: [racket-users] How to change package name on the package index?

2020-06-05 Thread Tony Garnock-Jones
I think the package name system is case-insensitive (??) but 
case-preserving (definitely), and certainly objects to trying to create two 
packages that differ only in case.

So renaming from FOO to foo won't work, because it considers this an 
attempt to overwrite an existing package. I think. We could probably change 
that?

But here's a trick: try renaming FOO to FOO-x, and then to foo. That might 
work.


On Friday, June 5, 2020 at 5:59:03 AM UTC+2, Siddhartha Kasivajhula wrote:
>
> ...@Alexis King  , let's say I add the new package with the 
> lowercase name but other metadata identical to the old one, including the 
> github repo and the collection name. I would then update everything I care 
> about to use the new package and then wait for a day or two for the docs to 
> show up. At that point, how would the documentation server handle the fact 
> that two packages provide identical top-level collections? Would that be 
> OK? Not sure if it matters that this is a top-level collection name.
>
>
>
>
> On Thu, Jun 4, 2020 at 8:32 PM Siddhartha Kasivajhula  > wrote:
>
>> OK, that's a good idea. I guess that still means it would lose the 
>> metadata, correct? That seems less than ideal, but I suppose it's more of 
>> an aesthetic concern.
>>
>> Re: the broader case-sensitivity consideration, for anyone interested in 
>> additional context, it looks like the python package index is case 
>> insensitive 
>> , 
>> while Ruby gems are case sensitive 
>> , although it looks like 
>> capital letters are now disallowed 
>>  following 
>> discussions including this one 
>> .
>>
>>
>> On Thu, Jun 4, 2020 at 7:41 PM Alexis King > > wrote:
>>
>>> On Jun 4, 2020, at 21:23, Siddhartha Kasivajhula >> > wrote:
>>>
>>> I'd prefer to avoid that since (1) it would lose the package metadata 
>>> and (2) it could be off the package index for up to a day (the package 
>>> index refresh cycle) during which time other packages depending on it would 
>>> be broken
>>>
>>>
>>> This isn’t quite right: it’s true that the pkg-build service only runs 
>>> once every 24 hours, but the only thing that depends on that is built 
>>> documentation. The actual package index is refreshed much more rapidly—on 
>>> the order of minutes. You wouldn’t have to wait very long at all to update 
>>> other packages.
>>>
>>> But even if you did, it wouldn’t matter, because there’s an easier 
>>> solution: add your package under the new name *before* you delete the 
>>> old name. Then you can delete the old name once you’ve ensured that 
>>> everything you care about is updated. It’s perhaps a bit strange to have 
>>> the same package simultaneously indexed under two different names, but it 
>>> shouldn’t cause any trouble.
>>>
>>> Alexis
>>>
>>

-- 
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/7a1060e0-40ff-44d2-b432-8aa883e676a5o%40googlegroups.com.


Re: [racket-users] How to handle conflicts in packages?

2020-06-05 Thread David Storrs
Got it. I'll change that, and thank you.

On Fri, Jun 5, 2020 at 11:28 AM Sam Tobin-Hochstadt 
wrote:

> This most likely means that your documentation is in a file with a generic
> name like manual.scrbl which those packages also use.
>
> Sam
>
> On Fri, Jun 5, 2020, 11:20 AM David Storrs  wrote:
>
>> I uploaded a new module, 'thread-with-id', and the package server tells
>> me that there are conflicts.  The message is:
>>
>> https://pkg-build.racket-lang.org/conflicts.txt
>>
>>  doc "main":
>>   ekans lti-freq-domain-toolbox protobuf thread-with-id
>>
>> I'm not sure what this means -- I've looked through the ekans,
>> lti-freq-domain, and protobuf modules and none of them have a
>> thread-with-id function listed in the docs.
>>
>> Is there anything I can do to resolve this?
>>
>> --
>> 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/CAE8gKofxWjWhHMs1EReWOxw3ZNXCsLi5WOWgHzKVrbbRXFwWPQ%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/CAE8gKoeC%2BJ%2Bnz9O6s0Kn3Frfpxt%3Da5sF1KtwK6ECrzx95vaEnQ%40mail.gmail.com.


[racket-users] How to handle conflicts in packages?

2020-06-05 Thread David Storrs
I uploaded a new module, 'thread-with-id', and the package server tells me
that there are conflicts.  The message is:

https://pkg-build.racket-lang.org/conflicts.txt

 doc "main":
  ekans lti-freq-domain-toolbox protobuf thread-with-id

I'm not sure what this means -- I've looked through the ekans,
lti-freq-domain, and protobuf modules and none of them have a
thread-with-id function listed in the docs.

Is there anything I can do to resolve this?

-- 
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/CAE8gKofxWjWhHMs1EReWOxw3ZNXCsLi5WOWgHzKVrbbRXFwWPQ%40mail.gmail.com.


Re: [racket-users] How to handle conflicts in packages?

2020-06-05 Thread Sam Tobin-Hochstadt
This most likely means that your documentation is in a file with a generic
name like manual.scrbl which those packages also use.

Sam

On Fri, Jun 5, 2020, 11:20 AM David Storrs  wrote:

> I uploaded a new module, 'thread-with-id', and the package server tells me
> that there are conflicts.  The message is:
>
> https://pkg-build.racket-lang.org/conflicts.txt
>
>  doc "main":
>   ekans lti-freq-domain-toolbox protobuf thread-with-id
>
> I'm not sure what this means -- I've looked through the ekans,
> lti-freq-domain, and protobuf modules and none of them have a
> thread-with-id function listed in the docs.
>
> Is there anything I can do to resolve this?
>
> --
> 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/CAE8gKofxWjWhHMs1EReWOxw3ZNXCsLi5WOWgHzKVrbbRXFwWPQ%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/CAK%3DHD%2BaUPUYCHOXGR03Bkz7uB5pPcGt7Wj3u%3D1_t1rPYXW8MJw%40mail.gmail.com.


[racket-users] Interpreting Racket profile stats

2020-06-05 Thread James Platt
I'm looking at profiling some code for performance and tried out the Racket 
profile package but I'm not sure what the numbers mean.  

Here is a very simple example:
https://stackoverflow.com/questions/23988370/thorough-guide-for-profiling-racket-code

Here's a run from my actual code:
https://gitlab.com/snippets/1983422

What is Total, versus Self versus Local?   Even in the simple, single threaded, 
example the percentages add up to much more than 100.  So how do they relate to 
each other?   Does this mean that some items are multi-step processes which 
include some of the other items?  In the multi threaded example, are some 
processes concurrent and, therefore, representing simultaneous execution on 
different processor cores?  In any case, the point is to be able to look at the 
output and figure out where the code is taking a lot of time.  If I am guessing 
correctly the numbers in the Idx column actually represent blocks of code 
(s-expressions?) rather than lines of text in the code.

-- 
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/859F6F04-1AA7-4BB0-9A88-31C39C9F3D4A%40biomantica.com.