Move extra::flate to libflate

This is hopefully the beginning of the long-awaited dissolution of libextra.
Using the newly created build infrastructure for building libraries, I decided
to move the first module out of libextra.

While not being a particularly meaty module in and of itself, the flate module
is required by rustc and additionally has a native C dependency. I was able to
very easily split out the C dependency from rustrt, update librustc, and
magically everything gets installed to the right locations and built
automatically.

This is meant to be a proof-of-concept commit to how easy it is to remove
modules from libextra now. I didn't put any effort into modernizing the
interface of libflate or updating it other than to remove the one glob import it
had.
This commit is contained in:
Alex Crichton 2014-01-24 21:00:31 -08:00
parent 2611483894
commit cdfdc1eb6b
10 changed files with 25 additions and 14 deletions

View File

@ -37,6 +37,8 @@ li {list-style-type: none; }
* [The Rust parser, `libsyntax`](syntax/index.html)
* [The Rust compiler, `librustc`](rustc/index.html)
* [The `flate` compression library](flate/index.html)
# Tooling
* [The `rustdoc` manual](rustdoc.html)

View File

@ -49,7 +49,7 @@
# automatically generated for all stage/host/target combinations.
################################################################################
TARGET_CRATES := std extra green rustuv native
TARGET_CRATES := std extra green rustuv native flate
HOST_CRATES := syntax rustc rustdoc rustpkg
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
TOOLS := compiletest rustpkg rustdoc rustc
@ -60,9 +60,10 @@ DEPS_green := std
DEPS_rustuv := std native:uv native:uv_support
DEPS_native := std
DEPS_syntax := std extra
DEPS_rustc := syntax native:rustllvm
DEPS_rustc := syntax native:rustllvm flate
DEPS_rustdoc := rustc native:sundown
DEPS_rustpkg := rustc
DEPS_flate := std native:miniz
TOOL_DEPS_compiletest := extra green rustuv
TOOL_DEPS_rustpkg := rustpkg green rustuv

View File

@ -35,7 +35,7 @@
# that's per-target so you're allowed to conditionally add files based on the
# target.
################################################################################
NATIVE_LIBS := rustrt sundown uv_support morestack
NATIVE_LIBS := rustrt sundown uv_support morestack miniz
# $(1) is the target triple
define NATIVE_LIBRARIES
@ -49,8 +49,8 @@ NATIVE_DEPS_sundown_$(1) := sundown/src/autolink.c \
sundown/html/html_smartypants.c \
sundown/html/html.c
NATIVE_DEPS_uv_support_$(1) := rust_uv.c
NATIVE_DEPS_miniz_$(1) = miniz.c
NATIVE_DEPS_rustrt_$(1) := rust_builtin.c \
miniz.c \
rust_android_dummy.c \
rust_test_helpers.c \
rust_try.ll \

View File

@ -855,14 +855,16 @@ $$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB): \
tmp/$$(FT).rc \
$$(SREQ2_T_$(2)_H_$(3))
@$$(call E, compile_and_link: $$@)
$$(STAGE2_T_$(2)_H_$(3)) --lib -o $$@ $$<
$$(STAGE2_T_$(2)_H_$(3)) --lib -o $$@ $$< \
-L "$$(RT_OUTPUT_DIR_$(2))"
$(3)/test/$$(FT_DRIVER)-$(2)$$(X_$(2)): \
tmp/$$(FT_DRIVER).rs \
$$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB) \
$$(SREQ2_T_$(2)_H_$(3))
@$$(call E, compile_and_link: $$@ $$<)
$$(STAGE2_T_$(2)_H_$(3)) -o $$@ $$<
$$(STAGE2_T_$(2)_H_$(3)) -o $$@ $$< \
-L "$$(RT_OUTPUT_DIR_$(2))"
$(3)/test/$$(FT_DRIVER)-$(2).out: \
$(3)/test/$$(FT_DRIVER)-$(2)$$(X_$(2)) \

View File

@ -82,7 +82,6 @@ pub mod rational;
pub mod complex;
pub mod stats;
pub mod semver;
pub mod flate;
pub mod hex;
pub mod uuid;

View File

@ -14,6 +14,10 @@ Simple compression
*/
#[crate_id = "flate#0.10-pre"];
#[crate_type = "rlib"];
#[crate_type = "dylib"];
#[license = "MIT/ASL2"];
#[allow(missing_doc)];
use std::libc::{c_void, size_t, c_int};
@ -23,7 +27,7 @@ use std::vec;
pub mod rustrt {
use std::libc::{c_int, c_void, size_t};
#[link(name = "rustrt", kind = "static")]
#[link(name = "miniz", kind = "static")]
extern {
pub fn tdefl_compress_mem_to_heap(psrc_buf: *c_void,
src_buf_len: size_t,
@ -91,7 +95,7 @@ pub fn inflate_bytes_zlib(bytes: &[u8]) -> ~[u8] {
#[cfg(test)]
mod tests {
use super::*;
use super::{inflate_bytes, deflate_bytes};
use std::rand;
use std::rand::Rng;

View File

@ -30,6 +30,7 @@ This API is completely unstable and subject to change.
#[feature(macro_rules, globs, struct_variant, managed_boxes)];
extern mod extra;
extern mod flate;
extern mod syntax;
use back::link;

View File

@ -33,7 +33,7 @@ use std::os::consts::{macos, freebsd, linux, android, win32};
use std::ptr;
use std::str;
use std::vec;
use extra::flate;
use flate;
pub enum Os {
OsMacos,

View File

@ -2683,7 +2683,7 @@ pub fn crate_ctxt_to_encode_parms<'r>(cx: &'r CrateContext, ie: encoder::encode_
}
pub fn write_metadata(cx: &CrateContext, crate: &ast::Crate) -> ~[u8] {
use extra::flate;
use flate;
if !cx.sess.building_library.get() {
return ~[]

View File

@ -16,7 +16,9 @@
//! functionality through a unit-struct, `Markdown`, which has an implementation
//! of `fmt::Default`. Example usage:
//!
//! ```rust
//! ```rust,ignore
//! use rustdoc::html::markdown::Markdown;
//!
//! let s = "My *markdown* _text_";
//! let html = format!("{}", Markdown(s));
//! // ... something using html