Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

HXCPP_GC_MOVING in combination with HXCPP_ALIGN_ALLOC

Aperta
#1,167 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
backend

Direzione di ricerca

Inizia con src/hx/gc/Immix.cpp intorno alle righe 3817-3819 e riproduci il fallimento usando l’esempio Main.hx e i flag di build.hxml HXCPP_GC_MOVING e HXCPP_ALIGN_ALLOC. Confronta il comportamento con uno dei due flag disabilitato e con quelle righe rimosse; il lavoro è concluso quando l’esempio non va più in segmentation fault con entrambi i flag abilitati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

When I run the following program built with HXCPP_GC_MOVING and HXCPP_ALIGN_ALLOC flags enabled, I get a segmentation fault. Commenting out one of them fixes the problem. Moreover , removing these lines solves the problem, too.

System info
  • haxe 4.3.6
  • hxcpp 4.3.68
  • clang 19.1.4
  • macOS Sequoia 15.1.1
Main.hx
class Point {
	public function new(x: Int, y: Int) {
		this.x = x;
		this.y = y;
	}
	
	public var x: Int;
	public var y: Int;
}

final ITERATIONS = 10000000;

class Main {
	private static final array: Array<Point> = [];
	
	public static function addPoint(): Void {
		array.push(new Point(array.length, array.length));
	}
	
	public static function main(): Void {
		for (i in 0...ITERATIONS) {
			addPoint();
		}

		final halfSize = Std.int(array.length / 2);
		
		array.resize(halfSize);
		for (i in 0...halfSize) {
			addPoint();
		}

		var idx = Std.int(Math.random() * array.length);
		trace('$idx == ${array[idx].x}');
	}
}
build.hxml
-D HXCPP_GC_MOVING
-D HXCPP_ALIGN_ALLOC
-D HXCPP_API_LEVEL=430

-main Main
--cpp build
Lingua principale
C++
Stelle
329
Fork
231
Merge medio
1g 6h
PR unite (30g)
9

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di HaxeFoundation/hxcpp

Tutte le issue di HaxeFoundation/hxcpp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.