@openmixer/plugin-qualify 0.17.5 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -13
- package/dist/clap-qualify.d.ts +3 -1
- package/dist/clap-qualify.js +7 -1
- package/dist/clap-qualify.js.map +1 -1
- package/dist/direct-limit.d.ts +27 -0
- package/dist/direct-limit.js +52 -0
- package/dist/direct-limit.js.map +1 -0
- package/dist/host-admission.d.ts +10 -2
- package/dist/host-admission.js +13 -2
- package/dist/host-admission.js.map +1 -1
- package/dist/host-profiles.d.ts +8 -0
- package/dist/host-profiles.js +16 -1
- package/dist/host-profiles.js.map +1 -1
- package/dist/hosting-codes.generated.d.ts +10 -0
- package/dist/hosting-codes.generated.js +10 -0
- package/dist/hosting-codes.generated.js.map +1 -1
- package/dist/hosting-suitability.d.ts +34 -8
- package/dist/hosting-suitability.js +92 -7
- package/dist/hosting-suitability.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/measurement/format.d.ts +54 -8
- package/dist/measurement/format.js +54 -3
- package/dist/measurement/format.js.map +1 -1
- package/dist/measurement/plan.d.ts +3 -3
- package/dist/measurement/plan.js +1 -1
- package/dist/measurement-grid.d.ts +8 -0
- package/dist/measurement-grid.js +4 -0
- package/dist/measurement-grid.js.map +1 -1
- package/dist/memory-bound.d.ts +6 -0
- package/dist/memory-bound.js +8 -0
- package/dist/memory-bound.js.map +1 -1
- package/dist/memory-budget.d.ts +39 -0
- package/dist/memory-budget.js +32 -0
- package/dist/memory-budget.js.map +1 -0
- package/dist/probe-judge.js +22 -9
- package/dist/probe-judge.js.map +1 -1
- package/dist/probe-merge.js +6 -5
- package/dist/probe-merge.js.map +1 -1
- package/dist/probe-output-fixtures.d.ts +6 -0
- package/dist/probe-output-fixtures.js +8 -0
- package/dist/probe-output-fixtures.js.map +1 -1
- package/dist/probe-output.d.ts +4 -2
- package/dist/probe-output.js +2 -1
- package/dist/probe-output.js.map +1 -1
- package/dist/probe-runner.js +6 -3
- package/dist/probe-runner.js.map +1 -1
- package/dist/qualification-record.d.ts +26 -2
- package/dist/qualification-record.js +17 -18
- package/dist/qualification-record.js.map +1 -1
- package/dist/qualify-declarations.d.ts +30 -11
- package/dist/qualify-declarations.js +38 -2
- package/dist/qualify-declarations.js.map +1 -1
- package/dist/qualify-sync.js +18 -4
- package/dist/qualify-sync.js.map +1 -1
- package/package.json +1 -1
- package/src/clap-qualify.ts +8 -1
- package/src/direct-limit.ts +68 -0
- package/src/host-admission.ts +15 -2
- package/src/host-profiles.ts +17 -1
- package/src/hosting-codes.generated.ts +10 -0
- package/src/hosting-suitability.ts +105 -11
- package/src/index.ts +1 -0
- package/src/measurement/format.ts +97 -3
- package/src/measurement/plan.ts +3 -3
- package/src/measurement-grid.ts +5 -0
- package/src/memory-bound.ts +10 -0
- package/src/memory-budget.ts +55 -0
- package/src/probe-judge.ts +21 -8
- package/src/probe-merge.ts +6 -5
- package/src/probe-output-fixtures.ts +10 -1
- package/src/probe-output.ts +5 -2
- package/src/probe-runner.ts +5 -3
- package/src/qualification-record.ts +22 -4
- package/src/qualify-declarations.ts +49 -3
- package/src/qualify-sync.ts +18 -3
- package/tools/_declarations.py +1 -0
- package/tools/benchmark.py +25 -2
- package/tools/gen-python-declarations.mjs +1 -0
- package/tools/lv2-measure.mjs +7 -4
- package/tools/lv2_presets.py +1 -1
- package/tools/mod-host-admit.mjs +2 -1
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
* means isolated.
|
|
16
16
|
*/
|
|
17
17
|
import { type SuitabilityKind, type SuitabilityRating } from "./rating.js";
|
|
18
|
-
import type { FeaturesMeasurement, LifecycleReading, RtSafetyMeasurement, SoakReading, ThreadReading } from "./measurement/format.js";
|
|
18
|
+
import type { FeaturesMeasurement, LifecycleReading, RtSafetyMeasurement, SoakAtRate, SoakReading, ThreadReading } from "./measurement/format.js";
|
|
19
|
+
import { type MemoryReadings } from "./memory-budget.js";
|
|
19
20
|
/**
|
|
20
21
|
* What a reason may interpolate: wire-serialisable scalars only. Structurally the same record as
|
|
21
22
|
* the console's coded-refusal parameters, so a consumer passes it straight through.
|
|
@@ -59,13 +60,15 @@ export interface QualifiedPlugin {
|
|
|
59
60
|
readonly lv2Features?: PluginLv2Features;
|
|
60
61
|
/** The plugin's binary format, the scan's declared fact (CLAP spec §6); absent reads `lv2`. */
|
|
61
62
|
readonly format?: "lv2" | "clap";
|
|
63
|
+
/** What one instance holds: per rate, or per rate AND quantum as {@link cpuCost} has it. A missing cell is unmeasured. */
|
|
64
|
+
readonly memory?: MemoryReadings;
|
|
62
65
|
/** What the CLAP prober (`native/clap-qualify`) measured, for a `clap` plugin (CLAP spec §3). */
|
|
63
66
|
readonly clap?: PluginClapMeasurement;
|
|
64
67
|
}
|
|
65
68
|
/** Where a plugin's audio is actually processed. */
|
|
66
69
|
export type HostingPath = "in-process" | "isolated";
|
|
67
|
-
/** The dimensions that decide a host
|
|
68
|
-
export type HostingDimension = "stability" | "rtSafety" | "features" | "cost" | "latency" | "topology";
|
|
70
|
+
/** The dimensions that decide a host, folded worst-wins. */
|
|
71
|
+
export type HostingDimension = "stability" | "rtSafety" | "features" | "cost" | "latency" | "topology" | "memory";
|
|
69
72
|
export { OMX_CLAP_HOST_EXTENSIONS, OMX_INPROCESS_FEATURES, OPENMIXER_CONSOLE_PROFILE, type HostProfile } from "./host-profiles.js";
|
|
70
73
|
import { type HostProfile } from "./host-profiles.js";
|
|
71
74
|
/** The catalog key of a CLAP plugin is `urn:clap:<clap_plugin_descriptor.id>` (CLAP spec §6). */
|
|
@@ -285,12 +288,14 @@ export declare function assertHostingOverride(value: unknown, where: string): "i
|
|
|
285
288
|
*/
|
|
286
289
|
export declare function deadAgainstBest(levelDbfs: number, bestDbfs: number, policy: HostingPolicy): boolean;
|
|
287
290
|
/** The classes of soak failure, as the strings `failures` is built from. */
|
|
288
|
-
export type SoakFailureKind = "died" | "non-finite" | "dead" | "mostly-silent" | "startup-blast" | "timed-out";
|
|
291
|
+
export type SoakFailureKind = "died" | "non-finite" | "dead" | "mostly-silent" | "startup-blast" | "timed-out" | "leaks";
|
|
289
292
|
export interface SoakFailure {
|
|
290
293
|
readonly rate: number;
|
|
291
294
|
readonly kind: SoakFailureKind;
|
|
292
295
|
/** Extra words for the string form, e.g. `20dBFS`. */
|
|
293
296
|
readonly detail?: string;
|
|
297
|
+
/** For `leaks`: what the growth was and the ceiling it passed, which the reason carries. */
|
|
298
|
+
readonly params?: CodedRefusalParams;
|
|
294
299
|
}
|
|
295
300
|
/** A soak's reading: what voided it, if anything, and what it proved when nothing did. */
|
|
296
301
|
export interface SoakFindings {
|
|
@@ -302,9 +307,15 @@ export interface SoakFindings {
|
|
|
302
307
|
* cut, a fact about the harness: it voids the soak but is never a failure of the plugin. */
|
|
303
308
|
readonly failed: readonly SoakFailure[];
|
|
304
309
|
readonly ratesTested: number;
|
|
305
|
-
/** The largest RSS growth across rates, for the record;
|
|
310
|
+
/** The largest RSS growth across rates, warm-up included, for the record; `leaks` is what is judged. */
|
|
306
311
|
readonly rssGrowthKb: number;
|
|
307
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* The growth a rate's soak is still showing, in KB per minute of audio: from halfway past warm-up to its highest reading,
|
|
315
|
+
* so that a library that finishes loading a little late is not a leak and a leak of any size is. `undefined` when the soak
|
|
316
|
+
* did not reach those readings: not read as flat.
|
|
317
|
+
*/
|
|
318
|
+
export declare function soakGrowthKbPerMin(v: SoakAtRate): number | undefined;
|
|
308
319
|
/**
|
|
309
320
|
* Read a soak, rate by rate. A rate voids it if the plugin did not instantiate or died there,
|
|
310
321
|
* emitted a non-finite window, settled dead against its own best rate ({@link deadAgainstBest};
|
|
@@ -336,6 +347,19 @@ export declare function featureReasons(features: PluginLv2Features | undefined,
|
|
|
336
347
|
/** The host feeds MIDI input (an instrument host, §3a): a MIDI input is no caution there. */
|
|
337
348
|
instruments?: boolean): readonly HostingReason[];
|
|
338
349
|
export declare function hostingCostReasons(descriptor: Pick<QualifiedPlugin, "cpuCost">, options: HostingClassifyOptions, policy: HostingPolicy): readonly HostingReason[];
|
|
350
|
+
/**
|
|
351
|
+
* What a host's memory budget makes of a plugin. A host with no budget declared reads nothing here. Every cell the host
|
|
352
|
+
* runs is read; the worst stands, so a plugin is never read as fitting on the cell that happened to be measured. A missing
|
|
353
|
+
* figure is `unknown`, never a fit. Under a provisional budget a plugin below the ceiling is `conditional` with a code of its
|
|
354
|
+
* own, since the number it was held to was not measured on that kind of host; one above it is `unsuitable` and says the
|
|
355
|
+
* ceiling is provisional.
|
|
356
|
+
*/
|
|
357
|
+
export declare function hostingMemoryReasons(memory: MemoryReadings | undefined, profile: HostProfile,
|
|
358
|
+
/** The live rate and quantum, for a host whose budget names no cells of its own; absent, the cell its cost is read at. */
|
|
359
|
+
live?: {
|
|
360
|
+
readonly rate: number;
|
|
361
|
+
readonly quantum?: number;
|
|
362
|
+
}): readonly HostingReason[];
|
|
339
363
|
export declare function hostingLatencyReasons(descriptor: Pick<QualifiedPlugin, "latency">, handling?: HostProfile["latency"]): readonly HostingReason[];
|
|
340
364
|
export declare function hostingTopologyReasons(descriptor: Pick<QualifiedPlugin, "audioInputs" | "audioOutputs"> & Partial<Pick<QualifiedPlugin, "hasMidiIn">>, instruments?: boolean): readonly HostingReason[];
|
|
341
365
|
/**
|
|
@@ -362,7 +386,8 @@ export declare function clapFeatureReasons(clap: PluginClapMeasurement | undefin
|
|
|
362
386
|
/**
|
|
363
387
|
* The CLAP additions to `rtSafety` (CLAP spec §3): the interposer's counts are read by
|
|
364
388
|
* `rtSafetyReasons` exactly as for an LV2; these are the two violations only a CLAP can commit
|
|
365
|
-
* — a strict thread-check violation and a `CLAP_PROCESS_ERROR`
|
|
389
|
+
* — a strict thread-check violation (`conditional`: the plugin runs isolated, #196) and a `CLAP_PROCESS_ERROR`
|
|
390
|
+
* (`unsuitable`). A sweep
|
|
366
391
|
* that made no `process()` call measured nothing.
|
|
367
392
|
*/
|
|
368
393
|
export declare function clapRtReasons(clap: PluginClapMeasurement | undefined): readonly HostingReason[];
|
|
@@ -370,8 +395,9 @@ export declare function clapRtReasons(clap: PluginClapMeasurement | undefined):
|
|
|
370
395
|
* The rtSafety reasons of the note sweep, for a plugin with `noteInputs` note inputs: none for a
|
|
371
396
|
* plugin that takes no notes; `unknown` when it takes notes and was not played under the
|
|
372
397
|
* interposer (an instrument is cheap and clean at rest, so the parameter sweep alone says nothing
|
|
373
|
-
* about a voice); `
|
|
374
|
-
*
|
|
398
|
+
* about a voice); `conditional` (isolated in the pin: its own worker, never refused) on any
|
|
399
|
+
* allocation, lock or syscall while it was played; `unsuitable` on a process error only (a crash);
|
|
400
|
+
* `suitable` on a clean count.
|
|
375
401
|
*/
|
|
376
402
|
export declare function noteSweepReasons(sweep: PluginNoteSweepMeasurement | undefined, noteInputs: number): readonly HostingReason[];
|
|
377
403
|
/**
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* means isolated.
|
|
18
18
|
*/
|
|
19
19
|
import { RATING_SEVERITY, worstRating, } from "./rating.js";
|
|
20
|
+
import { memoryWithinBudget } from "./memory-budget.js";
|
|
20
21
|
// The in-process feature list and the CLAP host extensions are the `openmixer-console` host
|
|
21
22
|
// profile's; they live with the profiles (`host-profiles.ts`) and are re-exported here, where the
|
|
22
23
|
// native test (`lv2-inprocess-features.sh`) and the contract-limits render read them.
|
|
@@ -195,6 +196,17 @@ export function deadAgainstBest(levelDbfs, bestDbfs, policy) {
|
|
|
195
196
|
/** A soak rate that settled or opened ABOVE this is blasting: it voids the soak, and a rate
|
|
196
197
|
* settled above it cannot be the reference, or every sane rate reads dead against it. */
|
|
197
198
|
const BLAST_DBFS = 6;
|
|
199
|
+
/**
|
|
200
|
+
* The growth a rate's soak is still showing, in KB per minute of audio: from halfway past warm-up to its highest reading,
|
|
201
|
+
* so that a library that finishes loading a little late is not a leak and a leak of any size is. `undefined` when the soak
|
|
202
|
+
* did not reach those readings: not read as flat.
|
|
203
|
+
*/
|
|
204
|
+
export function soakGrowthKbPerMin(v) {
|
|
205
|
+
const { rssMidKb, midSeconds, rssMaxKb, seconds } = v;
|
|
206
|
+
if (rssMidKb === undefined || midSeconds === undefined || rssMaxKb === undefined || seconds === undefined || seconds <= midSeconds)
|
|
207
|
+
return undefined;
|
|
208
|
+
return (Math.max(rssMaxKb - rssMidKb, 0) * 60) / (seconds - midSeconds);
|
|
209
|
+
}
|
|
198
210
|
/**
|
|
199
211
|
* Read a soak, rate by rate. A rate voids it if the plugin did not instantiate or died there,
|
|
200
212
|
* emitted a non-finite window, settled dead against its own best rate ({@link deadAgainstBest};
|
|
@@ -238,8 +250,23 @@ export function soakFindings(soak, policy) {
|
|
|
238
250
|
continue;
|
|
239
251
|
}
|
|
240
252
|
const first = v.firstRmsDbfs ?? -99;
|
|
241
|
-
if (first > BLAST_DBFS)
|
|
253
|
+
if (first > BLAST_DBFS) {
|
|
242
254
|
failed.push({ rate, kind: "startup-blast", detail: `${first.toFixed(0)}dBFS` });
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
const growth = soakGrowthKbPerMin(v);
|
|
258
|
+
if (growth !== undefined && growth > policy.memoryGrowthKbPerMinCeiling) {
|
|
259
|
+
failed.push({
|
|
260
|
+
rate,
|
|
261
|
+
kind: "leaks",
|
|
262
|
+
detail: `${growth.toFixed(0)}KB/min`,
|
|
263
|
+
params: {
|
|
264
|
+
growthKbPerMin: Math.round(growth),
|
|
265
|
+
ceilingKbPerMin: policy.memoryGrowthKbPerMinCeiling,
|
|
266
|
+
...(policy.memoryGrowthCeilingProvisional ? { provisional: "yes" } : {}),
|
|
267
|
+
},
|
|
268
|
+
});
|
|
269
|
+
}
|
|
243
270
|
}
|
|
244
271
|
const failures = failed.map((f) => `${f.kind}@${f.rate}${f.detail === undefined ? "" : `(${f.detail})`}`);
|
|
245
272
|
return {
|
|
@@ -304,6 +331,7 @@ rate) {
|
|
|
304
331
|
out.push(reason("stability", "objective", "unsuitable", HOSTING_CODE.stabilitySoakFailedAtRate, {
|
|
305
332
|
failure: f.kind,
|
|
306
333
|
rate: f.rate,
|
|
334
|
+
...f.params,
|
|
307
335
|
}));
|
|
308
336
|
}
|
|
309
337
|
const spawned = sharesProcess ? threadsSpawned(m.threads) : 0;
|
|
@@ -348,9 +376,11 @@ export function rtSafetyReasons(m) {
|
|
|
348
376
|
if (m.variable === true) {
|
|
349
377
|
return [reason("rtSafety", "objective", "unknown", HOSTING_CODE.rtSafetyNotReproducible)];
|
|
350
378
|
}
|
|
379
|
+
// RT-unsafe is a hosting mode, never a refusal (#196): the plugin loads and runs in a worker of its own, never
|
|
380
|
+
// grouped with RT-safe plugins; conditional is isolated in the pin. Crashes, hangs and load failures stay unsuitable.
|
|
351
381
|
if (rtSafetyViolating(m)) {
|
|
352
382
|
return [
|
|
353
|
-
reason("rtSafety", "objective", "
|
|
383
|
+
reason("rtSafety", "objective", "conditional", HOSTING_CODE.rtSafetyViolations, {
|
|
354
384
|
allocations: m.allocationsInRun ?? 0,
|
|
355
385
|
syscalls: m.syscallsInRun ?? 0,
|
|
356
386
|
locks: m.locksInRun ?? 0,
|
|
@@ -450,6 +480,57 @@ export function hostingCostReasons(descriptor, options, policy) {
|
|
|
450
480
|
}
|
|
451
481
|
return out;
|
|
452
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* What a host's memory budget makes of a plugin. A host with no budget declared reads nothing here. Every cell the host
|
|
485
|
+
* runs is read; the worst stands, so a plugin is never read as fitting on the cell that happened to be measured. A missing
|
|
486
|
+
* figure is `unknown`, never a fit. Under a provisional budget a plugin below the ceiling is `conditional` with a code of its
|
|
487
|
+
* own, since the number it was held to was not measured on that kind of host; one above it is `unsuitable` and says the
|
|
488
|
+
* ceiling is provisional.
|
|
489
|
+
*/
|
|
490
|
+
export function hostingMemoryReasons(memory, profile,
|
|
491
|
+
/** The live rate and quantum, for a host whose budget names no cells of its own; absent, the cell its cost is read at. */
|
|
492
|
+
live) {
|
|
493
|
+
const budget = profile.cost.memory;
|
|
494
|
+
if (budget === undefined)
|
|
495
|
+
return [];
|
|
496
|
+
const provisional = budget.provisional === true ? { provisional: "yes" } : {};
|
|
497
|
+
const cells = budget.cells ?? [{ rate: live?.rate ?? profile.cost.rate, quantum: live?.quantum ?? profile.cost.quantum }];
|
|
498
|
+
const reads = cells.map((c) => ({ ...c, read: memoryWithinBudget(memoryAt(memory, c.rate, c.quantum), budget) }));
|
|
499
|
+
const above = reads.find((r) => r.read.outcome === "above");
|
|
500
|
+
if (above !== undefined && above.read.outcome === "above") {
|
|
501
|
+
return [
|
|
502
|
+
reason("memory", "objective", "unsuitable", HOSTING_CODE.memoryAboveCeiling, {
|
|
503
|
+
rate: above.rate,
|
|
504
|
+
quantum: above.quantum,
|
|
505
|
+
figure: above.read.figure,
|
|
506
|
+
kb: above.read.kb,
|
|
507
|
+
ceilingKb: above.read.ceilingKb,
|
|
508
|
+
...provisional,
|
|
509
|
+
}),
|
|
510
|
+
];
|
|
511
|
+
}
|
|
512
|
+
const unmeasured = reads.find((r) => r.read.outcome === "unmeasured");
|
|
513
|
+
if (unmeasured !== undefined && unmeasured.read.outcome === "unmeasured") {
|
|
514
|
+
return [
|
|
515
|
+
reason("memory", "objective", "unknown", HOSTING_CODE.memoryUnmeasured, {
|
|
516
|
+
rate: unmeasured.rate,
|
|
517
|
+
quantum: unmeasured.quantum,
|
|
518
|
+
...(unmeasured.read.unmeasuredReason === undefined ? {} : { unmeasuredReason: unmeasured.read.unmeasuredReason }),
|
|
519
|
+
}),
|
|
520
|
+
];
|
|
521
|
+
}
|
|
522
|
+
const first = reads[0].read;
|
|
523
|
+
const params = first.outcome === "within" ? { perInstanceKb: first.perInstanceKb, firstInstanceKb: first.firstInstanceKb, ceilingKb: budget.perInstanceKb, consoleCeilingKb: budget.perConsoleKb } : {};
|
|
524
|
+
return budget.provisional === true
|
|
525
|
+
? [reason("memory", "objective", "conditional", HOSTING_CODE.memoryWithinProvisionalCeiling, { ...params, ...provisional })]
|
|
526
|
+
: [reason("memory", "objective", "suitable", HOSTING_CODE.memoryWithinCeiling, params)];
|
|
527
|
+
}
|
|
528
|
+
/** The footprint at a rate and quantum: a grid's cell when the plugin has a grid, else its rate's. */
|
|
529
|
+
function memoryAt(memory, rate, quantum) {
|
|
530
|
+
if (memory?.perRateQuantum !== undefined)
|
|
531
|
+
return memory.perRateQuantum[costPointKey(rate, quantum)];
|
|
532
|
+
return memory?.perRate?.[String(rate)];
|
|
533
|
+
}
|
|
453
534
|
export function hostingLatencyReasons(descriptor, handling = "compensated") {
|
|
454
535
|
const latency = descriptor.latency;
|
|
455
536
|
// Fails closed, like every other dimension: a plugin with no latency figure at all, or
|
|
@@ -586,7 +667,8 @@ export function clapFeatureReasons(clap, profile = OPENMIXER_CONSOLE_PROFILE, sc
|
|
|
586
667
|
/**
|
|
587
668
|
* The CLAP additions to `rtSafety` (CLAP spec §3): the interposer's counts are read by
|
|
588
669
|
* `rtSafetyReasons` exactly as for an LV2; these are the two violations only a CLAP can commit
|
|
589
|
-
* — a strict thread-check violation and a `CLAP_PROCESS_ERROR`
|
|
670
|
+
* — a strict thread-check violation (`conditional`: the plugin runs isolated, #196) and a `CLAP_PROCESS_ERROR`
|
|
671
|
+
* (`unsuitable`). A sweep
|
|
590
672
|
* that made no `process()` call measured nothing.
|
|
591
673
|
*/
|
|
592
674
|
export function clapRtReasons(clap) {
|
|
@@ -595,7 +677,7 @@ export function clapRtReasons(clap) {
|
|
|
595
677
|
}
|
|
596
678
|
const out = [];
|
|
597
679
|
if (clap.threadViolations > 0) {
|
|
598
|
-
out.push(reason("rtSafety", "objective", "
|
|
680
|
+
out.push(reason("rtSafety", "objective", "conditional", HOSTING_CODE.clapThreadViolation, { violations: clap.threadViolations }));
|
|
599
681
|
}
|
|
600
682
|
if (clap.processErrors > 0) {
|
|
601
683
|
out.push(reason("rtSafety", "objective", "unsuitable", HOSTING_CODE.clapProcessError, { errors: clap.processErrors }));
|
|
@@ -606,8 +688,9 @@ export function clapRtReasons(clap) {
|
|
|
606
688
|
* The rtSafety reasons of the note sweep, for a plugin with `noteInputs` note inputs: none for a
|
|
607
689
|
* plugin that takes no notes; `unknown` when it takes notes and was not played under the
|
|
608
690
|
* interposer (an instrument is cheap and clean at rest, so the parameter sweep alone says nothing
|
|
609
|
-
* about a voice); `
|
|
610
|
-
*
|
|
691
|
+
* about a voice); `conditional` (isolated in the pin: its own worker, never refused) on any
|
|
692
|
+
* allocation, lock or syscall while it was played; `unsuitable` on a process error only (a crash);
|
|
693
|
+
* `suitable` on a clean count.
|
|
611
694
|
*/
|
|
612
695
|
export function noteSweepReasons(sweep, noteInputs) {
|
|
613
696
|
if (noteInputs === 0)
|
|
@@ -618,7 +701,7 @@ export function noteSweepReasons(sweep, noteInputs) {
|
|
|
618
701
|
}
|
|
619
702
|
const out = [];
|
|
620
703
|
if (sweep.allocationsInRun + sweep.locksInRun + sweep.syscallsInRun > 0) {
|
|
621
|
-
out.push(reason("rtSafety", "objective", "
|
|
704
|
+
out.push(reason("rtSafety", "objective", "conditional", HOSTING_CODE.rtSafetyNotesViolations, {
|
|
622
705
|
allocations: sweep.allocationsInRun,
|
|
623
706
|
syscalls: sweep.syscallsInRun,
|
|
624
707
|
locks: sweep.locksInRun,
|
|
@@ -658,6 +741,7 @@ export function classifyPluginHosting(descriptor, options) {
|
|
|
658
741
|
...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.clap?.noteInputs ?? (descriptor.hasMidiIn ? 1 : 0)) : []),
|
|
659
742
|
...clapFeatureReasons(descriptor.clap, profile, descriptor.hasMidiIn),
|
|
660
743
|
...hostingCostReasons(descriptor, options, policy),
|
|
744
|
+
...hostingMemoryReasons(descriptor.memory, profile, options),
|
|
661
745
|
...clapLatencyReasons(descriptor.clap),
|
|
662
746
|
...clapTopologyReasons(descriptor.clap, profile.instruments),
|
|
663
747
|
]
|
|
@@ -667,6 +751,7 @@ export function classifyPluginHosting(descriptor, options) {
|
|
|
667
751
|
...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.hasMidiIn ? 1 : 0) : []),
|
|
668
752
|
...featureReasons(descriptor.lv2Features, descriptor, profile.lv2Features, options.quantum !== undefined, profile.instruments),
|
|
669
753
|
...hostingCostReasons(descriptor, options, policy),
|
|
754
|
+
...hostingMemoryReasons(descriptor.memory, profile, options),
|
|
670
755
|
...hostingLatencyReasons(descriptor, profile.latency),
|
|
671
756
|
...hostingTopologyReasons(descriptor, profile.instruments),
|
|
672
757
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosting-suitability.js","sourceRoot":"","sources":["../src/hosting-suitability.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hosting-suitability.js","sourceRoot":"","sources":["../src/hosting-suitability.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from "./tool-paths.js";
|
|
|
8
8
|
export * from "./rating.js";
|
|
9
9
|
export * from "./host-profiles.js";
|
|
10
10
|
export * from "./hosting-suitability.js";
|
|
11
|
+
export * from "./memory-budget.js";
|
|
11
12
|
export * from "./hosting-codes.js";
|
|
12
13
|
export * from "./loader.js";
|
|
13
14
|
export * from "./lv2-loader.js";
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from "./tool-paths.js";
|
|
|
10
10
|
export * from "./rating.js";
|
|
11
11
|
export * from "./host-profiles.js";
|
|
12
12
|
export * from "./hosting-suitability.js";
|
|
13
|
+
export * from "./memory-budget.js";
|
|
13
14
|
export * from "./hosting-codes.js";
|
|
14
15
|
export * from "./loader.js";
|
|
15
16
|
export * from "./lv2-loader.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;GAGG;AACH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;GAGG;AACH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
@@ -51,10 +51,12 @@ export declare const MEASUREMENT_FORMAT_MAJOR = 1;
|
|
|
51
51
|
* {@link RtSafetyMeasurement}, {@link FeaturesMeasurement} — which a 1.0 reader skips.
|
|
52
52
|
* `1.2` added the verdicts per host profile; `1.3` the {@link IntegrityMeasurement} block; `1.4` the notes
|
|
53
53
|
* an instrument's cost was measured with ({@link CostAtRate.voices}); `1.5` the note sweep an instrument's
|
|
54
|
-
* `run()` was counted under ({@link RtSafetyMeasurement.noteSweep}).
|
|
55
|
-
|
|
54
|
+
* `run()` was counted under ({@link RtSafetyMeasurement.noteSweep}); `1.6` an instance's memory footprint
|
|
55
|
+
* beside the cost reading ({@link CostAtRate.memory}), the soak's readings past warm-up
|
|
56
|
+
* ({@link SoakAtRate.rssAfterWarmupKb}), and a host profile's memory budget ({@link HostBudget.memory}). */
|
|
57
|
+
export declare const MEASUREMENT_FORMAT_MINOR = 6;
|
|
56
58
|
/** The version string this build writes, e.g. `"1.0"`. */
|
|
57
|
-
export declare const MEASUREMENT_FORMAT_VERSION = "1.
|
|
59
|
+
export declare const MEASUREMENT_FORMAT_VERSION = "1.6";
|
|
58
60
|
/** A parsed `formatVersion`. */
|
|
59
61
|
export interface FormatVersion {
|
|
60
62
|
readonly major: number;
|
|
@@ -237,6 +239,27 @@ export interface VoicesHeld {
|
|
|
237
239
|
readonly basis: VoiceBasis;
|
|
238
240
|
readonly capacity?: number;
|
|
239
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* 1.6: what one instance holds at this rate: how far the resident set of a process of its own grew from before the
|
|
244
|
+
* plugin loaded, in KB, at each step of its life. Raw readings, never a conclusion: `memory-budget.ts` reads them against
|
|
245
|
+
* a budget. `secondInstanceKb` is what a second instance added once it had done the same, so what one instance costs is
|
|
246
|
+
* told from what every instance shares (a sample library, a wavetable, an IR). `notesHeldKb` and its `basis` are an
|
|
247
|
+
* instrument's, at the notes the cost arm holds.
|
|
248
|
+
*
|
|
249
|
+
* A figure not taken is absent, never 0; `unmeasuredReason` (an {@link ../vocabulary.UNMEASURED_TERMS} code) says why
|
|
250
|
+
* one that should be there is not, and may stand beside the figures that were taken.
|
|
251
|
+
*/
|
|
252
|
+
export interface MemoryFootprint {
|
|
253
|
+
readonly afterInstantiateKb?: number;
|
|
254
|
+
readonly afterActivateKb?: number;
|
|
255
|
+
/** Activated, after processing: what a long-running host carries. */
|
|
256
|
+
readonly atRestKb?: number;
|
|
257
|
+
readonly notesHeldKb?: number;
|
|
258
|
+
readonly secondInstanceKb?: number;
|
|
259
|
+
readonly basis?: VoiceBasis;
|
|
260
|
+
readonly unmeasuredReason?: string;
|
|
261
|
+
readonly unmeasuredDetail?: string;
|
|
262
|
+
}
|
|
240
263
|
/** One rate's cost reading. Per SAMPLE, so it is independent of the block size. */
|
|
241
264
|
export interface CostAtRate {
|
|
242
265
|
readonly nsPerSampleMedian: number;
|
|
@@ -255,6 +278,8 @@ export interface CostAtRate {
|
|
|
255
278
|
readonly silentOutput?: boolean;
|
|
256
279
|
/** 1.4: for an instrument, the notes held while it was timed. Absent for an effect. */
|
|
257
280
|
readonly voices?: VoicesHeld;
|
|
281
|
+
/** 1.6: this instance's memory footprint at the same rate. */
|
|
282
|
+
readonly memory?: MemoryFootprint;
|
|
258
283
|
}
|
|
259
284
|
/** Everything one run learned about one plugin's CPU cost. */
|
|
260
285
|
export interface CostMeasurement {
|
|
@@ -308,6 +333,12 @@ export interface SoakAtRate {
|
|
|
308
333
|
readonly rssStartKb?: number;
|
|
309
334
|
readonly rssMaxKb?: number;
|
|
310
335
|
readonly rssGrowthKb?: number;
|
|
336
|
+
/** 1.6: the resident set past the settling `firstRmsDbfs` skips, and the audio-seconds to reach it. */
|
|
337
|
+
readonly rssAfterWarmupKb?: number;
|
|
338
|
+
readonly warmupSeconds?: number;
|
|
339
|
+
/** 1.6: the resident set halfway from there to the end, so that growth which stopped is told from growth still climbing. */
|
|
340
|
+
readonly rssMidKb?: number;
|
|
341
|
+
readonly midSeconds?: number;
|
|
311
342
|
}
|
|
312
343
|
/** A continuous soak, per rate, with whether the controls were swept while it ran. */
|
|
313
344
|
export interface SoakReading {
|
|
@@ -431,6 +462,24 @@ export interface HostBudget {
|
|
|
431
462
|
readonly coreFractionCeiling: number;
|
|
432
463
|
readonly rate: number;
|
|
433
464
|
readonly quantum: number;
|
|
465
|
+
/** 1.6: what this host gives its plugins' memory; absent is a host with no budget declared, never a budget of 0. */
|
|
466
|
+
readonly memory?: HostMemoryBudget;
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* 1.6: a host's memory budget, and where it is read. `perInstanceKb` bounds what one more instance costs;
|
|
470
|
+
* `perConsoleKb` bounds all the plugins of the host, so the most one plugin may take with what its instances share.
|
|
471
|
+
* `provisional` says the numbers were not measured on that kind of host: a verdict that rests on them says so and does
|
|
472
|
+
* not say the plugin fits. `cells` are the rates and quanta the host runs, each judged, where it runs more than the one
|
|
473
|
+
* its cost is read at.
|
|
474
|
+
*/
|
|
475
|
+
export interface HostMemoryBudget {
|
|
476
|
+
readonly perInstanceKb: number;
|
|
477
|
+
readonly perConsoleKb: number;
|
|
478
|
+
readonly provisional?: boolean;
|
|
479
|
+
readonly cells?: readonly {
|
|
480
|
+
readonly rate: number;
|
|
481
|
+
readonly quantum: number;
|
|
482
|
+
}[];
|
|
434
483
|
}
|
|
435
484
|
/**
|
|
436
485
|
* A HOST PROFILE: the host a verdict was judged
|
|
@@ -477,11 +526,6 @@ export type HostProfileRead = {
|
|
|
477
526
|
ok: false;
|
|
478
527
|
problem: string;
|
|
479
528
|
};
|
|
480
|
-
/**
|
|
481
|
-
* Read a host profile — a document's, or a project's own file. Every field is required and
|
|
482
|
-
* typed; a missing or mistyped one is refused by name, and a host the reader was not told about
|
|
483
|
-
* is never filled in from a default.
|
|
484
|
-
*/
|
|
485
529
|
export declare function readHostProfile(value: unknown): HostProfileRead;
|
|
486
530
|
/** A refusal to read a document, with the reason in a form a UI can render. */
|
|
487
531
|
export interface MeasurementReadFailure {
|
|
@@ -519,6 +563,8 @@ export interface MeasurementReadSuccess {
|
|
|
519
563
|
}
|
|
520
564
|
/** The outcome of {@link readMeasurementDocument}. */
|
|
521
565
|
export type MeasurementReadResult = MeasurementReadSuccess | MeasurementReadFailure;
|
|
566
|
+
/** A memory footprint, or `undefined` unless it carries at least one figure or a reason. */
|
|
567
|
+
export declare function readMemoryFootprint(value: unknown): MemoryFootprint | undefined;
|
|
522
568
|
/** The notes held, or `undefined` unless the count and a known basis are there. */
|
|
523
569
|
export declare function readVoicesHeld(value: unknown): VoicesHeld | undefined;
|
|
524
570
|
/** A lifecycle reading, or `undefined` unless all three counts are there. */
|