This is the change log for the SAM kernel.

070507

I added some comments to $sam/source/set_filt.c and recompiled
thus making a new $sam/set_filt.exe.  There were no changes beyond the
comments.  It got recompiled, because I had made some significant
changes, compiled, then changed things back.

I was searching for the reason for the error message I was receiving:

"Error.  Buffer size exceeded."  I found that I had an ' in a file
(colpg.sam) as part of a quoted web page title.  I don't know why this
caused trouble, but it did.  I increased the BUFFSIZE from 1000 to
10000.  Then instead of "Buffer size exceeded" error I got an
"Unmatched '" error.  These are set_filt.exe error messages, and I
don't understand what was happening.

When I took the ' out of the colpg.sam file the errors went away and I
returned set_filt.c to its original form (althouth now with new
comments in it), and I recompiled (and placed the new .exe in $sam).

By the way, those are lousy error messages.  I need to replace them
with messages that identify what code they are coming from.  Likewise
for the other .c files in $sam/source.

070623 - 070704

During this time I made some sweeping changes to the organization and
documentation of the SAM Kernel and how it relates to the application.

-First of all, the application will be distributed separately from what I
now call "The SAM Kernel".  The application and the kernel are still
$referenced by $sam and sam_distro, respectively.

This second one, $sam_distro, is a bit odd now, because both the kernel
and the application are distributions.  I will let this quirk stay at
least for now.  It makes sense when you consider that the application
is the major distribution, probably being larger than the kernel.  Also
the kernel still appears to be inside the application at
$sam_distro/sam (a link).

-This link at $sam_distro/sam is another change.  In order to simplify
the organization of SAM into separate kernel and application, I put the
the contents of the kernel in its own dir (/opt/sam-krnl).  The
contents of the application still goes in /opt/SAM.  The link at
/opt/SAM/sam points to /opt/sam-krnl.  The sam link is useful, because
it allows me to keep documentation and code unchanged.

The above is the installed configuration for ordinary users. For myself
I have complicated things with a few more links.  It still appears (to
the software) to be as described, but my actual arrangement uses _mods
dirs.  This complicates the making of packages a little, as I will need
to temporarily change out the _mods stuff to make the packages (which
reflect the actual link arrangement, right?).

-Another change was switching to GPL version 3.  I believe I can do
this, because I am the copyright holder.  This wasn't mentioned on the
GNU site.  Perhaps it is understood and off topic.  I found information
about this on the usenet at this url:

   http://groups.google.com/group/comp.os.linux.advocacy/browse_thread/thread/73ccdc6fa5cdf3ca/2df0f4e01907acfc?lnk=st&q=can+an+author+re-release+code+under+other+GPL&rnum=1#2df0f4e01907acfc

I found this by searching in Google Groups (groups.google.com) on

   can an author re-release code under other GPL

-I licensed the code of the application under GPL version 3 also.  It
was previously without detailed license.

-I used my SAM tools in sam_work to put copyright and copying permission
statements into all (hopefully) the code of the application. In doing this I
tried also to put the correct applicable years in the copyright statements. 
The GNU site says these should be the years the code was finished prior to a
release.  In the future I hope to do a better job of noting in the source
code the year when I modify the code so that there isn't a job later of
recreating this information.

Yet, I think I did a pretty good job.  I assumed changes had been made each
year, so I put in the copyright statement the subsequent years up to and
including 2007.

I'm not sure if this is right reasoning.  Does the copyright statement
need a year added only when changes are made?  Or for each release even
if changes were not made?  If the later, then what about archived code?

-I changed the naming of the informative files at the root of the
distribution.

-I changed the documentation to account for the new names of the
informative files and the sweeping changes.

070705

I made package sam-krnl-070705aa.

I did it as root in /opt/sam-krnl__mods, thusly:

sudo k_mgenpk current /opt/sam-krnl 070705aa

I burned a disk for my own archives and one to give to Brian Beisigl.



To Do (keep this current until I make the next package):

-I need to clean up after making the new pause.  In particular function
readchar.f should be removed (put it in lessons).  And I need to remove
references to David Tansley in my documentation.  And to complete the
task, I should remove the old pause from my $sam/junk dir.



080105

I rewrote script $sam/pause.  Loki Harfagr gave me a tip about using

   read -p "Press any key to continue..." -sn 1 answer

It seems to work OK.  So I built on that idea.

080108

I removed #!/bin/sh from all the functions in $sam.  Because they get
sourced and because they have no execute permission, they don't need
#!/bin/sh (see doink and oink in bash in my lessons).

That's

   about.f, bound.f, bye.f, dofun, hello.f, pop.f, push.f, readchar.f
   (even though it is to be removed), sam_shel.f, upfun.f.

And while I was at it I went into $sam/about and cleaned up.  I made
the function definitions there read-only and I removed #!/bin/sh from
them:

   author.sam, doc.sam, license.sam, redist.sam, warnty.sam

Then I made file menu.dat in dir about read-only.  And I did the same
in dir about/doc.

080108

I found and fixed a bug in $sam/about/author.sam.  The function
referred to file $sam/data/AUTHOR when it should have referred to
$sam/data/author.dat.

080108

I made some more changes in $sam/data.  I updated file copyr.dat to
include 2008.  I made files copyr.dat and author.dat read-only.

080108

I removed references to Tansley from $sam/README.  Correspondingly I
removed the two scripts based on Tansley's work.  They are pause (the
old pause--relegated to junk) and readchar.f.  I put them in bash in
lessons.

080110

I fixed a "Buffer size exceeded" message in $sam/set_filt.exe by
increasing BUFFSIZE from 1000 to 2000.  Also I changed two error
messages so now all of them reveal that they are coming from
set_filt.exe.

080118

I updated the $sam_distro/slack-desc.txt Slackware package description
file.

I changed the name of the old change log file from changelog.txt1 to
changelog.tx1.  Now it is consistant with the naming in SAM-GLS and
elsewhere in my work.

100103

I changed $sam/push.f by including use of a new filter called slice. 
This is meant to solve a problem with certain values for environment
variables.  I noticed this first with variable TERMCAP.  Read about the
problem in my sam_l notes.

***

I made a script called slice and put it in $sam. See notes above.

110108

I fixed what I think was a bug regarding sam_message.  The code now
checks for the existence of "$sam_message" and if it is executable it
is invoked.  Before it checked it lacked the quotes and the "$".  I
don't see how that could have been right.

110110

I moved love.f from the tool dir to the kernel dir (in /opt/SAM_pkgs).
It was used by main/tips/begin and so is an important part of the steps
the new user goes through to get familiar with SAM.  Putting it in
kernel helps the user to get started by allowing him to run
/opt/SAM/begin with just the main and kernel packages (no tool
package).  Whether the user needs the tool package to take the next
steps after this depends on what direction he goes.  So I thought this
was a good place to draw a line dividing what goes into the kernel and
what doesn't.  Actually, I think love.f was in the kernel a few years
ago.  Deja vu.

110115

I made no changes since the last release, 110112aa.

*** released 110116aa ***

110818

In the following I replaced "source" with "." to improve POSIX
compliance:

   dofun
   pop.f
   upfun.f

I replaced "source" with "." in a comment in slice.

110820

In sam_core I replaced the use of bash with /bin/bash and added
comments about possible optional use of /bin/sh.

I'm keeping bash, because I need it, but I'm using "/bin/bash", because
that gives better code.

111221

I worked on pop.f, push.f, slice, and dofun and removed exp_filt.exe. 
What I did to pop.f, push.f, slice and dofun was trivial and didn't
change how they run.  I just added or changed some comments in the
code.

In push.f I removed the use of exp_filt.exe.  exp_filt.exe didn't do
any good, and in some cases causes trouble.  So I removed its use.  See
comments in the push.f script.

I also removed file exp_filt.exe.  Since it isn't being used it isn't
needed.  I kept the source in source, however, for future reference.

111223

I worked on sam_core.  It now references #!/bin/sh at the top of
scripts, but inside sam_core it uses /bin/bash.

When I tried using /bin/sh inside sam_core I was forced to use double
shells instead of --rcfile.  In this mode X sometimes could not
open 5 hosts.  I don't know why.  Perhaps it was a memory issue, since
without --rcfile I had to use double shells.

111223

I'm preparing to release again.  Note the changes above, since some
have occurred since the last release, 110116aa.  I have also made these 
changes since the last release:


I replaced "source" with "." in sam_core.

I replaced "declare -fx" with "export -f" in dofun, sam_core.

I removed exp_filt.exe from the dir and removed its use in push.f.

I replaced "declare -x" with "export" in push.f.

I replaced "-a" with "-e" in sam_core.

I added a comment about possible future use of /bin/sh instead of
/bin/bash in sam_core.

111231

I replaced "#!/bin/sh" with "#!/bin/bash" in all the scripts of this
package.  Specifically I did it to these files:

   menu
   pause
   sam_view
   slice

120104

I noticed a bug today.  This produced error messages:

   push
   pop
   menu

I haven't finsished tracking it down yet, but this fixed it:

   I remade exp_filt.exe
   I put exp_filt.exe back into push.f

I wonder how this impacts use of SAM in Ubuntu?  And I wonder what it
means?  I thought that this (removing exp_filt.exe) was safe to do.

120417

I added unlove.f.  This does the opposite of love.  It causes a shell
to have automatic menus by unsetting sh_flag.  It also fixes the
sam_symbol and the prompt.  It runs hello first.

120808

I changed the pragma back to #!/bin/sh in 

   menu
   pause 
   sam_view
   slice

The intent was to change it back everywhere.  I no longer need to use
#!/bin/bash.

120811

I made some changes to

   README

120813

I removed  "$echo $sam_bold" from sam_core.  What was that for?

140316

I made a new set_filt.c in source2. I put the resulting

   set_filt.exe

in $sam.

I made this to try and avoid an error message (about an unmatched
single (or double?) quote.  I was getting when running SAM in Ubuntu. 
See my notes (somewhere) about how to run SAM in Ubuntu.  It seems the
changes were needed to process the results of the set command
correctly.

I think I solved the problem by putting an escape in the place in my
data that was triggering the error, and I put code in set_filt.c to use
the escape.

(I think that's what it was.  I'm writing this two years later.  There
are notes in the code.)

150331

I made minor edits to README.

140409

I made a new set_filt.c in source3.  I put the resulting

   set_filt.exe

in $sam.

Again I was getting an error message about an unmatched single quote. 
I found where it was coming from.  I fixed the problem.  It wasn't
really an unmatched single quote.  It was an apostrophe in a bash echo
statement in a .sam file that I wrote.  It didn't cause bash any
trouble, so I decided to make set_filt.c more like bash.  See comments
in the code.

170816

   git_readme.txt, .git, cachmet2:

      These are new.  I used them to upload to a SourceForge git
      repository.

180407

   go/sam:

      I removed $sam_temp_dir from pold.  I hope it won't be missed.  I
      don't think it was needed, and I don't think it was a good idea
      to have it there.

210801

   lean.f:

      I added this function definition it does what was previously done
      by $sam_root/bclean.

   sam_shel.f:

      I added the invocation of lean to this function.

210912

   bye.f:

      I made a small change.  The function now invokes the
      sam_bye_command using eval.

230426

   README-K :

      I made some edits.  These edits were made to the text which
      explains what SAM does to PATH.

230918

   bound.sam, pop.sam, push.sam, upfun.sam:

      I edited some comments.

   pop.sam:

      I changed the code slightly.  I was getting an error when pop was
      used in a dir that had a space in its name.  See the description
      of the change in the code comments.

230925

      sam_core:

         I changed the winking SAM.

231007

      data/copyr.dat:

         I made some edits.

231022

   I made changes to the comments at the top of very nearly all the
   of this distribution.

   And from this point forward I will try not to include any
   directories called "junk" in the distribution.

231022

   source:

      I rearranged the contents this directory and cleaned it up.

   exp_filt.exe, mk_unset.exe, set_filt.exe:

      I revised these scripts to account for the changes to source.


231108

   upfun.sam:

      I made a minor change.  Although minor it may have significant
      effects.  I swapped the order of two statements.  The result is
      such that, in the event of conflicting function definitions in
      $level and $sam_add, those in $level will now prevail.

      This parallels the behavior of conflicting executables in $level
      and $sam_add.

231230

   sam_view:

      I edited a comment.

   menu.dat:

      I added a description of sam_view.  Previously sam_view existed
      in this menu but was not described in menu.dat.

240706

   dofun:

      I modified this function definition.

   reverse;

      I wrote this script.

240707

   dofun:

      I modified this function definition.

   reverse:

      I moved this script to $lib/handy0, as it is no longer needed by
      SAM.

   menu.dat:

      I made updates to menu.dat to reflect that reverse is not in this
      menu and dofun now provides debug output.

240801

   data/copyr.dat:

      I updated this file by adding 2024 to the copyright information. 
      Also I removed the long list of older copyright dates.  I'm not
      aware of any useful purpose they would serve, and this list is
      getting long.
