1use std::fmt;
7use std::str::FromStr;
8
9use serde::{Deserialize, Serialize};
10use sha2::{Digest, Sha256};
11
12use crate::ResumeBuildId;
13
14#[derive(Clone, Copy, Debug, Eq, PartialEq)]
16pub struct ProductionOptimizationDiagnosticReservation {
17 pub code: &'static str,
18 pub meaning: &'static str,
19}
20
21pub const PRODUCTION_OPTIMIZATION_DIAGNOSTIC_RESERVATIONS:
23 [ProductionOptimizationDiagnosticReservation; 16] = [
24 ProductionOptimizationDiagnosticReservation {
25 code: "PSC1112",
26 meaning: "Invalid optimization root",
27 },
28 ProductionOptimizationDiagnosticReservation {
29 code: "PSC1113",
30 meaning: "Invalid program fingerprint",
31 },
32 ProductionOptimizationDiagnosticReservation {
33 code: "PSC1114",
34 meaning: "Unsafe program deduplication",
35 },
36 ProductionOptimizationDiagnosticReservation {
37 code: "PSC1115",
38 meaning: "Invalid constant pool entry",
39 },
40 ProductionOptimizationDiagnosticReservation {
41 code: "PSC1116",
42 meaning: "Invalid shared chunk candidate",
43 },
44 ProductionOptimizationDiagnosticReservation {
45 code: "PSC1117",
46 meaning: "Production chunk cycle",
47 },
48 ProductionOptimizationDiagnosticReservation {
49 code: "PSC1118",
50 meaning: "Invalid runtime ordinal table",
51 },
52 ProductionOptimizationDiagnosticReservation {
53 code: "PSC1119",
54 meaning: "Production artifact mismatch",
55 },
56 ProductionOptimizationDiagnosticReservation {
57 code: "PSC1120",
58 meaning: "Unsafe binding write coalescing",
59 },
60 ProductionOptimizationDiagnosticReservation {
61 code: "PSC1121",
62 meaning: "Missing runtime cleanup",
63 },
64 ProductionOptimizationDiagnosticReservation {
65 code: "PSC1122",
66 meaning: "Invalid runtime cleanup order",
67 },
68 ProductionOptimizationDiagnosticReservation {
69 code: "PSC1123",
70 meaning: "Detached activation target",
71 },
72 ProductionOptimizationDiagnosticReservation {
73 code: "PSC1124",
74 meaning: "Invalid production failure record",
75 },
76 ProductionOptimizationDiagnosticReservation {
77 code: "PSC1125",
78 meaning: "Optimization report mismatch",
79 },
80 ProductionOptimizationDiagnosticReservation {
81 code: "PSC1126",
82 meaning: "Production budget regression",
83 },
84 ProductionOptimizationDiagnosticReservation {
85 code: "PSC1127",
86 meaning: "Production determinism failure",
87 },
88];
89
90pub const PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_START: u32 = 1385;
92pub const PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_END: u32 = 1512;
94
95pub struct ProductionOptimizationPolicyV1;
99
100impl ProductionOptimizationPolicyV1 {
101 pub const SHARED_CHUNK_MIN_ROOT_COUNT: usize = 2;
102 pub const SHARED_CHUNK_MIN_PROGRAM_COUNT: usize = 1;
103 pub const SHARED_CHUNK_MIN_CANONICAL_BYTES: usize = 192;
104 pub const SHARED_CHUNK_MIN_NET_SAVED_BYTES: usize = 256;
105 pub const SHARED_CHUNK_MAX_DEPENDENCY_DEPTH: usize = 1;
106 pub const INLINE_LITERAL_MAX_UTF8_BYTES: usize = 24;
107 pub const CONSTANT_POOL_MIN_REUSE_COUNT: usize = 2;
108}
109
110#[derive(Clone, Copy, Debug, Eq, PartialEq)]
112pub struct ProductionOptimizationIdentityParseError;
113
114impl fmt::Display for ProductionOptimizationIdentityParseError {
115 fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
116 formatter.write_str("invalid production optimization identity")
117 }
118}
119
120impl std::error::Error for ProductionOptimizationIdentityParseError {}
121
122macro_rules! optimization_id {
123 ($name:ident) => {
124 #[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
125 #[serde(transparent)]
126 pub struct $name(String);
127
128 impl $name {
129 #[must_use]
130 pub fn as_str(&self) -> &str {
131 &self.0
132 }
133 }
134
135 impl fmt::Display for $name {
136 fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
137 self.0.fmt(formatter)
138 }
139 }
140 };
141}
142
143optimization_id!(OptimizationPolicyId);
144optimization_id!(ExecutableProgramFingerprint);
145optimization_id!(ConstantPoolEntryId);
146optimization_id!(RuntimeTableId);
147optimization_id!(ProductionArtifactId);
148optimization_id!(SharedChunkCandidateId);
149optimization_id!(ProductionChunkId);
150optimization_id!(OptimizationDecisionId);
151optimization_id!(OptimizationReportId);
152optimization_id!(BenchmarkFixtureId);
153optimization_id!(PerformanceBudgetId);
154
155impl OptimizationPolicyId {
156 pub const PRODUCTION_V1: &'static str = "optimization-policy:production-v1";
157
158 #[must_use]
159 pub fn production_v1() -> Self {
160 Self(Self::PRODUCTION_V1.to_string())
161 }
162}
163
164impl FromStr for OptimizationPolicyId {
165 type Err = ProductionOptimizationIdentityParseError;
166
167 fn from_str(value: &str) -> Result<Self, Self::Err> {
168 (value == Self::PRODUCTION_V1)
169 .then(|| Self(value.to_string()))
170 .ok_or(ProductionOptimizationIdentityParseError)
171 }
172}
173
174impl ExecutableProgramFingerprint {
175 #[must_use]
176 pub fn for_canonical_opcode_stream(stream: &[u8]) -> Self {
177 Self(format!("program-fingerprint:{}", canonical_hash(stream)))
178 }
179}
180
181impl ConstantPoolEntryId {
182 #[must_use]
183 pub fn for_canonical_value(type_tag: &str, canonical_value_bytes: &[u8]) -> Option<Self> {
184 canonical_label(type_tag).then(|| {
185 Self(format!(
186 "constant-pool:{type_tag}:{}",
187 canonical_hash(canonical_value_bytes)
188 ))
189 })
190 }
191}
192
193impl RuntimeTableId {
194 #[must_use]
195 pub fn for_artifact_table(artifact_kind: &str, table_kind: &str) -> Option<Self> {
196 (canonical_label(artifact_kind) && canonical_label(table_kind))
197 .then(|| Self(format!("runtime-table:{artifact_kind}:{table_kind}")))
198 }
199}
200
201impl ProductionArtifactId {
202 #[must_use]
203 pub fn for_canonical_packed_bytes(artifact_kind: &str, packed_bytes: &[u8]) -> Option<Self> {
204 canonical_label(artifact_kind).then(|| {
205 Self(format!(
206 "production-artifact:{artifact_kind}:{}",
207 canonical_hash(packed_bytes)
208 ))
209 })
210 }
211}
212
213impl SharedChunkCandidateId {
214 #[must_use]
215 pub fn for_roots_and_programs(
216 roots: &[String],
217 programs: &[ExecutableProgramFingerprint],
218 ) -> Option<Self> {
219 let roots = canonical_sorted(roots)?;
220 let programs =
221 canonical_sorted(&programs.iter().map(ToString::to_string).collect::<Vec<_>>())?;
222 Some(Self(format!(
223 "shared-chunk-candidate:{}",
224 canonical_hash(
225 format!(
226 "roots\n{}\nprograms\n{}",
227 roots.join("\n"),
228 programs.join("\n")
229 )
230 .as_bytes()
231 )
232 )))
233 }
234}
235
236impl ProductionChunkId {
237 #[must_use]
239 pub fn eager_runtime_v1() -> Self {
240 Self("production-chunk:eager:runtime-v1".to_string())
241 }
242
243 #[must_use]
244 pub fn for_activation_roots_and_programs(
245 chunk_kind: &str,
246 activation_roots: &[String],
247 programs: &[ExecutableProgramFingerprint],
248 ) -> Option<Self> {
249 let roots = canonical_sorted(activation_roots)?;
250 let programs = canonical_sorted_or_empty(
251 &programs.iter().map(ToString::to_string).collect::<Vec<_>>(),
252 )?;
253 canonical_label(chunk_kind).then(|| {
254 Self(format!(
255 "production-chunk:{chunk_kind}:{}",
256 canonical_hash(
257 format!(
258 "roots\n{}\nprograms\n{}",
259 roots.join("\n"),
260 programs.join("\n")
261 )
262 .as_bytes()
263 )
264 ))
265 })
266 }
267}
268
269impl OptimizationDecisionId {
270 #[must_use]
271 pub fn for_canonical_subject(optimization_kind: &str, subject_id: &str) -> Option<Self> {
272 (canonical_label(optimization_kind) && canonical_subject(subject_id)).then(|| {
273 Self(format!(
274 "optimization-decision:{optimization_kind}:{subject_id}"
275 ))
276 })
277 }
278}
279
280impl OptimizationReportId {
281 #[must_use]
282 pub fn for_resume_build_id(build_id: &ResumeBuildId) -> Self {
283 Self(format!("optimization-report:{build_id}"))
284 }
285}
286
287impl BenchmarkFixtureId {
288 #[must_use]
289 pub fn for_fixture_relative_path(path: &str) -> Option<Self> {
290 canonical_fixture_relative_path(path).then(|| Self(format!("benchmark-fixture:{path}")))
291 }
292}
293
294impl PerformanceBudgetId {
295 #[must_use]
296 pub fn for_metric(metric_name: &str) -> Option<Self> {
297 canonical_label(metric_name).then(|| Self(format!("performance-budget:{metric_name}:v1")))
298 }
299}
300
301macro_rules! prefixed_parse {
302 ($name:ident, $prefix:literal) => {
303 impl FromStr for $name {
304 type Err = ProductionOptimizationIdentityParseError;
305
306 fn from_str(value: &str) -> Result<Self, Self::Err> {
307 value
308 .strip_prefix($prefix)
309 .filter(|payload| !payload.is_empty())
310 .map(|_| Self(value.to_string()))
311 .ok_or(ProductionOptimizationIdentityParseError)
312 }
313 }
314 };
315}
316
317prefixed_parse!(ExecutableProgramFingerprint, "program-fingerprint:");
318prefixed_parse!(ConstantPoolEntryId, "constant-pool:");
319prefixed_parse!(RuntimeTableId, "runtime-table:");
320prefixed_parse!(ProductionArtifactId, "production-artifact:");
321prefixed_parse!(SharedChunkCandidateId, "shared-chunk-candidate:");
322prefixed_parse!(ProductionChunkId, "production-chunk:");
323prefixed_parse!(OptimizationDecisionId, "optimization-decision:");
324prefixed_parse!(OptimizationReportId, "optimization-report:resume-build:");
325prefixed_parse!(BenchmarkFixtureId, "benchmark-fixture:");
326prefixed_parse!(PerformanceBudgetId, "performance-budget:");
327
328#[derive(Clone, Debug, Eq, PartialEq)]
331pub struct ProductionOptimizationPolicy {
332 id: OptimizationPolicyId,
333}
334
335impl ProductionOptimizationPolicy {
336 #[must_use]
337 pub fn production_v1() -> Self {
338 Self {
339 id: OptimizationPolicyId::production_v1(),
340 }
341 }
342
343 #[must_use]
344 pub const fn id(&self) -> &OptimizationPolicyId {
345 &self.id
346 }
347}
348
349fn canonical_hash(bytes: &[u8]) -> String {
350 format!("{:x}", Sha256::digest(bytes))
351}
352
353fn canonical_label(value: &str) -> bool {
354 !value.is_empty()
355 && value.bytes().all(|byte| {
356 byte.is_ascii_lowercase() || byte.is_ascii_digit() || byte == b'-' || byte == b'_'
357 })
358}
359
360fn canonical_subject(value: &str) -> bool {
361 !value.is_empty() && !value.contains(['\n', '\r'])
362}
363
364fn canonical_fixture_relative_path(value: &str) -> bool {
365 !value.is_empty()
366 && !value.starts_with('/')
367 && !value.contains('\\')
368 && value
369 .split('/')
370 .all(|segment| !segment.is_empty() && segment != "." && segment != "..")
371}
372
373fn canonical_sorted(values: &[String]) -> Option<Vec<String>> {
374 (!values.is_empty() && values.iter().all(|value| canonical_subject(value)))
375 .then(|| {
376 let mut sorted = values.to_vec();
377 sorted.sort();
378 if sorted.windows(2).any(|pair| pair[0] == pair[1]) {
379 return Vec::new();
380 }
381 sorted
382 })
383 .filter(|values| !values.is_empty())
384}
385
386fn canonical_sorted_or_empty(values: &[String]) -> Option<Vec<String>> {
387 if !values.iter().all(|value| canonical_subject(value)) {
388 return None;
389 }
390 let mut sorted = values.to_vec();
391 sorted.sort();
392 (!sorted.windows(2).any(|pair| pair[0] == pair[1])).then_some(sorted)
393}
394
395#[cfg(test)]
396mod tests {
397 use super::{
398 BenchmarkFixtureId, ConstantPoolEntryId, ExecutableProgramFingerprint,
399 OptimizationDecisionId, OptimizationPolicyId, OptimizationReportId, PerformanceBudgetId,
400 ProductionArtifactId, ProductionChunkId, ProductionOptimizationPolicy,
401 ProductionOptimizationPolicyV1, RuntimeTableId, SharedChunkCandidateId,
402 PRODUCTION_OPTIMIZATION_DIAGNOSTIC_RESERVATIONS,
403 PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_END,
404 PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_START,
405 };
406 use crate::ResumeBuildId;
407 use std::str::FromStr;
408
409 #[test]
410 fn k0_reserves_phase_k_ranges_and_inert_policy_without_products() {
411 let codes = PRODUCTION_OPTIMIZATION_DIAGNOSTIC_RESERVATIONS
412 .iter()
413 .map(|reservation| reservation.code)
414 .collect::<Vec<_>>();
415 assert_eq!(codes.first(), Some(&"PSC1112"));
416 assert_eq!(codes.last(), Some(&"PSC1127"));
417 assert_eq!(codes.len(), 16);
418 assert_eq!(PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_START, 1385);
419 assert_eq!(PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_END, 1512);
420 assert_eq!(
421 PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_END
422 - PRODUCTION_OPTIMIZATION_INTEGRITY_RESERVATION_START
423 + 1,
424 128
425 );
426 assert_eq!(
427 ProductionOptimizationPolicyV1::SHARED_CHUNK_MIN_ROOT_COUNT,
428 2
429 );
430 assert_eq!(
431 ProductionOptimizationPolicyV1::SHARED_CHUNK_MIN_PROGRAM_COUNT,
432 1
433 );
434 assert_eq!(
435 ProductionOptimizationPolicyV1::SHARED_CHUNK_MIN_CANONICAL_BYTES,
436 192
437 );
438 assert_eq!(
439 ProductionOptimizationPolicyV1::SHARED_CHUNK_MIN_NET_SAVED_BYTES,
440 256
441 );
442 assert_eq!(
443 ProductionOptimizationPolicyV1::SHARED_CHUNK_MAX_DEPENDENCY_DEPTH,
444 1
445 );
446 assert_eq!(
447 ProductionOptimizationPolicyV1::INLINE_LITERAL_MAX_UTF8_BYTES,
448 24
449 );
450 assert_eq!(
451 ProductionOptimizationPolicyV1::CONSTANT_POOL_MIN_REUSE_COUNT,
452 2
453 );
454 }
455
456 #[test]
457 fn k1_optimization_identities_are_typed_canonical_and_order_independent() {
458 let policy = ProductionOptimizationPolicy::production_v1();
459 assert_eq!(policy.id(), &OptimizationPolicyId::production_v1());
460 assert_eq!(policy.id().to_string(), "optimization-policy:production-v1");
461 assert_eq!(
462 OptimizationPolicyId::from_str("optimization-policy:production-v1"),
463 Ok(OptimizationPolicyId::production_v1())
464 );
465 assert!(OptimizationPolicyId::from_str("optimization-policy:development-v1").is_err());
466
467 let first =
468 ExecutableProgramFingerprint::for_canonical_opcode_stream(b"opcode\nread-state");
469 let second =
470 ExecutableProgramFingerprint::for_canonical_opcode_stream(b"opcode\nwrite-state");
471 assert_ne!(first, second);
472 assert_ne!(
473 first.to_string(),
474 ConstantPoolEntryId::for_canonical_value("string", b"opcode\nread-state")
475 .expect("canonical constant")
476 .to_string()
477 );
478 assert_eq!(
479 serde_json::from_str::<ExecutableProgramFingerprint>(
480 &serde_json::to_string(&first).expect("serialize fingerprint")
481 )
482 .expect("deserialize fingerprint"),
483 first
484 );
485
486 let roots = vec![
487 "resume-boundary:z".to_string(),
488 "resume-boundary:a".to_string(),
489 ];
490 let reversed_roots = vec![
491 "resume-boundary:a".to_string(),
492 "resume-boundary:z".to_string(),
493 ];
494 let programs = vec![second.clone(), first.clone()];
495 let reversed_programs = vec![first.clone(), second.clone()];
496 assert_eq!(
497 SharedChunkCandidateId::for_roots_and_programs(&roots, &programs),
498 SharedChunkCandidateId::for_roots_and_programs(&reversed_roots, &reversed_programs)
499 );
500 assert_eq!(
501 ProductionChunkId::for_activation_roots_and_programs("shared", &roots, &programs),
502 ProductionChunkId::for_activation_roots_and_programs(
503 "shared",
504 &reversed_roots,
505 &reversed_programs
506 )
507 );
508 assert!(SharedChunkCandidateId::for_roots_and_programs(
509 &["duplicate".to_string(), "duplicate".to_string()],
510 std::slice::from_ref(&first)
511 )
512 .is_none());
513
514 assert!(RuntimeTableId::for_artifact_table("production_runtime", "anchors").is_some());
515 assert!(RuntimeTableId::for_artifact_table("ProductionRuntime", "anchors").is_none());
516 assert!(
517 ProductionArtifactId::for_canonical_packed_bytes("production_runtime", b"packed")
518 .is_some()
519 );
520 assert!(OptimizationDecisionId::for_canonical_subject(
521 "deduplication",
522 "program-fingerprint:abc"
523 )
524 .is_some());
525 assert!(BenchmarkFixtureId::for_fixture_relative_path("fixtures/k/fixture.tsx").is_some());
526 assert!(BenchmarkFixtureId::for_fixture_relative_path("/host/fixture.tsx").is_none());
527 assert!(BenchmarkFixtureId::for_fixture_relative_path("fixtures/../fixture.tsx").is_none());
528 assert_eq!(
529 PerformanceBudgetId::for_metric("runtime_bytes")
530 .expect("metric")
531 .to_string(),
532 "performance-budget:runtime_bytes:v1"
533 );
534 assert_eq!(
535 OptimizationReportId::for_resume_build_id(&ResumeBuildId::for_public_inputs(
536 "canonical-inputs"
537 ))
538 .to_string(),
539 format!(
540 "optimization-report:{}",
541 ResumeBuildId::for_public_inputs("canonical-inputs")
542 )
543 );
544 }
545}