
All, I need to draw some data structure illustrations. The obvious Latex solution for this problem is usually Tikz. Absolutely amazing tool, hate the language though. Have to relearn it each time I need to use it. Is there anything like this in Racket? It looks like pict
is somehow going in this direction. Is it my best bet?

How about Graphviz or PlantUML? Pretty easy to automatically generate diagram definitions.

Never looked at those (used graphviz for graph generation using dot) but certainly not plantuml. Will take a look.

@samth following up a chat a few days ago about building racket and racketcs in the same build, cd racket/src; ./configure; make; make cs
does not seem to work.

Take a look, if possible, at the end of : https://travis-ci.org/LinkiTools/racket/jobs/466507986

make[7]: Entering directory `/home/travis/build/LinkiTools/racket/racket/src/cs'
cd ../thread; make RACO=" -N raco -l- raco" thread-src
make[8]: Entering directory `/home/travis/build/LinkiTools/racket/racket/src/thread'
N raco -l- raco make ../expander/bootstrap-run.rkt
make[8]: N: Command not found
make[8]: [thread-src] Error 127 (ignored)
make thread-src-generate
make[9]: Entering directory `/home/travis/build/LinkiTools/racket/racket/src/thread'
../expander/bootstrap-run.rkt -t main.rkt --submod main --check-depends ../cs/compiled/thread-dep.rktd ++depend-module ../expander/bootstrap-run.rkt --depends ../cs/compiled/thread-dep.rktd --makefile-depends compiled/thread.rktl ../cs/compiled/thread.d -c ../cs/compiled/cache-src -k ../.. -s -x ++direct pthread -o ../cs/compiled/thread.rktl
make[9]: execvp: ../expander/bootstrap-run.rkt: Permission denied
make[9]: *** [thread-src-generate] Error 127
make[9]: Leaving directory `/home/travis/build/Link

Anyone else tried this before? I am really only interested in the C part - which is the only interesting part for coverity.

I think Sam meant make && make cs
in the repo top-level directory, which is also what I do. The sequence cs racket/src; ./configure --enable-cs; make; make cs
is also meant to work, but I haven’t tried that (and can’t try just at the moment).

Ah, yes, that makes sense. I will give it a try. Thanks.

Looks like its working after cloning your chez repo as well.

Ah, right. Hopefully the configure
script alerted you to do that, though.

I should make the cs
target tell you to configure with --enable-cs
, assuming that works.

doesn’t actually work, there’s some missing Makefile rule: make[6]: *** No rule to make target '/home/pmatos/Projects/LT-racket/racket/src/cs/racket.so'. Stop.

Don’t really want to bother you with this because it’s just so I can run coverity on both racket builds.

I am going to try to just get coverity running through make
on top-level.

I bet the problem is that the build needs to run in a separate “build” subdirectory. So, cd racket/src; mkdir build; cd build; ../configure --enable-cs; make cs

If I do it in the top-level I am still not getting it to work. Fails building cs: Exception in $fasl-file-equal?: gensym comparison failed while comparing ../boot/ta6le/sbb and ../boot/ta6le/petite.boot within fasl entry 959
make[16]: *** [Mf-base:294: checkboot] Error 255

Is this related to a recent change?

That’s odd, since I recently sync’ed the bootfiles. I’ll have to investigate later today.

That’s a fresh checkout, or an existing one?

That’s an existing one. But I updated it a few hours ago.

I will try a fresh checkout to see if there’s a difference.


Example of a State machine: https://github.com/soegaard/metapict/blob/master/metapict/examples/state-machine.rkt

@soegaard2 wow, saw the examples and am excited already. :slightly_smiling_face:

Thanks. Will definitely give this one a try.

Works with fresh checkout. I am stumped. Will sort out now things on my branch. Thanks for your time.

@soegaard2 wow, thanks for the pointer - looks very cool

Does make
another time in your old checkout solve the problem? The Chez Scheme makefile tries to build and rebuild a time or two to reach a fixed point. I’m not sure why, but sometimes it takes another round to get there. Starting from a non-fresh build means starting with the bootfiles from your previous build, instead of the checked-in ones, so tat’s why a fresh checkout is different.

Oh interesting. So are you saying the way to work around this is to require as few things in the reader as possible?

(And move the rest to the #:language
field?