mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-27 05:49:08 +00:00
fix test compilation
This commit is contained in:
parent
957140df64
commit
04adbe75ca
8 changed files with 77 additions and 107 deletions
35
cli_utils/Cargo.lock
generated
35
cli_utils/Cargo.lock
generated
|
@ -964,12 +964,6 @@ dependencies = [
|
||||||
"toml",
|
"toml",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "fixedbitset"
|
|
||||||
version = "0.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flate2"
|
name = "flate2"
|
||||||
version = "1.0.22"
|
version = "1.0.22"
|
||||||
|
@ -2047,14 +2041,11 @@ version = "0.8.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
|
checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"backtrace",
|
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"instant",
|
"instant",
|
||||||
"libc",
|
"libc",
|
||||||
"petgraph",
|
|
||||||
"redox_syscall",
|
"redox_syscall",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"thread-id",
|
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2107,16 +2098,6 @@ dependencies = [
|
||||||
"sha-1",
|
"sha-1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "petgraph"
|
|
||||||
version = "0.5.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7"
|
|
||||||
dependencies = [
|
|
||||||
"fixedbitset",
|
|
||||||
"indexmap",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "phf"
|
name = "phf"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
|
@ -2799,6 +2780,7 @@ dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"roc_collections",
|
"roc_collections",
|
||||||
|
"roc_error_macros",
|
||||||
"roc_ident",
|
"roc_ident",
|
||||||
"roc_region",
|
"roc_region",
|
||||||
"snafu",
|
"snafu",
|
||||||
|
@ -2815,6 +2797,7 @@ dependencies = [
|
||||||
"roc_builtins",
|
"roc_builtins",
|
||||||
"roc_can",
|
"roc_can",
|
||||||
"roc_collections",
|
"roc_collections",
|
||||||
|
"roc_error_macros",
|
||||||
"roc_module",
|
"roc_module",
|
||||||
"roc_problem",
|
"roc_problem",
|
||||||
"roc_region",
|
"roc_region",
|
||||||
|
@ -2865,6 +2848,7 @@ dependencies = [
|
||||||
"inkwell 0.1.0",
|
"inkwell 0.1.0",
|
||||||
"libloading 0.7.1",
|
"libloading 0.7.1",
|
||||||
"roc_build",
|
"roc_build",
|
||||||
|
"roc_builtins",
|
||||||
"roc_collections",
|
"roc_collections",
|
||||||
"roc_gen_llvm",
|
"roc_gen_llvm",
|
||||||
"roc_load",
|
"roc_load",
|
||||||
|
@ -2946,6 +2930,7 @@ version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"roc_collections",
|
"roc_collections",
|
||||||
|
"roc_error_macros",
|
||||||
"roc_module",
|
"roc_module",
|
||||||
"roc_region",
|
"roc_region",
|
||||||
"static_assertions",
|
"static_assertions",
|
||||||
|
@ -2956,6 +2941,7 @@ dependencies = [
|
||||||
name = "roc_unify"
|
name = "roc_unify"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
"roc_collections",
|
"roc_collections",
|
||||||
"roc_module",
|
"roc_module",
|
||||||
"roc_types",
|
"roc_types",
|
||||||
|
@ -3402,17 +3388,6 @@ dependencies = [
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "thread-id"
|
|
||||||
version = "4.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "5fdfe0627923f7411a43ec9ec9c39c3a9b4151be313e0922042581fb6c9b717f"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
"redox_syscall",
|
|
||||||
"winapi",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "threadpool"
|
name = "threadpool"
|
||||||
version = "1.8.1"
|
version = "1.8.1"
|
||||||
|
|
|
@ -1074,71 +1074,24 @@ fn load<'a>(
|
||||||
// (since other threads need to reference it too).
|
// (since other threads need to reference it too).
|
||||||
let injector = &injector;
|
let injector = &injector;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Record this thread's handle so the main thread can join it later.
|
// Record this thread's handle so the main thread can join it later.
|
||||||
let res_join_handle = thread_scope
|
let res_join_handle = thread_scope
|
||||||
.builder()
|
.builder()
|
||||||
.stack_size(EXPANDED_STACK_SIZE)
|
.stack_size(EXPANDED_STACK_SIZE)
|
||||||
.spawn(move |_| {
|
.spawn(move |_| {
|
||||||
// Keep listening until we receive a Shutdown msg
|
// will process messages until we run out
|
||||||
|
worker_task(
|
||||||
for msg in worker_msg_rx.iter() {
|
worker_arena,
|
||||||
match msg {
|
worker,
|
||||||
WorkerMsg::Shutdown => {
|
injector,
|
||||||
// We've finished all our work. It's time to
|
stealers,
|
||||||
// shut down the thread, so when the main thread
|
worker_msg_rx,
|
||||||
// blocks on joining with all the worker threads,
|
msg_tx,
|
||||||
// it can finally exit too!
|
src_dir,
|
||||||
return Ok(());
|
target_info,
|
||||||
}
|
)
|
||||||
WorkerMsg::TaskAdded => {
|
|
||||||
// Find a task - either from this thread's queue,
|
|
||||||
// or from the main queue, or from another worker's
|
|
||||||
// queue - and run it.
|
|
||||||
//
|
|
||||||
// There might be no tasks to work on! That could
|
|
||||||
// happen if another thread is working on a task
|
|
||||||
// which will later result in more tasks being
|
|
||||||
// added. In that case, do nothing, and keep waiting
|
|
||||||
// until we receive a Shutdown message.
|
|
||||||
if let Some(task) = find_task(&worker, injector, stealers) {
|
|
||||||
let result = run_task(
|
|
||||||
task,
|
|
||||||
worker_arena,
|
|
||||||
src_dir,
|
|
||||||
msg_tx.clone(),
|
|
||||||
target_info,
|
|
||||||
);
|
|
||||||
|
|
||||||
match result {
|
|
||||||
Ok(()) => {}
|
|
||||||
Err(LoadingProblem::MsgChannelDied) => {
|
|
||||||
panic!("Msg channel closed unexpectedly.")
|
|
||||||
}
|
|
||||||
Err(LoadingProblem::ParsingFailed(problem)) => {
|
|
||||||
msg_tx.send(Msg::FailedToParse(problem)).unwrap();
|
|
||||||
}
|
|
||||||
Err(LoadingProblem::FileProblem {
|
|
||||||
filename,
|
|
||||||
error,
|
|
||||||
}) => {
|
|
||||||
msg_tx
|
|
||||||
.send(Msg::FailedToReadFile { filename, error })
|
|
||||||
.unwrap();
|
|
||||||
}
|
|
||||||
Err(other) => {
|
|
||||||
return Err(other);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Needed to prevent a borrow checker error about this closure
|
|
||||||
// outliving its enclosing function.
|
|
||||||
drop(worker_msg_rx);
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
});
|
});
|
||||||
|
|
||||||
res_join_handle.unwrap();
|
res_join_handle.unwrap();
|
||||||
|
@ -1302,6 +1255,65 @@ fn load<'a>(
|
||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::too_many_arguments)]
|
||||||
|
fn worker_task<'a>(
|
||||||
|
worker_arena: &'a Bump,
|
||||||
|
worker: Worker<BuildTask<'a>>,
|
||||||
|
injector: &Injector<BuildTask<'a>>,
|
||||||
|
stealers: &[Stealer<BuildTask<'a>>],
|
||||||
|
worker_msg_rx: crossbeam::channel::Receiver<WorkerMsg>,
|
||||||
|
msg_tx: MsgSender<'a>,
|
||||||
|
src_dir: &Path,
|
||||||
|
target_info: TargetInfo,
|
||||||
|
) -> Result<(), LoadingProblem<'a>> {
|
||||||
|
// Keep listening until we receive a Shutdown msg
|
||||||
|
for msg in worker_msg_rx.iter() {
|
||||||
|
match msg {
|
||||||
|
WorkerMsg::Shutdown => {
|
||||||
|
// We've finished all our work. It's time to
|
||||||
|
// shut down the thread, so when the main thread
|
||||||
|
// blocks on joining with all the worker threads,
|
||||||
|
// it can finally exit too!
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
WorkerMsg::TaskAdded => {
|
||||||
|
// Find a task - either from this thread's queue,
|
||||||
|
// or from the main queue, or from another worker's
|
||||||
|
// queue - and run it.
|
||||||
|
//
|
||||||
|
// There might be no tasks to work on! That could
|
||||||
|
// happen if another thread is working on a task
|
||||||
|
// which will later result in more tasks being
|
||||||
|
// added. In that case, do nothing, and keep waiting
|
||||||
|
// until we receive a Shutdown message.
|
||||||
|
if let Some(task) = find_task(&worker, injector, stealers) {
|
||||||
|
let result = run_task(task, worker_arena, src_dir, msg_tx.clone(), target_info);
|
||||||
|
|
||||||
|
match result {
|
||||||
|
Ok(()) => {}
|
||||||
|
Err(LoadingProblem::MsgChannelDied) => {
|
||||||
|
panic!("Msg channel closed unexpectedly.")
|
||||||
|
}
|
||||||
|
Err(LoadingProblem::ParsingFailed(problem)) => {
|
||||||
|
msg_tx.send(Msg::FailedToParse(problem)).unwrap();
|
||||||
|
}
|
||||||
|
Err(LoadingProblem::FileProblem { filename, error }) => {
|
||||||
|
msg_tx
|
||||||
|
.send(Msg::FailedToReadFile { filename, error })
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
Err(other) => {
|
||||||
|
return Err(other);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn start_tasks<'a>(
|
fn start_tasks<'a>(
|
||||||
arena: &'a Bump,
|
arena: &'a Bump,
|
||||||
state: &mut State<'a>,
|
state: &mut State<'a>,
|
||||||
|
|
|
@ -16,7 +16,6 @@ mod helpers;
|
||||||
mod test_load {
|
mod test_load {
|
||||||
use crate::helpers::fixtures_dir;
|
use crate::helpers::fixtures_dir;
|
||||||
use bumpalo::Bump;
|
use bumpalo::Bump;
|
||||||
use roc_can::builtins::builtin_defs_map;
|
|
||||||
use roc_can::def::Declaration::*;
|
use roc_can::def::Declaration::*;
|
||||||
use roc_can::def::Def;
|
use roc_can::def::Def;
|
||||||
use roc_collections::all::MutMap;
|
use roc_collections::all::MutMap;
|
||||||
|
@ -111,7 +110,6 @@ mod test_load {
|
||||||
dir.path(),
|
dir.path(),
|
||||||
exposed_types,
|
exposed_types,
|
||||||
TARGET_INFO,
|
TARGET_INFO,
|
||||||
builtin_defs_map,
|
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -135,7 +133,6 @@ mod test_load {
|
||||||
src_dir.as_path(),
|
src_dir.as_path(),
|
||||||
subs_by_module,
|
subs_by_module,
|
||||||
TARGET_INFO,
|
TARGET_INFO,
|
||||||
builtin_defs_map,
|
|
||||||
);
|
);
|
||||||
let mut loaded_module = match loaded {
|
let mut loaded_module = match loaded {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
|
@ -301,7 +298,6 @@ mod test_load {
|
||||||
src_dir.as_path(),
|
src_dir.as_path(),
|
||||||
subs_by_module,
|
subs_by_module,
|
||||||
TARGET_INFO,
|
TARGET_INFO,
|
||||||
builtin_defs_map,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut loaded_module = loaded.expect("Test module failed to load");
|
let mut loaded_module = loaded.expect("Test module failed to load");
|
||||||
|
|
|
@ -10,7 +10,6 @@ mod helpers;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod solve_expr {
|
mod solve_expr {
|
||||||
use crate::helpers::with_larger_debug_stack;
|
use crate::helpers::with_larger_debug_stack;
|
||||||
use roc_can::builtins::builtin_defs_map;
|
|
||||||
use roc_collections::all::MutMap;
|
use roc_collections::all::MutMap;
|
||||||
use roc_types::pretty_print::{content_to_string, name_all_type_vars};
|
use roc_types::pretty_print::{content_to_string, name_all_type_vars};
|
||||||
|
|
||||||
|
@ -64,7 +63,6 @@ mod solve_expr {
|
||||||
dir.path(),
|
dir.path(),
|
||||||
exposed_types,
|
exposed_types,
|
||||||
roc_target::TargetInfo::default_x86_64(),
|
roc_target::TargetInfo::default_x86_64(),
|
||||||
builtin_defs_map,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
dir.close()?;
|
dir.close()?;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
use libloading::Library;
|
use libloading::Library;
|
||||||
use roc_build::link::{link, LinkType};
|
use roc_build::link::{link, LinkType};
|
||||||
use roc_builtins::bitcode;
|
use roc_builtins::bitcode;
|
||||||
use roc_can::builtins::builtin_defs_map;
|
|
||||||
use roc_collections::all::MutMap;
|
use roc_collections::all::MutMap;
|
||||||
use roc_region::all::LineInfo;
|
use roc_region::all::LineInfo;
|
||||||
use tempfile::tempdir;
|
use tempfile::tempdir;
|
||||||
|
@ -58,7 +57,6 @@ pub fn helper(
|
||||||
src_dir,
|
src_dir,
|
||||||
exposed_types,
|
exposed_types,
|
||||||
roc_target::TargetInfo::default_x86_64(),
|
roc_target::TargetInfo::default_x86_64(),
|
||||||
builtin_defs_map,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut loaded = loaded.expect("failed to load module");
|
let mut loaded = loaded.expect("failed to load module");
|
||||||
|
|
|
@ -3,7 +3,6 @@ use inkwell::module::Module;
|
||||||
use libloading::Library;
|
use libloading::Library;
|
||||||
use roc_build::link::module_to_dylib;
|
use roc_build::link::module_to_dylib;
|
||||||
use roc_build::program::FunctionIterator;
|
use roc_build::program::FunctionIterator;
|
||||||
use roc_can::builtins::builtin_defs_map;
|
|
||||||
use roc_can::def::Def;
|
use roc_can::def::Def;
|
||||||
use roc_collections::all::{MutMap, MutSet};
|
use roc_collections::all::{MutMap, MutSet};
|
||||||
use roc_gen_llvm::llvm::externs::add_default_roc_externs;
|
use roc_gen_llvm::llvm::externs::add_default_roc_externs;
|
||||||
|
@ -25,9 +24,6 @@ fn promote_expr_to_module(src: &str) -> String {
|
||||||
|
|
||||||
buffer
|
buffer
|
||||||
}
|
}
|
||||||
pub fn test_builtin_defs(symbol: Symbol, var_store: &mut VarStore) -> Option<Def> {
|
|
||||||
builtin_defs_map(symbol, var_store)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
fn create_llvm_module<'a>(
|
fn create_llvm_module<'a>(
|
||||||
|
@ -67,7 +63,6 @@ fn create_llvm_module<'a>(
|
||||||
src_dir,
|
src_dir,
|
||||||
exposed_types,
|
exposed_types,
|
||||||
target_info,
|
target_info,
|
||||||
test_builtin_defs,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut loaded = match loaded {
|
let mut loaded = match loaded {
|
||||||
|
|
|
@ -7,7 +7,6 @@ use std::path::{Path, PathBuf};
|
||||||
use wasmer::{Memory, WasmPtr};
|
use wasmer::{Memory, WasmPtr};
|
||||||
|
|
||||||
use crate::helpers::from_wasmer_memory::FromWasmerMemory;
|
use crate::helpers::from_wasmer_memory::FromWasmerMemory;
|
||||||
use roc_can::builtins::builtin_defs_map;
|
|
||||||
use roc_collections::all::{MutMap, MutSet};
|
use roc_collections::all::{MutMap, MutSet};
|
||||||
use roc_gen_wasm::wasm32_result::Wasm32Result;
|
use roc_gen_wasm::wasm32_result::Wasm32Result;
|
||||||
use roc_gen_wasm::{DEBUG_LOG_SETTINGS, MEMORY_NAME};
|
use roc_gen_wasm::{DEBUG_LOG_SETTINGS, MEMORY_NAME};
|
||||||
|
@ -94,7 +93,6 @@ fn compile_roc_to_wasm_bytes<'a, T: Wasm32Result>(
|
||||||
src_dir,
|
src_dir,
|
||||||
exposed_types,
|
exposed_types,
|
||||||
roc_target::TargetInfo::default_wasm32(),
|
roc_target::TargetInfo::default_wasm32(),
|
||||||
builtin_defs_map,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let loaded = loaded.expect("failed to load module");
|
let loaded = loaded.expect("failed to load module");
|
||||||
|
|
|
@ -18,7 +18,6 @@ const EXPANDED_STACK_SIZE: usize = 8 * 1024 * 1024;
|
||||||
|
|
||||||
use test_mono_macros::*;
|
use test_mono_macros::*;
|
||||||
|
|
||||||
use roc_can::builtins::builtin_defs_map;
|
|
||||||
use roc_collections::all::MutMap;
|
use roc_collections::all::MutMap;
|
||||||
use roc_module::symbol::Symbol;
|
use roc_module::symbol::Symbol;
|
||||||
use roc_mono::ir::Proc;
|
use roc_mono::ir::Proc;
|
||||||
|
@ -107,7 +106,6 @@ fn compiles_to_ir(test_name: &str, src: &str) {
|
||||||
src_dir,
|
src_dir,
|
||||||
exposed_types,
|
exposed_types,
|
||||||
TARGET_INFO,
|
TARGET_INFO,
|
||||||
builtin_defs_map,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut loaded = match loaded {
|
let mut loaded = match loaded {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue