HermitCrab: a restricted clitic adds 17.5% work steps, mostly host search that repeats per MSA (measured on the port)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- csharp
- Lĩnh vực
- performance
Hướng nghiên cứu
Start by reading the FieldWorks/HC loader and related issues #599 and #600 to understand the existing rule indexing and root-search cache. Then investigate whether rules with identical shapes across MSAs can share a clitic rule. Done means measuring work steps on a grammar with multi-MSA clitics and reporting the change.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Claude-drafted.
One restricted enclitic adds 1,075,012 work steps (+17.5%) to a real grammar's word lists, and most of it is host search, not the clitic's own rules. The enclitic is a one-segment allomorph of another clitic, restricted to / [V] _. Measured on the PanGloss port (same work-step counting as hc.dll), not on hc.dll. The data is private; aggregates only.
What we know (work steps over 7,969 word occurrences):
- 82.6% of the added steps fall on words ending vowel +
g; 13.3% on words not ending ing. - By object: 51.2% host search (root index and existing rules), 13.4% the clitic's own rules, 35.4% unattributed (18.7% under v8 counters).
- As a standalone one-MSA particle it adds about half as much (held +8.3% against +17.3%). Inferred: the port's loader compiles one clitic rule per MSA (two here), and each repeats the host search.
- An environment pre-check saves at most about 4% (42,779 steps).
- In the port, the edge-segment rule index plus the per-word root-search cache gave -12.1% on base lists and -13.1% with the clitic.
Not known: whether the C# loader also makes one clitic rule per MSA.
Proposed change (C#): check whether the FieldWorks/HC loader can share one clitic rule across MSAs whose shapes are identical, so the host search runs once. Measure the change in work steps on a grammar with multi-MSA clitics.
Related: #599, #600, #564, #601 (all open). PanGloss: sillsdev/PanGloss#90 (source, open); PRs sillsdev/PanGloss#95 and #96 (merged) are the index and cache. PRs sillsdev/PanGloss#101 and #102 (open) fix the loader making one copy per MSA for ad hoc allomorph prohibitions: the same mechanism, but a correctness fix, not a speedup.
Next: count host-search steps for a multi-MSA clitic on hc.dll before changing the loader.
Evidence -- method and tables
Port at PanGloss 0.12.1, pangloss batch --stats --work-columns, one thread. 7,969 occurrences: 7,206 held, 563 dev, 200 non-words. Arms: the grammar without the enclitic, and with it.
| Set of steps | Added | Share |
|---|---|---|
| Total, base 6,132,123 to 7,207,135 | 1,075,012 | +17.5% |
Words ending vowel + g |
888,370 | 82.64% |
Words ending ng or other consonant + g |
43,417 | 4.04% |
Words not ending in g |
143,225 | 13.32% |
| By object | Steps | Share |
|---|---|---|
| Root and existing-rule host search | 550,182 | 51.18% |
| The two clitic rules | 143,806 | 13.38% |
| Unattributed (v7 counters) | 381,024 | 35.44% |
| Unattributed (v8 counters) | 201,456 | 18.74% |
The pre-check estimate skips the clitic branch for the 638 g-final words where [V] _ fails: 43,417 gross, 42,779 net at about 1 step per check, against 1,075,012 added.
Standalone encoding: held +8.34%, dev +11.49%, non-words +16.44%, against +17.31% held for the allomorph encoding. These are separate encodings, so the halving is not isolated to MSA count.
Index and cache on the port (PanGloss 0.12.2 changelog): base 6,132,123 to 5,392,090 (-12.07%); with the clitic 7,207,135 to 6,265,316 (-13.07%). The index alone gives 5,395,400 on base and 6,340,178 with the clitic (-12.0% both).
Sources
- https://github.com/sillsdev/PanGloss/issues/90
- PanGloss CHANGELOG
origin/main, section 0.12.2 (lines 6-19). - C# loader reads
isCliticRuleatXmlLanguageLoader.cs#L865and#L961. How it expands MSAs into rules was not traced.
- Ngôn ngữ chính
- C#
- Star
- 29
- Fork
- 16
- Merge trung bình
- 5 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 11
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của sillsdev/machine
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
porting
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 25/100
sillsdev/machine#617 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Hermit Crab
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 18/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của sillsdev/machine
Issue tương tự
-
bug front-end social
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
gameguild-gg/gameguild#1237 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
microsoft/microsoft-ui-xaml#12515 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[v5-preview5] `func new` displays incorrect command in error message when project is not initializedĐang mởNeeds: Triage (Functions) v5 v5-preview5
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
Azure/azure-functions-core-tools#5838 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
customer-reported needs-team-triage question server-Azure.Mcp tools-Pricing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
microsoft/mcp#4087 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày