Commit Graph

559 Commits

Author SHA1 Message Date
Niko Matsakis
3a2f1e1876 add serialization library; convert ebml lib to use u64 internally 2012-02-13 06:50:58 -08:00
Kevin Cantu
c81867474a (core::str) add find_bytes and export it... 2012-02-13 01:56:58 -08:00
Kevin Cantu
2ba44e24d5 (core::str) rename byte_len_range -> substr_len_bytes and
rename char_len_range -> substr_len_chars
2012-02-12 15:30:20 -08:00
Kevin Cantu
2b4f5136a5 (core::str) rename byte_len -> len_bytes and rename char_len -> len 2012-02-12 15:30:20 -08:00
Kevin Cantu
944f5a6598 (core::str) move push_byte, push_bytes, pop_byte, and shift_byte into str::unsafe 2012-02-12 15:30:20 -08:00
Kevin Cantu
e0af23b664 using str::rindex... 2012-02-11 16:39:39 -08:00
Kevin Cantu
27161f4415 using str::index... 2012-02-11 16:39:39 -08:00
Kevin Cantu
a131b430a0 core::str rename [r]index -> [r]index_bytes 2012-02-11 16:39:39 -08:00
Niko Matsakis
e712a47a81 create serialization lib and update serializer to use it 2012-02-10 20:48:29 -08:00
Niko Matsakis
fdddf8f9e1 put serializer into the build and encode full item paths 2012-02-10 20:48:28 -08:00
Niko Matsakis
5d57fa3403 update ebml interface 2012-02-10 20:48:28 -08:00
Marijn Haverbeke
52a741754c Remove some pointless imports 2012-02-09 15:30:27 +01:00
Marijn Haverbeke
50fb4c30ed Increase precedence of as operator
Closes #1717
2012-02-09 11:58:08 +01:00
Brian Anderson
6cf40bd0c4 std: Use correct split function in generic_os::env 2012-02-07 20:20:58 -08:00
Graydon Hoare
93450abb4b Make process-spawning take environments and working directories, remove procsrv task from compiletest. 2012-02-07 19:57:03 -08:00
Kevin Cantu
2b0396c34a core: make str::substr use char positions (and replace other uses) 2012-02-07 16:25:35 -08:00
Kevin Cantu
a3f5626ad1 String split renaming:
* Renamed str::split -> str::split_byte
* Renamed str::splitn -> str::splitn_byte
* Renamed str::split_func -> str::split
* Renamed str::split_char -> str::split_char
* Renamed str::split_chars_iter -> str::split_char_iter
* Added u8::is_ascii
* Fixed the behavior of str::split_str, so that it matches split_chars
  and split (i.e. ["", "XXX", "YYY", ""] == split_str(".XXX.YYY.", "."))
* Fixed str::split_byte and str::splitn_byte so that they handle
  splitting UTF-8 strings on a given UTF-8/ASCII byte and also handle ""
  as the others do
2012-02-07 16:25:35 -08:00
Brian Anderson
fdf50e84b8 std: Use ctypes::c_int in path_is_dir 2012-02-05 16:21:52 -08:00
Brian Anderson
91b6dc5c8e Merge remote-tracking branch 'erickt/master'
Conflicts:
	src/libcore/vec.rs
	src/libstd/getopts.rs
2012-02-05 15:15:21 -08:00
Tom Lee
31b0d1b4bd core: rename str::lteq to str::le 2012-02-03 14:09:44 +01:00
Tom Lee
a02f332602 std: rename sort::lteq to sort::le. 2012-02-03 12:02:57 +01:00
Graydon Hoare
c485301d21 Update libuv. 2012-02-02 17:39:47 -08:00
Graydon Hoare
6784b18303 Win32 warning police. 2012-02-02 11:35:07 -08:00
Kevin Cantu
ae0d49aa06 Rename str::char_slice -> str::slice 2012-02-01 21:56:53 -08:00
Kevin Cantu
8f367ebfeb Rename (again) str::unsafe::slice -> str::unsafe::slice_bytes and
str::unsafe::safe_slice -> str::unsafe::slice_bytes_safe_range
2012-02-01 21:56:53 -08:00
Kevin Cantu
6156bc56cb Propagating unsafe::slice 2 2012-02-01 21:56:53 -08:00
Kevin Cantu
47c57a17dc Propagating unsafe::slice 1 2012-02-01 21:56:53 -08:00
Marijn Haverbeke
856a544d0c Remove native types from stdlib 2012-02-01 12:23:13 +01:00
Tim Chevalier
e5d095d67e Change option::t to option
Now that core exports "option" as a synonym for option::t, search-and-
replace option::t with option.

The only place that still refers to option::t are the modules in libcore
that use option, because fixing this requires a new snapshot
(forthcoming).
2012-01-31 17:05:20 -08:00
Kevin Cantu
685a434e0a Rename str::loop_chars to str::all,
rename str::loop_chars_sub to str::substr_all, and
propagate this change to std::rope and rustdoc's calls to these
2012-01-31 14:29:11 -08:00
Tim Chevalier
fba35e1a3c Require alts to be exhaustive
middle::check_alt does the work. Lots of changes to add default cases
into alts that were previously inexhaustive.
2012-01-31 10:08:24 -08:00
Paul Woolcock
e1251f7b00 Change all ternary ops to if/then/else
All the files below had at least one instance of the ternary operator
present in the source.  All have been changed to the equivalent
if/then/else expression.
2012-01-30 18:21:01 +01:00
Erick Tryzelaar
5b2c0a999f std: Whitespace cleanup. 2012-01-28 09:18:35 -08:00
Erick Tryzelaar
259636a112 core: rename vec::position* functions
Almost all of the vec functions that predicates don't have a
corresponding function that takes a single element, so this
commit renames the common fn usecase to be the default.
2012-01-28 09:18:34 -08:00
Brian Anderson
3321880f13 Merge remote-tracking branch 'killerswan/fixing_strings_2'
Conflicts:
	src/comp/driver/driver.rs
	src/comp/middle/trans/base.rs
	src/comp/syntax/parse/lexer.rs
2012-01-27 16:44:40 -08:00
Brian Anderson
7e620f87a6 std: Long lines 2012-01-27 15:11:45 -08:00
Donovan Preston
6b42e6b298 Re-apply fixes brson made. 2012-01-27 15:07:29 -08:00
Donovan Preston
3d76922f97 Implement timers. 2012-01-27 14:04:13 -08:00
Marijn Haverbeke
e48bf6f3f4 Make occurs check in ty::fixup_vars more reliable
It wouldn't detect cycles that went through several type vars before.

Closes #1464
2012-01-27 18:58:52 +01:00
Brian Anderson
335302f08d std: Fix types in uvtmp tests 2012-01-26 16:19:46 -08:00
Donovan Preston
9e39219d9b Shuffle around to work with rust-spidermonkey 2012-01-26 16:01:26 -08:00
Kevin Cantu
5847cf0367 (TEMPORARY) Break something by making io::mem_buffer_str UTF-8 safe 2012-01-25 21:53:37 -08:00
Kevin Cantu
a185b10647 Replacing str::unsafe_from_bytes with str::from_bytes (part 6) 2012-01-25 01:42:28 -08:00
Kevin Cantu
57717fa4d8 Replacing str::unsafe_from_bytes with str::from_bytes (part 5) 2012-01-25 01:29:44 -08:00
Kevin Cantu
c7b23f9a86 Replacing str::unsafe_from_bytes with str::from_bytes (part 1) 2012-01-25 00:53:17 -08:00
Niko Matsakis
5e13d19cc0 s/block()/fn()/g 2012-01-23 19:06:33 -08:00
Brian Anderson
07f8555b3e std: Add some hacks to use libuv 2012-01-22 20:06:58 -08:00
Niko Matsakis
42b97f317a use u64 and not uint; otherwise shift results are undef. in 32 bit
Fixes #1605.
2012-01-21 19:31:52 -08:00
Niko Matsakis
de2bb2806f update to use u64; u32 has undefined results 2012-01-21 19:31:52 -08:00
Brian Anderson
52b1623089 std: Remove extfmt. Has been moved to core. Closes #1600 2012-01-21 13:51:54 -08:00
Graham Fawcett
fc2ae08b9c issue #1352: change param order on {std,core}::extfmt::str_init_elt to mirror vec::init_elt. 2012-01-21 13:33:16 -08:00
Graham Fawcett
7763b40c71 issue #1352: change param order on vec::init_elt, putting block in final position.
To match the init_fn() and init_fn_mut() changes.
2012-01-21 13:33:16 -08:00
Graham Fawcett
35d12be2ce fix #1352: change param order on vec::init_fn (and vec::init_fn_mut), putting block in final position. 2012-01-21 13:31:12 -08:00
Graydon Hoare
7b1a8f0a91 Additional ; to , changes, disable "tag" and ";" in parser. Close #1430. Close #1428. 2012-01-19 19:29:21 -08:00
Patrick Walton
6222e98dda lib: ';' to ',' in enums in more places 2012-01-19 19:08:49 -08:00
Patrick Walton
194d8e3bd5 lib: ";" to "," in enums 2012-01-19 18:04:24 -08:00
Brian Anderson
6d4884d983 libcore: Use 4x the number of scheduler threads for testing
An arbitrary number. I've done no measurements but it's intended to overcome
the effects of tasks randomly being scheduled to threads and no work stealing.

If scheduler threads == 1 then we just use a single test task.
2012-01-19 17:54:21 -08:00
Brian Anderson
928e55815c libcore: Do less blocking in the test runner 2012-01-19 17:54:21 -08:00
Patrick Walton
c5a407b11b stdlib: "tag" -> "enum" 2012-01-19 15:22:25 -08:00
Brian Anderson
48e916c8fa libstd: Long lines 2012-01-19 13:44:07 -08:00
Brian Anderson
f15182fffc Use fn~ to simplify the core::test interface 2012-01-19 13:37:01 -08:00
Tim Chevalier
5b028f527f Remove support for the '.' after a nullary tag in a pattern
(Commit also includes lots of changes to remove '.'s that a git
merge messed up, or else it was monkeys.)
2012-01-19 01:04:59 -08:00
Tim Chevalier
04a2887f87 Remove '.' after nullary tags in patterns
Does what it says on the tin.

The next commit will remove support for this syntax.
2012-01-18 23:17:34 -08:00
Haitao Li
7b1724fb40 libstd: Revert an integer type casting
Otherwise, rustctest failed by a segv fault.
2012-01-19 02:24:22 +08:00
Haitao Li
04882d7c43 rustc: Use integer from ctypes consistently 2012-01-19 02:10:36 +08:00
Haitao Li
dde41869ce Use ctypes in native function declarations 2012-01-19 02:10:36 +08:00
Brian Anderson
6e27b27cf8 libstd: Move std tests into libstd 2012-01-17 19:48:58 -08:00
Lenny222
b19fdcced2 libstd => libcore 2012-01-17 10:51:43 -08:00
Lenny222
106dcf7b92 spin-off rustdocs tuple code to libstd 2012-01-17 10:51:43 -08:00
Tim Chevalier
c3bc8fada8 Allow omission of the '.' after nullary tag patterns
This commit allows patterns like:

alt x { some(_) { ... } none { } }

without the '.' after none. The parser suspends judgment about
whether a bare ident is a tag or a new bound variable; instead,
the resolver disambiguates.

This means that any code after resolution that pattern-matches on
patterns needs to call pat_util::normalize_pat, which consults
an environment to do this disambiguation.

In addition, local variables are no longer allowed to shadow
tag names, so this required changing some code (e.g. renaming
variables named "mut", and renaming ast::sub to subtract).

The parser currently accepts patterns with and without the '.'.
Once the compiler and libraries are changed, it will no longer
accept the '.'.
2012-01-17 10:08:16 -08:00
Marijn Haverbeke
e046360e69 Add an std::md4 module 2012-01-17 12:02:04 +01:00
Brian Anderson
26551e5481 libstd: Remove util::void 2012-01-14 02:51:08 -08:00
Brian Anderson
a3f5c66484 libstd: Remove util::orb. Redundant with core::bool 2012-01-14 02:48:16 -08:00
Marijn Haverbeke
7150643588 Remove workaround for issue #1494
We have a snapshot that includes the fix.
2012-01-13 21:38:29 +01:00
Niko Matsakis
8685a1f7c4 distinguish "any closure" and "stack closure" (block) 2012-01-13 09:31:40 -08:00
Niko Matsakis
3f3bfeec27 make "native fn" the type for bare functions, remove fn exprs 2012-01-13 06:27:35 -08:00
Niko Matsakis
455f8b0d45 deprecate fn exprs and the fn() type, preferring fn@ and native fn 2012-01-13 06:27:34 -08:00
Brian Anderson
2c70b2fb7e libstd: Remove a bogus link_name attribute 2012-01-11 20:01:55 -08:00
Brian Anderson
6e1f9ad1f1 rustc: Don't allow empty link_name when nolink attribute is present
Closes #1326
2012-01-11 19:45:18 -08:00
Marijn Haverbeke
4c9c1cd199 Fix dependency bug iface-did-of-impl resolving
By simply not resolving that def id until the typeck pass.

Closes #1494
2012-01-11 21:40:13 +01:00
Marijn Haverbeke
34d7f05292 Major clean-up of std::io
Use ifaces instead of objs, stop wrapping everything in two (or three)
layers of no-value-added indirection, and remove some of the more
pointless/outdated idioms from the code.
2012-01-11 21:00:11 +01:00
Marijn Haverbeke
807592e99f Switch run_program over to ifaces 2012-01-11 20:33:44 +01:00
Marijn Haverbeke
4f76db43e6 Convert std::sha1 and std::rand over to ifaces 2012-01-11 20:33:44 +01:00
Marijn Haverbeke
26610dbbc8 Convert std::deque over to an iface 2012-01-11 20:33:44 +01:00
Marijn Haverbeke
15744210e7 Implement std::map as an iface/impl instead of an obj 2012-01-11 20:33:44 +01:00
Graydon Hoare
f6ecbe88ca Fix rpath bug. 2012-01-09 16:12:47 -08:00
Brian Anderson
fbad0204e4 Merge pull request #1470 from grahame/grahame
add new read_chars method, fix bug in read_char
2012-01-09 10:35:48 -08:00
Marijn Haverbeke
f30c5ea686 Remove leftover comm.rs in std
(The actual comm module lives in core.)
2012-01-09 14:53:13 +01:00
Grahame Bowland
ba694775f5 add tests for io::readchars and io::readchar
Additionally reformat so that 'make check' passes.
2012-01-09 20:49:17 +08:00
Brian Anderson
c5564c9bae Declare MIT license in crate attributes, not BSD
The Rust License is actually the MIT license, not BSD
2012-01-08 16:22:55 -08:00
Grahame Bowland
bcc25634e6 add new read_chars method, fix bug in read_char
having a read_chars method is convenient and more efficient.

the old read_char method had a bug due to re-use of the 'w' width
variable as a loop counter and so was broken for wide characters,
this patch fixes that.
2012-01-09 00:37:03 +08:00
Niko Matsakis
98f5109cde simplify task impl 2012-01-06 22:40:31 -08:00
Brian Anderson
4b2f37253a std: Untabify 2012-01-06 16:37:04 -08:00
Brian Anderson
74c825e385 std: Add fs::homedir
Returns the home directory of the user as appropriate for the platform.

Issue #1359
2012-01-06 16:33:17 -08:00
Erick Tryzelaar
6cfc196d42 libstd: rename c_vec::size to len. 2012-01-06 08:12:18 -08:00
Erick Tryzelaar
3e68803891 libcore: add [u8] helper functions to vec. 2012-01-06 07:47:14 -08:00
Erick Tryzelaar
eade7844a3 libstd: switch map to use libcore's hash functions. 2012-01-06 07:47:14 -08:00
Stefan Plantikow
c8467977c4 Merge branch 'master' into kmath
Conflicts:
	src/libcore/float.rs
2012-01-05 17:20:13 +01:00
Stefan Plantikow
1f10ee365c Moved generic float::min, max to core::math and cleaned up some imports 2012-01-05 17:11:34 +01:00
Stefan Plantikow
494ad4e601 Merge branch 'master' into kmath 2012-01-05 16:25:51 +01:00
Marijn Haverbeke
60ae1590af Switch to new param kind bound syntax
And remove support for the old syntax
2012-01-05 15:50:02 +01:00
Marijn Haverbeke
02505d8aa1 Express some list primitives in a way that doesn't copy
It was somewhat embarassing that list::len copied its elements.
2012-01-05 09:18:19 +01:00
Stefan Plantikow
6284190ef9 Merge branch 'master' into kmath
Conflicts:
	src/libcore/cmath.rs
2012-01-05 02:07:12 +01:00
Lenny222
d1ffe5034b "str": rename "str_from_cstr" to "from_cstr" (analogous to the other "from_*") 2012-01-04 09:33:07 +01:00
Niko Matsakis
72a3667eb3 Allow tail expressions even in no_value blocks. Type checker
will guarantee they have unit type.
2012-01-03 13:13:52 -08:00
Brian Anderson
513a263e81 Merge pull request #1392 from Lenny222/list
list: add "is_not_empty" requirement to "head" and "tail" (analogous to "vec")
2012-01-03 12:18:53 -08:00
Marijn Haverbeke
15be2fc73a Add 'copy' bounds to functions that were faultily accepted without
Issue #1390
2012-01-02 15:31:58 +01:00
User Jyyou
a59c4b1b47 freebsd support 2012-01-01 20:18:55 -08:00
Stefan Plantikow
d124c6eda2 removes std::mtypes 2011-12-31 03:45:17 +01:00
Lenny222
d07c6e8a0e list: use predicate to enforce non-empty requirement 2011-12-29 21:24:03 +01:00
Erick Tryzelaar
b6cecdd4de libstd: add bytes_reader and bytes_writer
This parallels nicely with string_reader and string_writer, but
working with raw byte strings. I'm not quite sure if the return
type for bytes_writer.get_bytes should be [u8] or [mutable u8]
though, so I'm arbitrarily picking mutable for now.
2011-12-28 11:19:41 -08:00
Erick Tryzelaar
1f0757c684 libstd: Allow io writer to write mutable arrays 2011-12-28 11:19:41 -08:00
Erick Tryzelaar
af41564747 libstd: add a method to generate random bytestrings. 2011-12-28 11:19:41 -08:00
Graydon Hoare
900bc1298d Merge pull request #1377 from Lenny222/icu
std::unicode::icu: add "is*" functions + unit test
2011-12-24 11:54:07 -08:00
Graydon Hoare
f0dfbe7b1b Register new snapshots, purge log_err and log_full in favour of log(...). 2011-12-22 17:53:53 -08:00
Graydon Hoare
389329ef1e Merge all 3 log syntaxes, tidy up residual misuses. 2011-12-22 16:14:00 -08:00
Erick Tryzelaar
43a6bd110e Whitespace cleanup. 2011-12-22 15:05:59 -08:00
Graydon Hoare
8b580954fe Register snapshots and switch logging over to use of log_full or #error / #debug. 2011-12-22 14:42:52 -08:00
Lenny222
d812d06bc8 std::unicode: add functions, unit test 2011-12-22 22:58:38 +01:00
Lenny222
341e4151d6 json: to_str() also for "null" 2011-12-22 08:46:50 +01:00
Lenny222
6f5a0a3b3b json: add "null" 2011-12-22 08:46:49 +01:00
Graydon Hoare
a24c19e867 Add companion-module core.rs that exports log levels and option/some/none everywhere. 2011-12-20 12:41:44 -08:00
Stefan Plantikow
b957916e06 removed math leftovers from std 2011-12-20 18:07:36 +01:00
Graydon Hoare
abbd86f1e6 Merge pull request #1334 from boggle/kmath
preparing for removing math from std
2011-12-19 11:58:19 -08:00
Erick Tryzelaar
8e9be037d1 Simplify getopts::find_opt. 2011-12-19 07:27:16 -08:00
Stefan Plantikow
fa27724a4b std: getopts now uses result::t (fixes #1289) 2011-12-18 18:55:39 -08:00
Stefan Plantikow
e1a9668ab2 preparing for removing math from std 2011-12-19 03:19:37 +01:00
Brian Anderson
39c8f0cb4a libstd: Long lines 2011-12-17 17:02:07 -08:00
Brian Anderson
00be346089 libstd: Add 'xterm-256-color' to list of color-enabled terminals 2011-12-17 16:44:27 -08:00
Brian Anderson
1477fb3f2b libstd: Temporarily use #[link_name = ""] 2011-12-16 15:29:59 -08:00
Graham Fawcett
7ddd353ef6 implement #[nolink]; deprecate #[link_name = ""]; note in stdlib to remove empty link_name.
Can't remove them from stdlib until the snapshotted compiler supports #[nolink].
2011-12-16 15:29:59 -08:00
Elly Jones
89e880d613 std: file_is_dir -> path_is_dir, add path_exists 2011-12-16 17:37:21 -05:00
Graydon Hoare
dbfa1b5689 Merge pull request #1317 from boggle/fix1315
fix to #1315 + small additions to std::either and result
2011-12-16 13:01:47 -08:00
Stefan Plantikow
7d786318a1 std: declared fns as pure where sensible 2011-12-16 18:18:34 +01:00
Niko Matsakis
b5e5043d5d reorder block() argument to bitv::process() 2011-12-16 08:01:05 -08:00
Niko Matsakis
2833ca478c reorder args to the various vec, option fns so blk comes last 2011-12-16 07:17:23 -08:00
Marijn Haverbeke
4f826d81f6 Make 1.f parse as a field access on the integer 1
A dot is only considered part of a number when not followed by a letter

Closes #1306
2011-12-16 11:46:57 +01:00
Graydon Hoare
dde5860380 Remove some duplicated unused parts of std now that they're present in core. 2011-12-14 18:04:45 -08:00
Stefan Plantikow
af8e471908 Fixed type resolution error in math tests 2011-12-14 14:54:16 -08:00
Stefan Plantikow
6d0901cb4d std: export math_f* as math::f* submods and use tailcalls in std::math 2011-12-14 14:54:16 -08:00
Graydon Hoare
fa9ad984fb Copy first batch of material from libstd to libcore. 2011-12-13 16:34:50 -08:00
Patrick Walton
cd0e57d2d4 stdlib: Fix spelling errors in documentation of libstd/str.rs 2011-12-13 14:53:14 -08:00
Erick Tryzelaar
e3a066bde8 Swap arg order for option::{may,maybe}
This lets us write the block syntax sugar:

option::may(x) { |y| … }
2011-12-09 10:22:24 -08:00
Brian Anderson
4f17131855 Add crate_type attributes to rustc, std, core 2011-12-08 21:09:48 -08:00
Niko Matsakis
0fc4403442 use util::rational to work around bug w/ floats on win 2011-12-07 17:05:58 -08:00
Niko Matsakis
1ff8994fce Purge old map impl: more collisions, not clear it is safe on 64bit 2011-12-07 17:05:58 -08:00
Niko Matsakis
4b704ac69b improve comments 2011-12-07 17:05:58 -08:00
Niko Matsakis
ed0e13f1d8 fix old map impl, add logging 2011-12-07 17:05:58 -08:00
Niko Matsakis
30a2361e68 add some debugging logs 2011-12-07 17:05:58 -08:00
Niko Matsakis
13a3288f3f dec size in remove 2011-12-07 17:05:58 -08:00
Niko Matsakis
ddfe82a466 make rehashing more efficient by not re-allocating entries 2011-12-07 17:05:58 -08:00
Niko Matsakis
729345cb97 implement a chained hashmap 2011-12-07 17:05:58 -08:00
Marijn Haverbeke
3d0610b072 Check for literals that are out of range for their type 2011-12-07 21:53:05 +01:00
Marijn Haverbeke
e3eca9174b Change literal representation to not truncate
Also shuffles around the organization of numeric literals and types,
separating by int/uint/float instead of machine-vs-non-machine types.
This simplifies some code.

Closes #974
Closes #1252
2011-12-07 21:08:28 +01:00
Niko Matsakis
6c95e400d8 repair more hash functions 2011-12-07 07:35:25 -08:00
Marijn Haverbeke
03a6e54212 Disallow binding by-mut-ref and by-move arguments
Fix bug in bound by-copy arguments.

Closes #1261
2011-12-07 15:28:57 +01:00
Niko Matsakis
66355607da hack for now: map uint hashes into a u32, which helps x86_64 perf. 2011-12-06 19:55:46 -08:00
Brian Anderson
89efb7d981 libstd: Update docs 2011-12-06 13:58:54 -08:00
Graydon Hoare
447414f007 Establish 'core' library separate from 'std'. 2011-12-06 12:13:04 -08:00