## Recent Activity

&WhiteBox is prepping to go native, reading PDBs for arbitrary executables in place of the DWARF it generates internally.
Unsurprisingly, @NeGate has been doing a great job on this! 😄
Here's WhiteBox inspecting its own PDB functions, showing line info & local variables

I've been working my way through the ANSI control codes standard (+ extras) for WhiteBox's new in-built console.

We're capturing stdout & stderr from the user's process, reading ~all controls & handling more graphical ones than many terminals!

Can yours do curly red underlines?

Just playing around with a WIP build of WhiteBox after @phillip_trudeau has made some upgrades.

I'm really enjoying taking advantage of this breakout, full-width timeline 😀

(thanks to @ocornut for Dear ImGui + docking + viewports!)

I added a red line to the end of the &WhiteBox timeline when a run had an error that prevented the function from returning.
I also fixed the status message telling you what line the error occurred on.
(There's a new release coming very, very soon!)

I had a few minutes spare this morning so I rushed out a summary video of how MetaDocs is looking after the jam (apologies for lack of polish, I didn't have time to plan it out fully): https://youtu.be/kKppU0zcXjM

Highlights:

• reading clang's AST from JSON into C structures, deduplicating repeated nodes
• converting that into a more convenient structure for navigating symbols and their attached documentation comments
• starting to autogenerate a markdown-like syntax for symbols and attaching the documentation text
• evaluating constant expressions from the AST for enum values

Still to finish:

• representing primitive types in the same way as custom types
• finalising binary and JSON outputs
• complete example translating to a final HTML
• library methods to assist with references between documentation and symbols
• proper scoping of types

&WhiteBox now has a welcome screen with instructions on how to install the plugin for each editor, thanks to @BaremetalBaron

I'm really excited about this update to &WhiteBox - it adds the ability to call into other functions in your code (not just the function that's being recorded).
This means you can call main() (or something else that calls your function) and see how your function behaves with all of the parameters & extra context from runtime without having to input them manually.

It's now at a point where this seems to be working, it just needs to do a little tidying up after itself...

Reworked &WhiteBox's recording of the running process' memory to be faster, simpler, and to better capture pages changing protection/accessibility

I haven't shown much for &WhiteBox recently as it's all been pretty non-visual. Here's a little expression builder I made on stream for debugging expression evaluations.
It shows the value of that expression at a given sample of the run as well as a list of all the times the value changed during the run.

Having it as a builder means that I can enforce the validity of the expression, and it also means I don't have to handle shadowed variables with the same identifier as you would for text parsing. It's a little less clear how identities should be handled when taking a large span of time into account instead of just a single instant, so this lets me defer decisions about that.

WhiteBox happily running on Linux with 4coder 😁

WhiteBox is officially rendering on Linux 😄
Only a couple more things to port...

WhiteBox (real-time debugger) GUI improvement: limiting variables on the timeline to only show the time ranges when they're in-scope (implemented on stream).

@martijn I know you wanted to see this 😁

quick new UI mini-feature for WhiteBox: see all the points in the execution timeline that correspond to a location in the code (i.e. there's a highlight for every time the instruction pointer hits the code under the cursor)

I was cheating a bit before by determining what functions need to be compiled before starting to run.

I've improved the communication between the processes running & overseeing the code execution:
WhiteBox now has the option to defer a function's compilation until the first time it's called.

This opens up possibilities for optimization as well as adds support for using function pointers 😀

"WhiteBox ANNIHALATES Visual Studio in an EPIC debugger showdown"
hmm maybe too much...
"How the real-time feedback of WhiteBox will revolutionize the way you program"
... is this marketing? Am I doing it yet? 😁

This compares the process of getting feedback for a simple problem from a normal debugger and with WhiteBox. This is fairly low-hanging fruit as far as improvements go (conceptually at least), but I think it shows how much quicker & easier feedback should be for at least the common cases of writing code.

Jump to 1:20 if you just want to see how WhiteBox looks in use

It's been a while since I added any new features to WhiteBox (my real-time debugger), and I've been intending to implement a data timeline for ages: here it is in an early form 😀

People who've preordered will be getting a version of this in the next couple of days to start playing with.

I now have loads of information fairly easily queryable for adding new representations like this, before we even get to different types of data that we can collect!

I've just added a new feature to WhiteBox (my live code debugger/previsualizer) that's really been missing - the ability to add a length component to pointers, so that they can be treated as arrays 😀

For those unfamiliar, a quick overview of what's being shown here:

• the code in the box in the top right is providing arguments for and calling the code in the editor to the left.
• the bottom-right section is a mutant debugger-like data-tree
• the values highlighted red are those that changed just before the "breakpoint" on the position of the cursor
• there are 2 values for the last 3 elements of array because both are seen at some point in the run when the instruction pointer reaches the cursor
• (there is only 1 value for the first element because it's already been scaled before the first time the instruction pointer reaches the cursor - my first reaction was that something was wrong, but I'm pretty sure this is correct - WhiteBox is already correcting my misconceptions 😁)

I also realised there aren't any new features to add before I send out to the preorderers! I just have a few things to tidy up and then we're good to go 😀
If you'd like to be one of the vanguard with imminent access to the (buggy) alpha version, you can preorder WhiteBox with a 35% discount here https://azmr.itch.io/whitebox

I've started to update the colourscheme for WhiteBox (my live code debugger/previsualizer).
(I've yet to update the graphs)
red highlights data changed in statement before the editor cursor position
blue (and the graph) is showing all of the changes for a given variable

WhiteBox (live code previsualizer/debugger) now has global & per-variable data print options (proper cascading options and more UI feedback coming soon)

Variables that change in a loop shown inline - now working with struct members and eliding elements between the top and bottom 3 (easily changed to more/less)

Note the cursor is on line 11, before data.num has been set. Correspondingly, in the # (change number) column, there is one remaining change in value for data.num (which also means there's another change for data).

(if you're wondering why i has 33 values, it's because it's also recording after the final ++i, at which point the loop exits)

I added inline displaying of loop-value changes to WhiteBox. It's on it's way to something useful but definitely still needs some tuning

It's been a little while since my last devlog, so here's an update on some of the progress I've made.

Right, after some feedback from a few people and with the perspective of a new day I decided that my previous video was unreasonably difficult to follow, so I've reuploaded it with commentary and a visual indicator of what I'm talking about at any given time. If you found the previous version a bit lacklustre, please give this one a try: https://youtu.be/4T11-B7jXIk

Although this doesn't look like much, it represents quite a few months of work. Apologies for the silence, hopefully it makes sense. https://www.youtube.com/watch?v=r7v2EcTVUVs

Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece

successfully outputting MIDI with multiple instruments

Andrew Reece
New forum thread: Casey's C webpage generator
Andrew Reece

Colourblind shader demo (play both at the same time)

closeup through a slightly grubby 10x loupe

Got my blit16 font running on a tiny 128x32 LCD screen (via arduino)

New blog post: v0.62.0 OpenGL at last
Andrew Reece

Progress is slow (sneaking in 20 mins here and there), but I got OpenGL working with the main drawing. Need to tweak some parameters now, the points are all wrong 😛

Andrew Reece

woo, OpenGL finally working (and drawing the primitives I need)!

Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece

Slight change to show another feature at the start

Added a couple of helpful new features to geometer (e.g. selecting & deleting points!)

Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
New blog post: 02. Line Drawing
Andrew Reece
New blog post: 01. Overview
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
Andrew Reece
New blog post: 00. Greetings
Andrew Reece
Andrew Reece