
so, i’ve got a little scribble helper that works like this: https://gist.github.com/apg/7d3eda32a2925d8270f2dabef2b968fd

basically, it allows me to inline a graphviz diagram (eventually I’d like to draw this with pict, but I digress) by passing it as an argument to @image
, but I’m also trying to setup a @figure
with a label.

I’ve figured out how to make little extensions for scribble, but what I don’t yet understand is how to actually combine them into a bigger thing. Maybe the answer is that I just need a macro here?

(see thing.scrbl … but, really I’d rather have something like @graphviz-figure[#:ref "foo-bar" #:label "Some Foo Bar"]{ ... }

oh wait. i guess a function will do!

(got it)

Anyone here with experience in interfacing go and racket?

@pocmatos uf you find things, please let me know.

apg sure will

@apg ^^^

I just discovered that Racket commits to left-to-right evaluation order. I had been assuming that Racket was like Scheme in keeping evaluation order unspecified. I was wondering if there are any specific reasons for picking and sticking to left-to-right, other than simple convenience?

@abmclin making it easier to understand what your program will do

makes sense and good reason to have as many things specified as possible

I was reading the schemify.rkt file in racket7’s cs folder and saw the comment about transforming to enforce left-to-right which surprised me. Good to improve my understanding of Racket’s semantics nuances

The RacketCon 2017 videos are now live! https://www.youtube.com/playlist?list=PLXr4KViVC0qIgkwFFzM-0we_aoOfAl16Y

Thank you to everyone who participated.

@leif thanks for your hard work to make that happen!

Thanks @leif!

And thanks to all our speakers! And sponsors! And helpers! :)

perhaps @samth can clarify for you

This is a coincidence, I was watching the archived stream now :slightly_smiling_face:
It seems like there’s something wrong with this video: https://www.youtube.com/watch?v=1CORm7A8uWo


(Namely, they’re all black screen.)

Ruh roh

not really, because parallel semantics is even weaker than what’s in the Scheme standard

but in general, implicit parallelism in that sort of thing has not been a big win anywhere

@leafac Eep. It looks like it was a problem with youtube’s conversion process. On it.

Actually no, I should have noticed that. This looks like it came from the videos that the recorder gave us.

I ‘may’ need to grab the videos from the live stream. This will probably take a day to fix. :disappointed:

Uhh, I’m sorry about that.

does scribble provide a parameter that can tell me what the current file being processed is? or, actually, maybe that’s a more general parameter than something from scribble/base…

@apg If you mean at compile time, like a sort of __FILE__
for Racket, you can use (syntax-source #'here)
.

If you mean at run time I’m not sure.

p.s. Nothing special about #'here
. Also (syntax-source #'42)
or (syntax-source (syntax "whatever I am just some syntax"))
.

@greg yeah, Ideally runtime, but this is great, too.

the idea is that I can cache the output of my embedded graphviz documents iff i can compare mtimes between the scribble file it’s defined in and the mtime of the cached file on disk.

it’s not a huge deal, really, but if it’s simple to do, because there’s a parameter that gives me the info, then I’d do it.

@greg uhhh, duh. I can make my thing a macro, capture the syntax-source and then use it. At least in theory!

Actually, I don’t think that works. Not sure how to use a macro in a scribble doc…

@apg caching the output of an embedded graph doc based on when the doc file changes sounds like something a compiler should be doing

can you compute the output at compile time and tell raco make
that the great source file is a compilation dependency?

@notjack it doesn’t really need to be done at all, and the way its done now involves creating a tmpfile to dump the contents into, run dot
and copy the output file appropriately.

Also: I need to look at raco make.