MCPcopy Create free account
hub / github.com/LPC4/Full-Stack / manifest_for_program

Method manifest_for_program

src/app/mod.rs:663–713  ·  view source on GitHub ↗
(&self, program: &ProgramFile, target: TargetMode)

Source from the content-addressed store, hash-verified

661 let preview_failed = self
662 .stage_cache
663 .as_ref()
664 .is_some_and(|cache| cache.result.has_errors() || cache.result.has_assembler_error());
665
666 let mut failed = preview_failed;
667 if let Some(config) = config {
668 let out_dir = self.workspace.fs().host_out_dir();
669 match SessionEngine::new(self.workspace.fs())
670 .with_artifact_root(out_dir)
671 .build_config(&config)
672 {
673 Ok(outcome) => {
674 failed = false;
675 self.status_message = Some("built".to_owned());
676 self.report_linked_build(&outcome);
677 }
678 Err(err) => {
679 failed = true;
680 self.status_message = Some("build failed".to_owned());
681 // Compile failures the preview already diagnosed render as
682 // caret blocks below; the stringified error would repeat them.
683 if !(matches!(err, SessionEngineError::Build(BuildError::Compile(_)))
684 && preview_failed)
685 {
686 self.terminal.push(ConsoleStream::Error, err.to_string());
687 }
688 }
689 }
690 } else if preview_failed {
691 self.status_message = Some("build failed".to_owned());
692 } else if let Some(cache) = &self.stage_cache {
693 self.status_message = Some("built".to_owned());
694 self.terminal.push(
695 ConsoleStream::Success,
696 build_summary(&cache.result, produced_layer),
697 );
698 } else {
699 self.status_message = Some("build skipped".to_owned());
700 self.terminal.push(
701 ConsoleStream::Warning,
702 "No build manifest was found for the active document.",
703 );
704 }
705 if !has_config || failed {
706 self.push_build_diagnostics(failed);
707 }
708 self.build_glow_start = Some(now);
709 self.record_build_lit(produced_layer);
710 }
711
712 fn push_build_diagnostics(&mut self, failed: bool) {
713 use full_stack::compilation_pipeline::DiagnosticLevel;
714 let Some(cache) = &self.stage_cache else {
715 return;
716 };

Calls 4

effective_entry_pointMethod · 0.80
effective_link_layoutMethod · 0.80
cloneMethod · 0.45