In ABC the global modules are fractioned in many small files, so you can have a DCT as big as you like. In Legacy, it creates a few monolitic RU and RD files. I’m getting “out of memory resources” and Clarion connot generate those clw anymore. Before reinventing the wheel, does anyone modified the Clarion legacy templates so they handle those global the same way ABC does? I was checking the ABC templates and it looks so different from the legacy templates to me, that I don’t think I could apply the same “recipe”.
Note: Instead of #For/#Endfor, I manually changed the templates (just copied and pasted and renamed) so it generates 2 _RU, 2 _RD, etc. for a while that worked. Then hit the limit and so spliited in three. Today I got the error again… Each time the DCT grows it get worst.
25 years ago our solution in Win/DSS was just to have multiple DLLs. IIRC we had 4 or 5 DLLs just for file definitions from the dictionary. Is that not possible for you?
Back in the day I used DET templates from Tom Moseley to get around big dictionary issues. Unfortunately I don’t think these have been available for many years.
I attached the DET Documentation. It had a few ways to cope with large and very large DCT’s.
I have the DET templates. I’ll ask Mitten if I can post them.
One thing I know it did was had ALL the RI/RD code generate out of a single APP and exported those procedures. Other APPs imported the procedures instead of generating them.
I know I did this without DET in one system I worked on and it was not that hard of a change. The importers just didn’t need to generate RD/RU and had to have their MAP specify EXTERNAL. The DCT APP had to add RI_RD Procs to the EXP file. it may have come from a CMag article.
The other thing DET did to deal with Large DCT size was to create 1 CLW file with RU+RD for each file, or maybe it was for related files.
Page 53 of PDF
Too much code in a single module. This is the first limit that users usually
hit. The error text provided is not too helpful. Basically, it goes like this. In 16
bit, the Clarion for Windows linker can handle up to 64k bytes of combined
code and data. When you have a large dictionary in Clarion for Windows,
using the Clarion for Windows templates, it is not uncommon for the
Relational Integrity (RI) code to take you above this limit.
DET solves this problem by moving each file’s RI code into a separate
source file. These .CLW files will have names that include the first few letters
of the application’s name, followed by an exclamation mark or ampersand,
followed by a number.
@Jim-Morgan of Mitten Software replied and said I could post DET aka The Dictionary Enhancement Toolkit
Attached is version 2.12 from August 2000. I had to edit the DetCore.TPL file to remove the licensee name, so it is dated today. It was dated 8/18/2000.
This TPL code and PDF should help with ways to change the current templates to cope with large DCT’s in Legacy. The the DET docs page 48 When Bad Things Happen to Good Dictionaries
This was built for CW 2.003 that was limited to 16-bit. The EXP builder code (DetExp.TPW) will not work for 32-bit in the EXP Header, but the EXPORT section will be useful the way it deals with export of the RU/RD procedures.
Hi,all!
Thank you for your ideas, but we had to find another solution.We can no longer use DET (we did in the past), as the files are heavily intermingled. We have over 900 files and 60 DLLs with more than 14 million lines of code (generated and embedded). The system is over 20 years old, but it works perfectly for what is needed, so there is no intention of moving to ABC or refactoring anything.