
I added a new package to the racket package catalog, and the build indicates that the package has conflicts. Unfortunately, I don’t understand the output log, and I am hoping that someone can explain what the actual conflict is and how to resolve it. The package is here: https://pkgs.racket-lang.org/package/al2-test-runner and the conflicts are here: https://pkg-build.racket-lang.org/conflicts.txt

I think it means you can’t name your Scribble file manual.scrbl

Yes, I renamed that now — I suspect the “conflicts.txt” file refers to the entire package catalog… I only looked at the first few lines only and I was puzzled as to where the conflict might be…

I am writing a little note on the history of macro system in Scheme/Racket.
Was the macro system in mzscheme simply syntax-case
- or did Flatt implement it in C right from the beginning?

Originally, it was define-macro
(a kind of defmacro
). We moved to syntax-case
(implemented in C, combined with the module system) starting around 2000.

Thanks for the info.

@mflatt @samth sorry for the nudge, but this is blocking me to fix a bug in quickscript (reported by @robby )

I think this is a PB wrt to longest Reddit comment: https://www.reddit.com/r/Racket/comments/ie8rlf/when_creating_macros_is_syntaxparse_preferred_to/

GG make it hard to join a group if you don’t have a Google (or Google Apps) account.

The HISTORY.txt file is useful for this kind of info. Also, I’m not sure if that initial implementation did syntax-case
itself in C, or as a macro over lower level pieces as it is now.

Yes, that’s a good point. The syntax-case
and syntax
forms have always been macros implemented in terms of define-syntaxes
and quote-syntax
.

Got it. It’s the “syntax-case system” vs the “syntax-case form”.

(or maybe @ryanc @sorawee @notjack, apologies for fishing! :smile: )

(haven’t used this so no idea, but no need to apologize!)

on mobile now i think it requires login… which i dont want to do

I haven’t used it, but the code for compile-directory-zos
looks buggy… (1) In compiler/compiler.rkt’s compile-directory-visitor
, it ignores the info
argument for the purpose of computing omit-paths
. (IIUC, it uses the default method that reads “info.rkt” from the filesystem instead.) (2) The comparison for the skip-paths
argument does not match if the paths are equal, but does match if the path extends a “skip path”. So if you change your definition of excls
to '("unbound-id.rk")
(that is, chop of the final “t”), then “it works” and the file gets skipped.

I think we should change the links to join Racket users to https://groups.google.com/forum/#!forum/racket-users/join\|https://groups.google.com/forum/#!forum/racket-users/join

been working on making rebellion/type
provide static info to macros, and now I can define basic type conversion macros!

Nifty!

Converts on the same field names?

yup!

planning to add a way to override that as needed

And what if they don’t have the same field names?
Going from having more fields to fewer fields seems straightforward enough.
The other direction is more tricky.
The general case is for two arbitrary records, whose fields may or may not overlap.

if they don’t have any of the same field names, you’d have to specify all the field mappings yourself

yeah, makes sense

though it doesn’t need to be “mapping”, right? Mapping seems to imply that you expect the size of field names to be equal to each other. But they can differ

for more fields to fewer fields, I’m planning on adding a #:one-way-only
option that makes it only define the source->target
function

I don’t plan to add any special support for going from a small record to a big record

I see

plain old functions seem good enough for that

one thing I definitely want to add though: a way to specify converters that should be used on the field values while converting between the records

and I guess because converter is invertible, it all works out?

(define-record-type email (author-string subject body))
(define-record-type message (author-symbol subject body))
(define-record-converter email message
(mapping author-string author-symbol #:use string<->symbol))

at least that mitigates the issue for users like @plragde and @popa.bogdanp

Also, from the link that @spdegabrielle posted above:
> Features planned for deprecation > To simplify Google Groups, the following features are planned for deprecation in new Groups. > > Signed-out users > Allowing user who aren’t signed in to a Google Account to view Groups.

My experience with Discourse in ReasonML is very positive. They are searchable. They have tags. Etc.

@spdegabrielle
> Mailing list functionality varied reports - on a wikipmedia page from 2018 indicated it was less than good. where did you find this?

@sw5355700 has joined the channel

Hey, folks, trying to get a sandbox evaluator to work with a module that exposes a few methods to it. But can’t seem to get it to use my module. Can someone point out to me what I’m doing wrong here? (require racket/sandbox)
(module test racket/base
(provide (all-defined-out))
(define (test)
(displayln "Hello, world!")))
(parameterize ([sandbox-out current-output-port])
(make-evaluator 'test '(test)))
I can use make-module-evaluator
, but I’ll be doing this many times (creating several sandboxes), so I’d prefer to make the module just once and share it across sandboxes.