Implement support for creating arrays stored in multiple external processors ("RAM processors").
Big arrays will be created using the external storage modifier. The modifier will accept a linked array of processors. The compiler will choose a suitable array organization to use. The processors will have to have a code defined. The following possibilities exists:
- Code for the processors will be generated when compiling the main program. The code for the other processors:
- The code will be somehow output (into extra files in case of command-line tool, or into additional output fields in case of web app).
- Compiling Mindcode will automatically produce a schematic containing all the processors and their code. Probably activated using a compiler option.
- Just the code of the main processor will be provided, the rest will be available in some other way (e.g.,
require bigarray; initializeBigArray();).
- When compiling schematic, the code for external processors will be passed on to the schematic builder, which will place the code into the processors. The schematic builder could create only memory blocks/processors that are actually needed for the array of given size.
As the storage processors will only contain some code creating the variables, it would be possible to place additional code into them, either completely independent, or callable from the main processor.
Possible syntax (see also #324):
linked processors[] = (processor1 .. processor6); // Array of literal processor links
external(processors) array2[8000];
Implement support for creating arrays stored in multiple external processors ("RAM processors").
Big arrays will be created using the
externalstorage modifier. The modifier will accept a linked array of processors. The compiler will choose a suitable array organization to use. The processors will have to have a code defined. The following possibilities exists:require bigarray; initializeBigArray();).As the storage processors will only contain some code creating the variables, it would be possible to place additional code into them, either completely independent, or callable from the main processor.
Possible syntax (see also #324):