Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread David Storrs
On Wed, Aug 28, 2019, 11:43 PM Sage Gerard  wrote:

>
> Maybe I'm overthinking this. I already know that nothing in #lang racket
> is getting thrown out or anything.



Yes, it is. #lang racket uses parenthesized S-expressions and prefix
notation such that operator precedence is not relevant and each expression
is a clearly self-contained entity that's easy to manipulate, since it's
essentially identical to its own parse tree.  #lang racket2 will be
non-parenthesized infix notation, probably with whitespace-significance.
Operator precedence will matter, it will be easy to accidentally move only
part of an expression/form, and the parse tree will be entirely different
from the user-level code.

I just feel like I am getting mixed messages about why this is all
> happening.
>

I've heard two explanations thus far. The first is that parentheses and
prefix notation are hard for students to grok and (by implication) Racket
uptake will increase if it moves to a more Python/Java/C-like syntax. I
think I may at some point have suggested that I have reservations about
this idea, but I acknowledge that the core developers are more skilled at
CS than I am and that they have more experience teaching and therefore a
larger dataset about what people find difficult to learn.

The other explanation I've heard is that Racket is due for a serious
overhaul and there's a lot of very powerful stuff that could be done if
backwards compatibility could be sacrificed. I think this is almost
certainly true, although there are certainly challenges.

So far as I'm aware, there isn't a clear statement of whether the primary
intent is to gain new users or to increase power for existing users, eg by
making the latest CS research available to the masses and fixing warts in
the existing language, etc. There's definitely tension between those goals.


One other issue that hasn't been discussed that I've seen is whether #lang
racket2 is intended for beginners or experienced developers. Everyone
starts off as a beginner but they don't stay beginners for long. (Unless
they stop programming completely, in which case there's no point in
factoring them into language design issues.) To me this suggests that it
would be possible to aim racket2 at experienced developers and use the
simpler teaching languages as a way of easing people into the ideas --
which, as I understand it, is what they're intended for and used for right
now.

Making syntax more similar to other languages is useful for Racket
beginners and will provide easier skill transference. Whether it's better
for experienced developers is an open question. Again, the core devs have
larger datasets than I do, although I will note that those datasets are
almost entirely compared of novices.


> -slg
>
>
>
>
>  Original Message 
> On Aug 28, 2019, 11:23 PM, George Neuner < gneun...@comcast.net> wrote:
>
>
>
> On 8/28/2019 10:56 PM, Sage Gerard wrote:
> > #lang new-coke
> >
> > -slg
>
> "New Coke" was horrible ... tasted like the bastard child of Pepsi and
> Dr. Pepper.
>
> And no matter what they claim, "Classic Coke" never was (and still
> isn't) the same as the original.  Classic Coke hit shelves a mere 3
> months after the original was discontinued.  I had cases of original
> stockpiled and was able to do side by side comparison.  Classic tasted
> like original diluted with extra water.  Probably it was deliberately
> diluted to enhance profit and they hoped no one would notice.
>
> YMMV,
> 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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/d2be1ddf-9c83-2641-7e89-c2f61a993bd7%40comcast.net.
>
> --
> You received this message because you are subscribed to the Google 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/3vo8nFdnB0xIR4oT5kr2-lY0USBKikSjnUAW344zx-OAIG4iCv9iD3fYQdoD2H0n1EIKP9Ni3-ZhoNsk-aG39mbXwcMq007wm-OL19HEtpU%3D%40sagegerard.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/CAE8gKofk7S6KKWc4gs%3Dz0EY1scQgpG%3DEViia1GyK_udq_Gz75w%40mail.gmail.com.


Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Benjamin Yeung
On Wed, Aug 28, 2019 at 12:28 PM Jay McCarthy  wrote:
>
> I'll add that I see S-expressions as obviously limited and it would be
> nice to make a more powerful syntactic extension system that does not
> say, "You can have anything you want, provided it is a parenthesis."
>
> So for me, I don't see the syntax mission as having anything to do
> with students or getting people to like me, I see it as a way to go
> beyond the limitations of S-expressions and do something more powerful
> and interesting. I think people will like us more after in as much as
> I think people like awesome things, and I want to make something
> awesome.

I think this point tends to get lost in all the existing material.
It's already in the threads listed in the relevant posts section, but
if people aren't "primed" to look for this particular point in there,
it's easy to miss.  That's one of the takeaways I get when I hear
questions about the Racket2 purpose/goals/etc.  Perhaps it's coming as
part of the leadership team's meeting, but I think it would help
reframe the syntax experiment if this was put forward more explicitly.

Benjamin Yeung

-- 
You received this message because you are subscribed to the Google 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/CAL%2BBSUKzFD%2BVFRvYqmUjVKYbWZxKp3NJwcPQahbVuhW1ZH1m2w%40mail.gmail.com.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread Sage Gerard
Got it, thanks

-slg

 Original Message 
On Aug 28, 2019, 11:48 PM, Jon Zeppieri wrote:

> On Wed, Aug 28, 2019 at 11:43 PM Sage Gerard  wrote:
>>
>> Why is the name Racket2 so important, anyway?
>
> It isn't. It's been mentioned several times that "Racket2" is
> currently just a placeholder for whatever it ends up being called.
>
> https://github.com/racket/racket2-rfcs/issues/111#issuecomment-523044004
>
> --
> You received this message because you are subscribed to the Google 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/CAKfDxxyvbmWizb76xTQWsAAKpiVDDcPV9x-1hSLjUVu1A5MCyQ%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/qsjldGYCPUIGkL8injjQdbh7if6Z99r6hQF2SA2NKddDlL_JMmurlUUqoW1DszXFiXRfupgTTJIYBhmSH5zIlc5cOqbawJXsqbltRgooElU%3D%40sagegerard.com.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread Jon Zeppieri
On Wed, Aug 28, 2019 at 11:43 PM Sage Gerard  wrote:
>
> Why is the name Racket2 so important, anyway?

It isn't. It's been mentioned several times that "Racket2" is
currently just a placeholder for whatever it ends up being called.

https://github.com/racket/racket2-rfcs/issues/111#issuecomment-523044004

-- 
You received this message because you are subscribed to the Google 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/CAKfDxxyvbmWizb76xTQWsAAKpiVDDcPV9x-1hSLjUVu1A5MCyQ%40mail.gmail.com.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread Sage Gerard
That's actually really cool that you had both available to taste. My analogy 
doesn't totally fit, but the preliminary discussions of Racket2 looked enough 
like the preliminary discussions for New Coke to remind me of them--and to make 
cracking a joke about it too tempting.

In terms of the OP, I wonder if the community response would have been better 
if the name didn't evoke thoughts of a sequel or a redesign. Why is the name 
Racket2 so important, anyway? Did I miss an announcement that clarified this? 
Why is a core designer's idea of a canon (for lack of a better word) mixed in 
with a brand people associate with freedom FROM canon?

Maybe I'm overthinking this. I already know that nothing in #lang racket is 
getting thrown out or anything. I just feel like I am getting mixed messages 
about why this is all happening.

-slg

 Original Message 
On Aug 28, 2019, 11:23 PM, George Neuner wrote:

> On 8/28/2019 10:56 PM, Sage Gerard wrote:
>> #lang new-coke
>>
>> -slg
>
> "New Coke" was horrible ... tasted like the bastard child of Pepsi and
> Dr. Pepper.
>
> And no matter what they claim, "Classic Coke" never was (and still
> isn't) the same as the original.  Classic Coke hit shelves a mere 3
> months after the original was discontinued.  I had cases of original
> stockpiled and was able to do side by side comparison.  Classic tasted
> like original diluted with extra water.  Probably it was deliberately
> diluted to enhance profit and they hoped no one would notice.
>
> YMMV,
> 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.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-users/d2be1ddf-9c83-2641-7e89-c2f61a993bd7%40comcast.net.

-- 
You received this message because you are subscribed to the Google 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/3vo8nFdnB0xIR4oT5kr2-lY0USBKikSjnUAW344zx-OAIG4iCv9iD3fYQdoD2H0n1EIKP9Ni3-ZhoNsk-aG39mbXwcMq007wm-OL19HEtpU%3D%40sagegerard.com.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread George Neuner



On 8/28/2019 10:56 PM, Sage Gerard wrote:

#lang new-coke

-slg


"New Coke" was horrible ... tasted like the bastard child of Pepsi and 
Dr. Pepper.


And no matter what they claim, "Classic Coke" never was (and still 
isn't) the same as the original.  Classic Coke hit shelves a mere 3 
months after the original was discontinued.  I had cases of original 
stockpiled and was able to do side by side comparison.  Classic tasted 
like original diluted with extra water.  Probably it was deliberately 
diluted to enhance profit and they hoped no one would notice.


YMMV,
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/d2be1ddf-9c83-2641-7e89-c2f61a993bd7%40comcast.net.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread Sage Gerard
#lang new-coke

-slg

 Original Message 
On Aug 28, 2019, 10:39 PM, 'Joel Dueck' via Racket Users wrote:

> On Wednesday, August 28, 2019 at 4:14:40 PM UTC-5, David Storrs wrote:
>
>> On Wed, Aug 28, 2019 at 5:08 PM Daniel Prager  wrote:
>>
>>> I reckon #lang retack would at least make an apt working title. ;-)
>>
>> Hang on, 'tack' means to change direction across the wind, so shouldn't 
>> 'retack' mean to change direction and then change direction again such that 
>> you're back to your original course?  I'm not sure how apropos that would be 
>> in this case...  ;>
>
> I concur with David!
>
>  I think something more like `#lang tacker`
> — as in the actor-noun form of the nautical ‘tack’,
> “to change the course of a sailing vessel by bringing the head into the wind
>[and then causing it to fall off on the other side]”
> or more simply, “to run obliquely against the wind”
> or, “to follow a zig-zag course”
>  — feels right for the kind of effort being undertaken. :)
>
> Besides, it also provides a pleasing phonetic symmetry with `#lang 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.
> To view this discussion on the web visit 
> [https://groups.google.com/d/msgid/racket-users/6f38ba64-2f84-4cc9-a571-a5e3ce721f68%40googlegroups.com](https://groups.google.com/d/msgid/racket-users/6f38ba64-2f84-4cc9-a571-a5e3ce721f68%40googlegroups.com?utm_medium=email_source=footer).

-- 
You received this message because you are subscribed to the Google 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/cV4wa9vHq6C8iezNIF-Uq4CrEkeSMVDZ-1gnbwj0DfHBHx_lIZxmHMxdrdJ8suUw9aJThVGzY5MGz5bxH3ealvsi2U44jtSYWkOOyIZDGtU%3D%40sagegerard.com.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 28, 2019 at 4:14:40 PM UTC-5, David Storrs wrote:

> On Wed, Aug 28, 2019 at 5:08 PM Daniel Prager  wrote:
>
>> I reckon *#lang retack* would at least make an apt working title. ;-)
>>
>
> Hang on, 'tack' means to change direction across the wind, so shouldn't 
> 'retack' mean to change direction and then change direction again such that 
> you're back to your original course?  I'm not sure how apropos that would 
> be in this case...  ;>
>

I concur with David!

 I think something more like `#lang tacker` 
— as in the actor-noun form of the nautical ‘tack’, 
“to change the course of a sailing vessel by bringing the head into the wind
   [and then causing it to fall off on the other side]” 
or more simply, “to run obliquely against the wind” 
or, “to follow a zig-zag course”
 — feels right for the kind of effort being undertaken. :)
 
Besides, it also provides a pleasing phonetic symmetry with `#lang 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/6f38ba64-2f84-4cc9-a571-a5e3ce721f68%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-28 Thread Alex Harsanyi


On Wednesday, August 28, 2019 at 11:45:10 PM UTC+8, Joel Dueck wrote:
>
> On Wednesday, August 28, 2019 at 12:10:56 AM UTC-5, Alex Harsanyi wrote:
>>
>> I am curious to know how you plan to comply with section 4.d of the LGPL, 
>> which states that the users of your application must be able to replace the 
>> LGPL "library" with a modified version of their own -- this means all the 
>> racket packages that you use in your application (even the ones shipped 
>> with Racket):
>>
>
> Excellent question. I don’t intend to comply with the LGPL.
>
>
I was really hoping that you actually had a solution to the problem I
mentioned...

The LGPL clarification on https://download.racket-lang.org/license.html 
states
that we need to be able to re-link the software with modified versions of
Racket.  I am not sure how to achieve that, so here are my technical
questions, directed to anyone on this list who can answer them:

0) To simplify things, the same Racket version and OS can be used for both
   "raco make" to produce the bytecode files as well as the "raco exe" part 
to
   "link" the executable.

1) Given a set of ZO files compiled using "raco make", is it possible to
   create an executable from these ZO files using "raco exe", or a call to
   `create-embedded-executable`, without having access to the source files
   themselves?  If it is possible, how?

2) Is it possible to distribute a Racket package as ZO files only and 
actually
   be able to use it from Racket? If it is possible, how?

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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/44d6a1fc-677f-4a8b-a584-92c3bf12ab32%40googlegroups.com.


[racket-users] Different behaviors between Racket 7.4 and its CS variant

2019-08-28 Thread Shaobo He
Hello everyone,

I observed the discrepancy between the outputs of Racket 7.4 and its CS 
variant on a function that uses the random number generator. Please see the 
following two screenshots. Is the behavior expected?

Thanks,
Shaobo

[image: Capture1.PNG] 

[image: Capture2.PNG]



-- 
You received this message because you are subscribed to the Google 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/248f6aa5-2099-4bcb-bba8-a3aa732141f9%40googlegroups.com.


[racket-users] New version of file-watchers

2019-08-28 Thread Sage Gerard
Version 0.2 of the file monitoring package file-watchers is about to drop. 
Here's a PR for public review. There are no contributors, so I plan to merge in 
48 hours if there is no feedback. Otherwise I'll play it by ear. 
https://github.com/zyrolasting/file-watchers/pull/4

The new release upgrades the CLI and the public API. Highlights:

- The CLI provides cleaner feedback on what ends the process.
- All file monitoring approaches can now target individual files as well as 
directories. Earlier only directories could be specified, which make it hard to 
ignore files.
- (watch-directories) is deprecated in favor of (watch), which supports files 
and directories. The former will be removed after Jan 1st 2020.

~slg

-- 
You received this message because you are subscribed to the Google 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/GDZKfX5RNbeKTSVXJg7DaBOp9MqBqz84s_-fuZ8reIHqUr1ewKclTSq7VDq8kYq17Bc466KH85pRVh6QD_r6T1C8MDRdWqFfYS_-Jfby9wQ%3D%40sagegerard.com.


Re: [racket-users] Quadruple-precision floating-point support?

2019-08-28 Thread George Neuner

Hi,

On 8/28/2019 11:49 AM, Shaobo He wrote:
Let me describe my use case first so that it's easier to clarify why 
bigfloat or double-double don't work for me. The program I've been 
working on requires emulation of arbitrary-precision *IEEE 754* 
floating-point arithmetic (the maximum precision is double, for now) 
and easy/efficient access to the bit representations of floating-point 
values. Therefore, bigfloat is generally too slow just for my use case 
since I don't need so much precision and it doesn't provide functions 
to access the bit representations. Double-double is good enough to 
emulate the floating-point arithmetic but I think it's also not 
trivial to access the bit representations of the floating-point 
formats I want to emulate.


MPFR does have optimizations for power of 2 mantissa lengths, but it's 
easy to see that a dedicated IEEE quad emulation (that most likely uses 
CPU SIMD ops) might be faster.



Low level bit access from Racket will not be trivial in any case: Racket 
can extract and set bit fields only within exact integers, and integers 
larger than platform fixnums will be in GMP bigint format (an array of 
longs representing base 10**9 values).


Contiguous foreign data buffers can be made visible to Racket as byte 
strings and manipulated that way, but it can be tricky to work with 
fields larger that span multiple bytes, and slow to work with fields 
that are larger than platform fixnums.



Quad-precision format fits my purpose nicely because it's sufficiently 
precise to emulate all the floating-point formats I'm interested in 
and obtaining the bit representations of these formats based on the 
bit representations of quad-precision numbers is easy.


More important is how closely you really want to emulate IEEE 
functionality.  I don't see anywhere that IEEE-754/854 conformance is 
documented for libquadmath.   There are numerous high and/or arbitrary 
precision math libraries, but many use their own ad hoc format 
internally rather than IEEE interchange formats, and they don't 
faithfully implement IEEE bitwise underflow.  Many also don't implement 
all the possible IEEE-754 rounding modes ... what constitutes "correct" 
rounding behavior depends on the problem, and in any case is a matter of 
opinion.


Most people don't think about (or really care much) about IEEE 
conformance, but if you are aiming to produce bitwise accurate results 
... albeit with arbitrary precision ... then maybe you do need to worry 
about these things.


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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/ea09776e-7d49-de88-4012-532162d73cf0%40comcast.net.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread David Storrs
On Wed, Aug 28, 2019 at 5:08 PM Daniel Prager 
wrote:

> Changing the canonical syntax seems like a bigger jump than from PLT
> Scheme to Racket.
>
> Perhaps a name change would help.
>
> I looked up English language anagrams of racket and found two: retack and
> tacker.
>
> *retack** [Nautical] To tack or alter course by sailing into the wind for
> a second or further time.*
>
> I reckon *#lang retack* would at least make an apt working title. ;-)
>
> Dan
>

Hang on, 'tack' means to change direction across the wind, so shouldn't
'retack' mean to change direction and then change direction again such that
you're back to your original course?  I'm not sure how apropos that would
be in this case...  ;>

-- 
> You received this message because you are subscribed to the Google 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/CAFKxZVWqnHfxPGaOb8DHu5wia9SvsQ1SAOtfaQsm8vmsiicz7Q%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/CAE8gKoevEU9W4GVMx_xfPniG0rMrstw8HOsM%3Dq%2BPfL6TE5Wy1g%40mail.gmail.com.


[racket-users] Would it help to call racket2 something else?

2019-08-28 Thread Daniel Prager
Changing the canonical syntax seems like a bigger jump than from PLT Scheme
to Racket.

Perhaps a name change would help.

I looked up English language anagrams of racket and found two: retack and
tacker.

*retack** [Nautical] To tack or alter course by sailing into the wind for a
second or further time.*

I reckon *#lang retack* would at least make an apt working title. ;-)

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


Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Robby Findler
On Wed, Aug 28, 2019 at 1:44 PM Breck Yunits  wrote:
>
> > I'm not sure this was clear, but I think the clear goal for backwards 
> > compatibility is that code that used to run continues to run indefinitely. 
> > With no changes. That's certainly what the Racket core developers mean by 
> > "backwards compatible".  In other words "requiring porting" is the opposite 
> > of "backwards compatible", at least in my mind.
>
> I get this, but I think it's a strategic mistake. I think the goal should be 
> to move people forward to the new versions (whenever they come out) as 
> quickly as possible (think Apple and the rapid adoption of new iOS versions, 
> compared to Microsoft). NEVER break people's stuff, but make it dead simple 
> for them to upgrade to the new stuff, by changing their code for them. I 
> think the success of Apple has proved this is the better long-term strategy.
>
> If Racket's truly a Language Oriented Programming language, than parsing it 
> and upgrading it should be dead simple. Otherwise, why would I want to use a 
> language that's difficult to upgrade?

I'm not sure I agree with this position, at least in the strong sense
it is written here.

In my opinion, it is essential that a good programming environment (by
that I mean the language, libraries, community, IDE, the whole ball of
wax) should support what the programmer needs -- that's the primary
goal. Things like making people move forward to new versions are good
for the developers of the language (eg, less to maintain etc) but a
programmer has needs that are often driven by their bottom line and if
the programming language/environment gets in the way of that decision,
programmers will stop using it ... in the worst case as they run out
of income because they're busy satisfying things other than their
bottom line.

Of course, it is good to make it easy to move to new versions of the
language, but if there is no real benefit to the transition for the
programmer (eg they aren't planning to touch that code for the next N
months anyway as it does its job well) then I think we should let them
leave it alone and come to it when they need to.

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/CAL3TdOMR%3D4kHDxUkwPyJc%2BeXWrg08DPfQz%2BAYLsh%3DwNTVxz9JQ%40mail.gmail.com.


Re: [racket-users] I'd like clarification about scribble and pollen.

2019-08-28 Thread Jens Axel Søgaard
Den ons. 28. aug. 2019 kl. 20.45 skrev Hendrik Boom :

>
> There is even a documented trick that enables a user to
> discover the s-expression resulting from a particular @-expression.
> But this trick does not show the s-expression resulting from an entire
> #lang scribble file.  Is there a way to see that?  Or have I got the wrong
> idea entirely?
>

Open your file in DrRacket. Click run. Now in the repl, evaluate  doc.

/Jens Axel

-- 
You received this message because you are subscribed to the Google 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/CABefVgwQk-Z3%3DtHEGY2WSbP2-8B3GCKP70ZULZ1J618pAWZyNg%40mail.gmail.com.


[racket-users] I'd like clarification about scribble and pollen.

2019-08-28 Thread Hendrik Boom
There are a few things not clear to me about scribble.

Scribble programs start with a line

#lang scribble

This invokes a different language from the regular Racket, with its own 
syntax and a suite of new standard functions.

Most of the input text seems to be translated to a list of strings,
and @ signs initiate special processing, resulting in a Racket 
S-expression.

There is even a documented trick that enables a user to 
discover the s-expression resulting from a particular @-expression.
But this trick does not show the s-expression resulting from an entire
#lang scribble file.  Is there a way to see that?  Or have I got the wrong 
idea entirely?

I have the impression that the s-expressions resulting from @-expresssions 
are evaluated immediately and that the resulting values are spliced into the 
long list of strings.  Is this correct?  I'd be interested in being able to 
see those s-expressions both before and after evaluation.

I read somewhere that there is information about spacing and indentation 
attached to the converted input.  At what point in the process is this 
available, and how can it be accessed?  Is it available to the function 
called by an @-command?  Can one also access source code position 
information to use in error messages?



Now about pollen.

Pollen seems to share ahte same @-notation as scribble, but lacks the 
extensive library of functions and other processing that defines the 
translations to HTML or LaTeX, to that the user gets to put this together 
himself but gains the ability to produce anything he wants instead of these 
output file formats.

Is this a fair summary?

-- hendrik

-- 
You received this message because you are subscribed to the Google 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/20190828184519.5b3s2uh3c7esthfw%40topoi.pooq.com.


Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Breck Yunits
> I'm not sure this was clear, but I think the clear goal for backwards
compatibility is that code that used to run continues to run indefinitely.
With no changes. That's certainly what the Racket core developers mean by
"backwards compatible".  In other words "requiring porting" is the opposite
of "backwards compatible", at least in my mind.

I get this, but I think it's a strategic mistake. I think the goal should
be to move people forward to the new versions (whenever they come out) as
quickly as possible (think Apple and the rapid adoption of new iOS
versions, compared to Microsoft). NEVER break people's stuff, but make it
dead simple for them to upgrade to the new stuff, by changing their code
for them. I think the success of Apple has proved this is the better
long-term strategy.

If Racket's truly a Language Oriented Programming language, than parsing it
and upgrading it should be dead simple. Otherwise, why would I want to use
a language that's difficult to upgrade?







On Wed, Aug 28, 2019 at 8:08 AM Hendrik Boom  wrote:

> On Wed, Aug 28, 2019 at 06:33:02AM -1000, Breck Yunits wrote:
> > I'd recommend investing work to make the problem of porting Racket1 code
> to
> > RacketN painless. Hopefully as simple as one method call.
>
> We already have such a mechanism.
>
> The Racket 1 code is prepended with
>
> #lang racket
>
> whereaas the Racket 2 code is prepended with
>
> #lang racket2
>
> and everything is interoperable.
>
> Simple enough?
>
> -- hendrik
>
> --
> You received this message because you are subscribed to the Google 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/20190828180751.ynkjzz2w3icf5vdw%40topoi.pooq.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/CAOgHByus7f3%3D7XN7y9yadj2uPaKMFnkss3ps01BmsEmN8OZbsg%40mail.gmail.com.


Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Neil Van Dyke




and everything is interoperable.


That it will be interoperable is something that must be committed to, 
unambiguously -- it is not something #lang implementors get for free.


(Based-on-a-true-story example of bad interoperability... Your Racket 
module naturally uses lists, the Racket language is then changed to make 
lists immutable (and let's say it gets a new #lang for that), your old 
module #lang still works, but now you can only use new modules in the 
new #lang with difficulty and bug-prone-ness, and then an old 
third-party package you use is moved to the new #lang, so you are stuck 
on an old version of that or have to modify your code, or give up and 
rework all your code in the new #lang. There are ways that could've been 
avoided, but it didn't come for free, and didn't happen.)


--
You received this message because you are subscribed to the Google 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/1fabc200-3815-63f6-0e32-c44991bb48f3%40neilvandyke.org.


Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Hendrik Boom
On Wed, Aug 28, 2019 at 06:33:02AM -1000, Breck Yunits wrote:
> I'd recommend investing work to make the problem of porting Racket1 code to
> RacketN painless. Hopefully as simple as one method call.

We already have such a mechanism.

The Racket 1 code is prepended with

#lang racket

whereaas the Racket 2 code is prepended with

#lang racket2

and everything is interoperable.

Simple enough?

-- hendrik

-- 
You received this message because you are subscribed to the Google 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/20190828180751.ynkjzz2w3icf5vdw%40topoi.pooq.com.


Re: [racket-users] Re: Gracket format

2019-08-28 Thread Sam Tobin-Hochstadt
The "Collapse S-expression" action is what leads to this result -- the
collapsed state is saved in the file using the wxme gracket format.

Sam

On Wed, Aug 28, 2019 at 1:29 PM Mark Bestley  wrote:
>
> Kieron Hardy  writes:
>
> > Hi Mark,
> >
> > How are you starting your program?
> >
>
> Not started it yet. Just using DrRacket and text editor for this issue.
>
> > Are you launching Racket from a command line or launching by e.g. 
> > double-clicking an icon in the Windows window manager?
> >
> Running DrRacket from the GUI. ie the equivalent of open DrRacket.app
>
> > What version of Windows?
> >
>
> MacOS 10.14.6 :)
>
> > Cheers,
> >
> > Kieron
> >
> >> On Aug 28, 2019, at 5:44 AM, Mark Bestley  wrote:
> >>
> >> I am just learning racket using the real of Racket book.
> >>
> >> However I am have problems wil file formats.
> >> My .rkt file has become gracket format but I have no images or any
> >> non ascii/unicode text in it. This messes up version control and use
> >> of other editors.
> >>
> >> How can I force DrRacket not to corrupt the text file? and only change if 
> >> I add images?
> >>
> >> The only odd thing I think I have done that might matter is Collapse 
> >> S-expression.
> >>
> >>
>  --
>  Mark
>
> --
> You received this message because you are subscribed to the Google 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/m1d0gpnqpp.fsf%40bestley.co.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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAK%3DHD%2BYW8MYOVVr4P4R18BHHU7i5nbROTVeOS2E3%2BrvFD2SRAA%40mail.gmail.com.


Re: [racket-users] Re: Gracket format

2019-08-28 Thread Kieron Hardy


> 
>> What version of Windows?
>> 
> 
> MacOS 10.14.6 :)

Mac, huh? I didn’t know Gracket was needed there. Sorry, I’m no help.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/E01A615A-DCF8-49E5-B155-42BADB80200E%40gmail.com.


[racket-users] Re: Gracket format

2019-08-28 Thread Mark Bestley
Kieron Hardy  writes:

> Hi Mark,
>
> How are you starting your program? 
>

Not started it yet. Just using DrRacket and text editor for this issue.

> Are you launching Racket from a command line or launching by e.g. 
> double-clicking an icon in the Windows window manager? 
>
Running DrRacket from the GUI. ie the equivalent of open DrRacket.app

> What version of Windows?
>

MacOS 10.14.6 :)

> Cheers,
>
> Kieron
>
>> On Aug 28, 2019, at 5:44 AM, Mark Bestley  wrote:
>> 
>> I am just learning racket using the real of Racket book.
>> 
>> However I am have problems wil file formats.
>> My .rkt file has become gracket format but I have no images or any
>> non ascii/unicode text in it. This messes up version control and use
>> of other editors.
>> 
>> How can I force DrRacket not to corrupt the text file? and only change if I 
>> add images?
>> 
>> The only odd thing I think I have done that might matter is Collapse 
>> S-expression.
>> 
>> 
 --
 Mark

-- 
You received this message because you are subscribed to the Google 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/m1d0gpnqpp.fsf%40bestley.co.uk.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-28 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 28, 2019 at 11:54:42 AM UTC-5, Neil Van Dyke wrote:
>
> If someone violates (their non-lawyer interpretation of) the Racket 
> license, in a conspicuous manner like you suggest, would they not expect 
> the SFC to send them a nastygram -- perhaps if only for the SFC to show 
> that they defend the copyright, if not for other reasons? 
>
> Racket core doesn't necessarily even have to be in the loop: 
>
> https://www.itworld.com/article/2732025/gpl-enforcement-sparks-community-flames.html
>  
>


Here’s Karen Sandler, Executive Director of the SFC, responding to Matthew 
Butterick on racket-dev last year[1]:

Apparently, much of the SFC's advocacy and energy goes into GPL / 
>> copyleft issues. But last I checked, Racket is migrating away from GPL 
>> / copyleft. [3] What is the SFC's position on the MIT license? Do 
>> member projects that are not GPL / copyleft have the same standing 
>>  within SFC? 
>>
>
> Conservancy is license agnostic as an organization. We have many 
> projects that are non-copyleft, and they are just as important to us. 
>
> *We only undertake copyleft enforcement for our member projects that ask 
> us to do it.* The vast majority of our work is not related to copyleft at 
> all - it's sending developers to conferences, hiring contractors to work 
> on free software, helping to run conferences and helping with various 
> random things that projects need. 
>

This seems consistent with the twisty maze of events described in the 
article you linked to. I suppose that, taken together, this means that any 
single contributor/copyright holder might be able to have SFC sick their 
lawyers on me.

There’s also, as Matthew Butterick mentioned earlier [2], the open question 
of whether the SFC itself now has ownership of Racket’s trademark and 
copyrights.

[1]: https://groups.google.com/d/msg/racket-dev/QeYN6uZBWBc/TgWA8sx0BAAJ
[2]: https://groups.google.com/d/msg/racket-users/qyBcm77-hCE/nEY_spNYDwAJ

-- 
You received this message because you are subscribed to the Google 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/b18322c1-6c50-4849-b73a-91c53132537c%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-28 Thread Alexis King
> On Aug 28, 2019, at 11:54, Neil Van Dyke  wrote:
> 
> If someone violates (their non-lawyer interpretation of) the Racket license, 
> in a conspicuous manner like you suggest, would they not expect the SFC to 
> send them a nastygram -- perhaps if only for the SFC to show that they defend 
> the copyright, if not for other reasons?

You don’t have any risk of losing a copyright just because you don’t choose to 
enforce it; you’re thinking of trademark law. If a copyright holder chooses not 
to pursue legal action against a violator, they may do so, and it does not in 
any way prevent them pursuing action against them or someone else in the future.

That said, your following sentence is absolutely right: it doesn’t matter if 
the Racket core team chooses not to enforce their copyright if they are not the 
exclusive copyright holders, and as I have already opined, I believe they are 
not. Any copyright holder may pursue legal action against violations of their 
copyright if they so choose, whether they are members of the Racket core team, 
the SFC, or independent Racket contributors.

On the other hand, if I were Joel, I probably wouldn’t be losing sleep over the 
potentiality of a Racket contributor taking me to court over my infringement. 
As I said previously, I don’t know how much Racket code is still exclusively 
licensed under the LGPL, but I’d bet the large majority is now licensed under 
the MIT and Apache licenses as well. Unless Joel starts making millions off his 
project and some contributors come out of the woodwork to try and get a piece 
of that action, I doubt his assessment is incorrect… and if that happens, well, 
he can probably afford to pay them enough to negotiate a license with them.

Still, a calculated risk is still a risk. YMMV, IANAL, and obviously this is 
not qualified legal advice.

-- 
You received this message because you are subscribed to the Google 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/74B3531F-9A18-4F01-9A30-B5F5DB627EF8%40gmail.com.


Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread David Storrs
Thanks, Jay.  I've responded to the RFC.

On Wed, Aug 28, 2019 at 12:28 PM Jay McCarthy 
wrote:

> My thoughts are in the thread you linked to:
>
> https://github.com/racket/racket2-rfcs/issues/105#issuecomment-521446706
> """
> I see Racket2 through the rubric of "We almost never break backwards
> compatible and insist on gradual evolution as the only way to make
> progress; but, now we are willing to make some radical changes: What
> can we do to make Racket drastically better that can't be expressed as
> an evolution?" In other words, I feel like Racket2 is defined as the
> goal, "Whatever makes Racket a lot better" and the design constraint,
> "It's okay to be incompatible."
> """
>
> When it comes specifically to syntax, which is what you seem to be
> asking about by reading the quote, here's a quote from my attempts to
> write this up before:
>
>
> https://github.com/racket/racket2-rfcs/pull/109/files#diff-f609e36bab3cb71c8829f58a5f9b2455R16
> """
> The uniformity of S-expressions limits the amount of information at
> the notational level of reading Racket programs. A small amount of
> extra notation can go a long way with a small number of mores on its
> use. For example, in Racket brackets are used in S-expressions when no
> function or macro application is implied (like in the cases of a
> `cond`); reading Racket programs without this notational affordance is
> more difficult. On the other hand, it is awkward to embed arbitrary
> fragments of code not in S-expression format, such as when quoting a
> program in another language. The only effective option is to embed a
> string. The Racket @-reader is helpful at this, but it is not
> uniformly available and the standard structure of Racket's
> S-expression based languages do not allow macro-specific reading of
> such syntaxes.
> """
>
> I'll add that I see S-expressions as obviously limited and it would be
> nice to make a more powerful syntactic extension system that does not
> say, "You can have anything you want, provided it is a parenthesis."
>
> So for me, I don't see the syntax mission as having anything to do
> with students or getting people to like me, I see it as a way to go
> beyond the limitations of S-expressions and do something more powerful
> and interesting. I think people will like us more after in as much as
> I think people like awesome things, and I want to make something
> awesome.
>
> Jay
>
> --
> Jay McCarthy
> Associate Professor @ CS @ UMass Lowell
> http://jeapostrophe.github.io
> Vincit qui se vincit.
>
> On Wed, Aug 28, 2019 at 1:09 AM David Storrs 
> wrote:
> >
> > The discussion on Racket2 seems to have moved offlist to the RFC list on
> github (https://github.com/racket/racket2-rfcs/issues); are there other
> locations?
> >
> > There is one question that I had back at the beginning of the process
> that I didn't manage to get clarity on, which is the rationale behind the
> whole thing.  I've gone back through some of the email discussion and gone
> through all 4 pages of the issues lists and read everything that seemed
> relevant.  The most apropos thing seems to be this:
> https://github.com/racket/racket2-rfcs/issues/105 but it still doesn't
> really speak to my question.
> >
> > My current understanding is that the rationale for the Racket2 effort
> looks something like this:
> >
> > "We, the core developers, many (all?) of whom are also academics with a
> lot of experience teaching Racket to new programmers, have noticed that
> parentheses and prefix notation are a stumbling block for many students.
> We would like to help the ideas of Racket spread into the larger
> community.  Therefore, we want to produce Racket2, which will have all the
> power of Racket but will get rid of parens and use infix notation, which
> will be more familiar and intuitive to students.  We also see this as a
> great time to improve existing elements of the language based on what we've
> learned since they were added, and potentially add new features."
> >
> > Is this in fact correct?  Is there more specific discussion of it
> somewhere that I've missed?  I don't want to make people retread the issue
> if it's already clearly laid out elsewhere.
> >
> > --
> > You received this message because you are subscribed to the Google
> 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/CAE8gKodAh%2BdO3v8bx0bmPJYUhtDmVgX2KrxH8N3QwtG43aX%2BYg%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
> 

Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-28 Thread Neil Van Dyke

wrote on 8/28/19 11:45 AM:

Perhaps naively (IANAL), I am willing to be the guinea pig who [...]


I really would've expected the applied game theory civil disobedience / 
anarchism to kick in on a *different* Racket issue. :)


If someone violates (their non-lawyer interpretation of) the Racket 
license, in a conspicuous manner like you suggest, would they not expect 
the SFC to send them a nastygram -- perhaps if only for the SFC to show 
that they defend the copyright, if not for other reasons?


Racket core doesn't necessarily even have to be in the loop: 
https://www.itworld.com/article/2732025/gpl-enforcement-sparks-community-flames.html


That seems like it would be bad for Racket.

I look forward to a few different things getting straightened out in 
September, and then we all can look back, and blame The Racket Fugue on 
this summer's record heat, when no one knew what they were doing.


--
You received this message because you are subscribed to the Google 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/ddf1801f-a8fb-450a-3855-847b8c7540f8%40neilvandyke.org.


Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Jay McCarthy
Exactly. We don't change anything about Racket 1 in a way that makes
any adaption needed. That's why putting a new "#lang" at the top of
new programs is such a big deal, because we can have a new level to
have backwards compatibility with for the NEXT 25 years.

Jay

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

On Wed, Aug 28, 2019 at 12:36 PM Robby Findler
 wrote:
>
> I'm not sure this was clear, but I think the clear goal for backwards
> compatibility is that code that used to run continues to run
> indefinitely. With no changes. That's certainly what the Racket core
> developers mean by "backwards compatible".  In other words "requiring
> porting" is the opposite of "backwards compatible", at least in my
> mind.
>
> Robby
>
> On Wed, Aug 28, 2019 at 11:33 AM Breck Yunits  wrote:
> >
> > I'd recommend investing work to make the problem of porting Racket1 code to 
> > RacketN painless. Hopefully as simple as one method call.
> >
> > If translating Racket1 code to RacketX is made an easy problem, then you 
> > can do what is best for RacketX without worrying about how backwards 
> > compatibility.
> >
> > That would pay dividends in other areas as well, regardless of what 
> > direction Racket2 goes in.
> >
> >
> > On Wed, Aug 28, 2019 at 6:28 AM Jay McCarthy  wrote:
> >>
> >> My thoughts are in the thread you linked to:
> >>
> >> https://github.com/racket/racket2-rfcs/issues/105#issuecomment-521446706
> >> """
> >> I see Racket2 through the rubric of "We almost never break backwards
> >> compatible and insist on gradual evolution as the only way to make
> >> progress; but, now we are willing to make some radical changes: What
> >> can we do to make Racket drastically better that can't be expressed as
> >> an evolution?" In other words, I feel like Racket2 is defined as the
> >> goal, "Whatever makes Racket a lot better" and the design constraint,
> >> "It's okay to be incompatible."
> >> """
> >>
> >> When it comes specifically to syntax, which is what you seem to be
> >> asking about by reading the quote, here's a quote from my attempts to
> >> write this up before:
> >>
> >> https://github.com/racket/racket2-rfcs/pull/109/files#diff-f609e36bab3cb71c8829f58a5f9b2455R16
> >> """
> >> The uniformity of S-expressions limits the amount of information at
> >> the notational level of reading Racket programs. A small amount of
> >> extra notation can go a long way with a small number of mores on its
> >> use. For example, in Racket brackets are used in S-expressions when no
> >> function or macro application is implied (like in the cases of a
> >> `cond`); reading Racket programs without this notational affordance is
> >> more difficult. On the other hand, it is awkward to embed arbitrary
> >> fragments of code not in S-expression format, such as when quoting a
> >> program in another language. The only effective option is to embed a
> >> string. The Racket @-reader is helpful at this, but it is not
> >> uniformly available and the standard structure of Racket's
> >> S-expression based languages do not allow macro-specific reading of
> >> such syntaxes.
> >> """
> >>
> >> I'll add that I see S-expressions as obviously limited and it would be
> >> nice to make a more powerful syntactic extension system that does not
> >> say, "You can have anything you want, provided it is a parenthesis."
> >>
> >> So for me, I don't see the syntax mission as having anything to do
> >> with students or getting people to like me, I see it as a way to go
> >> beyond the limitations of S-expressions and do something more powerful
> >> and interesting. I think people will like us more after in as much as
> >> I think people like awesome things, and I want to make something
> >> awesome.
> >>
> >> Jay
> >>
> >> --
> >> Jay McCarthy
> >> Associate Professor @ CS @ UMass Lowell
> >> http://jeapostrophe.github.io
> >> Vincit qui se vincit.
> >>
> >> On Wed, Aug 28, 2019 at 1:09 AM David Storrs  
> >> wrote:
> >> >
> >> > The discussion on Racket2 seems to have moved offlist to the RFC list on 
> >> > github (https://github.com/racket/racket2-rfcs/issues); are there other 
> >> > locations?
> >> >
> >> > There is one question that I had back at the beginning of the process 
> >> > that I didn't manage to get clarity on, which is the rationale behind 
> >> > the whole thing.  I've gone back through some of the email discussion 
> >> > and gone through all 4 pages of the issues lists and read everything 
> >> > that seemed relevant.  The most apropos thing seems to be this:  
> >> > https://github.com/racket/racket2-rfcs/issues/105 but it still doesn't 
> >> > really speak to my question.
> >> >
> >> > My current understanding is that the rationale for the Racket2 effort 
> >> > looks something like this:
> >> >
> >> > "We, the core developers, many (all?) of whom are also academics with a 
> >> > lot of experience teaching Racket to new programmers, have noticed that 
> >> > 

Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Robby Findler
I'm not sure this was clear, but I think the clear goal for backwards
compatibility is that code that used to run continues to run
indefinitely. With no changes. That's certainly what the Racket core
developers mean by "backwards compatible".  In other words "requiring
porting" is the opposite of "backwards compatible", at least in my
mind.

Robby

On Wed, Aug 28, 2019 at 11:33 AM Breck Yunits  wrote:
>
> I'd recommend investing work to make the problem of porting Racket1 code to 
> RacketN painless. Hopefully as simple as one method call.
>
> If translating Racket1 code to RacketX is made an easy problem, then you can 
> do what is best for RacketX without worrying about how backwards 
> compatibility.
>
> That would pay dividends in other areas as well, regardless of what direction 
> Racket2 goes in.
>
>
> On Wed, Aug 28, 2019 at 6:28 AM Jay McCarthy  wrote:
>>
>> My thoughts are in the thread you linked to:
>>
>> https://github.com/racket/racket2-rfcs/issues/105#issuecomment-521446706
>> """
>> I see Racket2 through the rubric of "We almost never break backwards
>> compatible and insist on gradual evolution as the only way to make
>> progress; but, now we are willing to make some radical changes: What
>> can we do to make Racket drastically better that can't be expressed as
>> an evolution?" In other words, I feel like Racket2 is defined as the
>> goal, "Whatever makes Racket a lot better" and the design constraint,
>> "It's okay to be incompatible."
>> """
>>
>> When it comes specifically to syntax, which is what you seem to be
>> asking about by reading the quote, here's a quote from my attempts to
>> write this up before:
>>
>> https://github.com/racket/racket2-rfcs/pull/109/files#diff-f609e36bab3cb71c8829f58a5f9b2455R16
>> """
>> The uniformity of S-expressions limits the amount of information at
>> the notational level of reading Racket programs. A small amount of
>> extra notation can go a long way with a small number of mores on its
>> use. For example, in Racket brackets are used in S-expressions when no
>> function or macro application is implied (like in the cases of a
>> `cond`); reading Racket programs without this notational affordance is
>> more difficult. On the other hand, it is awkward to embed arbitrary
>> fragments of code not in S-expression format, such as when quoting a
>> program in another language. The only effective option is to embed a
>> string. The Racket @-reader is helpful at this, but it is not
>> uniformly available and the standard structure of Racket's
>> S-expression based languages do not allow macro-specific reading of
>> such syntaxes.
>> """
>>
>> I'll add that I see S-expressions as obviously limited and it would be
>> nice to make a more powerful syntactic extension system that does not
>> say, "You can have anything you want, provided it is a parenthesis."
>>
>> So for me, I don't see the syntax mission as having anything to do
>> with students or getting people to like me, I see it as a way to go
>> beyond the limitations of S-expressions and do something more powerful
>> and interesting. I think people will like us more after in as much as
>> I think people like awesome things, and I want to make something
>> awesome.
>>
>> Jay
>>
>> --
>> Jay McCarthy
>> Associate Professor @ CS @ UMass Lowell
>> http://jeapostrophe.github.io
>> Vincit qui se vincit.
>>
>> On Wed, Aug 28, 2019 at 1:09 AM David Storrs  wrote:
>> >
>> > The discussion on Racket2 seems to have moved offlist to the RFC list on 
>> > github (https://github.com/racket/racket2-rfcs/issues); are there other 
>> > locations?
>> >
>> > There is one question that I had back at the beginning of the process that 
>> > I didn't manage to get clarity on, which is the rationale behind the whole 
>> > thing.  I've gone back through some of the email discussion and gone 
>> > through all 4 pages of the issues lists and read everything that seemed 
>> > relevant.  The most apropos thing seems to be this:  
>> > https://github.com/racket/racket2-rfcs/issues/105 but it still doesn't 
>> > really speak to my question.
>> >
>> > My current understanding is that the rationale for the Racket2 effort 
>> > looks something like this:
>> >
>> > "We, the core developers, many (all?) of whom are also academics with a 
>> > lot of experience teaching Racket to new programmers, have noticed that 
>> > parentheses and prefix notation are a stumbling block for many students.  
>> > We would like to help the ideas of Racket spread into the larger 
>> > community.  Therefore, we want to produce Racket2, which will have all the 
>> > power of Racket but will get rid of parens and use infix notation, which 
>> > will be more familiar and intuitive to students.  We also see this as a 
>> > great time to improve existing elements of the language based on what 
>> > we've learned since they were added, and potentially add new features."
>> >
>> > Is this in fact correct?  Is there more specific discussion of it 
>> > somewhere 

Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Breck Yunits
I'd recommend investing work to make the problem of porting Racket1 code to
RacketN painless. Hopefully as simple as one method call.

If translating Racket1 code to RacketX is made an easy problem, then you
can do what is best for RacketX without worrying about how backwards
compatibility.

That would pay dividends in other areas as well, regardless of what
direction Racket2 goes in.


On Wed, Aug 28, 2019 at 6:28 AM Jay McCarthy  wrote:

> My thoughts are in the thread you linked to:
>
> https://github.com/racket/racket2-rfcs/issues/105#issuecomment-521446706
> """
> I see Racket2 through the rubric of "We almost never break backwards
> compatible and insist on gradual evolution as the only way to make
> progress; but, now we are willing to make some radical changes: What
> can we do to make Racket drastically better that can't be expressed as
> an evolution?" In other words, I feel like Racket2 is defined as the
> goal, "Whatever makes Racket a lot better" and the design constraint,
> "It's okay to be incompatible."
> """
>
> When it comes specifically to syntax, which is what you seem to be
> asking about by reading the quote, here's a quote from my attempts to
> write this up before:
>
>
> https://github.com/racket/racket2-rfcs/pull/109/files#diff-f609e36bab3cb71c8829f58a5f9b2455R16
> """
> The uniformity of S-expressions limits the amount of information at
> the notational level of reading Racket programs. A small amount of
> extra notation can go a long way with a small number of mores on its
> use. For example, in Racket brackets are used in S-expressions when no
> function or macro application is implied (like in the cases of a
> `cond`); reading Racket programs without this notational affordance is
> more difficult. On the other hand, it is awkward to embed arbitrary
> fragments of code not in S-expression format, such as when quoting a
> program in another language. The only effective option is to embed a
> string. The Racket @-reader is helpful at this, but it is not
> uniformly available and the standard structure of Racket's
> S-expression based languages do not allow macro-specific reading of
> such syntaxes.
> """
>
> I'll add that I see S-expressions as obviously limited and it would be
> nice to make a more powerful syntactic extension system that does not
> say, "You can have anything you want, provided it is a parenthesis."
>
> So for me, I don't see the syntax mission as having anything to do
> with students or getting people to like me, I see it as a way to go
> beyond the limitations of S-expressions and do something more powerful
> and interesting. I think people will like us more after in as much as
> I think people like awesome things, and I want to make something
> awesome.
>
> Jay
>
> --
> Jay McCarthy
> Associate Professor @ CS @ UMass Lowell
> http://jeapostrophe.github.io
> Vincit qui se vincit.
>
> On Wed, Aug 28, 2019 at 1:09 AM David Storrs 
> wrote:
> >
> > The discussion on Racket2 seems to have moved offlist to the RFC list on
> github (https://github.com/racket/racket2-rfcs/issues); are there other
> locations?
> >
> > There is one question that I had back at the beginning of the process
> that I didn't manage to get clarity on, which is the rationale behind the
> whole thing.  I've gone back through some of the email discussion and gone
> through all 4 pages of the issues lists and read everything that seemed
> relevant.  The most apropos thing seems to be this:
> https://github.com/racket/racket2-rfcs/issues/105 but it still doesn't
> really speak to my question.
> >
> > My current understanding is that the rationale for the Racket2 effort
> looks something like this:
> >
> > "We, the core developers, many (all?) of whom are also academics with a
> lot of experience teaching Racket to new programmers, have noticed that
> parentheses and prefix notation are a stumbling block for many students.
> We would like to help the ideas of Racket spread into the larger
> community.  Therefore, we want to produce Racket2, which will have all the
> power of Racket but will get rid of parens and use infix notation, which
> will be more familiar and intuitive to students.  We also see this as a
> great time to improve existing elements of the language based on what we've
> learned since they were added, and potentially add new features."
> >
> > Is this in fact correct?  Is there more specific discussion of it
> somewhere that I've missed?  I don't want to make people retread the issue
> if it's already clearly laid out elsewhere.
> >
> > --
> > You received this message because you are subscribed to the Google
> 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/CAE8gKodAh%2BdO3v8bx0bmPJYUhtDmVgX2KrxH8N3QwtG43aX%2BYg%40mail.gmail.com
> .
>
> --
> You received this message because 

Re: [racket-users] Is there an expanded form of the Racket2 purpose declaration?

2019-08-28 Thread Jay McCarthy
My thoughts are in the thread you linked to:

https://github.com/racket/racket2-rfcs/issues/105#issuecomment-521446706
"""
I see Racket2 through the rubric of "We almost never break backwards
compatible and insist on gradual evolution as the only way to make
progress; but, now we are willing to make some radical changes: What
can we do to make Racket drastically better that can't be expressed as
an evolution?" In other words, I feel like Racket2 is defined as the
goal, "Whatever makes Racket a lot better" and the design constraint,
"It's okay to be incompatible."
"""

When it comes specifically to syntax, which is what you seem to be
asking about by reading the quote, here's a quote from my attempts to
write this up before:

https://github.com/racket/racket2-rfcs/pull/109/files#diff-f609e36bab3cb71c8829f58a5f9b2455R16
"""
The uniformity of S-expressions limits the amount of information at
the notational level of reading Racket programs. A small amount of
extra notation can go a long way with a small number of mores on its
use. For example, in Racket brackets are used in S-expressions when no
function or macro application is implied (like in the cases of a
`cond`); reading Racket programs without this notational affordance is
more difficult. On the other hand, it is awkward to embed arbitrary
fragments of code not in S-expression format, such as when quoting a
program in another language. The only effective option is to embed a
string. The Racket @-reader is helpful at this, but it is not
uniformly available and the standard structure of Racket's
S-expression based languages do not allow macro-specific reading of
such syntaxes.
"""

I'll add that I see S-expressions as obviously limited and it would be
nice to make a more powerful syntactic extension system that does not
say, "You can have anything you want, provided it is a parenthesis."

So for me, I don't see the syntax mission as having anything to do
with students or getting people to like me, I see it as a way to go
beyond the limitations of S-expressions and do something more powerful
and interesting. I think people will like us more after in as much as
I think people like awesome things, and I want to make something
awesome.

Jay

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

On Wed, Aug 28, 2019 at 1:09 AM David Storrs  wrote:
>
> The discussion on Racket2 seems to have moved offlist to the RFC list on 
> github (https://github.com/racket/racket2-rfcs/issues); are there other 
> locations?
>
> There is one question that I had back at the beginning of the process that I 
> didn't manage to get clarity on, which is the rationale behind the whole 
> thing.  I've gone back through some of the email discussion and gone through 
> all 4 pages of the issues lists and read everything that seemed relevant.  
> The most apropos thing seems to be this:  
> https://github.com/racket/racket2-rfcs/issues/105 but it still doesn't really 
> speak to my question.
>
> My current understanding is that the rationale for the Racket2 effort looks 
> something like this:
>
> "We, the core developers, many (all?) of whom are also academics with a lot 
> of experience teaching Racket to new programmers, have noticed that 
> parentheses and prefix notation are a stumbling block for many students.  We 
> would like to help the ideas of Racket spread into the larger community.  
> Therefore, we want to produce Racket2, which will have all the power of 
> Racket but will get rid of parens and use infix notation, which will be more 
> familiar and intuitive to students.  We also see this as a great time to 
> improve existing elements of the language based on what we've learned since 
> they were added, and potentially add new features."
>
> Is this in fact correct?  Is there more specific discussion of it somewhere 
> that I've missed?  I don't want to make people retread the issue if it's 
> already clearly laid out elsewhere.
>
> --
> You received this message because you are subscribed to the Google 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/CAE8gKodAh%2BdO3v8bx0bmPJYUhtDmVgX2KrxH8N3QwtG43aX%2BYg%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/CAJYbDan4dqov1uswGhpe_Q7Tmh%3DyO6zQ6FwyU7XY6fnqXPgdfg%40mail.gmail.com.


Re: [racket-users] (curry map string->number) in Typed Racket

2019-08-28 Thread Jon Zeppieri
On Wed, Aug 28, 2019 at 9:58 AM Štěpán Němec  wrote:
>
> On Wed, 28 Aug 2019 09:23:03 -0400
> Jon Zeppieri wrote:
>
> [...]
>
> >> Does that mean that for higher-order function parameters, inst expects
> >> only the return type signature, not that of the function itself?
> >
> > The main point here is that `inst` needs substitutions for the type
> > _variables_, not for the types of the function arguments.
>
> Oh, _now_ it makes sense! I see now that I really misunderstood even the
> example in the reference entry for `inst`: I took "(inst cons Integer
> Integer)" to mean "two Integer args" (which of course would only account
> for the (Pairof a b) case and doesn't make sense in the context) instead
> of "two Integer type variables".
>
> Thank you for the detailed explanation!


Glad to help. I don't know if you're familiar with System F, but if
you are, then you can think of `inst` as function application for
capital lambda (Λ) functions (functions that map types to terms). So,
a simplified version of map would look something like this (if Typed
Racket had explicit Λ functions):

(define map
  (Λ (c a)
(λ ([fn : (-> a c)]
 [lst: (Listof a)])
  ...)))

So, when you do `(inst map (U Complex False) String)`, you're applying
the outer Λ function, so that `c` and `a` get replaced in the body of
the function by `(U Complex False)` and `String`, respectively, and
you end up with:

(λ ([fn : (-> String (U Complex False))]
 [lst: (Listof String)])
  ...)

- Jon

-- 
You received this message because you are subscribed to the Google 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/CAKfDxxzCYi58qMh1%3DZDhk6_marB_5JD_10do9FHOnGcA5RerjQ%40mail.gmail.com.


Re: [racket-users] Quadruple-precision floating-point support?

2019-08-28 Thread Shaobo He
Hello George,

Let me describe my use case first so that it's easier to clarify why
bigfloat or double-double don't work for me. The program I've been working
on requires emulation of arbitrary-precision *IEEE 754* floating-point
arithmetic (the maximum precision is double, for now) and easy/efficient
access to the bit representations of floating-point values. Therefore,
bigfloat is generally too slow just for my use case since I don't need so
much precision and it doesn't provide functions to access the bit
representations. Double-double is good enough to emulate the floating-point
arithmetic but I think it's also not trivial to access the bit
representations of the floating-point formats I want to emulate.

Quad-precision format fits my purpose nicely because it's sufficiently
precise to emulate all the floating-point formats I'm interested in and
obtaining the bit representations of these formats based on the bit
representations of quad-precision numbers is easy.

Shaobo

George Neuner  于2019年8月25日周日 上午10:28写道:

>
> On 8/23/2019 8:39 PM, Shaobo He wrote:
> > Hello everyone,
> >
> > I'm in need of quad-precision floating-point type/operations in Racket
> > (the bigfloat module doesn't work for me). It appears there's none, am
> > I right?
>
> The only hardware I am aware of with IEEE compatible quad precision is
> POWER9  (Vaxen had quad precision, but not IEEE compatible).  So on most
> platforms any implementation necessarily will be software: either an
> emulation of quad or double-double.
>
> Just out of curiosity, may I ask why bigfloat doesn't work for your
> purpose?  I know the range will be different between a quad and a
> bigfloat having the same precision, but that seems like it ought to be
> relatively easy to work around.
>
> 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAMePyd_b_%2BHzk8hTRZ5SoJYnW1iAvL22Dh4tJ2438FsCzNYOVw%40mail.gmail.com.


Re: [racket-users] Gracket format

2019-08-28 Thread Kieron Hardy
Hi Mark,

How are you starting your program? 

Are you launching Racket from a command line or launching by e.g. 
double-clicking an icon in the Windows window manager? 

What version of Windows?

Cheers,

Kieron

> On Aug 28, 2019, at 5:44 AM, Mark Bestley  wrote:
> 
> I am just learning racket using the real of Racket book.
> 
> However I am have problems wil file formats.
> My .rkt file has become gracket format but I have no images or any non 
> ascii/unicode text in it. This messes up version control and use of other 
> editors.
> 
> How can I force DrRacket not to corrupt the text file? and only change if I 
> add images?
> 
> The only odd thing I think I have done that might matter is Collapse 
> S-expression.
> 
> 
> --
> Mark
> 
> 
> -- 
> You received this message because you are subscribed to the Google 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/m1h861o6ou.fsf%40bestley.co.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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/9E2FAA33-BF22-402B-B3FD-8E09E3461495%40gmail.com.


Re: [racket-users] Failed to load module in drracket

2019-08-28 Thread Stephen De Gabrielle
Hi
I’ve logged this as
https://github.com/racket/drracket/issues/302

It’s not well logged - simply a placeholder - but it does reference this
thread on gg should someone be interested.

S

On Wed, 28 Aug 2019 at 23:16, Robby Findler 
wrote:

> I think the best path forward probably involves changing DrRacket so
> that, on a case-by-case basis, people can opt-in to loading specific
> external libraries automatically. I've not yet tried to implement
> that, but if someone wants to, the right starting place is the code
> that currently disallows the access, which is here:
>
>
> https://github.com/racket/drracket/blob/5a71d4580d9799a88707eb269879da0635ae97ad/drracket/drracket/private/expanding-place.rkt#L512
>
> There would be changes required to identify that a shared library load
> was denied, convey that back to the main place where DrRacket runs,
> then add some way to offer people to allow it, which would then set a
> preference somehow and the other place could consult that preference
> to see what is allowed. Something like that.
>
> I like this idea and hope to get to it eventually, but I can't do it right
> now.
>
> Robby
>
>
> On Sat, Aug 24, 2019 at 10:12 PM Hong Yang  wrote:
> >
> > Hi Robby
> >
> > Thanks for your explain, is ther any way I can enforce to load the
> module? or let me know which code did this?
> >
> > Best reagrds
> > Walter
>
> --
> You received this message because you are subscribed to the Google 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/CAL3TdOOW7w8g7db6HjWh0yCBN5WaD5Js0Px7nW%2BUt28miswU5A%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/CAGHj7-J-6VNG8noxaGrecv1_mX5z9zB7fAEdK-WMmoxQF%2BxNLw%40mail.gmail.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-28 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 28, 2019 at 12:10:56 AM UTC-5, Alex Harsanyi wrote:
>
> I am curious to know how you plan to comply with section 4.d of the LGPL, 
> which states that the users of your application must be able to replace the 
> LGPL "library" with a modified version of their own -- this means all the 
> racket packages that you use in your application (even the ones shipped 
> with Racket):
>

Excellent question. I don’t intend to comply with the LGPL.

My reasoning is as follows:

We know that a couple of years ago, Racket’s caretakers took steps to try 
to change Racket from LGPL to MIT+Apache.
We know that effort has effectively stalled out, with no definite 
explanation given as to why (as far as I know).

So either 
  a) Racket's caretakers have changed their minds and no longer agree that 
the license should be changed, OR
  b) Racket's caretakers have been unable to get all of the original 
copyright-holding contributors to sign off on the change, because of an 
inability to get a response or because some contributors have refused, or 
because the caretakers themselves haven't had time to finish the process, OR
  c) The whole process has been placed on hold because of external factors 
(such as deference to SFC standards/timing), OR
  d) The process is on track but we haven't been told yet. (Perhaps it’s 
very nearly done, perhaps it's being worked on mostly by people who don’t 
know we’re having this discussion, etc.)

I have ruled out (a) since in that case we would expect them to say the 
change is off and put the matter to rest.

If (b) or (c) or (d) is the case, then it remains that *most* of Racket’s 
key contributors still believe in, and fully intend to effect, a switch to 
a more permissive license. Which in turn means that an enforcement action 
(against a developer doing something that would be allowed under those more 
permissive terms) is vanishingly unlikely. The worst case would be a (b) 
situation where some contributors are refusing; even in that case, unless 
the contributors are themselves lawyers, the practical threat of an action 
would (I think?) be small.

Perhaps naively (IANAL), I am willing to be the guinea pig who will put 
these assumptions to the test by violating the terms of Racket’s current 
license. I’ve decided to make the test more interesting by announcing my 
intent here. I will let you all know if I receive any lawyer letters after 
release day. Any such letters would flush out who the recalcitrant 
contributors are and help us identify which portions of Racket need to be 
rewritten to allow the license change to proceed.

-- 
You received this message because you are subscribed to the Google 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/f243943c-32ab-4fa7-877a-679444c95fe9%40googlegroups.com.


[racket-users] First call for draft papers for TFPIE 2020 (Trends in Functional Programming in Education)

2019-08-28 Thread Jurriaan Hage
Hello,

Please, find below the final call for draft papers for TFPIE 2020.
Please forward these to anyone you think may be interested.
Apologies for any duplicates you may receive.

best regards,
Jurriaan Hage
Chair of TFPIE 2020





TFPIE 2020 Call for papers


http://www.staff.science.uu.nl/~hage0101/tfpie2020/index.html

February 12th 2020, Krakow, Poland
(co-located with TFP 2020 and Lambda Days)

TFPIE 2020 welcomes submissions describing techniques used in the classroom,
tools used in and/or developed for the classroom and any creative use of
functional programming (FP) to aid education in or outside Computer Science.
Topics of interest include, but are not limited to:

  FP and beginning CS students
  FP and Computational Thinking
  FP and Artificial Intelligence
  FP in Robotics
  FP and Music
  Advanced FP for undergraduates
  FP in graduate education
  Engaging students in research using FP
  FP in Programming Languages
  FP in the high school curriculum
  FP as a stepping stone to other CS topics
  FP and Philosophy
  The pedagogy of teaching FP
  FP and e-learning: MOOCs, automated assessment etc.
  Best Lectures - more details below

In addition to papers, we are requesting best lecture presentations. What's
your
best lecture topic in an FP related course? Do you have a fun way to
present FP
concepts to novices or perhaps an especially interesting presentation of a
difficult topic? In either case, please consider sharing it. Best lecture
topics
will be selected for presentation based on a short abstract describing the
lecture and its interest to TFPIE attendees. The length of the presentation
should be comparable to that of a paper. On top of the lecture itself,
the presentation can also provide commentary on the lecture.

Submissions
Potential presenters are invited to submit an extended abstract (4-6 pages)
or a
draft paper (up to 20 pages) in EPTCS style. The authors of accepted
presentations will have their preprints and their slides made available on
the
workshop's website. Papers and abstracts can be submitted via easychair at
the
following link: https://easychair.org/conferences/?conf=tfpie2020 . After
the
workshop, presenters will be invited to submit (a revised version of) their
article for review. The PC will select the best articles that will be
published in the Electronic Proceedings in Theoretical Computer Science
(EPTCS).
Articles rejected for presentation and extended abstracts will not be
formally
reviewed by the PC.

Dates
  Submission deadline: January 14th 2020, Anywhere on Earth.
  Notification: January 17th 2020
  TFPIE Registration Deadline: January 20th 2020
  Workshop: February 12th 2020
  Submission for formal review: April 19th 2020, Anywhere on Earth.
  Notification of full article: June 6th 2020
  Camera ready: July 1st 2020

Program Committee
  Olaf Chitil - University of Kent
  Youyou Cong - Tokyo Institute of Technology
  Marko van Eekelen - Open University of the Netherlands and Radboud
University Nijmegen
  Jurriaan Hage (Chair) - Utrecht University
  Marco T. Morazan - Seton Hall University, USA
  Sharon Tuttle - Humboldt State University, USA
  Janis Voigtlaender - University of Duisburg-Essen
  Viktoria Zsok - Eotvos Lorand University

Note: information on TFP is available at
http://www.cse.chalmers.se/~rjmh/tfp/

-- 
You received this message because you are subscribed to the Google 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/CAKVFE6W%3DjAsZKGr8%3Djkjp%3Dg8hKVPhOe1Xv_RdHePan9xRFS8Sg%40mail.gmail.com.


Re: [racket-users] Failed to load module in drracket

2019-08-28 Thread Robby Findler
I think the best path forward probably involves changing DrRacket so
that, on a case-by-case basis, people can opt-in to loading specific
external libraries automatically. I've not yet tried to implement
that, but if someone wants to, the right starting place is the code
that currently disallows the access, which is here:

https://github.com/racket/drracket/blob/5a71d4580d9799a88707eb269879da0635ae97ad/drracket/drracket/private/expanding-place.rkt#L512

There would be changes required to identify that a shared library load
was denied, convey that back to the main place where DrRacket runs,
then add some way to offer people to allow it, which would then set a
preference somehow and the other place could consult that preference
to see what is allowed. Something like that.

I like this idea and hope to get to it eventually, but I can't do it right now.

Robby


On Sat, Aug 24, 2019 at 10:12 PM Hong Yang  wrote:
>
> Hi Robby
>
> Thanks for your explain, is ther any way I can enforce to load the module? or 
> let me know which code did this?
>
> Best reagrds
> Walter

-- 
You received this message because you are subscribed to the Google 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/CAL3TdOOW7w8g7db6HjWh0yCBN5WaD5Js0Px7nW%2BUt28miswU5A%40mail.gmail.com.


Re: [racket-users] (curry map string->number) in Typed Racket

2019-08-28 Thread Štěpán Němec
On Wed, 28 Aug 2019 09:23:03 -0400
Jon Zeppieri wrote:

[...]

>> Does that mean that for higher-order function parameters, inst expects
>> only the return type signature, not that of the function itself?
>
> The main point here is that `inst` needs substitutions for the type
> _variables_, not for the types of the function arguments.

Oh, _now_ it makes sense! I see now that I really misunderstood even the
example in the reference entry for `inst`: I took "(inst cons Integer
Integer)" to mean "two Integer args" (which of course would only account
for the (Pairof a b) case and doesn't make sense in the context) instead
of "two Integer type variables".

Thank you for the detailed explanation!

-- 
Štěpá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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/87blw9gzo0.fsf%40gmail.com.


Re: [racket-users] (curry map string->number) in Typed Racket

2019-08-28 Thread Jon Zeppieri
On Wed, Aug 28, 2019 at 5:59 AM Štěpán Němec  wrote:
>
> On Thu, 22 Aug 2019 16:40:03 -0400
> Jon Zeppieri wrote:
>
> > (curry (inst map (U Complex False) String)
> >  string->number)
> >
> > ... typechecks, but in your expression, you're going to need to handle
> > the possibility that the pattern variables in `list-rest` pattern are
> > #f.
>
> Many thanks for the help. I find it quite confusing, though: I'd expect
> something like "(inst map (-> String (U Complex False)) (Listof String))",
> which apparently means something else...

Let's look at the type of `map`:

> map
- : (All (c a b ...)
  (case->
   (-> (-> a c) (Pairof a (Listof a)) (Pairof c (Listof c)))
   (-> (-> a b ... b c) (Listof a) (Listof b) ... b (Listof c

We're only interested in the two-argument case (though we do want to
admit empty lists) so we can treat that as if it were:

(All (c a) (-> (-> a c) (Listof a) (Listof c)))  [*]

There are two type variables to instantiate: c and a, and they need to
be instantiated in that order -- in the order they are bound by the
universal quantifier (`All`). The first argument to `map` is a
function of type (-> a c). In our case, that function will be
`string->number`, so now we need to know the type of `string->number`:

> string->number
- : (->* (String) (Number) (U Complex False))

It has an optional argument of type Number, but we don't need that, so
we're going to ignore it and treat this as if it were simply:

(-> String (U Complex False))

Remember, we were looking for a function of type:
 (-> a c)
and we found one of type:
 (-> String (U Complex False))

That means that `a` will be instantiated by `String` and `c` will be
instantiated by `(U Complex False)`. But recall the order that the
variables are bound by the universal quantifier: (All (c a) ...). So
we need to do:
 (inst map  ), which is:
 (inst map (U Complex False) String)

>
> Does that mean that for higher-order function parameters, inst expects
> only the return type signature, not that of the function itself?

The main point here is that `inst` needs substitutions for the type
_variables_, not for the types of the function arguments.

> But what about the String instead of (Listof String)? Or is this some kind
> of special case for functions like map? Is it documented somewhere?

This is a good illustration of what I just wrote: the type for `map`
that we wrote above requires a `(Listof a)`. Our job is to instantiate
the variable `a`. The `Listof` part is already there.

>
> And more generally, could you recommend any good learning resources (or
> good non-trivial code examples) of Typed Racket usage? I have read the
> guide and consulted the reference, but keep hitting the wall...

I'm afraid I can't help you with examples, but I bet some other people
on this list can.

- Jon

[*] The cases in the type of `map` are a bit confusing because, at
first glance, it looks like the first case is for the two-argument
version of `map`, whereas the second is for the vararg version. But
really the first version is for the two-argument version that is given
a non-empty list as the second argument (and therefore also returns a
non-empty list).

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAKfDxxwFSZSXHrhSWjhyaRZa6c%2BtsQK8E%3D1tH56C4K%3D8H71nPA%40mail.gmail.com.


[racket-users] Gracket format

2019-08-28 Thread Mark Bestley
I am just learning racket using the real of Racket book.

However I am have problems wil file formats.
My .rkt file has become gracket format but I have no images or any non 
ascii/unicode text in it. This messes up version control and use of other 
editors.

How can I force DrRacket not to corrupt the text file? and only change if I add 
images?

The only odd thing I think I have done that might matter is Collapse 
S-expression.


--
Mark


-- 
You received this message because you are subscribed to the Google 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/m1h861o6ou.fsf%40bestley.co.uk.


Re: [racket-users] (curry map string->number) in Typed Racket

2019-08-28 Thread Štěpán Němec
On Thu, 22 Aug 2019 16:40:03 -0400
Jon Zeppieri wrote:

> (curry (inst map (U Complex False) String)
>  string->number)
>
> ... typechecks, but in your expression, you're going to need to handle
> the possibility that the pattern variables in `list-rest` pattern are
> #f.

Many thanks for the help. I find it quite confusing, though: I'd expect
something like "(inst map (-> String (U Complex False)) (Listof String))",
which apparently means something else...

Does that mean that for higher-order function parameters, inst expects
only the return type signature, not that of the function itself? But
what about the String instead of (Listof String)? Or is this some kind
of special case for functions like map? Is it documented somewhere?

And more generally, could you recommend any good learning resources (or
good non-trivial code examples) of Typed Racket usage? I have read the
guide and consulted the reference, but keep hitting the wall...

Thanks,

  Štěpá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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/87ftllhaq5.fsf%40gmail.com.