Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

'into_shape()' incompatible memory layout error

Aberta
#1,172 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
rust
Domínio
data

Direção de pesquisa

Start with the reproducer in src/env.rs around the reported line and run env::test::ndarray_into_shape_test. Compare the memory layouts of the contiguous array and the sliced view before into_shape((3, 1)). Done means explaining why the same Rust type behaves differently and resolving or clearly documenting the incompatible-layout behavior.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

       let d = aview1(&[1., 2., 3., 4.]);

        let d = d.into_shape((2, 2)).unwrap();
        println!("d shape {:?}", &d.shape());

        let a = array![
            [110., 120., 130., 140.,],
            [210., 220., 230., 240.,],
            [310., 320., 330., 340.,],
        ];

        let a = a.slice(s![.., 1]);

        let a = a.into_shape((3, 1)).unwrap();
        println!("a {:?}", &a);
        println!("a shape {:?}", &a.shape());

image

running 1 test
d shape [2, 2]
thread 'env::test::ndarray_into_shape_test' panicked at 'called `Result::unwrap()` on an `Err` value: ShapeError/IncompatibleLayout: incompatible memory layout', src\env.rs:483:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test env::test::ndarray_into_shape_test ... FAILED

Both d and a is same type but panic occurs.
Is there any reason why they behave differently?
(slice_mut, slice_move, clone() also shows same error)

Linguagem predominante
Rust
Estrelas
4.3k
Forks
391
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rust-ndarray/ndarray

Todas as issues de rust-ndarray/ndarray

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.