
@setori88 @greg re: private
/etc, I think the Racket mores are that you don’t use things aren’t documented (you mention this), so everything not document is “private” and you use private
to help yourself remember. being document is also how we measure backwards compatibility, roughly reading old documentation should let you write code for any version of the package. I think it’s good that there’s no technical barrier to using undocumented stuff though, because sometimes a package extends another in a way that relies on these undocumented details and it is too onerous in the beginning to document them or combine the packages.

@samth, @notjack: What’s the status of your docker testing project? Testing for 6.12 will start later today. Can I / someone else use it for something?

@stamourv you can use it to test many things but not quite as many things as you might want

Who is the intended audience at this point? i.e., who could benefit from it now?

@greg @jeapostrophe I agree packages are very much social. Hence conventions are created. I really don’t think one fosters a stable package base if 3rd parties use private functions. Public exports are contracts saying I supply X and it won’t change (after draft
stage). If I change it, I’m breaking that contract. I, as a library developer, don’t want that the commitment to extend to my private functions as it locks me down. Private function usage creates unclear expectations. I will certainly break other dependent code when not if I change the code. Anyway, thank you I have a better understanding now.

Are there any good usage cases of the logging facilities? I have slightly stumped on how to use logging at the basic level. Like, do I always need a receiver?

i too have always found logging difficult and rely on some cargo cult scripts i got off stack overflow

For basic logging, I usually do this: (1) make a new logger with define-logger
, e.g. (define-logger foo)
; (2) log at the info level (log-foo-info "hi")
; (3) set the PLTSTDERR
flag, PLTSTDERR="error info@foo" raco make file.rkt

@stamourv I think you could benefit from it currently

@pocmatos Normally you’ll use a log receiver that’s already created by you. Such as the default one, with command-line Racket. Or maybe one created by a tool like xrepl, DrRacket, or racket-mode. The only time I’ve created my own, recently, is to forward things to Amazon CloudWatch Logs.

I think the biggest deficiency of Racket’s logging is that, unlike Android, it lacks a WTF
log level: https://developer.android.com/reference/android/util/Log.html#wtf

oh that’s wonderful — documented as “What a Terrible Failure: Report a condition that should never happen. ”

I’d really like to see this implemented with a video snippet, “Oh what a terrible failure” along these lines: https://youtu.be/kp5HCDGJsvM?t=27s

is on a horse