Skip to content

Commit 3b365f9

Browse files
committed
---
yaml --- r: 22461 b: refs/heads/master c: c19b5d9 h: refs/heads/master i: 22459: f289c5c v: v3
1 parent 41b1ebf commit 3b365f9

Some content is hidden

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

45 files changed

+244
-166
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: a8db1bd4ef3d2464b3a13c049491f25e6a4aaa32
2+
refs/heads/master: c19b5d9566d838ff125e9f78418cc8115ca5eaf7
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
55
refs/heads/try: ffbe0e0e00374358b789b0037bcb3a577cd218be

trunk/RELEASES.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
Version 0.3 (July 2012) - not yet!
2-
-----------------------------------
1+
Version 0.3 (July 2012)
2+
------------------------
33

4-
* ~1500 changes, numerous bugfixes
4+
* ~1900 changes, numerous bugfixes
55

66
* New coding conveniences
77
* Integer-literal suffix inference
@@ -33,7 +33,7 @@ Version 0.3 (July 2012) - not yet!
3333

3434
* Removal of various obsolete features
3535
* Keywords: 'be', 'prove', 'syntax', 'note', 'mutable', 'bind',
36-
'crust', 'native' (now 'extern')
36+
'crust', 'native' (now 'extern'), 'cont' (now 'again')
3737

3838
* Constructs: do-while loops ('do' repurposed), fn binding,
3939
resources (replaced by destructors)

trunk/mk/host.mk

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC): \
3131
@$$(call E, cp: $$@)
3232
$$(Q)cp $$< $$@
3333
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_GLOB) \
34-
$$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_DSYM_GLOB) \
3534
$$(HLIB$(2)_H_$(4))
3635

3736
$$(HLIB$(2)_H_$(4))/$$(CFG_LIBSYNTAX): \
@@ -43,7 +42,6 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBSYNTAX): \
4342
@$$(call E, cp: $$@)
4443
$$(Q)cp $$< $$@
4544
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_GLOB) \
46-
$$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_DSYM_GLOB) \
4745
$$(HLIB$(2)_H_$(4))
4846

4947
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME): \
@@ -56,15 +54,7 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_CORELIB): \
5654
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME)
5755
@$$(call E, cp: $$@)
5856
$$(Q)cp $$< $$@
59-
# Subtle: We do not let the shell expand $(CORELIB_DSYM_GLOB) directly rather
60-
# we use Make's $$(wildcard) facility. The reason is that, on mac, when using
61-
# USE_SNAPSHOT_CORELIB, we copy the core.dylib file out of the snapshot.
62-
# In that case, there is no .dSYM file. Annoyingly, bash then refuses to expand
63-
# glob, and cp reports an error because libcore-*.dylib.dsym does not exist.
64-
# Make instead expands the glob to nothing, which gives us the correct behavior.
65-
# (Copy .dsym file if it exists, but do nothing otherwise)
6657
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_GLOB) \
67-
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_DSYM_GLOB)) \
6858
$$(HLIB$(2)_H_$(4))
6959

7060
$$(HLIB$(2)_H_$(4))/$$(CFG_STDLIB): \
@@ -74,7 +64,6 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_STDLIB): \
7464
@$$(call E, cp: $$@)
7565
$$(Q)cp $$< $$@
7666
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_GLOB) \
77-
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_DSYM_GLOB)) \
7867
$$(HLIB$(2)_H_$(4))
7968

8069
$$(HLIB$(2)_H_$(4))/libcore.rlib: \

trunk/mk/platform.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ endif
7676

7777
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
7878
CFG_LIB_NAME=lib$(1).dylib
79-
CFG_LIB_GLOB=lib$(1)-*.dylib
80-
CFG_LIB_DSYM_GLOB=lib$(1)-*.dylib.dSYM
79+
# needs trailing * to pick up the .dSYM file too
80+
CFG_LIB_GLOB=lib$(1)-*.dylib*
8181
CFG_UNIXY := 1
8282
CFG_LDENV := DYLD_LIBRARY_PATH
8383
CFG_GCCISH_LINK_FLAGS += -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind

trunk/src/cargo/cargo.rc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// End:
1212

1313
#[link(name = "cargo",
14-
vers = "0.2",
14+
vers = "0.3",
1515
uuid = "9ff87a04-8fed-4295-9ff8-f99bb802650b",
1616
url = "https://github.com/mozilla/rust/tree/master/src/cargo")];
1717

@@ -21,10 +21,10 @@
2121

2222
#[warn(no_non_implicitly_copyable_typarams,no_vecs_not_implicitly_copyable)];
2323

24-
use core(vers = "0.2");
25-
use std(vers = "0.2");
26-
use rustc(vers = "0.2");
27-
use syntax(vers = "0.2");
24+
use core(vers = "0.3");
25+
use std(vers = "0.3");
26+
use rustc(vers = "0.3");
27+
use syntax(vers = "0.3");
2828

2929
import core::*;
3030

trunk/src/compiletest/compiletest.rc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
#[warn(no_vecs_not_implicitly_copyable)];
66

7-
use core(vers = "0.2");
8-
use std(vers = "0.2");
7+
use core(vers = "0.3");
8+
use std(vers = "0.3");
99

1010
import core::*;
1111

trunk/src/etc/pkg/rust.iss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
SetupIconFile=rust-logo.ico
66
AppName=Rust
77
AppVersion={#CFG_VERSION}
8-
AppCopyright=Copyright (C) 2006-2011 Mozilla Foundation, MIT license
8+
AppCopyright=Copyright (C) 2006-2012 Mozilla Foundation, MIT license
99
AppPublisher=Mozilla Foundation
1010
AppPublisherURL=http://www.rust-lang.org
1111
VersionInfoVersion={#CFG_VERSION}

trunk/src/fuzzer/fuzzer.rc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
#[warn(no_vecs_not_implicitly_copyable)];
88

9-
use core(vers = "0.2");
10-
use std(vers = "0.2");
11-
use syntax(vers = "0.2");
9+
use core(vers = "0.3");
10+
use std(vers = "0.3");
11+
use syntax(vers = "0.3");
1212

1313
import core::*;
1414

trunk/src/libcore/core.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#[link(name = "core",
2-
vers = "0.2",
2+
vers = "0.3",
33
uuid = "c70c24a7-5551-4f73-8e37-380b11d80be8",
44
url = "https://github.com/mozilla/rust/tree/master/src/libcore")];
55

trunk/src/libcore/core.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ mod core {
5959
// Similar to above. Some magic to make core testable.
6060
#[cfg(test)]
6161
mod std {
62-
use std(vers = "0.2");
62+
use std(vers = "0.3");
6363
import std::test;
6464
}
6565

trunk/src/libcore/sys.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ export log_str;
1010
export lock_and_signal, condition, methods;
1111

1212
enum type_desc = {
13-
size: uint,
14-
align: uint
13+
first_param: **libc::c_int,
14+
size: libc::size_t,
15+
align: libc::size_t
1516
// Remaining fields not listed
1617
};
1718

trunk/src/libstd/arena.rs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ impl arena for arena {
3131
head = chunk(uint::next_power_of_two(new_min_chunk_size + 1u));
3232
self.chunks = @cons(head, self.chunks);
3333

34-
ret self.alloc_inner(n_bytes, align);
34+
ret self.alloc(n_bytes, align);
3535
}
3636

3737
#[inline(always)]
38-
fn alloc_inner(n_bytes: uint, align: uint) -> *() {
38+
fn alloc(n_bytes: uint, align: uint) -> *() {
3939
let alignm1 = align - 1u;
4040
let mut head = list::head(self.chunks);
4141

@@ -52,13 +52,5 @@ impl arena for arena {
5252
ret unsafe::reinterpret_cast(p);
5353
}
5454
}
55-
56-
#[inline(always)]
57-
fn alloc(tydesc: *()) -> *() {
58-
unsafe {
59-
let tydesc = tydesc as *sys::type_desc;
60-
self.alloc_inner((*tydesc).size, (*tydesc).align)
61-
}
62-
}
6355
}
6456

trunk/src/libstd/std.rc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#[link(name = "std",
2-
vers = "0.2",
2+
vers = "0.3",
33
uuid = "122bed0b-c19b-4b82-b0b7-7ae8aead7297",
44
url = "https://github.com/mozilla/rust/tree/master/src/libstd")];
55

@@ -12,7 +12,7 @@
1212

1313
#[warn(no_vecs_not_implicitly_copyable)];
1414

15-
use core(vers = "0.2");
15+
use core(vers = "0.3");
1616
import core::*;
1717

1818
export net, net_tcp, net_ip;

trunk/src/libsyntax/ext/auto_serialize.rs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,7 @@ fn ser_ty(cx: ext_ctxt, tps: ser_tps_map,
459459
~[]
460460
}
461461

462+
ast::ty_vstore(@{node: ast::ty_vec(mt),_}, ast::vstore_uniq) |
462463
ast::ty_vec(mt) {
463464
let ser_e =
464465
cx.expr(
@@ -476,11 +477,6 @@ fn ser_ty(cx: ext_ctxt, tps: ser_tps_map,
476477
}]
477478
}
478479

479-
// For unique vstores, just pass through to the underlying vec or str
480-
ast::ty_vstore(ty, ast::vstore_uniq) {
481-
ser_ty(cx, tps, ty, s, v)
482-
}
483-
484480
ast::ty_vstore(_, _) {
485481
cx.span_unimpl(ty.span, "serialization for vstore types");
486482
}
@@ -689,16 +685,12 @@ fn deser_ty(cx: ext_ctxt, tps: deser_tps_map,
689685
#ast{ fail }
690686
}
691687

688+
ast::ty_vstore(@{node: ast::ty_vec(mt),_}, ast::vstore_uniq) |
692689
ast::ty_vec(mt) {
693690
let l = deser_lambda(cx, tps, mt.ty, cx.clone(d));
694691
#ast{ std::serialization::read_to_vec($(d), $(l)) }
695692
}
696693

697-
// For unique vstores, just pass through to the underlying vec or str
698-
ast::ty_vstore(ty, ast::vstore_uniq) {
699-
deser_ty(cx, tps, ty, d)
700-
}
701-
702694
ast::ty_vstore(_, _) {
703695
cx.span_unimpl(ty.span, "deserialization for vstore types");
704696
}

trunk/src/libsyntax/syntax.rc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#[link(name = "syntax",
2-
vers = "0.2",
2+
vers = "0.3",
33
uuid = "9311401b-d6ea-4cd9-a1d9-61f89499c645")];
44

55

@@ -10,8 +10,8 @@
1010

1111
#[warn(no_vecs_not_implicitly_copyable)];
1212

13-
use core(vers = "0.2");
14-
use std(vers = "0.2");
13+
use core(vers = "0.3");
14+
use std(vers = "0.3");
1515

1616
import core::*;
1717

trunk/src/rt/rust_shape.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,8 @@ log::walk_res2(const rust_fn *dtor, const uint8_t *end_sp) {
484484

485485
extern "C" void
486486
shape_cmp_type(int8_t *result, const type_desc *tydesc,
487-
uint8_t *data_0, uint8_t *data_1, uint8_t cmp_type) {
487+
const type_desc **subtydescs, uint8_t *data_0,
488+
uint8_t *data_1, uint8_t cmp_type) {
488489
rust_task *task = rust_get_current_task();
489490
shape::arena arena;
490491

trunk/src/rt/rust_shape.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,10 @@ ctxt<T>::walk_tag0() {
407407
// Determine the size and alignment.
408408
tinfo.tag_sa = get_size_align(tinfo.info_ptr);
409409

410+
// Read in a dummy value; this used to be the number of parameters
411+
uint16_t number_of_params = get_u16_bump(sp);
412+
assert(number_of_params == 0 && "tag has type parameters on it");
413+
410414
// Call to the implementation.
411415
static_cast<T *>(this)->walk_tag1(tinfo);
412416
}
@@ -485,6 +489,10 @@ ctxt<T>::walk_res0() {
485489
reinterpret_cast<const rust_fn **>(tables->resources);
486490
const rust_fn *dtor = resources[dtor_offset];
487491

492+
// Read in a dummy value; this used to be the number of parameters
493+
uint16_t number_of_params = get_u16_bump(sp);
494+
assert(number_of_params == 0 && "resource has type parameters on it");
495+
488496
uint16_t sp_size = get_u16_bump(sp);
489497
const uint8_t *end_sp = sp + sp_size;
490498

trunk/src/rt/rust_signal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
class rust_signal {
66
public:
77
virtual void signal() = 0;
8+
virtual ~rust_signal() {}
89
};
910

1011
#endif /* RUST_SIGNAL_H */

trunk/src/rt/rust_type.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,24 @@ static inline void *box_body(rust_opaque_box *box) {
4545
return (void*)(box + 1);
4646
}
4747

48+
// N.B. If you want to add a field to tydesc, please use one of the
49+
// unused fields!
4850
struct type_desc {
51+
uintptr_t UNUSED_1;
4952
size_t size;
5053
size_t align;
5154
glue_fn *take_glue;
5255
glue_fn *drop_glue;
5356
glue_fn *free_glue;
5457
glue_fn *visit_glue;
58+
uintptr_t UNUSED_2;
59+
uintptr_t UNUSED_3;
60+
uintptr_t UNUSED_4;
61+
uintptr_t UNUSED_5;
5562
const uint8_t *shape;
5663
const rust_shape_tables *shape_tables;
64+
uintptr_t UNUSED_6;
65+
uintptr_t UNUSED_7;
5766
};
5867

5968
extern "C" type_desc *rust_clone_type_desc(type_desc*);

0 commit comments

Comments
 (0)