<feed xmlns='http://www.w3.org/2005/Atom'>
<title>odenwald/prototype, branch master</title>
<subtitle>Mirror of https://github.com/pks/odenwald.git
</subtitle>
<id>https://git.simianer.de/mirrored/odenwald/atom?h=master</id>
<link rel='self' href='https://git.simianer.de/mirrored/odenwald/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/'/>
<updated>2026-02-26T18:29:18Z</updated>
<entry>
<title>Fix two bugs in prototype parser</title>
<updated>2026-02-26T18:29:18Z</updated>
<author>
<name>Patrick Simianer</name>
<email>patrick@lilt.com</email>
</author>
<published>2026-02-26T18:29:18Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=44f225d0642d2ecf13f533f68b9ae12d849809ea'/>
<id>urn:sha1:44f225d0642d2ecf13f533f68b9ae12d849809ea</id>
<content type='text'>
1. Inner visit at span (0,1) yielded no sub-spans because
   visit(1, 0, 1, 1) iterates span from 1 to r-x=0, which is
   empty. This prevented unary rules like [S] ||| [X,1] from
   completing at the leftmost span, so S(0,1) was never created.
   Drop the x=1 parameter (default x=0); scan already handles
   bounds checking.

2. Self-filling step searched remaining_items for unary NT rules,
   but those rules could be absent if consumed (advanced) during
   the parse loop. Look up grammar.start_nt directly instead,
   which covers all cases.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Replace silent rescue with explicit type check in Item constructor</title>
<updated>2026-02-24T16:18:29Z</updated>
<author>
<name>Patrick Simianer</name>
<email>patrick@lilt.com</email>
</author>
<published>2026-02-24T16:18:29Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=4e62908a1757f83ff703399252ad50758c4eb237'/>
<id>urn:sha1:4e62908a1757f83ff703399252ad50758c4eb237</id>
<content type='text'>
When creating an Item from a Rule (not an Item), tail_spans doesn't exist.
Check with is_a?(Item) instead of catching the exception silently.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Emit binary glue rule only once</title>
<updated>2026-02-24T16:16:06Z</updated>
<author>
<name>Patrick Simianer</name>
<email>patrick@lilt.com</email>
</author>
<published>2026-02-24T16:16:06Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=22dc0fbdf002c7824941abc17a715a3e70ff37c1'/>
<id>urn:sha1:22dc0fbdf002c7824941abc17a715a3e70ff37c1</id>
<content type='text'>
The [S] -&gt; [S] [X] concatenation rule was duplicated for every non-S LHS
symbol. Move it out of the loop so it's added once.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Deduplicate all_paths by reachable edge set</title>
<updated>2026-02-24T16:14:37Z</updated>
<author>
<name>Patrick Simianer</name>
<email>patrick@lilt.com</email>
</author>
<published>2026-02-24T16:14:37Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=e76951f21263eb7010a2898b9744364e989e90b8'/>
<id>urn:sha1:e76951f21263eb7010a2898b9744364e989e90b8</id>
<content type='text'>
The Cartesian product over all nodes produces duplicate derivations when
edges differ only in nodes unreachable from the top. Walk reachable edges
from the top edge of each path and drop paths with identical reachable sets.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix reordering bug in derive and add test example</title>
<updated>2026-02-24T16:07:57Z</updated>
<author>
<name>Patrick Simianer</name>
<email>patrick@lilt.com</email>
</author>
<published>2026-02-24T16:07:57Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=77666a09c0f82b231605da463a946a5a5fcd09b6'/>
<id>urn:sha1:77666a09c0f82b231605da463a946a5a5fcd09b6</id>
<content type='text'>
derive used a sequential counter to index into the source-side NT map,
which only worked for monotone rules. Now looks up tails by the target
NT's own index via map.index(i.index).

Adds toy-reorder example (German verb-final -&gt; English SVO) to exercise
the fix. Also updates trollop -&gt; optimist and guards xmlsimple require.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>rm</title>
<updated>2016-06-17T12:10:27Z</updated>
<author>
<name>Patrick Simianer</name>
<email>p@simianer.de</email>
</author>
<published>2016-06-17T12:10:27Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=a4ed068456395063add9edaa341e19976ffeccac'/>
<id>urn:sha1:a4ed068456395063add9edaa341e19976ffeccac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix</title>
<updated>2016-06-17T12:10:00Z</updated>
<author>
<name>Patrick Simianer</name>
<email>p@simianer.de</email>
</author>
<published>2016-06-17T12:10:00Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=8a2e23edc4815ba6b113fda059dc2ddaeaf001f5'/>
<id>urn:sha1:8a2e23edc4815ba6b113fda059dc2ddaeaf001f5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>new obj.</title>
<updated>2015-11-16T16:21:40Z</updated>
<author>
<name>Patrick Simianer</name>
<email>p@simianer.de</email>
</author>
<published>2015-11-16T16:21:40Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=adf10dca9353bd9fa443eec67a30e2bbe58cbff4'/>
<id>urn:sha1:adf10dca9353bd9fa443eec67a30e2bbe58cbff4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mv</title>
<updated>2015-11-16T16:20:58Z</updated>
<author>
<name>Patrick Simianer</name>
<email>p@simianer.de</email>
</author>
<published>2015-11-16T16:20:58Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=aa35f4c9d8c507bddc6deb8ca7def6b22cb40470'/>
<id>urn:sha1:aa35f4c9d8c507bddc6deb8ca7def6b22cb40470</id>
<content type='text'>
</content>
</entry>
<entry>
<title>weaver_proto -&gt; ow_proto</title>
<updated>2015-11-16T16:17:33Z</updated>
<author>
<name>Patrick Simianer</name>
<email>p@simianer.de</email>
</author>
<published>2015-11-16T16:17:33Z</published>
<link rel='alternate' type='text/html' href='https://git.simianer.de/mirrored/odenwald/commit/?id=24d0aceedc6558ce025f9115160d1b587716100c'/>
<id>urn:sha1:24d0aceedc6558ce025f9115160d1b587716100c</id>
<content type='text'>
</content>
</entry>
</feed>
