Brian Anderson
fdf50e84b8
std: Use ctypes::c_int in path_is_dir
2012-02-05 16:21:52 -08:00
Kevin Atkinson
b7ec2488ff
Fix macro backtraces.
...
In addition add information about the macro doing the expansion, and
move the printing of the expansion backtrace from codemap::span_to_str
to the diagnostic code. The backtrace is now more verbose and
includes information on the macro doing the expansion, in addition to
the expansion site.
2012-02-05 15:38:27 -08:00
Kevin Atkinson
1d855ebc51
Remove support for $(...) form of quasi-quotes, use #ast{...} instead.
2012-02-05 15:38:27 -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
Kevin Cantu
6be25c8a0c
Adding str::reserve
2012-02-05 14:56:16 -08:00
Kevin Cantu
d3dfe8758d
Making vec::reserve reserve precisely the size given (untested)
2012-02-05 14:56:16 -08:00
Niko Matsakis
9f0239ce9c
add a test where mode inference ought to fail
2012-02-05 13:59:09 -08:00
Niko Matsakis
dd51031390
new test case
2012-02-05 10:37:07 -08:00
Niko Matsakis
966504c828
don't fail if inference is not complete
2012-02-05 10:06:27 -08:00
Niko Matsakis
daf0d63a59
new test showing off the improved inference
2012-02-05 09:56:18 -08:00
Niko Matsakis
7f12358656
resolve some merge failures
2012-02-05 09:56:10 -08:00
Niko Matsakis
77b06d24cd
infer modes rather than overwriting with expected ty
2012-02-05 09:12:44 -08:00
Niko Matsakis
5163606d06
platform-specific valgrind suppression
2012-02-05 09:07:23 -08:00
Brian Anderson
30a671dc0c
bench: Tweak threadring benchmark so it pretty-prints
2012-02-04 20:34:51 -08:00
Brian Anderson
b4e221bf90
bench: Add threadring shootout benchmark
2012-02-04 20:01:55 -08:00
Brian Anderson
5d4b372902
Revert "bench: Add threadring shootout benchmark"
...
This reverts commit cdb246f832
.
2012-02-04 19:50:45 -08:00
Brian Anderson
cdb246f832
bench: Add threadring shootout benchmark
2012-02-04 18:00:59 -08:00
Brian Anderson
e818406072
rt: Expand rust_kernel::live_tasks to a uintptr_t
2012-02-04 01:15:00 -08:00
Brian Anderson
9fa950ec53
rt: Stop using atomic ops on rust_kernel::live_tasks
...
These ops are all done within spitting distance of a suitable lock,
so just protect it with the lock.
2012-02-04 00:31:43 -08:00
Brian Anderson
21d783c338
rt: Make isaac_init not a template
2012-02-03 23:48:12 -08:00
Brian Anderson
f7a727e861
rt: Remove some silly locks in rust_scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
c7777f4fd9
rt: Add sanity checks when we hit the max task/port id
2012-02-03 23:48:12 -08:00
Brian Anderson
12fa90888e
rt: Clean up the way the kernel tracks tasks
2012-02-03 23:48:12 -08:00
Brian Anderson
e7f00b6493
rt: Do all task creation through a scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
bf250bec7c
rt: Create new tasks through the current thread's scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
3d0e7a7af3
rt: Add a field to rust_task to hold its scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
8d881967a2
rt: Extract rust_scheduler from rust_task_thread
2012-02-03 23:48:12 -08:00
Brian Anderson
f94339cc1c
rt: Rename rust_scheduler to rust_task_thread
2012-02-03 23:48:12 -08:00
Tim Chevalier
f3343b3571
Beginnings of front-end support for classes
...
Added class support to the parser, prettyprinter, fold, and visit.
(See Issue 1726.)
This is WIP -- the test case is xfailed, and attempting to compile
it will error out in resolve.
2012-02-03 22:47:35 -08:00
Ted Horst
d65eabd5de
log to stderr instead of stdout
...
includes rustc diagnostics
runtest updated to check stderr for errors
2012-02-03 20:55:53 -08:00
Ted Horst
9b46e875cc
add third arg for output path, default to no output
2012-02-03 20:49:14 -08:00
Ted Horst
63ae16f752
fix formatting
2012-02-03 20:49:14 -08:00
Ted Horst
e7738ca38b
add mandelbrot image generator from shootout
2012-02-03 20:49:13 -08:00
Graydon Hoare
8fc624bc08
Fix various drift issues in the qq branch.
2012-02-03 20:54:18 -07:00
Kevin Atkinson
dbb13883f7
Additional testcase.
2012-02-03 20:54:18 -07:00
Kevin Atkinson
3604f36938
Implement folding of ast::ty.
2012-02-03 20:54:17 -07:00
Kevin Atkinson
42e25b2bb9
Type anti-quotes now work, add test case.
2012-02-03 20:54:17 -07:00
Kevin Atkinson
5f6a1159bb
Fix q-q so that non-expression q-q actually work when there is embed anti-q.
2012-02-03 20:54:00 -07:00
Kevin Atkinson
a2dde9a692
Allow anti-quotes to also be ast::ty rather than just ast::expr.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
f7fab77102
Add testcase.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
6dcd12dc22
Implement quasi-quoting of multiple syntatic categories.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
35a199c036
Formatting cleanups.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
9090a5c03b
Store info about file "substr".
...
That is when a string that is part of a file needs to be parsed for a
reason, record that the string is a substr of the file rather than
using "<anon>" or "-" as the file name. This will eventually allow
pointing to the right location, for now it just uses a more
meaningful string for the filename.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
4d71285c93
Implement quasi-quotes in more macro form: #ast{...}.
...
The #(...) form is still supported for now.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
1c91fb4d91
Don't rely on filename to get a file from the filemap
...
as there may be more than one filemap with the same filename (in the
case of stdin for instance). This involved storing a pointer to the
filemap rather than the filename in location info such as
codemap::pos.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
4616117f17
Bug fix in lookup_byte_offset.
2012-02-03 20:41:49 -07:00
Kevin Atkinson
da74a7f9ca
Make macro arg optional in syntax, again untested.
2012-02-03 20:41:48 -07:00
Kevin Atkinson
5ea04c65c1
Add support for recognizing macro body, completely untested.
2012-02-03 20:41:48 -07:00
Kevin Atkinson
e76fdeb3a6
Change the type for the macro body to also store the span.
...
Note: the body is the part of the macro syntax between the {}.
2012-02-03 20:41:48 -07:00
Kevin Atkinson
099290bc73
When replacing $(...) with $0 preserve spacing for better error messages.
...
That is:
x + $(foo) + y
becomes:
x + $0 + y
not:
x + $0 + y
2012-02-03 20:41:37 -07:00
Kevin Atkinson
c0f9073557
Expand result of quasi-quote.
2012-02-03 20:39:00 -07:00
Kevin Atkinson
67e961c17f
Implement anti-quotes.
2012-02-03 20:38:44 -07:00
Kevin Atkinson
477714f08e
Implement "replace" function.
2012-02-03 20:28:12 -07:00
Kevin Atkinson
485e489ba2
Implement basic quasi-quoter. No anti-quotes yet.
2012-02-03 20:28:11 -07:00
Kevin Atkinson
98450d0dad
Rename AST builders to use uniform naming scheme. Also add a few more.
2012-02-03 20:28:11 -07:00
Kevin Atkinson
5ef53382ae
Add support for parsing quasi-quotes, doesn't do anything useful yet.
2012-02-03 20:23:49 -07:00
Kevin Atkinson
75edd9ff69
Move useful ast building functions into their own module.
2012-02-03 17:48:17 -08:00
Kevin Atkinson
9dcb674525
Add function to get a code snippet from a span,
...
and also to get the byte offset within a string from a span chpos.
2012-02-03 17:48:17 -08:00
Kevin Atkinson
e127bf680f
Fix byte_len in char_len_range to be what it is advertised.
2012-02-03 17:48:16 -08:00
Niko Matsakis
33f4a98388
correct to use enum keyword
2012-02-03 13:58:50 -08:00
Marijn Haverbeke
61367e3c27
Fix prefixing of logging paths with crate name
2012-02-03 22:12:09 +01:00
Brian Anderson
a57c15bf88
rustdoc: Add various sorting passes
2012-02-03 12:00:49 -08:00
Marijn Haverbeke
c976b7c623
Fix tests for str::le patch
2012-02-03 14:32:23 +01:00
Tom Lee
31b0d1b4bd
core: rename str::lteq to str::le
2012-02-03 14:09:44 +01:00
Marijn Haverbeke
633e4502e7
Clean up and update trans::ty_ctxt type definition
...
It had been messed up by the pretty-printer at some point, and was
partially out of date.
2012-02-03 14:09:16 +01:00
Marijn Haverbeke
3bcd4fe6fa
Start on in-crate monomorphizing
...
Adds a --monomorpize flag to rustc to turn it on. You probably don't
want to use it yet, since it's broken in a whole bunch of ways, but it
successfully monomorphizes simple generic functions called from within
the crate.
Issue #1736
2012-02-03 14:07:35 +01:00
Tom Lee
a02f332602
std: rename sort::lteq to sort::le.
2012-02-03 12:02:57 +01:00
Marijn Haverbeke
43ce38375d
Store item paths in ast_map, get rid of trans::local_ctxt
...
The direct motivation for this was that the monomorphizer needs to be
able to generate sane symbols for random items. The typechecker can
probably also use this in the future to provide more useful error
messages.
2012-02-03 11:34:12 +01:00
Marijn Haverbeke
c1b075d042
Remove experimental GC code
...
It's been sitting unused long enough to have bitrotted completely.
2012-02-03 11:34:12 +01:00
Brian Anderson
1ea184285e
rt: Change the win32 event object to an auto-reset event
...
The way I read the docs, having this be a manual reset event means
that after the first time it's signalled it stays that way until reset,
and we never, ever reset it.
2012-02-02 18:30:06 -08:00
Brian Anderson
3b4dd26ff1
rt: Remove lock_and_signal::signal_all
2012-02-02 18:29:03 -08:00
Brian Anderson
9c33f2c561
rt: Remove lock_and_signal::timed_wait
2012-02-02 18:25:49 -08:00
Brian Anderson
cd774fc5fa
rt: Stop waking up the scheduler on a timer
2012-02-02 18:23:01 -08:00
Brian Anderson
b1a090c7c4
rt: Remove unused arguments in rust_scheduler
2012-02-02 18:17:33 -08:00
Brian Anderson
6c632c71c6
rt: Simplify reap_dead_tasks
2012-02-02 18:10:24 -08:00
Brian Anderson
f719ea552b
rt: Remove rust_scheduler::interrupt_flag. Unused
2012-02-02 18:10:24 -08:00
Brian Anderson
aee83d2ff1
rt: Only wake up all schedulers when no tasks are left
...
At the moment there's not really any reason to be raising this signal,
since they schedulers wake up periodically anyway, but once we remove
the timer this will be how the schedulers know to exit.
2012-02-02 18:10:24 -08:00
Brian Anderson
5c3c8d454d
rt: Do all signalling while holding a lock
...
This will matter once the scheduler is changed to not wake up on a timer
2012-02-02 18:10:24 -08:00
Brian Anderson
5449b886d3
rt: Remove bogus task reaping from the scheduler
2012-02-02 18:10:24 -08:00
Brian Anderson
3978fbff8b
rt: Remove rust_task::can_schedule. Does nothing
2012-02-02 18:10:24 -08:00
Brian Anderson
ed3a5ad5ad
rt: Remove running_on flag. Does nothing
2012-02-02 18:10:24 -08:00
Brian Anderson
57cad61353
rt: Remove task pinning. Does nothing
2012-02-02 18:10:24 -08:00
Brian Anderson
18de0f2aeb
rt: Rename task_sleep intrinsic to task_yield. Remove usec param
2012-02-02 18:10:24 -08:00
Brian Anderson
8693fcc2d7
rt: Remove yield timers
2012-02-02 18:10:24 -08:00
Brian Anderson
7f2980b749
rt: Remove bitrotted tests
2012-02-02 18:10:24 -08:00
Brian Anderson
65f4b0587a
rt: Generate intrinsics
2012-02-02 18:10:23 -08:00
Brian Anderson
bda40e2e4a
rt: Fix intrinsics bustage
...
intrinsics.cpp and the file to generate the ll had bitrotted.
2012-02-02 18:10:23 -08: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
Marijn Haverbeke
6a7de641da
Add test case for issue #1733
2012-02-02 10:30:07 +01:00
Marijn Haverbeke
743c62e1ce
Fix assumption in mut.rs that op overloading breaks
...
Closes #1733
2012-02-02 08:11:20 +01:00
Brian Anderson
2b67de06c8
rustdoc: Add support for type items
2012-02-01 22:41:54 -08:00
Kevin Cantu
ae0d49aa06
Rename str::char_slice -> str::slice
2012-02-01 21:56:53 -08:00
Kevin Cantu
fc9169f09c
Make the tests work, too
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
01c01f68af
Stop exporting str::slice and str::safe_slice (use unsafe instead)
2012-02-01 21:56:53 -08:00
Kevin Cantu
c71667d9d2
Propagating unsafe::slice 4
2012-02-01 21:56:53 -08:00
Kevin Cantu
fceec03da0
Propagating unsafe::slice 3
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
Kevin Cantu
4e406d7fdd
Make it work 1
2012-02-01 21:56:53 -08:00
Kevin Cantu
cccf9e5389
Copy str::slice -> str::unsafe::slice (and unsafe_slice)
2012-02-01 21:56:53 -08:00
Kevin Cantu
5a19bafeea
Actually export the str::unsafe module for now
2012-02-01 21:56:53 -08:00
Niko Matsakis
af2dd9b3b7
register new snapshot, revert USE_SNAPSHOT_RUNTIME setting
2012-02-01 21:02:19 -08:00
Niko Matsakis
196d69beb2
make boxes self-describing ( fixes #1493 )" (take 2)
...
this will be used to generate a new snapshot.
2012-02-01 18:52:08 -08:00
Niko Matsakis
3116643806
Revert "make boxes self-describing ( fixes #1493 )" until a new
...
snapshot is prepared.
2012-02-01 18:50:19 -08:00
Niko Matsakis
c36207bfb8
make boxes self-describing ( fixes #1493 )
2012-02-01 18:18:07 -08:00
Tim Chevalier
49cb3fc7df
Remove remaining references to option::t outside option itself
2012-02-01 16:49:57 -08:00
Brian Anderson
4eb92d4177
rt: Don't access fields on null supervisor task
2012-02-01 16:46:11 -08:00
Brian Anderson
f76e6c39f6
rt: Fix lock_held_by_current_thread
...
This simplifies the check for thread ownership by removing the _locked flag
and just comparing against the thread ID of the last thread to take the lock.
If the running thread took the lock _holding_thread will be equal to
pthread_self(); if _holding_thread is some other value then the running thread
does not have the lock.
Setting a pthread_t to 0 like this is not portable but should work on every
platform we are likely to care about for the near future.
2012-02-01 16:06:58 -08:00
Brian Anderson
6b5f7865be
rt: Remove unused variable from lock_and_signal
2012-02-01 16:06:21 -08:00
Brian Anderson
f954ce5ef1
rt: Remove calls to signal the kernel lock
...
Nobody ever waits for it
2012-02-01 16:05:17 -08:00
Brian Anderson
5c89938544
rt: Remove rust_timer. Unused
2012-02-01 16:05:17 -08:00
Brian Anderson
d24eb58a09
core: Ignore should_fail tests on win32
2012-02-01 15:35:59 -08:00
Marijn Haverbeke
694de53d28
Make vec::pop efficient
2012-02-01 12:23:13 +01:00
Marijn Haverbeke
2dbaa05af8
Remove support for native types
...
Issue #1673
2012-02-01 12:23:13 +01:00
Marijn Haverbeke
856a544d0c
Remove native types from stdlib
2012-02-01 12:23:13 +01:00
Marijn Haverbeke
c6aead7281
Get rid of native types in LLVM module
...
Code is still somewhat kludgy because we don't have 32-bit enums.
Issue #1673
2012-02-01 12:23:13 +01:00
Brian Anderson
f6f3d518e6
rustdoc: Split the pruning of undocumented branches into two passes
...
prune_undoc_details_pass strips arguments and return values that are
undocumented. prune_undoc_items_pass prunes entire items.
2012-01-31 21:54:16 -08:00
Tim Chevalier
e204aa281d
Merge branch 'master' into register-snapshots
2012-01-31 21:08:53 -08:00
Brian Anderson
e8a5d81b24
rustdoc: Add impl docs to demo mod
2012-01-31 20:59:42 -08:00
Brian Anderson
77824cf2ed
rustdoc: Write markdown for impls
2012-01-31 20:54:46 -08:00
Tim Chevalier
11ecec1b71
register snapshots
2012-01-31 20:49:00 -08:00
Brian Anderson
f9f9388874
rustdoc: Apply string ops to impl docs
2012-01-31 20:42:06 -08:00
Brian Anderson
3f1534ad72
rustdoc: Promote impl descriptions to brief descriptions
2012-01-31 20:31:52 -08:00
Brian Anderson
d7a2837c55
rustdoc: Prune undocumented impls
2012-01-31 20:24:31 -08:00
Brian Anderson
fee9037765
rustdoc: Refactor tests
2012-01-31 19:32:27 -08:00
Brian Anderson
496205c85f
rustdoc: Pull impl docs out of attributes
2012-01-31 19:32:27 -08:00
Brian Anderson
23042a3566
rustdoc: Gather types of impls
2012-01-31 19:32:27 -08:00
Brian Anderson
b7108d71a5
rustdoc: Rename impldoc.for_ty to self_ty
2012-01-31 19:32:27 -08:00
Brian Anderson
c218b65fd8
rustdoc: Prune unexported impls
2012-01-31 19:32:27 -08:00
Brian Anderson
7d6cf37a8d
rustdoc: Extract impl doc nodes from AST
2012-01-31 19:32:27 -08:00
Brian Anderson
acb11f47dc
rustdoc: Add impl doc node
2012-01-31 19:32:27 -08:00
Niko Matsakis
56db37d4c7
add iter library in preliminary form (limited syntactic support)
2012-01-31 19:21:26 -08: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
1f795ff3b0
Re-implementing str::to_upper and str::to_lower using str::map
2012-01-31 14:29:11 -08:00
Kevin Cantu
a8b657397a
Add str::split_chars_iter and str::splitn_chars_iter
2012-01-31 14:29:11 -08:00
Kevin Cantu
ebf14cb3a9
Rename str::iter_chars -> str::chars_iter
2012-01-31 14:29:11 -08:00
Kevin Cantu
c7454f5595
Rename str::to_chars -> str::chars
2012-01-31 14:29:11 -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
Kevin Cantu
be9129f556
Comment fixes in str
2012-01-31 14:29:11 -08:00
Kevin Cantu
03b8c8df01
Rename str::from_byte(s) to str::unsafe::from_byte(s),
...
mark them as unsafe,
make comp/driver/driver.rs use str::from_bytes...
2012-01-31 14:29:10 -08:00
Graydon Hoare
24668d7578
Merge pull request #1713 from killerswan/manpg
...
Updating the manpage and usage message
2012-01-31 14:09:48 -08:00
Graydon Hoare
fb236b0bb6
Merge branch 'master' of github.com:mozilla/rust
2012-01-31 12:51:53 -08:00
Tim Chevalier
45c1dfe5b3
Don't compute pre- and postconditions for item_consts
...
Since item_consts can't refer to or modify local variables, they
don't participate in typestate and thus get empty pre and
postconditions by default.
Closes #1660
2012-01-31 11:52:46 -08:00
Graydon Hoare
f7d756fcac
Remove NSIS package, obsolete (and hazardous).
2012-01-31 11:46:47 -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
Marijn Haverbeke
813a55d891
Move walk_ty to stack closure
2012-01-31 13:02:46 +01:00
Marijn Haverbeke
25d60172d6
Don't consider references to nullary tag variants lvals in kind.rs
...
This allows us to express option::map with noncopyable type
parameters, which makes sense, since the type params aren't being
copied (none doesn't contain any).
2012-01-31 13:02:46 +01:00
Brian Anderson
b9bb58f104
core: Add ctypes::c_char
2012-01-30 22:08:57 -08:00