
@greg @todo I think these posts may be from before AWS Lambda supported custom runtimes: https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html I haven’t tried yet, but it looks like it would be easy to implement a runtime in Racket.

@arkaitzmugica has joined the channel

I meant racket/draw

i forgot about pict

looking at that

Hi there… sorry for my stupid question, but I’ve google’d a lot and I can’t find a slack group on common lisp… can anyone of you help me and send me to the registration page (if it exists)? Thank you all in advance, and again, excuse me for the inconvinience of reading such a question in a place like this

If no-one has an answer here, try asking the same question in the common lisp irc group.


thank you!

Is there a syntactic abstraction for this already? (lambda args (send/apply an-object a-message args))

@greg i have started a new blog (not online yet) using frog and interestingly found that my post @\|content\|
is replaced indented 6 spaces which messes up my code snippets generated using pygments. Do you know where these 6 spaces could come from?

I think there’s a jpeg library made by Andy Wingo. He gave a talk about it at racketcon.

There’s also the file/convertible
system

@greg just found out the problem…

@pocmatos it might be better to cover this here than over email


Unfortunately drdr is not easily replicable (a lot of the configuration is just on the machine), but many more tests could be run

ok, let me take a look at drdr. I never really paid much attention as I thought it was something geared towards internal team use and not really for public consumption.

wow: Each file is run with raco test ~s is used if the file's suffix is .rkt, .ss, .scm, .sls, or .scrbl.
is this each file in the racket repository or each file in pkgs/racket-test
, pkgs/racket-test-core
, pkgs/racket-test-extra
?

it’s basically the same as any of the other CI we use

that’s every file in every package that gets installed


ah, yes. i think i understand. Thanks - on to do some experimentation.

one drawback of this is that there’s basically no list of tests to run more comprehensive than what’s on Travis

because nothing needs to be added to test things in DrDr


excellent, was not aware of that the checklist either. It has quite a few more specific tests that might be good to test.

What was it?

that reminds me, there’s also that repo with some work on dockerizing some of the release checklist tests

Is (car (generate-temporaries '(whatever)))
the same as (datum->syntax #f (gensym 'whatever))
?

(besides the fact that (gensym ...)
generates a more ugly identifier name internally)

Also, which one is preferable, if they are functionally equivalent?

generate-temporaries
uses interned symbols, so if you guess right, you could actually end up with conflicting symbols if you replace the scopes. I’ve accidentally created situations where (generate-temporaries '(add))
produced add1
and I took away the scopes so that it actually conflicted with the add1
from Racket. However, the scopes being different on generated identifiers helps avoid conflicts if you just don’t remove them.

@sorawee To add to what Alex said, gensym
doesn’t guarantee produced symbols’ names will be unique, only that the symbols themselves will not be eq?
to any other symbol. However, uninterned symbols get coerced to interned symbols during compilation, using the symbolic name, so gensym
will not necessarily produce a unique identifier.

The practical takeaway: gensym
is never right for generating unique identifiers because the mechanism that it uses to ensure uniqueness can’t survive the roundtrip to and from bytecode. generate-temporaries
uses a different strategy, namely adding a scope, which can survive that process.

Thanks! Is there a proper way to generate an identifier, then? Doing car
on generate-temporaries
just seems so ugly

Use generate-temporary
from racket/syntax
.

Aha!

One other thing: you can’t even use gensym
at compile-time to produce symbols that are intended to be unique at runtime because the marshalling/unmarshalling process will still end up destroying the uniqueness guarantee. So you’d have to generate a gensym
expression instead, since then the symbol itself will be generated in the phase that needs it to be unique.

I.e. don’t do (quasisyntax (quote #,(gensym)))
, that won’t work; use #'(gensym)
, instead.

Thank you :slightly_smiling_face:

which one? Not yours, I assume.