Source Code

2004-02-02
2004-03-12
  • James Bonfield
    James Bonfield
    2004-02-02

    OK I see lots of people have downloaded the source already. You're probably right now cursing and trying to work out how on earth to compile this beast! You have my sympathy - it's all a bit messy.

    You can probably ignore recompiling the Tcl, Tk, etc libraries if the Staden Package has already been built for your platform; just copy the libraries from a pre-built version.

    However for now I'll simply add that this is something I plan on simplifying to at least a certain degree. It's also not worth spending TOO long on this version of the source as there will be new code checked in (to a CVS tree) soon I hope.

    James

     
    • David Bauer
      David Bauer
      2004-03-11

      Hello James,

      I'm trying to get the source compiled.
      I got stuck on Solaris but are nearly ready on FreeBSD. There is one minor problem left.
      The parts using itcl and itk are not running.
      Other parts like gap4 and trev are fine.
      From pregap I get the appended error message.
      Could you please give me any hint what could be wrong here ?

      Thanks so lot,
      David.

      > pregap4
      unknown namespace in import pattern "itcl::*"
          while executing
      "namespace import itcl::*"
          (file "/usr/home/sg46237/Biosoft/Staden/staden-src-rel-1-4/linux-bin/../tables/iwidgetsrc" line 12)
          invoked from within
      "source /usr/home/sg46237/Biosoft/Staden/staden-src-rel-1-4/linux-bin/../tables/iwidgetsrc"
          ("uplevel" body line 1)
          invoked from within
      "uplevel #0 [list source $i]"
          (procedure "SetDefaults" line 42)
          invoked from within
      "SetDefaults $tdir ${name}rc ${name}_defs"
          (procedure "simple_load_package" line 36)
          invoked from within
      "simple_load_package $tcldir"
          (procedure "load_package" line 5)
          invoked from within
      "load_package iwidgets"
          invoked from within
      "if {!$interactive} {
          init_modules
          if {[check_modules 1] > 0} {
              verror ERR_WARN check_modules \             "One or more modules have not been config..."
          (file "/usr/home/sg46237/Biosoft/Staden/staden-src-rel-1-4/linux-bin/../lib/pregap4/pregap4.tcl" line 108)

       
    • James Bonfield
      James Bonfield
      2004-03-11

      This messages comes from not being able to find IncrTcl, or maybe finding an older version.

      I have not tried building the package using the latest itcl release, so I do not know if this works.

      The version numbers of all these external libraries is a little bit haphazaard. I need to go through checking that the latest and greatest of everything is still compatible with the staden package code.

       
      • David Bauer
        David Bauer
        2004-03-11

        From what I see is, it should run against the itcl3.3 copy which comes with the package.
        (I do not have any other itcl anywhere else on the system).
        In iwedgetsrc we have
        set env(ITCL_LIBRARY) $env(STADLIB)/itcl3.3
        And STADLIB points to:
        /usr/....../staden-src-rel-1-4/lib
        So this looks OK.
        What I do not understand is why then the
        namespace import itcl::*
        fails.

         
    • David Bauer
      David Bauer
      2004-03-12

      So I have a partial solution for pregap4 which maybe helps to track down the problem.
      I installed the itcl/itk 2.3 in the systems default directories. Then in tables/iwidgetsrc I removed the load package itcl3.3/itk3.3 and namespace import statements. Finally removed the $STADLIB/itcl3.3 and itk3.3 directories and replaced them by symbolic links to /usr/local/lib/itcl3.2 resp. itk3.2.

      pregap4 is OK.

      Spin seems to need some functions which are not present in 3.2 (Fails with: 'invalid command name class').

      Cheers,
      David.

       
    • James Bonfield
      James Bonfield
      2004-03-12

      My guess is that you also need the itcl3.3 C code (ie the compiled dynamic libraries) for this to work. Certainly keeping the C library version and the interpreted itcl library in sync makes sense.

      There was some reason we had to go to itcl3.3, but I forget what! I think it was probably the macosx port that forced it on us.

      Our itcl3.3 source tree was taken from CVS as itcl is still under going active development, but hadn't released a new 'package' for 2 years. I see that the 'source' release is 3.2.1, but their binary package for windows is 3.3b1. There's no branch or tag for this that I can see in the itcl CVS, so I guess we're stuck with either a hack (as I used to get 3.3) or using 3.2.1 and figuring out what it causes problems with in Spin.

      Incidently you can test the hypothesis that it'll work if you had itcl3.3 library binaries by copying the solaris ones from the previous built staden package release.

      James