make quicksort use a Pkg-Config.roc file

This commit is contained in:
Folkert 2020-11-07 22:44:06 +01:00
parent bfcc74f97e
commit 40477eee82
2 changed files with 40 additions and 11 deletions

View file

@ -525,6 +525,7 @@ struct ParsedModule<'a> {
#[derive(Debug)]
enum Msg<'a> {
Many(Vec<Msg<'a>>),
Header(ModuleHeader<'a>),
Parsed(ParsedModule<'a>),
CanonicalizedAndConstrained {
@ -1253,6 +1254,16 @@ fn update<'a>(
use self::Msg::*;
match msg {
Many(messages) => {
// enqueue all these message
for msg in messages {
msg_tx
.send(msg)
.map_err(|_| LoadingProblem::MsgChannelDied)?;
}
Ok(state)
}
Header(header) => {
log!("loaded header for {:?}", header.module_id);
let home = header.module_id;
@ -1868,16 +1879,34 @@ fn parse_header<'a>(
ident_ids_by_module,
module_timing,
)),
Ok((ast::Module::App { header }, parse_state)) => Ok(send_header(
Ok((ast::Module::App { header }, parse_state)) => {
let mut pkg_config_dir = filename.clone();
pkg_config_dir.pop();
let (module_id, app_module_header_msg) = send_header(
header.name,
filename,
header.provides.into_bump_slice(),
header.imports.into_bump_slice(),
parse_state,
module_ids.clone(),
ident_ids_by_module.clone(),
module_timing,
);
let load_pkg_config_msg = load_pkg_config(
arena,
&pkg_config_dir,
module_ids,
ident_ids_by_module,
module_timing,
)),
mode,
)?;
Ok((
module_id,
Msg::Many(vec![app_module_header_msg, load_pkg_config_msg]),
))
}
Ok((ast::Module::Platform { header }, _parse_state)) => fabricate_effects_module(
arena,
module_ids,

View file

@ -2,4 +2,4 @@ platform roc/quicksort
provides []
requires {}
imports []
effects {}
effects Effect {}