Roy Frostig
66b5b9567c
Test the hashmap more, exercising hash collision, element removal, and a forced rehashing that actually causes elements to change buckets. In the process, find a bug in hashmap's remove() and fix it.
2010-08-26 19:44:38 -07:00
Roy Frostig
aa30304328
Simplify null-writing from commit 8559a85cca
so as to avoid a branch.
2010-08-26 18:55:53 -07:00
Patrick Walton
07095a3ef9
Encode tag names in the DWARF
2010-08-26 17:48:52 -07:00
Graydon Hoare
7cfa7bdd23
Make vreg constrs per-quad, regfence on nontrivial constrs, back out workaround to _uint, add regression test. Closes #152 .
2010-08-26 16:27:47 -07:00
Patrick Walton
a7eeeb596a
Add automatic parameter instantiation. Closes #45 .
2010-08-26 14:47:18 -07:00
Roy Frostig
8559a85cca
When copying function values, null out the destination's binding iff the source's binding is null.
2010-08-26 14:44:11 -07:00
Graydon Hoare
ee04c0236c
Add check to catch bug underlying issue #152 . Fix will take longer.
2010-08-26 14:32:47 -07:00
Roy Frostig
c3c3e03649
un-XFAIL lib-map.rs now that rust stacks are large and it passes on linux.
2010-08-26 13:15:46 -07:00
Roy Frostig
5cf83dcc1a
Test the hashmap for growth and rehashing.
2010-08-26 13:03:28 -07:00
Roy Frostig
c3c5e6c773
Workaround issue #152 in _uint.next_power_of_two
2010-08-26 11:57:48 -07:00
Patrick Walton
de5c6f111c
Add a "param handler" to demand_fn for use in automatic type parameter instantiation
2010-08-26 11:22:00 -07:00
Patrick Walton
ff9ecc1128
Tiny style cleanup in a pattern match in type.ml
2010-08-26 11:20:55 -07:00
Patrick Walton
09417f81aa
Typecheck function patterns
2010-08-25 18:36:49 -07:00
Roy Frostig
c40fed5804
Actually switch to using the bigger hashmap once a it finishes growing and rehashing.
2010-08-25 17:42:36 -07:00
Roy Frostig
6b053f24c7
Insure bools remain 0x1 or 0x0 by having boolean-NOT not just be a simple bit-NOT.
2010-08-25 17:17:14 -07:00
Graydon Hoare
2c8ae5ca8d
Add element to closure to hold captured tydesc (not body tydesc).
2010-08-25 16:36:18 -07:00
Graydon Hoare
91d640f90f
Merge obj-drop and closure-drop code, handles freeing bound exteriors now.
2010-08-25 16:21:50 -07:00
Graydon Hoare
8e0f486ea6
First pass of updating the in-memory layout of closures, for issue 81.
2010-08-25 14:42:28 -07:00
Graydon Hoare
c2b6c27d65
Fix edge case in uint->string conversion.
2010-08-25 13:54:27 -07:00
Graydon Hoare
b2b72a08db
Janitorial work on obj box / body / field terminology, following froystig's brave lead.
2010-08-25 12:08:05 -07:00
Graydon Hoare
af6e1d2c2b
Fix ghastly typestate bug breaking nested functions.
2010-08-25 12:08:05 -07:00
Patrick Walton
a48c382549
Introduce "type patterns" to the typechecker in preparation for function type-param inference
2010-08-25 11:16:29 -07:00
Roy Frostig
2b9a48b9c9
Obj ctors are not obj fns so translate their frame entry as such.
2010-08-25 10:27:17 -07:00
Michael Bebenita
3ab8cc6018
Fixed the location of the failing XFailed test.
2010-08-24 21:27:47 -07:00
Michael Bebenita
64ff82ecf9
Implemented an lock free queue based on this paper http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf , the "lock free queue" we had before wasn't lock free at all.
2010-08-24 21:07:14 -07:00
Roy Frostig
d9fe885ba5
Comment on env var required for std.dbg to do any logging.
2010-08-24 19:55:45 -07:00
Roy Frostig
7ccdb88374
Add support in dbg.debug_obj for printing the obj body.
2010-08-24 19:49:39 -07:00
Roy Frostig
d9e3fb2c5d
Add std.dbg module for inspecting rust values in memory.
2010-08-24 18:37:42 -07:00
Graydon Hoare
2dc3a37f93
First successful hashmap lookups. Yay.
2010-08-24 17:38:04 -07:00
Graydon Hoare
e846643d23
Fix mod-bug in std.map, work around bug in closure typaram capture, enable insert-tests in lib-map.rs.
2010-08-24 17:23:09 -07:00
Graydon Hoare
9ea37bd47b
Fix residual nonsense of storing crate-rel displacements in a closure pair (made it impossible to pass between crates, of course).
2010-08-24 17:09:03 -07:00
Patrick Walton
1b117f936d
Remove obsolete TODO about checking for return statements
2010-08-24 16:11:43 -07:00
Graydon Hoare
de6535c1c2
Elide preempt check on thunk and ctor frames. Wins 8kb on rustc.
2010-08-24 11:57:51 -07:00
Graydon Hoare
8d787d1e08
Avoid emitting unnecessary frame glue. Wins a couple hundred kb of rustc.
2010-08-24 11:45:48 -07:00
Graydon Hoare
87c9a9e25d
Avoid iterating ty parts on drop when there are no heap pointers in ty. Wins several tens of kb on rustc.
2010-08-24 11:44:14 -07:00
Graydon Hoare
b5255b4534
Shrink size of glue calls. Wins a few tens of kb on rustc.
2010-08-24 11:42:24 -07:00
Graydon Hoare
07d355d1af
Add lexer.reader to rustc for tracking position, char conversion, holding keyword tables.
2010-08-24 09:59:41 -07:00
Graydon Hoare
47501f1659
Make _str.eq suitable for map.hashmap; add _str.hash that does simple djb-hash.
2010-08-24 09:59:02 -07:00
Graydon Hoare
10316fbfa5
Make error reporting slightly more regular.
2010-08-24 09:58:26 -07:00
Graydon Hoare
14262c7311
Rename lib tests, enable lib-int.rs using _str.eq for now.
2010-08-24 09:09:04 -07:00
Graydon Hoare
ca3ca041f3
Add very basic char / str literal handling to rustc lexer.
2010-08-24 08:56:42 -07:00
Graydon Hoare
df3ea680ea
Tidy lexer.
2010-08-24 08:50:56 -07:00
Graydon Hoare
2745a5ebb2
Handle line-comments and a few more symbols in rustc lexer.
2010-08-23 19:17:04 -07:00
Graydon Hoare
6e3a77c3a3
Merge remote branch 'tohava/master'
...
Conflicts:
src/boot/fe/ast.ml
2010-08-23 18:19:42 -07:00
Patrick Walton
ed92925083
Warn when the value of "spawn" is unused, as it's useless
2010-08-20 17:15:27 -07:00
Or Brostovski
0830b5bf24
Modified parser to handle alt type andadded a few tests
...
ast.ml - modified arm types for easier polymorphism
- fixed a bug in fmt_type_arm
dead.ml - modified arm types for easier polymorphism
common.ml - added 'either'
- added some useful auxiliary functions
item.ml - modified arm code to be more polymorphic and handle both alt-tag and alt-type, also fixed the problematic case in bad-alt.rs
Makefile - added XFAIL for new alt-type test
bad-alt.rs - added test for invalid alt syntax
alt-type-simple.rs - added simple test for alt type
2010-08-21 02:41:43 +03:00
Graydon Hoare
c0e173e19a
Stringify op tokens.
2010-08-20 15:57:59 -07:00
Graydon Hoare
a2bd79a6ac
Redo _uint.to_str to work with chars and only one tmp str, built left-to-right.
2010-08-20 15:37:20 -07:00
Graydon Hoare
db377bae3a
Accumulate number tokens properly, handle newline, EQ and EQEQ in rustc lexer.
2010-08-20 15:36:48 -07:00
Patrick Walton
08f191d6d9
Lex commas too in the self-hosted compiler
2010-08-20 14:58:15 -07:00