Re: [racket-users] racket2nix--racket packages in nixpkgs?
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?
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
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
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?
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?
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?
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?
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?
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?
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?
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
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
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
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
> 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
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
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
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
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
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
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
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
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
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
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?
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
>> 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
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
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
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
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
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.
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
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
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
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
. 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
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
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
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
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