Programm zu groß / Speichermangel

Hi!

MakeCode meldet mir gerade „Program too big by 808 bytes“. Nach Herauslöschen eines „PlayMelody“-Befehls ging es (Dateigröße: 696,5kB).

Problem:
Das Projekt ist noch nicht ansatzweise fertig; ich muss das Programm also kleiner bekommen.

Welche Möglichkeiten seht ihr da?

1) Anderer Editor?
Das Programm ist derzeit rein in JS geschrieben; ich brauche weder Blöcke noch Python. Gibt es hier evtl. einen alternativen Editor, der in solchen Fällen kompakteren Code erzeugt?

2) Quellcode verkleinern
Ich kann natürlich alle Kommentare aus dem Quellcode rausschmeißen, Variablennamen verkürzen etc. Spart aber nur ca. 3kB.

Was mich erstaunt:
In einem früheren Projekt war der JS Quellcode 50kB groß und die fertige HEX hatte gerade mal 640kB. Im aktuellen Projekt hat der JS Quellcode gerade mal 14kB - also nur ein Drittel. Aber das Programm ist viel größer.

Mein Programm macht derzeit nichts anderes, als mittels 4 Schaltern und einem Taster 4 Relais zu schalten (Taster, Schalter und Relais über einen MCP23017 am Calliope angeschlossen) und die Schalterzustände (betreffende LED der Matrix an/aus) am Display anzuzeigen. Da ist noch Null „Programm“ dahinter.

Ich frage mich echt: Wenn das den Calliope schon überfordert, wie bekommen andere dann Programme hin, mit denen sie z.B. Autos steuern?

Kann es sein dass Du vielleicht zu viele Erweiterungen geladen hast? Schicke mal einen Sharelink dann schau ich mal rein!

Hi, klmi!

Ich habe gar keine Erweiterungen geladen. Habe gerade mal ein neues Projekt erstellt, und den Sourcecode aus customer.ts und main.ts dort reinkopiert. Das so neu erstellte Projekt ist nur unwesentlich kürzer (ca. 3kB), was aber evtl. daran liegt, dass ich im neuen Projekt keine Blockansicht aktiviert habe, und die daher im Projekt noch nicht enthalten ist.

Im Sourcecode-Explorer kann ich (außer meinen Dateien und der Readme.md) auch nur die Erweiterung „radio“ entfernen. Sonst nix.

Habe zufällig gesehen, dass unter makecode.calliope.cc/v1 noch der MakeCode V1 verfügbar ist. Das gleiche Programm mit dem MakeCode V1 kompiliert belegt nur 585 kB - ist also ca. 110 kB kürzer! Das ist schon ein extremer Unterschied für das gleiche Programm.

Der neue Editor scheint also jede Menge „zusätzliches“ mit reinzupacken, das mein Programm gar nicht braucht - und das man auch manuell nicht entfernen kann.

Mmh. Der Quellcode der core-Library ist ja gegen Veränderung geschützt (was ein bisschen schade ist), sonst könnte man hier selbst Hand anlegen.

Alternativ gibt es ja die Projekteinstellungen, in denen Bibliotheksreferenzen enthalten sind. Bei mir steht da:

{
    "name": "Untitled",
    "dependencies": {
        "core": "*",
        "radio": "*"
    },
    "description": "",
    "files": [
        "main.blocks",
        "main.ts",
        "README.md",
        "custom.ts"
    ]
}

Ob man die Zeile

"core": "*";

so umändern kann, dass er nicht mehr die ganze core-Library mitlinkt, sondern nur noch den benötigten Teil?

Stimmt, dann gibt es nur noch die letzte Möglichkeit: Funk (radio) löschen!

Wäre aber ne coole Möglichkeit wenn man das Programm auch ohne Quellcode auf den Mini überspielen könnte. Man bekommt es eh nicht mehr zurück.