Lugaru's Epsilon
Programmer's
Editor

Context:
Epsilon User's Manual and Reference
   Commands by Topic
      . . .
      Simple Customizing
         Bindings
         Brief Emulation
         CUA Keyboard
         . . .
         Using National Characters
      Advanced Topics
         Changing Commands with EEL
         Updating from an Old Version
            Importing Color Settings
            Updating from Epsilon 4
         Keys and their Representation
         Altering Keys
         . . .
      Miscellaneous

Previous   Up    Next
Changing Commands with EEL  Commands by Topic   Importing Color Settings


Epsilon User's Manual and Reference > Commands by Topic > Advanced Topics >

Updating from an Old Version

A new version of Epsilon often has a different internal format for the bytecode and state files it uses. If you have customized Epsilon, you'll probably want to incorporate your changes into the new version. This section describes how to do this with a minimum of trouble. If you want to preserve your changes, please read it before overwriting your existing copy of Epsilon with a new version.

If you've changed Epsilon by writing commands in Epsilon's extension language, EEL, you should recompile them using the new EEL compiler and load them into Epsilon. (If some of your commands have cursor key bindings, and you want to update from version 4.4 or earlier, use the eel-change-key-names command on your EEL files before compiling them, as described at the end of this section.) If some of the built-in functions or subroutines you call have changed, you will have to modify your commands to take this into account. Look in the file "fromversion" for a list of changes, where version represents the old version number. (Find the closest file to your version. If you had version 3.23, for example, you would use the file "from32", since we do not provide a "from323"). The installation process normally installs these files in the changes subdirectory within Epsilon's main directory.

Other types of changes you might make include setting variables, changing bindings, or adding macros. To move these changes to the new version requires several steps.

  • Start the old version of Epsilon as you do normally.

  • To update from a Unix version of Epsilon prior to version 4.05, issue the key-switch command and give the name "xxxx" when it asks for the terminal to switch to. This ensures that Epsilon records your key bindings in a terminal-independent manner.

  • Run the list-all command. Epsilon provides this command starting with version 4.0. If you have an older version of Epsilon, see Updating from Epsilon 4.

    This will make a list of all the variables, bindings, macros, and functions defined in your old version of Epsilon.

  • Save the result in a file. We will assume you wrote it to a file named "after".

  • If you wish to transfer customized color settings, run the export-colors command to construct a mycolors.e file. If you're running a version of Epsilon prior to 9.0, and for more details, see Importing Color Settings.

  • You should no longer need the old version of Epsilon, so you can now install the new version in place of the old one if you wish. Or you can install the new version in a separate directory.

  • Locate the "changes" subdirectory within Epsilon's main directory.

For each old version of Epsilon, you'll need several files in the steps below. In the description that follows, we will assume that you want to move from Epsilon 9.0 to this version, and will use files with names like list90.std. Substitute the correct file name if you have a different version (for example, list10.std to upgrade from Epsilon 10).

  • Locate the file in the changes subdirectory from the new version of Epsilon with a name like list90.std. It resembles the "after" file, but comes from an unmodified copy of that version of Epsilon. We will call this the "before" file. If you have a very old version for which there is no .std file, see Updating from Epsilon 4 to make one.

  • Start the new version of Epsilon. Run the list-changes command. It will ask for the names of the "before" and "after" files, and will then make a list of differences between the files, a "changed" file. When it finishes, you will have a list of the changes you made to the old version of Epsilon, in the format used by the list-all command. Edit this to remove changes you don't want in the new version, and save it.

  • To update from version 4.4 or earlier, load the bytecode file called newkeys.b in the changes subdirectory, using the load-bytes command on key F3. Now you can run the change-key-names command to convert any old-style key names such as N-3 to their new names (in this case, <PgDn>).

  • Run the load-changes command, and give it the name of the "changed" file from the previous step. It will load the changes into Epsilon. You can define commands, subroutines, and some variables only from a compiled EEL file, not via load-changes. If any of these appear in your changed file, Epsilon will add a comment after that line, stating why it couldn't make the change.

  • Use the write-state command to save your new version of Epsilon. (Epsilon will automatically make a backup copy of your old state file.)

Note that this procedure will not spot changes made in .e files, only those made to variables, bindings or macros. It will notice if you have defined a new command, but not if you have modified an existing command.

The above procedure uses several commands. The list-all command lists the current state of Epsilon in text form, mentioning all commands and subroutines, and describing all key bindings, macros, and variables. The list-changes command accepts the names of the "before" and "after" files produced by list-all, and runs the compare-sorted-windows command on them to make a list of the lines in "after" that don't match a line in "before".

Finally, the load-changes command reads this list of differences and makes each modification listed. It knows how to create variables, define macros, and make bindings, but it can't transfer extension-language commands. You'll have to use the new EEL compiler to incorporate any EEL extensions you wrote.



Previous   Up    Next
Changing Commands with EEL  Commands by Topic   Importing Color Settings


Lugaru Copyright (C) 1984, 2020 by Lugaru Software Ltd. All rights reserved.