# \#lang htdp/bsl doesn't show coverage info

**URL:** <https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100>\
**Category:** Questions & Answers\
**Tags:** drracket, teaching\
**Created:** [February 4, 2026, 2:28pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100 "2026-02-04T14:28:11Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ToddOBryan](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/toddobryan/32/1962_2.png) [@ToddOBryan](https://racket.discourse.group/u/ToddOBryan)\
**Post date:** [February 4, 2026, 2:28pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/1 "2026-02-04T14:28:11Z")

</div>

I've been transitioning my classes this year to use `#lang htdp/bsl` instead of picking a language under the menu.

But I've just noticed that doing this prevents DrRacket from screaming at them about code missing coverage. ("It's orange and black, like Halloween, and it's even more scary!")

Is this an oversight, a limitation we get from using a `#lang` line, or something else? And is there any way to activate the lack of coverage other than switching back to the Language menu?

Thanks,  
Todd

---

<div class="post-metadata">

**Author:** ![soegaard](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/soegaard/32/19_2.png) [@soegaard](https://racket.discourse.group/u/soegaard)\
**Post date:** [February 4, 2026, 3:09pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/2 "2026-02-04T15:09:46Z")

</div>

In the language dialog, show the details:

 ![image](https://global.discourse-cdn.com/free1/uploads/racket/original/2X/d/d43f8f2af49d0aed4a47e94811ec0c914ea4e346.jpeg)

Then enable "Syntactic test suite coverage" under "Dynamic Properties".

---

<div class="post-metadata">

**Author:** ![robby](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/robby/32/7_2.png) [@robby](https://racket.discourse.group/u/robby)\
**Post date:** [February 4, 2026, 3:10pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/3 "2026-02-04T15:10:06Z")

</div>

It isn't on by default but you can enable it in the language dialog:

- language | choose language ... menu item
- show details (if not shown already)
- click "syntactic test suite coverage" (upper right)

---

<div class="post-metadata">

**Author:** ![ToddOBryan](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/toddobryan/32/1962_2.png) [@ToddOBryan](https://racket.discourse.group/u/ToddOBryan)\
**Post date:** [February 4, 2026, 6:50pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/4 "2026-02-04T18:50:08Z")

</div>

Thanks very much! I'll have to tell students to do this on their home computers.

However, is there any way I can set this as a default on all the students' accounts in my lab? Some line I could set in everybody's `~/.config/racket/racket-prefs.rktd` file or something?

---

<div class="post-metadata">

**Author:** ![robby](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/robby/32/7_2.png) [@robby](https://racket.discourse.group/u/robby)\
**Post date:** [February 4, 2026, 8:19pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/5 "2026-02-04T20:19:08Z")

</div>

Yes, it would be saved in the preferences. I believe it is the key `plt:framework-pref:drracket:language-settings`, but I recommend you test it out to be sure!

---

<div class="post-metadata">

**Author:** ![jasonhemann](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jasonhemann/32/611_2.png) [@jasonhemann](https://racket.discourse.group/u/jasonhemann)\
**Post date:** [February 7, 2026, 5:53pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/6 "2026-02-07T17:53:32Z")

</div>

Why are debugging and profiling and the syntactic test suite coverage mutually exclusive options?

---

<div class="post-metadata">

**Author:** ![robby](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/robby/32/7_2.png) [@robby](https://racket.discourse.group/u/robby)\
**Post date:** [February 7, 2026, 7:59pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/7 "2026-02-07T19:59:32Z")

</div>

Probably they're misnamed. When syntactic test-suite coverage is turned on, you're also getting errortrace's normal good stack trace stuff happening.

---

<div class="post-metadata">

**Author:** ![robby](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/robby/32/7_2.png) [@robby](https://racket.discourse.group/u/robby)\
**Post date:** [April 6, 2026, 6:14pm UTC](https://racket.discourse.group/t/lang-htdp-bsl-doesnt-show-coverage-info/4100/8 "2026-04-06T18:14:33Z")

</div>

I've made a pull request (probably not to be merged until after the release code is set so we have a full release cycle to play with it via nightly builds) that lets the `#lang`-based teaching languages specify what default errortrace annotations they get (upshot: the teaching languages can, by default, have test coverage enabled).

If you want to try it out, you'll need to get the code on [this branch](https://github.com/rfindler/drracket/tree/errortrace-annotation-defaults) in my fork of the DrRacket repo also need to make this change in the htdp source:

```scheme
diff --git a/htdp-lib/htdp/bsl/reader.rkt b/htdp-lib/htdp/bsl/reader.rkt
index 3d622e90..20c051b2 100644
--- a/htdp-lib/htdp/bsl/reader.rkt
+++ b/htdp-lib/htdp/bsl/reader.rkt
@@ -43,5 +43,7 @@
     [(drracket:show-big-defs/ints-labels) #t]
 
     [(documentation-language-family) "HtDP"]
+
+ [(drracket:default-instrumentation) 'test-coverage]
     
     [else (use-default key default)]))

```

(let me know if you want advice on how to do try it out; alternatively, it should be in the snapshot builds a few days after the release branches get created)
