mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-16 06:38:03 +08:00
* Implement type inference Add type hints to node trait Add type annotation infrastructure Refactor type ascription infrastructure Run cargo fix Insert infer types stub Remove types from node identifier * Implement covariance * Disable rejection of generic inputs + parameters * Fix lints * Extend type checking to cover Network inputs * Implement generic specialization * Relax covariance rules * Fix type annotations for TypErasedComposeNode * Fix type checking errors * Keep connection information during node resolution * Fix TypeDescriptor PartialEq implementation * Apply review suggestions * Add documentation to type inference * Add Imaginate node to document node types * Fix whitespace in macros * Add types to imaginate node * Fix type declaration for imaginate node + add console logging * Use fully qualified type names as fallback during comparison --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
27 lines
1.0 KiB
Rust
27 lines
1.0 KiB
Rust
use gpu_compiler as compiler;
|
|
use graph_craft::document::NodeNetwork;
|
|
use std::io::Write;
|
|
|
|
fn main() -> anyhow::Result<()> {
|
|
println!("Starting GPU Compiler!");
|
|
let mut stdin = std::io::stdin();
|
|
let mut stdout = std::io::stdout();
|
|
let input_type = std::env::args().nth(1).expect("input type arg missing");
|
|
let output_type = std::env::args().nth(2).expect("output type arg missing");
|
|
let compile_dir = std::env::args().nth(3).map(|x| std::path::PathBuf::from(&x)).unwrap_or(tempfile::tempdir()?.into_path());
|
|
let network: NodeNetwork = serde_json::from_reader(&mut stdin)?;
|
|
let compiler = graph_craft::executor::Compiler {};
|
|
let proto_network = compiler.compile(network, true);
|
|
dbg!(&compile_dir);
|
|
|
|
let metadata = compiler::Metadata::new("project".to_owned(), vec!["test@example.com".to_owned()]);
|
|
|
|
compiler::create_files(&metadata, &proto_network, &compile_dir, &input_type, &output_type)?;
|
|
let result = compiler::compile(&compile_dir)?;
|
|
|
|
let bytes = std::fs::read(result.module.unwrap_single())?;
|
|
stdout.write_all(&bytes)?;
|
|
|
|
Ok(())
|
|
}
|