-
Notifications
You must be signed in to change notification settings - Fork 200
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: GlasgowEmbedded/glasgow
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1e0ae593ec6a
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: GlasgowEmbedded/glasgow
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2c7828f6fd7e
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 2 commits
- 4 files changed
- 1 contributor
Commits on Nov 5, 2020
-
applet.interface.jtag_probe: completely rework error handling.
JTAGProbeInterface historically suffered from underuse of exceptions; it was originally written to return void values on error paths since it strictly validates all input at every opportunity, and this does not survive collision with the real world. (Can you believe there are production JTAG devices where IDCODE is 32 zeroes?) Scanning, as well as any future manual overrides, have to relax validation greatly. Unfortunately, this approach caused proliferation of identical error handling code in every caller, error propagation boilerplate, and polymorphic return values. It was awful. This commit changes all remaining code to use exceptions and, in most cases, accept a check= argument to opt into returning void values where truly necessary. The check= argument is not forwarded; callers that need to customize error handling in a fine-grained way should inline and tweak the code that needs to behave differently.
Configuration menu - View commit details
-
Copy full SHA for 89ae50c - Browse repository at this point
Copy the full SHA 89ae50cView commit details -
Stuff all of the custom_repl infrastructure into a bonfire.
Custom REPLs are very nice. custom_repl is awful for several reasons: 1. It required the user to watch out for a warning and then remember to switch to a different, inconsistent command, or else experience strange breakage. 2. It lacked any way to provide arguments to the REPL runner, which in turn was justifying the behavior in (1). 3. It involved some incredibly gross metaclass code. 4. It was completely unnecessary. All of the metaclass stuff has been replaced by a pair of methods that's easier to understand *and* provides more useful functionality (REPL arguments). I don't know what I was thinking.
Configuration menu - View commit details
-
Copy full SHA for 2c7828f - Browse repository at this point
Copy the full SHA 2c7828fView commit details
There are no files selected for viewing