[racket-users] The Racket programming language mailing list has moved!!
The Racket programming language mailing list is deprecated and gets very little traffic. Forum/mailing list discussion has moved to https://racket.discourse.group/ - this is a web forum that supports use via email like a mailing list. Please use this invitation: https://racket.discourse.group/invites/VxkBcXY7yL The welcome post includes a link mailing list access guidance for those who prefer it. Best regards Stephen -- This group is deprecated and retained as an archive. Racket discussions have moved to the Racket Discourse at https://racket.discourse.group/ . --- 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. --- 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/7fafdede-dba2-4afc-9343-91266ea0ad2bn%40googlegroups.com.
[racket-users] PLDI 2023 Student Research Competition (SRC)
. For some cross-over, we will organize for a TV in the in-person session, which will rotate through the virtual posters. The top three undergraduate participants and the top three graduate participants (selected across both the virtual and in-person tracks) will proceed to the Final Presentation Round. The final round of SRC will be conducted in a conference room where in-person finalists will first present (streamed over Zoom), and virtual finalists will present via Zoom. Both the virtual and in-person judges/attendees will get a chance to ask questions during the Q session after each talk. ## Participation The Student Research Competition (SRC) at PLDI has always strived to improve engagement and accessibility to students around the world. To this aim, we will provide the opportunity for a round of asynchronous peer-review discussions amongst the SRC participants. The peer-review process is an opportunity for the SRC speakers to share their feedback, ask questions to their fellow peers, and help them make improvements for the poster and presentation round. This is also an opportunity for in-person and virtual speakers to engage prior to the SRC poster round. We hope to utilize our experiences over the last two years to enable sufficient engagement in both tracks. We will work to provide tooling support, organization, and publicity to ensure all participants have a positive experience. Good luck, and we hope to see you in June! ## SRC Chairs: - Chandrakana Nandi, Certora, inc. - Jubi Taneja, Microsoft Research -- PLDI 2023 Publicity Chairs William J. Bowman Anders Miltner -- 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/beaa2ef6-afd2-4686-829a-390eb69f5620n%40googlegroups.com. Beyond the Racket Users Google Group, Racket Discussions take place on Discourse ( https://racket.discourse.group/ ) and Discord ( https://discord.gg/6Zq8sH5 ). Discussion (but less active) also takes place on the Racket Slack https://racket.slack.com/ ( sign up at https://racket-slack.herokuapp.com/ ), and IRC #racket https://kiwiirc.com/nextclient/irc.libera.chat/#racket --- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/Y5eoHc6D3DrXI8nq%40williamjbowman.com.
[racket-users] TFPIE 2023 call for submissions (deadline Dec 27th)
Please consider submitting, and spread the word! TFPIE 2023 Call for papers https://wiki.tfpie.science.ru.nl/TFPIE2023 (January 12th 2023, Boston, MA, USA, co-located with TFP 2023 and followed by POPL 2023) TFPIE 2023 welcomes submissions describing techniques used in the classroom, tools used in and/or developed for the classroom and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP and Computational Thinking FP and Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy The pedagogy of teaching FP FP and e-learning: MOOCs, automated assessment etc. Best Lectures - more details below In addition to papers, we are requesting best lecture presentations. What's your best lecture topic in an FP related course? Do you have a fun way to present FP concepts to novices or perhaps an especially interesting presentation of a difficult topic? In either case, please consider sharing it. Best lecture topics will be selected for presentation based on a short abstract describing the lecture and its interest to TFPIE attendees. The length of the presentation should be comparable to that of a paper. In addition, the speaker can provide commentary on effectiveness or student feedback. Submissions Potential presenters are invited to submit an extended abstract (4-6 pages) or a draft paper (up to 20 pages) in EPTCS style. The authors of accepted presentations will have their preprints and their slides made available on the workshop's website. Papers and abstracts can be submitted via easychair at the following link: https://easychair.org/conferences/?conf=tfpie2023 After the workshop, presenters are invited to submit (a revised version of) their article for the formal review. The PC will select the best articles for publication in the Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and extended abstracts will not be formally reviewed by the PC. Important Dates Submission deadline: December 27th 2022, Anywhere on Earth. Notification: December 30th 2022 (Note: earlier submissions will receive earlier response) TFPIE Registration Deadline: see https://trendsfp.github.io/register.html Workshop: January 12th 2023 Submission for formal review: April 19th 2023, Anywhere on Earth. Notification of full article: May 24th 2023 Camera ready: July 1st 2023 Program Committee Christopher Anand - McMaster University, Canada Attila Egri-Nagy - Akita International University, Japan Jason Hemann - Seton Hall University, USA Kevin Kappelmann - Technical University of Munich, Germany Elena Machkasova (Chair) - University of Minnesota Morris, USA Kristina Sojakova - INRIA, France Jørgen Villadsen - Technical University of Denmark, Denmark Invited Speaker: Shriram Krishnamurthi, Brown University Registration information: See https://wiki.tfpie.science.ru.nl/TFPIE2023 for updated information. Registration and attendance are mandatory for at least one author of every paper that is presented at the workshop. Only papers that have been presented at TFPIE may be submitted to the post-reviewing process. -- Dr. Elena Machkasova Associate Professor of Computer Science Division of Science and Mathematics University of Minnesota, Morris Office: Sci 2325 (320) 589-6308 http://cda.morris.umn.edu/~elenam/ Pronouns: she/her/hers or any other -- 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/beaa2ef6-afd2-4686-829a-390eb69f5620n%40googlegroups.com. Beyond the Racket Users Google Group, Racket Discussions take place on Discourse ( https://racket.discourse.group/ ) and Discord ( https://discord.gg/6Zq8sH5 ). Discussion (but less active) also takes place on the Racket Slack https://racket.slack.com/ ( sign up at https://racket-slack.herokuapp.com/ ), and IRC #racket https://kiwiirc.com/nextclient/irc.libera.chat/#racket --- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CABVKp4f1siE27gwhHTj85LXvRUFv3nCSB7hdNNEY79vLz_j_Jg%40mail.gmail.com.
[racket-users] TFPIE 2023 call for submissions (deadline Dec 27th)
Please consider submitting and spread the word! TFPIE 2023 Call for papers https://wiki.tfpie.science.ru.nl/TFPIE2023 (January 12th 2023, Boston, MA, USA, co-located with TFP 2023 and POPL 2023) TFPIE 2023 welcomes submissions describing techniques used in the classroom, tools used in and/or developed for the classroom and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP and Computational Thinking FP and Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy The pedagogy of teaching FP FP and e-learning: MOOCs, automated assessment etc. Best Lectures - more details below In addition to papers, we are requesting best lecture presentations. What's your best lecture topic in an FP related course? Do you have a fun way to present FP concepts to novices or perhaps an especially interesting presentation of a difficult topic? In either case, please consider sharing it. Best lecture topics will be selected for presentation based on a short abstract describing the lecture and its interest to TFPIE attendees. The length of the presentation should be comparable to that of a paper. In addition, the speaker can provide commentary on effectiveness or student feedback. Submissions Potential presenters are invited to submit an extended abstract (4-6 pages) or a draft paper (up to 20 pages) in EPTCS style. The authors of accepted presentations will have their preprints and their slides made available on the workshop's website. Papers and abstracts can be submitted via easychair at the following link: https://easychair.org/conferences/?conf=tfpie2023 After the workshop, presenters are invited to submit (a revised version of) their article for the formal review. The PC will select the best articles for publication in the Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and extended abstracts will not be formally reviewed by the PC. Important Dates Submission deadline: December 27th 2022, Anywhere on Earth. Notification: December 30th 2022 (Note: earlier submissions will receive earlier response) TFPIE Registration Deadline: TBA Workshop: January 12th 2023 Submission for formal review: April 19th 2023, Anywhere on Earth. Notification of full article: May 24th 2023 Camera ready: July 1st 2023 Program Committee Christopher Anand - McMaster University, Canada Attila Egri-Nagy - Akita International University, Japan Jason Hemann - Seton Hall University, USA Kevin Kappelmann - Technical University of Munich, Germany Elena Machkasova (Chair) - University of Minnesota Morris, USA Kristina Sojakova - INRIA, France Jørgen Villadsen - Technical University of Denmark, Denmark Registration information See https://wiki.tfpie.science.ru.nl/TFPIE2023 for updated information. Registration and attendance are mandatory for at least one author of every paper that is presented at the workshop. Presenters will have their registration fee waived. Only papers that have been presented at TFPIE may be submitted to the post-reviewing process. Best regards, Elena Machkasova (program committee chair) -- 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/beaa2ef6-afd2-4686-829a-390eb69f5620n%40googlegroups.com. Beyond the Racket Users Google Group, Racket Discussions take place on Discourse ( https://racket.discourse.group/ ) and Discord ( https://discord.gg/6Zq8sH5 ). Discussion (but less active) also takes place on the Racket Slack https://racket.slack.com/ ( sign up at https://racket-slack.herokuapp.com/ ), and IRC #racket https://kiwiirc.com/nextclient/irc.libera.chat/#racket --- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/1f42dee7-49b4-4300-b37e-de0258cdfb95n%40googlegroups.com.
[racket-users] PLDI 2023, Call for Workshops and Tutorials
Please distribute widely: # Call for Workshops and Tutorials PLDI 2023 is a world-class forum for researchers and practitioners in programming language design and implementation. As in previous years, PLDI is soliciting proposals for co-located workshops and tutorials that will take place on **Saturday June 17th**, and **Sunday June 19th**. Please propose your workshop or tutorial via the submission system. The following details will be asked on submission: * Name of the workshop/tutorial. * Duration of the workshop/tutorial. * Organizers: names, affiliation, contact information, brief (100 words) biography. * A short description (150-200 words) of the topic. * Event format: workshop/tutorial; type of submissions, if any; review process; results dissemination. * Expected attendance and target audience within the PLDI community. * How you plan to foster an inclusive environment and promote a diverse attendance. * Information on any previous iterations of the workshop or tutorial. *Note:* Workshops must make their own acceptance decisions by **April 21, 2023** if there will be proceedings (final versions due **May 5, 2023**), or **May 5, 2023** if they do not have proceedings. ## Submission Submission site: https://pldi23.sigplan.org/createProposal/56d4b837-caa0-487c-85b8-61f855c8aa4f Workshops that would like their proceedings included in the ACM Digital Library must submit a proposal by **November 18, 2022**. Workshops and tutorials that will have no formal proceedings should submit a proposal by **November 30, 2022**. ## Review Proposals are reviewed by the Workshop and Tutorials Chairs, and if necessary, by the PLDI general chair. * Proposals will be evaluated according to the relevance of the topic, the expertise and experience of the workshop organizers, and their potential to attract participants. * Proposals submitted between November 18th and 30th will be evaluated on a first-come-first-served basis. ## Notification We will notify workshop/tutorial acceptance by **December 9th*. ## Timeline Submission deadline (with proceedings): **November 18** Submission deadline (no proceedings): **November 30** Notification: **December 9** ## Dissemination A proposal should clearly state how the results of the workshop — i.e., published papers and other outcomes — will be made available to participants and others before and after the workshop event. The Workshops and Tutorials Chair will provide guidance to the organizers of accepted workshops that wish to publish proceedings in the ACM Digital Library. For those that choose to publish their papers in ACM Digital Library, please add the following text in the workshop call for papers and on the website: *AUTHORS TAKE NOTE:* The official publication date is the date the proceedings are made available in the ACM Digital Library. This date may be up to two weeks prior to the first day of your conference. The official publication date affects the deadline for any patent filings related to published work. (For those rare conferences whose proceedings are published in the ACM Digital Library after the conference is over, the official publication date remains the first day of the conference.) Workshops that elect to publish proceedings can do so in the ACM Digital Library with sponsoring by SIGPLAN. The application for SIGPLAN sponsorship includes reviewing the proposed program committee with the SIGPLAN Executive Committee, a process which the chairs will help facilitate. ## Workshop Co-Chairs - Nadia Polikarpova, U. of California at San Diego - Zachary Tatlock, U. of Washington -- 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/beaa2ef6-afd2-4686-829a-390eb69f5620n%40googlegroups.com. Beyond the Racket Users Google Group, Racket Discussions take place on Discourse ( https://racket.discourse.group/ ) and Discord ( https://discord.gg/6Zq8sH5 ). Discussion (but less active) also takes place on the Racket Slack https://racket.slack.com/ ( sign up at https://racket-slack.herokuapp.com/ ), and IRC #racket https://kiwiirc.com/nextclient/irc.libera.chat/#racket --- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/Y0XHINh8UXgsshbT%40williamjbowman.com.
Re: [racket-users] Writing a "command-line front-end" for a language
On Mon, 5 Sept 2022 at 02:20, Shu-Hung You wrote: > > Okay, if you want to bypass the #lang protocol entirely, here is the > needed code. As you have expected, it uses eval and then calls > dynamic-require. > Thanks very much for this code and detailed explanation, that was a great help. -- https://rrt.sc3d.org -- 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/CAOnWdojbFzJeD63jKeciqY0Zqq7WdXB5v%2B__qpwH2N9uEEJHFQ%40mail.gmail.com.
Re: Fwd: [racket-users] Writing a "command-line front-end" for a language
On Sun, 4 Sept 2022 at 19:39, Philip McGrath wrote: > > You may indeed want a tool that supports files without #lang if you are > working with an existing language and there isn't a way to make the #lang > line acceptable to its existing grammar. > That's exactly it! > Despite the title of the chapter, this isn't limited to DrRacket: you also > get editor support for your language in Emacs' racket-mode, VSCode, and > other clients of the Language Server Protocol. > This is very cool! I didn't know until now. In particular, pleasing to this Emacs user! > >- (Small caveat: I have not actually read Beautiful Racket, just >looked at it admiringly, recommended it to others, and wished MB had >written it a year earlier than he did.) > > I think I've already said I found it a good introduction; I will reiterate that recommendation! Thanks very much for the further advice. -- https://rrt.sc3d.org -- 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/CAOnWdogXJ1grax-KJw8SDvmCbEK0QsbrmCvrMt_BJ0ygpv0ApQ%40mail.gmail.com.
Re: [racket-users] Math-quiz program
There are two raco tools that might be of use to you: here’s a link to the documentation for both of them: https://docs.racket-lang.org/guide/exe.html Also, I personally recommend using the discourse forum rather than this mailing list. Following the transition to discourse last year, the users mailing list is much less frequently used. https://racket.discourse.group/ John Clements > On Sep 5, 2022, at 07:25, Hrvoje Blazevic wrote: > > I've been working last several months on a GUI math training/understanding > program for my 6 year old daughter who just started grade 1 (in Philippines - > they start beginning of June). > Originally I started with addition and subtraction, but as every new topic > (math related) was introduced in school (like basic idea of fractions, clock > and many others) and as I saw problems in understanding, I would add a new > exercise to the program. It contains 12 exercises in all now, and is pretty > much complete (I run out of ideas) :-) . > > My problem/question is following. > As I've seen with my daughter, the program is very successful in teaching (at > least it is with my daughter), and she actually enjoys using it (which was > not the case when I originally started with papers of printed problems). > Therefore I would like to post this program on the internet for other parents > to use, but I can't find where Racket compiled/standalone programs are posted. > > I have of-course found Racket packages repository, but (I admit I know > nothing of Racket packages) it does not seem to be what I need. As far as I > see it, packages are for people who use racket, have racket installed on > their computers, and know how to handle packages. > This is definitely not the folks I have in mind for my program. > > So is there such a repository where I can post tarball containing compiled > program, and source code. > > Hrvoje Blazevic > > > -- > 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 > <mailto:racket-users+unsubscr...@googlegroups.com>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/41d08993-f323-4044-8c7c-239b58dcca8en%40googlegroups.com > > <https://groups.google.com/d/msgid/racket-users/41d08993-f323-4044-8c7c-239b58dcca8en%40googlegroups.com?utm_medium=email_source=footer>. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/e6302ee9-c345-45fe-8576-a4fd1223d176%40mtasv.net.
Re: Fwd: [racket-users] Writing a "command-line front-end" for a language
On Sun, 4 Sept 2022 at 10:31, Reuben Thomas wrote: > On Sun, 4 Sept 2022 at 04:13, Philip McGrath > wrote: > >> >> However, in some cases you might really want a program other than >> `racket` as the entry point for your language: for instance, maybe you want >> to have flags for controlling where the output goes. One example of such a >> program is the `scribble` executable included in the main Racket >> distribution. The implementation is in < >> https://github.com/racket/scribble/blob/master/scribble-lib/scribble/run.rkt>, >> and the associated "info.rkt" file (< >> https://github.com/racket/scribble/blob/master/scribble-lib/scribble/info.rkt>) >> arranges for `raco setup` to create a `scribble` to run it. (This example >> uses the old mzscheme-launcher-names/mzscheme-launcher-libraries instead of >> the newer racket-launcher-names/racket-launcher-libraries: see >> documentation at < >> https://docs.racket-lang.org/raco/setup-info.html#%28idx._%28gentag._18._%28lib._scribblings%2Fraco%2Fraco..scrbl%29%29%29 >> >.) >> > > Thanks for the pointer. > > >> It is possible to use Racket to implement languages that don't use #lang, >> but you would loose many advantages like IDE support and well-defined >> separate compilation, and you would need to use some fairly low-level >> mechanisms. Unless there is a hard requirement, I'd recommend that you just >> use #lang in your programs. > > > I'm trying to write a standalone assembler (nothing to do with Racket), so > I'm happy to lose this advantage! > OK, I've had another look, and I still can't see how to do this, so I would appreciate a hint. I have updated my repo to add a launcher script, but again this only works with files that have a #lang line. As I said before, I have worked out how to parse a file without a #lang line (just pass it to my language's read-syntax), but I can't work out how to turn that into a module and execute it. I guess I need something like dynamic-require that takes a syntax-object and an expander module or #%begin-module macro as arguments? -- https://rrt.sc3d.org -- 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/CAOnWdojuQbYuUAkGmN-thwSzq4iEyV%2BA20QzEj1FxUgoRKr5CA%40mail.gmail.com.
Re: Fwd: [racket-users] Writing a "command-line front-end" for a language
On Sun, 4 Sept 2022 at 04:13, Philip McGrath wrote: > > However, in some cases you might really want a program other than `racket` > as the entry point for your language: for instance, maybe you want to have > flags for controlling where the output goes. One example of such a program > is the `scribble` executable included in the main Racket distribution. The > implementation is in < > https://github.com/racket/scribble/blob/master/scribble-lib/scribble/run.rkt>, > and the associated "info.rkt" file (< > https://github.com/racket/scribble/blob/master/scribble-lib/scribble/info.rkt>) > arranges for `raco setup` to create a `scribble` to run it. (This example > uses the old mzscheme-launcher-names/mzscheme-launcher-libraries instead of > the newer racket-launcher-names/racket-launcher-libraries: see > documentation at < > https://docs.racket-lang.org/raco/setup-info.html#%28idx._%28gentag._18._%28lib._scribblings%2Fraco%2Fraco..scrbl%29%29%29 > >.) > Thanks for the pointer. > It is possible to use Racket to implement languages that don't use #lang, > but you would loose many advantages like IDE support and well-defined > separate compilation, and you would need to use some fairly low-level > mechanisms. Unless there is a hard requirement, I'd recommend that you just > use #lang in your programs. I'm trying to write a standalone assembler (nothing to do with Racket), so I'm happy to lose this advantage! There are many possible ways to organize this… Thanks for this, that's exactly what I was after. -- https://rrt.sc3d.org -- 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/CAOnWdogTj%3DzMsqCZJhBv%2BiS8zpU2nqETgsiOOt7Wr7aAOmzNzA%40mail.gmail.com.
Re: [racket-users] Writing a "command-line front-end" for a language
On Sat, 3 Sept 2022 at 19:10, Shu-Hung You wrote: > Running `racket foo.asm` will produce the desired output, so a shell > script that directly passes the arguments to Racket could work. > Otherwise, just use (dynamic-require filename #f) in main.rkt. > Thanks for helping! Don't both of these methods require a #lang line in the input file? That's not part of the assembly format, so I want to be able to specify the language in the main module. Indeed, when I try it with a file with a #lang line, dynamic-require works; when I remove that line, I get an error about a missing module declaration (no surprise). I can see an obvious workaround, namely to slurp the file and prepend a module declaration before dynamic-requiring it, but that's ugly. So it seems that in fact what I want is to call something like dynamic-require with a module object. But I'm not sure what to call or how to get one of those: read-syntax returns a syntax object, not a module, while I don't (yet) know how to apply my expander's #%module-begin to it to obtain a module. At the technical level, foo.asm is in fact an ordinary Racket module, > just like any other .rkt file. Therefore it can be run in the same way > using APIs that require and instantiate modules. > Right! That's what I've obviously not fully understood yet. (Thanks for the side node about moving to Discourse—it's a while since I've been active on the list!) -- https://rrt.sc3d.org -- 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/CAOnWdojngwzQRGz0dj1QpA4OJixOKGMXGLrepdae08D8dhpJfQ%40mail.gmail.com.
[racket-users] Writing a "command-line front-end" for a language
I'm a relative Racket newbie, and I've just enjoyed *Beautiful Racket*. I am working on a Racket implementation of a simple assembler (for the Hack VM in the NAND2Tetris course). I have a partial implementation up and running using #lang lines. I would like to add a more traditional command-line interface, so I can (eventually) say: hackasm foo.asm on a file without a #lang line. My code is available at https://github.com/rrthomas/hackasm Here's the nub of the problem: I can't work out how to call the language evaluator "manually". I have implemented the language as a dialect, so that the "main.rkt" module is "free" to be used for the command-line interface. (Perhaps this can be fixed too, that would be nice!) A typical assembler file might start like this: #lang hackasm/asm @2 D=A @3 When I run this file (e.g. in DrRacket), I get some output as expected: 0010 11101101 0011 (The assembler outputs ASCII-encoded binary!) The contents of my main.rkt looks like this: #lang br/quicklang (require "parser.rkt" "tokenizer.rkt" (submod "asm.rkt" reader)) (module+ main (require racket/cmdline) (let ((filename (command-line #:program "hackasm" ; #:args (filename) filename))) (read-syntax filename (open-input-file filename So far, all I've worked out how to do is run the language's read-syntax function (imported from parser.rkt), and thereby return the parsed syntax object as the result. What I'd like to do is call the evaluator on the parse tree, but after a lot of scratching my head over the Racket documentation and search results, I cannot work out how to do that. I presume the code should look something like: (eval (??? (read-syntax filename (open-input-file filename where in the end I'm eval-ing a form, and where ??? represents something that turns the syntax object into a runnable module. Apologies for the length of this post (I was unsure how I could make it shorter), and thanks in advance for any help! -- https://rrt.sc3d.org -- 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/CAOnWdohy31fHyvUd9rbY8tZFLJKUpevgnZ8jPH2-5_QtSFm%2BhA%40mail.gmail.com.
[racket-users] Call for Participation PLDI 2022
Call for Participation for PLDI 2022, the ACM SIGPLAN Conference on Programming Language Design and Implementation! PLDI is a premier forum for programming language research, broadly construed, including design, implementation, theory, applications, and performance. Come join us, online or in San Diego, to discuss the latest programming languages research! * Website : https://pldi22.sigplan.org/attending/Registration * Time: 13th--17th June 2022 * Place : Catamaran Resort in San Diego, California, USA + online option, comprising live streamed talks + Q and social interaction and events on “gather.town”. ### Important dates: * Early Registration: On or before 16 May, 2022 ### Important rates: Registration rates (in-person) On or before 16 May, 2022After 16 May, 2022 Regular (ACM or SIGPLAN member) $650 $750 Regular (non-member)$725 $825 Student (ACM or SIGPLAN member) $350 $450 Student (non-member)$425 $500 Registration rates (virtual)On or before 16 May, 2022After 16 May, 2022 Regular (ACM or SIGPLAN member) $150 $175 Regular (non-member)$175 $200 Student (ACM or SIGPLAN member) $100 $125 Student (non-member)$125 $150 ### Co-located events: Co-located Conferences: - ISMM, ACM SIGPLAN International Symposium on Memory Management https://conf.researchr.org/home/ismm-2022 - LCTES, ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems https://pldi22.sigplan.org/track/LCTES-2022 Workshops: - ARRAY, the Array Programming Workshop https://pldi22.sigplan.org/home/ARRAY-2022 - EGRAPH, the E-Graph Research, Applications, Practices, and Human-factors Symposium https://pldi22.sigplan.org/home/egraphs-2022 - INFER, the Infer Practitioners Workshop https://pldi22.sigplan.org/home/infer-2022 - MAPS, the Annual Symposium on Machine Programming https://pldi22.sigplan.org/home/maps-2022 - PLMW, the Programming Language Mentoring Workshop https://pldi22.sigplan.org/track/PLMW-PLDI-2022 - SOAP, the ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis https://pldi22.sigplan.org/home/SOAP-2022 Tutorials: https://pldi22.sigplan.org/track/pldi-2022-tutorials - Build your own optimizer with egg! Max Willsey, Zachary Tatlock - Discover[i]: Taming Unbounded Distributed Systems with Modular, Bounded Reasoning Roopsha Samanta, Nouraldin Jaber, Christopher Wagner - Filling the gap between the JavaScript language specification and tools using the JISET family Sukyoung Ryu, Jihyeok Park, Seungmin An - Making C Programs Safer with Checked C Jie Zhou, Michael Hicks, John Criswell - Reasoning About and Discovering LLVM Optimizations John Regehr, Nuno P. Lopes Student Research Competition! - https://pldi22.sigplan.org/track/pldi-2022-SRC -- 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/YjjETlC52k8tBic0%40williamjbowman.com.
[racket-users] TFPIE 2022 March 16 online - last call for participation
Dear All, TFPIE 2022 invites you to attend the conference on March 16 online. The program and the registration link are posted here: https://wiki.tfpie.science.ru.nl/TFPIE2022 Registration is free, but required for the zoom link to be sent. TFPIE is followed by TFP on March 17-18: https://trendsfp.github.io/index.html The registration is the same for the two conferences. More details: The 2022 edition of Trends in Functional Programming in Education will be held *virtually on March 16th 2022*, together with TFP which will be held on March 17-18. Note that *Lambda Days* <https://www.lambdadays.org/lambdadays2022> in Krakow, Poland has been rescheduled to July 28-29, and authors of TFPIE accepted papers are welcome to present their papers at the Lambda Days, in addition to the virtual presentations in March. The goal of TFPIE is to gather researchers, teachers and professionals that use, or are interested in the use of, functional programming in education. TFPIE aims to be a venue where novel ideas, classroom-tested ideas and work-in-progress on the use of functional programming in education are discussed. The one-day workshop will foster a spirit of open discussion by having a review process for publication after the workshop. Hope to see you there! Elena Machkasova -- 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/25b772de-1760-414c-91fa-e8174c604603n%40googlegroups.com.
[racket-users] PLDI 2022 Call for Student Volunteers
Sign up to be a Student Volunteer (SV) and help us make PLDI 2022 a unique experience for all attendants! PLDI 2022 is pleased to offer a number of opportunities for student volunteers, who are vital to the efficient operation and continued success of the conference each year. The student volunteer program is a chance for students from around the world to participate in the conference whilst assisting us in preparing and running the event. In exchange for a fixed number of work hours (usually from 12 to 15) helping with the conference organization, you will be able to closely interact with researchers, mentors, and other students at PLDI 2022. You will be able to support us in-person or virtually. We are looking forward to seeing you in the SV team! Apply using this form: https://forms.gle/iUc857vkwhXXcsBu8 ## Eligibility Applicants can be undergraduate, Master’s, PhD full- or part-time students, of computer science or related fields. ## Duration Applicants must be available for at least four (4) full days between the 12th and 17th of June and will be expected to provide 12-15 hours of volunteering work in that time. Volunteers will also be expected to be available for some amount of pre-conference discussion and training if necessary. Volunteers from all timezones are welcome. ## About Volunteering The skills, talents, and dedication of the Student Volunteers contribute to the overall quality of the conference. The Student Volunteer role this year will mainly involve working with the organizers to prepare for the conference by providing technical assistance to attendees, managing online Q and poster sessions, and supporting active communication in our online environment. ## Qualifications A Student Volunteer should: - Be enthusiastic and highly motivated, with strong interpersonal skills, - Be fluent in English, which is the language of the conference, - Be reliable, punctual and organized. ## Applications The applications and acceptations will be done in two rounds. Please check the dates on this page. Application form: https://forms.gle/fybjNmPH4F8khQsq7 -- 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/YiJtGUYvXfbxyN9P%40williamjbowman.com.
[racket-users] Racket v8.4 released
Racket version 8.4 is now available from https://racket-lang.org/ * Command-line Racket provides a new expression editor by default for its read-eval-print loop (REPL). The new REPL is based on the Chez Scheme expression editor, but extended to use the same language-sensitive syntax coloring and indentation tools as DrRacket. * Typed Racket adds a kind system, preventing programmers from writing nonsensical type expressions. It checks whether type constructors are correctly applied to arguments, and separates type constructors from polymorphic types. The `:kind` form enables checking the kind of a type expression at the REPL. The new system also correctly rejects some ill-formed recursive types. * Racket has a `file-or-directory-stat` for unified information about file-system objects. * DrRacket shows the region affected by an `#;` S-expression comment by fading the commented-out region. * Racket on Chez has faster multiplication and division for some numbers. * Web server: The files dispatcher supports all standard caching-related HTTP response headers (e.g., Cache-Control). * Web server: A new dispatcher captures the common pattern of processing HTTP requests and responses in a layered fashion. * The Web Server supports use of the Cache-Control header, and includes a new wrapping dispatcher. * Expander: add "portal" syntax to support new forms of syntax object binding. * Documentation search is improved. * Some hash operations support an optional `try-order?` argument. * The plot-metrics interface has documentation. * Fonts support OpenType feature settings. * The Gui library has improved support for Wayland. * The computation of quadratic roots is further improved. * The `set/c` contract adds support for random generation. * DrRacket's interactions window supports #lang-specific coloring and indentation. * DrRacket's parenthesis-based keyboard shortcuts change based on the parentheses that each different #lang uses. * The release includes many other bug repairs and other improvements! Transition/Update notes: * To turn off expeditor and make Racket's REPL go back to the old editline/readline-based editor, use the command ,input readline and then restart Racket. Get back to the new expression editor with ,input expeditor To toggle color mode for the new expression editor, use one of the following, which does not require restarting Racket: ,color #false ,color #true * Support for comment fading in DrRacket requires an increment to the "WXME" format version so files with non-text content written by DrRacket v8.4 will open only in v8.4 and later. This does not affect files that consist only of unicode text. * The addition of the kind system to Typed Racket means that certain mild abuses of the type system no longer type check, most notably the 'application' of a polymorphic type. The following people contributed to this release: Alex Harsányi, Alex Knauth, Alexander Shopov, Alexis King, Andrew Mauer-Oats, Andy Keep, Ayman Osman, Ben Greenman, Bob Burger, Bogdan Popa, Cameron Moy, D. Ben Knoble, Fred Fu, Greg Hendershott, Gustavo Massaccesi, Jamie Taylor, Jarhmander, Jesse Alama, Joel Dueck, John Clements, Jordan Johnson, Laurent Orseau, Leif Andersen, Marc Burns, Matthew Flatt, Matthias Felleisen, Mike Engelhart, Mike Sperber, Noah Ma, Oscar Waddell, Pavel Panchekha, Philip McGrath, rgkirch, Robby Findler, Sam Tobin-Hochstadt, Sergiu Ivanov, Sorawee Porncharoenwase, Stefan Schwarzer, Stephen De Gabrielle, Tony Garnock-Jones, Viko Riféo, and Zachary Mao Link to package regressions issue for the 8.4 release: https://github.com/racket/racket/issues/4125 Feedback Welcome -- 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/8c50d317-dd83-44a9-b560-0f7759d49fa1%40mtasv.net.
Re: [racket-users] Vectors, boxes and places
Sounds like a good question to me. Perhaps it would make sense to post it to the discourse group, instead? I’m happy to ask on your behalf if you don’t feel like it. https://racket.discourse.group/ John > On Feb 3, 2022, at 5:58 AM, Tim Jervis wrote: > > Dear Racketeers, > > Is there something I have misunderstood about vectors, boxes and places which > might explain why immutable boxes are not place-message-allowed, but > immutable vectors are? > > > (place-message-allowed? (box-immutable #f)) > #f > > (place-message-allowed? (vector-immutable #f)) > #t > > > > c.f. > > https://docs.racket-lang.org/reference/boxes.html > > A box is like a single-element vector, normally used as minimal mutable > storage. > > Best, > > Tim > > -- > 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/878F140E-3160-4B88-BB8B-4C04B1668BCB%40timjervis.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/3b47b917-cbd6-48f2-8def-b71e396f5d63%40mtasv.net.
[racket-users] PLDI SRC 2022 -- Call for Submissions
for three hours, in which PLDI attendees and in-person judges can walk around and interact with the students. The virtual track will be held in a virtual space that will be available to all PLDI attendees. In addition, we will have a pool of virtual judges that will walk around and interact with the virtual students. For some cross-over, we will organize for a TV in the in-person session, which will rotate through the virtual posters. The top three undergraduate participants and the top three graduate participants (selected across both the virtual and in-person tracks) will proceed to the Final Presentation Round. The final round of SRC will be conducted in a conference room where in-person finalists will first present (streamed over Zoom), and virtual finalists will present via Zoom. Both the virtual and in-person judges/attendees will get a chance to ask questions during the Q session after each talk. # Participation The Student Research Competition (SRC) at PLDI has always strived to improve engagement and accessibility to students around the world. To this aim, we will provide the opportunity for a round of asynchronous peer-review discussions amongst the SRC participants. The peer-review process is an opportunity for the SRC speakers to share their feedback, ask questions to their fellow peers, and help them make improvements for the poster and presentation round. This is also an opportunity for in-person and virtual speakers to engage prior to the SRC poster round. We hope to utilize our experiences over the last two years to enable sufficient engagement in both tracks. We will work to provide tooling support, organization, and publicity to ensure all participants have a positive experience. Good luck, and we hope to see you in June! -- 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/YfMvFzEDTTP7TrgI%40williamjbowman.com.
[racket-users] TFPIE 2022: moving online and extension to Feb 7th
Due to rescheduling of the Lambda Days because of COVID, TFPIE, together with TFP, will be held virtually on March 16th 2022, together with TFP which will be held on March 17-18. There is an optional opportunity to present at the Lambda Days July 28-29 2022 in addition to the virtual presentation in March. Updated TFPIE 2022 Call for papers: https://wiki.tfpie.science.ru.nl/TFPIE2022 The submission deadline is extended to February 7th 2022. TFPIE 2022 welcomes submissions describing techniques used in the classroom, tools used in and/or developed for the classroom and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP and Computational Thinking FP and Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy The pedagogy of teaching FP FP and e-learning: MOOCs, automated assessment etc. Best Lectures - more details below In addition to papers, we are requesting best lecture presentations. What's your best lecture topic in an FP related course? Do you have a fun way to present FP concepts to novices or perhaps an especially interesting presentation of a difficult topic? In either case, please consider sharing it. Best lecture topics will be selected for presentation based on a short abstract describing the lecture and its interest to TFPIE attendees. The length of the presentation should be comparable to that of a paper. In addition, the speaker can provide commentary on effectiveness or student feedback. Submissions Potential presenters are invited to submit an extended abstract (4-6 pages) or a draft paper (up to 20 pages) in EPTCS style. The authors of accepted presentations will have their preprints and their slides made available on the workshop's website. Papers and abstracts can be submitted via easychair at the following link: https://easychair.org/conferences/?conf=tfpie2022 After the workshop, presenters are invited to submit (a revised version of) their article for the formal review. The PC will select the best articles for publication in the Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and extended abstracts will not be formally reviewed by the PC. Important Dates (updated) Submission deadline: *February 7th* 2022, Anywhere on Earth. Notification: *February 11th* 2022 (Note: earlier submissions will receive earlier response) TFPIE Registration Deadline: TBA Workshop: *March 16* 2022 Submission for formal review: *April 29th* 2022, Anywhere on Earth. Notification of full article: June 1st 2022 Camera ready: July 1st 2022 Program Committee Peter Achten, Radboud University, Netherlands Stephen Chang, University of Massachusetts Boston, USA John Hughes, Chalmers University of Technology, Sweden Elena Machkasova (Chair) - University of Minnesota Morris, USA Kristina Sojakova - INRIA, Paris, France Melinda Tóth, Eötvös Loránd University, Budapest, Hungary Keynote speaker: Our keynote talk is "The perfect Functional Programming course" by Peter Achten. Registration information: TFPIE will take place virtually on March 16 2022, together with TFP which will be held on March 17-18. Registration information will be announced shortly. There is no registration fee. Registration and online attendance are mandatory for at least one author of every paper that is presented at the workshop. Only papers that have been presented at TFPIE may be submitted to the post-reviewing process. -- 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/0d76cca2-8828-4a05-8d32-aa98481a9346n%40googlegroups.com.
[racket-users] looking for advice on a web background process manager
I'm considering writing a manager for background processes --- such as send a batch of e-mail or other process that takes a while to finish --- for a web system. I see the challenge here as just writing something that will look like a very basic UNIX shell --- so I'll call it ``web-api-shell'' from now on. (``Web'' because it will be used by a web system through some HTTP API.) This thing has to be flawless. I'm looking for design principles and advice. I don't know which language I will use, but I'd like to use Racket at least as a prototype. I am looking at section 15.4 at https://docs.racket-lang.org/reference/os.html and I'm not sure it gives me all the control I need. I have a more lower view of the job --- fork(), execve(), waitpid(), SIGCHLD. But I suppose Racket handles this much more elegantly that I would in C. Your advice will be very appreciated. (*) Where will it run It will run on GNU systems running the Linux kernel. (*) My own thoughts The interface to shell will be through HTTP requests, so this shell will likely be a web server of some sort. But before I get involved in the web at all, I need the shell working flawlessly. So I need a laboratory first. I could write a program that reads some named pipe on disk to get commands such as ``run this or that'' while I work. (Later I can write a web server replacing this named-pipe interface.) Just like a UNIX shell, this web-api-shell must know all every process it runs. I suppose the work is essentially fork(), execve() followed by waitpid(). One concern I have is the following. Is it possible for a process to simply ``get out of'' the shell? What do I mean by that? A process that does fork() and puts itself into background would leave the web-api-shell's control, wouldn't it? I think I must avoid that. Perhaps I can't let just any process run. Perhaps the web-api-shell must only offer a few processes carefully written by myself --- so that I know they won't put themselves in background. (For instance, I can't let them change PIDs, otherwise I won't have any idea who they are and that's a mess. I'd love to somehow restrict system calls such as fork().) (*) Serialization I also think this web-api-shell must not be invoked in parallel. So I guess I must use some queue of requests with no race condition and pull each request as it comes. Any pointers on how to do this basic thing with my zero experience? (*) What is my level of training? In the past I've studied many parts of Advanced Programming in the UNIX Environment W. Richard Stevens I will definitely have to read it again to get work on this project. Can you mention any UNIX concepts that are of great relevance for this project? I don't think I ever got my mind wrapped around things like sessions, session leaders and so on. Are these concepts relevant to this application? Thank you very much. -- 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/hRIrZF2NP2tUKP8_HV2lLkFr95li_XmhSrzbJCuR1ruwDxy2qyWgC-vREZPyrJMn0oUWj3N6gzSlQ1PBvs_FrwErvOInegt-CQGpPjDG2gw%3D%40protonmail.com.
[racket-users] Trends in Functional Programming in Education 2022 3rd (last) call for submissions
TFPIE 2022 Call for papers https://wiki.tfpie.science.ru.nl/TFPIE2022 (February 11th 2022, Krakow, Poland co-located with TFP 2022 and Lambda Days) TFPIE 2022 welcomes submissions describing techniques used in the classroom, tools used in and/or developed for the classroom and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP and Computational Thinking FP and Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy The pedagogy of teaching FP FP and e-learning: MOOCs, automated assessment etc. Best Lectures - more details below In addition to papers, we are requesting best lecture presentations. What's your best lecture topic in an FP related course? Do you have a fun way to present FP concepts to novices or perhaps an especially interesting presentation of a difficult topic? In either case, please consider sharing it. Best lecture topics will be selected for presentation based on a short abstract describing the lecture and its interest to TFPIE attendees. The length of the presentation should be comparable to that of a paper. In addition, the speaker can provide commentary on effectiveness or student feedback. Submissions Potential presenters are invited to submit an extended abstract (4-6 pages) or a draft paper (up to 20 pages) in EPTCS style. The authors of accepted presentations will have their preprints and their slides made available on the workshop's website. Papers and abstracts can be submitted via easychair at the following link: https://easychair.org/conferences/?conf=tfpie2022 After the workshop, presenters are invited to submit (a revised version of) their article for the formal review. The PC will select the best articles for publication in the Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and extended abstracts will not be formally reviewed by the PC. Important Dates Submission deadline: January 5th 2022, Anywhere on Earth. Notification: January 10th 2022 (Note: earlier submissions will receive earlier response) TFPIE Registration Deadline: February 2nd 2022 Workshop: February 11th 2022 Submission for formal review: April 15th 2022, Anywhere on Earth. Notification of full article: June 1st 2022 Camera ready: July 1st 2022 Program Committee Peter Achten, Radboud University, Netherlands Stephen Chang, University of Massachusetts Boston, USA John Hughes, Chalmers University of Technology, Sweden Elena Machkasova (Chair) - University of Minnesota Morris, USA Kristina Sojakova - INRIA, Paris, France Melinda Tóth, Eötvös Loránd University, Budapest, Hungary Keynote speaker Our keynote talk is "The Perfect Functional Programming Course" by Peter Achten. Registration information This year TFPIE takes place on the second day of the Lambda Days, concurrent with TFP. Participants will need to register for the Lambda Days. Please note that TFP and TFPIE have in-person attendance only. For registration fee, the deadlines, and the link to register see the Lambda Days web site: https://www.lambdadays.org/lambdadays2022 Registration and attendance are mandatory for at least one author of every paper that is presented at the workshop. Presenters will have their registration fee waived. Only papers that have been presented at TFPIE may be submitted to the post-reviewing process. Best regards, Elena Machkasova -- 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/883cedeb-3e7a-452a-bf83-b8f2731dc957n%40googlegroups.com.
Re: [racket-users] HTDP 2ed Learning resources and solutions to exercises
Solutions for the first edition are available at https://htdp.org/2003-09-26/Solutions/ Also, you will probably find a faster response for questions like this at the racket discourse, https://racket.discourse.group/ (You might even find a pointer to 2e solutions? not sure) Best, John Clements > On Dec 15, 2021, at 05:31, acate...@gmail.com wrote: > > Its one of my goals in 2022 to teach myself programming. To kick this goal > off early, I have decided to pick up HTDP 2e from Amazon. After a cursory > glance through the book and working through a few problems. I notice that > there are no provided solution/ answer to the exercises in the book. Which > means that there is no way to check my solutions against the proper > recommended way to solve the exercises. As a result, I have no idea if I am > actual on the right track in this learning process. Where can I find the > solutions to the exercises in HTDP? If there are no solutions what book > would you recommend that would be suited for a self-learner? > > > Thanks > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/c5d6d826-c6f8-4d69-a021-9a843e3b58den%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/59ba8a1e-f784-4a14-8784-0695ee0a2f63%40mtasv.net.
Re: [racket-users] Discourse - Mailing list mode
I just tried it, from a new account that wasn’t associated with an account, and it looks like it went through … which is actually kind of frightening. Can’t a random spammer just send email to this address? I considered doing it as a stunt, but decided it would be nicer to ask about it first. John > On Dec 9, 2021, at 10:52, Sam Tobin-Hochstadt wrote: > > It appears that enabling this is quite simple. I believe I have set it > up so that emailing racket+uncategorize...@discoursemail.com should > create a new topic in the Uncategorized category. Feel free to test it > out. > > Sam > > On Thu, Dec 9, 2021 at 8:27 AM Stephen De Gabrielle > wrote: >> >>> it’s becoming apparent to me that setting up posting via email is frankly >>> difficult; I think that monitoring the list using mailing-list mode is >>> plausible, but posting, at this point, is not. >> >> I had a chat with a Discourse consultant and they thought posting by email >> was possible if you self host, but self hosting with mailing list would >> require both a hosting provider, and a send mail provider (he uses digital >> ocean with sendgrid or mailgun). Receiving email is handled by the 'mail >> receiver container' if you are self hosting. >> >> It was a casual conversation, and I don't know him well. It would be good >> to know if other PL communities have done this >> >> stephen >> >> >> >> On Wed, Dec 8, 2021 at 6:47 PM 'John Clements' via Racket Users >> wrote: >>> >>> Your points are well taken, and moving away from a traditional mailing list >>> is not a decision that we took lightly; the fact is that we were simply >>> *failing* when it came to moderating the mailing list as run by google >>> groups, and running one through mailman was even worse. It appears that >>> discourse will allow us to spread the load of moderating the group across >>> the members of the group, rather than depending on one or two points of >>> failure. >>> >>> BTW, lest you think that I think that discourse solves all our problems: >>> it’s becoming apparent to me that setting up posting via email is frankly >>> difficult; I think that monitoring the list using mailing-list mode is >>> plausible, but posting, at this point, is not. I guess I shouldn’t be >>> shocked: that’s the whole problem with email, it’s not authenticated in any >>> reasonable or widely used way. >>> >>> Regardless, I’m happy with the move: we have about 181 people registered, >>> and the volume there looks robust and sustainable. >>> >>> John >>> >>>> On Dec 8, 2021, at 13:16, George Neuner wrote: >>>> >>>> >>>> On 12/8/2021 12:34 PM, James Platt wrote: >>>>> On Dec 8, 2021, at 10:45 AM, George Neuner wrote: >>>>> >>>>>> It's a big deal if you are (or were) following multiple groups. >>>>> >>>>> I don't understand. Why is this an issue? I find it very convenient to >>>>> filter each group into it's own folder in email. If this were a >>>>> non-technical group, you wouldn't expect everyone to know how to do that >>>>> but anyone who is a programmer ought to have no problem configuring >>>>> filters and folders. >>>> >>>> If you had continued reading, you would have seen my comment that NOT ALL >>>> news groups support list distribution or posting via email. NNTP is not >>>> email. Usenet group moderators[*] can choose how to make their groups >>>> available: the default is via list distribution and NNTP both, but the >>>> moderator can deliberately disable one or the other - or only enable >>>> digests via email, or disable posting. >>>> >>>> My complaint is having to read some things via NNTP and others through >>>> email because, while there are programs that do both, I haven't found any >>>> single program that does BOTH WELL. And that is without even considering >>>> the growing number of ... don't want to confuse by saying "groups", let's >>>> call them "crowds" ... that have abandoned Usenet entirely in favor of web >>>> forums. >>>> >>>> George >>>> >>>> [*] even unmoderated groups have a moderator/administrator - by default it >>>> is whoever started the group. >>>> >>>> >>>> -- >>>> You re
[racket-users] PLDI 2022 Call for (Self-) Nomiation to Artifact Evaluation Committee
Please distribute widely: We are looking for motivated students and researchers to be members of the PLDI 2022 Artifact Evaluation Committee (AEC). This year, we are accepting (self-)nominations for the AEC. The artifact evaluation process aims to promote, share and catalog the research artifacts of papers accepted to the PLDI research track. The self-nomination form is available at: https://forms.gle/UbLPDdFE4WCohQr28 You can also nominate other people (e.g., students, colleagues) at: https://forms.gle/nDtW7wtpkGvU8MQBA The instructions for committee members are available here: https://pldi22.sigplan.org/track/pldi-2022-PLDI-Research-Artifacts#Info-for-Reviewers As a committee member, your primary responsibilities would be to review the artifacts submitted corresponding to the already accepted papers in the main research track. In particular, you may have to run the associated tool, check whether the results in the main paper can be reproduced, and inspect the data. PLDI will use a three-phase artifact evaluation review process. We expect the bulk of the review work to take place between March 8 and March 25. Each artifact will take about 8h to review, and reviewers will be assigned 3 to 4 reviews. Come join us in improving the quality of research in our field! AEC Chairs: - Xinyu Wang, IMDEA Software Institute (Spain) - Niki Vazou, University of Michigan (U.S.) -- 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/YbFDT7VtBrh/fdMI%40williamjbowman.com.
Re: [racket-users] Discourse - Mailing list mode
Your points are well taken, and moving away from a traditional mailing list is not a decision that we took lightly; the fact is that we were simply *failing* when it came to moderating the mailing list as run by google groups, and running one through mailman was even worse. It appears that discourse will allow us to spread the load of moderating the group across the members of the group, rather than depending on one or two points of failure. BTW, lest you think that I think that discourse solves all our problems: it’s becoming apparent to me that setting up posting via email is frankly difficult; I think that monitoring the list using mailing-list mode is plausible, but posting, at this point, is not. I guess I shouldn’t be shocked: that’s the whole problem with email, it’s not authenticated in any reasonable or widely used way. Regardless, I’m happy with the move: we have about 181 people registered, and the volume there looks robust and sustainable. John > On Dec 8, 2021, at 13:16, George Neuner wrote: > > > On 12/8/2021 12:34 PM, James Platt wrote: >> On Dec 8, 2021, at 10:45 AM, George Neuner wrote: >> >> > It's a big deal if you are (or were) following multiple groups. >> >> I don't understand. Why is this an issue? I find it very convenient to >> filter each group into it's own folder in email. If this were a >> non-technical group, you wouldn't expect everyone to know how to do that but >> anyone who is a programmer ought to have no problem configuring filters and >> folders. > > If you had continued reading, you would have seen my comment that NOT ALL > news groups support list distribution or posting via email. NNTP is not > email. Usenet group moderators[*] can choose how to make their groups > available: the default is via list distribution and NNTP both, but the > moderator can deliberately disable one or the other - or only enable digests > via email, or disable posting. > > My complaint is having to read some things via NNTP and others through email > because, while there are programs that do both, I haven't found any single > program that does BOTH WELL. And that is without even considering the > growing number of ... don't want to confuse by saying "groups", let's call > them "crowds" ... that have abandoned Usenet entirely in favor of web forums. > > George > > [*] even unmoderated groups have a moderator/administrator - by default it is > whoever started the group. > > > -- > 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/5f17-59b4-a381-ddd7-25b435887694%40comcast.net. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/bacee3b2-b372-4dd0-af60-c657ba984936%40mtasv.net.
[racket-users] Trends in Functional Programming in Education 2022 2nd call for submissions
Hope you submit your work to TFPIE 2022! Elena TFPIE 2022 Call for papers https://wiki.tfpie.science.ru.nl/TFPIE2022 (February 11th 2022, Krakow, Poland co-located with TFP 2022 and Lambda Days) TFPIE 2022 welcomes submissions describing techniques used in the classroom, tools used in and/or developed for the classroom and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP and Computational Thinking FP and Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy The pedagogy of teaching FP FP and e-learning: MOOCs, automated assessment etc. Best Lectures - more details below In addition to papers, we are requesting best lecture presentations. What's your best lecture topic in an FP related course? Do you have a fun way to present FP concepts to novices or perhaps an especially interesting presentation of a difficult topic? In either case, please consider sharing it. Best lecture topics will be selected for presentation based on a short abstract describing the lecture and its interest to TFPIE attendees. The length of the presentation should be comparable to that of a paper. In addition, the speaker can provide commentary on effectiveness or student feedback. Submissions Potential presenters are invited to submit an extended abstract (4-6 pages) or a draft paper (up to 20 pages) in EPTCS style. The authors of accepted presentations will have their preprints and their slides made available on the workshop's website. Papers and abstracts can be submitted via easychair at the following link: https://easychair.org/conferences/?conf=tfpie2022 After the workshop, presenters are invited to submit (a revised version of) their article for the formal review. The PC will select the best articles for publication in the Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and extended abstracts will not be formally reviewed by the PC. Important Dates Submission deadline: January 5th 2022, Anywhere on Earth. Notification: January 10th 2022 (Note: earlier submissions will receive earlier response) TFPIE Registration Deadline: TBA Workshop: February 11th 2022 Submission for formal review: April 15th 2022, Anywhere on Earth. Notification of full article: June 1st 2022 Camera ready: July 1st 2022 Program Committee Peter Achten, Radboud University, Netherlands Stephen Chang, University of Massachusetts Boston, USA John Hughes, Chalmers University of Technology, Sweden Elena Machkasova (Chair) - University of Minnesota Morris, USA Kristina Sojakova - INRIA, Paris, France Melinda Tóth, Eötvös Loránd University, Budapest, Hungary Keynote speaker Our keynote talk is "The perfect Functional Programming course" by Peter Achten. Registration information This year TFPIE takes place on the second day of the Lambda Days, concurrent with TFP. Participants will need to register for the Lambda Days. Please note that TFP and TFPIE have in-person attendance only. For registration fee, the deadlines, and the link to register see the Lambda Days web site: https://www.lambdadays.org/lambdadays2022 Registration and attendance are mandatory for at least one author of every paper that is presented at the workshop. Presenters will have their registration fee waived. Only papers that have been presented at TFPIE may be submitted to the post-reviewing process. Best regards, Elena Machkasova -- 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/ee4d4e9d-5361-438d-b0eb-065c8034408cn%40googlegroups.com.
[racket-users] deleting terms of service for discourse group
Following up on feedback from y’all, we’ve deleted the terms of service for the racket discourse group. https://racket.discourse.group/tos Hopefully this (lack of) TOS allays concerns about participation in the discourse group. John -- 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/c97b732f-e31a-4081-ad4a-a1bfd6d39e2d%40mtasv.net.
Re: [racket-users] Anyone successfully filtering Italian spam?
My spamassassin catches most of it, but also sometimes catches real list emails because it has stopped trusting racket-users. Some combination of bayes and txrep plugins are doing the heavy lifting, I think. -- William J. Bowman On Mon, Nov 29, 2021 at 05:45:37PM -0600, Nathaniel Griswold wrote: > It’s getting through my filters, neither rspamd or my local client can catch > on to it. > > Is there a good simple filter? > > Nate > > -- > 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/81262C45-D4BE-45DB-B126-5BD11274299A%40nan.sh. -- 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/YaVwusmUite/nAw0%40williamjbowman.com.
Re: [racket-users] Racket Discourse
I’m sorry to hear that! Several things to check/try 1) I see the confirmation email coming from “rac...@discoursemail.com”, with subject line "[Racket Discussions] Confirm your new account” Maybe it’s in your junk folder? 2) You can always ignore the given url and just go to racket.discourse.group and sign up manually, perhaps that will work. Let me know if I can help any further, I do know that people have signed up using gmail accounts. John > On Nov 23, 2021, at 12:25, damien...@gmail.com > wrote: > > if i create an account following the link at the end of this message , i > never get verification email at my google address i specified. > > On Sunday, November 21, 2021 at 7:09:21 PM UTC+1 johnbclements wrote: > TL;DR: Go to > > https://racket.discourse.group/invites/okLTSrQw1T > > and sign up for Racket Discourse (https://racket.discourse.group/) > > # Thoughts behind the move: > > Over time, it has become steadily more apparent that email-only > mailing lists are an outdated communication medium for the Racket > community. More recent arrivals in our community have generally > chosen other platforms like slack or discord to carry on discussions. > As a result, the signal-to-noise ratio of the racket users mailing list > has dropped below the level of viability. > > In short, it’s time to give up on the mailing list. > > After a good deal of research, it looks like there’s room for a whole > bunch of discussion platforms for Racket, but it also seems as though > there should be a “permanent” one; it should be archived, it should be > searchable in its entirety, and it should not tie us to someone else’s > plan to monetize user data. > > Given these criteria, the winner is Discourse, an open-source > messaging platform built by Jeff Atwood, Robin Ward, and Sam > Saffron. It has a reasonable business model (they host projects like > ours unless they get really big, whereupon you can either host it > yourself or pay them to do it); it’s widely used by other language > communities; and it appears to do most of what we want. > > # So where can I sign up? > > Sign up here: https://racket.discourse.group/invites/okLTSrQw1T > > The discourse platform has been in a “soft opening” phase for about > two weeks now, since RacketCon, and we have about a hundred users. > You’re receiving this message because we’d like to have *YOU* there > as well. > > # Can I still receive messages like a mailing list? > > Yes, you can. I have it enabled myself! > To use discord as a mailing-list: > Sign up, go to Preferences > Email, and tick “Enable mailing list mode'. > > Yours, > > John Clements & Stephen De Gabrielle > > -- > 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/a1cc04f5-25f6-4d0e-aeda-a656c18e5604n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/e869aa79-b8c8-4d51-9737-ebdc2c5eb88e%40mtasv.net.
Re: the end of the [racket-users] mailing list and the migration to Discourse as a forum for Racket
I think I agree with pretty much everything you’ve written here. I will note that your problem with sending email to the mailing list from a different address *is* one I’ve experienced, many hundreds of times. I think your #1 and your #5 is more or less what blog.racket-lang.org is. I see Discourse as our best choice for #2. For chat, it sounds like most folks like IRC, Slack, or Discord. I’m not generally in that market, so I don’t think my opinions are worth much, there. I think there’s some hope that discourse might help out with #4, as well. Best, John > On Nov 22, 2021, at 16:05, Siddhartha Kasivajhula wrote: > > That first email reads like a cross between a mathematical proof and some > kind of satire. Good stuff :) > > The broad communication needs seem to be: > > (1) a bulletin board / a channel for announcements > (2) a forum / a channel for discussions > (3) chat / a realtime channel. > (4) a knowledge base > (5) a broadcast / external-facing medium > > It sounds like the proposal here is to use Discourse for both (1) and (2). > All of the above become (4) if they are archived, but there is also the wiki > (which I didn't know about) and of course the website and docs. Anyone can > tweet @racketlang for (5), I guess. And we haven't really talked about (3) > yet. > > Some considerations people have brought up include: > > Noise: I agree that Discourse is likely to have more volume. As a result, > simply using it in mailing list mode isn't exactly a 1-to-1 replacement, > since the volume of emails would be higher, making it less appropriate for > announcements. It would be nice to be able to have more fine-grained controls > over which messages get emailed (e.g. in terms of category or activity). The > other (complementary, in my view) option is to use digest mode. In > traditional mailing lists we pick one or the other. In Discourse, it seems > that if you visit the site, it doesn't send you the digest for that day. It > would be nice if it could be configured to always send a digest, to actually > emulate mailing list behavior. Finally, I did notice that I wasn't able to > reply to a Discourse post from my phone. It looked like my phone email client > was using the default sender instead of the Discourse-specific one. I don't > recall that happening in similar situations before, but it's entirely > possible that this is a problem with my email client. In any case, with these > improvements, I do think Discourse could be compelling as a replacement for > the mailing list for most people. > > Open source: I agree this is an important criterion (which is one reason > you'll find me on IRC rather than Discord or Slack). Phil's point that Google > Groups isn't open source while Discourse is, seems a compelling argument for > Discourse here. > > Terms of service: Can't believe I signed my rights away to company_name > without even reading applicable_laws in jurisdiction_here. > > > > > On Mon, Nov 22, 2021 at 9:19 AM Sage Gerard wrote: > Mozilla's notes on their own instance summarizes an email-exclusive > workflow well. > > https://discourse.mozilla.org/t/how-do-i-use-discourse-via-email/15279 > > On 11/22/21 12:16 PM, 'John Clements' via Racket Users wrote: > > Yes, I believe that replies by email are currently enabled. Here, let me > > test that. > > > > … > > > > Oh, yeah… can’t do that, the incoming email address isn’t the one that I > > send from. Sigh. Perhaps someone else can try this? > > > > One thing that I know isn’t set up yet is starting a new topic by email. I > > know it’s possible, but somebody needs to read the docs and check what’s > > required in order to set it up. > > > > John > > > >> On Nov 22, 2021, at 11:56, Sage Gerard wrote: > >> > >> Y'all are configuring Discourse to allow replies by emails too, right? > >> > >> On 11/22/21 11:00 AM, J. Ryan Stinnett wrote: > >>> On Mon, 22 Nov 2021 at 15:25, Martin Weigele wrote: > >>> A discourse type forum - we had this discussions in other contexts again > >>> and > >>> again - may be a better choice for persons who have the luxury they can > >>> concentrate on very few thingies. For all others, mailinglists are a much > >>> better choice, you can follow many developments in one place: your mail > >>> client, with a completely standard UI. > >>> > >>> Discourse has a mailing list mode each user can choose to enable which > >>> allows them to receive every post to their mail client, so you can > >>> continue to use your mail client workflow for followi
Re: the end of the [racket-users] mailing list and the migration to Discourse as a forum for Racket
Yes, I believe that replies by email are currently enabled. Here, let me test that. … Oh, yeah… can’t do that, the incoming email address isn’t the one that I send from. Sigh. Perhaps someone else can try this? One thing that I know isn’t set up yet is starting a new topic by email. I know it’s possible, but somebody needs to read the docs and check what’s required in order to set it up. John > On Nov 22, 2021, at 11:56, Sage Gerard wrote: > > Y'all are configuring Discourse to allow replies by emails too, right? > > On 11/22/21 11:00 AM, J. Ryan Stinnett wrote: >> On Mon, 22 Nov 2021 at 15:25, Martin Weigele wrote: >> A discourse type forum - we had this discussions in other contexts again and >> again - may be a better choice for persons who have the luxury they can >> concentrate on very few thingies. For all others, mailinglists are a much >> better choice, you can follow many developments in one place: your mail >> client, with a completely standard UI. >> >> Discourse has a mailing list mode each user can choose to enable which >> allows them to receive every post to their mail client, so you can continue >> to use your mail client workflow for following messages over there as well. >> >> - Ryan >> -- >> 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/CA%2B952WrzFB-FVWzn0%3DmES3kLd5XsU6gXqG8Vi8gij7Fz0J_Qgw%40mail.gmail.com. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/37a16e37-a38f-906f-3f7a-4c008e5a0a76%40sagegerard.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/df2d0a47-804e-4275-a4b3-dbfd2116a702%40mtasv.net.
Re: [racket-users] Racket Discourse
Good questions: 1) Yes, Sam mentioned the discourse group at RacketCon, and there was some “hallway” discussion about it. 2) No, no sponsor was involved. Yikes! Indeed, I’m not aware that Racket *has* any sponsors currently, aside from the research and infrastructure grants that are being funded by the NSF et cetera. John > On Nov 22, 2021, at 09:52, Sage Gerard wrote: > > Thanks for checking on this. I'd expect something like a CoC more than a ToS > in this case, but terms are terms :) > If you don't mind, I have a couple of follow up questions. > > • Were "rank-and-file" Racket contributors alerted to this change in > advance? Say, in a RacketCon speech? I may have missed it. > • Did a sponsor play any role in this transition? > On 11/22/21 9:49 AM, John Clements wrote: >> I’m actually very heartened to see the boilerplate here; it sounds like this >> is something we can edit, and not something imposed by Discourse. If that’s >> the case, then it certainly seems likely that we can find some language (or, >> more importantly, *lack* of language) that makes more of us happy. >> >> I, for one, am shocked to see binding arbitration language in here: I think >> binding arbitration is one of the most revolting elements of corporate >> control in our society today, and if we were unable to remove the binding >> arbitration clause, I would likely abandon discourse myself. >> >> Sounds like the next step is to come up with a TOS that’s acceptable to all, >> or find a way to remove it entirely. >> >> John >> >> >>> On Nov 22, 2021, at 04:54, Norman Gray >>> wrote: >>> >>> >>> Greetings. >>> >>> On 22 Nov 2021, at 4:24, Sage Gerard wrote: >>> >>> >>>> But I have to ask, who wrote the ToS? Who is "the company" in its >>>> >>>> context? Discord? One of the Racket team's universities? A sponsor? >>>> >>> I'm not sure who 'the company' is, either, but they appear to be called >>> 'company_name' (catchy!), and that users are notified that disputes can >>> only be arbitrated in city_for_disputes, under governing_law. *cough* >>> >>> Such curiosities aside, all of that does represent unappealingly more >>> legalese than one expects for a mailing list. But since the current list >>> is hosted at googlegroups, and since it's not obvious that Discourse Corp >>> is more predatory than Google Corp (indeed, the former is dispensing >>> freemium-ware rather than ad-ware, so are more attractive in terms of >>> business model), it feels irrational for me to be too put off by it. >>> >>> Best wishes, >>> >>> Norman >>> >>> >>> -- >>> Norman Gray : >>> https://nxg.me.uk >>> >>> SUPA School of Physics and Astronomy, University of Glasgow, UK >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Racket Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to >>> racket-users+unsubscr...@googlegroups.com >>> . >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/racket-users/BEC261BF-C274-4221-8F62-C77D181ED1EF%40glasgow.ac.uk >>> . >>> -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/f00c26e6-f223-45d0-b725-f0b2fb421e4c%40mtasv.net.
Re: the end of the [racket-users] mailing list and the migration to Discourse as a forum for Racket
I’m … super confused by this message. Did I miss something? I feel like this message has a subtext that I’m completely missing. John > On Nov 22, 2021, at 08:06, Etan Wexler wrote: > > The stewards of Racket have decided that it’s time to give up on the mailing > list (that is, racket-users, to which this message is a contribution). The > stewards of Racket have designated another forum for Racket as the successor > to racket-users. This other forum for discussing Racket has as its basis the > software named “Discourse”, which is open‐source. Enlisting is prerequisite > to contributing to the Discursive forum for Racket. Enlisting is prerequisite > to receiving as Internet mail the contributions to the Discursive forum for > Racket. The stewards of Racket have published a facility for enlisting as a > participant in the Discursive forum for Racket. > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/57281fc0-ae2e-409b-9df6-9b87efc35433%40mtasv.net.
Re: [racket-users] Racket Discourse
I’m actually very heartened to see the boilerplate here; it sounds like this is something we can edit, and not something imposed by Discourse. If that’s the case, then it certainly seems likely that we can find some language (or, more importantly, *lack* of language) that makes more of us happy. I, for one, am shocked to see binding arbitration language in here: I think binding arbitration is one of the most revolting elements of corporate control in our society today, and if we were unable to remove the binding arbitration clause, I would likely abandon discourse myself. Sounds like the next step is to come up with a TOS that’s acceptable to all, or find a way to remove it entirely. John > On Nov 22, 2021, at 04:54, Norman Gray wrote: > > > Greetings. > > On 22 Nov 2021, at 4:24, Sage Gerard wrote: > >> But I have to ask, who wrote the ToS? Who is "the company" in its >> >> context? Discord? One of the Racket team's universities? A sponsor? > > I'm not sure who 'the company' is, either, but they appear to be called > 'company_name' (catchy!), and that users are notified that disputes can only > be arbitrated in city_for_disputes, under governing_law. *cough* > > Such curiosities aside, all of that does represent unappealingly more > legalese than one expects for a mailing list. But since the current list is > hosted at googlegroups, and since it's not obvious that Discourse Corp is > more predatory than Google Corp (indeed, the former is dispensing > freemium-ware rather than ad-ware, so are more attractive in terms of > business model), it feels irrational for me to be too put off by it. > > Best wishes, > > Norman > > > -- > Norman Gray : https://nxg.me.uk > SUPA School of Physics and Astronomy, University of Glasgow, UK > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/BEC261BF-C274-4221-8F62-C77D181ED1EF%40glasgow.ac.uk. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/0691253b-ef19-4534-b0ec-8faeca204807%40mtasv.net.
Re: [racket-users] Racket Discourse
Many thanks for your thoughts. I appreciate that your time and inbox space is at a premium, and I’ll try to be careful about posting things to more than one forum. Best, John Clements > On Nov 21, 2021, at 22:53, Sorawee Porncharoenwase > wrote: > > My personal opinion is that, if we want Discourse to be a replacement of the > mailing list, then we should treat it like one. Right now, it’s a combination > of the mailing list, wiki, FAQ site, and whatnot. And I don’t want one more > email in my inbox when someone decides to add an entry to the FAQ. > > As concrete examples, consider: > > • > https://racket.discourse.group/t/urlang-is-javascript-with-a-sane-syntax/119 > • https://racket.discourse.group/t/gui-builder-designer/151 > I’m not sure what’s the point of these posts in the context of the mailing > list. Stephen definitely knows MrEd designer and has been promoting it for > years, so this looks like his attempt to build a wiki/FAQ on Discourse. While > I really do appreciate Stephen’s effort into building and maintaining the > valuable wiki/FAQ at https://github.com/racket/racket/wiki, I personally > don’t think a mailing list is an appropriate medium for it. Urlang is great, > but I don’t understand why we are rehashing it now on Discourse. Will we also > see 1735 more posts to rehash every package on the package website in the > future? > > Another issue is cross posting. Often posts are shared to all Slack, Discord, > Reddit, the current mailing list, and whatnot (and also in the other > direction). It makes sense to do that for event announcements. I’m not sure > the same can be said for other posts. They are inundating (at least to me), > especially if they happen a lot. > > I understand that there's a spam problem on the current mailing list and in > fact have been complaining constantly on Slack. I actually even proposed to > Sam last year to consider Discourse as a replacement of the mailing list, so > I'm not against the software at all if that's what you worry about. > > To be clear, no offense to anyone at all. It could be that my expectation of > the mailing list is far off from most people, and if that’s the case, I’d > simply excuse myself from it. > > On Sun, Nov 21, 2021 at 3:42 PM Philip McGrath > wrote: > I've long been in the basically-content-with-the-mailing-list camp, but I've > recently come around to the view that the status quo is untenable. I looked > into it after Racket 'Con and discovered the mailing list had shrunk > especially much for me, because the Google Groups spam filters were letting > through so much spam that Google spam filters on one hop of my receiving side > have been classifying a great deal of legitimate mailing list traffic as spam. > > I haven't done much with Discourse yet, but it seems promising, and I hope it > works out. > > I'd guess the list administrators have tried this already, but, just in case, > the Google Group settings should have a "Spam message handling" setting that > could be set to "Moderate without notifying content moderators" (see > https://support.google.com/groups/answer/2464926?hl=en#posting=%2Csettings-reference%2Cadvanced-settings-reference). > If this is the official moment for giving up on this mailing list, it would > probably be good to turn up these settings to some draconian level anyway, > just to leave one fewer spam target on the internet. > > -Philip > > On Sun, Nov 21, 2021 at 6:08 PM 'John Clements' via Racket Users > wrote: > Wait, you think that’s high traffic? Gee whiz, the mailing list *has* shrunk, > hasn’t it? > > Okay, that was not an entirely serious reply, but I do think that in contrast > to the discord & slack channels, the discourse is likely to be searchable and > at least lightly curated six months from now. Also, if you take a look at the > mailing list archive > > https://www.mail-archive.com/racket-users@googlegroups.com/ > > … you’ll see a *shocking* amount of spam. Many of us don’t see this because > we have semi-reasonable spam filters, but others are putting up with what > looks like more than 50% spam on this list. That’s just not acceptable. > > John > > > > On Nov 21, 2021, at 14:14, Sorawee Porncharoenwase > > wrote: > > > > I could be in the minority here, but as an early proponent of Discourse to > > replace the mailing list (even before RacketCon), I feel reluctant to join > > it after observing it for a while. It has a very high traffic, with almost > > 100% of the contents being cross-posted everywhere else (and vice versa) > > anyway. > > > > While I appreciate any efforts in
Re: [racket-users] Racket Discourse
Wait, you think that’s high traffic? Gee whiz, the mailing list *has* shrunk, hasn’t it? Okay, that was not an entirely serious reply, but I do think that in contrast to the discord & slack channels, the discourse is likely to be searchable and at least lightly curated six months from now. Also, if you take a look at the mailing list archive https://www.mail-archive.com/racket-users@googlegroups.com/ … you’ll see a *shocking* amount of spam. Many of us don’t see this because we have semi-reasonable spam filters, but others are putting up with what looks like more than 50% spam on this list. That’s just not acceptable. John > On Nov 21, 2021, at 14:14, Sorawee Porncharoenwase > wrote: > > I could be in the minority here, but as an early proponent of Discourse to > replace the mailing list (even before RacketCon), I feel reluctant to join it > after observing it for a while. It has a very high traffic, with almost 100% > of the contents being cross-posted everywhere else (and vice versa) anyway. > > While I appreciate any efforts into promoting the site, I do think different > content has different appropriate mediums. For example, FAQs probably should > go to the wiki. There's no need to clutter anyone's inbox for this type of > content. > > On Sun, Nov 21, 2021 at 10:09 AM 'John Clements' via Racket Users > wrote: > TL;DR: Go to > >https://racket.discourse.group/invites/okLTSrQw1T > > and sign up for Racket Discourse (https://racket.discourse.group/) > > # Thoughts behind the move: > > Over time, it has become steadily more apparent that email-only > mailing lists are an outdated communication medium for the Racket > community. More recent arrivals in our community have generally > chosen other platforms like slack or discord to carry on discussions. > As a result, the signal-to-noise ratio of the racket users mailing list > has dropped below the level of viability. > > In short, it’s time to give up on the mailing list. > > After a good deal of research, it looks like there’s room for a whole > bunch of discussion platforms for Racket, but it also seems as though > there should be a “permanent” one; it should be archived, it should be > searchable in its entirety, and it should not tie us to someone else’s > plan to monetize user data. > > Given these criteria, the winner is Discourse, an open-source > messaging platform built by Jeff Atwood, Robin Ward, and Sam > Saffron. It has a reasonable business model (they host projects like > ours unless they get really big, whereupon you can either host it > yourself or pay them to do it); it’s widely used by other language > communities; and it appears to do most of what we want. > > # So where can I sign up? > > Sign up here: https://racket.discourse.group/invites/okLTSrQw1T > > The discourse platform has been in a “soft opening” phase for about > two weeks now, since RacketCon, and we have about a hundred users. > You’re receiving this message because we’d like to have *YOU* there > as well. > > # Can I still receive messages like a mailing list? > > Yes, you can. I have it enabled myself! > To use discord as a mailing-list: > Sign up, go to Preferences > Email, and tick “Enable mailing list mode'. > > Yours, > > John Clements & Stephen De Gabrielle > > -- > 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/9d080367-1b70-4818-8e76-8c6714db404c%40mtasv.net. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/4b85e73f-4233-4b77-8d06-96b4afdebc24%40mtasv.net.
[racket-users] Racket Discourse
TL;DR: Go to https://racket.discourse.group/invites/okLTSrQw1T and sign up for Racket Discourse (https://racket.discourse.group/) # Thoughts behind the move: Over time, it has become steadily more apparent that email-only mailing lists are an outdated communication medium for the Racket community. More recent arrivals in our community have generally chosen other platforms like slack or discord to carry on discussions. As a result, the signal-to-noise ratio of the racket users mailing list has dropped below the level of viability. In short, it’s time to give up on the mailing list. After a good deal of research, it looks like there’s room for a whole bunch of discussion platforms for Racket, but it also seems as though there should be a “permanent” one; it should be archived, it should be searchable in its entirety, and it should not tie us to someone else’s plan to monetize user data. Given these criteria, the winner is Discourse, an open-source messaging platform built by Jeff Atwood, Robin Ward, and Sam Saffron. It has a reasonable business model (they host projects like ours unless they get really big, whereupon you can either host it yourself or pay them to do it); it’s widely used by other language communities; and it appears to do most of what we want. # So where can I sign up? Sign up here: https://racket.discourse.group/invites/okLTSrQw1T The discourse platform has been in a “soft opening” phase for about two weeks now, since RacketCon, and we have about a hundred users. You’re receiving this message because we’d like to have *YOU* there as well. # Can I still receive messages like a mailing list? Yes, you can. I have it enabled myself! To use discord as a mailing-list: Sign up, go to Preferences > Email, and tick “Enable mailing list mode'. Yours, John Clements & Stephen De Gabrielle -- 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/9d080367-1b70-4818-8e76-8c6714db404c%40mtasv.net.
Re: [racket-users] How to learn the *core* of Racket?
> On Nov 11, 2021, at 03:04, Yushuo Xiao wrote: > > Thank you for your comprehensive answer! It helps a lot. I also read more > about Racket after I posted the question and now I think that the few special > forms (as stated in "fully expanded program") are the core. All languages > built in Racket will parse and convert their syntax into syntax objects > (S-expressions) and then expand to these special forms. Am I right? That’s a true statement… but that set is by no means fixed. These core forms then get compiled into native code (in CS) or bytecode (in BC), and changing this core set is certainly possible. It’s probably wiser to think of these core forms as an intermediate representation language in a compiler. I would agree that it’s an important IR, in that it’s essentially a subset of the racket language itself, but it’s definitely not an immutable ideal. Apologies as always if you knew all this already, John Clements > > On Sunday, November 7, 2021 at 6:53:53 AM UTC+8 david@gmail.com wrote: > Hi Yushuo, > > On Sat, Nov 6, 2021 at 5:33 AM Yushuo Xiao wrote: > I've learned some Racket, and can comfortably program in it, but I only > learned it as an ordinary language, much like Scheme. I know Racket is much > more than that, for its "language-oriented" features. Languages become a > first-class member in Racket, and to my understanding, even "#lang racket" is > just a language built on some core. What I want to know is, what's the very > core of Racket? > > It depends on where you stop measuring. You could argue that... > > ...#lang racket is the core, because it's what comes in the installation. > Things like gregor, struct-plus-plus, and csv-reading are packages that you > install from http://pkgs.racket-lang.org/ and are therefore outside the core. > > ...#lang racket/base is the core, because it's the most limited set of Racket > that comes by default. It mostly consists of only the basic list > manipulation functions, and if you want to use other things then you need to > include relevant libraries such as racket/match (giving you the 'match' > special form) or racket/format (giving you the ~a function), or racket-string > (giving you the string-length function), etc. > > ...Raw lambdas and a few special forms are the core, because everything > compiles down to those. (Approximately speaking.) > > ...Lambda calculus is the core, because it's what all LISP descendants are > based on. > > Once you start talking about other Racket languages with different syntax and > semantics, well then all bets are off. > > > Does this help? > > > I've noticed that in the Racket Reference there is a section "Fully Expanded > Programs", which seems the very core of Racket. But it still takes an > S-expression form, and apparently Racket allows language customization on the > syntax level. I wonder if the S-expression language is the core of Racket, or > the entire Racket has a different structure? > > I would really appreciate it if anyone could explain it in a simple way or > could point out some good (and short) material for me to read. The Racket > Reference is too long, and I believe the core Racket can be well explained in > a much shorter piece of text, if I just look for a brief understanding. > > Also my question may be confusing, because I don't understand Racket well at > all. Feel free to correct me or ask for clarification. Thanks in advance! > > -- > 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...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/63b1134b-16e4-4447-828a-1e607013bd7cn%40googlegroups.com. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/6929457c-459f-4c25-94c0-ea973b121c65n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/228e0447-5d7e-4d88-870a-8aada5b31aa1%40mtasv.net.
[racket-users] Racket v8.3
Racket version 8.3 is now available from https://racket-lang.org/ * Racket removes syntax arming and disarming in favor of a simpler system of protected syntax operations, along with other updates to the syntax system. * DrRacket has improved support for custom #lang languages. * Typed Racket improves precision for type-checking of non-polymorphic structures, existential types, and certain binding forms. * Scribble HTML output gains a button to show / hide the table of contents on mobile platforms. * Redex's stepper's GUI shows IO-judgment form rule names. * Many bug fixes! The following people contributed to this release: Adam Zaiter, Alex Knauth, Alexis King, Ayman Osman, Ben Greenman, Bob Burger, Bogdan Popa, Brian Adkins, Cameron Moy, Carl Eastlund, Dan Holtby, Dominik Pantůček, Eli Barzilay, Ethan Leba, Fred Fu, Greg Hendershott, Gustavo Massaccesi, J. Ryan Stinnett, Jason Hemann, Jay McCarthy, Jesse Alama, Joel Dueck, John Clements, Jonathan Simpson, Kartik Sabharwal, Laurent Orseau, Lehua Ding, Maciej Barć, Marc Burns, Matthew Flatt, Matthias Felleisen, Michael Ballantyne, Mike Sperber, Noah Ma, Paulo Matos, Pavel Panchekha, Philip McGrath, Robby Findler, Ryan Culpepper, Ryan Sundberg, Sage Gerard, Sam Tobin-Hochstadt, Shu-Hung You, Sorawee Porncharoenwase, Stefan Schwarzer, Stephen De Gabrielle, Vincent St-Amour, William J. Bowman, minor-change, and yjqww6 Feedback Welcome -- 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/7a93648b-3e64-4c94-8932-eb8d1de887b2%40mtasv.net.
Re: [racket-users] How to discover a struct's interface without Dr Racket?
In the text below, you refer to the “public” interface. Can I ask what you mean by “public” in this context? John > On Oct 29, 2021, at 11:16 AM, Brian Beckman wrote: > > I believe that run time will be the most plausible use case. I may write > macros that refer to struct-procedure names at macro-writing time, but I > don't expect to invoke the struct procedures at macro-expansion time. My > primary issue is "discoverability:" how can I find out the interface of any > struct? > > On Thursday, October 28, 2021 at 1:00:15 PM UTC-7 jackh...@gmail.com wrote: > Are you intending to use the struct procedure names at compile time (such as > in a macro) or runtime? > > On Tuesday, October 26, 2021 at 5:02:46 PM UTC-7 bc.be...@gmail.com wrote: > I understand why structs are opaque, by default, but I want to discover the > public interface of some struct type, that is, a list of the procedures > defined by the struct. > > Here is an example. Suppose I want to find out all the procedures defined on > an instance of the syntax struct > > #'42 > > Dr. Racket shows an expander clicky that shows some formatted information > inside the instance : > > > > Uncapitializing the names in the display reveals the interface: > > (syntax-position #'42) ~~> 790 > (syntax-span #'42) ~~> 2 > (syntax-original? #'42) ~~> #t > > etc. > > I want to discover those procedure names in my racket program, not manually > by visually inspecting graphics in Dr Racket. > > I found this trick for structs that I define: > > #lang racket > (require (for-syntax racket/struct-info)) > (require racket/pretty) > > (struct foo (a b)) > (begin-for-syntax > (displayln >(extract-struct-info > (syntax-local-value > #'foo > > ~~> > > > > but it doesn't work for the syntax type > > (begin-for-syntax > (displayln >(extract-struct-info > (syntax-local-value > #'syntax > > ~~> > > > > I'd be grateful for advice and an example of how to get the interface of > "syntax" without Dr Racket and without grovelling docs. > > -- > 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/8e4ca03e-e276-4c42-a662-4fcf7c994387n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/281a49f3-7870-48ca-888b-d3e5002b0f24%40mtasv.net.
[racket-users] Trends in Functional Programming in Education 2022 call for submissions
TFPIE 2022 Call for papers https://wiki.tfpie.science.ru.nl/TFPIE2022 (February 11th 2022, Krakow, Poland co-located with TFP 2022 and Lambda Days) TFPIE 2022 welcomes submissions describing techniques used in the classroom, tools used in and/or developed for the classroom and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP and Computational Thinking FP and Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy The pedagogy of teaching FP FP and e-learning: MOOCs, automated assessment etc. Best Lectures - more details below In addition to papers, we are requesting best lecture presentations. What's your best lecture topic in an FP related course? Do you have a fun way to present FP concepts to novices or perhaps an especially interesting presentation of a difficult topic? In either case, please consider sharing it. Best lecture topics will be selected for presentation based on a short abstract describing the lecture and its interest to TFPIE attendees. The length of the presentation should be comparable to that of a paper. In addition, the speaker can provide commentary on effectiveness or student feedback. Submissions Potential presenters are invited to submit an extended abstract (4-6 pages) or a draft paper (up to 20 pages) in EPTCS style. The authors of accepted presentations will have their preprints and their slides made available on the workshop's website. Papers and abstracts can be submitted via easychair at the following link: https://easychair.org/conferences/?conf=tfpie2022 After the workshop, presenters are invited to submit (a revised version of) their article for the formal review. The PC will select the best articles for publication in the Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and extended abstracts will not be formally reviewed by the PC. Important Dates: Submission deadline: January 5th 2022, Anywhere on Earth. Notification: January 10th 2022 (Note: earlier submissions will receive earlier response) TFPIE Registration Deadline: TBA Workshop: February 11th 2022 Submission for formal review: April 15th 2022, Anywhere on Earth. Notification of full article: June 1st 2022 Camera ready: July 1st 2022 Program Committee: Peter Achten, Radboud University, Netherlands Stephen Chang, University of Massachusetts Boston, USA John Hughes, Chalmers University of Technology, Sweden Elena Machkasova (Chair) - University of Minnesota Morris, USA Kristina Sojakova - INRIA, Paris, France Melinda Tóth, Eötvös Loránd University, Budapest, Hungary Registration information: This year TFPIE takes place on the second day of the Lambda Days, concurrent with TFP. Participants will need to register for the Lambda Days. Please note that TFP and TFPIE have in-person attendance only. For registration fee, the deadlines, and the link to register see the Lambda Days web site: https://www.lambdadays.org/lambdadays2022 Registration and attendance are mandatory for at least one author of every paper that is presented at the workshop. Presenters will have their registration fee waived. Only papers that have been presented at TFPIE may be submitted to the post-reviewing process. Best regards, Elena Machkasova, -- Dr. Elena Machkasova Associate Professor of Computer Science Division of Science and Mathematics University of Minnesota, Morris Office: Sci 2325 (320) 589-6308 http://cda.morris.umn.edu/~elenam/ Pronouns: she/her/hers or any other -- 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/d5839f44-458a-4bc2-807f-8684b12ef303n%40googlegroups.com.
Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds
On Tuesday, October 26, 2021 at 1:39:21 PM UTC-5 zepp...@gmail.com wrote: > To the extent that validation is a concern, gregor is (despite the > `tz/c` issue) much better, on the whole, than racket/base's `date` and > `date*` structs, which will happily let you construct things like "the > 31st of February." > I fully agree with that. ...Didn't you mention on Slack while back that you had a replacement for gregor on a shelf somewhere? ;) -- 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/77f80d13-2aa3-4b88-b175-6c39f2ce2ef7n%40googlegroups.com.
Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds
On Tuesday, October 26, 2021 at 12:30:59 PM UTC-5 Sage Gerard wrote: > Yes, but I'm talking about code we were asked to give feedback on. I focus > on `tz/c` because it is documented as a flat contract that checks for "an > identifier from the IANA tz database <https://www.iana.org/time-zones>", > but it does not parse the timezone name to check correctness. > > My feedback says no validation occurs for the timezone name in a parameter > for Splitflap. Joel indicated that parameter will go away below, and I'm > glad to know of the tzinfo package. But if a limitation in gregor's > contracts would oblige you to use tzinfo for validation, then I'd want to > know that so that I can assess how much of gregor I really need. It still > seems like the timezone data is the hard part, so use a timezone dependency > instead of a dependency that misleads the user into incomplete validation > It does seem odd that tz/c uses string? instead of tzid-exists? I’m wondering if that could be changed without breaking a lot of stuff. If not, then it *might* be worth keeping my own feed-timezone parameter that allows only (integer-in -64800 64800). On the other hand, it is also true that if an invalid time zone is supplied anywhere along the way to building the feed data, an exception is going to occur before the feed is generated, which is what I care about for the most part. In general I appreciate feedback like Sage’s from people who think a lot more carefully than I do about dependencies. I like knowing that if someone has differing time zones for different items within a feed, or cares about gap/overlap resolution, etc, I can let them use gregor to handle it. It's not something I ever encountered in building CMSs or publishing podcasts, but also you never know what a feed will be used for. I will probably experiment with reducing the dependency down to tzinfo/tzdata and using Racket’s native date structs. -- 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/ea7090cc-1ebf-40a3-a7e6-0634d038602en%40googlegroups.com.
Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds
On Tuesday, October 26, 2021 at 11:01:38 AM UTC-5 Sage Gerard wrote: > >- Assuming I have the right repository link, gregor's tz/c contract is >only (or/c string? (integer-in -64800 64800)) [1]. I can set the >feed-timezone parameter in Splitflap to an arbitrary string and the guard >won't stop me. > > Yep — I left feed-timezone out of the docs because I plan to remove it. Unless I'm missing something? in the end I think it's redundant to tzinfo's current-timezone parameter. -- 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/d202c537-0173-42fd-b75f-082275c57426n%40googlegroups.com.
Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds
On Tuesday, October 26, 2021 at 6:51:56 AM UTC-5 Philip McGrath wrote: > I'm not totally clear about all of the different sets of requirements > (RSS, Atom, and, de facto, Apple), but I thought there were more language > codes permitted than ISO 639-1 (e.g. > https://www.rssboard.org/rss-language-codes points to ISO 639-2, and > https://validator.w3.org/feed/docs/rfc4287.html#rfc.section.4.2.7.4 for > Atom points to RFC 3066. These standards also allow for the assignment of > new codes (and, at least for ISO 639-3, deprecation). I hope the right set > of codes might be in the one of the CLDR packages (also used by Gregor): if > so, I'd recommend getting it from there. > We could probably open it up to more codes for generic feeds, for sure. Podcast feeds are limited to ISO 639-1 by Apple. Also, system language detection would probably always be limited to ISO 639-1 for the foreseeable future, unless I find out that my existing method might encounter (and mis-handle) codes from other lists in some circumstances. > On a different topic, for the XML stuff, is there a requirement that > embedded HTML be represented with the CDATA lexical syntax? > I’m using CDATA for the traditional reason: it allowed me to punt on validating the internal content. If I didn’t use CDATA, I’d probably want to start handling strings and tagged xexprs differently. Strings would go in as `` and an exception should probably be raised if it can be determined (how?) that the string is actually a string of HTML. Tagged X-exprs would go in as `` with escaped HTML as you suggest. Or perhaps only tagged x-expressions should be allowed. Or perhaps strings should be coerced to a txexpr (by, e.g. putting them inside a 'div). > everyone manipulating these feeds in Racket > Although I make this possible, the design intent is that once you put stuff into a food-like struct, that’s the last step before generating the final feed (thus keeping all the guarantees of validation intact). I would hope that *content* in particular would not need more manipulation between the creation of a feed-item struct and the final output. > (Tangentially, AIUI the convention is to use `#f` for the start and stop > fields when creating cdata and p-i structures in code, though apparently the > docs for `source` > <https://docs.racket-lang.org/xml/index.html#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29> > > say something about symbols.) > Indeed, since the structures returned by xexpr->xml use 'racket for those fields, I though mine ought to match. > rather than using an ad-hoc encoding scheme for the entities Apple has odd > rules about, you can just replace them with symbols or `valid-char?`s and > let the library take care of everything. Well, my example code for that has > grown complete enough that I'll just make a PR shortly :) > Sounds good! Just bear in mind that Apple is not only picky about the characters it wants replaced but also about what you replace them with. E.g. and not for the copyright symbol. -- 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/5b83ad5f-3be1-4bd7-a876-0184dafadbddn%40googlegroups.com.
Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds
Great feedback, thank you. I like all your suggestions. - Boolean arguments: great point, will do - MIME types: Yes, I should use/add a more complete extension→type mapping, though I probably will continue not to validate MIME types against the IANA list. (My somewhat erroneous note in the docs notwithstanding, it turns out having a non-IANA MIME type or a valid but mismatched type in an enclosure doesn’t actually cause feed validation errors.) - language-codes: yes this should be a value, not a procedure. Will change it. - Contract boundaries: yes! switching to contract-out is on my list - Removing dependencies: yes, I see the appeal. I’m really not eager to reimplement all the timezone handling and temporal comparison stuff in gregor, though. Joel On Monday, October 25, 2021 at 6:36:30 PM UTC-5 Sage Gerard wrote: > Thank you for this!! > > Feedback > >- I like your podcast-specific entries >- The validation logic is refreshing to see >- Re: boolean arguments, I'd stick to keyword arguments and ask for >any/c, not boolean?, in contracts. That way forms like (and ... (member >...)) won't bug users about a non-threatening contract violation, and it's >trivial to cast the value yourself. >- Unsure what licenses are compatible with Blue Oak. If you want more >licensing options re: IANA media type to extension mappings, here are some. >- MIT: https://github.com/mime-types/mime-types-data > - Apache 2.0 (From the horse's mouth): > https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types > - CC-BY-SA: Scrape MDN's table using the console on > > https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types > >- I normally don't use functions like splitflap-version because I >can't assume that a package will define one. I'd use a program that > returns >a version of a given package. >- Why is language-codes a procedure? >- You have a lot of local contract boundaries, so values may get >checked more than necessary. >- Prefer example.com so you don't have to leak your URLs or make up >email addresses that actually go to an inbox. >- txexpr, gregor, and web-server dependencies don't look terribly >difficult to remove > > -- 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/cb2927c7-3d21-41c3-89c7-d6b73a9e53f9n%40googlegroups.com.
[racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds
This is a beta release of *splitflap*, a Racket library for generating valid Atom and RSS feeds, including podcast feeds. - Source: https://github.com/otherjoel/splitflap - Documentation (with quick tutorial): https://docs.racket-lang.org/splitflap/index.html The docs are substantially complete but I’m still working on them! Feedback welcome. Joel -- 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/55a4e6de-1e08-4219-9675-31e5c598a38dn%40googlegroups.com.
Re: [racket-users] Weird test failures
Dang it, I think you’re right. Known gotcha it is, and a rookie one at that. Thanks for taking time to look at it! On Sunday, October 24, 2021 at 1:04:03 PM UTC-5 Sage Gerard wrote: > I got all tests to pass by updating the first clause of pre-escape to use > equal? > > > (and (txexpr? x) (equal? "text" (attr-ref x 'type #f))) > > My hypothesis is that when you didn't have bytecode, the reference to the > literal string "text" just *happened* to be eq?. I couldn't say why. > On 10/24/21 12:09 PM, 'Joel Dueck' via Racket Users wrote: > > This is driving me a little batty. I have a package on the package server, > and the package server shows that it is failing some tests[1]. > > Here is the first test that fails: > > FAILURE > name: check-equal? > location: dust.rkt:101:2 > actual: > '(div (div ((type "text")) > "Judy's friend \"George\"" > (div "Judy's friend \"George\""))) > expected: > '(div (div ((type "text")) > "Judy%amp%apos;s friend %amp%quot;George%amp%quot;" > (div "Judy's friend \"George\""))) > > The check in question can be seen in dust.rkt on the Github repo [2]. > > Here’s the weird part. This check does not fail on my local machine > (Racket 8.2 CS on Mac OS 11.6). Well…not true! It *usually* doesn’t fail on > my computer BUT sometimes checks in my tests.rkt which are dependent on > this one will start failing. When that happens, all I need to do is re-save > dust.rkt with no changes (to invalidate the compile cache) and re-run > tests.rkt and the checks all pass again. > > Of what known gotcha have I run afoul here? Or is it an unknown gotcha? > > The function which is the subject of the test is not complicated: > > ;; Recursively pre-escape any string entities in an x-expression that > ;; are direct children of an element whose ‘type’ attribute is “text” > (define (pre-escape x) > (cond > [(and (txexpr? x) (eq? "text" (attr-ref x 'type #f))) > (txexpr > (car x) > (get-attrs x) > (map (λ (c) (if (string? c) (pre-escape-entities c) (pre-escape c))) > (get-elements x)))] > [(txexpr? x) (txexpr (car x) (get-attrs x) (map pre-escape > (get-elements x)))] > [else x])) > > [1]: > https://pkg-build.racket-lang.org/server/built/test-fail/splitflap-lib.txt > [2]: > https://github.com/otherjoel/splitflap/blob/11ddfebb96d13b4905d428939ba3bd9bd39e1caa/splitflap-lib/private/dust.rkt#L101-L102 > > -- > 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...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/10b7621b-c366-4c78-ac86-f011d46a954fn%40googlegroups.com > > <https://groups.google.com/d/msgid/racket-users/10b7621b-c366-4c78-ac86-f011d46a954fn%40googlegroups.com?utm_medium=email_source=footer> > . > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/8ab8cf09-e226-4c62-a3bd-2c4dc898bfeen%40googlegroups.com.
[racket-users] Weird test failures
This is driving me a little batty. I have a package on the package server, and the package server shows that it is failing some tests[1]. Here is the first test that fails: FAILURE name: check-equal? location: dust.rkt:101:2 actual: '(div (div ((type "text")) "Judy's friend \"George\"" (div "Judy's friend \"George\""))) expected: '(div (div ((type "text")) "Judy%amp%apos;s friend %amp%quot;George%amp%quot;" (div "Judy's friend \"George\""))) The check in question can be seen in dust.rkt on the Github repo [2]. Here’s the weird part. This check does not fail on my local machine (Racket 8.2 CS on Mac OS 11.6). Well…not true! It *usually* doesn’t fail on my computer BUT sometimes checks in my tests.rkt which are dependent on this one will start failing. When that happens, all I need to do is re-save dust.rkt with no changes (to invalidate the compile cache) and re-run tests.rkt and the checks all pass again. Of what known gotcha have I run afoul here? Or is it an unknown gotcha? The function which is the subject of the test is not complicated: ;; Recursively pre-escape any string entities in an x-expression that ;; are direct children of an element whose ‘type’ attribute is “text” (define (pre-escape x) (cond [(and (txexpr? x) (eq? "text" (attr-ref x 'type #f))) (txexpr (car x) (get-attrs x) (map (λ (c) (if (string? c) (pre-escape-entities c) (pre-escape c))) (get-elements x)))] [(txexpr? x) (txexpr (car x) (get-attrs x) (map pre-escape (get-elements x)))] [else x])) [1]: https://pkg-build.racket-lang.org/server/built/test-fail/splitflap-lib.txt [2]: https://github.com/otherjoel/splitflap/blob/11ddfebb96d13b4905d428939ba3bd9bd39e1caa/splitflap-lib/private/dust.rkt#L101-L102 -- 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/10b7621b-c366-4c78-ac86-f011d46a954fn%40googlegroups.com.
[racket-users] PLDI 2022 Second Call for Papers
Please distribute widely. *Call for Papers* 2022 ACM Conference on Programming Language Design and Implementation (PLDI) Mon 20 - Fri 24 June 2022 San Diego, California, United States https://pldi22.sigplan.org/track/pldi-2022-pldi#Call-for-Papers PLDI is a premier forum for programming language research, broadly construed, including design, implementation, theory, applications, and performance. PLDI seeks outstanding research that extends and/or applies programming-language concepts to advance the field of computing. Novel system designs, thorough empirical work, well-motivated theoretical results, and new application areas are all welcome emphases in strong PLDI submissions. Reviewers will evaluate each contribution for its accuracy, significance, originality, and clarity. Submissions should be organized to communicate clearly to a broad programming-language audience as well as to experts on the paper’s topics. Papers should identify what has been accomplished and how it relates to previous work. Authors of empirical papers are encouraged to consider the seven categories of the SIGPLAN Empirical Evaluation Guidelines when preparing their submissions. (http://www.sigplan.org/Resources/EmpiricalEvaluation/) *Important Dates* === Fri 19 Nov 2021, Submission Deadline Mon 7 Feb - Wed 9 Feb 2022, Author Response Fri 25 Feb 2022, Author Notification *Author Instructions* == https://pldi22.sigplan.org/track/pldi-2022-pldi#Call-for-Papers Submission site: https://pldi2022.hotcrp.com/ *Organizing Committee* General Chair: Ranjit Jhala, U. of California at San Diego Program Chair: Isil Dillig, U. of Texas at Austin Web Chair: Dan Barowy, Williams College Publicity Co-Chairs: William J. Bowman, U. of British Columbia Arjun Guha, Northeastern U. Sponsorship Co-Chairs: Ravi Chugh, U. of Chicago Sasa Misailovic, U. of Illinois at Urbana-Champaign Workshops Co-Chairs: Nadia Polikarpova, U. of California at San Diego Alexandra Silva, U. College London Student Research Competition Co-Chairs: Tyler Sorensen, U. of California at Santa Cruz Jubi Taneja, Microsoft Research Artifact Evaluation Co-Chairs: Niki Vazou, IMDEA Software Institute Xinyu Wang, U. of Michigan https://pldi22.sigplan.org/committee/pldi-2022-organizing-committee -- William J. Bowman -- 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/YWcmolNG9ihOY7zx%40williamjbowman.com.
Re: [racket-users] rename-out not working as expected
I think this is the expected behaviour of `rename-out`; you might want this library to change the dynamic displayed name: https://docs.racket-lang.org/static-rename/index.html -- William J. Bowman On Tue, Oct 12, 2021 at 03:07:13PM -0400, David Storrs wrote: > --- > ; test.rkt > #lang racket > (define (do-something) "ok") > (provide do-something) > > ; test2.rkt > #lang racket > (require "test.rkt") > (provide (rename-out [do-something do-it])) > > #lang racket > (require "test2.rkt") > do-it > --- > > The printed value is # although I was expecting > #. Have I done something wrong or simply misunderstood > how rename-out works? > > -- > 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/CAE8gKodiRBWPK5MfgYnOi_V%2B%3DwwFzBxtQK1qV2Mj-zPuHEXn9g%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/YWXekUFzaEkaitiB%40williamjbowman.com.
Re: [racket-users] Rationale for package structure
Ah I see! So is there some heuristic for when you should try to play nice with Minimal Racket? Is it, ideally, “always”? Or is it mainly if you’re likely to be using the package on a server, CI, etc? On Saturday, October 9, 2021 at 1:58:33 PM UTC-5 sorawe...@gmail.com wrote: > I think it's so that `raco pkg install mypkg-lib` won't install > `racket-doc` if you use Minimal Racket? > > If you don't split `mypkg` to `mypkg-lib` and `mypkg-doc`, but specify > `deps` and `build-deps` correctly, `raco pkg install --binary mypkg` won't > pull in `racket-doc` either. I don't know when this feature was added > though. Perhaps, it could be that the package splitting convention predates > the feature, and the convention persists. > > On Sat, Oct 9, 2021 at 10:58 AM 'Joel Dueck' via Racket Users < > racket...@googlegroups.com> wrote: > >> I’ve always used the single collection format [1] in my packages. >> >> However, I see a lot of package authors will use a multi-collection >> format and split the library, documentation and maybe tests out into >> separate collections. >> >> What are the benefits of splitting the main library and its documentation >> into separate collections? >> >> [1]: >> https://docs.racket-lang.org/pkg/Package_Concepts.html#%28part._concept~3amulti-collection%29 >> >> -- >> 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...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/racket-users/6ea9f50e-0d4f-4800-bc17-d31979a614cfn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/racket-users/6ea9f50e-0d4f-4800-bc17-d31979a614cfn%40googlegroups.com?utm_medium=email_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/8c79a2bc-ab1a-4183-9f75-f52f37316f62n%40googlegroups.com.
[racket-users] Rationale for package structure
I’ve always used the single collection format [1] in my packages. However, I see a lot of package authors will use a multi-collection format and split the library, documentation and maybe tests out into separate collections. What are the benefits of splitting the main library and its documentation into separate collections? [1]: https://docs.racket-lang.org/pkg/Package_Concepts.html#%28part._concept~3amulti-collection%29 -- 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/6ea9f50e-0d4f-4800-bc17-d31979a614cfn%40googlegroups.com.
Re: [racket-users] Restarting loop from exception handler breaks with-handlers, Ctrl+C?
Ah of course, thanks! On Thu, Oct 07, 2021 at 05:52:55PM -0700, Sorawee Porncharoenwase wrote: > Typo: with-handlers* > > On Thu, Oct 7, 2021 at 5:52 PM Sorawee Porncharoenwase < > sorawee.pw...@gmail.com> wrote: > > > I think you want with-handler*? According to the docs: > > > > with-handlers: > > > > Before any predicate or handler procedure is invoked, the continuation of > > the entire with-handlers > > <https://docs.racket-lang.org/reference/exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29> > > expression is restored, but also parameterize-break > > <https://docs.racket-lang.org/reference/breakhandler.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize-break%29%29>ed > > to disable breaks. Thus, breaks are disabled by default during the > > predicate and handler procedures (see Breaks > > <https://docs.racket-lang.org/reference/breakhandler.html>), and the > > exception handler is the one from the continuation of the with-handlers > > <https://docs.racket-lang.org/reference/exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29> > > expression. > > > > with-handler* > > > > Like with-handlers > > <https://docs.racket-lang.org/reference/exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29>, > > but if a handler-expr procedure is called, breaks are not explicitly > > disabled, and the handler call is in tail position with respect to the > > with-handlers* > > <https://docs.racket-lang.org/reference/exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%2A%29%29> > > form. > > > > On Thu, Oct 7, 2021 at 5:36 PM 'William J. Bowman' via Racket Users < > > racket-users@googlegroups.com> wrote: > > > >> I have a little model of a server below. The server handles all > >> exceptions, and restarts itself after some errors. It also handles break?, > >> to actually exit when requested. > >> > >> While this server is running, if I press Ctrl+C before `(error 'foo)` is > >> handled, the server exits correctly with 120. However, if I press Ctrl+C > >> after `(error 'foo)` is handled, the `exn:break?` handler is never called, > >> the server no longer responds to `Ctrl+C`, and (in this example) it > >> eventually exits with status `1`. > >> > >> I cannot figure out why. As far as I can tell, this should always handle > >> `Ctrl+C` by exiting with 120. > >> > >> > #lang racket/base > >> > > >> > (let loop ([n 0]) > >> > (with-handlers ([exn:break? (lambda _ (exit 120))] > >> > [void > >> >(lambda (exn) > >> > (printf "handled error: ~a~n" (exn-message exn)) > >> > (loop (add1 n)))]) > >> > (displayln n) > >> > (sleep 1) > >> > (cond > >> > [(zero? n) (error 'foo)] > >> > [(= n 5) (exit 1)]) > >> > (loop (add1 n > >> > >> -- > >> William J. Bowman > >> > >> -- > >> 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/YV%2BSWNpldfOB5tA3%40williamjbowman.com > >> . > >> > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/YV%2BxxtvNutlP/NZC%40williamjbowman.com.
[racket-users] Restarting loop from exception handler breaks with-handlers, Ctrl+C?
I have a little model of a server below. The server handles all exceptions, and restarts itself after some errors. It also handles break?, to actually exit when requested. While this server is running, if I press Ctrl+C before `(error 'foo)` is handled, the server exits correctly with 120. However, if I press Ctrl+C after `(error 'foo)` is handled, the `exn:break?` handler is never called, the server no longer responds to `Ctrl+C`, and (in this example) it eventually exits with status `1`. I cannot figure out why. As far as I can tell, this should always handle `Ctrl+C` by exiting with 120. > #lang racket/base > > (let loop ([n 0]) > (with-handlers ([exn:break? (lambda _ (exit 120))] > [void >(lambda (exn) > (printf "handled error: ~a~n" (exn-message exn)) > (loop (add1 n)))]) > (displayln n) > (sleep 1) > (cond > [(zero? n) (error 'foo)] > [(= n 5) (exit 1)]) > (loop (add1 n -- William J. Bowman -- 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/YV%2BSWNpldfOB5tA3%40williamjbowman.com.
Re: [racket-users] using neg-propositions in partition?
Ah! Thanks for the pointer. Should have looked in the issues. Yes, 2 filters certainly work fine. John > On Oct 5, 2021, at 4:45 PM, Ben Greenman wrote: > > There's an issue open about partition: > https://github.com/racket/typed-racket/issues/138 > > Does `my-partition` work like you'd want? Based on Alex's last comment > on the issue, it seems hard to give a predicate that matches the type. > > > (Whenever I've wanted `partition` in typed code, I was always able to > use 2 filters instead.) > > On 10/5/21, 'John Clements' via Racket Users > wrote: >> I was somewhat surprised to see today that I can’t use a predicate with both >> positive and negative propositions in the way I would expect with >> partition: >> >>> (:print-type partition) >> (All (a b) >> (case-> >> (-> (-> b Any : #:+ a) (Listof b) (values (Listof a) (Listof b))) >> (-> (-> a Any) (Listof a) (values (Listof a) (Listof a) >> >> >> Specifically, I would have expected the type to be something like this: >> >> (All (a b c) >> (case-> >> (-> (-> b Any : #:+ a) (Listof b) (values (Listof a) (Listof b))) >> ;; the second list must consist of 'c's: >> (-> (-> b Any : #:+ a #:- c) (Listof b) (values (Listof a) (Listof c))) >> (-> (-> a Any) (Listof a) (values (Listof a) (Listof a) >> >> … so that if, say, I had a list of Elephants and Emus, that I could use >> elephant? to split it into two lists: one of type (Listof Elephant) and one >> of type (Listof Emu). >> >> I tried to roll my own, and got pretty close: >> >> (: my-partition >> (All (a b c) >>(case-> >> ;; the second list must consist of 'c's: >> (-> (-> b Any : #:+ a #:- c) (Listof b) (values (Listof a) (Listof >> c))) >> ))) >> >> (define (my-partition my-pred elts) >> (cond [(empty? elts) >> (values '() '())] >>[else >> (define-values (stacks non-stacks) >> (my-partition my-pred (rest elts))) >> (define f (first elts)) >> (cond [(my-pred f) >>(values (cons f stacks) >>non-stacks)] >> [else >>(values stacks (cons f non-stacks))])])) >> >> That is, I can do it for the case-> clause that I care about. Putting the >> other two back in there causes it to fail type-checking. Is that the >> problem, that TR can’t accommodate both flavors in the same type? >> >> John >> >> >> -- >> 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/aa1e77a8-9cc4-4f99-b413-1304daeec12b%40mtasv.net. >> -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/724d3012-b8e3-4be2-9ce1-fbc15cbd0bd6%40mtasv.net.
[racket-users] using neg-propositions in partition?
I was somewhat surprised to see today that I can’t use a predicate with both positive and negative propositions in the way I would expect with partition: > (:print-type partition) (All (a b) (case-> (-> (-> b Any : #:+ a) (Listof b) (values (Listof a) (Listof b))) (-> (-> a Any) (Listof a) (values (Listof a) (Listof a) Specifically, I would have expected the type to be something like this: (All (a b c) (case-> (-> (-> b Any : #:+ a) (Listof b) (values (Listof a) (Listof b))) ;; the second list must consist of 'c's: (-> (-> b Any : #:+ a #:- c) (Listof b) (values (Listof a) (Listof c))) (-> (-> a Any) (Listof a) (values (Listof a) (Listof a) … so that if, say, I had a list of Elephants and Emus, that I could use elephant? to split it into two lists: one of type (Listof Elephant) and one of type (Listof Emu). I tried to roll my own, and got pretty close: (: my-partition (All (a b c) (case-> ;; the second list must consist of 'c's: (-> (-> b Any : #:+ a #:- c) (Listof b) (values (Listof a) (Listof c))) ))) (define (my-partition my-pred elts) (cond [(empty? elts) (values '() '())] [else (define-values (stacks non-stacks) (my-partition my-pred (rest elts))) (define f (first elts)) (cond [(my-pred f) (values (cons f stacks) non-stacks)] [else (values stacks (cons f non-stacks))])])) That is, I can do it for the case-> clause that I care about. Putting the other two back in there causes it to fail type-checking. Is that the problem, that TR can’t accommodate both flavors in the same type? John -- 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/aa1e77a8-9cc4-4f99-b413-1304daeec12b%40mtasv.net.
[racket-users] racket/gui/base in sandboxes in places
I'm trying to run sandboxes in places, but when the sandboxes need access to racket/gui (such as through 2htdp/universe), they get `cannot instantiate racket/gui/base' a second time`. I've tried initing racket/gui once in the server that starts the places, but this doesn't seem to work. (gui-available?) is still false in started places, and they still raise the exception when the sandbox tries to load the gui module. I don't really need to run gui code in the sandbox, so I'm guessing the best workaround is to override `2htdp/universe` in the sandbox. Anyone have either a solution, or a better workaround? -- William J. Bowman -- 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/YVoM6JS2oCQhdvRq%40williamjbowman.com.
Re: [racket-users] What is the correct name for non-list parenthesized forms?
I think I wouldn’t say “accepts”; I usually reserve this term for functions, but that’s a minor quibble. I think I would call these “clauses”, as in “With-handlers allows the user to specify exception-handling clauses. Each one includes two parts: a predicate, indicating whether blah blah blah, and a handler, which is called blah blah blah.” No? John > On Sep 24, 2021, at 11:28, David Storrs wrote: > > > > On Fri, Sep 24, 2021 at 1:49 PM Jay McCarthy wrote: > I think the word you're looking for is "syntax". Many people think that > languages like Racket "don't have syntax" or "have uniform syntax", but this > is an example of how that is incorrect. Each macro has its own unique syntax > and this is an example of how `let` has a unique syntax where `(` does _not_ > mean "apply a function" or "apply a macro". > > As a poor analogy, many human languages have a wide set of phonemes and you > combine those in certain rules (like you can't have 27 consonant sounds in a > row) and then use them in wider situations that we call grammar. I like to > think that languages like C has lots of phonemes and little grammar, because > there are lots of rules about how to form "C words" but basically no rules > for how to form "C sentences", because there's a lot of uniformity in how > expressions and statements combine. In contrast, languages like Racket have > very few phonemes (this is what I think people mean why they say "there is no > syntax") but many varied rules (in fact, arbitrary, because macros can > customize them) for combining those smaller units. > > So there's no specific term for this structure? I was looking for a > standardized way to say something like "with-handlers accepts a group of > two-element groups where each subgroup consists of a predicate and an action." > > Jay > > -- > Jay McCarthy > Associate Professor @ CS @ UMass Lowell > http://jeapostrophe.github.io > Vincit qui se vincit. > > > On Fri, Sep 24, 2021 at 1:25 PM David Storrs wrote: > Racket has a number of forms that include what look like lists of lists but > are not. For example: (let ((foo 7) (bar 8)) ...) > > What would the '(foo 7)' and '(bar 8)' elements be called? Groups, maybe? > > -- > 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/CAE8gKodX800fK45c_dyVFCNB-AKmYmK26DxC42ZRDVHdzJ2Q7g%40mail.gmail.com. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/CAE8gKoeM6YYgpj-4Ey%2BoSSKRS%2BfMch3d0GDu85f9mwHmtxwVig%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/11a531ce-22f2-4f23-8246-46c6c77ffae7%40mtasv.net.
[racket-users] Call for Tutorials and Workshops: PLDI 2022
Please distribute widely: # Call for Workshops and Tutorials PLDI 2022 is a world-class forum for researchers and practitioners in programming language design and implementation. As in previous years, PLDI is soliciting proposals for co-located workshops and tutorials that will take place on Monday June 20th, and Tuesday June 21st. Please propose your workshop or tutorial via the submission system. The following details will be asked on submission: * Name of the workshop/tutorial. * Duration of the workshop/tutorial. * Organizers: names, affiliation, contact information, brief (100 words) biography. * A short description (150-200 words) of the topic. * Event format: workshop/tutorial; type of submissions, if any; review process; results dissemination. * Expected attendance and target audience within the PLDI community. * How you plan to foster an inclusive environment and promote a diverse attendance. * Information on any previous iterations of the workshop or tutorial. *Note:* Workshops must make their own acceptance decisions by April 21, 2022 if there will be proceedings (final versions due May 5, 2022), or May 5, 2022. ## Submission Submission site: https://pldi22.sigplan.org/createProposal/d625158d-7188-4844-88cd-9bf71182aa9a Workshops that would like their proceedings included in the ACM Digital Library must submit a proposal by November 18, 2021. Workshops and tutorials that will have no formal proceedings should submit a proposal by November 30, 2021. ## Review Proposals are reviewed by the Workshop and Tutorials Chairs, and if necessary, by the PLDI general chair. * Proposals will be evaluated according to the relevance of the topic, the expertise and experience of the workshop organizers, and their potential to attract participants. * Proposals submitted between November 18th and 30th will be evaluated on a first-come-first-served basis. ## Notification We will notify workshop/tutorial acceptance by December 9th. ## Timeline Submission deadline (with proceedings): November 18 Submission deadline (no proceedings): November 30 Notification: December 9 ## Dissemination A proposal should clearly state how the results of the workshop — i.e., published papers and other outcomes — will be made available to participants and others before and after the workshop event. The Workshops and Tutorials Chair will provide guidance to the organizers of accepted workshops that wish to publish proceedings in the ACM Digital Library. For those that choose to publish their papers in ACM Digital Library, please add the following text in the workshop call for papers and on the website: *AUTHORS TAKE NOTE:* The official publication date is the date the proceedings are made available in the ACM Digital Library. This date may be up to two weeks prior to the first day of your conference. The official publication date affects the deadline for any patent filings related to published work. (For those rare conferences whose proceedings are published in the ACM Digital Library after the conference is over, the official publication date remains the first day of the conference.) Workshops that elect to publish proceedings can do so in the ACM Digital Library with sponsoring by SIGPLAN. The application for SIGPLAN sponsorship includes reviewing the proposed program committee with the SIGPLAN Executive Committee, a process which the chairs will help facilitate. ## Workshop Co-Chairs - Nadia Polikarpova, U. of California at San Diego - Alexandra Silva, U. College London -- 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/YUo3Bf8aFrLcIBgm%40williamjbowman.com.
Re: [racket-users] Help debugging handin client connection problem
I think I've debugged the issue, but it's only present in our locally modified version of the client, although the root cause could affects others. In case others have minor modifications to the client, or anyone modifies the client in the future: It was a race condition between some error checking logic and connection initialization. If the error occured before the connection initialized, then the connection would be hung. I'm guessing this is related to the `go-sema` but I'm not entirely sure. We added some additional error checking that happens at line: https://github.com/racket/handin/blob/ac08937cc6b1eca8abe3d4d4df59876f95cbea17/handin-client/client-gui.rkt#L353 We simply checked that the current file was saved and raised an error if not: > (unless filename > (report-error "File is not saved. Please save the file and try again.")) This occurs in parallel with initializing the connection: https://github.com/racket/handin/blob/ac08937cc6b1eca8abe3d4d4df59876f95cbea17/handin-client/client-gui.rkt#L345 If the error checking raises an error before the connection is established, it seems that the connection logic completely hangs, and the connection can never be used. We can't move the error checking BEFORE the initialization, since `report-error` relies on the `comm-cust` variable, which is initialized through mutation by `(init-comm)`. Instead, I've moved the error reporting to happen AFTER the connection has definitely been established, right before a user tries to submit. This is a shame, since it principle it can happen in parallel with initialization, but I can figure out how to untangle this code enough to do that without risking the race condition. -- William J. Bowman On Sat, Sep 18, 2021 at 08:28:25PM -0700, 'William J. Bowman' via Racket Users wrote: > I've confirmed it's definitely client side, by redirecting the handin > server's address to 127.0.0.1 in /etc/hosts, and listening with `nc -l`. The > handin client hangs on "Making secure connection ..." and nc display nothing > at all. A few restarts and `nc -l` displays a bunch of gibberish that I'm > guessing is the handin protocol, and killing `nc` triggers the handin client > to report a connection error. > > So it's: > - handin client side > - maybe related to openssl > - nondeterministic > - when it occurs, it will recur until you restart DrRacket > - when it doesn't occur, it will not recur until you restart DrRacket > - affects 8.1 BC > - affects 8.1 CS > - affects 8.2.0.2 CS > - results in the client failing send anything to the network > > -- > William J. Bowman > > On Sat, Sep 18, 2021 at 08:05:10PM -0700, 'William J. Bowman' via Racket > Users wrote: > > Since I'm currently experiencing the issue, I've been able to get some > > better data. I've managed to reproduce it in 8.2.0.2 CS, which suggests > > it's not https://github.com/racket/racket/issues/3804. > > > > Restarting twice DrRacket hasn't helped, nor has resetting my wifi > > connection. > > > > After connecting via a browser, I notice a lot of the following in the log > > that seem to correlate with my attempts in the browser: > > > [-|2021-09-18T19:37:45] handin: unknown protocol: #"GET / HTTP/1.1" > > > ... > > > [-|2021-09-18T19:37:53] ERROR: ssl-accept/enable-break: accept failed > > > (error:1408F09C:SSL routines:ssl3_get_record:http request) > > > > As expected, nothing seem to correlate with my attempts to connect from the > > handin plugin. > > > > This makes me suspect the server, but I can't reconcile that with why > > there's nothing in the logs. > > > > -- > > William J. Bowman > > > > On Sat, Sep 18, 2021 at 06:59:43PM -0700, 'William J. Bowman' via Racket > > Users wrote: > > > I just tried this, but I can't seem to connect. > > > http://cs110.students.cs.ubc.ca:7979/ > > > gives "connection reset", and > > > https://cs110.students.cs.ubc.ca:7979/ > > > gives "secure connection failed". > > > > > > There's no prompt to accept the certificate (which I wouldn't expect, > > > because we're using a CA signed certificate through Let's Encrypt, not a > > > self-signed certificate). > > > > > > I'm currently experiencing the problem on my own client. I'm not sure if > > > that's related; I also couldn't connect from my phone. > > > > > > -- > > > William J. Bowman > > > > > > On Sat, Sep 18, 2021 at 09:24:05PM -0400, Sam Tobin-Hochstadt wrote: > > > > Have you tried visiting the server with a browser? That should work, > > > > although you'l
Re: [racket-users] Help debugging handin client connection problem
I've confirmed it's definitely client side, by redirecting the handin server's address to 127.0.0.1 in /etc/hosts, and listening with `nc -l`. The handin client hangs on "Making secure connection ..." and nc display nothing at all. A few restarts and `nc -l` displays a bunch of gibberish that I'm guessing is the handin protocol, and killing `nc` triggers the handin client to report a connection error. So it's: - handin client side - maybe related to openssl - nondeterministic - when it occurs, it will recur until you restart DrRacket - when it doesn't occur, it will not recur until you restart DrRacket - affects 8.1 BC - affects 8.1 CS - affects 8.2.0.2 CS - results in the client failing send anything to the network -- William J. Bowman On Sat, Sep 18, 2021 at 08:05:10PM -0700, 'William J. Bowman' via Racket Users wrote: > Since I'm currently experiencing the issue, I've been able to get some better > data. I've managed to reproduce it in 8.2.0.2 CS, which suggests it's not > https://github.com/racket/racket/issues/3804. > > Restarting twice DrRacket hasn't helped, nor has resetting my wifi connection. > > After connecting via a browser, I notice a lot of the following in the log > that seem to correlate with my attempts in the browser: > > [-|2021-09-18T19:37:45] handin: unknown protocol: #"GET / HTTP/1.1" > > ... > > [-|2021-09-18T19:37:53] ERROR: ssl-accept/enable-break: accept failed > > (error:1408F09C:SSL routines:ssl3_get_record:http request) > > As expected, nothing seem to correlate with my attempts to connect from the > handin plugin. > > This makes me suspect the server, but I can't reconcile that with why there's > nothing in the logs. > > -- > William J. Bowman > > On Sat, Sep 18, 2021 at 06:59:43PM -0700, 'William J. Bowman' via Racket > Users wrote: > > I just tried this, but I can't seem to connect. > > http://cs110.students.cs.ubc.ca:7979/ > > gives "connection reset", and > > https://cs110.students.cs.ubc.ca:7979/ > > gives "secure connection failed". > > > > There's no prompt to accept the certificate (which I wouldn't expect, > > because we're using a CA signed certificate through Let's Encrypt, not a > > self-signed certificate). > > > > I'm currently experiencing the problem on my own client. I'm not sure if > > that's related; I also couldn't connect from my phone. > > > > -- > > William J. Bowman > > > > On Sat, Sep 18, 2021 at 09:24:05PM -0400, Sam Tobin-Hochstadt wrote: > > > Have you tried visiting the server with a browser? That should work, > > > although you'll have to accept the certificate. It might also indicate > > > some > > > aspect of the behavior. > > > > > > Sam > > > > > > On Sat, Sep 18, 2021, 7:13 PM 'William J. Bowman' via Racket Users < > > > racket-users@googlegroups.com> wrote: > > > > > > > I need some help debugging an issue with the handin package. The handin > > > > plugin (client) displays “Making secure connection to > > > > …”, > > > > and simply hangs. Closing the dialog and trying again never resolves the > > > > issue. > > > > > > > > The only method that seems to resolve the issue, although > > > > inconsistently, > > > > is restarting DrRacket, opening a new file, and trying to submit that > > > > new > > > > file. This sometimes, but not always, enables the client to connect. > > > > Once > > > > it does connect, the issue doesn't seem to recur for some time. The > > > > client > > > > can make multiple successful submissions, at least until the end of > > > > lecture > > > > (maybe related to the next time they disconnect/reconnect to the > > > > internet). > > > > > > > > We running Racket 7.8 on the server and 8.1 BC on the clients. We've > > > > seen > > > > the issue occur on many operating system---old and new versions of > > > > macOS, > > > > Windows 10, and at one report on Linux. > > > > > > > > I can't just upgrade the clients to 8.2, since there's a bug in 8.2 that > > > > affects rendering inexact numbers in BSL, so I really want some > > > > confidence > > > > about what the issue is before I start upgrading versions. > > > > > > > > Anecdotally, the problem seems more common this semester compared to the > > > > previous semester, and we upgraded the clients to 8.1 this semester, > > &
Re: [racket-users] Help debugging handin client connection problem
Since I'm currently experiencing the issue, I've been able to get some better data. I've managed to reproduce it in 8.2.0.2 CS, which suggests it's not https://github.com/racket/racket/issues/3804. Restarting twice DrRacket hasn't helped, nor has resetting my wifi connection. After connecting via a browser, I notice a lot of the following in the log that seem to correlate with my attempts in the browser: > [-|2021-09-18T19:37:45] handin: unknown protocol: #"GET / HTTP/1.1" > ... > [-|2021-09-18T19:37:53] ERROR: ssl-accept/enable-break: accept failed > (error:1408F09C:SSL routines:ssl3_get_record:http request) As expected, nothing seem to correlate with my attempts to connect from the handin plugin. This makes me suspect the server, but I can't reconcile that with why there's nothing in the logs. -- William J. Bowman On Sat, Sep 18, 2021 at 06:59:43PM -0700, 'William J. Bowman' via Racket Users wrote: > I just tried this, but I can't seem to connect. > http://cs110.students.cs.ubc.ca:7979/ > gives "connection reset", and > https://cs110.students.cs.ubc.ca:7979/ > gives "secure connection failed". > > There's no prompt to accept the certificate (which I wouldn't expect, because > we're using a CA signed certificate through Let's Encrypt, not a self-signed > certificate). > > I'm currently experiencing the problem on my own client. I'm not sure if > that's related; I also couldn't connect from my phone. > > -- > William J. Bowman > > On Sat, Sep 18, 2021 at 09:24:05PM -0400, Sam Tobin-Hochstadt wrote: > > Have you tried visiting the server with a browser? That should work, > > although you'll have to accept the certificate. It might also indicate some > > aspect of the behavior. > > > > Sam > > > > On Sat, Sep 18, 2021, 7:13 PM 'William J. Bowman' via Racket Users < > > racket-users@googlegroups.com> wrote: > > > > > I need some help debugging an issue with the handin package. The handin > > > plugin (client) displays “Making secure connection to …”, > > > and simply hangs. Closing the dialog and trying again never resolves the > > > issue. > > > > > > The only method that seems to resolve the issue, although inconsistently, > > > is restarting DrRacket, opening a new file, and trying to submit that new > > > file. This sometimes, but not always, enables the client to connect. Once > > > it does connect, the issue doesn't seem to recur for some time. The client > > > can make multiple successful submissions, at least until the end of > > > lecture > > > (maybe related to the next time they disconnect/reconnect to the > > > internet). > > > > > > We running Racket 7.8 on the server and 8.1 BC on the clients. We've seen > > > the issue occur on many operating system---old and new versions of macOS, > > > Windows 10, and at one report on Linux. > > > > > > I can't just upgrade the clients to 8.2, since there's a bug in 8.2 that > > > affects rendering inexact numbers in BSL, so I really want some confidence > > > about what the issue is before I start upgrading versions. > > > > > > Anecdotally, the problem seems more common this semester compared to the > > > previous semester, and we upgraded the clients to 8.1 this semester, > > > suggesting the clients are at fault. > > > > > > When this problem occurs, there is nothing in the log on the handin > > > server, suggesting the client did not even manage to initiate the > > > connection to the server. In particular, the server never seems to make it > > > to this log line: > > > > > > https://github.com/racket/handin/blob/ac08937cc6b1eca8abe3d4d4df59876f95cbea17/handin-server/main.rkt#L679 > > > This is one the earliest log lines and before pretty much anything > > > happens, so we're *PRETTY SURE* the client is blocking. > > > > > > Right now, my best guess is that we might be affected by this bug, which > > > causes SSL ports to block incorrectly: > > > https://github.com/racket/racket/issues/3804 > > > > > > If so, it would probably be in the client, unless `(ssl-addresses r)` can > > > block in the same way on the server, since otherwise the above log line > > > would execute. > > > > > > However, if it is the client, I don't have any explanation about why > > > restarting DrRacket would workaround the bug, or why it sometimes doesn't > > > work. > > > > > > I'd appreciate any help. > > > > > > -- > > > William J. Bo
Re: [racket-users] Help debugging handin client connection problem
I just tried this, but I can't seem to connect. http://cs110.students.cs.ubc.ca:7979/ gives "connection reset", and https://cs110.students.cs.ubc.ca:7979/ gives "secure connection failed". There's no prompt to accept the certificate (which I wouldn't expect, because we're using a CA signed certificate through Let's Encrypt, not a self-signed certificate). I'm currently experiencing the problem on my own client. I'm not sure if that's related; I also couldn't connect from my phone. -- William J. Bowman On Sat, Sep 18, 2021 at 09:24:05PM -0400, Sam Tobin-Hochstadt wrote: > Have you tried visiting the server with a browser? That should work, > although you'll have to accept the certificate. It might also indicate some > aspect of the behavior. > > Sam > > On Sat, Sep 18, 2021, 7:13 PM 'William J. Bowman' via Racket Users < > racket-users@googlegroups.com> wrote: > > > I need some help debugging an issue with the handin package. The handin > > plugin (client) displays “Making secure connection to …”, > > and simply hangs. Closing the dialog and trying again never resolves the > > issue. > > > > The only method that seems to resolve the issue, although inconsistently, > > is restarting DrRacket, opening a new file, and trying to submit that new > > file. This sometimes, but not always, enables the client to connect. Once > > it does connect, the issue doesn't seem to recur for some time. The client > > can make multiple successful submissions, at least until the end of lecture > > (maybe related to the next time they disconnect/reconnect to the internet). > > > > We running Racket 7.8 on the server and 8.1 BC on the clients. We've seen > > the issue occur on many operating system---old and new versions of macOS, > > Windows 10, and at one report on Linux. > > > > I can't just upgrade the clients to 8.2, since there's a bug in 8.2 that > > affects rendering inexact numbers in BSL, so I really want some confidence > > about what the issue is before I start upgrading versions. > > > > Anecdotally, the problem seems more common this semester compared to the > > previous semester, and we upgraded the clients to 8.1 this semester, > > suggesting the clients are at fault. > > > > When this problem occurs, there is nothing in the log on the handin > > server, suggesting the client did not even manage to initiate the > > connection to the server. In particular, the server never seems to make it > > to this log line: > > > > https://github.com/racket/handin/blob/ac08937cc6b1eca8abe3d4d4df59876f95cbea17/handin-server/main.rkt#L679 > > This is one the earliest log lines and before pretty much anything > > happens, so we're *PRETTY SURE* the client is blocking. > > > > Right now, my best guess is that we might be affected by this bug, which > > causes SSL ports to block incorrectly: > > https://github.com/racket/racket/issues/3804 > > > > If so, it would probably be in the client, unless `(ssl-addresses r)` can > > block in the same way on the server, since otherwise the above log line > > would execute. > > > > However, if it is the client, I don't have any explanation about why > > restarting DrRacket would workaround the bug, or why it sometimes doesn't > > work. > > > > I'd appreciate any help. > > > > -- > > William J. Bowman > > > > -- > > 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/YUZyWlsY9CdCDyPu%40williamjbowman.com > > . > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/YUaZj9v0Lch0jfMC%40williamjbowman.com.
[racket-users] Help debugging handin client connection problem
I need some help debugging an issue with the handin package. The handin plugin (client) displays “Making secure connection to …”, and simply hangs. Closing the dialog and trying again never resolves the issue. The only method that seems to resolve the issue, although inconsistently, is restarting DrRacket, opening a new file, and trying to submit that new file. This sometimes, but not always, enables the client to connect. Once it does connect, the issue doesn't seem to recur for some time. The client can make multiple successful submissions, at least until the end of lecture (maybe related to the next time they disconnect/reconnect to the internet). We running Racket 7.8 on the server and 8.1 BC on the clients. We've seen the issue occur on many operating system---old and new versions of macOS, Windows 10, and at one report on Linux. I can't just upgrade the clients to 8.2, since there's a bug in 8.2 that affects rendering inexact numbers in BSL, so I really want some confidence about what the issue is before I start upgrading versions. Anecdotally, the problem seems more common this semester compared to the previous semester, and we upgraded the clients to 8.1 this semester, suggesting the clients are at fault. When this problem occurs, there is nothing in the log on the handin server, suggesting the client did not even manage to initiate the connection to the server. In particular, the server never seems to make it to this log line: https://github.com/racket/handin/blob/ac08937cc6b1eca8abe3d4d4df59876f95cbea17/handin-server/main.rkt#L679 This is one the earliest log lines and before pretty much anything happens, so we're *PRETTY SURE* the client is blocking. Right now, my best guess is that we might be affected by this bug, which causes SSL ports to block incorrectly: https://github.com/racket/racket/issues/3804 If so, it would probably be in the client, unless `(ssl-addresses r)` can block in the same way on the server, since otherwise the above log line would execute. However, if it is the client, I don't have any explanation about why restarting DrRacket would workaround the bug, or why it sometimes doesn't work. I'd appreciate any help. -- William J. Bowman -- 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/YUZyWlsY9CdCDyPu%40williamjbowman.com.
[racket-users] É PEDOFILO ASSASSINO: #PAOLOBARRAI DI CRIMINALISSIMA #TERRABITCOIN! IL MALAVITOSO LEGHISTA #LUCASOSTEGNI, POI INCARCERATO, STAVA SCAPPANDO A PORTO SEGURO (BRASILE), DOVE IL KILLER PAOLO
É PEDOFILO ASSASSINO: #PAOLOBARRAI DI CRIMINALISSIMA #TERRABITCOIN! IL MALAVITOSO LEGHISTA #LUCASOSTEGNI, POI INCARCERATO, STAVA SCAPPANDO A PORTO SEGURO (BRASILE), DOVE IL KILLER PAOLO BARRAI HA RICICLATO PARTE DEI 49 MLN € RUBATI DA LEGA LADRONA! RAPISCE, INCULA ED UCCIDE TANTI BAMBINI: PAOLO BARRAI (NOTO COME "IL PEDOFILO DEL BITCOIN, DI LEGA LADRONA, DI STRAGISTA SILVIO BERLUSCONI #SILVIOBERLUSCONI E DI NAZISTA MARINA BERLUSCONI #MARINABERLUSCONI ")! SEMPRE A "SPENNARE" ECONOMICAMENTE I POLLI DEL WEB! FALSO, LADRO, TRUFFATORE! AZZERA I TUOI RISPARMI! NON AZZECCA MAI PREVISIONI IN BORSA! É NAZISTA OMICIDA E RICICLA SOLDI STRA ASSASSINI DI NDRANGHETA, CAMORRA, MAFIA, SACRA CORONA UNITA E LEGA LADRONA (OLTRE CHE DI PEDOFILO ASSASSINO SILVIO BERLUSCONI)! SALVE. SONO ANDREAS NIGG. VICE PRESIDENT DI BANCA SAFRA SARASIN DI ZURIGO. E VI VOGLIO DIRE CON TUTTE LE MIE FORZE CHE... IL LEGHISTA PEDOFILO ED ASSASSINO PAOLO BARRAI (NATO A MILANO IL 28.6.1965), IL LEGHISTA INCULA ED AMMAZZA BAMBINI PAOLO PIETRO BARRAI (NOTO IN TUTTO IL MONDO COME IL PEDOFILO DEL BITCOIN) E' DA ANNI INDAGATO DA PROCURA DI MILANO, PROCURA DI LUGANO, PROCURA DI ZUGO, SCOTLAND YARD LONDRA, FBI NEW YORK, POLICIA CIVIL DI PORTO SEGURO (BR). É DAVVERO PEDERASTA ED OMICIDA: PAOLO BARRAI DI CRIMINALE TERRA BITCOIN (O CRIMINALE TERRABITCOIN CLUB)! IL LEGHISTA DELINQUENTE LUCA SOSTEGNI, ARRESTATO, SCAPPAVA IN CITATA PORTO SEGURO (BR), OSSIA, GUARDA CASO, DOVE IL KILLER NAZISTA PAOLO BARRAI HA RICICLATO PARTE DEI 49 MLN € RUBATI DA LEGA LADRONA! (ECCONE LE PROVE https://oneway2day.files.wordpress.com/2019/01/indagatoaiutalelisteciviche.jpg http://www.rotadosertao.com/noticia/10516-porto-seguro-policia-investiga-blogueiro-italiano-suspeito-de-estelionato http://noticiasdeportoseguro.blogspot.com/2011/03/quem-e-pietro-paolo-barrai.html ) É TRUFFATORE, PEDOFILO ED ASSASSINO: PAOLO BARRAI( O TRUFFATORE, PEDOFILO ED ASSASSINO PAOLO PIETRO BARRAI). DI CRIMINALE TERRA BITCOIN (ASSOCIAZIONE CON INTENTO DI FOTTERE, FREGARE, SPENNARE POLLI VIA INTERNET, IL TUTTO VIA NAZIFASCISTA SITO TELEGRAM) E CRIMINALISSIMO BLOG MERCATO LIBERO, ALIAS "MERDATO" LIBERO! INDAGATO, AL MOMENTO, DALLA PROCURA DI MILANO. COME PURE DA PROCURA DI LUGANO, SCOTLAND YARD LONDRA, FBI NEW YORK, POLICIA CIVIL DI PORTO SEGURO (BR). TROVATE TANTI ALTRI VINCENTISSIMI DETTAGLI, A PROPOSITO DI QUESTO, QUI: https://comp.lang.python.narkive.com/qkxGCaas/e-pedofilo-ed-assassino-paolo-barrai-di-criminale-terra-bitcoin-e-truffatore-spenna-i-polli-del-web- -- 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/8d276e03-62fe-465c-b7de-507d846ac3e4n%40googlegroups.com.
[racket-users] PLDI 2022 First Call for Papers
Please distribute widely. *Call for Papers* 2022 ACM Conference on Programming Language Design and Implementation (PLDI) Mon 20 - Fri 24 June 2022 San Diego, California, United States https://pldi22.sigplan.org/track/pldi-2022-pldi#Call-for-Papers PLDI is a premier forum for programming language research, broadly construed, including design, implementation, theory, applications, and performance. PLDI seeks outstanding research that extends and/or applies programming-language concepts to advance the field of computing. Novel system designs, thorough empirical work, well-motivated theoretical results, and new application areas are all welcome emphases in strong PLDI submissions. Reviewers will evaluate each contribution for its accuracy, significance, originality, and clarity. Submissions should be organized to communicate clearly to a broad programming-language audience as well as to experts on the paper’s topics. Papers should identify what has been accomplished and how it relates to previous work. Authors of empirical papers are encouraged to consider the seven categories of the SIGPLAN Empirical Evaluation Guidelines when preparing their submissions. (http://www.sigplan.org/Resources/EmpiricalEvaluation/) *Important Dates* === Fri 19 Nov 2021, Submission Deadline Mon 7 Feb - Wed 9 Feb 2022, Author Response Fri 25 Feb 2022, Author Notification *Author Instructions* == https://pldi22.sigplan.org/track/pldi-2022-pldi#Call-for-Papers Submission site: https://pldi2022.hotcrp.com/ *Organizing Committee* General Chair: Ranjit Jhala, U. of California at San Diego Program Chair: Isil Dillig, U. of Texas at Austin Web Chair: Dan Barowy, Williams College Publicity Co-Chairs: William J. Bowman, U. of British Columbia Arjun Guha, Northeastern U. Sponsorship Co-Chairs: Ravi Chugh, U. of Chicago Sasa Misailovic, U. of Illinois at Urbana-Champaign Workshops Co-Chairs: Nadia Polikarpova, U. of California at San Diego Alexandra Silva, U. College London Student Research Competition Co-Chairs: Tyler Sorensen, U. of California at Santa Cruz Jubi Taneja, Microsoft Research Artifact Evaluation Co-Chairs: Niki Vazou, IMDEA Software Institute Xinyu Wang, U. of Michigan https://pldi22.sigplan.org/committee/pldi-2022-organizing-committee -- William J. Bowman -- 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/YTjwBHFscbjUGnVE%40williamjbowman.com.
Re: [racket-users] Bootstrap on Racket
I use Greg Hendershott’s excellent and trouble-free ‘frog’ library. How would your code relate to this? John > On Aug 30, 2021, at 10:57, Dexter Lagan wrote: > > Hi again, > > I've been working on porting my Newstrap Web framework from newLISP to > Racket. I got most of it done and am about to start work on a router. Here's > what I got so far: > > DexterLagan/rap: Combination of Racket and Bootstrap, RAP is a Web framework > aiming to produce good-looking pages with ease. (github.com) > > based on Newsrap: > > DexterLagan/newstrap: A fast, lightweight web framework written in newLISP. > (github.com) > > Does anybody know if something similar already exists? I looked around but > couldn't find anything production-ready (in Racket). I just want to know if > I'm wasting my time reinventing the wheel, or if there's value in having a > bunch of macros generate Bootstrap code. My first goal would be to have a > static site generator going, followed by a fully-featured framework for > production use. > > Any and all feedback would help me greatly! > > Dex > > > -- > 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/473170ba-624a-4339-b499-9e936765603cn%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/75aa8867-0487-412e-9ce3-22edefb0a1e0%40mtasv.net.
[racket-users] Racket v8.2
-- Racket version 8.2 is now available from https://racket-lang.org/ * Racket CS improved the performance of large-integer arithmetic. * Racket has improved support for layered and tethered installation. * Racket CS supports nonatomic allocation via ffi/unsafe. * Cross-compilation works fully with the `raco cross` tool, which is distributed separately as the "raco-cross" package. * DrRacket has performance improvements when editing files with picts containing large bitmaps. * Typed Racket more consistently refines field types of non-polymorphic structs. * Printing of values is unified across the teaching language implementations and the stepper. The following people contributed to this release: Alex Harsányi, Alex Knauth, Amirouche, Andrew Mauer-Oats, Bob Burger, Bogdan Popa, Cameron Moy, Crystal Jacobs, Dale Vaillancourt, Diego A. Mundo, Fred Fu, Greg Hendershott, Gustavo Massaccesi, Jack Firth, Jamie Taylor, Jarhmander, Jason Hemann, Jay McCarthy, Jeffrey D. Swan, Jens Axel Søgaard, Jesse Alama, John Clements, Laurent Orseau, Lazerbeak12345, Matthew Flatt, Matthias Felleisen, Mike Sperber, Nada Amin, Noah Ma, Oscar Waddell, Paulo Matos, Pavel Panchekha, Philip McGrath, Ray Racine, Robby Findler, Ryan Culpepper, Sam Tobin-Hochstadt, Shu-Hung You, Sorawee Porncharoenwase, Stephen Chang, Thorsten Blum, Tony Garnock-Jones, WarGrey Gyoudmon Ju, William J. Bowman, Yu Fang, and minor-change. Feedback Welcome -- -- 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/d5696ad8-f2d2-4b58-8834-0f2a2e953403%40mtasv.net.
Re: [racket-users] Question from a beginner. Why Racket Over Scheme?
Allow me to be very slightly less cautious than Robby: it may not be clear from this text that nearly every BSL program is also a Racket program *and* a Scheme program. If you work through HtDP—or even a part of it—you will be, I claim, both a Scheme and a Racket programmer. (And perhaps also a better Python, C, and Haskell programmer). In other words: if your concern is that HtDP will not teach you Scheme, you need not worry. John > On Jul 13, 2021, at 11:19, Robby Findler wrote: > > I would say that the stuff in HtDP is teaching you the fundamentals of > programming; it isn't (about) teaching you a specific programming language. > These fundamentals apply to any programming language you might wish to > program in. And, of course, the book does use a (set of) languages to teach > you, but that's more about having something so that you can practice than it > is about teaching you the specifics of BSL. > > If your goal is to learn how to program, just in general, I think HtDP is the > book for you. If your goal is something else, then HtDP may not be for you. > > I should also add that I think that the learning the fundamentals of how to > program is a wonderful thing and I am very happy that I have learned them. It > is even better than my job overlaps with my favorite hobby (which happens to > be programming); I consider myself extremely lucky because of that! > > best, > Robby > > > On Tue, Jul 13, 2021 at 10:12 AM joseph turco > wrote: > I see. The stuff in HtDP, does it transfer over to any Racket syntax? > > On Tue, Jul 13, 2021 at 10:56 AM George Neuner wrote: > > On 7/13/2021 10:13 AM, joseph turco wrote: >> Hello, >> >> Im am looking at learning a programming language, and have been bouncing >> around with scheme/racket/dyalog APL/squeak. upon investigation of scheme >> and racket, i found that in regards to racket, there really isn't a >> "Beginners book" that teaches the language. The only beginner book i could >> really see being close to teaching the language is HtDP, but that doesn't >> technically teach racket, but BSL. For scheme, im able to find beginner >> books, unless im not looking deep enough. Maybe if you fine folk don't mind >> pointing me in the right direction? Please excuse my ignorance. >> >> -- Joseph T > > Welcome. > > Racket[*] largely is based on Scheme, and so much of what you learn about > Scheme will transfer. Racket supports R5RS and R6RS Scheme as legacy > languages, so you can learn about Scheme /using/ Racket and its tools. Then > when you are more comfortable, you can transition to using the Racket module > language instead. > > George > [*] At least the untyped Racket language. Racket really is a /suite/ of > languages: there also is a typed Racket, a lazy Racket, and various DSLs > (domain languages) which compile to and (mostly) freely intermix with Racket. > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/CADhp54TpmGXSVDTjbcL%3DYqxiQDmytrMotcxJ7oKgTnniPQOwmg%40mail.gmail.com. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/CAL3TdONjgSWi3fpY9yAyvzpsFqW-cCzqQYCbhpUeMK_te_R49w%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/76ed8878-cf98-4835-a87b-53d2a750676b%40mtasv.net.
Re: [racket-users] Question from a beginner. Why Racket Over Scheme?
Good to hear from you! There are actually a number of different books that I might suggest. In order to best direct you, it might be useful to know something about your programming background? Best, John Clements > On Jul 13, 2021, at 10:13, joseph turco wrote: > > Hello, > > Im am looking at learning a programming language, and have been bouncing > around with scheme/racket/dyalog APL/squeak. upon investigation of scheme and > racket, i found that in regards to racket, there really isn't a "Beginners > book" that teaches the language. The only beginner book i could really see > being close to teaching the language is HtDP, but that doesn't technically > teach racket, but BSL. For scheme, im able to find beginner books, unless im > not looking deep enough. Maybe if you fine folk don't mind pointing me in the > right direction? Please excuse my ignorance. > > -- Joseph T > > > -- > 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/CADhp54SQ%3DhwO1V%3DshEzNOpkFhn3tPg2vextUrXAEcSMf0vsgpA%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/9a732155-e6fb-43a3-ad7e-979269a0473d%40mtasv.net.
Re: [racket-users] Racket Slack archive [help wanted]
Hearing about this for the first time, seems like a fantastic idea. 10 seconds of experience: 1) It wasn’t immediately clear to me that the links were the names of channels. It seems painfully obvious to me now, but perhaps it’s worth starting all the names with hashes? 2) Clicking on the channel name “general” appears to melt down somehow, presumably because the page is really really really big. Is pagination near the top of most-desired-new-features? Again, I think it’s great that you’re doing this! John > On Jun 8, 2021, at 08:16, D. Ben Knoble wrote: > > In case you missed it/aren't on Slack: > > The latest version of the Slack archive is up-and-running at > https://benknoble.github.io/racket-slack-archive/ (extends through roughly > 2021-06-07). > > The site is now built using a mix of > - Racket (data processing, mostly the json, hash, and unzip modules) > - Jekyll/Ruby (site-generation; a plugin makes pages out of all the channel > directories, which are then rendered via a set of HTML templates) > > I have some todos to make a nicer experience, and help is welcome. Also if > anyone wants to start working porting the Jekyll + Ruby stuff to Racket, feel > free. > > -- > 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/a8efd2e6-ffb9-48d3-8b98-2d3da9551e70n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/b25be9f7-e01d-4f9e-a1dc-5d1c6b94cfd0%40mtasv.net.
Re: [racket-users] student produces absolutely bonkers environment lookup code
Yep, I think that’s probably on the money. I guess this is really a classic example of the problem with writing code using internet search. Many thanks! > On May 7, 2021, at 4:38 PM, Ben Greenman wrote: > > On 5/7/21, Shu-Hung You wrote: >> Not that I have any idea of what's going on, but interestingly, Typed >> Racket's second ->* example has (1)(3)(4). The use of list* may be >> possible if one follows the type (List* String Natural x) in the >> example. >> >> https://docs.racket-lang.org/ts-reference/type-ref.html?#%28form._%28%28lib._typed-racket%2Fbase-env%2Fbase-types-extra..rkt%29._-~3e%2A%29%29 >> >> Shu-Hung > > +1, that example in the docs looks _very_ similar to the student code > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/CAFUu9R4SJ7OisUeH5mFxGHpycrxhKYNFuSMLLgSzKCprt2aQWQ%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/36e88c8e-d2eb-43b5-8a8d-4144487fe347%40mtasv.net.
Re: [racket-users] Is there a good Racket DSL alternative to Image Magick?
Racket has the ability to read a variety of different image files. I would go first to 2htdp/image’s “bitmap/file” to read images. “save-image” can write images (but only as png files). I believe there are also an array of lower-level image manipulation functions that are likely to have a less friendly interface :). Apologies in advance for any misleading information I might be providing…. John > On May 11, 2021, at 1:09 PM, Robert Haisfield > wrote: > > Alternatively, does the normal images function for Racket work? When I was > looking through the documentation I saw a lot about creating shapes but not > about using image files. > > On Tuesday, May 11, 2021 at 2:03:33 PM UTC-6 Robert Haisfield wrote: > Hmm does the video language work for image files? If so, then I think it > might work. > > On Tuesday, May 11, 2021 at 9:03:35 AM UTC-6 Sage Gerard wrote: > I hope that has what Robert is looking for, but I don't recognize that > speech. In fact, I have a false memory, because I'm not finding the speech > I'm looking for on https://con.racket-lang.org/2018/#speakers > > On 5/11/21 10:19 AM, Bruce O'Neel wrote: >> This might be it. >> >> (seventh RacketCon): Leif Andersen -- Movies as Programs: The Story of a >> Racket - YouTube >> >> >> >> >> >> 11 May 2021 15:30 Sage Gerard wrote: >> I don't know of one off hand, but I believe RacketCon 2018 (?) included a >> presenter that showed a PostScript-like DSL for designers and artists. If >> pict not cover your needs, maybe dig into the presentations? >> >> Failing that, can you show what you'd hope the syntax would look like? That >> would probably help point you in the right direction, >> >> On 5/11/21 9:26 AM, Robert Haisfield wrote: >>> I have to do a bunch of .jpg and .png image resizings and was looking for a >>> programmatic way to do it. Is their a Racket DSL for this? -- >>> You received this message because you are subscribed to the Google Groups >>> "Racket Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to racket-users...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/racket-users/0d576c32-7d4d-4944-9cbc-c12f04406fccn%40googlegroups.com. >> -- ~slg -- >> You received this message because you are subscribed to the Google Groups >> "Racket Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to racket-users...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/racket-users/6e3aacdc-015b-2484-3bee-0c08e3fb612d%40sagegerard.com. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Racket Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to racket-users...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/racket-users/1620742795-01b81de5d6862fd390ec60605ee3bc9d%40pckswarms.ch. > -- > ~slg > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/b6a89a78-c92c-41c1-960a-49d64d8a5366n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/404c8fad-befc-4b01-8728-48ce9b912117%40mtasv.net.
Re: [racket-users] Racket v8.1
Ah! My apologies. I’ve added your name to our “preferred names” file, and I hope not to make this mistake again. Thank you! John > On May 8, 2021, at 13:38, Dexter Lagan wrote: > > Hello sir, > > Thank you ! My name is actually Dexter Santucci. Apologies for the > confusion. My email address isn't telling. > > Cheers! > > Dexter > > On Wednesday, May 5, 2021 at 6:39:22 PM UTC+2 johnbclements wrote: > -- > Racket version 8.1 is now available from > > https://racket-lang.org/ > > > - DrRacket tabs can be dragged, and have new close buttons. > > - Racket CS supports cross-compilation using `raco exe`. > > - Racket CS supports Android on 32-bit and 64-bit ARM processors. > > - The database library supports running queries in OS threads. > > - Check-Syntax arrows correctly identify the definition site of > identifiers with contracts. > > - Racket CS performance has improved for structure predicates and > accessors > > - Racket CS is faster at multiplying extremely large numbers and > dividing large integers. > > - Racket CS allows callbacks to raise exceptions if they are annotated > with `#:callback-exns?`. > > - New ephemeron hash tables simplify the implementation of tables where > keys can refer to values. > > - Typed Racket supports for/foldr. > > - The stepper works for #lang htdp/*sl. > > - Struct signatures work for the ASL teaching language. > > The following people contributed to this release: > > Alex Harsányi, Alex Knauth, Alexander Shopov, Alexis King, Andrew > Mauer-Oats, Anish Athalye, Ben Greenman, Bert De Ketelaere, Bob Burger, > Bogdan Popa, Brian Adkins, Cameron Moy, David Van Horn, Dexter Lagan, > Dominik Pantůček, Fred Fu, Greg Hendershott, Gustavo Massaccesi, Hazel > Levine, Ismael Luceno, Jack Firth, Jarhmander, John Clements, Jörgen > Brandt, Laurent Orseau, Lazerbeak12345, Matthew Flatt, Matthias > Felleisen, Micah Cantor, Mike Sperber, Noah Ma, Patrick McCarty, Paulo > Matos, Pavel Panchekha, Philip McGrath, Philippe Meunier, R. Kent > Dybvig, Robby Findler, Ryan Culpepper, Ryan Kramer, Sam Tobin-Hochstadt, > Sergiu Ivanov, Shu-Hung You, Sorawee Porncharoenwase, Stephen De > Gabrielle, William J. Bowman, bmitc, xxyzz, yjqww6, and ymdarake > > Feedback Welcome > -- > > > -- > 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/e8e8ecff-79ad-4c33-ab37-6d98ca18baa7n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/3aa00891-bcde-4cbd-879f-1da1781210e1%40mtasv.net.
[racket-users] student produces absolutely bonkers environment lookup code
Background: I teach a PL course, using Shriram’s PLAI. Many of the assignments require students to maintain an environment mapping symbols to values. Shriram illustrates a nice easy way to do this, as a list of two-element structures. You can also use an immutable hash. Fine. So I’m grading a student submission, and I come across this: (: extend-environment* (-> Environment (Listof (List Symbol Value)) Environment)) (define (extend-environment* env kv) (let loop ([kv : (Listof (List Symbol Value)) kv] [env env]) (cond [(empty? kv) env] [else (let* ([kv-pair (first kv)] [new-env (KVEnvironment (first kv-pair) (second kv-pair) env)]) (loop (rest kv) new-env))]))) ;; Returns a new environment with old-env as parent (: extend-environment (->* (Environment Symbol Value) #:rest-star (Symbol Value) Environment)) (define (extend-environment env key value . kv) (define kv* : (Listof (List Symbol Value)) (let loop : (Listof (List Symbol Value)) ([kv : (Rec x (U Null (List* Symbol Value x))) (list* key value kv)]) (if (empty? kv) '() (let* ([take-two (list (first kv) (second kv))] [drop-two (rest (rest kv))]) (list* take-two (loop drop-two)) (extend-environment* env kv*)) This solution uses 1) a named let, 2) the list* function, 3) a ->* type with a #:rest-star argument, and 4) A custom rec type for alternating symbols and values. To cap it all off, the student DOESN’T EVEN USE the extra hardware. This is the only use of extend-environment in the code: (extend-environment e name arg) So, uh, any idea where this code came from? :) John -- 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/ee31119c-aab4-48e4-94dd-39272dd34724%40mtasv.net.
Re: [racket-users] Tell require where to find C libraries ?
It looks to me like you probably need to edit your “config.rktd” file: https://docs.racket-lang.org/raco/config-file.html?q=config.rktd#%28idx._%28gentag._67._%28lib._scribblings%2Fraco%2Fraco..scrbl%29%29%29 On my machine (macOS using macports), for instance I have do do this for every new installation of drracket: - edit /config.rktd to contain (lib-search-dirs . (#f "/opt/local/lib”)) Let me know if I misunderstood your situation! John Clements > On May 6, 2021, at 3:54 AM, krs...@gmail.com wrote: > > > Hi!, > > I am doing: (require taglib) and I get: > > (require taglib) > ; ffi-lib: could not load foreign library > ; path: libtag_c.so.0 > ; system error: File not found > ; [,bt for context] > > I am on OpenBSD and that file is at: > /usr/local/lib/libtag_c.so.3.0 > > How can I change my search path for C libs to be /usr/local ? > > -- > 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/b8425f0a-6d45-4954-9e32-df51aa5151cbn%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/6c7c1827-2beb-4e05-a0f6-f26740a24544%40mtasv.net.
[racket-users] Racket v8.1
-- Racket version 8.1 is now available from https://racket-lang.org/ - DrRacket tabs can be dragged, and have new close buttons. - Racket CS supports cross-compilation using `raco exe`. - Racket CS supports Android on 32-bit and 64-bit ARM processors. - The database library supports running queries in OS threads. - Check-Syntax arrows correctly identify the definition site of identifiers with contracts. - Racket CS performance has improved for structure predicates and accessors - Racket CS is faster at multiplying extremely large numbers and dividing large integers. - Racket CS allows callbacks to raise exceptions if they are annotated with `#:callback-exns?`. - New ephemeron hash tables simplify the implementation of tables where keys can refer to values. - Typed Racket supports for/foldr. - The stepper works for #lang htdp/*sl. - Struct signatures work for the ASL teaching language. The following people contributed to this release: Alex Harsányi, Alex Knauth, Alexander Shopov, Alexis King, Andrew Mauer-Oats, Anish Athalye, Ben Greenman, Bert De Ketelaere, Bob Burger, Bogdan Popa, Brian Adkins, Cameron Moy, David Van Horn, Dexter Lagan, Dominik Pantůček, Fred Fu, Greg Hendershott, Gustavo Massaccesi, Hazel Levine, Ismael Luceno, Jack Firth, Jarhmander, John Clements, Jörgen Brandt, Laurent Orseau, Lazerbeak12345, Matthew Flatt, Matthias Felleisen, Micah Cantor, Mike Sperber, Noah Ma, Patrick McCarty, Paulo Matos, Pavel Panchekha, Philip McGrath, Philippe Meunier, R. Kent Dybvig, Robby Findler, Ryan Culpepper, Ryan Kramer, Sam Tobin-Hochstadt, Sergiu Ivanov, Shu-Hung You, Sorawee Porncharoenwase, Stephen De Gabrielle, William J. Bowman, bmitc, xxyzz, yjqww6, and ymdarake Feedback Welcome -- -- 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/9660bf5e-49ee-4b71-8407-4e1fcde01b36%40mtasv.net.
[racket-users] Having trouble with HtDP design recipe at exercise 213
Greetings, I'm working through HtDP alone and am currently stuck. All the relevant code can be found here: https://gist.github.com/simalaia/d5b50e9a0bd36b89128aecb43de71cf8 As suggested in the book I start with (insert-everywhere/in-all-words) and design a new function with signature 1String Word -> List-of-Words and the purpose statement "insert 1String into every position of Word", I get stuck here. I used the table method to try and work out what the next function I need to design is, however everything I try results in me coming up with needing exactly the function that I started with, along with the problem that I started with. Every attempt at directly solving it (but see below on how this 'solving' is being done) without an auxiliary function results in some tests failing. For example (f "x" (list "a")) -> (("x" "a") ("a" "x")) but this fails when given length zero or two words. I have not managed any improvements on this. There seems to be a fairly obvious solution along the lines of (map append (prefixes w) (map (λ (x) (cons s x)) (suffixes w))) however that seems to require the simultaneous processing chapter and is based more on intuition than design. I am, either way, not asking as to the solution for this problem. What I can't work out is where my understanding of the design recipe is failing? The implementation I have so far is based on my extrapolation from the list-of-lists recipe to how trees would likely be processed and based on a pure intuitive guess rather than systematic application of the recipe. The table method also doesn't seem to be producing any results that I understand. Nor are the tests helping... Hence, could someone assist with debugging my understanding of the recipe? Regards. -- Sent with https://mailfence.com Secure and private email -- 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/1801521434.203448.1620219317116%40ichabod.co-bxl.
Re: [racket-users] limitation of TR contract translation?
Okay, submitted as bug. Many thanks to Matthias for reducing the example. John > On Apr 30, 2021, at 4:12 AM, Sam Tobin-Hochstadt wrote: > > This is a bug. It's not the the contract is unsatisfiable, it's that it's too > satisfiable. The contract system could probably make this work, but Typed > Racket should probably avoid this situation. > > Sam > > On Fri, Apr 30, 2021, 2:07 AM 'John Clements' via Racket Users > wrote: > It seems that the conversion of TR types to contracts can result in contracts > like (or/c (cons/c any/c any/c) (cons/c any/c any/c)) that apparently cause > errors when run. > > I’m too tired to do a good job of providing a full example… no, actually, > it’s pretty easy. Run this program: > > #lang racket > > > (module foo typed/racket > > (provide val->autorun-table) > > (define-type Autorun-Result > (U (Pair 'success Any) >(Pair 'fail Any))) > > (define-type Autorun-Entry > (List String Autorun-Result)) > (define-predicate autorun-entry? Autorun-Entry) > > (define-type Autorun-Table (Listof Autorun-Entry)) > (define-predicate autorun-table? Autorun-Table) > > (define (val->autorun-table [val : Any]) > : (U False Autorun-Table) > (cond > [(list? val) >(define first-bad (findf (compose not autorun-entry?) val)) >(when first-bad > (fprintf (current-error-port) > "not an expected autorun entry:\n~e\n" > first-bad)) >(cast val Autorun-Table)] > [else >(error 'maybe-fetch-autorun-results > "result of read wasn't a list. moreinfo.")]))) > > (require 'foo) > > (val->autorun-table '(("1234" (fail (zz 1234) (d 9) > > > … see this error: > > val->autorun-table: broke its own contract > two of the clauses in the or/c might both match: (cons/c any/c Any) and > (cons/c any/c Any) > produced: '(fail (zz 1234) (d 9)) > in: the 2nd element of > an element of > a part of the or/c of > the range of > (-> >any/c >(or/c > #f > (listof > (list/c > any/c > (or/c >(cons/c any/c Any) >(cons/c any/c Any)) > contract from: (anonymous-module foo) > blaming: (anonymous-module foo) >(assuming the contract is correct) > at: 38-unsaved-editor:20.11 > > > Basically, it looks like the type is getting simplified a bit as it’s being > translated into a contract, and unfortunately, the resulting contract is > unsatisfiable? > > Is this a bug, or a known limitation? > > John > > > -- > 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/295471a4-99d9-4bbe-8e7b-351c1bb75e96%40mtasv.net. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/090e59fd-3e81-4ab9-9eea-85d643d095ab%40mtasv.net.
[racket-users] limitation of TR contract translation?
It seems that the conversion of TR types to contracts can result in contracts like (or/c (cons/c any/c any/c) (cons/c any/c any/c)) that apparently cause errors when run. I’m too tired to do a good job of providing a full example… no, actually, it’s pretty easy. Run this program: #lang racket (module foo typed/racket (provide val->autorun-table) (define-type Autorun-Result (U (Pair 'success Any) (Pair 'fail Any))) (define-type Autorun-Entry (List String Autorun-Result)) (define-predicate autorun-entry? Autorun-Entry) (define-type Autorun-Table (Listof Autorun-Entry)) (define-predicate autorun-table? Autorun-Table) (define (val->autorun-table [val : Any]) : (U False Autorun-Table) (cond [(list? val) (define first-bad (findf (compose not autorun-entry?) val)) (when first-bad (fprintf (current-error-port) "not an expected autorun entry:\n~e\n" first-bad)) (cast val Autorun-Table)] [else (error 'maybe-fetch-autorun-results "result of read wasn't a list. moreinfo.")]))) (require 'foo) (val->autorun-table '(("1234" (fail (zz 1234) (d 9) … see this error: val->autorun-table: broke its own contract two of the clauses in the or/c might both match: (cons/c any/c Any) and (cons/c any/c Any) produced: '(fail (zz 1234) (d 9)) in: the 2nd element of an element of a part of the or/c of the range of (-> any/c (or/c #f (listof (list/c any/c (or/c (cons/c any/c Any) (cons/c any/c Any)) contract from: (anonymous-module foo) blaming: (anonymous-module foo) (assuming the contract is correct) at: 38-unsaved-editor:20.11 Basically, it looks like the type is getting simplified a bit as it’s being translated into a contract, and unfortunately, the resulting contract is unsatisfiable? Is this a bug, or a known limitation? John -- 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/295471a4-99d9-4bbe-8e7b-351c1bb75e96%40mtasv.net.
Re: [racket-users] Add Link to the racket Discord to the racket website?
This is the second time I’ve heard of matrix.org this week. Time to check it out. John > On Apr 20, 2021, at 1:45 AM, Yury Bulka > wrote: > > Just my 5 cents... > > Recently I had to register on a discord "server" to ask a question > within another community - and the experience was of a high barrier of > entry. I needed to provide my age, confirm my email, then (that might be > an issue of that particular "server" - I'm not sure) I was forced to > wait 5 minutes before I could interact. Also I notice now that discord > sends me email notifications that contain third-party tracking. > > Another walled garden trying to make me an addict of their service. > > The only thing I want to do now is delete any of my presence on discord. > > The IRC + Matrix combination is much more open and inclusive I think. > > And there is a question of transparency of governance and moderation of > course. > > -- > Yury Bulka > https://mamot.fr/@setthemfree > #NotOnFacebook > > > > Adam Golding writes: > >> I'm not so sure now: https://groups.google.com/g/racket-users/c/SkJAKkQhlgw >> >> >> On Mon, 19 Apr 2021 at 03:39, Adam Golding wrote: >> >>> seconded >>> >>> On Sun, 18 Apr 2021 at 14:56, schle...@gmail.com >>> wrote: >>> >>>> >>>> The racket discord is managed quite well, I think it should be added to >>>> the racket website so that newcomers can find it easier, just a thought. >>>> >>>> Maybe below the link to slack? >>>> >>>> -- >>>> 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/a8e865db-f585-477d-b397-fceaa7cb3131n%40googlegroups.com >>>> <https://groups.google.com/d/msgid/racket-users/a8e865db-f585-477d-b397-fceaa7cb3131n%40googlegroups.com?utm_medium=email_source=footer> >>>> . >>>> >>> > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/87pmyp1gzf.fsf%40privacyrequired.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/21c234c5-fd5b-4717-a9c0-40f2bd6df9c4%40mtasv.net.
[racket-users] Re: Understanding recursion in the function normalize-definition form the racket sources
On Sat, 17 Apr 2021 05:02:00 -0700 (PDT) Dan Synek wrote: > I am trying to implement a variation of define. In order to do that I am > trying to understand the source of the define macro in racket. > It calls a function normalize-definition which looks like this: > (define-values (normalize-definition) > (case-lambda > [(stx lambda-stx check-context? allow-key+opt?) > (let-values ([(id mk-rhs body) > (normalize-definition/mk-rhs stx lambda-stx > check-context? allow-key+opt? #t)]) > (values id (mk-rhs body)))] > [(stx lambda-stx check-context?) (normalize-definition stx lambda-stx > check-context? #f)] > [(stx lambda-stx) (normalize-definition stx lambda-stx #t #f)]))) > > In the two last cases of the case-lambda there is a call to > normalize-definition. It is not a recursive call, since define-values > cannot be used recursively. I cannot find any other normalize-definition in > the modules required by the norm-define module. > If I try to enter a copy of the definition (renamed to > normalize-definition1) I get (as expected) that normalize-definition1 is > undefined. > What is going on? Beginner here. I don't see the problem you seem to be referring to here. In this example below, I recursively define arglen using define-values. #lang racket/base (define-values (arglen) (case-lambda [() 'no-list] [(ls) (if (null? ls) 0 (+ 1 (arglen (cdr ls])) case-lambda-recursion.rkt> (arglen) 'no-list case-lambda-recursion.rkt> (arglen (list)) 0 case-lambda-recursion.rkt> (arglen (list 1)) 1 case-lambda-recursion.rkt> (arglen (list 1 1)) 2 case-lambda-recursion.rkt> (arglen (list 1 1 1)) 3 case-lambda-recursion.rkt> -- 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/20210417093414.7527%40protonmail.com.
Re: [racket-users] Understanding recursion in the function normalize-definition form the racket sources
I’m confused by your assertion that define-values can’t be used recursively. Here’s a program that does this: #lang racket (define-values (fact) (λ (x) (if (= x 0) 1 (* x (fact (sub1 x)) (fact 14) Am I misunderstanding your message? John Clements > On Apr 17, 2021, at 05:02, Dan Synek wrote: > > I am trying to implement a variation of define. In order to do that I am > trying to understand the source of the define macro in racket. > It calls a function normalize-definition which looks like this: > (define-values (normalize-definition) > (case-lambda > [(stx lambda-stx check-context? allow-key+opt?) > (let-values ([(id mk-rhs body) > (normalize-definition/mk-rhs stx lambda-stx > check-context? allow-key+opt? #t)]) > (values id (mk-rhs body)))] > [(stx lambda-stx check-context?) (normalize-definition stx lambda-stx > check-context? #f)] > [(stx lambda-stx) (normalize-definition stx lambda-stx #t #f)]))) > > In the two last cases of the case-lambda there is a call to > normalize-definition. It is not a recursive call, since define-values cannot > be used recursively. I cannot find any other normalize-definition in the > modules required by the norm-define module. > If I try to enter a copy of the definition (renamed to > normalize-definition1) I get (as expected) that normalize-definition1 is > undefined. > What is going on? > Thanks > Dan > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/ce5ce36e-03ee-44b1-a5ae-4f5a6e7b9d1en%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/3e1d308f-ab29-47e5-b42e-fdff07739645%40mtasv.net.
Re: [racket-users] Questions about multiple Racket installations...
I use this: https://github.com/takikawa/racket-dev-goodies When I need to switch, I just change PLTHOME to the right directory. -- William J. Bowman On Wed, Apr 14, 2021 at 11:06:15AM -0700, Don Green wrote: > I have several versions of Racket installed. > Is there a way to switch between using one version and another? Example: > use Racket 8 > then switch back to using Racket 7. > > If there is no point in going back to a previous version, is there merit in > removing older versions. > Thanks. Don. > > -- > 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/fcf25a75-cfe3-4ece-a65b-df55592845ean%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/YHdnLNIuNC24DLNM%40williamjbowman.com.
Re: [racket-users] Is this a good uninstall then install Racket plan...
What if he has directories that aren’t part of an installed package? That was my concern, and why I suggested manually deleting compiled subdirs. John > On Apr 13, 2021, at 18:58, Philip McGrath wrote: > > On Tue, Apr 13, 2021 at 8:21 PM 'John Clements' via Racket Users > wrote: > It sounds to me like the solution might be much much simpler than > re-installing an earlier version of racket. Here’s what I recommend. > > 1) Delete all of the “compiled” subdirectories in your development path. > 2) run “raco setup”. > > I think you should be able to automate finding and updating the "compiled" > subdirectories by running: > > raco setup --clean && raco setup > > -Philip > > -- > 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/01000178ce19df5f-46515da8-c86d-4a02-ad84-615dc7c8bc7d-00%40email.amazonses.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/a2b3fb74-a80c-42fd-ab2f-1c7bd577a983%40mtasv.net.
Re: [racket-users] Is this a good uninstall then install Racket plan...
Thanks for clarifying! It sounds to me like the solution might be much much simpler than re-installing an earlier version of racket. Here’s what I recommend. 1) Delete all of the “compiled” subdirectories in your development path. 2) run “raco setup”. It seems likely to me that this will solve the problem you’re seeing, and is very unlikely to break anything that’s not currently broken. There are other more complicated or refined versions of this, but at the end of the day, this error is probably solved by just moving the offending file out of the way. John > On Apr 13, 2021, at 5:16 PM, Don Green wrote: > > I have several versions of racket installed on Ubuntu linux at default linux > locations. > I think I should uninstall them all. > Then after downloading a PPA from the racket web site > install the version I want to a single directory. (I would be downloading > version: 7.8) > Does this sound like a plan sound okay? > > I gather from the comments I have received from John Clements, that he > suspects I am having some sort of problem that is motivating the desire to > return to an earlier version > of Racket. > > I believe the problem is where I have placed my racket code files. > I've been putting off moving them and would like to continue putting off > moving them. > > I inadvertently upgraded to Racket v8.0 a couple of days ago. > > Welcome to Racket v8.0 [cs]. > > (current-library-collection-paths) > '(# > # > #) > > My code files all begin here: /home/don/.plt-scheme/4.2.1/collects/... > > Racket error message when I run: > $ my-prog > read-compiled-linklet: version mismatch expected: "8.0" found: "7.8" in: > /home/don/.plt-scheme/4.2.1/collects/DG/all/a/b/fn/filename-from-path-and-filename/compiled/filename-from-path-and-filename_ss.zo > > So, since my compiled file was compiled under Racket version 7.8, there is a > mismatch since the Racket now installed is Racket v. 8.0. Thus the reason > I'd like to return to running Racket v. 7.8. > Thanks for your advice. > Don > > > > > -- > 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/134d170b-500d-4959-b842-6d4713329ffdn%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/16be474f-ca60-480f-af73-6b6c5e9a4cc9%40mtasv.net.
Re: [racket-users] inadvertently upgraded Racket version. Would like to make an older installed version current.
Did you install racket using a package manager, perhaps from the racket PPA? (I’m guessing the answer is yes, since this seems like the most likely situation to have caused an unintentional upgrade.) If so, I think you should generally get the right behavior from using that same package manager to reinstall the earlier version, and “pin” it using whatever mechanism your package manager provides. If you have code that’s not a part of a package installed by raco pkg (or installed with the —link option), I can imagine needing to recompile some sources using raco setup. I suppose I should first have asked this question: what’s your reason for installing the earlier version? I ask because if the issue is CS/BC, you should be aware that there is a BC version of 8.0 available. Finally, let me apologize in advance if anything I’m telling you is partly or completely mistaken! John > On Apr 13, 2021, at 12:55 PM, infodeveloperdon > wrote: > > Hi, I'm using linux Ubuntu. > Don > > On Tuesday, April 13, 2021 at 1:02:33 PM UTC-6 johnbclements wrote: > raco pkg remove is definitely not what you want. > > In general, I know there are languages (ocaml, haskell, rust) that put their > package managers “outside” of the currently installed version, so it might > make sense that a package manager command could be used to change to an > earlier version of the language. > > In Racket, by contrast, the package manager is part of the installation, on > the “inside”. > > However, you can certainly have multiple versions of Racket installed at the > same time. > > The details of which one is “active”, and what that word even means, is > highly dependent on what operating system you’re using. > > What operating system are you using? > > John Clements > > > On Apr 13, 2021, at 11:29, infodeveloperdon wrote: > > > > I inadvertently upgraded Racket version. Would like to make an older > > installed version current. > > So now when I start DrRacket v8 is current. > > Is there a command that makes a specified version current? > > Does > > raco pkg remove > > effectively make the previous version current? > > Thanks. Don. > > > > -- > > 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...@googlegroups.com. > > To view this discussion on the web visit > > https://groups.google.com/d/msgid/racket-users/a7577cff-a448-4e44-91b0-6d9d9e4557c5n%40googlegroups.com. > > > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/729e46a6-9c39-4d56-b1d4-2d6a11e5d25en%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/bf17a551-cd79-4b2b-940a-a8189825a8ac%40mtasv.net.
Re: [racket-users] "You do not have permission to respond to author in this group."
Hmm… that’s a new one to me. It sounds like there’s a setting that can be toggled, I’m not quite sure what the ramifications of toggling that setting would be. John > On Apr 13, 2021, at 1:05 PM, Don Green wrote: > > "You do not have permission to respond to author in this group." > upon clicking button [Respond To Author] > in Google Groups/ Racket > Is there a setting I can change or is just the way this group is configured > for all? > Thanks > Don > > > -- > 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/bcee693a-fbac-4716-8d59-512f3fc889b2n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/99eea91e-ea0e-4119-954c-2fcceb161161%40mtasv.net.
Re: [racket-users] inadvertently upgraded Racket version. Would like to make an older installed version current.
raco pkg remove is definitely not what you want. In general, I know there are languages (ocaml, haskell, rust) that put their package managers “outside” of the currently installed version, so it might make sense that a package manager command could be used to change to an earlier version of the language. In Racket, by contrast, the package manager is part of the installation, on the “inside”. However, you can certainly have multiple versions of Racket installed at the same time. The details of which one is “active”, and what that word even means, is highly dependent on what operating system you’re using. What operating system are you using? John Clements > On Apr 13, 2021, at 11:29, infodeveloperdon > wrote: > > I inadvertently upgraded Racket version. Would like to make an older > installed version current. > So now when I start DrRacket v8 is current. > Is there a command that makes a specified version current? > Does > raco pkg remove > effectively make the previous version current? > Thanks. Don. > > -- > 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/a7577cff-a448-4e44-91b0-6d9d9e4557c5n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/29ed9c53-483b-414c-8a56-3dd9e0c449ec%40mtasv.net.
Re: [racket-users] Werid contract violation blame erros
Thank you, Robby, This clarifies it a little bit. So far I've avoided reading about the racket module system in details, but I think now is as good time as ever. April 7, 2021 10:40 PM, "Robby Findler" mailto:ro...@cs.northwestern.edu?to=%22Robby%20Findler%22%20)> wrote: The short answer: you probably should use (provide (contract-out)) instead of define/contract. The slightly longer answer: when you write a contract, you are not just describing what the legal inputs and outputs are, you are also establishing a *boundary* between two regions of code. In the case of define/contract, you are establishing a boundary between the function (here: f) and the module that it contains (here the file "a.rkt"). In the case of (provide (contract-out ...)) the boundary is between a.rkt and b.rkt. The slightly uncomfortable answer: it is my (not completely solid yet) opinion that the boundary that is drawn for define/contract is perhaps not the right / best one. In a theoretical/mathematical sense it is a completely fine and completely defensible one. But it trips people up sometimes. (There are examples others have posted in the past that are perhaps even stranger than yours but boil down to the same specific design choice for define/contract.) Robby On Wed, Apr 7, 2021 at 2:10 PM epi via Racket Users mailto:racket-users@googlegroups.com)> wrote: Hello Racket users, I am trying to understand a contract violation message that I am getting. Here is the file a.rkt: #lang racket (provide f) (define/contract (f a) (-> boolean? any/c) '()) and this is b.rkt: #lang racket (require "a.rkt") (f 3) I would expect that the caller is blamed for the contract violation, but the error message that I get is as follows: f: contract violation expected: boolean? given: 3 in: the 1st argument of (-> boolean? any/c) contract from: (function f) blaming: /home/epi/snippets/a.rkt (assuming the contract is correct) at: /home/epi/snippets/a.rkt:3.18 context...: /usr/share/racket/collects/racket/contract/private/blame.rkt:347:0: raise-blame-error /usr/share/racket/collects/racket/contract/private/arrow-higher-order.rkt:379:33 body of "/home/dan/snippets/blameme.rkt" So, I am a bit surprised that the error message blames the file a.rkt. What am I missing here? -- 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 (mailto:racket-users%2bunsubscr...@googlegroups.com). To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/149cfc632cd666ff1a92177dce90296b%40disroot.org (https://groups.google.com/d/msgid/racket-users/149cfc632cd666ff1a92177dce90296b%40disroot.org). -- 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/78a0d4875c1fa7ac222a938c3f061588%40disroot.org.
[racket-users] Werid contract violation blame erros
Hello Racket users, I am trying to understand a contract violation message that I am getting. Here is the file a.rkt: #lang racket (provide f) (define/contract (f a) (-> boolean? any/c) '()) and this is b.rkt: #lang racket (require "a.rkt") (f 3) I would expect that the caller is blamed for the contract violation, but the error message that I get is as follows: f: contract violation expected: boolean? given: 3 in: the 1st argument of (-> boolean? any/c) contract from: (function f) blaming: /home/epi/snippets/a.rkt (assuming the contract is correct) at: /home/epi/snippets/a.rkt:3.18 context...: /usr/share/racket/collects/racket/contract/private/blame.rkt:347:0: raise-blame-error /usr/share/racket/collects/racket/contract/private/arrow-higher-order.rkt:379:33 body of "/home/dan/snippets/blameme.rkt" So, I am a bit surprised that the error message blames the file a.rkt. What am I missing here? -- 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/149cfc632cd666ff1a92177dce90296b%40disroot.org.
Re: [racket-users] Is there a widget like QSplitter in Qt in our GUI library?
Thank you Laurent, that's exactly what I want! Greetings. Killian Zhuo (KDr2, https://kdr2.com) On Wednesday, March 31, 2021, 05:05:39 PM GMT+8, Laurent wrote: You probably want panel:vertical-dragable% [1] and panel:horizontal-dragable%. See a usage example here: https://gist.github.com/Metaxal/946aa17033c10e76c48a74127ae0b11b [1] https://docs.racket-lang.org/framework/Panel.html?q=panel%3Avertical-dragable#%28def._%28%28lib._framework%2Fmain..rkt%29._panel~3avertical-dragable~25%29%29 On Wed, Mar 31, 2021 at 9:08 AM 'Killian Zhuo (KDr2)' via Racket Users wrote: I want to split a pane into two columns and make the columns resizable by dragging their joint border, in Qt, there's an established widget called QSplitter for this purpose. Is there one in Racket's GUI library? or how to implement it in the easiest way? Thanks. Greetings. Killian Zhuo (KDr2, https://kdr2.com) -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/1465030713.1289147.1617178095348%40mail.yahoo.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CABNTSaFnzCuaYXmAYQez%2BoMvXr34KQZsaP58kDBXLEmv5qLrRQ%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/571494630.1360477.1617203926593%40mail.yahoo.com.
[racket-users] Is there a widget like QSplitter in Qt in our GUI library?
I want to split a pane into two columns and make the columns resizable by dragging their joint border, in Qt, there's an established widget called QSplitter for this purpose. Is there one in Racket's GUI library? or how to implement it in the easiest way? Thanks. Greetings. Killian Zhuo (KDr2, https://kdr2.com) -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/1465030713.1289147.1617178095348%40mail.yahoo.com.
[racket-users] Re: Racket on Corporate Desktop Windows
"Bruce O'Neel" writes: [...] > But no GUI of course. > > Well I had been building on MacOS for years following the instructions > to build a Minimal Racket and then run > > raco pkg install -i main-distribution > > and it finally clicked that the instructions were almost identical for > Windows. > > raco pkg update --auto racket-lib raco pkg install -i > main-distribution > > just like the instructions said. In my mind I thought "I don't have a > build toolchain on Windows, so that won't work." And I was wrong. It > works just fine on my locked down desktop and now I have a GUI Dr > Racket as well. Cool! Thanks for sharing! -- 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/86h7kw7b91.fsf%40protonmail.com.
[racket-users] Re: [ANNOUNCE] Xiden is now in beta
Racket’s existing package system doesn’t pose any felt problems for me, but I still find this project very interesting. On some future day when Xiden is out of beta, what are authors of “normal” Racket packages doing to make their packages available to Xiden users? For example, are we zipping, hashing and signing every “release” and uploading it somewhere (our own web server or a 3rd party catalog)? Or is the typical Xiden user manually creating their own catalogs and packages from others’ code after a thorough vetting? (Maybe if I were more familiar with Guix I would already know the answer to this) On Friday, March 19, 2021 at 3:56:18 PM UTC-5 Sage Gerard wrote: > Hi folks, > > About a year, 1384 commits, 489 tests, ~10k LOC, and 2" on my waistline > later, Xiden is in beta. An update is pending on the default catalog. > > https://github.com/zyrolasting/xiden > > Xiden is a dependency manager I wrote to support use cases that I could > not get working with `raco pkg`. > > Dependency management is hard, so Xiden was something I originally didn't > want to make. However, it ended up becoming one of my most aspirational > projects, and I'm proud of how it ended up. If you could take the time to > read a longer email, I'd like to share a bit about how it might be helpful > to you. > > *** > Like Guix, Xiden supports deterministic and atomic installations. Unlike > Guix, Xiden is cross-platform. > > The Racket programs I write no longer have to assume that code comes in > collections (outside of the built-in ones). > > You can force dependencies of different versions to resolve to the same > data to avoid issues with non-eq? bindings [multiver]. > > Dependencies are accessed by symbolic links with names defined by the > dependent. So if two packages are called "uri", you can still install them > both under names that are meaningful to you. Dependencies are fulfilled the > same way, regardless if the dependent is a human or more software. > > Explicit, affirmative consent is fundamental to Xiden's workings. The > default configuration is zero-trust (a.k.a. "Deny All"). Trust in > cryptographic hash functions and public keys (or any bytes lacking either) > *must* be declared to authenticate bytes from *any* source (even hard > coded!). Not doing so will cause Xiden to reject data, but print an error > that helpfully instructs you how to consent to the scenario. For those > wanting convenience, there are "blanket" configuration options to consent > to every instance of those scenarios. This makes Xiden a way to educate > users on the exact shape and nature of the risks they accept with something > from the Internet. In this sense, Xiden does not invent anything new with > security. It only aims to get ahead of the "Allow Some" arms-race in other > dependency managers like NPM. > > Customization comes from a plugin module. You can use a plugin to > integrate GPG, use a different archive format, or otherwise fill in gaps in > Xiden's functionality. Xiden keeps authentication and integrity checking > decoupled in this way so that users can transition on their own in the > event a smart person finds a collision in a CHF, or cracks a cipher. > Similarly, Xiden's data sources are any data type declared with a path to > an input port, including queries to a catalog. A neat effect of this is > that you can configure your own syntax for data sources in your command > lines. > > Even though I call Xiden a dependency manager, it is generalized enough to > be useful as a component for a CI system, as a self-hosted OS development > environment, or even as a back-end for a more specialized dependency > manager. > > If this is something that interests you, please consider trying the > examples with the guide [ex][guide]. Like all software, Xiden is not > perfect, so I depend on your feedback to make Xiden better for you, and to > decide what interfaces should be declared stable. > > [ex]: https://github.com/zyrolasting/xiden/tree/master/examples > [guide]: https://docs.racket-lang.org/xiden-guide@xiden/index.html > [ethos]: > https://groups.google.com/g/racket-users/c/4iI-SanIbzk/m/sGHYijLPAAAJ > [multiver]: > https://github.com/zyrolasting/xiden/tree/master/examples/01-differing-versions > > -- > ~slg > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/932af4c4-3713-4305-970b-e608e434a71en%40googlegroups.com.
Re: [racket-users] A dict? question
Exactly. `'e` is a reader macro that gets read as `(quote e)`. When it's already under a quote, the quoted quote is treated as a symbol: > (dict-ref '('yay) 'quote) '(yay) > (quote ((quote yay))) '('yay) > '((quote yay)) '('yay) > (dict-ref '((quote yay)) 'quote) '(yay) -- William J. Bowman On Sun, Feb 28, 2021 at 01:45:56AM +0200, Yury Bulka wrote: > Indeed, > > > (dict-keys '('yay)) > '(quote) > > (dict-values '('yay)) > '((yay)) > > (dict-ref '('yay) 'quote) > '(yay) > > So... this boils down to: > > > (equal? '('yay) '((quote yay))) > #t > > -- > Yury Bulka > https://mamot.fr/@setthemfree > #NotOnFacebook > > > > William J. Bowman writes: > > > try (dict-ref ‘(‘yay) ‘quote) > > -- > 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/87k0qtf51n.fsf%40privacyrequired.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/YDraI2UWIH3ejIN3%40williamjbowman.com.
Re: [racket-users] A dict? question
try (dict-ref ‘(‘yay) ‘quote) -- Sent from my phoneamajig > On Feb 27, 2021, at 15:31, Yury Bulka wrote: > > Dear Racketeers, > > I have noticed something I don't understand: > >> (dict? '(yay)) > #f >> (dict? '('yay)) > #t >> (dict-ref '('yay) 'yay) > ; dict-ref: no value for key: 'yay in: '('yay) > > I'm puzzled - what makes '('yay) a dict compared to '(yay)? > > (Running Racket 7.8 on Linux). > > -- > Yury Bulka > https://mamot.fr/@setthemfree > #NotOnFacebook > > > -- > 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/87mtvpf5pa.fsf%40privacyrequired.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/B540457B-D95F-4C18-A978-90033951BA0C%40williamjbowman.com.
Re: [racket-users] Questions Regarding My First Program
I *always* use DrRacket… but I admit I may not understand the indenting part of your question. In DrRacket, when you hit the “tab” key, it should move the text on the line to the “correct” position, according to Racket’s indentation rules. Also, whenever you hit return, the cursor should be automatically indented to the appropriate column. Finally, you can highlight a block of text and hit “tab”, and it will all be re-indented. Is this different from what you’re observing, or from what you’re expecting? John Clements > On Feb 23, 2021, at 4:05 PM, Sage Gerard wrote: > > I can't speak to DrRacket since I never use it, so I'll focus more on the > first question. > > Functional programming typically deals with these considerations (among > others): > > • Write functions that return values purely in terms of arguments. > • Defer side-effects until you can't. > A goal to make the program produce the same output given the same input, > every time. > > One example would be to redefine `say` such that it doesn't immediately > print. Maybe just return the string you want said. > > (define (say str) > (format "Chatbot: ~a\n" str)) > > (I'd personally use a struct representing a message, sender, etc. but that's > beside the point) > > This change makes the function "pure" in that the same input returns the same > output, and there are no side-effects in doing so. But this creates a problem > where you need to "rope in" that value somewhere. How that happens depends on > the program. A program that reports download progress will handles > side-effects differently than a program that prints a report before stopping. > > One approach is to update program state in the same (functional) way. If we > assume the chat history is a list, where the first element is the most recent > message, then this version of `say` adds a string to the chat. > > (define (say chat-history str) > (cons (format "Chatbot: ~a\n" str) > chat-history)) > > I'd start with this kind of thinking until you get to the point where > side-effects are unavoidable. Since your program appears interactive, you can > still print in the loop. But think about what your program would be like if > you print ONLY in that loop. > > Others can probably say more, but hopefully this helps you start. > > On 2/23/21 5:59 PM, IF Karona wrote: >> Hi everyone, >> >> I am new here, and I have a couple of questions related to the code that >> follows this message. >> >> 1. I want to learn functional programming. When it comes to solving the >> problem of making a simple chatbot such as this, is there an approach that >> is more consistent with functional programming? >> 2. I would prefer to not have to use multiple spaces every time I want to >> indent. Does Dr. Racket have anything comparable to the tab functionality of >> other programs? >> >> Thank you for letting me join your community! >> >> Karona >> >> ;example.rkt >> >> #lang racket >> >> (require racket/match) >> >> (define (say str) >> (printf "Chatbot: ~a\n" str)) >> >> (define (handle-input str) >> (cond >> >> [(regexp-match #px"(?i:Hello,* world!)" str) >> (say "I would not know about the rest of the world, but I can >> hear \ >> you just fine.")] >> >> [(regexp-match #px"(?i:I( am|'m) learning how to program in Racket,* >> world!)" str) >> (say "Racket is a great language, and it is lovely that you are \ >> learning it, but does literally everyone need to know?")] >> >> [(regexp-match #px".*,+\\s*world!" str) >> (say "Did the whole world really need to hear that?")] >> >> [else (say "Did you really just say something without addressing the >> \ >> world? I am so proud of you! :,)")])) >> >> (let loop () >> (display "Input: ") >> (define str (read-line (current-input-port) 'any)) >> (handle-input str) >> (loop)) >> -- >> 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/2f107ab5-2efd-4c33-83f6-eb5751664cb6n%40googlegroups.com. > -- > ~slg
[racket-users] When are rackunit tests delayed? (different between 7.8 and 8)
Below is an example that behaves "correctly", as in all tests run and are counted as failured or errors correctly, in Racket 7.8, but which crashes in Racket 8. > #lang racket > > (require > rackunit > rackunit/log) > > (define (suite1) > (test-suite >"" >(test-begin > (check-not-equal? (error "actual") (error "expected") > > (define (suite2) > (test-suite >"" >(check-not-equal? (error "actual") (error "expected" > > (module+ test > (require rackunit/text-ui) > > ;; Correctly counts the tests as errors in 7.8 and 8.0 > (check-pred >integer? >(run-tests (suite1))) > > ;; Counts the tests as errors in 7.8, but crashes in 8.0 > (check-pred >integer? >(run-tests (suite2))) > > ;; Gets run in 7.8, but not in 8.0 > (check-equal? 0 0)) This has something to do with when test-suite delays a test, which seems inconsistent across the Racket versions. I'm not sure whether the problem was some undefined behaviour in test-suite or not. I'm a bit confused about the semantics of test-suites and tests, since the documentation claims a test (unlike a check) is delayed, yet test-case and test-begin do not delay tests, while test-suite does produce a delayed suite of tests. However, test-begin DOES seem to delay a test in the context of a test-suite. I'd appreciate any insight. -- William J. Bowman -- 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/YDSeU7C3PUQzRdCk%40williamjbowman.com.