jeapostrophe
2018-1-15 13:07:24

@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.


stamourv
2018-1-15 16:12:44

@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?


samth
2018-1-15 17:36:04

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


stamourv
2018-1-15 17:42:43

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


setori88
2018-1-15 17:48:26

@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.


pocmatos
2018-1-15 18:08:14

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?


d_run
2018-1-15 19:34:30

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


ben
2018-1-15 19:43:49

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


samth
2018-1-15 19:43:51

@stamourv I think you could benefit from it currently


greg
2018-1-15 19:48:57

@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.


greg
2018-1-15 20:04:27

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


pnwamk
2018-1-15 20:06:20

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


greg
2018-1-15 20:10:26

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


greg
2018-1-15 20:11:24

is on a horse