<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rep.git/chain/src/default.rs, branch attempt1</title>
<subtitle>Parser generator for Emacs written in Rust
</subtitle>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/'/>
<entry>
<title>partial commit, before trying the new guide by claude</title>
<updated>2026-10-16T10:16:36+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2026-10-16T10:16:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=918235659f7b0d80bfa305875ab7cc988cc51761'/>
<id>918235659f7b0d80bfa305875ab7cc988cc51761</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>new start</title>
<updated>2026-10-16T06:02:10+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2026-10-16T06:01:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=fba9a90cfc6aca2a26cce72f55fb261789139781'/>
<id>fba9a90cfc6aca2a26cce72f55fb261789139781</id>
<content type='text'>
Now I tested and discussed with claude, and had a working version of
this project.  The rest is to port the claude version to my own
writings.  So this serves as the starting point before that attempt.

In the new attempt the design is better, and a number of bugs were
found and supposedly fixed, so let us see how this goes at the end.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now I tested and discussed with claude, and had a working version of
this project.  The rest is to port the claude version to my own
writings.  So this serves as the starting point before that attempt.

In the new attempt the design is better, and a number of bugs were
found and supposedly fixed, so let us see how this goes at the end.
</pre>
</div>
</content>
</entry>
<entry>
<title>a commit before the forst query</title>
<updated>2024-01-08T08:13:19+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2024-01-08T08:13:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=3ae0cf9898485a2ec35df7d23cd274e7dea5796d'/>
<id>3ae0cf9898485a2ec35df7d23cd274e7dea5796d</id>
<content type='text'>
I think the main functionalities are already there, but the lack of
querying capabilities makes this not very useful at the moment.

This commit is right before an attempt to add this missing piece.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I think the main functionalities are already there, but the lack of
querying capabilities makes this not very useful at the moment.

This commit is right before an attempt to add this missing piece.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move the trait `Forest` to the crate "forest".</title>
<updated>2023-08-10T03:14:04+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2023-08-10T03:14:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=b8a2d05a3c0d835556d5ddbd44e4a1e201302af5'/>
<id>b8a2d05a3c0d835556d5ddbd44e4a1e201302af5</id>
<content type='text'>
The purpose of this change is to share this trait with other crates,
such as the forth-coming "semiring" crate that will be responsible for
handling some simple semiring operations as well as the querying, in
my plans.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The purpose of this change is to share this trait with other crates,
such as the forth-coming "semiring" crate that will be responsible for
handling some simple semiring operations as well as the querying, in
my plans.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bug of using incorrect forest nodes to plant.</title>
<updated>2023-08-09T03:42:03+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2023-08-09T03:42:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=f14c8a2aeab18a9bfa380df28f94736580e08f48'/>
<id>f14c8a2aeab18a9bfa380df28f94736580e08f48</id>
<content type='text'>
Previously some incorrect forest nodes will be used for planting new
nodes.  I cannot fix the root cause of their presence in the
chain-rule machine.  But I can ignore them when they are encountered.

Of course I would like to really prevent them from existing, but still
cannot figure out how.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously some incorrect forest nodes will be used for planting new
nodes.  I cannot fix the root cause of their presence in the
chain-rule machine.  But I can ignore them when they are encountered.

Of course I would like to really prevent them from existing, but still
cannot figure out how.
</pre>
</div>
</content>
</entry>
<entry>
<title>chain/default: Add funtion `print_current`</title>
<updated>2023-08-04T02:07:14+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2023-08-04T02:07:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=e64172f7909c71dc609099d3f5c4666d063653eb'/>
<id>e64172f7909c71dc609099d3f5c4666d063653eb</id>
<content type='text'>
* chain/src/default.rs: This is useful for debugging the chain-rule
  machine.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* chain/src/default.rs: This is useful for debugging the chain-rule
  machine.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some bugs</title>
<updated>2023-08-01T03:47:44+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2023-08-01T03:47:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=81854107bcf0b4480cfb11e8af7fec6894240c0c'/>
<id>81854107bcf0b4480cfb11e8af7fec6894240c0c</id>
<content type='text'>
Some bugs are fixed:

1. If a non-terminal expansion can be reduced immediately, previously
an extra node would be created that had no parents.  Now this strange
behaviour is corrected.

2. When performing reductions, a leaf non-terminal node would
previously be regarded as completed.  Now we will first try to
complete that node, and then determine if the completion is
successful, and finally determine the completedness according to the
result.

Of course some more tests are still pending, before I can confirm that
no more bugs lurk around.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some bugs are fixed:

1. If a non-terminal expansion can be reduced immediately, previously
an extra node would be created that had no parents.  Now this strange
behaviour is corrected.

2. When performing reductions, a leaf non-terminal node would
previously be regarded as completed.  Now we will first try to
complete that node, and then determine if the completion is
successful, and finally determine the completedness according to the
result.

Of course some more tests are still pending, before I can confirm that
no more bugs lurk around.
</pre>
</div>
</content>
</entry>
<entry>
<title>chain/default.rs: Minor adjustment and add a plan</title>
<updated>2023-07-30T03:38:09+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2023-07-30T03:38:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=ca56b918b48cc08d8a43660a5e6f82c946fad8a0'/>
<id>ca56b918b48cc08d8a43660a5e6f82c946fad8a0</id>
<content type='text'>
Adjust the codes slightly.

Also add a plan to implement the context-free memoization.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adjust the codes slightly.

Also add a plan to implement the context-free memoization.
</pre>
</div>
</content>
</entry>
<entry>
<title>chain/default: Remove the annoying node whenever plausible.</title>
<updated>2023-07-21T03:43:53+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2023-07-21T03:43:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=081e3d2ed8d3f9b4e4d6fd864283a4230e09b25a'/>
<id>081e3d2ed8d3f9b4e4d6fd864283a4230e09b25a</id>
<content type='text'>
The chain-rule machine needs a place-holder node at the beginning.
But afterwards that node is pure annoyance and disturbs the
functioning of the machine.  Consequently I removed that node whenever
the right time comes.

This seems to fix some other bugs.  It is reasonable: the presence of
that bogus node is just noise to the machine and error-prone.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The chain-rule machine needs a place-holder node at the beginning.
But afterwards that node is pure annoyance and disturbs the
functioning of the machine.  Consequently I removed that node whenever
the right time comes.

This seems to fix some other bugs.  It is reasonable: the presence of
that bogus node is just noise to the machine and error-prone.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bug of unnecessarily cloning nodes.</title>
<updated>2023-07-18T03:58:00+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2023-07-18T03:55:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/rep.git/commit/?id=5a5f7e5be9498af219a36401b1d2a13b553402e8'/>
<id>5a5f7e5be9498af219a36401b1d2a13b553402e8</id>
<content type='text'>
* chain/src/item/default/splone.rs: Previously when we split nodes, we
  always clone the parent if the labels differ.  This turns out to be
  incorrect if the new label is open whereas the old label is closed.
  In that case, the old parent should not contain the new node as a
  child, as a closed node should not contain an open node.

  I am not yet entirely sure this fix is correct, so more test await
  us.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* chain/src/item/default/splone.rs: Previously when we split nodes, we
  always clone the parent if the labels differ.  This turns out to be
  incorrect if the new label is open whereas the old label is closed.
  In that case, the old parent should not contain the new node as a
  child, as a closed node should not contain an open node.

  I am not yet entirely sure this fix is correct, so more test await
  us.
</pre>
</div>
</content>
</entry>
</feed>
