Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement 'use' for rustc #244

Closed
graydon opened this issue Feb 28, 2011 · 3 comments
Closed

implement 'use' for rustc #244

graydon opened this issue Feb 28, 2011 · 3 comments
Milestone

Comments

@graydon
Copy link
Contributor

graydon commented Feb 28, 2011

Rustc can't 'use' crates yet. In fact it can't even write out crate metadata. It has to learn how.

Tasks here involve:

  • Make up a serial encoding of crate metadata that is efficient to incrementally parse and
    seek around inside of, but also stable and simple enough that we're not likely to break it
    all the time as we hack on rustc.
  • Compose a metadata blob of this sort and write it out as a special .note.rust section via
    LLVM. Not sure exactly what support it has for making up our own section names. Try
    your best.
  • Mangle the symbols inside a given crate using the mangling scheme outlined in this
    mailing list post: https://mail.mozilla.org/pipermail/rust-dev/2010-December/000164.html
  • When you 'use' a crate, scan for the .note.rust section (might need to port the objfile
    sniffer from rustboot, see for example boot/be/elf.ml 'sniff' and friends) and read its
    contents into the compilation-crate namespace. Lazily load additional components of
    the 'use'd crate namespace as references and imports demand.
@pcwalton
Copy link
Contributor

"Not sure exactly what support it has for making up our own section names. Try your best."

LLVM supports this, and the stub code now in the tree does it.

@marijnh
Copy link
Contributor

marijnh commented Mar 15, 2011

@pcwalton
Copy link
Contributor

Marking as fixed; this basically works now.

@pcwalton pcwalton reopened this Apr 11, 2011
keeperofdakeys pushed a commit to keeperofdakeys/rust that referenced this issue Dec 12, 2017
Add lconv type, and locale support for UNIX

We have lconv struct, setlocale(), and localeconv(). Constants live
under notbsd for now.
kazcw pushed a commit to kazcw/rust that referenced this issue Oct 23, 2018
* sse2: __m64 related intrinsics

_mm_add_si64
_mm_mul_su32
_mm_sub_si64
_mm_cvtpi32_pd
_mm_set_epi64
_mm_set1_epi64
_mm_setr_epi64

* sse2: _mm_load_sd, _mm_loadh_pd, _mm_loadl_pd

* sse2: _mm_store_sd, _mm_storeh_pd, _mm_storel_pd

* sse2: _mm_shuffle_pd, _mm_move_sd

* sse2: _mm_cast*

_mm_castpd_ps
_mm_castpd_si128
_mm_castps_pd
_mm_castps_si128
_mm_castsi128_pd
_mm_castsi128_ps

* sse2: add some tests

* Try to fix AppVeyor build

* sse2: add more tests

* sse2: fix assert_instr for _mm_shuffle_pd

* Try to fix Travis build

* sse2: try to fix AppVeyor build

* sse2: try to fix AppVeyor build
matthiaskrgr pushed a commit to matthiaskrgr/rust that referenced this issue Mar 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants