Skip to content

Commit 399f748

Browse files
committed
---
yaml --- r: 190232 b: refs/heads/tmp c: de52403 h: refs/heads/master v: v3
1 parent 447bea5 commit 399f748

File tree

155 files changed

+3208
-3340
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+3208
-3340
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
3434
refs/heads/beta: 522d09dfecbeca1595f25ac58c6d0178bbd21d7d
3535
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928
3636
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
37-
refs/heads/tmp: d0f98fcc7fd9846c6925eb46f969febef99ae9c3
37+
refs/heads/tmp: de52403295e66ee413f1085e8b9defe7d81b9751
3838
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3939
refs/tags/homu-tmp: d3c49d2140fc65e8bb7d7cf25bfe74dda6ce5ecf

branches/tmp/mk/llvm.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ $$(LLVM_STAMP_$(1)): $(S)src/rustllvm/llvm-auto-clean-trigger
4444
touch -r $$@.start_time $$@ && rm $$@.start_time
4545

4646
ifeq ($$(CFG_ENABLE_LLVM_STATIC_STDCPP),1)
47-
LLVM_STDCPP_LOCATION_$(1) = $$(shell $$(CC_$(1)) $$(CFG_GCCISH_CFLAGS_$(1)) \
48-
-print-file-name=libstdc++.a)
47+
LLVM_STDCPP_RUSTFLAGS_$(1) = -L "$$(dir $$(shell $$(CC_$(1)) $$(CFG_GCCISH_CFLAGS_$(1)) \
48+
-print-file-name=libstdc++.a))"
4949
else
50-
LLVM_STDCPP_LOCATION_$(1) =
50+
LLVM_STDCPP_RUSTFLAGS_$(1) =
5151
endif
5252

5353

branches/tmp/mk/main.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ CFG_PACKAGE_VERS=$(CFG_RELEASE_NUM)
3030
CFG_DISABLE_UNSTABLE_FEATURES=1
3131
endif
3232
ifeq ($(CFG_RELEASE_CHANNEL),beta)
33-
CFG_RELEASE=$(CFG_RELEASE_NUM)-beta$(CFG_PRERELEASE_VERSION)
34-
CFG_PACKAGE_VERS=$(CFG_RELEASE_NUM)-beta$(CFG_PRERELEASE_VERSION)
33+
CFG_RELEASE=$(CFG_RELEASE_NUM)-beta(CFG_PRERELEASE_VERSION)
34+
CFG_PACKAGE_VERS=$(CFG_RELEASE_NUM)-beta(CFG_PRERELEASE_VERSION)
3535
CFG_DISABLE_UNSTABLE_FEATURES=1
3636
endif
3737
ifeq ($(CFG_RELEASE_CHANNEL),nightly)

branches/tmp/mk/target.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
8585
$$(RUST_LIB_FLAGS_ST$(1)) \
8686
-L "$$(RT_OUTPUT_DIR_$(2))" \
8787
-L "$$(LLVM_LIBDIR_$(2))" \
88-
-L "$$(dir $$(LLVM_STDCPP_LOCATION_$(2)))" \
88+
$$(LLVM_STDCPP_RUSTFLAGS_$(2)) \
8989
$$(RUSTFLAGS_$(4)) \
9090
--out-dir $$(@D) \
9191
-C extra-filename=-$$(CFG_FILENAME_EXTRA) \

branches/tmp/src/compiletest/compiletest.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#![feature(std_misc)]
2121
#![feature(test)]
2222
#![feature(core)]
23+
#![feature(path)]
2324
#![feature(io)]
2425
#![feature(net)]
2526
#![feature(path_ext)]

branches/tmp/src/compiletest/procsrv.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![allow(deprecated)] // for old path, for dynamic_lib
12-
1311
use std::process::{ExitStatus, Command, Child, Output, Stdio};
1412
use std::io::prelude::*;
1513
use std::dynamic_lib::DynamicLibrary;

branches/tmp/src/doc/reference.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -229,14 +229,14 @@ cases mentioned in [Number literals](#number-literals) below.
229229

230230
##### Characters and strings
231231

232-
| | Example | `#` sets | Characters | Escapes |
233-
|----------------------------------------------|-----------------|------------|-------------|---------------------|
234-
| [Character](#character-literals) | `'H'` | `N/A` | All Unicode | `\'` & [Byte](#byte-escapes) & [Unicode](#unicode-escapes) |
235-
| [String](#string-literals) | `"hello"` | `N/A` | All Unicode | `\"` & [Byte](#byte-escapes) & [Unicode](#unicode-escapes) |
236-
| [Raw](#raw-string-literals) | `r#"hello"#` | `0...` | All Unicode | `N/A` |
237-
| [Byte](#byte-literals) | `b'H'` | `N/A` | All ASCII | `\'` & [Byte](#byte-escapes) |
238-
| [Byte string](#byte-string-literals) | `b"hello"` | `N/A` | All ASCII | `\"` & [Byte](#byte-escapes) |
239-
| [Raw byte string](#raw-byte-string-literals) | `br#"hello"#` | `0...` | All ASCII | `N/A` |
232+
| | Example | # sets | Characters | Escapes |
233+
|----------------------------------------------|---------------|--------|-------------|---------------------|
234+
| [Character](#character-literals) | 'H' | N/A | All Unicode | \' & [Byte](#byte-escapes) & [Unicode](#unicode-escapes) |
235+
| [String](#string-literals) | "hello" | N/A | All Unicode | \" & [Byte](#byte-escapes) & [Unicode](#unicode-escapes) |
236+
| [Raw](#raw-string-literals) | r#"hello"# | 0... | All Unicode | N/A |
237+
| [Byte](#byte-literals) | b'H' | N/A | All ASCII | \' & [Byte](#byte-escapes) |
238+
| [Byte string](#byte-string-literals) | b"hello" | N/A | All ASCII | \" & [Byte](#byte-escapes) |
239+
| [Raw byte string](#raw-byte-string-literals) | br#"hello"# | 0... | All ASCII | N/A |
240240

241241
##### Byte escapes
242242

branches/tmp/src/doc/trpl/hello-cargo.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,9 @@ Hello, world!
8585
Bam! We build our project with `cargo build`, and run it with
8686
`./target/debug/hello_world`. This hasn't bought us a whole lot over our simple use
8787
of `rustc`, but think about the future: when our project has more than one
88-
file, we would need to call `rustc` more than once and pass it a bunch of options to
88+
file, we would need to call `rustc` more than once, and pass it a bunch of options to
8989
tell it to build everything together. With Cargo, as our project grows, we can
90-
just `cargo build`, and it'll work the right way. When your project is finally
91-
ready for release, you can use `cargo build --release` to compile your crates with
92-
optimizations.
90+
just `cargo build` and it'll work the right way. When you're project is finally ready for release, you can use `cargo build --release` to compile your crates with optimizations.
9391

9492
You'll also notice that Cargo has created a new file: `Cargo.lock`.
9593

branches/tmp/src/etc/gdb_rust_pretty_printing.py

Lines changed: 1 addition & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,9 @@ def rust_pretty_printer_lookup_function(val):
2727
if type_code == gdb.TYPE_CODE_STRUCT:
2828
struct_kind = classify_struct(val.type)
2929

30-
if struct_kind == STRUCT_KIND_SLICE:
31-
return RustSlicePrinter(val)
32-
3330
if struct_kind == STRUCT_KIND_STR_SLICE:
3431
return RustStringSlicePrinter(val)
3532

36-
if struct_kind == STRUCT_KIND_STD_VEC:
37-
return RustStdVecPrinter(val)
38-
39-
if struct_kind == STRUCT_KIND_STD_STRING:
40-
return RustStdStringPrinter(val)
41-
4233
if struct_kind == STRUCT_KIND_TUPLE:
4334
return RustTuplePrinter(val)
4435

@@ -181,28 +172,6 @@ def children(self):
181172
def display_hint(self):
182173
return "array"
183174

184-
class RustSlicePrinter:
185-
def __init__(self, val):
186-
self.val = val
187-
188-
def display_hint(self):
189-
return "array"
190-
191-
def to_string(self):
192-
length = int(self.val["length"])
193-
return self.val.type.tag + ("(len: %i)" % length)
194-
195-
def children(self):
196-
cs = []
197-
length = int(self.val["length"])
198-
data_ptr = self.val["data_ptr"]
199-
assert data_ptr.type.code == gdb.TYPE_CODE_PTR
200-
pointee_type = data_ptr.type.target()
201-
202-
for index in range(0, length):
203-
cs.append((str(index), (data_ptr + index).dereference()))
204-
205-
return cs
206175

207176
class RustStringSlicePrinter:
208177
def __init__(self, val):
@@ -212,35 +181,6 @@ def to_string(self):
212181
slice_byte_len = self.val["length"]
213182
return '"%s"' % self.val["data_ptr"].string(encoding="utf-8", length=slice_byte_len)
214183

215-
class RustStdVecPrinter:
216-
def __init__(self, val):
217-
self.val = val
218-
219-
def display_hint(self):
220-
return "array"
221-
222-
def to_string(self):
223-
length = int(self.val["len"])
224-
cap = int(self.val["cap"])
225-
return self.val.type.tag + ("(len: %i, cap: %i)" % (length, cap))
226-
227-
def children(self):
228-
cs = []
229-
(length, data_ptr) = extract_length_and_data_ptr_from_std_vec(self.val)
230-
pointee_type = data_ptr.type.target()
231-
232-
for index in range(0, length):
233-
cs.append((str(index), (data_ptr + index).dereference()))
234-
return cs
235-
236-
class RustStdStringPrinter:
237-
def __init__(self, val):
238-
self.val = val
239-
240-
def to_string(self):
241-
(length, data_ptr) = extract_length_and_data_ptr_from_std_vec(self.val["vec"])
242-
return '"%s"' % data_ptr.string(encoding="utf-8", length=length)
243-
244184

245185
class RustCStyleEnumPrinter:
246186
def __init__(self, val):
@@ -264,38 +204,19 @@ def to_string(self):
264204
STRUCT_KIND_TUPLE_VARIANT = 3
265205
STRUCT_KIND_STRUCT_VARIANT = 4
266206
STRUCT_KIND_CSTYLE_VARIANT = 5
267-
STRUCT_KIND_SLICE = 6
268-
STRUCT_KIND_STR_SLICE = 7
269-
STRUCT_KIND_STD_VEC = 8
270-
STRUCT_KIND_STD_STRING = 9
207+
STRUCT_KIND_STR_SLICE = 6
271208

272209

273210
def classify_struct(type):
274-
# print("\nclassify_struct: tag=%s\n" % type.tag)
275211
if type.tag == "&str":
276212
return STRUCT_KIND_STR_SLICE
277213

278-
if type.tag.startswith("&[") and type.tag.endswith("]"):
279-
return STRUCT_KIND_SLICE
280-
281214
fields = list(type.fields())
282215
field_count = len(fields)
283216

284217
if field_count == 0:
285218
return STRUCT_KIND_REGULAR_STRUCT
286219

287-
if (field_count == 3 and
288-
fields[0].name == "ptr" and
289-
fields[1].name == "len" and
290-
fields[2].name == "cap" and
291-
type.tag.startswith("Vec<")):
292-
return STRUCT_KIND_STD_VEC
293-
294-
if (field_count == 1 and
295-
fields[0].name == "vec" and
296-
type.tag == "String"):
297-
return STRUCT_KIND_STD_STRING
298-
299220
if fields[0].name == "RUST$ENUM$DISR":
300221
if field_count == 1:
301222
return STRUCT_KIND_CSTYLE_VARIANT
@@ -333,11 +254,3 @@ def get_field_at_index(val, index):
333254
return field
334255
i += 1
335256
return None
336-
337-
def extract_length_and_data_ptr_from_std_vec(vec_val):
338-
length = int(vec_val["len"])
339-
vec_ptr_val = vec_val["ptr"]
340-
unique_ptr_val = vec_ptr_val[first_field(vec_ptr_val)]
341-
data_ptr = unique_ptr_val[first_field(unique_ptr_val)]
342-
assert data_ptr.type.code == gdb.TYPE_CODE_PTR
343-
return (length, data_ptr)

branches/tmp/src/etc/lldb_rust_formatters.py

Lines changed: 21 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,31 @@ def print_struct_val(val, internal_dict):
4040

4141
if is_vec_slice(val):
4242
return print_vec_slice_val(val, internal_dict)
43-
elif is_std_vec(val):
44-
return print_std_vec_val(val, internal_dict)
4543
else:
4644
return print_struct_val_starting_from(0, val, internal_dict)
4745

4846

47+
def print_vec_slice_val(val, internal_dict):
48+
length = val.GetChildAtIndex(1).GetValueAsUnsigned()
49+
50+
data_ptr_val = val.GetChildAtIndex(0)
51+
data_ptr_type = data_ptr_val.GetType()
52+
assert data_ptr_type.IsPointerType()
53+
54+
element_type = data_ptr_type.GetPointeeType()
55+
element_type_size = element_type.GetByteSize()
56+
57+
start_address = data_ptr_val.GetValueAsUnsigned()
58+
59+
def render_element(i):
60+
address = start_address + i * element_type_size
61+
element_val = val.CreateValueFromAddress(val.GetName() +
62+
("[%s]" % i), address, element_type)
63+
return print_val(element_val, internal_dict)
64+
65+
return "&[%s]" % (', '.join([render_element(i) for i in range(length)]))
66+
67+
4968
def print_struct_val_starting_from(field_start_index, val, internal_dict):
5069
'''
5170
Prints a struct, tuple, or tuple struct value with Rust syntax.
@@ -81,16 +100,6 @@ def render_child(child_index):
81100
this += field_name + ": "
82101

83102
field_val = val.GetChildAtIndex(child_index)
84-
85-
if not field_val.IsValid():
86-
field = t.GetFieldAtIndex(child_index)
87-
# LLDB is not good at handling zero-sized values, so we have to help
88-
# it a little
89-
if field.GetType().GetByteSize() == 0:
90-
return this + extract_type_name(field.GetType().GetName())
91-
else:
92-
return this + "<invalid value>"
93-
94103
return this + print_val(field_val, internal_dict)
95104

96105
body = separator.join([render_child(idx) for idx in range(field_start_index, num_children)])
@@ -186,30 +195,6 @@ def print_fixed_size_vec_val(val, internal_dict):
186195
return output
187196

188197

189-
def print_vec_slice_val(val, internal_dict):
190-
length = val.GetChildAtIndex(1).GetValueAsUnsigned()
191-
192-
data_ptr_val = val.GetChildAtIndex(0)
193-
data_ptr_type = data_ptr_val.GetType()
194-
195-
return "&[%s]" % print_array_of_values(val.GetName(),
196-
data_ptr_val,
197-
length,
198-
internal_dict)
199-
200-
201-
def print_std_vec_val(val, internal_dict):
202-
length = val.GetChildAtIndex(1).GetValueAsUnsigned()
203-
204-
# Vec<> -> Unique<> -> NonZero<> -> *T
205-
data_ptr_val = val.GetChildAtIndex(0).GetChildAtIndex(0).GetChildAtIndex(0)
206-
data_ptr_type = data_ptr_val.GetType()
207-
208-
return "vec![%s]" % print_array_of_values(val.GetName(),
209-
data_ptr_val,
210-
length,
211-
internal_dict)
212-
213198
#=--------------------------------------------------------------------------------------------------
214199
# Helper Functions
215200
#=--------------------------------------------------------------------------------------------------
@@ -258,44 +243,3 @@ def is_vec_slice(val):
258243

259244
type_name = extract_type_name(ty.GetName()).replace("&'static", "&").replace(" ", "")
260245
return type_name.startswith("&[") and type_name.endswith("]")
261-
262-
def is_std_vec(val):
263-
ty = val.GetType()
264-
if ty.GetTypeClass() != lldb.eTypeClassStruct:
265-
return False
266-
267-
if ty.GetNumberOfFields() != 3:
268-
return False
269-
270-
if ty.GetFieldAtIndex(0).GetName() != "ptr":
271-
return False
272-
273-
if ty.GetFieldAtIndex(1).GetName() != "len":
274-
return False
275-
276-
if ty.GetFieldAtIndex(2).GetName() != "cap":
277-
return False
278-
279-
return ty.GetName().startswith("collections::vec::Vec<")
280-
281-
282-
def print_array_of_values(array_name, data_ptr_val, length, internal_dict):
283-
'''Prints a contigous memory range, interpreting it as values of the
284-
pointee-type of data_ptr_val.'''
285-
286-
data_ptr_type = data_ptr_val.GetType()
287-
assert data_ptr_type.IsPointerType()
288-
289-
element_type = data_ptr_type.GetPointeeType()
290-
element_type_size = element_type.GetByteSize()
291-
292-
start_address = data_ptr_val.GetValueAsUnsigned()
293-
294-
def render_element(i):
295-
address = start_address + i * element_type_size
296-
element_val = data_ptr_val.CreateValueFromAddress(array_name + ("[%s]" % i),
297-
address,
298-
element_type)
299-
return print_val(element_val, internal_dict)
300-
301-
return ', '.join([render_element(i) for i in range(length)])

branches/tmp/src/liballoc/heap.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,6 @@ mod imp {
198198
extern {}
199199

200200
extern {
201-
#[allocator]
202201
fn je_mallocx(size: size_t, flags: c_int) -> *mut c_void;
203202
fn je_rallocx(ptr: *mut c_void, size: size_t, flags: c_int) -> *mut c_void;
204203
fn je_xallocx(ptr: *mut c_void, size: size_t, extra: size_t, flags: c_int) -> size_t;

branches/tmp/src/liballoc/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@
6969

7070
#![feature(no_std)]
7171
#![no_std]
72-
#![feature(allocator)]
7372
#![feature(lang_items, unsafe_destructor)]
7473
#![feature(box_syntax)]
7574
#![feature(optin_builtin_traits)]

0 commit comments

Comments
 (0)