Brian Anderson
ced8393f20
Modify task::join to indicate how the task terminated
...
This involves sticking yet another field into the task structure
2011-07-15 10:07:29 -07:00
Brian Anderson
01a52d728c
Add an unsupervise builtin and function to std::task
...
Calling task::unsupervise de-parents the current task, with the result
that failures do not propogate up the task tree.
2011-07-14 17:56:59 -07:00
Brian Anderson
20e94de392
Add a flag to run ignored tests. Issue #428
2011-07-14 17:13:12 -07:00
Brian Anderson
81acf69f97
Add head and tail functions to std::ivec
...
They even have typestate preconditions
2011-07-14 17:13:12 -07:00
Brian Anderson
139aaa1616
Add is_empty, is_not_empty preds to std::ivec
2011-07-14 17:13:12 -07:00
Brian Anderson
b3dee95514
Add a facility for ignoring tests. Issue #428
...
Adding the #[ignore] attribute will cause the test not to be run, though it
will still show up in the list of tests.
2011-07-14 13:51:30 -07:00
Brian Anderson
4038010bc6
The test runner's main returns unit, not int. Issue #428
...
The appropriate way to indicate failure from main is to fail.
2011-07-14 10:51:38 -07:00
Graydon Hoare
39151f2ad8
Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.
2011-07-13 15:44:09 -07:00
Marijn Haverbeke
ece2d27205
Feeble attempt at putting out the win tinderbox
2011-07-13 11:36:09 +02:00
Patrick Walton
464d7c4480
stdlib: Fix vector index in linux_os::waitpid. Put out burning tinderbox.
2011-07-12 18:28:40 -07:00
Patrick Walton
13c44f99ae
stdlib: Make pipe and waitpid use interior vectors
2011-07-12 17:54:27 -07:00
Patrick Walton
2e827eab24
stdlib: Port most of getopts over to interior vectors
2011-07-12 17:33:17 -07:00
Patrick Walton
3427a41272
stdlib: Add interior vector methods to sha1
2011-07-12 17:18:53 -07:00
Patrick Walton
032c4deefe
stdlib: Implement ivec::count
2011-07-12 17:00:44 -07:00
Brian Anderson
ed556ab094
Improve test runner summary message. Issue #428
2011-07-12 16:54:46 -07:00
Patrick Walton
f06fdd5ca1
stdlib: Use the right upcall in win32_fs. Maybe puts out burning tinderbox?
2011-07-12 16:53:16 -07:00
Patrick Walton
ccd0fffcce
stdlib: Implement str::split_ivec()
2011-07-12 16:36:47 -07:00
Patrick Walton
598b50e10a
stdlib: Move fs over to interior vectors by introducing a rust_list_files_ivec builtin
2011-07-12 15:14:57 -07:00
Patrick Walton
ab579e1c9f
stdlib: Port std::either over to interior vectors
2011-07-12 14:28:11 -07:00
Patrick Walton
b062bbdb8e
stdlib: Switch lib::deque over to interior vectors
2011-07-12 14:28:11 -07:00
Patrick Walton
f2d847ec7a
stdlib: Move bit vectors over to interior vectors
2011-07-12 14:28:11 -07:00
Patrick Walton
043096ea0a
stdlib: Remove exterior vectors from termivec
2011-07-12 14:28:11 -07:00
Patrick Walton
4b23ea51bc
stdlib: Remove obsolete FIXME about state fns
2011-07-12 11:36:01 -07:00
Patrick Walton
c15aa5e3a3
stdlib: EBML API fixes
2011-07-12 11:35:29 -07:00
Patrick Walton
3275cad6d5
stdlib: Implement ivec::unsafe::set_len
2011-07-12 11:35:29 -07:00
Patrick Walton
d21228fce7
stdlib: Box data in EBML documents
2011-07-12 11:35:29 -07:00
Brian Anderson
23d1520398
Support running a subset of tests from the command line. Issue #428
2011-07-11 19:01:54 -07:00
Brian Anderson
94e1b362f0
Pass command-line args to the test runner. Issue #428
...
This will let the test runner filter the tests it runs.
2011-07-11 19:01:53 -07:00
Tim Chevalier
67ecda6342
remove some workarounds for old bugs
2011-07-11 17:32:00 -07:00
Patrick Walton
79ce5a4614
rustc: Implement pointer dereference; add a test case
2011-07-11 15:19:16 -07:00
Patrick Walton
eef61a527d
stdlib: Add addr_of() to the standard library
2011-07-11 14:25:35 -07:00
Patrick Walton
b6d774136b
stdlib: Add interior vector-ified versions of ebml and term
2011-07-11 14:25:34 -07:00
Brian Anderson
64ad5928e7
Actually run tests from the std runner. Issue #428
2011-07-11 11:19:32 -07:00
Marijn Haverbeke
86ee3454a1
Implement or-patterns in case clauses
...
You can now say
expr_move(?dst, ?src) | expr_assign(?dst, ?src) { ... }
to match both expr_move and expr_assign. The names, types, and number
of bound names have to match in all the patterns.
Closes #449 .
2011-07-11 11:01:54 +02:00
Jesse Ruderman
fa78fee4de
Add uint::min
2011-07-10 17:05:25 -07:00
Patrick Walton
18ebef5bba
stdlib: Remove FIXME that's more like a WONTFIX
2011-07-10 15:35:06 -07:00
Patrick Walton
4008cad044
stdlib: Remove the cast from ioivec
2011-07-10 13:22:29 -07:00
Patrick Walton
7871b55597
stdlib: Implement an interior-vector version of the io module
2011-07-10 12:47:51 -07:00
Patrick Walton
875c4622fb
stdlib: Implement str::bytes_ivec() using pointers and casts
2011-07-10 02:05:52 -07:00
Patrick Walton
91dcc1d054
stdlib: Add missing unsafe.rs. Puts out burning tinderbox.
2011-07-10 01:32:35 -07:00
Patrick Walton
0babfd9f98
stdlib: Add unsafe to the std.rc, now that it actually builds
2011-07-10 01:24:31 -07:00
Patrick Walton
d30f22eb65
rt: Remove the _2 prefix from intrinsics; all rust-intrinsics now use explicit return pointers
2011-07-10 01:20:18 -07:00
Patrick Walton
f42c94740a
rustc: Make rust-intrinsics take an explicit return pointer
2011-07-09 21:13:25 -07:00
Brian Anderson
75047ea87e
Generate code to load a crate's tests into the std test runner. Issue #428
2011-07-09 19:30:04 -07:00
Brian Anderson
09982784c6
Begin adding some test runner types to std. Issue #428
2011-07-09 16:08:03 -07:00
Patrick Walton
91d45b91e6
stdlib: Implement str::unsafe_from_bytes_ivec()
2011-07-08 22:23:11 -07:00
Patrick Walton
aa0f6f4961
stdlib: Add an offset function for simple pointer arithmetic on unsafe pointers
2011-07-08 21:56:15 -07:00
Patrick Walton
ccfbb74f11
rustc: Move maps over to interior vectors
2011-07-08 16:37:43 -07:00
Eric Holk
79ca673af7
Adding more support for working with u64s.
2011-07-08 14:02:26 -07:00
Patrick Walton
0864a22ace
stdlib: Add an interior vector version of union-find for now
2011-07-08 11:44:38 -07:00
Patrick Walton
deca79f372
Merge pull request #634 from robarnold/upstream-stable
...
Allocate ivecs out of the kernel pool
2011-07-07 15:18:07 -07:00
Marijn Haverbeke
3bdbf74d47
Make moving of temporaries do the right thing, use it to optimize
...
This adds support for dropping cleanups for temporary values when they
are moved somewhere else. It then adds wraps most copy operations
(return, put in data structure, box, etc) in a way that will fall back
to a move when it is safe.
This saves a lot of taking/dropping, shaving over a megabyte off the
stage2/rustc binary size.
In some cases, most notably function returns, we could detect that the
returned value is a local variable, and can thus be safely moved even
though it is not a temporary. This will require putting some more
information in lvals.
I did not yet handle function arguments, since the logic for passing
them looked too convoluted to touch. I'll probably try that in the
near future, since it's bound to be a big win.
2011-07-07 15:54:01 +02:00
Rob Arnold
f6117173c9
Allocate rust_ivec buffers out of the kernel pool
...
The duplication of upcalls is due to the fact that the runtime is
shared between stage0/rustc and stage1/rustc. Once snapshots are
updated, they should be de-duplicated.
2011-07-06 20:41:24 -07:00
Patrick Walton
1bba585044
stdlib: Implement ivec::foldl
2011-07-05 18:29:47 -07:00
Patrick Walton
8261d2e6fb
stdlib: Add filter_map to ivec
2011-07-05 17:22:02 -07:00
Patrick Walton
ee5d7bbc86
stdlib: Don't have ivec::map take a mutable alias
2011-07-05 16:28:07 -07:00
Patrick Walton
1980a2db53
stdlib: Add str::connect_ivec() temporarily
2011-07-05 16:02:02 -07:00
Patrick Walton
219cd4b21f
stdlib: Change ivec::rustrt::ivec_on_heap() to use a 32-bit return value
2011-07-05 15:34:50 -07:00
Marijn Haverbeke
6fd6fdea93
Move everything syntax-related to syntax/, break deps on rest of compiler
...
src/comp/syntax is currently just a sub-module of rustc, but it will,
in the near future, be its own crate. This includes:
- The AST data structure
- The parser
- The pretty-printer
- Visit, walk, and fold
- The syntax extension system
- Some utility stuff that should be in the stdlib*
*) Stdlib extensions currently require a snapshot before they can be
used, and the win build is very broken right now. This is temporary
and will be cleaned up when one of those problems goes away.
A lot of code was moved by this patch, mostly towards a more organized
layout. Some package paths did get longer, and I guess the new layout
will take some getting used to. Sorry about that!
Please try not to re-introduce any dependencies in syntax/ on any of
the other src/comp/ subdirs.
2011-07-05 15:57:21 +02:00
Patrick Walton
001397da3c
stdlib: Add ivec::any() and ivec::all(); put out burning tinderbox
2011-07-04 23:52:47 -07:00
Patrick Walton
f71c8dd918
stdlib: Implement interior vector map
2011-07-04 22:48:42 -07:00
Patrick Walton
d3a4102bc1
stdlib: Add an inefficient implementation of ivec::pop
2011-07-04 21:20:18 -07:00
Patrick Walton
b4465aca5a
stdlib: Fix long line in sort.rs
2011-06-30 22:21:30 -07:00
Patrick Walton
4c76bfdc1f
stdlib: Add an interior vector version of sort and a test case
2011-06-30 19:09:52 -07:00
Brian Anderson
64d6081429
Use attributes for conditional compilation in std.rc
2011-06-30 14:13:49 -07:00
Tim Chevalier
a0cdb23892
Get rid of an unused variable
2011-06-30 12:37:30 -07:00
Eric Holk
b4a145e60f
Added a nanosecond timer to time.rs, support for some floating point casts, and a commandline-driven mode for pfib.rs
2011-06-30 11:32:10 -07:00
Eric Holk
63dcd325b9
Adding support for pinning tasks to the currently running thread. Closes #598 .
2011-06-29 18:47:47 -07:00
Lindsey Kuper
9155544a5a
Comments.
2011-06-28 18:54:56 -07:00
Graydon Hoare
d79330de26
Fix logic bug in std::fs::dirname.
2011-06-28 17:24:30 -07:00
Brian Anderson
a83b64d15d
Rework how linkage attributes are determined
...
The meta items within a crate's link attribute are used in linkage:
#[link(name = "std",
vers = "1.0",
custom = "whatever")];
Name and vers are treated specially, and everything else is hashed together
into the crate meta hash.
Issue #487
2011-06-28 15:25:47 -07:00
Patrick Walton
7554423423
stdlib: Remove old botch from ufind
2011-06-28 14:16:09 -07:00
Paul Stansifer
c3901cdf8e
Add simple syntax extension (#simplext)
2011-06-28 15:02:12 +00:00
Rafael Ávila de Espíndola
ecc080ed0b
Use "" in the native_name as an indication that no extra options have to
...
be passed to the "linker". Use that for libc.
2011-06-28 08:21:13 -04:00
Rafael Ávila de Espíndola
ac081c30be
Record and link with used native libraries.
2011-06-27 15:24:44 -04:00
Tim Chevalier
582e1f13f0
Invalidate constraints correctly after an assignment expression
...
Modified typestate to throw away any constraints mentioning a
variable on the LHS of an assignment, recv, assign_op, or on
either side of a swap.
Some code cleanup as well.
2011-06-24 22:36:53 -07:00
Marijn Haverbeke
d507d5fe91
Remove res idents from stdlib
2011-06-24 21:13:26 +02:00
Tim Chevalier
7fb35ecf84
Serialize constraints in types (literal arguments still not supported)
...
This involved, in part, changing the ast::def type so that a def_fn
has a "purity" field. This lets the typechecker determine whether
functions defined in other crates are pure.
It also required updating some error messages in tests. As a test
for cross-crate constrained functions, I added a safe_slice function
to std::str (slice(), with one of the asserts replaced with a
function precondition) and some test cases (various versions of
fn-constraint.rs) that call it. Also, I changed "fn" to "pred" for
some of the boolean functions in std::uint.
2011-06-21 14:37:33 -07:00
Brian Anderson
200dbe4c4f
Remove various rustboot workarounds
2011-06-19 20:48:20 -07:00
Patrick Walton
3f7380ccec
rustc: Change smallintmap to use an ivec and use it for the node type table. 3x typechecking speedup.
2011-06-19 18:03:19 -07:00
Brian Anderson
f58de2d687
Replace unexported meta tags with attributes
...
Issue #487
2011-06-18 20:23:05 -07:00
Patrick Walton
ca2ff9c50d
stdlib: Add ivec::grow_set()
2011-06-18 16:41:09 -07:00
Patrick Walton
5d90b1df4b
stdlib: Add ivec::grow() and ivec::grow_fn()
2011-06-18 16:29:45 -07:00
Patrick Walton
b2bcafe6fd
stdlib: Add some more ivec functions, untested as of yet
2011-06-17 19:16:26 -07:00
unknown
8c6354ceb9
Made sure getcwd and friends work well on Windows.
2011-06-17 15:53:21 -07:00
Eric Holk
a40116b398
stdlib: added getcwd and a convenience function to make relative paths absolute. This will be helpful for #441 .
2011-06-17 15:53:19 -07:00
Brian Anderson
6e6bc5076c
rustc: Support both meta tags and attributes for crate metadata
...
This is a transitional patch for converting from 'meta' to attributes.
Issue #487
2011-06-17 15:07:34 -07:00
Patrick Walton
d47101703e
stdlib: Sketch out ivec::init_fn, currently segfaulting
2011-06-16 17:48:59 -07:00
Patrick Walton
40746fa447
rustc: Implement conversions from interior vector data to unsafe pointers and vice-versa
2011-06-16 17:07:02 -07:00
Graydon Hoare
b84fffaa4e
Reformat a bunch of recent churn.
2011-06-16 16:55:46 -07:00
Patrick Walton
050f62983d
stdlib: Introduce an ivec module into the standard library; add a minimal test case
2011-06-16 16:08:26 -07:00
Brian Anderson
0efd7fac8a
stdlib: Add option::is_some
2011-06-16 14:21:42 -07:00
Eric Holk
c4f9bd9470
Re-enabled join.
2011-06-15 18:16:59 -07:00
Michael Sullivan
a91d301b31
Add xterm to the term lib's list of supported terms.
2011-06-15 17:33:37 -07:00
Brian Anderson
f50fd6d8ae
stdlib: Add color support for GNU screen
2011-06-15 16:38:17 -07:00
Brian Anderson
c19a026f46
stdlib: Add emacs variables to term.rs
2011-06-15 16:28:14 -07:00
Brian Anderson
b8a5440b2d
stdlib: Add an either module
...
Like Haskell's, with left and right tags, various conversion functions
2011-06-15 15:45:41 -07:00
Marijn Haverbeke
b2b8002fd3
Fix unsafe uses of aliases in tail calls
2011-06-15 21:39:27 +02:00
Graydon Hoare
766d54df93
Fix a bunch of compile-command lines to use RBUILD
2011-06-15 12:01:19 -07:00
Graydon Hoare
7e806c5e87
Attempt to put out windows tinderbox.
2011-06-15 11:39:31 -07:00
Graydon Hoare
ce72993488
Reformat source tree (minus a couple tests that are still grumpy).
2011-06-15 11:19:50 -07:00
Marijn Haverbeke
5fb518abc9
Fix assignments to immutable fields throughout the code
2011-06-15 14:10:07 +02:00
Eric Holk
d1857d30fc
This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
...
This commit also moves yield and join to the standard library, as requested in #42 . Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Brian Anderson
10a4ecbd96
stdlib: Remove a FIXME for issue #452
2011-06-11 00:42:52 +00:00
Graydon Hoare
52c4c9014f
Encode meta tags in the crate and start sketching enhanced logic for resolving crate "use" directives.
...
Now with extra "works on OSX" kludging.
2011-06-10 12:57:29 -07:00
Patrick Walton
dfdd6dbc54
rustc: Remove the bitwise not operator
2011-06-10 10:47:33 -07:00
Marijn Haverbeke
f28796ed99
Fix unsafe uses of mutable references
2011-06-10 16:44:32 +02:00
Marijn Haverbeke
798bbd2e22
Fix all occurrences of writing to immutable aliases
...
You'd be surprised.
2011-06-10 12:15:28 +02:00
Tim Chevalier
17ff2a0d79
Further support for predicate constraints
...
Changed function types to include a list of constraints. Added
code for parsing and pretty-printing constraints. This necessitated
splitting pprust into two files (pprust and ppaux) to break a
circulate dependency, as ty_to_str now needs to print out constraints,
which may include literals, but pprust depended on ty.
2011-06-09 11:37:52 -07:00
Patrick Walton
80f86d1e9b
stdlib: Make union-find not create loops when unifying two already-unified sets
2011-06-09 10:51:51 -07:00
Marijn Haverbeke
537d879dc1
Properly handle lifetime of aliases in nested blocks
...
There was a bug that would cause the alias analyser to allow you to
invalidate an alias that was no longer directly referred to, even if
another alias was rooted in it. It now properly tracks dependencies
between live aliases.
Required another case of copying values in map.rs.
2011-06-09 14:19:13 +02:00
Marijn Haverbeke
43fbb07126
Add vec::member
2011-06-09 13:11:28 +02:00
Marijn Haverbeke
77c1b9650f
Some more workarounds to please the alias checker
...
Some of the vec utilities now only work on immutable vecs, since they
would have to be rewritten to do a lot more copying to be alias-safe.
Some forced copying was added to map.rs, showing a weakness in the
alias checker (or maybe the alias system): when fn args are passed
into a function, calling them must assume all aliases that are not
immutably rooted (directly connected to a local or temporary without
any mutable edges) become invalid. This will be a drag on functional
programming in Rust.
Work around alias issues in the stdlib
2011-06-09 13:08:39 +02:00
Graydon Hoare
8691a1a1e5
Tidy up 'export meta' situation now that snapshot understands it.
2011-06-08 15:58:03 -07:00
Patrick Walton
ddec6b5f47
rustc: Use a set-based approach to unification; remove ty_bound_param and ty_local.
...
Sorry, big perf regression; will fix soon.
2011-06-07 19:33:18 -07:00
Graydon Hoare
721c5bbee8
More work on proper linkage name-mangling. Almost right, aside from version numbers.
2011-06-07 18:08:17 -07:00
Graydon Hoare
319156c8d1
Begin tidying up name-mangling rules.
2011-06-06 15:48:47 -07:00
Brian Anderson
53ea2a4751
stdlib: Use spans for #fmt errors originating in std
...
Issue #444
2011-06-04 19:48:19 -04:00
Patrick Walton
cb4c969ba6
rustc: Add a "smallintmap" implementation
2011-06-03 16:15:14 -07:00
Marijn Haverbeke
5144f790fe
Fix and un-xfail vec-append test
2011-06-02 16:45:26 +02:00
Patrick Walton
8c3809afd0
stdlib: Add some functions to getopts to deal with optional arguments more easily
2011-06-01 18:32:05 -07:00
Paul Stansifer
9f5dddf08c
Now imports are not re-exported unless 'export' is explicitly used.
2011-05-31 18:43:26 -07:00
Brian Anderson
ed0eb8f45a
stdlib: Remove unneeded type params from alt patterns
2011-05-31 01:23:53 -04:00
Paul Stansifer
3375b8fba2
Add list function 'has'.
2011-05-27 02:42:33 +00:00
Paul Stansifer
22953f52fa
Added filter_map.
2011-05-27 02:42:33 +00:00
Tim Chevalier
83cdb47a7c
Add a list append function, which I didn't end up using, but why not add it?
2011-05-26 19:13:56 -07:00
Kelly Wilson
31de8e15c0
Add quick_sort3 function based on 'QuicksortIsOptimal.pdf' (see comments in file). Cleanup the quick_sort function a little, as well. Add test file.
2011-05-24 18:38:41 -04:00
Brian Anderson
8637c09cf9
stdlib: Make the bound vector an alias in std::deque
...
Workaround for issue #375
2011-05-23 19:45:51 -04:00
Brian Anderson
837dff9226
stdlib: Export match type from std::getopts
2011-05-22 16:41:06 -04:00
Brian Anderson
c1122a6707
stdlib: Use if/alt expressions in std::uint
2011-05-22 12:28:27 -04:00
Brian Anderson
1ecd6a82ab
stdlib: Use if/alt expressions in std::str
2011-05-22 12:28:27 -04:00
Brian Anderson
443e1e4557
stdlib: Use if/alt expressions in std::option
2011-05-22 12:28:27 -04:00
Brian Anderson
820ccf4a13
stdlib: Do tail calls in std::map. Remove FIXMEs
2011-05-22 12:28:20 -04:00
Brian Anderson
2d17d9101d
stdlib: Use if/alt expressions in std::map
2011-05-22 12:28:20 -04:00
Brian Anderson
f1c1887cab
stdlib: Remove unneeded fail statements from std::list. Remove FIXMEs
2011-05-22 12:28:14 -04:00
Brian Anderson
f6beec6c43
stdlib: Do tail calls in std::list. Remove FIXMEs
2011-05-22 12:28:08 -04:00
Brian Anderson
b4c9f782e4
stdlib: Add list::from_vec
2011-05-22 02:10:10 -04:00
Brian Anderson
1e9aef828c
stdlib: Reindent list.rs
2011-05-22 02:10:10 -04:00
Brian Anderson
d4f5f69930
stdlib: Use if/alt expressions in std::io
2011-05-22 02:10:10 -04:00
Brian Anderson
d4da3f5172
stdlib: Use if/alt expressions in std::int
2011-05-22 02:10:09 -04:00
Brian Anderson
d85447c4fb
stdlib: Use initial caps for all error messages in std::getopts
2011-05-22 02:10:09 -04:00
Brian Anderson
3a2d64f044
stdlib: Use if/alt expressions in std::getopts
2011-05-22 02:10:09 -04:00
Brian Anderson
a0f855e488
stdlib: Report an error when getopts is given an argument to a flag option
2011-05-22 02:10:09 -04:00
Brian Anderson
c1a6c2e6c2
stdlib: Only export what's necessary from std::getopts
2011-05-22 02:10:09 -04:00
Brian Anderson
264c3b5be4
stdlib: Use if/alt expressions in std::generic_os
2011-05-22 02:10:09 -04:00
Brian Anderson
da0e961f61
stdlib: Use if/alt expressions in std::fs
2011-05-22 02:10:09 -04:00
Brian Anderson
85bcf75da1
stdlib: Add regression test for fs::connect and a FIXME
2011-05-22 02:10:09 -04:00
Brian Anderson
0755a30051
stdlib: Use if/alt expressions in std::deque
2011-05-22 02:10:08 -04:00
Brian Anderson
6432599c5d
stdlib: Use if/alt expressions in std::bitv
2011-05-22 02:10:08 -04:00
Brian Anderson
90e6453f46
stdlib: Use if/alt expressions in std::extfmt
2011-05-22 02:10:08 -04:00
Brian Anderson
01c13a3878
stdlib: Add io::writer.write_line
2011-05-20 22:32:41 -04:00
Brian Anderson
fc8b9671bb
stdlib: Export only what's needed from std::bitv
2011-05-20 22:12:57 -04:00
Brian Anderson
04ce99b83c
stdlib: Export only what's needed from std::sort
2011-05-20 22:12:16 -04:00
Brian Anderson
7817824205
stdlib: export ptr_eq from box, but not rustrt
2011-05-20 21:32:57 -04:00
Patrick Walton
4eb476fc75
stdlib: Modify union-find to guarantee that root nodes are always less than or equal to leaf nodes; add a "prune" method
2011-05-20 15:50:43 -07:00
Eric Holk
5d09e12e15
Added two version of reverse and a swap function to the standard library.
2011-05-19 17:25:37 -07:00
Patrick Walton
6b95584df5
stdlib: Add vec growth functions that use a thunk to initialize elements
2011-05-19 16:07:12 -07:00
Tim Chevalier
e16b097599
Rewrite tstate.annotate to use walk instead of fold
...
and various other tidying in typestate
2011-05-19 11:40:16 -07:00
Tim Chevalier
ea1701de8c
Add a set_all function in bitv that's the inverse of clear
2011-05-19 11:40:16 -07:00
Patrick Walton
6417610788
rustc: Generalize variable bindings so that we can use it for locals too
2011-05-19 11:14:44 -07:00
Patrick Walton
ace8058277
rustc: Have typechecking no longer rebuild the AST
2011-05-17 20:13:04 -07:00
Patrick Walton
df9801c9f0
rustc: Fix type mismatch in lib/sha1.rs constants
2011-05-17 20:13:03 -07:00
Marijn Haverbeke
09d8ef8d51
Finally rename std::_xxx to std::xxx
...
Except for _task, which is still a keyword.
2011-05-17 20:41:41 +02:00
Brian Anderson
63cf381ca1
stdlib: Remove transitional extfmt.RT module
2011-05-17 00:58:52 -04:00
Graydon Hoare
fbbc1a77d2
Rewrite everything to use [] instead of vec() in value position.
2011-05-16 18:21:22 -07:00
Marijn Haverbeke
57ffa2a487
Make the parser more careful about keywords
...
Keywords are now only recognized in contexts where they are valid. The
lexer no longer recognizes them, all words are lexed as IDENT tokens,
that get interpreted by the parser.
2011-05-13 22:00:13 +02:00
Brian Anderson
c124404d0e
Fix naming of libc that was mangled by recent module changes
...
It doesn't appear that rustc makes use of these strings so it didn't actually
break anything yet.
2011-05-13 13:55:57 -04:00
Brian Anderson
02fdd2d2d9
Rename std.extfmt.CT to std.extfmt.RT to ct and rt
...
Temporarily duplicate the entire RT module, leaving it with the old name to
accomodate the stage0 compiler. Will be removed after the next snapshot.
2011-05-12 22:22:28 -04:00
Marijn Haverbeke
3816e57fd2
Downcase std modules again, move to :: for module dereferencing
...
This should be a snapshot transition.
2011-05-12 21:30:44 +02:00
Marijn Haverbeke
88621bc53c
Remove a few more 'mutable' words
...
Didn't see these before because they live in non-Linux code.
2011-05-11 15:39:39 +02:00
Marijn Haverbeke
e9c12ab1d0
Rewrite comp/middle/resolve.rs
...
* Cleans up the algorithm
* Move first pass to walk (second still folds)
* Support part of a type/value namespace split
(crate metadata and module indices still need to be taught about this)
* Remove a few blatant inefficiencies (import tables being recreated for
every lookup, most importantly)
2011-05-11 12:32:37 +02:00
Brian Anderson
e4c3287367
Reuse a single work buffer every time the SHA1 message block is processed.
...
This finally allows the full lib-sha1 test to run in a reasonable amount of
time. Was 30s, now 3s. Trims a second or two from stage2/rustc. XFAIL lib-sha1
in stage0 since it will be very slow until the next snapshot.
2011-05-11 01:38:17 -04:00
Brian Anderson
7e7d134e3c
Remove unnecessary array access from SHA1
...
Provides a very small speedup.
2011-05-11 01:38:17 -04:00
Brian Anderson
e35984b6c6
Introduce str_slice runtime function
...
This reduces the time to execute the new lib-str tests from 1:40ish to a few
seconds and will eventually allow the full lib-sha1 test to run in a
reasonable amount of time. XFAIL lib-str in stage0 - it will run very slowly
until the next snapshot.
2011-05-11 01:38:16 -04:00
Patrick Walton
869e9017eb
rustc: Create mutable vectors in macos_OS.rs. Should put out Darwin tinderbox.
2011-05-10 17:50:39 -07:00
Graydon Hoare
4b5b96c511
Remove a couple more spurious 'mutable' value qualifiers from macos_OS.rs.
2011-05-10 17:04:41 -07:00
Patrick Walton
813636d52e
stdlib: Remove Str.unsafe_from_mutable_bytes(). rustc now self-hosts 18 seconds faster.
2011-05-10 15:20:36 -07:00
Graydon Hoare
10a2093d37
Failure to re-stage changes strikes again.
2011-05-06 16:54:50 -07:00
Graydon Hoare
0f23bbac01
Fix GenericOS.getenv returning a raw str, return an Option.t[str] instead.
2011-05-06 16:30:39 -07:00
Marijn Haverbeke
a3ec0b1f64
Rename std modules to be camelcased
...
(Have fun mergining your stuff with this.)
2011-05-06 22:51:19 +02:00
Kelly Wilson
b4a0d891c0
Ge the host triple using LLVM. Fix a few 'mutable' warnings also.
2011-05-06 11:30:39 -07:00
Kelly Wilson
850dff486e
Add quick sort function to the std lib.
2011-05-05 16:40:57 -07:00
Graydon Hoare
50ac893b00
Attempt to fix fs.dirname harder.
2011-05-05 14:31:45 -07:00
Graydon Hoare
2131f2bb6b
Because good hackers at least check to see if the code compiles.
2011-05-05 13:53:57 -07:00
Graydon Hoare
c80255e510
Fix assumption that only os_fs.path_sep can separate paths, sigh.
2011-05-05 13:42:52 -07:00
Marijn Haverbeke
1f45dda9d2
Remove 'deprecated mutable...' from our code
...
This should make compilation a bit less noisy.
2011-05-05 20:19:43 +02:00
Patrick Walton
147a2d655f
Un-revert "Use different syntax for checks that matter to typestate", fixing the problem.
...
This reverts commit d08b443fff
.
2011-05-02 17:50:46 -07:00
Graydon Hoare
d08b443fff
Revert "Use different syntax for checks that matter to typestate"
...
This reverts commit aa25f22f19
. It broke stage2, not sure why yet.
2011-05-02 17:35:33 -07:00
Tim Chevalier
aa25f22f19
Use different syntax for checks that matter to typestate
...
This giant commit changes the syntax of Rust to use "assert" for
"check" expressions that didn't mean anything to the typestate
system, and continue using "check" for checks that are used as
part of typestate checking.
Most of the changes are just replacing "check" with "assert" in test
cases and rustc.
2011-05-02 12:16:29 -07:00
Patrick Walton
5d3e553141
stdlib: Add a Time module to the standard library
2011-04-29 11:54:06 -07:00
Patrick Walton
66e5dfbde6
stdlib: Provide "array" as a friendlier shorthand for "vec[mutable? T]"
2011-04-28 17:15:32 -07:00
Patrick Walton
660c742902
stdlib: Add a color_supported() function to Term
2011-04-28 14:54:00 -07:00
Patrick Walton
5f60937318
stdlib: Add getenv(3) to win32_os.
2011-04-28 14:35:22 -07:00
Tim Chevalier
7c4f8cb459
Further work on typestate_check
...
Lots of work on typestate_check, seems to get a lot of the way
through checking the standard library.
* Added for, for_each, assign_op, bind, cast, put, check, break,
and cont. (I'm not sure break and cont are actually handled correctly.)
* Fixed side-effect bug in seq_preconds so that unioning the
preconditions of a sequence of statements or expressions
is handled correctly.
* Pass poststate correctly through a stmt_decl.
* Handle expr_ret and expr_fail properly (after execution of a ret
or fail, everything is true -- this is needed to handle ifs and alts
where one branch is a ret or fail)
* Fixed bug in set_prestate_ann where a thing that needed to be
mutated wasn't getting passed as an alias
* Fixed bug in how expr_alt was treated (zero is not the identity
for intersect, who knew, right?)
* Update logging to reflect log_err vs. log
* Fixed find_locals so as to return all local decls and exclude
function arguments.
* Make union_postconds work on an empty vector (needed to handle
empty blocks correctly)
* Added _vec.cat_options, which takes a list of option[T] to a list
of T, ignoring any Nones
* Added two test cases.
2011-04-28 13:26:19 -07:00
Patrick Walton
616ae95f6b
stdlib: Use an unsafe cast to speed up the memory writer
2011-04-27 18:18:28 -07:00
Patrick Walton
180a389832
stdlib/rt: Add an unsafe function to cast immutable vectors to mutable ones
2011-04-27 18:14:56 -07:00
Graydon Hoare
4c7886de80
Fix _str.bytes to trivial version.
2011-04-27 13:06:19 -07:00
Patrick Walton
fef8314c2e
stdlib: Real fix for _uint.parse_buf().
2011-04-27 11:59:22 -07:00
Patrick Walton
73044b3455
stdlib: Fix a crazy underflow bug in _uint.parse_buf. Oops.
2011-04-27 11:49:06 -07:00
Brian Anderson
8216b5fc10
Fix the interaction between various flags in #fmt
2011-04-26 20:49:03 -04:00
Brian Anderson
2e12fbfc06
Support octal #fmt conversions
2011-04-26 20:20:17 -04:00
Brian Anderson
66b59e4b05
Make #fmt char conversions behave like printf
2011-04-26 20:20:17 -04:00
Patrick Walton
79d27ccb58
stdlib: Add a silly ANSI color library
2011-04-26 13:08:48 -07:00
Marijn Haverbeke
74c7457131
Add GetOpts module to std
2011-04-26 20:30:44 +02:00
Marijn Haverbeke
d0ed2e384a
Add _str.slice to std lib
2011-04-26 17:38:14 +02:00
Graydon Hoare
5fe21b5af0
Skip likely-zero initial probe, speed up map.rs.
2011-04-25 04:12:33 +00:00
Graydon Hoare
d3eb3b42aa
Minimize calls to hash function in map.rs
2011-04-22 01:06:20 -07:00
Patrick Walton
735435bf96
stdlib: Add a pointer equality function to the standard library and a test case
2011-04-21 16:44:17 -07:00
Tim Chevalier
b7dd75c904
Handle nested items correctly in typestate_check
...
Summary says it all. Actually, only nested objects and functions
are handled, but that's better than before. The fold that I was using
before to traverse a crate wasn't working correctly, because annotations
have to reflect the number of local variables of the nearest enclosing
function (in turn, because annotations are represented as bit vectors).
The fold was traversing the AST in the wrong order, first filling in
the annotations correctly, but then re-traversing them with the bit
vector length for any outer nested functions, and so on.
Remedying this required writing a lot of tedious boilerplate code
because I scrapped the idea of using a fold altogether.
I also made typestate_check handle unary, field, alt, and fail.
Also, some miscellaneous changes:
* added annotations to blocks in typeck
* fix pprust so it can handle spawn
* added more logging functions in util.common
* fixed _vec.or
* added maybe and from_maybe in option
* removed fold_block field from ast_fold, since it was never used
2011-04-19 14:56:28 -07:00
Graydon Hoare
3d9cf15d0b
Remove half-baked 'opacity' layer qualifier.
2011-04-19 14:00:04 -07:00
Graydon Hoare
d2bd07dcb0
Remove effect system from src.
2011-04-19 13:35:49 -07:00
Marijn Haverbeke
6511d471ba
replace error logging with log_err in stdlib and rustc
2011-04-19 16:57:13 +02:00
Brian Anderson
7f90000ab6
Precision overrides 0-padding in #fmt
2011-04-18 22:53:26 -04:00
Brian Anderson
59d5267936
Rearrange ExtFmt.RT.pad to recover some horizontal space
2011-04-18 21:36:04 -04:00
Brian Anderson
869b28e393
Left-justification overrides 0-padding in #fmt
2011-04-18 21:36:04 -04:00
Brian Anderson
d4f1a48111
Support 0 flag in #fmt
2011-04-18 21:36:04 -04:00
Brian Anderson
9976bb93d6
Support the space flag in #fmt
2011-04-17 19:50:58 -04:00
Brian Anderson
86a43c24d6
Support + flag in #fmt
2011-04-17 18:19:26 -04:00
Brian Anderson
1bec738c56
Support #fmt precision for bools, with same rules as strings
...
Not totally confident this is desirable. The alternative would be to make it a
compile error.
2011-04-17 17:24:17 -04:00
Brian Anderson
685e820465
Treat char #fmt conversions just like str conversions
...
Add missing tests
2011-04-17 17:06:55 -04:00
Brian Anderson
8f6603f58e
Support #fmt precision for signed types
2011-04-17 16:51:17 -04:00
Brian Anderson
4c0aea69da
Support #fmt precision for unsigned types
2011-04-17 16:18:25 -04:00
Brian Anderson
c7edcb3a72
Support #fmt precision for string types
2011-04-17 13:10:02 -04:00
Brian Anderson
96e3e29e88
Support left-justification in #fmt conversions
2011-04-16 19:43:29 -04:00
Brian Anderson
dcfdb02fab
Make #fmt support explicit conversion widths
2011-04-16 18:01:17 -04:00
Patrick Walton
3e922e2ecf
stdlib: Add some vector functions: empty, empty_mut, grow_set, and freeze. Change _vec.grow to use uint arguments.
2011-04-15 17:46:16 -07:00
Patrick Walton
ec5a60d5e2
rustc: Use union-find for variable substitution
2011-04-14 11:24:25 -07:00
Brian Anderson
99a697b56a
Add support for upper-case hex and binary output to #fmt.
...
Only works for uints at present. Necessitated the addition of _str.to_upper.
2011-04-13 22:14:54 -04:00
Brian Anderson
5c0f4c1939
Add more commentary about ExtFmt
2011-04-13 22:14:40 -04:00
Brian Anderson
4844e1c08a
Add support for printing uints as lower-case hex to ExtFmt.
...
Begin passing an ExtFmt.RT.conv parsed format description to each of the
ExtFmt.RT.conv* functions.
2011-04-13 22:14:24 -04:00
Brian Anderson
aebdef0cd6
Move #fmt conversion model into ExtFmt.CT namespace
2011-04-13 22:13:21 -04:00
Tim Chevalier
7c6e6fc5d4
Make expr_while work in typestate_check
...
Also did some refactoring in typestate_check. All test cases in
compile-fail that involve uninitialized vars now fail correctly!
(All eight of them, that is.)
2011-04-13 15:50:34 -07:00
Graydon Hoare
80a4b1ba53
Slight updates to match API drift in io, lib-io.rs passes.
2011-04-13 12:05:15 -07:00
Tim Chevalier
d7e8818414
Further work on typestate. Handles expr_rec and expr_assign now.
...
Also changed the ts_ann field on statements to be an ann instead,
which explains most of the changes.
As well, got rid of the "warning: no type for expression" error
by filling in annotations for local decls in typeck (not sure whether
this was my fault or not).
Finally, in bitv, added a clone() function to copy a bit vector,
and fixed is_true, is_false, and to_str to not be nonsense.
2011-04-12 14:31:46 -07:00
Brian Anderson
73eecbd0ca
Factor out creation of calls into ExtFmt.RT
2011-04-11 21:55:03 -04:00
Brian Anderson
bba245f3e6
Add support for bool, char to extfmt.
...
XFAIL syntax-extension-fmt in rustboot.
2011-04-11 21:54:03 -04:00
Brian Anderson
37f87161cc
Move ExtFmt compile-time functions into their own module
2011-04-11 21:51:23 -04:00
Brian Anderson
c41796f2ca
Use correct indentation for ExtFmt.rs
2011-04-11 21:51:23 -04:00
Brian Anderson
ce85b9eb7b
Make ExtFmt call its own functions instead of others defined in std
2011-04-11 21:51:23 -04:00
Brian Anderson
d4d0144bcf
Move extfmt parsing into standard library
2011-04-11 21:51:23 -04:00
Brian Anderson
5a36786634
Move the extfmt data model into the standard library.
2011-04-11 21:51:23 -04:00
Marijn Haverbeke
094d31f5e4
Make lexer buffer the whole file
...
This way, it won't have to go through a bunch of calls for each
byte fetched.
2011-04-09 01:05:18 +02:00
Tim Chevalier
9c001af07c
Implemented computing prestates and poststates for a few expression forms.
...
The typestate checker (if it's uncommented) now correctly rejects a
trivial example program that has an uninitialized variable.
2011-04-08 17:46:46 +00:00
Patrick Walton
afa6d85d61
stdlib: Add a simple union-find data structure
2011-04-07 18:02:01 -07:00
Marijn Haverbeke
53cc673db1
Re-add a read_byte() method to buf_reader objs
...
This was removed because of the repetition, but doing single-byte
reads in terms of read_bytes (which allocates a vec) is needlessly
slow. This change speeds up parsing by 22%.
(Eventually, we won't be able to escape handling the buffering in the
stdlib itself.)
2011-04-08 02:23:14 +02:00
Marijn Haverbeke
ac3026412b
Revise EBML reader API
...
New one is less stateful, easier to work with.
2011-04-07 14:19:16 -07:00
Tim Chevalier
2e90bd94de
Continued sketching out code for checking states against preconditions.
...
It's still sketchy. I added a typestate annotation field to statements
tagged stmt_decl or stmt_expr, because a stmt_decl statement has a typestate
that's different from that of its child node. This necessitated trivial
changes to a bunch of other files all over to the compiler. I also added a
few small standard library functions, some of which I didn't actually end
up using but which I thought might be useful anyway.
2011-04-06 17:58:18 -07:00
Tim Chevalier
3130348ee1
Started adding support for typestate checking.
...
I added a new field to the ast "ann" type for typestate information.
Currently, the field contains a record of a precondition bit vector and
postcondition vector, but I tried to structure things so as to make
it easy to change the representation of the typestate annotation type.
I also had to add annotations to some syntactic forms that didn't have
them before (fail, ret, be...), with all the boilerplate changes
that that would imply.
The main call to the typestate_check entry point is commented out and
the actual pre-postcondition algorithm only has a few cases
implemented, though the overall AST traversal is there. The rest of
the typestate algorithm isn't implemented yet.
2011-04-01 11:27:32 -07:00
Patrick Walton
3c1de96cda
rustc: Use the crate index to look up defs
2011-03-31 14:37:44 -07:00
Patrick Walton
dec92d392e
stdlib: Add a write_be_uint() function to writers
2011-03-31 11:54:52 -07:00
Graydon Hoare
e99feabf47
Add a result_str method to std.sha1.sha1.
2011-03-26 17:36:08 -07:00
Patrick Walton
24a75eeccc
rustc: Parse definition IDs from crates; add a function to parse unsigned ints to the standard library
2011-03-25 18:35:30 -07:00
Patrick Walton
94c19a18ae
rustc: Look up names in "use"d crates
2011-03-25 17:54:48 -07:00
Patrick Walton
864e2ab24e
stdlib: Implement a memory buffer reader, untested at the moment
2011-03-25 15:01:21 -07:00
Patrick Walton
739c4aedf1
stdlib: Separate basic I/O reading functionality into a separate buf_reader object, like writing
2011-03-25 14:06:18 -07:00
Marijn Haverbeke
a045514477
Start making the standard-lib utf-8 aware
...
Finally implements _str.is_utf8, adds from_chars, from_char, to_chars,
char_at, char_len, (push|pop|shift|unshift)_char. Also, proper
character I/O for streams.
2011-03-25 08:22:52 -07:00
Patrick Walton
af3d0d1848
rustc: Open "use"d crates; add a _vec.vec_from_buf() method along the way; XFAIL use-import-export.rs in rustc
2011-03-24 17:22:07 -07:00
Patrick Walton
c1bc0101ca
stdlib: Provide a function to extract the underlying buf_writer from a writer
2011-03-22 17:53:43 -07:00
Patrick Walton
d56971d5b4
stdlib: Add EBML writing functionality
2011-03-22 17:29:23 -07:00
Patrick Walton
e890383db1
stdlib: Add a convenience method for opening paths as a FILE
2011-03-22 17:29:23 -07:00
Patrick Walton
b33f0df152
stdlib: Make writers seekable; switch file writers to the C FILE interface to make this work
2011-03-22 16:40:22 -07:00
Patrick Walton
bcf04e253f
Revert "Remove usages of case(_) { fail; } since the compiler does this automatically". When we have exhaustiveness checking, "case(_) { fail; }" will be useful to silence warnings.
...
This reverts commit 92a716d862
.
2011-03-22 14:02:52 -07:00
Patrick Walton
6623597c18
lib: Add an EBML reader module
2011-03-22 14:00:27 -07:00
Brian Anderson
92a716d862
Remove usages of case(_) { fail; } since the compiler does this automatically
2011-03-22 08:11:34 -07:00
Patrick Walton
e56a1720e4
Add a "last" function to return the last element of a vector to the standard library
2011-03-21 17:21:35 -07:00
Patrick Walton
71de17d38e
Add a binding to ftell()
2011-03-21 16:41:18 -07:00
Graydon Hoare
0c7545c1ce
Switch win32 path_sep to '/', add comment explaining a bit.
2011-03-20 19:43:43 -07:00
Graydon Hoare
460d89156f
Add slightly nicer failure message to io.rs when it can't open a file.
2011-03-20 19:43:41 -07:00
Patrick Walton
9ad9d3783d
rustc: Fix list.foldl() to pass its second argument by alias
2011-03-18 15:19:32 -07:00
Patrick Walton
47d650e25b
rustc: Box the tuples returned by hashmap.items() for now since we don't have alias iterators yet
2011-03-18 15:18:45 -07:00
Patrick Walton
a9ba76d52a
Fix bug in string comparison. std.rc typechecks now.
2011-03-18 14:15:27 -07:00
Patrick Walton
0cf16e77ca
Add "mutable?" to _vec in the standard library; fix callers
2011-03-18 14:01:03 -07:00
Patrick Walton
368eb4bab6
Add some mutable variants of vector functions to the standard library
2011-03-18 13:53:49 -07:00
Patrick Walton
8aa946ff5e
Make some standard library pieces no longer dependent on mutable parameters, which rustc doesn't support
2011-03-18 13:32:15 -07:00
Patrick Walton
84321d1f59
Add an option.is_none() method
2011-03-17 11:21:11 -07:00
Patrick Walton
ea7197e2cf
rustc: Add str_from_cstr() and str_from_buf() functions to the standard library, as well as a test case
2011-03-16 18:42:08 -07:00
Graydon Hoare
6a6a30b792
Remove uses of 'break' in std lib; rustc doesn't support it yet, this is easier for now.
2011-03-16 16:47:27 -07:00
Graydon Hoare
54587bdccb
Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process.
2011-03-16 14:58:02 -07:00
Patrick Walton
1a3f533d28
Typo: FIXE -> FIXME
2011-03-15 17:13:19 -07:00
Patrick Walton
6d5379cdcb
Add a fs.connect() function to join paths
2011-03-15 17:11:55 -07:00
Patrick Walton
a8d8ea3cf3
Add an OS-specific dylib_filename() function to the standard library
2011-03-15 16:56:59 -07:00
Graydon Hoare
45f7955261
Put out darwin fire.
2011-03-14 16:14:17 -07:00
Brian Anderson
922f69387d
Add _int.pow
2011-03-14 15:52:48 -07:00
Marijn Haverbeke
ea5dc54c3f
Add functionality for running external programs to the std lib
...
See lib/run_program.rs.
2011-03-14 14:57:13 -07:00
Marijn Haverbeke
441697ab35
Extend stream functionality
...
Writer and reader streams now come with methods to write and read
little-endian numbers. Whether that is the right place for such
methods is debatable, but for now, that's where they live.
2011-03-14 14:57:13 -07:00
Marijn Haverbeke
c731d625fe
Add basic file-system functionality
...
std.fs.list_dir will list the files in a directory, std.fs.file_is_dir
will, given a pathname, determine whether it is a directory or not.
2011-03-14 14:57:13 -07:00
Graydon Hoare
11a10c7a7b
Remove redundant imports in lib (rustc doesn't like 'std' as a synonym for root within std.rc anyway)
2011-03-09 17:29:18 -08:00
Marijn Haverbeke
aed40fbcd8
Have the pretty-printer take a writer stream as argument
...
It now uses a string writer to also fill in for
middle.ty.ast_ty_to_str
2011-03-09 16:15:55 -08:00
Marijn Haverbeke
dddd7d8f44
Add stdout_writer and string_writer to std.io
...
For use by pretty-printer. string_writer API is a bit silly
right now, feel free to suggest a cleaner way to do this.
2011-03-09 16:15:52 -08:00
Marijn Haverbeke
0624f9db4a
Add a pretty-printer
...
Adds a -pp option to the compiler which will cause it to simply
pretty-print the given file.
2011-03-07 12:58:08 -08:00
Brian Anderson
bed457d3a7
Change io.fileflag to a tag type. Remove FIXME
2011-03-06 15:13:30 -08:00
Brian Anderson
330c9c6c35
Make _str.bytes use _vec.init_fn. Remove FIXME.
2011-03-06 15:13:28 -08:00
Brian Anderson
3b7e9dc393
Rustify some comments lifted directly from the sha-1 reference implementation
2011-02-22 21:52:23 -05:00
Brian Anderson
c4df39609c
Rename std._io to std.io since 'io' is no longer a keyword
2011-02-22 21:52:23 -05:00
Brian Anderson
cbe8d222a8
Implement sha-1 in standard library. Closes #228
2011-02-21 01:00:43 -05:00
Graydon Hoare
11cbbcf79e
Add std.path module for pathname manipulations.
2011-01-10 18:17:24 -08:00
Graydon Hoare
b000bfeedc
Fail in new_stdio_reader when libc.fopen fails.
2011-01-10 18:16:57 -08:00
Graydon Hoare
001d7bfa17
Add _str.starts_with and ends_with.
2011-01-03 20:39:33 -08:00
Graydon Hoare
c0d4e88428
Add std.dbg.trap(str msg) for help debugging.
2010-12-31 10:35:39 -08:00
Graydon Hoare
3504f4a4bf
Sort methods in object types.
2010-12-21 16:43:28 -08:00