
@jeapostrophe set the channel topic: 2019 is here! https://school.racket-lang.org/

@mwblakley has joined the channel

@zafar.huma has joined the channel

@mccoybecker has joined the channel

@badkins has joined the channel

@shaobo has joined the channel

@dyllongagnier has joined the channel


@willbanders has joined the channel

@slade has joined the channel

@guy.w has joined the channel

@ryanxh has joined the channel

@jaz has joined the channel

@alexknauth has joined the channel

Looks like it

@pierce.darragh has joined the channel

@markus.pfeiffer has joined the channel

@qbradley has joined the channel

@me1150 has joined the channel

@kristianalnaes has joined the channel

@stephen has joined the channel

@beyer.andrew has joined the channel

@liamschumm has joined the channel

@gknauth has joined the channel

@keenencates has joined the channel

@tchajed has joined the channel

@kl13 has joined the channel

@jordan has joined the channel

@aaronstgeorge has joined the channel

@philip.mcgrath has joined the channel

@pocmatos has joined the channel

@michaelmmacleod has joined the channel

@thilking has joined the channel

@gfb has joined the channel

In Matthias’ presentation, his walkthrough of macro expansion required macro.rkt and table.rkt, are there standard repositories for these files?

@caleb.e.allen has joined the channel

@awz.ang has joined the channel

right, where are we eating?


the survey for today


If anyone’s interested in talking about API design, enforcement, and/or dependency versioning please come find me - I’m in the front of the room in purple.

@ashton.wiersdorf has joined the channel

@lihebi.com has joined the channel

we got some interested in VR/visualization

@prithamm has joined the channel

maybe we can be with the gamedevs?


Has anyone here used Rosette for any research or personal projects?

Is there any spot Schemers gather?

I have to work out some thoughts on problem 7 (¿syntax-foldr
?) so I’m probably just going to eat at the heritage center… but I might go for a drink later if anyone is interested.

@me1150 I’m not at the summer school, but I use Rosette for my research (Emina is my advisor).

what’s syntax-foldr
?

I don’t know yet! But probably a horrible thing to write to solve this problem (essentially monad threading)

Ah, you are solving monad-do
in https://school.racket-lang.org/2019/plan/mon-aft-lab.html?

aye

Rosette is super cool, maybe we can put together a dinner group tomorrow on SAT/SMT solvers

@zenspider Are you in Heritage + want to work on #7? How far are you?

I’m just flailing right now. I’m in my living room (220). Happy to have you here or to meet you in the cafeteria or one of those study areas on 1 of heritage

wait. not 220… 213?

Down in a sec

Heading over

where is cafe?

Heritage. Second floor. Follow the noise

@sorawee We figured it out, can post some code if you’re interested :slightly_smiling_face:

Nice! :slightly_smiling_face:

@sorawee How the heck does Rosette do combinatorial problems (like SAT or synthesis) quickly?

If it’s black magic you can be honest

So, Rosette itself doesn’t “solve” anything. It simply (efficiently) generates constraints and sends queries to off-the-shelf SMT solver.

Ah gotcha! I’ll have to play around more. I’m an ML person so that recent paper from Emina et al on synthesis CUDA kernels is super interesting.

Will solutions to the lab exercises be posted somewhere?

Here’s my solution to Exercise 7
(define-syntax-parser monad-do
[(_ return bind [x #:<- e] . rst)
#'(bind e (λ (x) (monad-do return bind . rst)))]
[(_ return bind [#:ret e]) #'(return e)])
(not optimized for error messages)

I wish i’d have known about Rosette last year; I’d be very interested in trying a few things out in it. There are quite a few problems in computer algebra where a nicely interfaced constraint solver would go a long way

Same :slightly_smiling_face:

Ugh, sorry wrong format:

(define-syntax (monad-do stx)
(syntax-parse stx
[(_ return bind [#:ret ret-form] rest ...)
#'(return ret-form)]
[(_ return bind [x #:<- mx] rest ...)
#'(bind mx (λ (x)
(monad-do return bind rest ...)))]
)
)

So define-syntax-parser is syntactic sugar for the nested define form: (define-syntax...(syntax parse...))

https://github.com/disconcision/racketskool/tree/master/lab1 no claims are made of either correctness or elegance. please do not use as a basis for medical software

Right

define-syntax-parser
is usually enough if you want to define a macro (as oppose to doing something weird with syntax object). The only thing that seems to be losing is the whole syntax object itself, but that is recoverable using this-syntax
.


I’m not sure what you mean by dispatch on an or*
pattern. You can tell which variant was matched if an attribute is bound differently, by looking at that attribute. But that only works if you define an attribute for that.
For instance you could have the a-clauses
class define the attribute accepting? = #true
and the r-clauses
class define the attribute accepting? = #false
, and then dispatch on the value of (attribute clauses.accepting?)
. Does that cover what you meant?

@bmitchell33 has joined the channel