Commit Graph

1459 Commits

Author SHA1 Message Date
Brian Anderson
2cebef095e stdlib: Make io failures recoverable by returning a result 2011-10-29 01:25:11 -07:00
Brian Anderson
2b62a80202 stdlib: Add result::chain for composing results 2011-10-29 01:25:11 -07:00
Brian Anderson
802deac323 stdlib: Add fs::splitext
Splits a path into the filename + extension
2011-10-28 23:34:01 -07:00
Brian Anderson
a2377ccf91 stdlib: Add vec::init. Returns all but the last element.
Per haskell, to go with head/tail, and last.
2011-10-28 22:42:38 -07:00
Matt Brubeck
9c5c108d5b Add more isNaN tests 2011-10-28 14:44:39 -07:00
Matt Brubeck
45d7777991 Change behavior of float::nonpositive/nonnegative
Rather than being defined as !positive and !negative, these should act the
same as negative and positive (respectively).  The only effect of this change
should be that all four functions will now return false for NaN.
2011-10-28 14:44:39 -07:00
Matt Brubeck
000b2fe9a6 Use IEEE 754 semantics for NaN (Issue #1084) 2011-10-28 14:44:39 -07:00
Matt Brubeck
7e064deacf +0.0 should be positive and -0.0 should be negative. 2011-10-28 14:44:39 -07:00
Brian Anderson
ad66d72e6c stdlib: Make merge_sort take [mutable? T] 2011-10-28 13:56:01 -07:00
Brian Anderson
39b729e36f stdlib: Fix the list::foldl implementation 2011-10-28 13:45:32 -07:00
Brian Anderson
49e8ffa34f stdlib: Rename list::length to list::len to match vec::len 2011-10-28 13:37:19 -07:00
Brian Anderson
d53a253dca stdlib: make list::from_vec take [mutable? T] 2011-10-28 13:24:39 -07:00
Marijn Haverbeke
7dacccde94 Make shared kind the default only for generic functions
You almost never want a function with pinned type params. For
types, objects, resources, and tags, pinned types are actually often
more sane. For most of these, shared rarely makes sense. Only tricky
case is objs -- you'll have to think about the kinds you want there.

Issue #1076
2011-10-28 17:00:14 +02:00
Marijn Haverbeke
3397fa4701 Move to short kind kinds words in test suite
Issue #1076
2011-10-28 14:57:49 +02:00
Brian Anderson
4bb5a2c43a Remove whitespace 2011-10-27 21:35:08 -07:00
Brian Anderson
d96c419b14 Add std::vec::foldr 2011-10-27 21:34:16 -07:00
Brian Anderson
8ad857f453 Add a test for std::vec::iter2 2011-10-27 21:17:51 -07:00
Brian Anderson
7a7940daca Add reverse iterators to std::vec 2011-10-27 21:09:02 -07:00
Brian Anderson
1a89e589a4 Implement vec::foldl without recursion 2011-10-27 20:47:06 -07:00
Brian Anderson
b5ed1c46c0 Add std::vec::iter 2011-10-27 20:30:06 -07:00
Brian Anderson
91997e79aa Make vec::reversed take [mutable? T] 2011-10-27 17:49:13 -07:00
Matt Brubeck
361adf9f86 Add tests for the 'as' (cast) operator 2011-10-27 13:37:35 -07:00
Marijn Haverbeke
013107a25c Properly take mutable object fields into account during alias analysis
Closes #1055
2011-10-25 17:57:26 +02:00
Marijn Haverbeke
cfdf193c46 Update our code to new type parameter kind syntax
Closes #1067
2011-10-25 15:56:55 +02:00
Marijn Haverbeke
2884c722fe Step one towards new type param kind syntax
Issue #1067

Needs a snapshot to finalize.
2011-10-25 14:31:56 +02:00
Brian Anderson
ea740a8bb0 Fix long lines 2011-10-24 17:23:34 -07:00
Niko Matsakis
c78b1639b4 fix c-stack-cdecl when used w/ i64 2011-10-24 17:03:18 -07:00
Niko Matsakis
8f2d75d53c switch over sqrt from llvm to c-stack-cdecl, exposing a bug in
the supported return types of upcall_c_stack
2011-10-24 16:06:18 -07:00
Niko Matsakis
d69a83b021 add implicit ctx 2011-10-24 16:06:18 -07:00
Niko Matsakis
973a285371 move uses of rust ABI in tests to cdecl or c-stack-cdecl as appr
Note: I found a bug in c-stack-cdecl which codes not permit such
native functions to be used as values.  I added an xfail-test
(c-stack-as-value) documenting it.
2011-10-24 16:06:18 -07:00
Niko Matsakis
fb48817ade work around bug when calling c-stack-cdecl fns from outside crate
In the main test, I call the wrapper instead of the native fn, as intended.
I also added an xfail-test that exercises the broken code path.  Will
file a bug.

Description of the broken code path:

The code path is that when we look up the external identifier we go through
trans_external_path() ->  type_of_ty_param_kinds_and_ty() ->
type_of_fn_from_ty() -> type_of_fn(), and type_of_fn() adds a lot of external
parameters. Problem is, I guess, that we don't pass the native ABI (or even the
fact that it's a native function!), just the types and kinds of the parameters.
2011-10-24 16:06:17 -07:00
Niko Matsakis
02d7a1e781 move sys fns into c-stack-cdecl and get_type_desc() into rusti
there is one test failure, stdtest/sys.rs, which inexplicably
(thus far) fails to compile because it invokes
sys::rustrt::last_os_error() instead of invoking
sys::last_os_error().  If stdtest/sys.rs is updated to invoke
the wrapper, it passes.  Still tracing the source of this error.
2011-10-24 16:06:17 -07:00
Niko Matsakis
d9b23cb022 move comm functions out of rust abi 2011-10-24 16:06:16 -07:00
Brian Anderson
4c95c52016 Remove a test binary that shouldn't exist 2011-10-23 14:23:09 -07:00
Brian Anderson
739b1b5b53 Cycle-collect objects 2011-10-21 17:21:59 -07:00
Brian Anderson
7ab6315f5f Free vectors during cc sweep 2011-10-21 16:07:40 -07:00
Brian Anderson
2d713215a8 Record the internal reference count of environment boxes. Closes #981 2011-10-21 14:05:16 -07:00
Marijn Haverbeke
3b5b93221e Remove some semicolons after block calls
The remaining ones can be removed after the next snapshot. (Or
we can let the next pretty-print pass take care of them.)
2011-10-21 14:24:42 +02:00
Marijn Haverbeke
050170d2af Remove remaining uses of iter and for-each
Issue #1056
2011-10-21 13:34:35 +02:00
Brian Anderson
0b791f5143 Restore broken tests in stdtest::test 2011-10-20 21:00:50 -07:00
Brian Anderson
ebc61e39d7 Remove temporary fn# syntax 2011-10-20 20:34:04 -07:00
Brian Anderson
c10eb221da Get windows working under the bare function regime
Had to ignore some task failure tests due to the current implementation
of spawn which guarantees that there's always something in the spawned
task that needs to be unwound.

Fixed some win-specific build problems.
2011-10-20 18:23:48 -07:00
Brian Anderson
29ad3bdb10 Make fn denote a bare function. Convert fn to fn@ as needed 2011-10-20 18:23:48 -07:00
Brian Anderson
391e12124b Tweak typecheck to enforce covariance on higher-order function arguments 2011-10-20 18:23:48 -07:00
Brian Anderson
8136b92ee8 Give subtype relationships to function types 2011-10-20 18:23:48 -07:00
Brian Anderson
ed985b61d5 Bare functions can coerce to blocks 2011-10-20 18:23:48 -07:00
Brian Anderson
354bfc8292 Bare functions can coerce to shared closures 2011-10-20 18:23:48 -07:00
Brian Anderson
686d6a485f Drop the 2 from the spawn*2 functions
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
3b54dcfa79 Convert the test runners to typesafe spawn
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
a4956a7cdd XFAIL task-perf-word-count-generic
This can't be done with bare functions.

Issue #1022
2011-10-20 18:23:47 -07:00