Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Replace ares.cpp serialization logic with a custom graph traversal pass

Đang mở
#25 0 bình luận 0 reaction 1 người được giao Xem trên GitHub

@HaroldCindy đang làm issue này rồi.

Từ ngày 19/11/2025.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

enhancement

At a high level, Ares is relatively simple. It has logic to walk the graph of references from the starting object, depth-first. It keeps track of nodes as it goes, filling in a reference to a previous object if it ever sees it referenced from another node.

Pretty typical graph traversal stuff, but the graph traversal logic is all mushed in with the object (de)serialization logic because Eris (and therefore Ares) manages traversal state using Lua APIs. That results in a lot of garbage related to traversal state being handed off to the GC, which I expect could result in extreme GC pressure on startup when lots of scripts are spinning back up.

I think the format itself makes sense, but the graph traversal logic should just be in C++ so we don't create tons of Lua objects that we won't need after Ares has run. Not to mention that stack imbalances with the traversal logic are verify difficult to debug currently.

Ngôn ngữ chính
C++
Star
17
Fork
10
Merge trung bình
3 ngày 14 giờ
Pull request đã merge (30 ngày)
3

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của secondlife/slua

Tất cả issue của secondlife/slua

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.