about summary refs log tree commit diff
path: root/src/comp/metadata
AgeCommit message (Collapse)AuthorLines
2011-12-16allow #[link_args] with #[nolink]. For now, fail if two modules link same ↵Graham Fawcett-15/+20
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-16implement #[nolink]; deprecate #[link_name = ""]; note in stdlib to remove ↵Graham Fawcett-1/+8
empty link_name. Can't remove them from stdlib until the snapshotted compiler supports #[nolink].
2011-12-16Finish resolving and calling of crate-external implsMarijn Haverbeke-27/+109
Issue #1227
2011-12-16extend with ty_send_type and ty_opaque_closureNiko Matsakis-0/+4
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-3/+2
2011-12-16Write impl data to crate library filesMarijn Haverbeke-1/+41
(No one is actually reading it yet.) Issue #1227
2011-12-16rustc: Implement non-renamed re-export across cratesHaitao Li-12/+45
First patch for issue #1115. Not yet ready for re-exported modules which are renamed when importing them.
2011-12-15rustc: Box tag variants to avoid copiesBrian Anderson-1/+1
2011-12-14push changes through to get things compiling, if not running.Niko Matsakis-10/+14
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-12/+17
2011-12-12rustc: Hash includes direct dependent cratesHaitao Li-0/+25
2011-12-12rustc: Encode crate hash into metadataHaitao Li-3/+21
2011-12-12rustc: build versioned library with hash in its nameHaitao Li-1/+1
Also updated build to install versioned libraries and added a few missing actions for `make clean`.
2011-12-12Using filename when finding libraries for linkingHaitao Li-8/+22
Revert #999 commit 16dad84f7b2f173db012dda2e77b08ccb423391f
2011-12-07Change literal representation to not truncateMarijn Haverbeke-20/+28
Also shuffles around the organization of numeric literals and types, separating by int/uint/float instead of machine-vs-non-machine types. This simplifies some code. Closes #974 Closes #1252
2011-11-30Box ast::path valuesMarijn Haverbeke-7/+7
It seems inefficient to copy them around. Let's measure whether that's actually > the case
2011-11-23Rollback return-by-referenceMarijn Haverbeke-10/+0
It's proving too inflexible, so I'm ripping out the extra complexity in the hope that regions will, at some point, provide something similar. Closes #918
2011-11-21rustc: Remove abi from ast::native_modHaitao Li-17/+9
2011-11-18Update stdlib, compiler, and tests to new kind systemMarijn Haverbeke-2/+2
This involved adding 'copy' to more generics than I hoped, but an experiment with making it implicit showed that that way lies madness -- unless enforced, you will not remember to mark functions that don't copy as not requiring copyable kind. Issue #1177
2011-11-18Add a pass-by-copy parameter passing conventionMarijn Haverbeke-2/+4
This is intended to solve the problem of how to pass arguments to constructor functions -- you want to move in rvalues, but not have to explicitly copy stuff that is not an rvalue. The by-copy passing convention will ensure the callee gets its own copy of the value. For rvalues, it'll just pass off the value. For lvalues, it'll make a copy. Issue #1177
2011-11-18Preparation for kind system overhaulMarijn Haverbeke-12/+12
This goes before a snapshot, so that subsequenct patches can make the transition without breaking the build. Disables kind checking pass, makes parser accept both new and old-style kind annotation. Issue #1177
2011-11-17remove compile-command from local variable blocksNiko Matsakis-7/+0
2011-11-16Use attributes for native module ABI and link nameHaitao Li-1/+6
This patch changes how to specify ABI and link name of a native module. Before: native "cdecl" mod llvm = "rustllvm" {...} After: #[abi = "cdecl"] #[link_name = "rustllvm"] native mod llvm {...} The old optional syntax for ABI and link name is no longer supported. Fixes issue #547
2011-11-16rustc: Use link_name attribute for native functionHaitao Li-1/+1
Fixes issue #906
2011-11-10Cleanup unused importsHaitao Li-10/+4
2011-11-09rustc: Rename native_abi_c_stack_cdecl to native_abi_cdeclBrian Anderson-3/+3
2011-11-09rustc: Rename native_abi_c_stack_stdcall to native_abi_stdcallBrian Anderson-3/+3
2011-11-09Remove native "x86stdcall" ABIBrian Anderson-2/+0
2011-11-08Remove native "cdecl" ABIBrian Anderson-4/+1
2011-11-07Remove native "llvm" ABIBrian Anderson-2/+0
2011-11-07Remove native "rust" ABIBrian Anderson-3/+1
2011-11-07llvm::mk_object_file should really return an option, since the underlying ↵Joshua Wise-1/+4
LLVM function can fail. Fixes a crash on OS X when rust has bad dylibs within eyeshot.
2011-11-03Disallow writing to function arguments againMarijn Haverbeke-0/+1
Remove implicit copying hack. Closes #1118
2011-11-02get things checking on ia32Niko Matsakis-1/+1
2011-11-02start to isolate target strings so that they can be configured forNiko Matsakis-11/+15
x64 or other targets
2011-10-31rustc: Find crates by matching the name metadataHaitao Li-22/+9
2011-10-29Add more logging to crate resolutionBrian Anderson-1/+12
2011-10-28Make shared kind the default only for generic functionsMarijn Haverbeke-6/+5
You almost never want a function with pinned type params. For types, objects, resources, and tags, pinned types are actually often more sane. For most of these, shared rarely makes sense. Only tricky case is objs -- you'll have to think about the kinds you want there. Issue #1076
2011-10-25Update our code to new type parameter kind syntaxMarijn Haverbeke-2/+2
Closes #1067
2011-10-21Drop support for iter, put, and for-eachMarijn Haverbeke-7/+0
Closes #1056
2011-10-21Remove last uses of iterators from stdlibMarijn Haverbeke-26/+21
Issue #1056
2011-10-21Move hash table iteration over to block-taking functionsMarijn Haverbeke-15/+10
Issue #1056
2011-10-20Merge ast::proto_shared and ast::proto_closureBrian Anderson-2/+3
Now they are both just proto_shared and proto_shared takes an argument indicating that it is sugared as 'lambda'
2011-10-20Rename ast::proto_fn to ast::proto_sharedBrian Anderson-2/+2
2011-10-20Make fn denote a bare function. Convert fn to fn@ as neededBrian Anderson-4/+4
2011-10-20Parse obj methods as proto_bareBrian Anderson-1/+1
I don't know if this is the right thing to do, but it works and it lets 'fn' always mean proto_bare
2011-10-12reimplement some of the unsafe stuff which got lostNiko Matsakis-19/+21
- blocks inherit unsafety - remove the --check-unsafe flag - add unsafe annotations where needed to get things to compile
2011-10-12add unsafe tags into various points in the translation chainsNiko Matsakis-16/+18
and so forth
2011-10-12make native functions markable as unsafe and incorporate thatNiko Matsakis-3/+11
into the type check
2011-10-12add 'u' to one other place it was missingNiko Matsakis-0/+1