rust/src
Huon Wilson 2c9aada10c c_str: add .as_ptr & .as_mut_ptr to replace .with_[mut_]ref.
These forms return the pointer directly, rather than the added
indirection, indentation, and inefficiencies of the closures in
`.with_ref` and `.with_mut_ref`. The two closure functions are
deprecated.

Replace

    foo(c_str.with_ref(|p| p))

    c_str.with_ref(|p| {
        foo(p);
        bar(p);
    })

with

    foo(c_str.as_ptr())

    let p = c_str.as_ptr();
    foo(p);
    bar(p);

This change does mean that one has to be careful to avoid writing `let p
= x.to_c_str().as_ptr();` since the `CString` will be freed at the end
of the statement. Previously, `with_ref` was used (and `as_ptr` avoided)
for this reason, but Rust has strongly moved away from closures to more
RAII-style code, and most uses of `.with_ref` where in the form
`.with_ref(|p| p)` anyway, that is, they were exactly `.as_ptr`.

[breaking-change]
2014-06-29 21:15:26 +10:00
..
compiler-rt@62a4ca6055
compiletest auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
doc auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
driver
etc
gyp@1e46da1000
jemalloc@024c67ad65
liballoc auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libarena Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
libbacktrace
libcollections auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libcore auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libdebug Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
libflate Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
libfmt_macros
libfourcc
libgetopts
libglob
libgraphviz Implementation of common traits for MaybeOwnedVector 2014-06-28 20:28:04 +02:00
libgreen auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libhexfloat
liblibc Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
liblog Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
libnative auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libnum
librand
libregex
libregex_macros
librlibc Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
librustc auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
librustdoc auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
librustrt c_str: add .as_ptr & .as_mut_ptr to replace .with_[mut_]ref. 2014-06-29 21:15:26 +10:00
librustuv Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
libsemver
libserialize auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libstd auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libsync auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libsyntax auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
libterm librustc: Match trait self types exactly. 2014-06-28 11:18:37 -07:00
libtest librustc: Match trait self types exactly. 2014-06-28 11:18:37 -07:00
libtime Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
liburl
libuuid
libuv@43495892de
llvm@1bba09755d
rt
rustllvm
test auto merge of #15208 : alexcrichton/rust/snapshots, r=pcwalton 2014-06-28 20:11:34 +00:00
README.md
snapshots.txt

This is a preliminary version of the Rust compiler, libraries and tools.

Source layout:

Path Description
librustc/ The self-hosted compiler
liballoc/ Rust's core allocation library
libcore/ The Rust core library
libdebug/ Debugging utilities
libstd/ The standard library (imported and linked by default)
libgreen/ The M:N runtime library
libnative/ The 1:1 runtime library
libsyntax/ The Rust parser and pretty-printer
libtest/ Rust's test-runner code
------------------- ---------------------------------------------------------
libarena/ The arena (a fast but limited) memory allocator
libbacktrace/ The libbacktrace library
libcollections/ A collection of useful data structures and containers
libflate/ Simple compression library
libfmt_macros/ Macro support for format strings
libfourcc/ Data format identifier library
libgetopts/ Get command-line-options library
libglob/ Unix glob patterns library
libgraphviz/ Generating files for Graphviz
libhexfloat/ Hexadecimal floating-point literals
liblibc/ Bindings for the C standard library
liblog/ Utilities for program-wide and customizable logging
libnum/ Extended number support library (complex, rational, etc)
librand/ Random numbers and distributions
libregex/ Regular expressions
libregex_macros/ The regex! syntax extension
libsemver/ Rust's semantic versioning library
libserialize/ Encode-Decode types library
libsync/ Concurrency mechanisms and primitives
libterm/ ANSI color library for terminals
libtime/ Time operations library
liburl/ URL handling lirary
libuuid/ UUID's handling code
------------------- ---------------------------------------------------------
rt/ The runtime system
rt/rust_*.c - Some of the runtime services
rt/vg - Valgrind headers
rt/msvc - MSVC support
rt/sundown - The Markdown library used by rustdoc
------------------- ---------------------------------------------------------
compiletest/ The test runner
test/ Testsuite
test/codegen - Tests for the LLVM IR infrastructure
test/compile-fail - Tests that should fail to compile
test/debug-info - Tests for the debuginfo tool
test/run-fail - Tests that should compile, run and fail
test/run-make - Tests that depend on a Makefile infrastructure
test/run-pass - Tests that should compile, run and succeed
test/bench - Benchmarks and miscellaneous
test/pretty - Pretty-printer tests
test/auxiliary - Dependencies of tests
------------------- ---------------------------------------------------------
librustdoc/ The Rust API documentation tool
libuv/ The libuv submodule
librustuv/ Rust libuv support code
------------------- ---------------------------------------------------------
llvm/ The LLVM submodule
rustllvm/ LLVM support code
------------------- ---------------------------------------------------------
etc/ Scripts, editors support, misc

NOTE: This list (especially the second part of the table which contains modules and libraries) is highly volatile and subject to change.