# Internals

Nothing in this section should be required to write a normal application using Phix. However, if you are trying to modify or fix a bug in the compiler itself, or just interested in how things work...
I will accept (short, specific) lists of suggested items to be added here.
Compiler and runtime internals, documented for quick reference. All this information can be found by examining the sources (and if in doubt believe them not this). While developers are free to adapt anything they find in builtins\VM for their own purposes, both the use of extreme caution, and pedantically renaming everything that could possibly affect anything else, should be considered mandatory - I trust it is obvious that spannering anything in builtins\VM will quite likely also spanner the bits that show where an error has occurred (both on screen and in any ex.err).
Deliberately incomplete, entries are only added on an ad-hoc basis, as and when I feel that an F1/escape style lookup will benefit me. In other words the whole point is not to learn these things but to have a handy quick reference, precisely because even I use them so very rarely (including my work on the compiler) that I can never remember them.

opCallOnceYeNot | - | ensure builtins\VM component has compiled correctly
pGetPool | - | internal routine to obtain raw memory
pFreePool | - | internal routine to release raw memory
pLoadFlt | - | finish loading an atom into ST0
pStoreFlt | - | store st0 in a hll atom, as an integer if possible
pLoadMint | - | finish loading a machine-sized (32/64-bit) integer
pStoreMint | - | store a machine-word sized integer, as a float if necessary

Some cheat sheets to help with translating to/from other programming languages: Go