(just copying and pasting my notes)
hypothetical number system that reaches 10^^1.8e308: store two numbers. the first is layer (starts at 0). the second is payload.
layer == 0: payload is the number.
layer == 1: payload is the exponent of the number (e.g. 1epayload is how large the number is)
layer == 2: payload is the exponent of the exponent of the number (e.g. 1e1epayload is how large the number is)
and so on all the way up to layer == 1.8e308, payload == 1.8e308 where the number system breaks.
until you recursively split 'layer' into 'layer layer' and 'layer payload'... infinite layers until you run out of memory??
There are a lot of things you'd need to figure out, first is when do you decide to increase or decrease the layer after doing a calculation (e.g. what does normalizing involve and how aggressive does it need to be) second is that functions that have been simplified to not worry about very big/very small cases like log and pow would need to handle these ridiculous numbers,third is that as we reach extremely high levels of tetration, a question arises, what kinds of operators do we need to keep going bigger and bigger anyway? and of course fourth is optimization, if we have to compare layers every time we do operations it might get slow.
I think the proper way to do normalization is to increment layer whenever payload >= 9e15, and to decrement payload whenever payload < log10(9e15). That way you never skip integers at layer 0, you never skip integer exponents at layer 1, you never skip integer ees at layer 2, etc. And if you normalize strictly then you can take shortcuts in other operations, like in cmp if layera > layerb then a > b. And I think you at most have to change by 1 layer whenever normalizing.
log10 would be pretty funny, it'd literally just decrement layer by 1 and be super fast. Which kind of implies pow10 would be really fast too (increment layer by 1) which is funny as well. Of course, any non-10 log/pow would have to use actual math. Of course, if we want to have a 'game' that goes above 9e15 layers (no game comes ANYWHERE close to this right now, it goes without saying), we'll need to create operators that go up and down more than a single layer at a time. Factorial/xe^x and inverse factorial/lambert w probably won't cut it... Maybe tetration and its inverses are strong enough?
as for layer layers, I have no idea how it would work and it sounds dumb, but it does sound funny. there's probably a smarter way to do it? but that can wait until laaater.
games calculators that go this high that we can scavenge for working code:
Apparently Incremental Unlimited does something similar, and reaches at least 10^^4 already: https://play.google.com/store/apps/details?id=com.antoine.mathematician.oddlittlegame&hl=en
https://mrob.com/pub/comp/hypercalc/hypercalc-javascript.html hypercalc goes up to 10↑↑(10^10), which is pretty heckin' sweet! The source code's in perl, though. Who wants to read perl? http://mrob.com/pub/comp/hypercalc/hypercalc.txt