Re: [racket-users] racket2nix--racket packages in nixpkgs?

2020-12-03 Thread Anthony Carrico
I just realized that my racket-users archive is split, and there is some
discussion of racket2nix in the 2018-19 time frame. It looks like I
actually posted a message back then--! I'll go review that thread, but
of course I'd still welcome an update from any devs or users.

-- 
Anthony Carrico

-- 
You received this message because you are subscribed to the Google 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/d66195ca-23fa-233c-6ad6-8f2a84798279%40memebeam.org.


[racket-users] racket2nix--racket packages in nixpkgs?

2020-12-01 Thread Anthony Carrico
I was just looking for a way to create a nix shell with racket and a 
particular racket package. I noticed the racket2nix project. I don't see 
it mentioned in a search of the subject lines of my racket-users/-
dev mailing list archives. If the racket2nix devs are listening to this 
mailing list, I'd welcome a introduction / summary / status update on 
their project.


--
Anthony Carrico

--
You received this message because you are subscribed to the Google 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/9a6fb7fb-663b-cd90-4699-f3eebcec5bbd%40memebeam.org.


Re: [racket-users] identifier used out of context

2020-06-09 Thread Anthony Carrico
On 6/9/20 12:57 PM, Anthony Carrico wrote:
> (letrec ((super0 (combine initial (overlay0 self initial)))
>  (super1 (combine super0 (overlay1 self super0)))
>  (super2 (combine super1 (overlay2 self super1)))
>  ;; etc...
>  (final superN))
>   ;; "self" is the desired binding context.
>   ;; "superX" are the staged binding contexts along the way.
>   self)

Oops, sorry, I change the identifier from "final" to "self", but forgot
to change the binding:

(letrec ((super0 (combine initial (overlay0 self initial)))
 (super1 (combine super0 (overlay1 self super0)))
 (super2 (combine super1 (overlay2 self super1)))
 ;; etc...
 (self superN))
  ;; "self" is the desired binding context.
  ;; "superX" are the staged binding contexts along the way.
  self)

-- 
You received this message because you are subscribed to the Google 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/c340c01e-1c6d-70e1-0325-da2a324a70d5%40memebeam.org.


Re: [racket-users] identifier used out of context

2020-06-09 Thread Anthony Carrico
On 6/7/20 9:23 PM, Alexis King wrote:
>     #lang racket
>     (define-syntax-rule (m) (displayln 'old))
>     (let ()
>       (m)
>       (define-syntax-rule (m) 'new)
>       (void))

I think you meant:

(define-syntax-rule (m) (displayln 'old))
(let ()
  (m)
  (define-syntax-rule (m) (displayln 'new))
  (m)
  (void))

which prints:

old
new

And as usual, Alexis points right to the heart of the problem. All the
way back in Dybvig's psyntax expander, definition contexts are partially
expanded to uncover definitions, and then fully expanded in a second
step. Flatt's papers dig deeper (I hope he is reading this thread). I
will quote one thing directly from Alexis, "resolution of macro bindings
also involves a /temporal/ component, since the compile-time binding
table evolves as the program is expanded."

I'd love to hear your idea of a satisfying semantics to aim for, even if
it doesn't match scheme/racket historical semantics. In the meantime,
I'll draw your attention to another community which has evolved a
potential solution to the "hopeless top level":

Nix is a lazy functional language which is primarily used to define
binding contexts--very much like our "hopeless" definition
contexts--primarily for unix package configuration. The concept of an
"overlay" has emerged (this term might be overloaded in Nix).

An overlay represent a step in the fixed point definition of a binding
context.

Recall the Alexis quote, "resolution of ... bindings ... involves a
/temporal/ component," well in Nix an overlay is a step in the fixed
point definition of a binding context.

It probably isn't proper to call this "temporal", but it is a sequence
of definition contexts which lead to the ultimate desired set of
definitions (the "fixed point" of the computation).

As a racket procedure, an overlay would be defined something like this:

(define (overlay self super) ...etc...)

Overlay is a function ("macro"). It takes two sets of bindings, and
produces a third. Self and super are the conventional names (not great
names) for the parameters.

In the overlay system, a binding context is defined by chaining together
a bunch of overlays. Something like this:

(letrec ((super0 (combine initial (overlay0 self initial)))
 (super1 (combine super0 (overlay1 self super0)))
 (super2 (combine super1 (overlay2 self super1)))
 ;; etc...
 (final superN))
  ;; "self" is the desired binding context.
  ;; "superX" are the staged binding contexts along the way.
  self)

Now of course just like with macros, there can be overlay producing
overlays etc. If you look at an overlay as a macro, it has simultaneous
access to the entire structure of the  of the bindings via the two
handles, self and super, together with whatever bindings are stashed
away by other overlays. You could imagine a sequence of bindings
contexts in which one definition of cc, compiles the next, bootstrapping
a compiler from its initial version, for example, or even one version of
an overlay bootstrapping another overlay.

There are conventions making use of self and super when writing an
overlay. You, and your downstream peers in the chain, will be overriding
the ones in super, if you provide something from self, you know it is
the stable final result.

Isn't there some solid semantics for a hopeful top level in this idea?

-- 
Anthony Carrico

-- 
You received this message because you are subscribed to the Google 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/ba63f17b-366a-d87e-b1f4-9009952bd805%40memebeam.org.


Re: [racket-users] Re: What’s everyone working on this week?

2019-12-13 Thread Anthony Carrico

On 12/13/19 12:26 AM, Nathaniel Griswold wrote:

Could I just write llvm directly? (This is my first time using llvm)


Sure. You should probably play around and write some llvm assembly 
procedures by hand.


I think the main issue with llvm is, or used to be, that you can "call 
with arguments" (that is a normal C procedure call), but you can only 
jump within a single procedure, so it isn't convenient to modularize 
state machines like we can with tail calls in Racket.


Some compilers create special llvm calling conventions to deal with 
this, but it would be nice if there was a standard "jmp with arguments" 
instruction (which cleaned up the stack) that you could use to escape 
into a stackless mode of operation.


--
Anthony Carrico

--
You received this message because you are subscribed to the Google 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/6e4191ed-2a54-0a49-f6cb-e5912fa24183%40memebeam.org.


Re: [racket-users] Re: What’s everyone working on this week?

2019-12-12 Thread Anthony Carrico

On 12/12/19 10:36 PM, Sam Tobin-Hochstadt wrote:

Yes, basically. I'd say it's showing how to translate that Racket code
(taken from Shriram Krishnmurthi's JFP paper/LL1 talk) into Sham.


Nice. Looking forward to less brief summary of the tool.

--
Anthony Carrico

--
You received this message because you are subscribed to the Google 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/1be25cb1-6368-a54a-8834-0a19060f03e5%40memebeam.org.


Re: [racket-users] Re: What’s everyone working on this week?

2019-12-12 Thread Anthony Carrico

On 12/12/19 10:05 PM, Sam Tobin-Hochstadt wrote:

You might be interested in our project Sham


So is this compiling a state machine (or, two actually) to llvm and 
running against a Racket oracle?

  https://github.com/rjnw/sham/blob/master/test/automata.rkt

--
Anthony Carrico

--
You received this message because you are subscribed to the Google 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/c619eae3-fac5-9a8f-a35a-dbf5a6921839%40memebeam.org.


Re: [racket-users] Are the terms "function" and "procedure" synonymous in Racket?

2019-01-22 Thread Anthony Carrico
On 1/22/19 6:56 PM, Jon Zeppieri wrote:
> [25 messages]
> 
> 
> I think Wadler's Law needs an update.

Long live the internet!

Op: Should we call them functions or procedures?
A: Functions!
B: Functions!
C: Functions!
D: Functions!
E: But it's a procedural language, and we've called them procedures for
30 years, so why not call them procedures?
F: Functions don't really exist only procedures! So let's call them
functions!
G: Huh?
H: Wadler's Law
Me: Must... Resist... Being... A... Troll...

Fail

-- 
Anthony Carrico

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


Re: [racket-users] Are the terms "function" and "procedure" synonymous in Racket?

2019-01-22 Thread Anthony Carrico
On 1/22/19 6:49 AM, Jos Koot wrote:
> "It is often the case that
> arbitrary procedures don't compose meaningfully, whereas procedures that
> represent functions always compose meaningfully. "
> 
> functions f and g can be composed meaningfully only if the domain of
> f is compatible with the co-domain of g.

Perfect.

-- 
Anthony Carrico

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


Re: [racket-users] Are the terms "function" and "procedure" synonymous in Racket?

2019-01-21 Thread Anthony Carrico
On 1/18/19 6:36 PM, George Neuner wrote:
> Historically, many computer language designers were mathematicians, and
> they deliberately sought to distinguish "computer" functions from
> "mathematical" functions.
> 
> It has yet to work completely - witness the legions of newbies every
> year who don't understand that computer arithmetic differs from the math
> they were taught in school.

Ellen: I don't disagree with most of the points here, I just draw the
opposite conclusion.

Look at the example you selected: "compose". It is often the case that
arbitrary procedures don't compose meaningfully, whereas procedures that
represent functions always compose meaningfully. This is a hot topic
among programmers these days. Maybe the person who wrote this
documentation choose the word "function" for this reason?

As a parent, I wish Javascript had adopted the word "procedure" as
Scheme did. It is frustrating to try to teach your kids good
mathematical intuition with the help of resources like Khan Academy,
only to have the intuition undermined by conflicting lessons from the CS
side of the curriculum.

-

George: Aren't you making my case here? The mathematicians actually have
the same trouble with their components as we engineers! Stoy says, "a
careful distinction is vital in the case of functions", admonishing us
not to "confuse functions with the algorithms representing them."
Weren't Schemers making this distinction with the word "procedure"?

Should an engineering education sweep the distinction between the
abstract and the concrete under the rug? It's useful to distinguish the
mappings/functions/relationships that interest me from the toolbox of
algorithms/procedures/languages/devices that I use to represent them.
Consider:

"This procedure perfectly captures our (finite) function".

"This system is a compact realization of the function, but unstable for
certain inputs. On the other hand, this system converges for all inputs,
but has a long phase delay."

"This (infinite) function is impossible to represent on a computer, but
we can generate whatever finite portion you require."

You can't even make these statements if you abolish the distinctions.
Hence my astonishment that Racketeers, teaching experts, are stepping
away from the word they inherited from Scheme.

> The problem is that quite a lot of the talk about functional programming
> is just marketing.

So, are people gravitating away from the word "procedure" because
"functional" is now being marketed? But seriously...

> The languages can't live up to the promise of mathematical purity,
... etc.

Nobody is looking to program a pure function devoid of effects. It's
about making computation (including effects) understandable to people.
The motivation behind functional programming (and most engineering
discipline) is that humans can't really understand complex systems of
effects very well, and so we try to look for components whose meanings
compose. Functions are emblematic of that sort of composition--hence the
name. Operating under this slogan, people have come up with several ways
of composing effects, and we haven't seen the final chapter in that
story. Computer scientists haven't quite broken down their field into
the pieces that fit together nicely, but why discount the progress they
are making?

> WRT eliminating the distinction - that was dead and buried before
> Racket began.  There are no pure functional computer languages, and
> there never will be:  real programs have to interact with the impure
> real world.

Wait: you say the distinction is dead and buried, and then proceed to
highlight it? Where would humanity be if we adopted the stance that we
should never model anything just because our models can't be perfectly
realized on a finite computer, or even worse, an analog machine?

I didn't have a CS education, so maybe I just have a different
perspective, however, I also haven't seen much evidence presented in
this thread that the word "procedure" hurts anything. Why not stick with
what seems to be an accurate term and avoid confusion down the line?

> YMMV,
> George

PS: Thanks for the sparring. Think on this: we couldn't even have this
conversation without the distinction.

-- 
Anthony Carrico

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


Re: [racket-users] Are the terms "function" and "procedure" synonymous in Racket?

2019-01-17 Thread Anthony Carrico
Weird!

A procedure is a (branching) sequence of instructions.

Non-programmers have an accurate notion of the word from outside of
computer programming in recipes and instruction manuals.

A function maps inputs to outputs.

Non-programmers often use the word to denote a relationship between values.

Computer programmers lost or muddled the distinction (probably because
the same syntactic abstraction mechanism was used for both ideas).

However, for practical reasons, the programming community is now placing
more emphasis on the distinction between functional and procedural
abstraction, so I'm very surprised to see the Racket community rally to
eliminate it. Even within the same abstraction mechanism, the two ideas
are very useful.

-- 
Anthony Carrico

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


Re: [racket-users] Licence guidance

2018-09-26 Thread Anthony Carrico
On 09/26/2018 05:32 PM, Deren Dohoda wrote:
> I put a package up but it has no license info in the code. I would add
> one which is the most permissive possible that wouldn't cause conflict.
> I guess this is BSD? MIT? 

In this case, don't license your code, declare it to be in the public
domain.

-- 
Anthony Carrico

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


Re: [racket-users] Re: racket2nix

2018-02-14 Thread Anthony Carrico
I use Nix, but mostly for Haskell currently, rather than Racket. I did
prototype a nix project with Racket. I don't have the sources at my
fingertips. I'll report if I look back and see anything helpful for you.

It looks like you are trying to tie into the Racket package system. We
didn't try to do so, we were just trying to go from a git clone to a
common development environment in one step.

I do remember modifying the racket derivation in the nixpkgs repo. I
don't think that got pushed upstream. The Racket derivation needed to be
parameterized to find the opengl libs/drivers. I also remember that I
couldn't get this to work reliably on any OS except NixOS. Any opengl
program was going to have similar trouble since the libs are a function
of the drivers which can't really be provided by Nix on non NixOS
platforms. This situation was more of a reflection on the state of
OpenGL than Nix in my opinion, but we ended up developing in a NixOs vm
for this reason only. I don't remember what other changes I made, this
was the biggest pain point. I did integrate with other foreign functions.

-- 
Anthony Carrico

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


Re: [racket-users] The Birth and Death of Units

2018-01-22 Thread Anthony Carrico
Alexis, have you seen this?:

https://people.mpi-sws.org/~rossberg/1ml/

"ML is two languages in one: there is the core, with types and
expressions, and there are modules, with signatures, structures and
functors. Modules form a separate, higher-order functional language on
top of the core. There are both practical and technical reasons for this
stratification; yet, it creates substantial duplication in syntax and
semantics, and it reduces expressiveness. For example, selecting a
module cannot be made a dynamic decision. Language extensions allowing
modules to be packaged up as first-class values have been proposed and
implemented in different variations. However, they remedy expressiveness
only to some extent, are syntactically cumbersome, and do not alleviate
redundancy."

"We propose a redesign of ML in which modules are truly first-class
values, and core and module layer are unified into one language. In this
"1ML", functions, functors, and even type constructors are one and the
same construct; likewise, no distinction is made between structures,
records, or tuples. Or viewed the other way round, everything is just
("a mode of use of") modules. Yet, 1ML does not require dependent types,
and its type structure is expressible in terms of plain System Fω, in a
minor variation of our F-ing modules approach. We introduce both an
explicitly typed version of 1ML, and an extension with
Damas/Milner-style implicit quantification. Type inference for this
language is not complete, but, we argue, not substantially worse than
for Standard ML.

"An alternative view is that 1ML is a user-friendly surface syntax for
System Fω that allows combining term and type abstraction in a more
compositional manner than the bare calculus."

-- 
Anthony Carrico

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


Re: [racket-users] Multiple namespaces in Racket

2017-10-30 Thread Anthony Carrico
> https://lexi-lambda.github.io/blog/2017/10/27/a-space-of-their-own-adding-a-type-namespace-to-hackett/

Nice summary. Whoever writes the great macro programming book in the sky
would do well to review this post. Good work as usual Alexis.

-- 
Anthony Carrico

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


Re: [racket-users] Re: Inside Racket Seminar 7. Alexis King on Hackett

2017-09-27 Thread Anthony Carrico
I totally missed the announcement for this, but I watched the first half
last night. It is great, I had to keep stopping to take notes.

Really great job Alexis, a lucid expo. of impressive work. Thanks for
hosting Jay.

-- 
Anthony Carrico

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


signature.asc
Description: OpenPGP digital signature


[racket-users] [Racket-users] IMAP with racket

2017-02-11 Thread Anthony Carrico
FYI, on the subject of Racket + IMAP:

1. Greg Hendershott's feeds2gmail pushes RSS feeds to the gmail host
over IMAP. I fixed a few gmail specific bugs and limitations making it a
general "feeds2imap" in this branch:
  https://github.com/acarrico/feeds2gmail/tree/imap
I've tested this with the popular Courier imap server.

I think my branch will remain a fork since since Greg isn't currently
using feeds2gmail (I'm actually curious what he's using, after putting
the effort into feeds2gmail, but we haven't made the time to discuss
it). As for me, I've setup a few feeds using my branch, but haven't
decided if I'll use it long term. If I do so, I'll probably need a
couple more features/fixes.

2. I've played with the Lua based imapfilter, which seems nice. I'm not
sure if there is a good argument for porting that to Racket:
  https://github.com/lefcha/imapfilter

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Typed Racket & Higher Kinded Types

2017-01-20 Thread Anthony Carrico
On 01/17/2017 04:34 AM, Sam Tobin-Hochstadt wrote:
> No, unfortunately  you can't just higher kinds in Typed Racket. This is
> a limitation we hope to lift eventually, though.

I'm going to take a non-ranting stab at Matthias' compatibility
objection, slightly formalizing the proposal. Robert wants kinds. I'll
use a syntax like:

Value : Type : Kind

Let's say we have these kinds:

Kind := * | (-> * *)

In #lang racket, there is only one type:

_ : Racket : *

So, use it for the Racket FFI. Initially, don't try to map uni-typed
Racket values onto a variety of types as Typed Racket did.

We probably also want to interop with C, so add a C FFI:

_ : C : *

We might have a type for #lang typed/racket too:

_ : Typed/Racket : ?

I don't know if you'd use  kind * here.

Later, it might be that we can do better than these types, as Typed
Racket did. In those cases people could add better types, but maybe
refinement isn't something that will work well in this kinded
programming model. Oh well, just use elimination forms on the Racket type.

Typed Racket is a world designed to make Schemer's
set/predicate/refinement model feel natural. Robert's #lang kind/racket,
or whatever, is a world designed to make static higher kinded typed
programming feel natural. As with any #lang, they live in the same heap,
and they don't have a perfect semantic match.

Sam, why do you characterize higher kinds in typed/racket as a
"limitation we hope to lift eventually" rather than just a design choice
for that #lang?

I understand that there are issues with the N*N combinatorial explosion
of languages, but that is something we just have to deal with by
grouping languages with shallow semantic differences into a single FFI,
or by documenting the mappings, like when you model a lazy application
with a thunk, or whatever.

-- 
Anthony Carrico

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


Re: [racket-users] Typed Racket & Higher Kinded Types

2017-01-19 Thread Anthony Carrico
On 01/19/2017 09:30 AM, Anthony Carrico wrote:
> What do contemporary programmers want? They want some kind of static
> proof that their interfaces are good.


I didn't put the following in my rant, because why muddy a good rant?
But to elaborate, they also want productivity, and that means
state-of-the-art polymorphism, and that also comes along with a good
type system.

-- 
Anthony Carrico

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


Re: [racket-users] Typed Racket & Higher Kinded Types

2017-01-19 Thread Anthony Carrico
On 01/19/2017 09:50 AM, Robert Kuzelj wrote:
> Wow! My question seems to be pretty  upstirring. ;-)
> But you are completely right - I am sniffing around Racket (Typed) bc strong 
> typing + meta programming look like a killer combo.
> 
> And btw. yeah something will emerge ... or rather has already emerged
> https://github.com/LuxLang/lux
> https://luxlang.gitbooks.io/the-lux-programming-language/content/

See also Alexis King's:
https://lexi-lambda.github.io/blog/2017/01/05/rascal-is-now-hackett-plus-some-answers-to-questions/

-- 
Anthony Carrico

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


Re: [racket-users] Typed Racket & Higher Kinded Types

2017-01-19 Thread Anthony Carrico
On 01/18/2017 08:57 PM, Matthias Felleisen wrote:
> 
> And how would components in #lang typed/racket interact with components in 
> #lang kinded/racket interact? 

If this wasn't Matthias, I'd say whoever posted this missed the whole
point of Racket. Since it is Matthias, I'll take this as an invitation
to rant.

At its core, what is racket? Racket is an operating system with Scheme
values, rather than C values, as its foreign function interface. So the
simple answer to the question is that Typed Racket 2 uses Scheme values
as its FFI, just like everyone else does. Does this suck? Yes, but for
many cases it is better than using C values.
Any other vision of the module system is an illusion, I realized this as
soon as I tried Fathertime after the Scheme Workshop 10-20 years ago.

What do contemporary programmers want? They want some kind of static
proof that their interfaces are good. Why are so many programmers
sniffing around Racket these past few months? Because they noticed
Turnstile, and they recognize that Racket is the state of the art in
metaprogramming. The window is currently open, something like Racket +
Haskell/Idris/Purescript/Agda will emerge. Programmers will bleed from
both camps.  Recognize this, or lose all good Racket programmers. Anyone
who uses typed Racket discovers Haskell, and start to hate Racket
because it doesn't have typeclasses. It feels like programming with your
arms chopped off. They don't want to give up Matthew's great work, so
they will bring it with them one way or another.

Typed Racket was a fine experiment. It accomplished two things. It
showed dynamic programmers that static types and other proofs should be
employed when possible, and contracts should be employed otherwise.
Typed Racket killed Scheme. This is speaking as one of the few
programmers in the world who has been paid to program in typed racket.

-- 
Anthony Carrico

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


Re: [racket-users] Typed Racket & Higher Kinded Types

2017-01-18 Thread Anthony Carrico
On 01/17/2017 05:31 AM, Sam Tobin-Hochstadt wrote:
> The major obstacle is that the current kind system design is not easy to
> reconcile with higher kinds. This is mostly because the current system
> is poorly designed, but we need to avoid breaking existing programs.

Why is this an issue? #lang something/else, and the problem is solved, no?

-- 
Anthony Carrico

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


[racket-users] new Racket blog feed

2017-01-13 Thread Anthony Carrico
I've been working on some patches for Greg Hendershott's feeds2gmail
(imap, actually), and I noticed that the Racket blog feed is broken:
  http://blog.racket-lang.org/feeds/posts/default

Looking at his frog docs, the new feed should be:
  http://blog.racket-lang.org/feeds/all.atom.xml

Unless I missed it, the link needs to be added to the Racket blog.

-- 
Anthony Carrico

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


[racket-users] Racket development with nix

2016-11-11 Thread Anthony Carrico
Thanks to whoever wrote Racket's nixpkgs derivation. I have found that
nix is a great development tool. With nix-shell:

* You set declare an environment, commit it to your repo, and all devs
are on the same page.

* When dealing with ISSUEs you can easily switch between racket versions.

* You can have different environments for different projects.

* You have get unified (vs. ghetto) package management for polyglot
projects. And aren't they all?

To these ends I've been patching the existing derivation. I'm new to
nix-lang, so I'd like to have someone check my style. So far:

* I've added a parameter for the Racket version.

* I've added a parameter for extraLibs (dynamically linked libraries).

Repo:

https://github.com/acarrico/nixpkgs/tree/racket-gl

Diff from master:

https://github.com/NixOS/nixpkgs/compare/master...acarrico:racket-gl

Ultimately, a bigger task, for true cross language integration, the
ghetto racket packages should be imported into Nix as cabal2nix now
integrates Haskell with Nix.

-- 
Anthony Carrico

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


Re: [racket-users] [ANN] A type-expander library for Typed/Racket

2016-08-26 Thread Anthony Carrico
On 08/26/2016 11:10 AM, Matthias Felleisen wrote:
> 
> This looks cool and I wish I had time to play with it.

Likewise. Can you say something for us lurkers about the use cases? Do
you think it is workable to have an identifier act as a type expander,
match expander, normal macro and identifier macro? I know how useful
this can be for match expanders, but I have felt uneasy about it since
the overloading mechanism is so adhoc.

Also in recent Racket news, I feel the same way  about Matthew Flatt's
recent announcement (looks cool, wish I was following it):
  [racket-dev] new implementation of modules + modules + top level

-- 
Anthony Carrico

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


Re: [racket-users] What do you use macros for?

2016-04-12 Thread Anthony Carrico
On 04/11/2016 10:25 AM, Matthias Felleisen wrote:
> Second credit to Matthew (and Shriram and Robby) who kept me 
> on the 'macros are good for designing complete languages' track, 
> too. This one is important for different reasons. Often you want
> to create a reasonably complete language but not invent everything
> from scratch. In our words, you want 'linguistic inheritance'. For
> example, you like Haskell's type system but you hate, loathe, despise
> the stupid idea of universally lazy evaluation. Well, if you were
> in Racket, you'd define a 10-line language that looks, feels, smells, 
> tastes like the host but has a by-value evaluation mechanism. Of course, 
> Racket is by-value, so you may convert it into a lazy language without
> giving up the lovely parentheses and the beautiful Lisp syntax. Well, 
> it's a 10-line language definition, based on Racket's generalization
> of old, very old, stone-age old Lisp macro system. 
> 
> See the last chapter of Realm of Racket on how to teach Kindergarden 
> kids to define this kind of by-need (actually by-name) Racket. 

I love how Scheme and Racket continue to push the boundary on what can
be done with syntax extension, but these paragraphs are hyperbole. There
is a long way to go before working programmers can make linguistic
inheritance happen. At least a book needs to be written, maybe more
research. Please view Asumu's google hangout on typed racket + the class
system for evidence about just how sticky things are in the real world.
Don't get me wrong, PLT has done, and is doing the work, and that work
is under appreciated by the programming languages community, but
still... really? Let's not over-sell and under-deliver.

-- 
Anthony Carrico

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


Re: [racket-users] Expression-style printing and quotation: helpful or harmful?

2016-02-08 Thread Anthony Carrico
On 02/07/2016 08:38 PM, Alexis King wrote:
> I appreciate your input, Matthew, but the location of the documentation
> is a separate conversation—the point seems to be that the current
> documentation is insufficient. Throwing a whole book at someone who is
> confused about apostrophes in their programs’ output is not an ideal
> answer, in my opinion. Remember: users don’t read.

I think I disagree. Finding the "source of truth" can be very liberating
for a (new) user, and nothing is obvious when you are a novice. I love
it when somebody points me at the docs. When it comes to Racket, I think
we are all surprised by just what is in those docs sometimes. Also, is
Jay serious or sarcastic???

-- 
Anthony Carrico

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


Re: [racket-users] a little bug

2016-02-05 Thread Anthony Carrico
On 02/05/2016 08:01 AM, Robby Findler wrote:
> When I run this, I see a message at the bottom of the DrRacket window (in 
> red):
> 
>   Background expansion terminated abnormally (out of memory)
> 
> do you see this message?

I tried too, and it stops fine with the same message as Robby. No
phantom CPU usage apparent.

However, I did have a run away DrRacket recently that didn't respond to
stop and took a few minutes to kill because my UI was extremely sluggish
(partially because X11 and/or the window manager sucks, and my CPU
probably throttled, but still...). I don't have any good data for you
about the circumstances of the issue though.

-- 
Anthony Carrico

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


[racket-users] Basic Macrology by Ryan Culpepper and Claire Alvis

2016-01-25 Thread Anthony Carrico
Not sure where I ran across this recently:
  http://rmculpepper.github.io/malr/index.html

'Basic Macrology' is the first part of 'Macros and Languages in Racket'
which is apparently a work in progress. I just finished up exercise 18
(a match macro). I wanted to give a shout out to Ryan and Claire.
Working through 'Basic Macrology' is a great reminder about (or
introduction to) the little issues with macros. I'm looking forward to
the next section.

-- 
Anthony Carrico

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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Prefix-in for macros

2016-01-22 Thread Anthony Carrico
Expand into a (sub)module?

-- 
Anthony Carrico

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


Re: [racket-users] about rackjure

2015-12-15 Thread Anthony Carrico
On 12/15/2015 06:48 AM, John Berry wrote:
> In Heresy I did something like the (pipe ...) function above:

Oh for a nice chart comparing all the nice (partial) application variants!

-- 
Anthony Carrico

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


[racket-users] Functional Geekery Episode 37 – Eric Smith

2015-12-03 Thread Anthony Carrico
Eric is a member of the close knit programming community up here in VT.
His talks at VTFun (the Vermont Functional Programmer's user group) and
Code Camp are always well attended. Here he touches on his experience,
philosophy, PL history, etc. On education, he says something like, from
his manager's point, many programs will leave students unemployable in
the not to distant future; he gives a nice plug for HTDP/2e and worlds.

 http://www.functionalgeekery.com/episode-37-eric-smith/

Enjoy!

-- 
Anthony Carrico

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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Embedding Rust in Racket

2015-11-11 Thread Anthony Carrico
On 11/10/2015 12:10 AM, Ty Coghlan wrote:
> I'm currently attempting to embed Rust into racket,

I'd like to see how this turns out. Post a link if you do a development
blog or anything like that.

-- 
Anthony Carrico

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


Re: [racket-users] racket users fight for their right to colon keywords

2015-10-23 Thread Anthony Carrico
On 10/23/2015 11:30 AM, Greg Hendershott wrote:
> If you touch type you
> use both left and right shift keys O_o.

...but only the right shift key in dvorak, but seriously Asumu mentioned
Flatt and Barzilay's "Keyword and optional arguments in PLT Scheme" on
irc last night:
  http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.162.17
The paper illuminates the history and all the issues raised is this thread.

-- 
Anthony Carrico

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


Re: [racket-users] racket users fight for their right to colon keywords

2015-10-15 Thread Anthony Carrico
In case I'm being to oblique, I'm trying to point out that:
  (equal? '#:test ':test) ; -> #f
which means that the proposal will certainly break things.

-- 
Anthony Carrico

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


Re: [racket-users] racket users fight for their right to colon keywords

2015-10-15 Thread Anthony Carrico
I didn't really want to get dragged into this, but keep in mind that:

(symbol? #'test) ; -> #f

IIRC the common lisp keywords you admire are symbols. I think that the
proposed syntax confuses symbols and keywords, which are distinct types.

-- 
Anthony Carrico

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


Re: [racket-users] racket users fight for their right to colon keywords

2015-10-15 Thread Anthony Carrico
On 10/15/2015 03:37 PM, Anthony Carrico wrote:
> I didn't really want to get dragged into this, but keep in mind that:
> 
> (symbol? #'test) ; -> #f

err... (symbol? '#:test) ; -> #f

-- 
Anthony Carrico

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


Re: [racket-users] racket users fight for their right to colon keywords

2015-10-15 Thread Anthony Carrico
On 10/15/2015 03:39 PM, Anthony Carrico wrote:
> On 10/15/2015 03:37 PM, Anthony Carrico wrote:
>> I didn't really want to get dragged into this, but keep in mind that:
>>
>> (symbol? #'test) ; -> #f
> 
> err... (symbol? '#:test) ; -> #f
> 

Yes. I found this in the Common Lisp Hyperspec:

(symbolp :test) =>  true

http://www.lispworks.com/documentation/HyperSpec/Body/f_symbol.htm#symbolp

-- 
Anthony Carrico

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


Re: [racket-users] Re: typed/racket + rackunit = trouble

2015-09-18 Thread Anthony Carrico
On 09/18/2015 08:18 AM, Robby Findler wrote:
> On Thu, Sep 17, 2015 at 11:24 PM, Anthony Carrico <acarr...@memebeam.org> 
> wrote:
>> I get that it wants the freedom, I'm just not sure it currently has the
>> freedom.
> 
> I believe it currently does not have that freedom. My messages were
> meant to describe how I think eq? should be treated.

Sounds like work, but I welcome our new equal? overlord.

-- 
Anthony Carrico

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


Re: [racket-users] Re: typed/racket + rackunit = trouble

2015-09-17 Thread Anthony Carrico
On 09/17/2015 04:40 PM, Sam Tobin-Hochstadt wrote:
> Unfortunately, the problem isn't just macros -- the underlying functions
> that actually implement RackUnit would have to be copied into Typed
> Racket. I don't know a way to make `check-eq?` work that doesn't require
> duplicating code. :(

Is there a bigger problem with eq? and the type boundary? For example,
if I represent a "canonical" object with a reference type, could it
suddenly become non-canonical after crossing into untyped code? Or, if I
use it as a key in a weak hash table in TR, move it across the boundary
to untyped code, could the table lose that entry? I found this check-eq?
issue disturbing.

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Re: typed/racket + rackunit = trouble

2015-09-17 Thread Anthony Carrico
This exchange fell off the list accidentally:

On Thu, Sep 17, 2015 at 8:58 PM, Anthony Carrico <acarr...@memebeam.org>
wrote:
> On 09/17/2015 09:27 PM, Robby Findler wrote:
>> eq? on symbols is a special part of the specification and that seems
>> benign to me, all things considered. The "giant hash in the sky" that
>> makes sure that works isn't exactly trouble free, but we seem to have
>> it under control.
>
> Isn't eq? baked into the language already? Check-not-eq?, canonical
> objects (symbols are a special case of that), and weak tables are three
> places that the language is telling us we really /do/ learn something
> when eq? returns #f. I do understand why you would want deemphasize eq?,
> but I don't think you can get away with a just warning.

No, you're not learning something, even in that case. Well, I suppose
you might say that you're learning it didn't return #t, but what that
really means is "try harder". I consider check-eq? and friends a
mistake, symbols I've already mentioned and eq hash table are really
just a fancier form of eq? (so if I'm being careful I should include
them).

Really what I'm trying to say is that the language implementation
wants the freedom to adjust your program without having to be
constrained by eq tests that you might do. One example of this is
contracts. I might wish to be accept a function you give me, put a
contract on it, and give it back to you. This shouldn't really be
detectable if the contract doesn't fail. But it is, because of eq?.
Similarly, a compiler might want to change around exactly when it
allocates those cons cells (doing more sharing sometimes to reduce
memory footprint) but it can't because this is detectable via eq?, so
it isn't a behavior preserving transformation.

> As an example, I'm writing a toy sets-of-scopes expander. Scopes could
> be Natural, or whatever, but I'm wrapping them in a struct so I can use
> them to key weak tables. I can see other some other kind of language
> support as a replacement, like an Identity type, or some kind of Graph
> type where nodes not connected to a root are garbage (making local that
> formerly global feature of the heap).

I think weak tables are a separate issue. You mean eq tables, right?

And if so, you could have used a natural in a field and then used
equal? on that natural to get the same behavior, right? Then I can
decide to increment the natural when I want to and have precise
control over which ones are considered equal and which aren't. (I
agree this is not as convenient and, as I wrote earlier, alas, if i
were serious in fixing this, I would make that stuff more convenient.)

-- 
Anthony Carrico

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


Re: [racket-users] Re: typed/racket + rackunit = trouble

2015-09-17 Thread Anthony Carrico
On 09/17/2015 11:03 PM, Anthony Carrico wrote:
> Really what I'm trying to say is that the language implementation
> wants the freedom to adjust your program without having to be
> constrained by eq tests that you might do. One example of this is
> contracts. I might wish to be accept a function you give me, put a
> contract on it, and give it back to you. This shouldn't really be
> detectable if the contract doesn't fail. But it is, because of eq?.
> Similarly, a compiler might want to change around exactly when it
> allocates those cons cells (doing more sharing sometimes to reduce
> memory footprint) but it can't because this is detectable via eq?, so
> it isn't a behavior preserving transformation.

Both these examples seem fine. Nobody expects procedures to be
comparable, and cons cells are immutable, so the docs say eq? isn't
suitable anyway (my bug report notwithstanding).

-- 
Anthony Carrico

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


Re: [racket-users] Re: typed/racket + rackunit = trouble

2015-09-17 Thread Anthony Carrico
>> On 09/17/2015 09:27 PM, Robby Findler wrote:
> No, you're not learning something, even in that case. Well, I suppose
> you might say that you're learning it didn't return #t, but what that
> really means is "try harder". I consider check-eq? and friends a
> mistake, symbols I've already mentioned and eq hash table are really
> just a fancier form of eq? (so if I'm being careful I should include
> them).

I looked back at one of my bug reports, and indeed my example was using
an immutable object--my bad:

#lang typed/racket

(require typed/rackunit)
(define foo (cons 1 1))
(eq? foo foo)
(check-eq? foo foo)

But, here is an update:

#lang typed/racket

(require typed/rackunit)
(define foo (mcons 1 1))
(eq? foo foo)
(check-eq? foo foo)

And this is still broken.

> Really what I'm trying to say is that the language implementation
> wants the freedom to adjust your program without having to be
> constrained by eq tests that you might do.

I get that it wants the freedom, I'm just not sure it currently has the
freedom.

The docs say, "The eq? operator compares two values, returning #t when
the values refer to the same object. This form of equality is suitable
for comparing objects that support imperative update".

If this is no longer true, it implies that weak hash tables are broken
(they could arbitrarily drop entries), and that worries me.

Secondly, isn't equality the wrong word if a #t result means something
and #f doesn't? I suppose the issue is with the phrase "same object".

>> As an example, I'm writing a toy sets-of-scopes expander. Scopes could
>> be Natural, or whatever, but I'm wrapping them in a struct so I can use
>> them to key weak tables. I can see other some other kind of language
>> support as a replacement, like an Identity type, or some kind of Graph
>> type where nodes not connected to a root are garbage (making local that
>> formerly global feature of the heap).
> 
> I think weak tables are a separate issue. You mean eq tables, right?

I did mean "make-weak-hash". It is desirable to couple the garbage
collection of binding table entries with the garbage collection of
scopes. I was using weak hash tables to map scope objects to binding
table partitions. mflatt achieves this by storing those partitions
directly inside the scope objects, avoiding a weak table. There are
costs and benefits of the two options.

Anyway, if we are allowed to use weak tables for memory management, then
we require a stable notion of identity. I agree that object identity is
ugly, so I'd trade it for an efficient, immutable, persistent, graph
datatype which allowed nodes to be collected when unreferenced from a
root :).

-- 
Anthony Carrico

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


Re: [racket-users] Re: typed/racket + rackunit = trouble

2015-09-17 Thread Anthony Carrico
On 09/17/2015 11:03 PM, Anthony Carrico wrote:
> Really what I'm trying to say is that the language implementation
> wants the freedom to adjust your program without having to be
> constrained by eq tests that you might do. One example of this is
> contracts. I might wish to be accept a function you give me, put a
> contract on it, and give it back to you. This shouldn't really be
> detectable if the contract doesn't fail. But it is, because of eq?.
> Similarly, a compiler might want to change around exactly when it
> allocates those cons cells (doing more sharing sometimes to reduce
> memory footprint) but it can't because this is detectable via eq?, so
> it isn't a behavior preserving transformation.

Both these examples seem fine. Nobody expects procedures to be
comparable, and cons cells are immutable, so the docs say eq? isn't
suitable anyway (my bug report notwithstanding).

-- 
Anthony Carrico

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


[racket-users] typed/racket + rackunit = trouble

2015-09-15 Thread Anthony Carrico
Unfortunately, rackunit doesn't mix that well with typed/racket (see
problem reports 15153, 15143). I guess this is because of the
typed/untyped boundary.

The good news is that it is fairly easy to work around the issues, for
example, you can do a check in the argument to check-true or check-false
so the computation stays in typed/racket.

I don't think I have an actual question for the list. I'm just
mentioning it here because I don't remember reading anywhere that
testing can be an issue in typed/racket. Discuss?

-- 
Anthony Carrico

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


signature.asc
Description: OpenPGP digital signature


Re: Make, in place build, was Re: [racket-users] Racket v6.2

2015-09-10 Thread Anthony Carrico
On 09/10/2015 04:27 PM, Matthew Flatt wrote:
> At Thu, 10 Sep 2015 15:10:27 -0400, Anthony Carrico wrote:
>> This failed to
>> build, I guess because of package mismatches, so I pulled and tried
>> again, which failed.
> 
> I'm a little curious about that failure, but many things can go wrong
> at this level.

I'll forward you a transcript of a failed build.

-- 
Anthony Carrico

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


Re: Make, in place build, was Re: [racket-users] Racket v6.2

2015-09-10 Thread Anthony Carrico
On 09/10/2015 08:40 PM, Anthony Carrico wrote:
> I'll forward you a transcript of a failed build.

FYI: Off list Matthew suggested that it ran out of memory, and indeed
the build succeeds with more free memory.

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


Make, in place build, was Re: [racket-users] Racket v6.2

2015-09-10 Thread Anthony Carrico
I did a 2 character change to Racket (see
https://github.com/plt/racket/pull/1045), and hit make. This failed to
build, I guess because of package mismatches, so I pulled and tried
again, which failed.
Also, my laptop is very slow for this kind of thing, so I did a fresh
clone and in place build on a faster desktop, which went fine.

Next I reapplied my 2 character change and hit make again. It started
off and I got bored an went to lunch. Later it was done and everything
is nice.

1. This is a slow way to work. I'm wondering what cycle the primary devs
use? Avoid make somehow?

2. Is it possible to extract the in place build from the fast desktop to
use on my laptop (same architecture)?

On 06/23/2015 08:39 PM, Jay McCarthy wrote:
> Here's what I do for building from git, and I think it's the simplest thing:
> 
> $ git clone https://github.com/plt/racket
> $ cd racket
> $ make
> 
> This clones a single (small) repository and then builds everything. It
> will automatically install the latest version of whatever other
> packages you need without actually cloning any of the other
> repositories. This means that you have a pretty minimal connection to
> git.
> 
> When you need to update again, you can just update racket and then do
> another "make" and it will download the updates for the packages too.
> 
> Now, sometimes you will actually want to have the git repos of other
> packages. That's easy too. Since I work on the Web server, here's what
> I did:
> 
> # Create a helpful directory. There's nothing special about this name,
> but I like it
> $ mkdir extra-pkgs
> $ cd extra-pkgs
> # Tell racket to switch the web-server package from being a tar-ball
> install to being a git clone
> $ raco pkg update --clone web-server
> 
> Now I'm good to go to
> 
> $ cd web-server
> $ ed web-server-lib/web-server/main.rkt
> 
> and so forth.
> 
> Something that is neat about the new world is that it is easy to have
> a released version of Racket downloaded from the site, but have a git
> clone of some small set of other package repos that you are doing
> development on. The only difference will be the first three steps.
> 
> I hope this helps,
> 
> <3
> 
> Jay
> 

-- 
Anthony Carrico

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


Re: [racket-users] Emacs Racket.

2015-07-19 Thread Anthony Carrico
https://github.com/greghendershott/racket-mode/

-- 
Anthony Carrico

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


Re: [racket-users] stops in Macros that Work Together

2015-07-07 Thread Anthony Carrico
Thanks for clearing that up Ryan  Matthew :).

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


[racket-users] stops in Macros that Work Together

2015-07-06 Thread Anthony Carrico
I've been working through Macros that Work Together (on my way to
working through Sets-of-Scopes). I've come across something that is
slightly unclear to me in the section on local-expand:

  E ::= a mapping from name to transform

I don't believe that E is a stack (right?). If it isn't, then in
jfp12-draft2-fcdf.pdf page 26:

  nostops[E]={var-transform | E(var) = transform and transform != Stop}

  Estops = nostops[E]+{resolve[idstop]-Stop} ...

This will clear out the stops of the outer macro and then install the
stops of the inner macro. My concern is that nostops does nothing to
reinstall the original transformers of the cleared stops. Shouldn't it?

-- 
Anthony Carrico

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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Racket v6.2

2015-06-24 Thread Anthony Carrico
On 06/23/2015 08:39 PM, Jay McCarthy wrote:
 I hope this helps,

Yes very much, just that simple. Reading carefully, the INSTALL.txt docs
are quite good, and the git section in the manual too. Knowing about the
new split repo set up the expectation for a split build, and INSTALL.txt
buries the lead.

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] try a new macro expander

2015-06-23 Thread Anthony Carrico
. Awesome that Racket keeps pushing the envelope on
meta-programming. It /is/ exciting. I'm somewhat quiet because I'm still
absorbing it as I get the time. There has been chatter on IRC too. Also,
very cool that mflatt is being so open with the community during the dev
cycle. Bring it on.

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Racket v6.2

2015-06-23 Thread Anthony Carrico
On 06/19/2015 11:19 PM, Ryan Culpepper wrote:
 With this release we are taking a major step forward to get our user
 community even more involved than in the past...

It looks like I'm running currently running a snapshot. I've ran from
github before, but I'll admit I'm not sure where I'd go to understand
how to build from the multiple github repos. If instructions exist, it
might be time to link to them under the http://racket-lang.org/ contrib.
Hopefully that would include:

* how to check-out Racket and whatever other repos,
* build out-of-tree,
* run racket,
* sync,
* build again.

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] Racket v6.2

2015-06-23 Thread Anthony Carrico
On 06/23/2015 04:26 PM, Anthony Carrico wrote:
 On 06/19/2015 11:19 PM, Ryan Culpepper wrote:
 With this release we are taking a major step forward to get our user
 community even more involved than in the past...
 
 It looks like I'm running currently running a snapshot. I've ran from
 github before, but I'll admit I'm not sure where I'd go to understand
 how to build from the multiple github repos. If instructions exist, it
 might be time to link to them under the http://racket-lang.org/

I guess that would be:
  https://github.com/plt/racket/blob/master/INSTALL.txt

The 550 lines of which start with:

For Unix platforms, instead of using this source repository, consider
getting source for the current Racket release from

  http://download.racket-lang.org/

or get a source snapshot (updated daily) from

  http://pre.racket-lang.org/installers/;

which is how I probably ended up with my random snapshot rather than git :).

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature


Re: [racket-users] test submodules vs tests in separate file

2015-05-22 Thread Anthony Carrico
Has this been an oversight? Do we need two official test submodules?
One from the inside, and one from without.

-- 
Anthony Carrico

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


Re: [racket-users] test submodules vs tests in separate file

2015-05-21 Thread Anthony Carrico
On 05/21/2015 08:44 AM, Neil Van Dyke wrote:
 Three advantages of `test` submodules interspersed with the
 implementation code:

It is worth mentioning that submodules don't work well with typed racket
yet, so TR tests are often in another file.

-- 
Anthony Carrico


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


signature.asc
Description: OpenPGP digital signature