Stop unloading syntax libraries
Externally loaded libraries are able to do things that cause references to them to survive past the expansion phase (e.g. creating @-box cycles, launching a task or storing something in task local data). As such, the library has to stay loaded for the lifetime of the process.
This commit is contained in:
committed by
Alex Crichton
parent
cfb87f10ec
commit
6b429d07c9
@@ -20,7 +20,6 @@ use parse::token::{InternedString, intern, str_to_ident};
|
||||
use util::small_vector::SmallVector;
|
||||
|
||||
use std::hashmap::HashMap;
|
||||
use std::unstable::dynamic_lib::DynamicLibrary;
|
||||
|
||||
// new-style macro! tt code:
|
||||
//
|
||||
@@ -143,8 +142,6 @@ pub struct BlockInfo {
|
||||
macros_escape : bool,
|
||||
// what are the pending renames?
|
||||
pending_renames : RenameList,
|
||||
// references for crates loaded in this scope
|
||||
macro_crates: ~[DynamicLibrary],
|
||||
}
|
||||
|
||||
impl BlockInfo {
|
||||
@@ -152,7 +149,6 @@ impl BlockInfo {
|
||||
BlockInfo {
|
||||
macros_escape: false,
|
||||
pending_renames: ~[],
|
||||
macro_crates: ~[],
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -551,10 +547,6 @@ impl SyntaxEnv {
|
||||
self.find_escape_frame().map.insert(k, v);
|
||||
}
|
||||
|
||||
pub fn insert_macro_crate(&mut self, lib: DynamicLibrary) {
|
||||
self.find_escape_frame().info.macro_crates.push(lib);
|
||||
}
|
||||
|
||||
pub fn info<'a>(&'a mut self) -> &'a mut BlockInfo {
|
||||
&mut self.chain[self.chain.len()-1].info
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user