
All string representations include a NUL terminator. If there’s a NUL in the middle of a Racket string, then a foreign callee that expects a terminator will interpret the middle NUL as a terminator.

I’ll update the docs

One rationale for separating tests is that the tests can rely on packages that the implementation doesn’t need. For example sweet-exp-lib
doesn’t need to depend on lazy
or typed-racket-lib
. But to test sweet-exp
, we wanted to use #lang sweet-exp lazy
and #lang sweet-exp typed/racket
.
There would be a similar rationale for something like scribble-code-examples
. That package is meant to be used to render scribble docs for non-s-expression languages. So to test it, I want to run it on lots of non-s-expression languages, which it would have to depend on as packages. However, the -lib
version shouldn’t need all that.

Though you do have a point with submodules. Maybe a good strategy is to have easy unit tests (things that require your library and rackunit-lib
, nothing more) in test submodules in the -lib
package, and only have more complex tests that might use other packages and other languages in the -test
package.

I tend to write external tests instead of test submodules, so I generally put the test subdir in the main package. But putting them in the lib package seems fine too, as long as the dependencies are minimal (as Alex just said).

In traditional Racket, the best way to determine future safety is using the log messages that futures provide.

Thanks, for both those things!

Unfortunately, the future logging infrastructure is not yet in place for RacketCS. However, you can see that some operations that block in traditional Racket do not block in RacketCS. Consider this interaction: [samth@huor:/tmp plt] PLTSTDERR=debug@future racketcs
Welcome to Racket v7.2.0.12 [cs].
> (define v (vector 1 2 3))
> (define b #t)
> (define t (future (lambda () (for/hash ([i v]) (values i i)) (set! b 'done))))
> b
'done
> (touch t)
> b
'done

On traditional Racket you get this instead, because futures block on hash operations: [samth@huor:/tmp plt] racket
Welcome to Racket v7.3.0.1.
> (define v (vector 1 2 3))
> (define b #t)
> (define t (future (lambda () (for/hash ([i v]) (values i i)) (set! b 'done))))
> b
#t
> (touch t)
> b
'done

Is the new one that fails, and the other one an older that shows a succeeding log?

I’m in the process of adding Gmail to the same deprecation list as my old Yahoo and Hotmail and Xxx accounts. I want to subscribe to racket-{users dev money} lists with a new, (non-google) email address. Is this possible to do without creating Yet Another Google Account using the new non-google email address?
Some things indicate that emailing to [Group Name]+subscribe@googlegroups.com
would work. OTOH other things imply Google @#$%-canned that awhile ago.
I guess I can just go ahead and try, but thought I’d ask in case anyone else knows.

I just uploaded my first package! https://docs.racket-lang.org/loop/index.html
@soegaard2 told me that loop
is not an ideal name because people have already claimed this name (http://www.ccs.neu.edu/home/shivers/papers/loop.pdf). On the other hand, I want a relatively short name. Does anyone have a suggestion?

I don’t think package splitting is a good thing to do. With the submodule and phase systems, we can accurately track which parts of a package depend on what other packages and at which phase(s). Duplicating that information by mechanically splitting packages is busywork that’s difficult to maintain.

Well “it worked” in the sense that it replied, asking me to confirm with a reply email. It says I’ve “joined”. It remains to be seen if I’ll actually receive emails (no traffic on racket-users yet), and, if it will let me send emails.

@cyclotron1992 has joined the channel


hi everyone :slightly_smiling_face:, I took a break after starting a new job

I also found a copy of How to Design Programs Second Edition for .99 at Goodwill. Score!

@abbyrjones72 Welcome back!

hi Bill!

Oh cool. Good to know.

I actually had a little wave of nostalgia, it’s been awhile since I sent a subscribe email to a listserve. :older_man:

99 cents! that’s a steal


is that due to the failssucceeds problem?