Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

SD 0.7.0

219 views
Skip to first unread message

Donald Montaine

unread,
Jun 24, 2024, 4:16:18 PM6/24/24
to Pick and MultiValue Databases
Thanks to some wonderful work by nextjob, who created a BASIC compiler (writen in Python) for SD, we now have a version of SD that has no binary elements required for installation.  Everything is source and auditable.  During installation the Python basic compiler compiles the necessary source code in GPL.BP that in the past prevented the system from being binary element free.  Also, any required dynamic files are created during installation.

We have now created a 'dev' branch on github.  The 'main' branch contains the code for the 0.7.0 version and will remain unchanged until we update to 0.8.0.  Development will continue in the 'dev' branch.

The github repository is at https://github.com/stringdatabase/sdb64

For version 0.8.0, we will be working on some necesary utilities and documentation (expecially documentation on the differences between SD and ScarletDME).  As far as core changes, we have reached our goal of a slimmed down, binary element free multivalue database.  From this point on, we will be focused on making this core system more friendly and more usable.

You can also download a zipped copy of the repository using the link below.  There are installer scripts for Fedora and Debian/Ubuntu.  They have been tested on Fedora 40, Debian 12 and Ubuntu 24.04.  Redhat 9.x is not supported because various packages in the distribution are too old to work with this version of SD.


Questions, suggestions, comments can be sent to:

sd.string.database at gmail dot com

and, as always, additional contributors would be welcome.

Wols Lists

unread,
Jun 24, 2024, 4:24:00 PM6/24/24
to mvd...@googlegroups.com
On 24/06/2024 21:16, Donald Montaine wrote:
> Thanks to some wonderful work by nextjob, who created a BASIC compiler
> (writen in Python) for SD, we now have a version of SD that has no
> binary elements required for installation.  Everything is source and
> auditable.  During installation the Python basic compiler compiles the
> necessary source code in GPL.BP that in the past prevented the system
> from being binary element free.  Also, any required dynamic files are
> created during installation.

That's brilliant!

We'll need to move that across into Scarlet to provide that there, as it
does upset some people, but now we need a Python binary :-)

At the end of the day, I see it as a "trusting trust" problem, but if it
keeps more people happy ...

Cheers,
Wol

Jay LaBonte

unread,
Jun 24, 2024, 4:35:01 PM6/24/24
to mvd...@googlegroups.com

I don’t have time to play with DME and make additions, so how can we submit requests for addtions/enhacements.

 

I requested the following changes to OpenQM back in 2019, which Martin kindly added. Those changes were as follows:

 

 

  1. The addition of SYSTEM(9010) to return “QM”
  2. Adding the CALLING clause to DEFFUN such as “DEFFUN function_id (var1,var2,var3) CALLING program.

 

Here is an example of what I am trying to achieve:

 

DB = SYSTEM(9010)

 

PROG = “funInitServerSocket_”:DB

DEFFUN funInitServerSocket (IP,BACKLOG,SVR_SOCKET) CALLING PROG

 

This allows the compiler to dynamically build the name of the function to call that is system specific.

 

 

Regards,

Jay LaBonte

--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms
---
You received this message because you are subscribed to the Google Groups "Pick and MultiValue Databases" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mvdbms+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mvdbms/bb156524-ef3c-4ee3-b00c-bc46630b34d3n%40googlegroups.com.

Donald Montaine

unread,
Jun 24, 2024, 4:51:21 PM6/24/24
to Pick and MultiValue Databases
Suggestions and requests for SD (not ScarletDME - two separate projects) can be sent to sd.string.database at gmail dot com.

Wol

unread,
Jun 24, 2024, 5:03:45 PM6/24/24
to mvd...@googlegroups.com
Bearing in mind both projects have minimal manpower, whatever goes into
one should be shared with the other, I would think.

I'd certainly like to look at the "system(9010)" thing, but the problem
- as always - is time.

I presume, once you've got that, you don't actually need the DEFFUN
stuff (although it will be a "nice to have") because you could use an IF
statement instead.

Cheers,
Wol

On 24/06/2024 21:51, Donald Montaine wrote:
> Suggestions and requests for SD (not ScarletDME - two separate projects)
> can be sent to sd.string.database at gmail dot com.
>
> On Monday, June 24, 2024 at 1:35:01 PM UTC-7 Jay LaBonte wrote:
>
> I don’t have time to play with DME and make additions, so how can we
> submit requests for addtions/enhacements.____
>
> __ __
>
> I requested the following changes to OpenQM back in 2019, which
> Martin kindly added. Those changes were as follows:____
>
> __ __
>
> __ __
>
> 1. The addition of SYSTEM(9010) to return “QM”____
> 2. Adding the CALLING clause to DEFFUN such as “DEFFUN function_id
> (var1,var2,var3) CALLING program.____
>
> __ __
>
> Here is an example of what I am trying to achieve:____
>
> __ __
>
> DB = SYSTEM(9010)____
>
> __ __
>
> PROG = “funInitServerSocket_”:DB____
>
> DEFFUN funInitServerSocket (IP,BACKLOG,SVR_SOCKET) CALLING PROG____
>
> __ __
>
> This allows the compiler to dynamically build the name of the
> function to call that is system specific. ____
>
> __ __
>
> __ __
>
> Regards,____
>
> Jay LaBonte____
>
> __ __
>
> __ __
>
> __ __
>
> *From:* mvd...@googlegroups.com <mvd...@googlegroups.com> *On Behalf
> Of *Donald Montaine
> *Sent:* Monday, June 24, 2024 4:16 PM
> *To:* Pick and MultiValue Databases <mvd...@googlegroups.com>
> *Subject:* [mvdbms] SD 0.7.0____
>
> __ __
>
> Thanks to some wonderful work by nextjob, who created a BASIC
> compiler (writen in Python) for SD, we now have a version of SD that
> has no binary elements required for installation.  Everything is
> source and auditable.  During installation the Python basic compiler
> compiles the necessary source code in GPL.BP that in the past
> prevented the system from being binary element free.  Also, any
> required dynamic files are created during installation.____
>
> __ __
>
> We have now created a 'dev' branch on github.  The 'main' branch
> contains the code for the 0.7.0 version and will remain unchanged
> until we update to 0.8.0.  Development will continue in the 'dev'
> branch.____
>
> __ __
>
> The github repository is at https://github.com/stringdatabase/sdb64
> <https://github.com/stringdatabase/sdb64>____
>
> __ __
>
> For version 0.8.0, we will be working on some necesary utilities and
> documentation (expecially documentation on the differences between
> SD and ScarletDME).  As far as core changes, we have reached our
> goal of a slimmed down, binary element free multivalue database.
> From this point on, we will be focused on making this core system
> more friendly and more usable.____
>
> __ __
>
> You can also download a zipped copy of the repository using the link
> below.  There are installer scripts for Fedora and Debian/Ubuntu.
> They have been tested on Fedora 40, Debian 12 and Ubuntu 24.04.
> Redhat 9.x is not supported because various packages in the
> distribution are too old to work with this version of SD.____
>
> __ __
>
> https://u.pcloud.link/publink/show?code=XZtcT10ZJURMz8BvEQJjd8aokdY5EFNU96My <https://u.pcloud.link/publink/show?code=XZtcT10ZJURMz8BvEQJjd8aokdY5EFNU96My>____
>
> __ __
>
> Questions, suggestions, comments can be sent to:____
>
> __ __
>
> sd.string.database at gmail dot com____
>
> __ __
>
> and, as always, additional contributors would be welcome.____
>
> __ __
>
> --
> You received this message because you are subscribed to
> the "Pick and MultiValue Databases" group.
> To post, email to: mvd...@googlegroups.com
> To unsubscribe, email to: mvdbms+un...@googlegroups.com
> For more options, visit http://groups.google.com/group/mvdbms
> <http://groups.google.com/group/mvdbms>
> ---
> You received this message because you are subscribed to the Google
> Groups "Pick and MultiValue Databases" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to mvdbms+un...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/mvdbms/bb156524-ef3c-4ee3-b00c-bc46630b34d3n%40googlegroups.com <https://groups.google.com/d/msgid/mvdbms/bb156524-ef3c-4ee3-b00c-bc46630b34d3n%40googlegroups.com?utm_medium=email&utm_source=footer>.____
>
> --
> You received this message because you are subscribed to
> the "Pick and MultiValue Databases" group.
> To post, email to: mvd...@googlegroups.com
> To unsubscribe, email to: mvdbms+un...@googlegroups.com
> For more options, visit http://groups.google.com/group/mvdbms
> <http://groups.google.com/group/mvdbms>
> ---
> You received this message because you are subscribed to the Google
> Groups "Pick and MultiValue Databases" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to mvdbms+un...@googlegroups.com
> <mailto:mvdbms+un...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/mvdbms/33336643-1a05-4319-a979-7df3906e0696n%40googlegroups.com <https://groups.google.com/d/msgid/mvdbms/33336643-1a05-4319-a979-7df3906e0696n%40googlegroups.com?utm_medium=email&utm_source=footer>.

Donald Montaine

unread,
Jun 24, 2024, 5:09:40 PM6/24/24
to Pick and MultiValue Databases
Since both projects are open source, I think sharing is assumed.

Donald Montaine

unread,
Jul 9, 2024, 11:57:23 PM7/9/24
to Pick and MultiValue Databases
We are beginning (first baby steps) to document the differences between SD and ScarletDME/OpenQM GPL.  The attached document shows which TCL commands are available in SD and which have been removed.


TCL Commands in SD.odt

Brian Speirs

unread,
Jul 10, 2024, 3:49:59 PM7/10/24
to Pick and MultiValue Databases
Hi Donald,
I can understand why most of those commands were removed - but I would have thought that commands like:
  CLEARDATA
  CLEARINPUT
  CLEARPROMPTS
  CLEARSELECT
serve an important purpose and should have been retained. Certainly, we would not want to do without CLEARPROMPTS or CLEARSELECT in our commercial QM system. COPYP is also useful to those of us who came originally from PICK systems. And while we might not use UPDATE.RECORD very often (say once per year), it is quite useful when we do use it.
Cheers,

Brian

Donald Montaine

unread,
Jul 10, 2024, 4:23:02 PM7/10/24
to Pick and MultiValue Databases
CLEAR.DATA, CLEAR.INPUT, CLEAR.PROMPTS and CLEAR.SELECT  are still there.  We just got rid of the synonyms.  We decided to get rid of the Pick compatibility at this point.  I did decide to add SED back in. UPDATE.RECORD could be added back in easily. We did get rid of the TTY op codes, so our version of PTERM does not support TTY connections, which required minor changes to SED and UPDATE.RECORD. 

Wol

unread,
Jul 10, 2024, 5:12:02 PM7/10/24
to mvd...@googlegroups.com
On 10/07/2024 21:23, Donald Montaine wrote:
> CLEAR.DATA, CLEAR.INPUT, CLEAR.PROMPTS and CLEAR.SELECT  are still
> there.  We just got rid of the synonyms.  We decided to get rid of the
> Pick compatibility at this point.  I did decide to add SED back in.
> UPDATE.RECORD could be added back in easily. We did get rid of the TTY
> op codes, so our version of PTERM does not support TTY connections,
> which required minor changes to SED and UPDATE.RECORD.

Hmmm ...

That sounds like it might be a good idea ...

Think about it - I'm not sure what flavour is what, but some setting of
"emulation = Pick / INFORMATION / whatever" might be good. Whichever you
choose gets rid of the unwanted synonyms ...

Especially if you're setting up a new system, it would make sense to say
"this is what we support" and get rid of the alternatives. But the
ability to pick the version you keep is important. I'm doing just that,
and would love to keep the dot versions and ditch the rest ...

Cheers,
Wol

Donald Montaine

unread,
Jul 10, 2024, 5:47:54 PM7/10/24
to Pick and MultiValue Databases
For the 0.8 release I added back the synonyms, COPYP and our slightly modified SED and UPDATE.RECORD.  Some things that we removed were substantial, but these were easy to add back in.
One other thing to look forward to in 0.8 is that the Scarlett code would seg fault on very long strings (around 2 GB) as string length is stored in a 32 bit rather than 64 bit integer.  Nextjob has trapped this error
so that an error message about the string length is displayed rather than the system seg faulting.  We are also going to set a maximum allowed string length. We are currently trying to decide whether to set the 
maximum allowed string length to .5 GB or 1 GB.  

Wol

unread,
Jul 10, 2024, 6:13:44 PM7/10/24
to mvd...@googlegroups.com
On 10/07/2024 22:47, Donald Montaine wrote:
> For the 0.8 release I added back the synonyms, COPYP and our slightly
> modified SED and UPDATE.RECORD.  Some things that we removed were
> substantial, but these were easy to add back in.

Bear in mind we have the NEWACC file, we could possibly do it by having
a NEWACC.PICK and NEWACC.INFO. Then the install would use NEWACC and
whatever emulation you want - possibly all of them ...

> One other thing to look forward to in 0.8 is that the Scarlett code
> would seg fault on very long strings (around 2 GB) as string length is
> stored in a 32 bit rather than 64 bit integer.  Nextjob has trapped this
> error
> so that an error message about the string length is displayed rather
> than the system seg faulting.  We are also going to set a maximum
> allowed string length. We are currently trying to decide whether to set the
> maximum allowed string length to .5 GB or 1 GB.

Can we make it an unsigned int? That will give us 4GB, and a negative
length doesn't make sense. I'm not sure if size_t is unsigned, but if we
can find something like that, we can typedef it, hunt down the bugs, and
then change it if we need to. Personally I think long strings like that
almost certainly mean a design error, but I'm sure we'll get people
screaming "I need strings that long" :-)

Cheers,
Wol

Brian Speirs

unread,
Jul 10, 2024, 9:43:08 PM7/10/24
to Pick and MultiValue Databases
Bear in mind that most of the "compatibility settings" that QM/Scarlet/SD uses run through the OPTION command.
The GPL version of QM allowed OPTION PICK to set those options that let QM most closely resemble a PICK system. Later commercial systems added OPTION D3 and OPTION MVBASE. But all those options just affect behaviour - they don't actually change the commands available.
Similarly, there are MODE settings within QMBasic - but they still don't really change the commands available - just their behaviour.
Within that overall framework, I can't say that I am convinced that removing commands based on emulation is a good idea. But I dare say that some others will think that having commands behave differently based on emulation is a bad idea too ...
Cheers,

Brian

Donald Montaine

unread,
Jul 10, 2024, 9:51:52 PM7/10/24
to Pick and MultiValue Databases
We haven't touched OPTION PICK or MODE.  We also have left in support for "A" and "S" dictionary items.  And now I have added back COPYP.  So I guess we still have as much Pick compatibility as QM GPL 2.6.6 had.

Jim Idle

unread,
Jul 11, 2024, 3:23:11 PM7/11/24
to mvd...@googlegroups.com
They are just noise. A good program should not need these. Such “extensions” became the bane of its existence

--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms
---
You received this message because you are subscribed to the Google Groups "Pick and MultiValue Databases" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mvdbms+un...@googlegroups.com.

tomma...@aircraftspruce.com

unread,
Jul 11, 2024, 3:56:28 PM7/11/24
to mvd...@googlegroups.com

For what it’s worth, CLEARINPUT is critical for our D3 to interface correctly with our terminal emulator.  Otherwise, user input gets in the way of some of the server to emulator conversations.  My users love to bang on the keyboard when they think nothing is happening. 

 

And CLEARSELECT is often used when I need to exit a select early and I don’t want any residual items to get picked up by the next select by mistake.

 

Tom

Donald Montaine

unread,
Jul 11, 2024, 4:14:50 PM7/11/24
to Pick and MultiValue Databases
The functionality was never gone.  CLEAR.SELECT,  for example, was retained just not it's synonym CLEARSELECT.  However, I put the commands without the period back in SD for convenience.


Wol

unread,
Jul 11, 2024, 5:54:47 PM7/11/24
to mvd...@googlegroups.com
On 11/07/2024 20:22, 'Jim Idle' via Pick and MultiValue Databases wrote:
> They are just noise. A good program should not need these. Such
> “extensions” became the bane of its existence

I couldn't agree more. But the problem is, different people are used to
different variants. Which is why I think - if possible - it would be
nice to be able to choose which version you keep. OpenQM is an
INFORMATION clone, and I'm an INFORMATION guy at heart, so I'd dump the
Pick variants in a flash. But people who started with "real Pick" would
have the completely opposite view.

Cheers,
Wol
> <mailto:mvd...@googlegroups.com>
> To unsubscribe, email to: mvdbms+un...@googlegroups.com
> <mailto:mvdbms%2Bunsu...@googlegroups.com>
> For more options, visit http://groups.google.com/group/mvdbms
> <http://groups.google.com/group/mvdbms>
> ---
> You received this message because you are subscribed to the Google
> Groups "Pick and MultiValue Databases" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to mvdbms+un...@googlegroups.com
> <mailto:mvdbms+un...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/mvdbms/cc63ec61-3ff9-40fa-8ccf-36abf5f8b1c4n%40googlegroups.com <https://groups.google.com/d/msgid/mvdbms/cc63ec61-3ff9-40fa-8ccf-36abf5f8b1c4n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to
> the "Pick and MultiValue Databases" group.
> To post, email to: mvd...@googlegroups.com
> To unsubscribe, email to: mvdbms+un...@googlegroups.com
> For more options, visit http://groups.google.com/group/mvdbms
> <http://groups.google.com/group/mvdbms>
> ---
> You received this message because you are subscribed to the Google
> Groups "Pick and MultiValue Databases" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to mvdbms+un...@googlegroups.com
> <mailto:mvdbms+un...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/mvdbms/CAGPPfg_1C5mYxnwnkSOFKaKWBUrGG1s9XRYnd3wVFK7H5JXAPg%40mail.gmail.com <https://groups.google.com/d/msgid/mvdbms/CAGPPfg_1C5mYxnwnkSOFKaKWBUrGG1s9XRYnd3wVFK7H5JXAPg%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Donald Montaine

unread,
Jul 12, 2024, 3:11:14 PM7/12/24
to Pick and MultiValue Databases
How to install sd
---------------------------
(set your terminal geometry to 120 columns x 36 lines)
open a terminal session
cd ~
sudo apt install git
cd sdb64
For Debian/Ubuntu/Mint: Enter "./debian-installsd.sh"
For Fedora: Enter "./fedora-installsd.sh"  
(does not work with Redhat and clones as their packages are not current)
Enter "y" when requested
if asked, enter your password
When asked if you want to install after c code is compiled: Press Enter
When completed: Enter "y" to reboot
After restart, open terminal and enter "sd"
To login as SDSYS administrator: Enter "sudo sd"

Should work on Ubuntu 22.04 and later, Mint 21 and later and Fedora 39 and later.

To upgrade to a new version
---------------------------------------------
open a terminal session
cd ~/sdb64
git pull origin main
./deletesd.sh
if asked, enter your password
When asked if you want to remove /home/sd: answer "n" if you want to retain your accounts and data
                                                                                  answer "y" to delete all accounts and data and start over
Reboot the computer
Repeat the install script above


Reply all
Reply to author
Forward
0 new messages