by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Lars Bergstrom
    @larsbergstrom
    what is this I don't even
    Stefano Pacifici
    @spacifici
    Hi, I need some help to build Servo for Android, the build process fails with the following error:
    configure: WARNING: If you wanted to set the --build type, don't use --host.
        If a cross compiler is detected then cross compile mode will be used.
    configure: error: in `/Users/stefano/Develop/servo/target/arm-linux-androideabi/debug/build/backtrace-sys-c41044212322c9f2/out':
    configure: error: C preprocessor "/lib/cpp" fails sanity check
    See `config.log' for more details.
    thread 'main' panicked at 'failed with: exit code: 1', /Users/stefano/Develop/servo/./.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-sys-0.1.10/build.rs:134
    Can anybody help me?
    Michael Howell
    @notriddle
    Do you have a working C compiler?
    Stefano Pacifici
    @spacifici
    Well I think I found the solution here: servo/servo#15758
    Michael Howell
    @notriddle
    I see. Sorry about that.
    Stefano Pacifici
    @spacifici
    Thanks anyway :)
    Nicolas S.
    @doraemon96
    Hey so, is "./mach build -d" supposed to take ages to compile for the first time?
    Niko Matsakis
    @nikomatsakis
    @Mrowqa right so regarding your examples
    in the case of generic_container, what I expected was that the call to:
    SomeContainer(Foo(3));
    is where the error would be reported
    specifically, that call is short for
    SomeContainer::<Foo>(Foo(3))
    and we've marked Foo as a #[must_root] type
    this "fully explicit" form will be visible in the MIR, of course
    er -- nm, yes, that's right. I was confused a bit by the new method, but I guess that's dead code
    anyway, the error would come because the T parameter in SomeContainer was not declared as #[must_root]
    so the MIR pass would basically look at each place that type parameters are being substituted; if those types are a #[must_root] type, then they would check the type parameter, and see that it has a #[must_root] annotation
    on the other side, we would consider a generic type like T to be #[must_root] if it is declared that way
    so e.g. struct MyContainer<#[must_root] T>(T) would be in error
    does that make sense so far?
    Artur Jamro
    @Mrowqa
    gimme a sec
    nikomatsakis @nikomatsakis runs to get coffee in the meantime :)
    Artur Jamro
    @Mrowqa
    if we process some method in HIR pass, we request MIR for it and then check each call to method (or variable type?) and see if some field of the struct is #[must_root] and if that's a case, we want to consult HIR to get the definition of the struct and check if given field is #[must_root], right?
    Niko Matsakis
    @nikomatsakis
    @Mrowqa sounds close but not quite right
    but first, let's step back one second
    Artur Jamro
    @Mrowqa
    ok
    Niko Matsakis
    @nikomatsakis
    if we process some method in HIR pass
    can you point me at the existing code?
    not sure what you mean by "HIR pass"
    Niko Matsakis
    @nikomatsakis
    thank you
    ok, so this is some lint runing in the late context...