mirror of
https://github.com/roc-lang/roc.git
synced 2025-07-24 06:55:15 +00:00
correct formatting and removed duplicate image
This commit is contained in:
parent
f3bdb5f321
commit
a3f901427a
20 changed files with 34 additions and 35 deletions
|
@ -149,5 +149,4 @@ Provides a Rust wrapper for the WebAssembly test platform built on libc and is p
|
||||||
|
|
||||||
Below is a simplified diagram to illustrate how a Roc application and host are combined to build an executable file.
|
Below is a simplified diagram to illustrate how a Roc application and host are combined to build an executable file.
|
||||||
|
|
||||||

|

|
||||||
<img src="./building_a_roc_application.svg">
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//! Library for the Roc AST
|
//! Library for the Roc AST
|
||||||
//!
|
//!
|
||||||
//! Code to represent the [Abstract Syntax Tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree)
|
//! Code to represent the [Abstract Syntax Tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree)
|
||||||
//! as used by the editor. In contrast to the compiler, the types in this AST do
|
//! as used by the editor. In contrast to the compiler, the types in this AST do
|
||||||
//! not keep track of the location of the matching code in the source file.
|
//! not keep track of the location of the matching code in the source file.
|
||||||
pub mod ast_error;
|
pub mod ast_error;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Performs analysis and optimizations to remove unneeded [reference counts](https://en.wikipedia.org/wiki/Reference_counting)
|
//! Performs analysis and optimizations to remove unneeded [reference counts](https://en.wikipedia.org/wiki/Reference_counting)
|
||||||
//! at runtime, and supports in-place mutation.
|
//! at runtime, and supports in-place mutation.
|
||||||
use morphic_lib::TypeContext;
|
use morphic_lib::TypeContext;
|
||||||
use morphic_lib::{
|
use morphic_lib::{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
//! [Canonicalize](https://en.wikipedia.org/wiki/Canonicalization) a roc
|
//! [Canonicalize](https://en.wikipedia.org/wiki/Canonicalization) a roc
|
||||||
//! [abstract syntax tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree),
|
//! [abstract syntax tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree),
|
||||||
//! [resolving symbols](https://stackoverflow.com/a/1175493/4200103),
|
//! [resolving symbols](https://stackoverflow.com/a/1175493/4200103),
|
||||||
//! [re-ordering definitions](https://www.oreilly.com/library/view/c-high-performance/9781787120952/546b5677-9157-4333-bc90-16db696436ac.xhtml),
|
//! [re-ordering definitions](https://www.oreilly.com/library/view/c-high-performance/9781787120952/546b5677-9157-4333-bc90-16db696436ac.xhtml),
|
||||||
//! and preparing a module for [type inference](https://en.wikipedia.org/wiki/Type_inference).
|
//! and preparing a module for [type inference](https://en.wikipedia.org/wiki/Type_inference).
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//! Responsible for building the set of constraints that are used during
|
//! Responsible for building the set of constraints that are used during
|
||||||
//! [type inference](https://en.wikipedia.org/wiki/Type_inference) of a program,
|
//! [type inference](https://en.wikipedia.org/wiki/Type_inference) of a program,
|
||||||
//! and for gathering context needed for pleasant error messages when a type
|
//! and for gathering context needed for pleasant error messages when a type
|
||||||
//! error occurs.
|
//! error occurs.
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//! Provides the compiler backend to generate Roc binaries fast, for a nice
|
//! Provides the compiler backend to generate Roc binaries fast, for a nice
|
||||||
//! developer experience. See [README.md](./compiler/gen_dev/README.md) for
|
//! developer experience. See [README.md](./compiler/gen_dev/README.md) for
|
||||||
//! more information.
|
//! more information.
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Provides the LLVM backend to generate Roc binaries. Used to generate a
|
//! Provides the LLVM backend to generate Roc binaries. Used to generate a
|
||||||
//! binary with the fastest possible execution speed.
|
//! binary with the fastest possible execution speed.
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Provides the WASM backend to generate Roc binaries.
|
//! Provides the WASM backend to generate Roc binaries.
|
||||||
mod backend;
|
mod backend;
|
||||||
mod layout;
|
mod layout;
|
||||||
mod low_level;
|
mod low_level;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Used to load a .roc file and coordinate the compiler pipeline, including
|
//! Used to load a .roc file and coordinate the compiler pipeline, including
|
||||||
//! parsing, type checking, and [code generation](https://en.wikipedia.org/wiki/Code_generation_(compiler)).
|
//! parsing, type checking, and [code generation](https://en.wikipedia.org/wiki/Code_generation_(compiler)).
|
||||||
use bumpalo::Bump;
|
use bumpalo::Bump;
|
||||||
use roc_can::module::{ExposedByModule, TypeState};
|
use roc_can::module::{ExposedByModule, TypeState};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Implements data structures used for efficiently representing unique modules
|
//! Implements data structures used for efficiently representing unique modules
|
||||||
//! and identifiers in Roc programs.
|
//! and identifiers in Roc programs.
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
//! Roc's main intermediate representation (IR), which is responsible for
|
//! Roc's main intermediate representation (IR), which is responsible for
|
||||||
//! [monomorphization](https://en.wikipedia.org/wiki/Monomorphization),
|
//! [monomorphization](https://en.wikipedia.org/wiki/Monomorphization),
|
||||||
//! defunctionalization, inserting [ref-count](https://en.wikipedia.org/wiki/Reference_counting)
|
//! defunctionalization, inserting [ref-count](https://en.wikipedia.org/wiki/Reference_counting)
|
||||||
//! instructions, and transforming a Roc program into a form that is easy to
|
//! instructions, and transforming a Roc program into a form that is easy to
|
||||||
//! consume by a backend.
|
//! consume by a backend.
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Implements the Roc parser, which transforms a textual representation of a
|
//! Implements the Roc parser, which transforms a textual representation of a
|
||||||
//! Roc program to an [abstract syntax tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree).
|
//! Roc program to an [abstract syntax tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree).
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Data structures for storing source-code-location information, used heavily
|
//! Data structures for storing source-code-location information, used heavily
|
||||||
//! for contextual error messages.
|
//! for contextual error messages.
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! The entry point of Roc's [type inference](https://en.wikipedia.org/wiki/Type_inference)
|
//! The entry point of Roc's [type inference](https://en.wikipedia.org/wiki/Type_inference)
|
||||||
//! system. Implements type inference and specialization of abilities.
|
//! system. Implements type inference and specialization of abilities.
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Contains all of Roc's [code generation](https://en.wikipedia.org/wiki/Code_generation_(compiler))
|
//! Contains all of Roc's [code generation](https://en.wikipedia.org/wiki/Code_generation_(compiler))
|
||||||
//! tests.
|
//! tests.
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub mod helpers;
|
pub mod helpers;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Implements Roc's unification algorithm, the heartstone of Roc's
|
//! Implements Roc's unification algorithm, the heartstone of Roc's
|
||||||
//! [type inference](https://en.wikipedia.org/wiki/Type_inference).
|
//! [type inference](https://en.wikipedia.org/wiki/Type_inference).
|
||||||
#![warn(clippy::dbg_macro)]
|
#![warn(clippy::dbg_macro)]
|
||||||
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
// See github.com/roc-lang/roc/issues/800 for discussion of the large_enum_variant check.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Generates html documentation from Roc files. Used for
|
//! Generates html documentation from Roc files. Used for
|
||||||
//! [roc-lang.org/builtins/Num](https://www.roc-lang.org/builtins/Num).
|
//! [roc-lang.org/builtins/Num](https://www.roc-lang.org/builtins/Num).
|
||||||
extern crate pulldown_cmark;
|
extern crate pulldown_cmark;
|
||||||
extern crate roc_load;
|
extern crate roc_load;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//! Generates code needed for platform hosts to communicate with Roc apps.
|
//! Generates code needed for platform hosts to communicate with Roc apps.
|
||||||
//! This tool is not necessary for writing a platform in another language,
|
//! This tool is not necessary for writing a platform in another language,
|
||||||
//! however, it's a great convenience! Currently supports Rust platforms, and
|
//! however, it's a great convenience! Currently supports Rust platforms, and
|
||||||
//! the plan is to support any language via a plugin model.
|
//! the plan is to support any language via a plugin model.
|
||||||
pub mod enums;
|
pub mod enums;
|
||||||
pub mod load;
|
pub mod load;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
//! Surgical linker that links platforms to Roc applications. We created our own
|
//! Surgical linker that links platforms to Roc applications. We created our own
|
||||||
//! linker for performance, since regular linkers add complexity that is not
|
//! linker for performance, since regular linkers add complexity that is not
|
||||||
//! needed for linking Roc apps. Because we want `roc` to manage the build
|
//! needed for linking Roc apps. Because we want `roc` to manage the build
|
||||||
//! system and final linking of the executable, it is significantly less
|
//! system and final linking of the executable, it is significantly less
|
||||||
//! practical to use a regular linker.
|
//! practical to use a regular linker.
|
||||||
use memmap2::{Mmap, MmapMut};
|
use memmap2::{Mmap, MmapMut};
|
||||||
use object::Object;
|
use object::Object;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Provides a Rust wrapper for the WebAssembly test platform built on libc and
|
//! Provides a Rust wrapper for the WebAssembly test platform built on libc and
|
||||||
//! is primarily used for testing purposes.
|
//! is primarily used for testing purposes.
|
||||||
// Rust's libc crate doesn't support Wasm, so we provide an implementation from Zig
|
// Rust's libc crate doesn't support Wasm, so we provide an implementation from Zig
|
||||||
// We define Rust signatures here as we need them, rather than trying to cover all of libc
|
// We define Rust signatures here as we need them, rather than trying to cover all of libc
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue