Patrick Walton
d0fe6723fc
test: Fix test/pretty/tag-blank-lines.rs for the tag -> enum switch
2012-01-10 16:02:49 -08:00
Patrick Walton
ffdb7f97f8
rustc: Accept "enum" in addition to "tag"
2012-01-10 15:32:39 -08:00
Niko Matsakis
1592de0faf
replace lambda with fn@
2012-01-10 13:31:06 -08:00
Niko Matsakis
8b911587df
rename sendfn to fn~, lambda to fn@
2012-01-10 13:31:06 -08:00
Brian Anderson
af086aa8ef
rustc: Remove sret attributes from functions
...
Something about the way we're using it is causing incorrect code generation.
Closes #1343
2012-01-10 13:28:12 -08:00
Patrick Walton
d4a4b82973
rt: Export upcall_s_shared_malloc since the SpiderMonkey bindings need it
2012-01-10 10:44:26 -08:00
Niko Matsakis
110c3ccdca
add rust_task_is_unwinding predicate and do not kill if already unwinding
2012-01-09 19:53:32 -08:00
Austin Seipp
070b1c8333
Remove support for 'when' in alt-patterns from parser
...
Issue #1396
2012-01-09 19:27:06 -08:00
Austin Seipp
a94b1ccacb
Change all uses of 'when' in alt-patterns to 'if'
...
Issue #1396
2012-01-09 19:27:05 -08:00
Brian Anderson
d8a0ef1c84
Merge pull request #1477 from erickt/master
...
Adding longlong and ulonglong types
2012-01-09 17:13:35 -08:00
Graydon Hoare
8387896dda
Remove proto_sugar and 'lambda' as keyword, commit to fn@.
2012-01-09 16:12:48 -08:00
Graydon Hoare
f6ecbe88ca
Fix rpath bug.
2012-01-09 16:12:47 -08:00
Erick Tryzelaar
ae76a7db5d
libcore: add longlong and ulonglong types.
2012-01-09 15:14:39 -08:00
Brian Anderson
a736669fb6
Register snapshots
2012-01-09 14:58:00 -08:00
Brian Anderson
7e8974305c
rt: Set Linux red zone to 20K again
...
With runtime logging on it smashes the stack
2012-01-09 11:44:36 -08:00
Austin Seipp
9211348989
Make the parser accept 'if' as an alternative to 'when' in alt patterns.
...
Also fix the pretty printer, making it output 'if' instead of 'when'.
Issue #1396
2012-01-09 10:50:33 -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
6b20e8c88b
Fix error message case in two cfail test
...
I had made the error consistent with other errors, but forgot to
also change the tests.
2012-01-09 17:51:39 +01:00
Marijn Haverbeke
9e2b273221
Iface types are not structural
...
Not sure how they ended up being marked as such.
2012-01-09 16:44:37 +01:00
Marijn Haverbeke
a62bd9abec
Work around recursive type check for iface types
...
They are nominal, and can safely refer to themselves.
2012-01-09 16:25:39 +01:00
Marijn Haverbeke
c13f087454
Properly recognize self as an upvar when closed over
...
Closes #1463
2012-01-09 16:25:39 +01:00
Niko Matsakis
51364b5708
Fix #1474 : check that block args resolved to bare fns do not make use of upvars
2012-01-09 06:50:40 -08:00
Niko Matsakis
8944a390c6
change spawn_connected argument to copy mode
2012-01-09 06:50:39 -08:00
Marijn Haverbeke
1ee9a83de0
Fix bug in iface shape code
...
Issue #1437
2012-01-09 15:12:18 +01: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
Marijn Haverbeke
0945fcf1fb
Fix typo in example in libcore docs
2012-01-09 14:44:52 +01:00
Marijn Haverbeke
47cfeba467
Add cases for iface values to rust_shape.h
...
They appear to log okay now, but I can't promise much beyond that.
@pcwalton If you feel like taking a look, I'd be grateful. Interfaces are
boxes containing a (tydesc, dict, value_of_any_type) tuple, where the leading
tydesc describes the whole tuple.
Issue #1437
2012-01-09 14:44:21 +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
Marijn Haverbeke
9fa7491676
Don't resolve upvars in fn() { ... } exprs
...
Closes #1467
2012-01-09 11:32:18 +01:00
Haitao Li
26536e6915
rt: Fix build with clang on non-Mac
2012-01-09 15:34:06 +08:00
Jesse Ruderman
972f6c17fb
Fix bustage
2012-01-08 19:34:02 -08:00
Jesse Ruderman
159ad7a63b
Update fuzzer
2012-01-08 19:24:24 -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
Niko Matsakis
9775b480fd
add spawn_connected
2012-01-08 15:32:13 -08:00
Niko Matsakis
91cd57e872
correct long line
2012-01-08 15:32:03 -08:00
Niko Matsakis
7a336f1e7c
modify last use to take into account cap clause, add new test
2012-01-08 14:57:03 -08:00
Niko Matsakis
106385cb91
make spawned fn copy mode so that bare fns can be used
2012-01-08 14:57:03 -08:00
Marijn Haverbeke
7d3f892f35
First barely-working version of casting to iface
...
Issue #1437
2012-01-08 23:07:15 +01:00
Marijn Haverbeke
a161371d13
Add fall-through case for non-iface bounds typeck::lookup_method
...
Closes #1462
2012-01-08 21:59:37 +01:00
Marijn Haverbeke
9a7061dfab
Fix some bad code in the dict interner
...
Issue #1436
2012-01-08 21:57:54 +01: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
Brian Anderson
e3afc78fde
core: Update task spawning example
2012-01-07 17:11:54 -08:00
Niko Matsakis
5bee80612b
fix valgrind error: allocate enough space for all type descs
2012-01-07 08:03:34 -08:00
Niko Matsakis
1e674ffe43
choose a new arbitrary value
2012-01-06 22:40:32 -08:00
Niko Matsakis
2f0eb7ae0c
add rust_util.h header file
2012-01-06 22:40:32 -08:00
Niko Matsakis
d4410a9f9b
rewrite to use old C++-based mechanism
2012-01-06 22:40:32 -08:00
Niko Matsakis
a1ef79c9d2
update to use new spawn syntax
2012-01-06 22:40:32 -08:00
Niko Matsakis
a366a9eece
report unicode decode failures nicely
2012-01-06 22:40:32 -08:00
Niko Matsakis
0595f57186
revert changes to trans_uniq.rs
2012-01-06 22:40:32 -08:00
Niko Matsakis
154f81b0be
revert metrics
2012-01-06 22:40:32 -08:00
Niko Matsakis
6237368cc2
plug leak: free shared type descrs recursively, as we ought to
2012-01-06 22:40:32 -08:00
Niko Matsakis
d1b987d292
hack the tydesc that is registered with a malloc to be what cc expects
2012-01-06 22:40:31 -08:00
Niko Matsakis
8506241f3a
fix how we walk functions to match new closure fmt
2012-01-06 22:40:31 -08:00
Niko Matsakis
8e89df69de
rejigger impl to have an opaque closure ptr rather than
...
opaque closure
2012-01-06 22:40:31 -08:00
Niko Matsakis
7db640e63d
collapse sizeof, alignof into metrics, pass along an instance if avail
2012-01-06 22:40:31 -08:00
Niko Matsakis
4f52e5a5ec
make size_of and align_of take an optional value
2012-01-06 22:40:31 -08:00
Niko Matsakis
2074e06278
emit the take glue for closure tydescs
2012-01-06 22:40:31 -08:00
Niko Matsakis
9f84f88276
port over the tests to use the new API
2012-01-06 22:40:31 -08:00
Niko Matsakis
25e81e34ea
rewrite task tests
2012-01-06 22:40:31 -08:00
Niko Matsakis
98f5109cde
simplify task impl
2012-01-06 22:40:31 -08:00
Niko Matsakis
e88905cd28
remove trailing whitespace
2012-01-06 22:07:29 -08:00
Jesse Ruderman
bf038b9b90
Get these files compiling again
2012-01-06 22:06:32 -08:00
Niko Matsakis
373dbe7741
test exposing memory management failure for #1078
2012-01-06 21:15:27 -08:00
Brian Anderson
4632358cbc
Revert "rt: Reduce mac red zone to 6K"
...
This reverts commit d499e739a1
.
2012-01-06 18:16:19 -08:00
Brian Anderson
be565a1a7a
cargo: Print rustc's stdout when compilation fails
...
stdout is where all the useful info is, not stderr.
2012-01-06 18:04:25 -08:00
Brian Anderson
d499e739a1
rt: Reduce mac red zone to 6K
2012-01-06 16:42:26 -08:00
Brian Anderson
396a8bd4e5
rustc: Use std::homedir to locate /home/banderson
...
Issue #1359
2012-01-06 16:38:29 -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
Brian Anderson
2f4c9315af
rt: Fail the scheduler immediately on task failure in win32
2012-01-06 16:18:56 -08:00
Tim Chevalier
7c7559edaf
Disallow variable names that shadow tags in scope
...
Now, if you have a tag named "foo", a variable declaration like
"let foo..." is illegal. This change makes it possible to eliminate
the '.' after a nullary tag pattern in an alt (but I'll be doing
that in a future commit) -- as now it's always obvious whether a
name refers to a tag or a new declared variable.
resolve implements this change -- all the other changes are just to
get rid of existing code that declares variables that shadow tag
names.
2012-01-06 14:44:43 -08:00
Tim Chevalier
da519c8587
Eliminate a use of map::get in freevars
...
map::get is evil -- just say no!
2012-01-06 14:44:43 -08:00
Graydon Hoare
4f3171ea81
Merge pull request #1450 from erickt/master
...
adding some misc functions and some functions just for [u8]
2012-01-06 13:04:49 -08:00
Marijn Haverbeke
7b00bac540
Add some basic comments to trans_imp.rs
2012-01-06 17:50:55 +01:00
Marijn Haverbeke
822acdd170
Make binding of fns with bounded type parameters work
...
Interns non-static dicts to heap-allocated equivalents so that they no
longer have stack scope.
Closes #1436
2012-01-06 17:40:05 +01:00
Marijn Haverbeke
d23e2052e0
Support interface casting in the typechecker
...
Issue #1437
2012-01-06 17:40:05 +01:00
Marijn Haverbeke
cf5c877fc0
Statically allocate static dicts
...
Issue #1436
2012-01-06 17:40:05 +01:00
Marijn Haverbeke
41a2d8495e
Fix pretty-printing of ty params in iface methods
2012-01-06 17:40:05 +01:00
Marijn Haverbeke
7c1f683c6d
Fix bug in method type parameter passing
...
It would occasionally pass the wrong type parameter, when calling
a generic method from a generic impl on a bounded param type.
2012-01-06 17:40:05 +01:00
Erick Tryzelaar
6cfc196d42
libstd: rename c_vec::size to len.
2012-01-06 08:12:18 -08:00
Niko Matsakis
295df68faf
add alignment to i386 for good measure, though we do not yet
...
save SSE regs in i386 (we ought to, though!)
2012-01-06 07:57:56 -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
Erick Tryzelaar
7806180557
libcore: add a trivial uint hash function.
2012-01-06 07:47:13 -08:00
Erick Tryzelaar
ae225e2b6c
libcore: Add binop functions to u32 and u64
2012-01-06 07:47:13 -08:00
Niko Matsakis
fefae72a53
fix alignment of registers structure
2012-01-06 07:45:06 -08:00
Brian Anderson
b1e2f04eb4
libcore: Use correct link name for lgamma_r on win32
2012-01-05 21:35:03 -08:00
Brian Anderson
b532812572
rustc: Stop exported back::rpath::test
...
Tests no longer need to be exported
2012-01-05 18:23:30 -08:00
Brian Anderson
51e6df689c
rustc: Allow the test runner to run unexported tests
2012-01-05 18:16:56 -08:00
Graydon Hoare
d2218d9c9c
Attempt to fix build breakage due to lgammaf_r having two leading underscores on mingw.
2012-01-05 17:54:30 -08:00
Brian Anderson
c2c497ff53
rustc: Configure out #[test] functions when not testing
2012-01-05 17:31:57 -08:00
Graydon Hoare
a2acb052ca
Simplify NSIS package script.
2012-01-05 17:03:02 -08:00
Brian Anderson
e746ed6880
rustc: Add cargo's lib directory to search paths
2012-01-05 16:03:31 -08:00
Marijn Haverbeke
54cf0e9c0d
Use precise return type to allocate retslot in trans_args
...
Using type_of_or_i8 did, predictably, allocate an i8 for a type parameter,
which leads to memory corruption and general confusion.
Closes #1443
2012-01-05 22:45:02 +01:00
Niko Matsakis
75f84b2563
make test typecheck
2012-01-05 10:44:38 -08:00
Niko Matsakis
e1a0d0f03d
fix pretty printer to correctly insert parens for disamb
2012-01-05 10:44:38 -08:00
Niko Matsakis
810927824c
update test on disambig to reflect that some cases are no longer legal
2012-01-05 10:44:38 -08:00
Niko Matsakis
afe792496a
correct test to reference right value
2012-01-05 10:44:38 -08:00
Niko Matsakis
f832edc369
require a non-semi expr acting as a stmt to have unit return type
2012-01-05 10:44:38 -08:00
Niko Matsakis
37ba5f3b32
make parser handle parenthesized block-sugar exprs properly
2012-01-05 10:44:38 -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
Marijn Haverbeke
cc929fc9f9
Clean up translating of def_ids in metadata reader
...
Reduces the amount of closure allocation, and makes the code cleaner.
2012-01-05 17:03:38 +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
1f71a0f48d
Clean up some FIXMEs related to impls
2012-01-05 14:55:23 +01:00
Marijn Haverbeke
3a20dda7ea
Get external interfaces / impls working
...
Issue #1227
2012-01-05 14:17:31 +01:00
Marijn Haverbeke
38c3bd9057
Register new snapshot
2012-01-05 11:54:28 +01:00
Marijn Haverbeke
516fbed230
Fix bad spans for ast::ty parsing
...
The span would be pointing after the actual text.
2012-01-05 11:09:19 +01:00
Marijn Haverbeke
6559aa8bfb
Write the iface type of an impl in the crate data
...
Also, move checking of ifaces into the collect phase of typeck
to give further passes some guarantees.
Issue #1227
2012-01-05 11:04:41 +01:00
Marijn Haverbeke
3eb35900c7
Remove ty::bind_params_in_type
...
It does nothing that substitute_type_params can't do better.
2012-01-05 10:07:33 +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
Josh Matthews
0e98e64bc2
Add more item types to the ast_map so the test suite can build with debug info.
2012-01-05 01:20:51 -05:00
Stefan Plantikow
a16acc0c10
added preliminary support for per-architecture generation of math constants (for porting)
2012-01-05 05:25:20 +01:00
Stefan Plantikow
6284190ef9
Merge branch 'master' into kmath
...
Conflicts:
src/libcore/cmath.rs
2012-01-05 02:07:12 +01:00
Niko Matsakis
1dec1c8813
make scanning more efficient by avoiding recomputation
2012-01-04 15:25:17 -08:00
Niko Matsakis
70c808d173
extend tester so that error msgs can be attached to lines
2012-01-04 15:25:17 -08:00
Marijn Haverbeke
3971b520bc
Use the right types for methods in trans_impl
...
This prevents misalignment between function and argument
types in corner cases.
2012-01-04 22:12:48 +01:00
Marijn Haverbeke
71c1c15805
xfail-pretty iface-generic.rs until i have time to debug
2012-01-04 19:58:02 +01:00
Tim Chevalier
1e54684093
Reformat typestate error messages so as not to confuse emacs compilation mode
2012-01-04 10:53:56 -08:00
Marijn Haverbeke
b02a77d6b4
Add test for generic iface methods
...
Issue #1227
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
94d40be746
Prevent typenames in param bounds from resolving to their own param
...
I.e. fn foo<T: seq<T>>(...). This leads to weird circularities that seem to
never make any sense, so it seems prudent to forbid it.
Issue #1227
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
42f6608ffd
Add visit_ty_params to visit.rs
...
And use it to make typechecking of bounds less error-prone.
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
e11d207113
Add either::is_left and either::is_right
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
a7e1a35f88
Properly typecheck and compile invocations of generic methods.
...
Aligning the type parameters of the ifaces, impls, and methods
correctly in typeck is almost brain surgery. Seems to work now for
everything I threw at it, but might still break in other corner cases.
Issue #1227
2012-01-04 17:28:51 +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
Lenny222
dd284eb396
"char": use shorter names "to_lower"/"to_upper", analogous to the same names in "str"
2012-01-04 09:33:04 +01:00
Lenny222
e12b169247
implement str::is_whitespace using char::is_whitespace
2012-01-04 09:32:59 +01:00
Tim Chevalier
439e28b751
Add missing ty_constr cases to trans::type_of_inner and ty::fold_ty.
...
Closes #970
2012-01-03 15:50:05 -08: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
Niko Matsakis
43a9d50a74
new tests
2012-01-03 13:13:52 -08:00
Niko Matsakis
de383bcfed
extend parser so that expressions that do not require semi-colons
...
to be statements are not considered expressions in the tail position
2012-01-03 13:13:51 -08:00
Niko Matsakis
9e1dc703d2
rewrite to put blk as 2nd arg
2012-01-03 13:13:51 -08:00
Niko Matsakis
e34abbacf6
minimal changes to permit fn blocks in expr
2012-01-03 13:13:51 -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
4e88d5ae92
Make resolution of dictionaries on bounded params work
...
Issue #1227
2012-01-03 16:37:41 +01:00
Marijn Haverbeke
5ea3c96938
Wire in resolution of param bounds for method calls
...
Issue #1227
2012-01-03 16:18:40 +01:00
Marijn Haverbeke
506a6ec38b
Make syntax for impls less magical
...
The trick of interpreting parameters to the iface type as parameters
to the impl was just too magical.
Issue #1227
2012-01-03 15:37:41 +01:00
Marijn Haverbeke
e1dc40b271
More work on translating dictionary-passing
...
Reached a point where simple uses of interfaces without bounds work.
Issue #1227
2012-01-03 15:36:57 +01:00
Brian Anderson
45b153adfe
llvm: Revert unneeded debugging change
2012-01-02 12:18:23 -08:00
Marijn Haverbeke
b162f33396
Fix expected error messages for better printing of ty_ptr
2012-01-02 15:59:04 +01:00
Marijn Haverbeke
cdd806d324
Add a clause ty_ptr to ppaux::ty_to_str
...
Closes #1383
2012-01-02 15:42:13 +01:00
Marijn Haverbeke
15be2fc73a
Add 'copy' bounds to functions that were faultily accepted without
...
Issue #1390
2012-01-02 15:31:58 +01:00
Marijn Haverbeke
8c14943dea
Properly handle expression blocks in kind.rs
...
It was only noticing them in expr_block form, not as function
bodies.
Closes #1390
2012-01-02 15:23:11 +01:00
Lenny222
86279e8693
typo
2012-01-02 15:16:15 +01:00
Marijn Haverbeke
1741ef75ac
Write out vtables for interface implementations
...
Issue #1227
2012-01-02 15:15:28 +01:00
Marijn Haverbeke
371b61a23d
Drop two useless sub-passes from trans
...
Neither collect_tag_ctors nor the second pass in collect_items needed
to be separate passes.
Also remove obsolete obj_methods table kludge.
2012-01-02 15:15:28 +01:00
Marijn Haverbeke
a4694ce146
Create a trans_impl module
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
3a1710d21e
Key tcx.ty_param_bounds on node_ids, not def_ids
...
This makes it clearer that it's only valid for local nodes.
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
9f2369dc9f
Box arrays of parameter bounds
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
270b4273e7
Pass bounds to trans::type_of_fn
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
664a0443ad
More resolving and typechecking of bounded type parameters.
...
Extern interfaces still don't get recognized.
Issue #1227
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
40d5f288c3
Check that type parameter bounds are interface types
...
Issue #1227
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
bd6646e698
Make last-use pass properly handle closed-over variables
...
Closes #1399
2012-01-02 10:20:58 +01:00
Brian Anderson
1c125d8829
llvm: Upgrade LLVM with FreeBSD segmented stack support
2012-01-01 20:26:34 -08:00
Jyun-Yan You
4566578fbd
link with gcc44+
2012-01-01 20:18:55 -08:00
Jyun-Yan You
274fc1b59c
fix link error
2012-01-01 20:18:55 -08:00
Jyun-Yan You
21eadbe6f1
add missing library, enable segmented stacks for freebsd
2012-01-01 20:18:55 -08:00
Jyun-Yan You
d4884b6c6e
forgot to add parentheses
2012-01-01 20:18:55 -08:00
User Jyyou
a59c4b1b47
freebsd support
2012-01-01 20:18:55 -08:00
Lenny222
f8d7a1c258
"str": extract to_upper/lower_case() into "char"
2012-01-01 13:15:30 -08:00
Stefan Plantikow
16405386f0
core: added support for bessel functions
2011-12-31 03:45:17 +01:00
Stefan Plantikow
a72b1413ed
Removed now obsolete mtypes module
2011-12-31 03:45:17 +01:00
Stefan Plantikow
57ac67a5aa
core: killed all math wrappers
2011-12-31 03:45:17 +01:00
Stefan Plantikow
49d36c7f85
Trying to remove wrappers from float
2011-12-31 03:45:17 +01:00
Stefan Plantikow
c314a9cad1
added more ops to cmath
2011-12-31 03:45:17 +01:00
Stefan Plantikow
d124c6eda2
removes std::mtypes
2011-12-31 03:45:17 +01:00
Stefan Plantikow
e0cd06053a
added useful constants to math
2011-12-31 03:45:17 +01:00
Niko Matsakis
8319b5a252
add cap clause to pretty printer, with a test
2011-12-30 16:25:55 -08:00
Graydon Hoare
bfc9a499c2
Print usage messages to rustc and rustdoc when invoked with no args. Close #1394 .
2011-12-30 15:26:49 -08:00
Lenny222
ab2a643f27
add test for list:is_empty()
2011-12-30 10:54:31 +01:00
Niko Matsakis
aa5382bb13
split proto from fn_decl, as not all fn_decls know the proto.
...
this will address the (crashing) new test added.
2011-12-29 20:29:28 -08:00
Graydon Hoare
ca7d389e1d
Of course there were overlong lines.
2011-12-29 17:30:43 -08:00
Graydon Hoare
1cd132eef0
Teach unicode script to emit canonical and compat decomp mappings. Annoyingly large encoding.
2011-12-29 17:24:04 -08:00
Graydon Hoare
36c55b20a8
Add support in lexer for utf8 identifiers. No NFKC logic in char yet.
2011-12-29 14:45:18 -08:00
Lenny222
d07c6e8a0e
list: use predicate to enforce non-empty requirement
2011-12-29 21:24:03 +01:00
Graydon Hoare
5fd0a3be0c
Save and restore xmm regs across the call to UPCALL_NEW_STACK during __morestack, close #1388 .
2011-12-29 11:49:29 -08:00
Graydon Hoare
884adf38a1
Remove obsolete comments.
2011-12-29 10:21:05 -08:00
Marijn Haverbeke
816b0ac8ae
Box ty_param_bounds_and_ty
...
It contains a vector, which shouldn't be copied all the time.
2011-12-29 09:29:08 +01:00
Graydon Hoare
2ed1005bd7
On second thought, re-land pull request #1385 with backquotes; easier to grep, can change in the future.
2011-12-28 13:41:31 -08:00
Graydon Hoare
f2c88c1b80
Merge pull request #1385 from Lenny222/quotes
...
Use singlequotes in the typechecker error messages too, to distinguish code and English
2011-12-28 13:08:28 -08:00
Graydon Hoare
51227c1e8a
Merge pull request #1389 from erickt/master
...
misc standard library additions
2011-12-28 13:05:02 -08:00
Marijn Haverbeke
9236fdf39f
Move the kind datatype to middle::ty
...
The AST no longer references it.
2011-12-28 21:18:16 +01:00
Marijn Haverbeke
1ed6a27548
Change representation of type params to handle interface bounds
...
Issue #1227
2011-12-28 21:18:16 +01:00
Graydon Hoare
5930463faa
Tidy up some drift in runtime logging, close #1380 .
2011-12-28 11:53:12 -08: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
Erick Tryzelaar
5d84652f51
comp: minor cleanup.
2011-12-28 11:19:41 -08:00
Erick Tryzelaar
38e796b943
libcore: Fix a typo.
2011-12-28 11:19:41 -08:00
Stefan Plantikow
7fd62bb2b5
Made matching machine types equal to float, int, uint ( fixes #1376 )
2011-12-28 18:02:49 +01:00
Brian Anderson
b9b9b3e570
rt: Set the initial obstack size to 128 bytes
...
Double the size on each allocation
2011-12-25 19:18:05 -08:00
Lenny222
0b9751b141
Use singlequotes in the typechecker too, to distinguish code and English
2011-12-25 20:27:09 +01:00
Graydon Hoare
b3eb9a0031
Merge pull request #1382 from Lenny222/char
...
"char": add is_lowercase(), is_uppercase()
2011-12-24 11:55:39 -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
Lenny222
eb0cdc02e3
char: add is_lowercase(), is_uppercase()
2011-12-24 10:41:11 +01:00
Graydon Hoare
47271ab4c8
Forgot typo-fix.
2011-12-23 18:53:52 -08:00
Graydon Hoare
ac13f0da9e
Add support to libcore for encoded-in-rust unicode character properties, at least. Add script to compute them from unicode.org.
2011-12-23 18:48:08 -08:00
Marijn Haverbeke
46cddffb8f
Go back to a single visit_fn function in visit.rs
2011-12-23 18:45:02 +01:00
Marijn Haverbeke
711ff657e2
Get rid of visit_fn_block in visit.rs
...
It seems redundant and error-prone.
2011-12-23 18:24:49 +01:00
Marijn Haverbeke
25e65239ad
Check impls methods against the type of their iface.
2011-12-23 18:11:36 +01:00
Marijn Haverbeke
057617c665
Parse iface
items and interface references in impl
items.
...
The (temporary) syntax is
iface seq<T> {
fn len() -> uint;
fn iter(f: block(T));
}
// The 'blah<T>' can be left of to default the name of the
// impl to seq<T>. The 'of seq<T>' can be left off when
// not implementing a named interface.
impl blah<T> of seq<T> for [T] {
fn len() -> uint { vec::len(self) }
fn iter(f: block(T)) { for x in self { f(x); } }
}
2011-12-23 18:09:25 +01:00
Marijn Haverbeke
9292744959
Use the same type of record in ty::ty_fn and ty::method
...
Removes some more code duplication.
2011-12-23 16:11:35 +01:00
Marijn Haverbeke
970f5cc0e4
Make ast::ty_method hold a fn_decl, rather than duplicating its fields
2011-12-23 13:32:17 +01: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
ccb5b6fb25
Switch core macros to expand to log(level, ...).
2011-12-22 16:36:55 -08:00
Graydon Hoare
389329ef1e
Merge all 3 log syntaxes, tidy up residual misuses.
2011-12-22 16:14:00 -08:00
Erick Tryzelaar
f816d8c71c
cargo: Adding my package index.
2011-12-22 15:05:59 -08:00
Erick Tryzelaar
43a6bd110e
Whitespace cleanup.
2011-12-22 15:05:59 -08:00
Graydon Hoare
dcd771cd48
Merge branch 'master' of github.com:graydon/rust
2011-12-22 14:50:52 -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
Marijn Haverbeke
9587c67230
Fix rustdoc for AST changes
2011-12-22 22:16:02 +01:00
Marijn Haverbeke
eacb629442
Work around unwinding bug
...
See issue #1374
2011-12-22 20:38:09 +01:00
Marijn Haverbeke
0490c36143
Unify some data structures in syntax::ast that were doing the same thing
...
As a preparation to removing some duplication in typeck.
2011-12-22 20:18:56 +01:00
Graydon Hoare
3b61064631
Revert all of yesterday's snapshots and try again. Cursed!
2011-12-22 10:30:04 -08:00
Graydon Hoare
47d27af228
Merge branch 'master' of github.com:graydon/rust
2011-12-22 09:30:03 -08:00
Graydon Hoare
8005f0c564
Register another snapshot. There was nothing redeeming about the last one.
2011-12-22 09:29:45 -08:00
Marijn Haverbeke
07d7f828cd
Fix tag_var_cache to cache crate-external tags
...
And to not return a bogus mutable box.
2011-12-22 16:23:49 +01:00
Marijn Haverbeke
44f921c8a9
Do not use == and != to compare ty::t values
...
Issue #828
2011-12-22 15:05:38 +01:00
Marijn Haverbeke
3ee630bbee
Add ty::new_ty_hash, clean up comparing of ty::t's
2011-12-22 15:05:38 +01:00
Marijn Haverbeke
e2e077c831
Remove trivial cast checker
...
I consider the added complexity not justified at this point, and it
interacts badly with the patches for issue #828 . Feel free to discuss.
2011-12-22 15:04:00 +01:00
Lenny222
7beb21c6e3
tests: add corner case (empty list)
2011-12-22 08:59:22 +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
047b02d5bc
More flailing on log syntax due to call-expr ambiguity in previous attempt.
2011-12-21 18:05:08 -08:00
Graydon Hoare
7bf12f3723
Register fixed snapshots.
2011-12-21 16:47:13 -08:00
Graydon Hoare
5d1cf2a872
Out-of-order-code typo. Snapshot again.
2011-12-21 15:43:38 -08:00
Graydon Hoare
8fd5802c65
Register snapshots.
2011-12-21 15:29:18 -08:00
Graydon Hoare
8d9e7deab5
Switch log_expr to carrying a full expr:u32 for level. Add log_full variant that parses that expr, prepare for snapshot.
2011-12-21 14:31:31 -08:00
Niko Matsakis
66856a39b3
add tests I forgot to add
2011-12-21 08:41:41 -08:00
Niko Matsakis
627217fa55
valid cap clause for kind-ness too
2011-12-21 06:14:36 -08:00
Niko Matsakis
c03d14a33d
upgrade kind check
2011-12-21 06:14:36 -08:00
Niko Matsakis
01cb1044f7
update pprinter to understand ret type of block, add warnings
2011-12-21 06:14:35 -08:00
Niko Matsakis
6a90140941
Make { || ... } sugar for any type of closure, inferred
2011-12-21 06:14:35 -08:00
Haitao Li
1e4de33374
rustc: Exclude stdin from codemap files when lookup_pos
...
Fixes issue #1362
2011-12-21 22:07:48 +08:00
Brian Anderson
085c813fe3
Merge pull request #1365 from elly/cargo
...
cargo: allow 'ref' package key for git packages.
2011-12-20 20:59:03 -08:00
Brian Anderson
dedfef4c4c
Revert "wip"
...
This reverts commit aeadc6269e
.
2011-12-20 20:57:04 -08:00
Brian Anderson
854daaec0c
rt: Lock before using the random number generator
...
Seeing crashes here trying to stress test concurrent tasks
2011-12-20 20:56:06 -08:00
Elly Jones
bbc534bccc
cargo: allow 'ref' package key for git packages.
...
This lets you specify e.g. a tag or a branch name to be checked out for that
package.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 23:41:22 -05:00
Brian Anderson
aeadc6269e
wip
2011-12-20 20:15:09 -08:00
Brian Anderson
128621be97
rt: Remove rust_task::grow. Obsolete
2011-12-20 20:02:57 -08:00
Graydon Hoare
2841ce7822
Missing comma.
2011-12-20 19:09:53 -08:00
Graydon Hoare
200439406d
Add pointer to cargo-central.
2011-12-20 19:04:02 -08:00
Elly Jones
2bdb0b6d40
cargo: syntax fixes
2011-12-20 21:52:50 -05:00
Elly Jones
9834321615
cargo: Add list and search.
...
In aid of search, add a new field to the packages.json format, called "tags",
whose value is a list of strings. Search accepts a list of tags, all of which
must match for the package to be shown.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 20:41:23 -05:00
Elly Jones
af564caff7
cargo: support optional signing of packages.json files.
2011-12-20 20:10:21 -05:00
Brian Anderson
cab4da70c8
rt: Don't check the stack canary on most upcalls
2011-12-20 16:50:54 -08:00
Brian Anderson
a5d48ce286
cargo: Make sources.json parsable again
2011-12-20 16:38:54 -08:00
Brian Anderson
82cdbfc818
cargo: Add my package index
2011-12-20 16:35:25 -08:00
Brian Anderson
2a490d1cf8
Revert "rt: Reduce the mac red zone to 2K"
...
This reverts commit ba8f369f89
.
2011-12-20 15:17:30 -08:00
Brian Anderson
ba8f369f89
rt: Reduce the mac red zone to 2K
2011-12-20 14:24:13 -08:00
Graydon Hoare
f5c4cc70d6
Merge pull request #1361 from elly/rustdoc
...
rustdoc: delete bogus license text
2011-12-20 14:22:41 -08:00
Elly Jones
c83cc5792f
rustdoc: Some rights reserved?
2011-12-20 17:19:46 -05:00
Elly Jones
00af3406fe
rustdoc: delete bogus license text
...
Rustdoc is under the same license as the rest of Rust, not under apache-2.0.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 17:15:49 -05:00
Graydon Hoare
f2715f3c64
Merge pull request #1360 from elly/rustdoc
...
rustdoc: Add.
2011-12-20 14:07:55 -08:00
Brian Anderson
2e230b1cf9
rt: Reduce the linux red zone to 2K
2011-12-20 14:02:59 -08:00
Brian Anderson
6443a7b513
rt: Do fewer stack canary checks
2011-12-20 13:54:47 -08:00
Elly Jones
fb0896fe7b
rustdoc: Add.
...
Parses #[doc] attributes on top-level module items and generates Markdown.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 16:52:04 -05:00
Graydon Hoare
3bc4da96f1
Inject "core macros" into default syntax-expansion environment. Bit of a kludge but enough to work on logging-via-macros.
2011-12-20 13:38:10 -08: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
Graydon Hoare
8bde865d09
Merge pull request #1349 from lht/driver
...
Separate driver rustc and librustc
2011-12-20 12:28:40 -08:00
Graydon Hoare
96d7f83eb0
Merge pull request #1350 from boggle/kmath
...
removed math leftovers from std
2011-12-20 12:28:07 -08:00
Brian Anderson
93fef2e113
rt: Parenthesize the red zone macros
2011-12-20 11:57:22 -08:00
Brian Anderson
784713ec68
rt: Add a canary value to the end of every stack
...
Check it on upcall entry and exit, and on stack deletion
2011-12-20 11:48:47 -08:00
Marijn Haverbeke
4475ec863d
Fix misleading comment about type_is_pod
2011-12-20 20:47:03 +01:00
Brian Anderson
56ec9cb278
rt: Run yet more task_start_wrapper cleanup on the C stack
2011-12-20 10:29:40 -08:00
Stefan Plantikow
b957916e06
removed math leftovers from std
2011-12-20 18:07:36 +01:00
Haitao Li
bc95ccb536
Separate driver rustc and librustc
...
rustc is now a minimal wrapper of librustc.
2011-12-20 21:06:04 +08:00
Haitao Li
28b825d846
test: Remove 'error:' from error pattern
...
May include ansi escape code for color rendering on certain terminal.
2011-12-20 15:38:40 +08:00
Haitao Li
5cfcf20b25
rustc: Cleanup unused ext_map
2011-12-20 15:38:40 +08:00
Haitao Li
5e3ffb6cbd
rustc: Re-export the same name in different namespaces
...
Issue #1115 .
2011-12-20 15:38:40 +08:00
Haitao Li
bd300636ee
rustc: Implement re-export of renamed modules
...
Issue #1115
2011-12-20 15:38:40 +08:00
Brian Anderson
25f7c844df
rt: Don't reuse stack segments when they are not big enough
2011-12-19 22:47:28 -08:00
Brian Anderson
05bf105c90
rt: Rename asm_call_on_stack to __morestack
...
Newer gdb's will backtrace through functions named __morestack even
if they change the stack.
2011-12-19 22:05:40 -08:00
Brian Anderson
f302b79d61
Register snapshots
2011-12-19 21:43:01 -08:00
Brian Anderson
edf6e1ec0e
rt: Zero the bottom frame's return address and base pointer
...
My reading of libunwind leads me to believe this is expected.
Closes #1322
2011-12-19 18:47:39 -08:00
Brian Anderson
586281e2d6
libcore: Remove stack alignment from task spawning
...
This is already done by the native task start code. Closes #1324
2011-12-19 18:43:39 -08:00
Brian Anderson
1bfc4e2e6c
rt: Save and restore %rax/%eax in __morestack
...
This doesn't matter now since we use an out pointer for return
values but it's sure to show up mysteriously someday.
2011-12-19 18:16:21 -08:00
Brian Anderson
c3569abb8c
rt: Remove some unused stack from i386/morestack.S
2011-12-19 18:16:19 -08:00
Brian Anderson
d2e7336a01
rt: Remove unused saves from __morestack
2011-12-19 16:24:10 -08:00
Brian Anderson
50dc80f617
rt: Give upcall_new_stack the same convention as other upcalls
2011-12-19 16:24:10 -08:00
Brian Anderson
bedcaad97e
rt: Give upcall_del_stack the same convention as other upcalls
2011-12-19 16:24:10 -08:00
Niko Matsakis
55a2fd18ec
implement capture clauses (move, in particular) and integrate
...
them into type state and so forth
2011-12-19 14:07:46 -08:00
Niko Matsakis
41ae146057
integrate cap clause into type state, but not trans
2011-12-19 14:07:46 -08:00
Niko Matsakis
b2b2a430df
resolve capture clauses
2011-12-19 14:07:46 -08:00
Niko Matsakis
b0f1a5f051
when collecting free vars, track the span where it is used too
2011-12-19 14:07:46 -08:00
Niko Matsakis
98cbbbb642
impl the proper partial order between fn types
2011-12-19 14:07:46 -08:00
Graydon Hoare
1bc6e72b97
Remove cargo from snapshot file-list again; overestimated.
2011-12-19 13:42:33 -08: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
02d84d89e0
libcore: add splitn to split a string N times.
2011-12-19 10:22:07 -08:00
Erick Tryzelaar
8e54e74be4
libcore: add vec push.
...
This is a simple wrapper around grow for the common
case of pushing a value on the end of a vector.
2011-12-19 10:22:07 -08:00
Erick Tryzelaar
6b1c60d312
libcore: Add vec any2 and all2 functions.
2011-12-19 10:22:07 -08:00
Erick Tryzelaar
f9df32adac
vim comment highlighting can contain comments.
2011-12-19 07:27:17 -08:00
Erick Tryzelaar
a66f0688fd
getopts: add test for strings with spaces.
2011-12-19 07:27:16 -08:00
Erick Tryzelaar
8e9be037d1
Simplify getopts::find_opt.
2011-12-19 07:27:16 -08:00
Erick Tryzelaar
9db3525e42
Fix a typo.
2011-12-19 07:27:16 -08:00
Marijn Haverbeke
e4e2d6d1a1
Fix bug in type parameter handling for impl methods
...
The parameters of the impl weren't being combined in the right way
with the parameters of the methods. The test worked only by accident.
Issue #1227
2011-12-19 15:43:02 +01:00
Marijn Haverbeke
619d7c3f72
Associate names with types introduced by items
...
Issue #828
This is not a full solution yet. To really get sane error messages,
we'll also have to guess the name to apply to literals, which seems
non-trivial.
2011-12-19 13:52:58 +01:00
Marijn Haverbeke
60acae4df7
Add type argument field to expr_path
...
This way, you can explicitly provide type parameters when calling a
generic method.
Issue #1227
2011-12-19 10:43:23 +01:00
Marijn Haverbeke
4d524b957f
Complain when multiple methods in the same scope match a call
...
Issue #1227
2011-12-19 10:13:42 +01:00
Marijn Haverbeke
7185ea35c3
Use quotes around tokens in parser error messages to make them more readable
...
Closes #1328
2011-12-19 09:59:51 +01:00
Josh Matthews
6637340c28
Properly calculate base working dir for compile units.
2011-12-19 03:42:58 -05:00
Josh Matthews
1d3d28bdf1
Long lines.
2011-12-19 02:52:21 -05:00
Josh Matthews
52dbe4cc1d
Fix merge error and rebasing changes for debug information.
2011-12-19 01:36:37 -05:00
Josh Matthews
df6052c4f8
Remove source line generation craziness. Ensure incorrect subprogram caches are not conflated. Generate ast_map entries for object members and resource constructors and destructors.
2011-12-18 23:53:44 -05:00
Josh Matthews
c6f16ed2c4
Hide extended, unfinished debug information behind --xg compiler flag.
2011-12-18 23:48:04 -05:00
Josh Matthews
8597077b7a
Clean up some names and factor out some common code.
2011-12-18 23:46:39 -05:00
Josh Matthews
61e8b44f20
Add support for vectors.
2011-12-18 23:46:39 -05:00
Josh Matthews
30d019d520
Add record debug information.
2011-12-18 23:46:39 -05:00
Josh Matthews
f43ed8f1bd
Fix up ast types after literal changes.
2011-12-18 23:44:21 -05:00
Josh Matthews
134585bb06
Add debug information for boxed and unique values.
2011-12-18 23:44:21 -05:00
Josh Matthews
e25f6d03eb
Remove rebase error.
2011-12-18 23:44:21 -05:00
Josh Matthews
064d757ece
Handle inferred basic types when generating debug information for types.
2011-12-18 23:44:21 -05:00
Josh Matthews
6c26b892e4
Add argument metadata and aborted return value code.
2011-12-18 23:44:21 -05:00
Josh Matthews
0752252737
Use proper size and alignment of types for debuginfo.
2011-12-18 23:44:21 -05:00
Josh Matthews
1da4b3b987
Fix build error after rebasing.
2011-12-18 23:44:21 -05:00
Josh Matthews
0b303523bd
Fix up local variable support so it actually works.
2011-12-18 23:44:21 -05:00
Josh Matthews
e95c56f855
Fix up subprogram composite type nodes, and lexical block context nodes.
2011-12-18 23:44:21 -05:00
Josh Matthews
544bcfece2
Fix LLVM assertions when lowering log statements.
2011-12-18 23:44:21 -05:00
Josh Matthews
fa6d871e11
Build fix.
2011-12-18 23:43:37 -05:00
Josh Matthews
e383004985
Add debug info for local vars, basic fundamental types, and lexical blocks, along with source line information generation for individual instructions.
2011-12-18 23:41:03 -05:00
Josh Matthews
10030a37d5
Generate basic debug info for files, functions and compile units.
2011-12-18 23:39:54 -05: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
bd6b80c972
rt: Get rid of the rethrow in upcall_fail
...
Throwing in upcall_fail ends up running lots of code in the red zone. To avoid
it we have the personality function figure out which stack it's on and switch
as needed.
2011-12-18 17:17:31 -08:00
Brian Anderson
c73eb8ff51
rt: Create different stack-switching paths for upcalls and shims
...
Shims need to play with the stack limit, upcalls don't. Only one upcall,
upcall_fail is allowed to catch, and we need a find a way to get rid of that
catch as well because it results in _Unwind_Resume running off the end of the
Rust stack.
2011-12-18 16:17:55 -08:00
Brian Anderson
f57fd8de1f
rt: Run the cycle collector on the C stack
2011-12-18 15:23:44 -08:00
Brian Anderson
74d5faa86e
rt: Give each platform its own red zone definition
2011-12-18 15:23:41 -08:00
Brian Anderson
762d7e43a6
rt: Trim the red zone to 20k on all platforms
2011-12-18 15:22:56 -08:00
Brian Anderson
12cde6ebee
libcore: Remove task::set_min_stack
...
This existed to make up for the lack of stack growth, and wasn't generally
safe.
2011-12-18 14:10:41 -08:00
Brian Anderson
22ac628e8c
test: Enable all morestack tests
2011-12-18 13:37:33 -08:00
Marijn Haverbeke
f4acaf6934
Only look for a matching method when normal field access fails
...
We should probalby warn when defining a method foo on {foo: int} etc.
This should reduce the amount of useless typevars that are allocated.
Issue #1227
2011-12-18 19:41:44 +01:00
Marijn Haverbeke
b36ade1367
Improve efficienty of impl cache in resolve
...
And fix a bug where importing anything from an external module would
import all impls in the module.
Issue #1227
2011-12-18 19:07:26 +01:00
Brian Anderson
3fa930f598
rt: Remove a bogus FIXME from ~rust_task
2011-12-18 02:09:41 -08:00
Brian Anderson
1a1fdf34b1
rt: Add lots of documentation to __morestack
2011-12-18 02:02:35 -08:00
Brian Anderson
7359fa422b
Revert "rt: Turn on big stacks again. Unwinding still doesn't always succeed on mac"
...
This reverts commit 68f4849f0f
.
2011-12-18 00:42:46 -08:00
Brian Anderson
cb5f636ff1
rustc: Don't emit compact unwind info on mac
...
It's not compatible with the subtlety of __morestack
2011-12-18 00:42:37 -08:00
Brian Anderson
68f4849f0f
rt: Turn on big stacks again. Unwinding still doesn't always succeed on mac
2011-12-17 17:54:43 -08:00
Brian Anderson
39c8f0cb4a
libstd: Long lines
2011-12-17 17:02:07 -08:00
Brian Anderson
555006a304
rustc: Remove --stack-growth option
2011-12-17 16:58:26 -08:00
Brian Anderson
fe683dfb80
rt: Get rid of the valgrind guard bytes at the end of the stack
...
Preventing us from writing beyond our allocations is _what valgrind does_,
so telling valgrind not to let us write to the end of the stack isn't
buying anything.
2011-12-17 16:46:50 -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
471b4d6e58
rt: Use a DWARF CFI scheme that works on mac in __morestack
2011-12-17 14:10:44 -08:00
Brian Anderson
7da8ab8fab
rt: Turn on stack alignment checks for mac
2011-12-17 14:10:40 -08:00
Brian Anderson
4ac345939c
rt: Cache an extra stack segment to avoid bad behavior at stack boundaries
2011-12-17 13:45:38 -08:00
Brian Anderson
0ed5117a9d
rt: Set the default stack size to 768 bytes. Double on each alloc
2011-12-17 13:45:38 -08:00
Elly Jones
bb2c1f7613
cargo: complain if rustc fails
2011-12-16 20:40:10 -08:00
Brian Anderson
f8d06a2a84
Merge pull request #1320 from elly/cargo
...
cargo: shorten a line
2011-12-16 20:16:13 -08:00
Elly Jones
648b69d692
cargo: shorten a line
2011-12-16 23:15:13 -05:00
Graydon Hoare
bf4efa3a20
Merge pull request #1319 from elly/cargo
...
cargo: support distributed package indexes
2011-12-16 19:48:19 -08:00
Elly Jones
c8427e4ffd
cargo: fix lib detection logic
2011-12-16 22:39:33 -05:00
Graydon Hoare
c758e11fd3
Install and snapshot cargo by default.
2011-12-16 19:37:27 -08:00
Elly Jones
b7e30bc4c5
cargo: fix remaining warnings
2011-12-16 22:31:49 -05:00
Elly Jones
7bd003a1d0
cargo: remove obsolete rust-pkg-index lookup code
2011-12-16 22:27:47 -05:00
Elly Jones
9a0b89b534
cargo: fix some warnings
2011-12-16 22:27:04 -05:00
Elly Jones
327af5b9f3
cargo: flesh out usage
2011-12-16 22:24:01 -05:00
Elly Jones
8b7a41f23d
cargo: Support distributed package indexes.
...
Indexes are listed in ~/.cargo/sources.json and ~/.cargo/local-sources.json, the
former of which is stored in the rust source tree in src/cargo. Each entry in
either of these files is a source, which is a dictionary with (currently) a
single key, "url". The supplied url should point to a json list, each element of
which should be a dictionary with four keys: "name", "uuid", "url", and
"method". The name and uuid serve to identify the package; the method describes
how to fetch the package; the url describes where to fetch it from. Currently
supported methods are "git", "http", and "file".
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-16 22:08:25 -05:00
Brian Anderson
b5b2ac0ec4
rt: Make 32-bit morestack compatible with fastcc
2011-12-16 18:18:43 -08:00
Brian Anderson
7d51961b6f
rt: Fix saved address of unwinding %rsp in __morestack
...
I haven't thought too deeply about this, but I think I was telling the
unwinder to use the stack pointer for the wrong frame when unwinding. Not sure
how that could have worked at all, but this results in the correct alignment
for cleanups.
2011-12-16 18:18:43 -08:00
Brian Anderson
9d70c1949e
rt: Fix alignment of the call to upcall_del_stack in __morestack
2011-12-16 18:18:43 -08:00
Brian Anderson
23df4de86d
rt: Fix alignment of new stack segments
2011-12-16 18:18:43 -08:00
Brian Anderson
ab4f35c1f1
rt: Only call check_stack_alignment on linux
2011-12-16 18:18:43 -08:00
Brian Anderson
121c420184
rt: Insert stack alignment checks into upcalls
2011-12-16 18:18:43 -08:00
Elly Jones
10cf4a1b0a
cargo: wip
2011-12-16 20:33:39 -05:00
Graydon Hoare
4f826b34cb
Update build machinery to build and install librustc everywhere (including snapshots).
2011-12-16 17:21:28 -08:00
Brian Anderson
1477fb3f2b
libstd: Temporarily use #[link_name = ""]
2011-12-16 15:29:59 -08:00
Graham Fawcett
f14bc54b06
allow #[link_args] with #[nolink]. For now, fail if two modules link same lib, and second has link_args.
...
I think it should undefined to have multiple modules that link in the same
library, but provide different link arguments. Unfortunately we don't track
link_args by module -- they are just appended as discovered into the crate
store -- but for now, it should be an error to provide link_args on a module
that's already been included (with or without link_args).
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
Marijn Haverbeke
b11268780e
Fix arg order for vec::map call
2011-12-16 22:29:01 +01:00
Marijn Haverbeke
58a81a68ed
Finish resolving and calling of crate-external impls
...
Issue #1227
2011-12-16 22:18:38 +01:00
Marijn Haverbeke
dd9693f211
Reserve node_id 0 for the crate top-level module
...
And define a const to refer to it.
2011-12-16 22:17:47 +01: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
Graydon Hoare
1bf078f988
Remove hopefully-now-redundant chops of ./ at the beginning of filenames in cargo.
2011-12-16 12:28:39 -08:00
Graydon Hoare
d1bca753b8
Switch fmt extension to reference extfmt that's in core.
2011-12-16 10:59:11 -08:00
Stefan Plantikow
7d786318a1
std: declared fns as pure where sensible
2011-12-16 18:18:34 +01:00
Stefan Plantikow
bfbaadc694
core: marked fns as pure where possible
2011-12-16 17:41:07 +01:00
Niko Matsakis
88818334b7
update to not look at descs[], which is not necessarily valid
...
if the input is a statically allocated type_desc
2011-12-16 08:06:45 -08:00
Niko Matsakis
34283c6a78
add test that requires capturing generic descriptors
2011-12-16 08:06:45 -08:00
Niko Matsakis
4465c1ad02
first test of sendable fns (passes)
2011-12-16 08:06:45 -08:00
Niko Matsakis
21cc0c6e69
revoke cleanup of sendable closure once construction completes
2011-12-16 08:06:44 -08:00
Niko Matsakis
52f76400b5
extend with ty_send_type and ty_opaque_closure
2011-12-16 08:06:44 -08:00
Niko Matsakis
b5e5043d5d
reorder block() argument to bitv::process()
2011-12-16 08:01:05 -08:00
Stefan Plantikow
1fe4bd0f43
std: added either::flip, to_result and result::to_either
2011-12-16 16:31:42 +01:00
Niko Matsakis
ac6aba016e
rename iter2 to iteri to match typical convention
2011-12-16 07:17:29 -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
0a3626161d
Write impl data to crate library files
...
(No one is actually reading it yet.)
Issue #1227
2011-12-16 14:17:52 +01:00
Marijn Haverbeke
d529757515
Make polymorphic impl methods work
...
Something will still have to be done to the AST to make it possible to
say `x.foo::<int>()`, since currently field access never allows type
parameters.
Issue #1227
2011-12-16 13:47:48 +01:00
Marijn Haverbeke
cff6bdd036
Change syntax for impl
...
Move the name of the bundle to the front, allow type parameters (not
handled yet), and add a 'for' keyword:
impl utils for int {
fn str() -> str { int::str(self) }
fn times(f: block()) { ... }
}
2011-12-16 11:46:57 +01: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
Marijn Haverbeke
14fcb135a9
Improve resolution of impls
...
Issue #1227
2011-12-16 11:46:57 +01:00
Marijn Haverbeke
7efef98901
Make uses of self in impls compile
...
Get rid of expr_self_call, introduces def_self. `self` is now,
syntactically, simply a variable. A method implicitly brings a `self`
binding into scope.
Issue #1227
2011-12-16 11:46:57 +01:00
Marijn Haverbeke
1dd2f1ec03
Get very simple impl method calls to compile
...
Resolution is still dumb, and no self support yet.
2011-12-16 11:46:57 +01:00
Marijn Haverbeke
6a16f57c0a
Get a very primitive form of typechecking/resolving to work for impls
...
No conflict resolution or polymorphism yet.
Issue #1227
2011-12-16 11:46:57 +01:00
Marijn Haverbeke
888bc80025
Parse and resolve implementations.
...
Issue #1227
2011-12-16 11:46:57 +01:00
Haitao Li
42fb9b2c5f
cargo: Fix long lines
2011-12-16 17:17:24 +08:00
Haitao Li
9bb290c725
rustc: Implement non-renamed re-export across crates
...
First patch for issue #1115 . Not yet ready for re-exported modules which
are renamed when importing them.
2011-12-16 17:16:00 +08:00
Brian Anderson
91249fed82
Merge pull request #1314 from elly/cargo
...
Cargo: install-by-name and install-by-uuid
2011-12-15 18:26:11 -08:00
Elly Jones
7953a5dcfc
cargo: update to new rust-pkg-index API.
2011-12-15 21:22:42 -05:00