Skip to content

Big arrays #334

Description

@cardillan

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:

  1. Code for the processors will be generated when compiling the main program. The code for the other processors:
    1. 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).
    2. Compiling Mindcode will automatically produce a schematic containing all the processors and their code. Probably activated using a compiler option.
  2. Just the code of the main processor will be provided, the rest will be available in some other way (e.g., require bigarray; initializeBigArray();).
  3. 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];

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions