BARREL Exclusion Confusion

I tried to add a Jungle Exclusion Annotation in front of the Module Name in a Barrel, and it errored out in the compile.

So I just moved that Barrel Module into my DF source tree, and removed the Barrel Dependency.

Then, the DF compiled fine and avoided loading that module for the device I wanted to be excluded. Perfect. Saved a chunk of memory I wanted to avoid.

No big deal. I'll just stop using Barrels since I need to start avoiding some features so my DFs will work with these devices that have < 30kb of memory.

Too bad.. Barrels have potential.

  • So this is what I need to do, to handle all the devices with small memory footprint. I wish there was a FAMILY related to memory size. :-(

  • A barrel has it's own jungle file.

  • So I want to exclude a barrel in its entirety from small memory devices. So in the barrel jungle I can use a base barrel path for the general case. and then I'd need to override that path for the small memory devices to another path (ideally a null path or an empty barrel). That isn't clean. There is also something called barrel annotations. Those aren't called and don't seem to be EXCLUSION annotations. No documentation on what those are or how to use them. Maybe they are exclusions and Garmin just wasn't consistent in the naming?