alexharsanyi
2020-8-22 07:01:13

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


sorawee
2020-8-22 07:16:08

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


alexharsanyi
2020-8-22 07:18:43

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…


soegaard2
2020-8-22 12:46:58

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?


mflatt
2020-8-22 12:49:50

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.


soegaard2
2020-8-22 12:51:37

Thanks for the info.


laurent.orseau
2020-8-22 13:15:17

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


soegaard2
2020-8-22 13:25:07

popa.bogdanp
2020-8-22 13:47:53

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

https://defn.io/2019/02/05/google-groups/


samth
2020-8-22 14:27:59

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.


mflatt
2020-8-22 14:56:01

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.


soegaard2
2020-8-22 15:30:34

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


laurent.orseau
2020-8-22 15:55:03

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


notjack
2020-8-22 15:56:14

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


jestarray
2020-8-22 17:03:41

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


ryanc
2020-8-22 17:45:52

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.


spdegabrielle
2020-8-22 17:57:06

notjack
2020-8-22 21:22:58

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


soegaard2
2020-8-22 21:27:02

Nifty!


samdphillips
2020-8-22 21:28:41

Converts on the same field names?


notjack
2020-8-22 21:28:55

yup!


notjack
2020-8-22 21:29:15

planning to add a way to override that as needed


sorawee
2020-8-22 21:36:54

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.


notjack
2020-8-22 21:37:38

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


sorawee
2020-8-22 21:37:50

yeah, makes sense


sorawee
2020-8-22 21:38:37

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


notjack
2020-8-22 21:38:54

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


notjack
2020-8-22 21:39:30

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


sorawee
2020-8-22 21:39:36

I see


notjack
2020-8-22 21:39:36

plain old functions seem good enough for that


notjack
2020-8-22 21:40:18

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


sorawee
2020-8-22 21:40:45

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


notjack
2020-8-22 21:42:09

(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))


spdegabrielle
2020-8-22 22:19:41

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


sorawee
2020-8-23 01:27:14

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.


sorawee
2020-8-23 01:29:56

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


sorawee
2020-8-23 01:31:09

@spdegabrielle

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


sw5355700
2020-8-23 01:43:43

@sw5355700 has joined the channel


massung
2020-8-23 02:52:00

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.