Otto,

> I think it is interesting. As for the incompatibilites, my memory says
> I followed the original dc and bc when deciding on those (GNU chose to
> differs in these cases). Bit it has been 18 years since I wrote the
> current versions, so I might misrememeber.

I think that makes sense to me. Unfortunately, when I was building my
dc, I couldn't find any mention in the OpenBSD man pages, which I used
to ensure as much compatibility as I could, that arrays and registers
were not separate. Well, there was one (the `;` command mentions
registers, but the `:` command does not, so I thought that was a typo).

Regarding the 0 having length 0 or 1, that was a decision I agonized
over. My dad, who is a mathematician, said that it could go either way.
Unfortunately for me, if this is a showstopper incompatibility (and it
might be based on how the test suite uses `length()` and `Z`), I do
think I would keep it as it is and accept that OpenBSD will not want my
bc(1) and dc(1).

> As for moving to your version, I have no opinion yet. I have some
> attachment to the current code, but not so strong that I am opposing
> replacement upfront. OTOH the current implementaion is almost
> maintainance free for many years already. So I dunno.

You have a right to have attachment to it; I have attachment to mine!

In fact, I was pleasantly surprised at how clean and readable your code
was. I usually struggle to read code written by others, but I could
easily read yours.

On that note, since last night, I thought of more disadvantages of
moving to my bc and dc, which I feel I must mention.

More disadvantages:

* The current dc(1) and bc(1) are from a known member of the OpenBSD
  community with many contributions. I am an unknown quantity.
* The current dc(1) and bc(1) do not have ugly portability code that
  OpenBSD probably doesn't care about.
* The current dc(1) and bc(1) do not have ugly code to support build
  options that OpenBSD does not care about.
* The binary size of the OpenBSD dc(1) and bc(1) combined are 78% the
  size of mine combined (on amd64). The size of OpenBSD combined is
  145440, and the size of mine combined are 185706.
* The current dc(1) and bc(1) have much less source code and have been
  nearly maintenance-free for many years. Mine were started in 2018 and
  do not have as long of a track record for being low maintenance.

> I'll take a look at your code soon and maybe other devs have opinions.

Thank you very much!

Gavin Howard

Reply via email to