<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:comic sans ms,sans-serif"><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"><pre><code>Hi Everyone,

Thank you Stephan. After your mail, I looked <span class="gmail-hljs-keyword">into</span> this more.
Here<span class="gmail-hljs-string">'s what I found:
<a href="https://cgit.freedesktop.org/libreoffice/core/log/unoidl?h=libreoffice-4.2.8.2&id=72b8e929af5bcfb7d17a74de636fb1ef5204297b&showmsg=1">https://cgit.freedesktop.org/libreoffice/core/log/unoidl?h=libreoffice-4.2.8.2&id=72b8e929af5bcfb7d17a74de636fb1ef5204297b&showmsg=1</a>
(This is in reverse chronological order.) <br></span></code><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"><pre>commit -  320571bf701a092d0f2d15fd4589ae271802a03f</pre></span><code><span class="gmail-hljs-string">
The cgit logs from 2013, primarily by Stephan Bergmann, document
a massive refactoring of LibreOffice'</span>s core UNO infrastructure.

<b>The "Old World" (Legacy, pre<span class="gmail-hljs-number">-2013</span>):</b>
LibreOffice inherited a <span class="gmail-hljs-keyword">system</span> <span class="gmail-hljs-keyword">from</span> OpenOffice.org that used a
toolchain <span class="gmail-hljs-keyword">of</span> idlc, regmerge, <span class="gmail-hljs-keyword">and</span> regview.
<span class="gmail-hljs-operator">-</span> .idl files compiled <span class="gmail-hljs-keyword">by</span> idlc <span class="gmail-hljs-keyword">into</span> <span class="gmail-hljs-type">binary</span> .urd (UNO Reflection
  Data).
<span class="gmail-hljs-operator">-</span> regmerge <span class="gmail-hljs-keyword">then</span> combined these .urd files <span class="gmail-hljs-keyword">into</span> a <span class="gmail-hljs-keyword">large</span>, complex,
  legacy<span class="gmail-hljs-operator">-</span>format <span class="gmail-hljs-type">binary</span> registry file (.rdb).
<span class="gmail-hljs-operator">-</span> regview was the tool designed <span class="gmail-hljs-keyword">to</span> read this <span class="gmail-hljs-keyword">old</span> format.

<b>The "New World" (The <span class="gmail-hljs-number">2013</span> unoidl Refactoring):</b>
<span class="gmail-hljs-operator">-</span> Goal: Replace the <span class="gmail-hljs-keyword">old</span>, cumbersome <span class="gmail-hljs-keyword">system</span> <span class="gmail-hljs-keyword">with</span> something
  more modern, efficient, <span class="gmail-hljs-keyword">and</span> easier <span class="gmail-hljs-keyword">to</span> maintain.
<span class="gmail-hljs-operator">-</span> Solution: The unoidl <span class="gmail-hljs-keyword">module</span> was created <span class="gmail-hljs-keyword">to</span> be the central
  authority <span class="gmail-hljs-keyword">for</span> handling UNO type information.

<b>The <span class="gmail-hljs-keyword">New</span> Tools:</b>
<span class="gmail-hljs-operator">-</span> <b>unoidl<span class="gmail-hljs-operator">-</span>write:</b> Replaced idlc <span class="gmail-hljs-keyword">and</span> regmerge. It compiles .idl
  files directly <span class="gmail-hljs-keyword">into</span> the <span class="gmail-hljs-keyword">new</span>, more efficient <span class="gmail-hljs-type">binary</span> format.
<span class="gmail-hljs-operator">-</span> <b>unoidl<span class="gmail-hljs-operator">-</span>read:</b> Replaced regview. Its <span class="gmail-hljs-keyword">specific</span> purpose <span class="gmail-hljs-keyword">is</span>
  <span class="gmail-hljs-keyword">to</span> read the <span class="gmail-hljs-keyword">new</span> .rdb files <span class="gmail-hljs-keyword">and</span> dump their contents <span class="gmail-hljs-keyword">in</span> a
  human<span class="gmail-hljs-operator">-</span>readable, IDL<span class="gmail-hljs-operator">-</span><span class="gmail-hljs-keyword">like</span> format.
<span class="gmail-hljs-operator">-</span> <b>unoidl<span class="gmail-hljs-operator">-</span><span class="gmail-hljs-keyword">check</span></b>: Replaced regcompare <span class="gmail-hljs-keyword">for</span> API compatibility.

<b>What this history tells us:</b>
<span class="gmail-hljs-operator">-</span> <i>Why regview Failed:</i> My <span class="gmail-hljs-keyword">initial</span> PoC attempts <span class="gmail-hljs-keyword">to</span> use regview
  <span class="gmail-hljs-keyword">on</span> a modern LibreOffice build failed because I was <span class="gmail-hljs-keyword">using</span> a
  legacy tool <span class="gmail-hljs-keyword">on</span> <span class="gmail-hljs-keyword">new</span> files. We were trying <span class="gmail-hljs-keyword">to</span> read a Blu<span class="gmail-hljs-operator">-</span>ray
  <span class="gmail-hljs-keyword">with</span> a VHS player.
<span class="gmail-hljs-operator">-</span> <i>The Correct Tool:</i> This confirms that unoidl<span class="gmail-hljs-operator">-</span>read <span class="gmail-hljs-keyword">is</span> the
  correct, modern tool <span class="gmail-hljs-keyword">for</span> our goal <span class="gmail-hljs-keyword">of</span> getting a <span class="gmail-hljs-keyword">static</span> dump
  <span class="gmail-hljs-keyword">of</span> the UNO API types.
<span class="gmail-hljs-operator">-</span> RDBs <span class="gmail-hljs-keyword">are</span> the Compiled Truth: It shows that the .rdb files
  <span class="gmail-hljs-keyword">are</span> the canonical, compiled source <span class="gmail-hljs-keyword">of</span> truth <span class="gmail-hljs-keyword">for</span> UNO types.

<b>Key Commits that Tell the Story:</b>
<span class="gmail-hljs-operator">-</span> "WIP: Experimental new binary type.rdb format" (Stephan
  Bergmann, Feb<span class="gmail-hljs-operator">/</span>Mar<span class="gmail-hljs-operator">/</span>Apr <span class="gmail-hljs-number">2013</span>): Documents <span class="gmail-hljs-keyword">new</span> RDB format <span class="gmail-hljs-keyword">and</span> unoidl
  <span class="gmail-hljs-keyword">module</span> creation. Explicitly aimed <span class="gmail-hljs-keyword">to</span> "ultimately remove
  modules store and registry."
<span class="gmail-hljs-operator">-</span> "New unoidl-read tool to translate registries into readable
  .idl files" (Stephan Bergmann, Sep <span class="gmail-hljs-number">2013</span>): Introduces our
  <span class="gmail-hljs-keyword">primary</span> <span class="gmail-hljs-keyword">static</span> dumping tool.
<span class="gmail-hljs-operator">-</span> "New unoidl-check tool to replace regcompare" (Stephan
  Bergmann, Sep <span class="gmail-hljs-number">2013</span>): This further shows the entire legacy
  toolchain (regcompare, regmerge, idlc, regview) was
  being systematically replaced <span class="gmail-hljs-keyword">by</span> a <span class="gmail-hljs-keyword">new</span>, unified unoidl<span class="gmail-hljs-operator">-</span><span class="gmail-hljs-operator">*</span>
  toolset.
<span class="gmail-hljs-operator">-</span> "Revert 'WIP: Experimental new binary type.rdb format'"
  (multiple times): The log shows this was a complex transition
  <span class="gmail-hljs-keyword">with</span> reverts <span class="gmail-hljs-keyword">and</span> re<span class="gmail-hljs-operator">-</span>applications. This <span class="gmail-hljs-keyword">is</span> normal <span class="gmail-hljs-keyword">for</span> a change
  <span class="gmail-hljs-keyword">of</span> this magnitude <span class="gmail-hljs-keyword">and</span> explains why the legacy code <span class="gmail-hljs-keyword">and</span> <span class="gmail-hljs-keyword">new</span> code
  had <span class="gmail-hljs-keyword">to</span> co<span class="gmail-hljs-operator">-</span>exist.

<b>Why XML <span class="gmail-hljs-keyword">for</span> "Services" RDBs?</b>

It turns <span class="gmail-hljs-keyword">out</span> services.rdb files <span class="gmail-hljs-keyword">are</span> intentionally kept <span class="gmail-hljs-keyword">in</span> XML,
<span class="gmail-hljs-keyword">not</span> <span class="gmail-hljs-keyword">by</span> accident. Here<span class="gmail-hljs-string">'s why:

1. Legacy support & human readability: While .rdb files for
   types switched to new binary, service registries remained
   XML "for backwards compatibility" [<a href="https://listarchives.libreoffice.org/global/dev/2013/msg14613.html">1</a>, <a href="https://wiki.documentfoundation.org/Documentation/DevGuide/Extensions">2</a>, <a href="https://docs.libreoffice.org/store.html">3</a>]. Human-readable
   XML eases maintenance, debugging, and scripting.

2. Consistent tooling across UNO bridges: Developers noted that
   `program/services` .rdb files are XML-based. The Python-UNO
   bridge, for instance, depends on those XML service definitions;
   binary would hinder Python tools [<a href="https://www.openoffice.org/udk/python/python-bridge.html">4</a>, <a href="https://ask.libreoffice.org/t/no-helloworldpython-nor-any-other-python-script-using-appimage/107376/21">5</a>]. </span><br></code><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"><pre><code><span class="gmail-hljs-string">3. Consistency with ODF: LibreOffice'</span>s file formats (ODT, ODS)
   <span class="gmail-hljs-keyword">are</span> XML<span class="gmail-hljs-operator">-</span>based (ODF). Keeping service registration <span class="gmail-hljs-keyword">in</span> XML
   aligns <span class="gmail-hljs-keyword">with</span> this broader architectural philosophy.</code></pre></span><code><br></code><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"></span><code>
<b>TL;DR:</b>
<u>File Type</u>     <u>Format</u>  <u>Reason</u>
types.rdb     <span class="gmail-hljs-type">Binary</span>  Efficient, compact, <span class="gmail-hljs-keyword">new</span> unoidl<span class="gmail-hljs-operator">-</span>write toolchain
services.rdb  XML     Human<span class="gmail-hljs-operator">-</span>readable, backwards compatibility, supports
                      scripting tools <span class="gmail-hljs-keyword">like</span> Python<span class="gmail-hljs-operator">-</span>UNO.

</code><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"><pre><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"><pre><code>So, the "mixed-format" nature <span class="gmail-hljs-keyword">of</span> the registry <span class="gmail-hljs-keyword">is</span> a deliberate <span class="gmail-hljs-keyword">and</span>
pragmatic design choice, balancing performance (<span class="gmail-hljs-keyword">for</span> <span class="gmail-hljs-type">binary</span> types)
<span class="gmail-hljs-keyword">with</span> interoperability <span class="gmail-hljs-keyword">and</span> maintainability (<span class="gmail-hljs-keyword">for</span> XML services).</code></pre></span></pre></span><code>

<b>Flowchart: Evolution <span class="gmail-hljs-keyword">of</span> UNO RDBs</b>

<b><span class="gmail-hljs-keyword">Old</span> World (Pre<span class="gmail-hljs-number">-2013</span>) UNO Type Processing:</b>

<span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +--------+     +---------+</span>
<span class="gmail-hljs-operator">|</span> .idl     <span class="gmail-hljs-operator">|</span> <span class="gmail-hljs-comment">--> | idlc   | --> | .urd    |</span>
<span class="gmail-hljs-operator">|</span> (Source) <span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span>        <span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span> (<span class="gmail-hljs-type">Binary</span>)<span class="gmail-hljs-operator">|</span>
<span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +--------+     +---------+</span>
                              <span class="gmail-hljs-operator">|</span>
                              v
                       <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +-----------+</span>
                       <span class="gmail-hljs-operator">|</span> regmerge <span class="gmail-hljs-operator">|</span> <span class="gmail-hljs-comment">--> | Legacy    |</span>
                       <span class="gmail-hljs-operator">|</span>          <span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span> .rdb      <span class="gmail-hljs-operator">|</span>
                       <span class="gmail-hljs-operator">|</span>          <span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span> (<span class="gmail-hljs-type">Binary</span>)  <span class="gmail-hljs-operator">|</span>
                       <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +-----------+</span>
                                              <span class="gmail-hljs-operator">|</span>
                                              v
                                        <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">---------+</span>
                                        <span class="gmail-hljs-operator">|</span> regview <span class="gmail-hljs-operator">|</span>
                                        <span class="gmail-hljs-operator">|</span> (Dump)  <span class="gmail-hljs-operator">|</span>
                                        <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">---------+</span>

<b><span class="gmail-hljs-keyword">New</span> World (<span class="gmail-hljs-number">2013</span> Refactoring) UNO Type Processing:</b>

<span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +--------------+     +----------+</span>
<span class="gmail-hljs-operator">|</span> .idl     <span class="gmail-hljs-operator">|</span> <span class="gmail-hljs-comment">--> | unoidl-write | --> | New      |</span>
<span class="gmail-hljs-operator">|</span> (Source) <span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span>              <span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span> .rdb     <span class="gmail-hljs-operator">|</span>
<span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +--------------+     | (Binary) |</span>
                                      <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+</span>
                                            <span class="gmail-hljs-operator">|</span>
                                            v
                                      <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">------------+</span>
                                      <span class="gmail-hljs-operator">|</span> unoidl<span class="gmail-hljs-operator">-</span>read<span class="gmail-hljs-operator">|</span>
                                      <span class="gmail-hljs-operator">|</span> (Dump)     <span class="gmail-hljs-operator">|</span>
                                      <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">------------+</span>

<b>Special <span class="gmail-hljs-keyword">Case</span>: UNO Service Processing (Remains XML):</b>

<span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +------------------+     +-----------------+</span>
<span class="gmail-hljs-operator">|</span> Services <span class="gmail-hljs-operator">|</span> <span class="gmail-hljs-comment">--> |  XML .rdb files  | --> | Text Editor     |</span>
<span class="gmail-hljs-operator">|</span> (Config) <span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span> (e.g., pyuno.rdb)<span class="gmail-hljs-operator">|</span>     <span class="gmail-hljs-operator">|</span> (Human Read)    <span class="gmail-hljs-operator">|</span>
<span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------+     +------------------+     +-----------------+</span>
                           <span class="gmail-hljs-operator">|</span>
                           v
              <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------------------------+</span>
              <span class="gmail-hljs-operator">|</span> Runtime Service Manager    <span class="gmail-hljs-operator">|</span>
              <span class="gmail-hljs-operator">|</span> (Loads <span class="gmail-hljs-keyword">for</span> Component Info) <span class="gmail-hljs-operator">|</span>
              <span class="gmail-hljs-operator">+</span><span class="gmail-hljs-comment">----------------------------+</span>

<b><br></b></code><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"><pre><code><b>Our Project</b><span class="gmail-hljs-string"><b>'s possible Cache Philosophy (Hybrid Approach):</b>

+-----------------------+     +---------------------------+
| Static Data Sources   | --> |  Offline Tool             |
| (UNO APIs, Std Libs)  |     | (like unoidl-write + PoC) |
+-----------------------+     +---------------------------+
                                        |
                                        v
                               +-----------------------+
                               | Binary Cache File     |
                               | (e.g., SQLite .db)    |
                               +-----------------------+
                                        |
                                        v
                       +------------------------------------+
                       | IDE Startup: Load Binary Cache     |
                       | into Master Analyzer (In-Memory)   |
                       +------------------------------------+
                                        |
                                        v
                       +------------------------------------+
                       | Dynamic Data (User Code, Vars)     |
                       | (Analyzed In-Memory by MA)         |
                       +------------------------------------+
                                        |
                                        v
                       +----------------------------------------+
                       |    Live IDE Cache (In-Memory Hybrid)   |
                       | (Can be saved to XML/JSON for session) |
                       +----------------------------------------+</span></code></pre></span><br><code><b><br>Our Project</b><span class="gmail-hljs-string"><b>'s Cache Philosophy - Considerations for a Hybrid Approach:</b>

Drawing lessons from LibreOffice'</span>s RDB evolution, we <span class="gmail-hljs-keyword">can</span>
consider a hybrid cache design <span class="gmail-hljs-keyword">for</span> our project. This would
address performance needs while maintaining flexibility.

<u>Potential Approaches:</u>
<span class="gmail-hljs-operator">-</span> <b>The Core <span class="gmail-hljs-keyword">Static</span> Cache (UNO APIs, Standard Libraries):</b> <span class="gmail-hljs-keyword">For</span>
  this <span class="gmail-hljs-keyword">large</span> amount <span class="gmail-hljs-keyword">of</span> relatively stable data, we can consider
  storing it <span class="gmail-hljs-keyword">in</span> a fast, compact, <span class="gmail-hljs-type">binary</span> format. This could
  potentially use something <span class="gmail-hljs-keyword">like</span> SQLite <span class="gmail-hljs-keyword">for</span> efficient querying
  <span class="gmail-hljs-keyword">and</span> retrieval. This <span class="gmail-hljs-keyword">is</span> analogous <span class="gmail-hljs-keyword">to</span> the <span class="gmail-hljs-keyword">new</span> <span class="gmail-hljs-type">binary</span> types.rdb
  format, aiming <span class="gmail-hljs-keyword">for</span> quick IDE startup.
<span class="gmail-hljs-operator">-</span> <b>The <span class="gmail-hljs-keyword">Dynamic</span> Cache <span class="gmail-hljs-operator">&</span> <span class="gmail-hljs-keyword">User</span><span class="gmail-hljs-operator">-</span><span class="gmail-hljs-keyword">Specific</span> Data:</b> Information about the
  <span class="gmail-hljs-keyword">user</span><span class="gmail-hljs-string">'s currently open modules, local variables, and editor
  state is highly dynamic. For debugging or saving the IDE'</span>s
  session state, a more readable format <span class="gmail-hljs-keyword">like</span> JSON <span class="gmail-hljs-keyword">or</span> XML could be
  beneficial. This <span class="gmail-hljs-keyword">is</span> analogous <span class="gmail-hljs-keyword">to</span> the XML services.rdb files.
<span class="gmail-hljs-operator">-</span> <b>The Hybrid <span class="gmail-hljs-keyword">System</span> Concept:</b> Our Master Analyzer would produce
  IdeSymbolInfo objects <span class="gmail-hljs-keyword">in</span> memory. <span class="gmail-hljs-keyword">For</span> persistence, we can
  consider options <span class="gmail-hljs-keyword">to</span>:
    <span class="gmail-hljs-operator">-</span> Build an offline tool (<span class="gmail-hljs-keyword">similar</span> <span class="gmail-hljs-keyword">to</span> unoidl<span class="gmail-hljs-operator">-</span>write) <span class="gmail-hljs-keyword">using</span> our
      PoC logic (theCoreReflection, BASIC parser) <span class="gmail-hljs-keyword">to</span> generate
      a comprehensive <span class="gmail-hljs-type">binary</span> cache file <span class="gmail-hljs-keyword">of</span> <span class="gmail-hljs-keyword">all</span> shippable UNO <span class="gmail-hljs-keyword">and</span>
      Standard<span class="gmail-hljs-operator">/</span>ScriptForge library info, possibly <span class="gmail-hljs-keyword">using</span> SQLite.
      This file would ideally ship <span class="gmail-hljs-keyword">with</span> LibreOffice.
    <span class="gmail-hljs-operator">-</span> <span class="gmail-hljs-keyword">At</span> runtime, the IDE would load this <span class="gmail-hljs-type">binary</span> cache <span class="gmail-hljs-keyword">into</span> memory.
      The Master Analyzer would <span class="gmail-hljs-keyword">then</span> <span class="gmail-hljs-keyword">add</span> <span class="gmail-hljs-keyword">to</span> <span class="gmail-hljs-keyword">or</span> <span class="gmail-hljs-keyword">overlay</span> this cache
      <span class="gmail-hljs-keyword">with</span> information <span class="gmail-hljs-keyword">from</span> the <span class="gmail-hljs-keyword">user</span><span class="gmail-hljs-string">'s open documents and unsaved
      changes. This live part might not need disk saving, or could
      be saved as XML/JSON for session state.

<b>This ideated approach aims for:</b>
- Optimized Startup Performance: From loading a pre-compiled
  binary cache (e.g., SQLite).
- Flexibility & Dynamicism: From in-memory analysis of live code.
- Improved Debuggability: From clear static/dynamic separation.


[1] <a href="https://listarchives.libreoffice.org/global/dev/2013/msg14613.html">https://listarchives.libreoffice.org/global/dev/2013/msg14613.html</a>
[2] <a href="https://wiki.documentfoundation.org/Documentation/DevGuide/Extensions">https://wiki.documentfoundation.org/Documentation/DevGuide/Extensions</a>
[3] <a href="https://docs.libreoffice.org/store.html">https://docs.libreoffice.org/store.html</a>
[4] <a href="https://www.openoffice.org/udk/python/python-bridge.html">https://www.openoffice.org/udk/python/python-bridge.html</a>
[5] <a href="https://ask.libreoffice.org/t/no-helloworldpython-nor-any-other-python-script-using-appimage/107376/21">https://ask.libreoffice.org/t/no-helloworldpython-nor-any-other-python-script-using-appimage/107376/21</a></span></code><br></pre><pre><code><span class="gmail-hljs-string">    Week 4 mail chain - </span></code><a href="https://lists.freedesktop.org/archives/libreoffice/2025-June/093392.html">https://lists.freedesktop.org/archives/libreoffice/2025-June/093392.html</a></pre><pre><span class="gmail-router-outlet-wrapper gmail-ng-tns-c4274809755-0"><pre><code><span class="gmail-hljs-string"><br>I look forward to discussing these considerations and
potential strategies with the community and specially with mentors</span></code></pre></span></pre></span><br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, 17 Jun 2025 at 01:32, Stephan Bergmann <<a href="mailto:stephan.bergmann@allotropia.de">stephan.bergmann@allotropia.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 6/16/25 18:37, Devansh Varshney wrote:<br>
> *2. Legacy RDBs*: Interestingly, when I tried to run unoidl-read on some<br>
>      other RDBs from workdir/Rdb/ (like pyuno.rdb), I got a different error:<br>
> <br>
> |$ unoidl-read $PWD/workdir/Rdb/pyuno.rdb Bad input <...>: cannot open <br>
> legacy file: 6|<br>
> <br>
> This confirms the unoidl/README.md note that unoidl::Manager can<br>
> detect the old legacy format but may not be able to read all of them with<br>
> this specific tool. It's a great insight into the mixed-format nature of the<br>
> registry system.<br>
Traditionally, the original store-based binary rdb format was used for <br>
both "types" files (storing information about UNOIDL entities) and <br>
"services" files (storing information about UNO components).  Both those <br>
kinds of rdb files have since been changed, using a different binary <br>
format for the "types" files and an XML format for the "services" files. <br>
  Somewhat confusingly, all those kinds of files still use the ".rdb" <br>
extension.<br>
<br>
unoidl-read can read "types" files (both the old and new binary <br>
formats), but not "services" files (the XML format)---and <br>
workdir/Rdb/pyuno.rdb is such a "services" file.<br>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-family:monospace"><b>Regards,</b></span></div><div><span style="font-family:monospace;color:rgb(153,0,255)"><b>Devansh</b></span><br></div></div></div></div>