!7 concept FunctionDef { S functionName; S snippetID; } cmodule LoadedStandardFunctions > DynCRUD { transient Map loadedBlobs = syncMap(); // snippetID -> main class start { dbIndexing FunctionDef('functionName); } Class getBlob(S _snippetID, S forFunction) { S snippetID = fsI(_snippetID); Class blob = loadedBlobs.get(snippetID); if (blob != null) ret blob; ret dm_evalInQ({ Class blob = loadedBlobs.get(snippetID); if (blob == null) { print("Hotwiring " + snippetID + " for function " + forFunction); loadedBlobs.put(snippetID, blob = hotwireDependent(snippetID)); } ret blob; }); } // API ObjectPlusMethodName getFunction(S name) { FunctionDef def = conceptWhere FunctionDef(functionName := name); if (def == null) null; O blob = getBlob(snippetID, name); if (blob == null) null; ret ObjectPlusMethodName(blob, name); } }