Chapter 52: Chapter 52 – Decompilation

The first thing that I do when the Visor comes up is, unexpectedly, eat. Amber, may she live a thousand years and never feel the touch of the Void, shoves something in my hand and kisses me on the forehead, and I sort of automatically bring it up to my face and take a bite. It’s explosively flavorful, sweet and savory and tangy with a surprising amount of liquid in a crusty, crunchy shell. A headache I didn’t even realize I had starts receding, and it’s gone by the time I finish the snack, possibly helped along by Amber’s magic.

My words still echo in my head. A better order. I lick my fingers, eyes flickering across the panels of output that scroll and zoom and jump at a thought, and with a breath, I get to work.

The Visor isn’t like a vick, a Volitional-Interface Coder, but it’s close enough that I’ve been able to work with it. A lot of the tricks that I used to get through the first couple of weeks here no longer function, the oracles and the direct manipulations of substrate and the various other exploits that are patched on me as soon as I use them. But the Visor is still a tremendously powerful coding engine that’s tremendously usable, and nothing fundamental to its function has gotten yanked yet.

Well, that’s not quite true. I can’t inspect elements anymore, not the literal way by chasing pointers and not by introspection or interrogation, calling the built-ins to return the element’s value. The System left me still able to reference them, to import them into the data representational space that the Visor locally mutates - locally, mind you; that exploit worked once - for computational and simulation purposes. I just can’t get any information about them through the Visor that I’m not able to figure out for myself first.

Can still confirm things, at least. That’s more valuable than people generally think.

The first thing I do is build some data representations. Well, technically that’s a bunch of things; a little bit of guesswork as to what might be a decent way to encode things, see how it fails, and work from there. It’s all structured, so once I figure out where I’m making the mistakes it sort of falls into place; it’s all super hierarchical, with a basic action/target kind of model.

Two steps forward, one step back. The action/target model calls for a kind of relational representation totally unlike the original data model I’d adopted, but once I have that arranged, I’m able to run a validator, and critically, that means I can get into the crunchy bits. A simple matter of will is all it takes to throw my memory of a machine learning meta-run into the system, evolutionary algorithms and weightings and all, and it coughs out the completed model more or less instantaneously. I’m not sure the System or whatever is trying to limit the worst of my exploits thinks this is just fine or doesn’t really understand how powerful a tool it’s handing me, so I try to limit my use of it, but this is the moment, if any moment is going to happen.

The model chokes a few times, and I make the changes to get it past where it’s choking. That means more modifications to the data representations and a re-generation of the model each time, and it means working very carefully with the desired outcome and ingesting some additional source data. I’ve already got the pylon and what it’s trying to do, the runes and the spells that would bind Sara to my will as one of my companions and a member of my party, and to that I add the ties that bind Zidanya and Amber, not just as things to avoid but as things for the learning model to ingest.

There are two things I want to be clear about here. The first is that I understand exactly why… not just why Sara would be willing to subject herself to these ties, and not just why someone might demand she do so, but why nobody would look askance. They’re pretty loose, looser than the Heharani thralldom contracts I perused; I’m just unwilling to force even those on her, and I’m willing to bet on earning her loyalty instead of making her unable to betray me or even conceive of betraying me.

The second thing? Well, like I said, the Visor no longer lets me interrogate or inspect anything I don’t already understand. I’m not trying to learn how the runes and spells work, and I’m not trying to learn how the pylon works. Instead, using it as a base, I’m trying to teach the Visor, or the magical software-equivalent that’s running under its hood, how it works… or enough of how it works that I can do something different.

The pieces to one half of the equation start to come together pretty fast. I can run the simulation end to end, and I can shit out models from two out of three that predict the third; that is, I can feed any two out of the three sets of bonds from Zidanya’s, Ambers, and Sara’s hypothetical ones, and have the model construct something that matches the third. The other half of it just completely fails, absolutely no traction, so the next stage is classification. The first bits sort of happen for free; I tell the model I want something a little bit different in this way, in that way, and it works about one time in four. When it does, I adjust the data representation to say this piece is involved in this kind of functionality, that piece is involved in that kind of functionality, and when it fails, I just move on and ask a different question, trying to accumulate enough metadata that I can narrow things down by swathes.

I know, I know, I said I’m not trying to learn how the runes and spells work. As Zidanya points out, learning what they do isn’t that; and as I’d point out to a hypothetical System observer, all of this analysis might be telling me much of the information I could get from the now-forbidden inspection subroutines, but that’s just a side effect, isn’t it? Oh happy side effects, that are certainly not the purpose, and which are implicitly present in even the most pure of functions.

Anyway, if the Voidfuckers didn’t want me binding information into the metaphorical monad, they should have used better encapsulation.

The others start getting antsy, and I take a long enough break to make grumpy noises at them when they interrupt me. Amber kisses me, which is almost enough to distract me and at the same time just helps me get back to focusing on my work with renewed focus; in hindsight, a few moments later, I realize that that’s because she Healing Touch’d away a headache, and she shoves another one of those encapsulations of juicy deliciousness into my hand.

I eat it without noticing how it tastes.

You are reading story Frameshift at novel35.com

I’m maybe two thirds of the way there, at this point, and I can feel it like an itch in my brain, like the overwhelming need to make a puzzle piece click into the right place. It’s taking too long to do the piecemeal, manual encoding and updating of all of the functionality of the little pieces that make up the hypothetical bind-Sara option, I feel like I wasted the time I spent on that even though every false step is actually another step that brings you closer to the solution, but that’s fine; I’ve got a nearly-arbitrarily-powerful computational engine running on a literally magical substrate, and I throw it at the problem. It’s actually really easy to do, what with the magic and the bullshit that the Visor represents; if I’d tried this solution in the Fleet, on a problem of this scope, only the Void would have been around to hear the solution.

I use naive forking-recursion, is what I’m saying.

There are well over a hundred thousand discrete pieces of functionality involved in the binding. Each of those has the potential to affect each other, in a massively explosive factorial of possibility. Even with some pruning and the application of some logic, there’s wildly too many trees and too much probability-space to be reasonable to brute force. I do it anyway. The Visor’s processing thread forks to over a hundred thousand, and each of those forks to another hundred thousand more and again; every possible permutation of the runes and spells I’ve encoded as functions is exercised, and every thread reports back its results and updates the data representation of those functions, and about fifteen seconds after I’ve hit execute I’ve run it four times, fixing implementation errors the first three, and I have the final results.

Starfire and gravity wells, Void that eats it all, I could get used to this.

The last step is the second-easiest. I have a full classification in the data model, now, something that associates every piece of magic to what it actually does, and I replace the old, blind-learning model with something more directed and based on consuming that classification. It’s… well, not exactly machine-readable, I wouldn’t necessarily call the Visor a machine, but I don’t have any access to the underlying data, so I have no idea what that means in practice, but it works, and I’ve got a new model that works just as well as the earlier one. So I do the obvious thing.

I define out all of the will-subversion, thought-control style bits of the Bind options as being forbidden to the end result, and see what the model throws at me.

One option. It spits out one option, one solitary stable and meta-stable enchantment, something that won’t fall apart or disrupt any of the other party bonds. I close my eyes for a moment, then open them, smiling in vicious triumph.

[Insight] and [Interface] flare together.

I open my eyes, which I’d apparently closed again, somewhere in the midst of the sharp spike of concentration and understanding, the heartbeat where I felt on the cusp of knowing how the pylon works. That’s entirely gone, but the result, the outcome, is right there in front of my eyes. It’s hovering in the pylon’s screen, as it were, occluding all of the other options.

Recruitment - Sara Evetheri /

The words hang there, glowing. It’s cut off; if my guess is right, there are a few options that are somehow incompatible with Zidanya’s and Amber’s bonds, and which would result in some sort of instability. There’s certainly space for them, and isn’t that interesting.

I’m grinning when I select the new option with an act of will, grinning ear to ear, and the notification hits me without even the slightest amount of pain.

Get airlocked, Seidr.

Sara Evetheri has joined the party. Your grace period of 12 HOURS begins.