Changeset 77ff8e in git


Ignore:
Timestamp:
Oct 15, 1998, 4:08:43 PM (26 years ago)
Author:
Kai Krüger <krueger@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c7af8613769b29c741d6c338945669719f1fc4f8')
Children:
db242b128be30aaa1380dfedb4f993424bf7ce50
Parents:
7ae776f0df0c8b0ecce7a1639acf874949740c78
Message:
 	* ChangeLog extra.cc grammar.y ipid.cc ipid.h iplib.cc
 	* ipshell.cc ipshell.h mod2.h.in ring.cc structs.h tesths.cc
          Replaced ring *iiLocalRing[] by a stack (class namerec)
          To use old method define USE_IILOCALRING in mod2.h
          Old method incompatible with HAVE_NAMESPACES!


git-svn-id: file:///usr/local/Singular/svn/trunk@2577 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • Singular/ChangeLog

    r7ae776 r77ff8e  
     1Thu Oct 15 15:54:05 MEST 1998 <krueger@mathematik.uni-kl.de>
     2        * extra.cc,grammar.y,ipid.cc,ipid.h,iplib.cc,ipshell.cc
     3        * ipshell.h,ring.cc,structs.h,tesths.cc,mod2.h.in
     4          Replaced ring *iiLocalRing[] by a stack (class namerec)
     5          To use old method define USE_IILOCALRING in mod2.h
     6          Old method incompatible with HAVE_NAMESPACES!
     7       
    181998-10-14  Olaf Bachmann  <obachman@mathematik.uni-kl.de>
    29
  • Singular/extra.cc

    r7ae776 r77ff8e  
    22*  Computer Algebra System SINGULAR      *
    33*****************************************/
    4 /* $Id: extra.cc,v 1.68 1998-10-15 11:45:51 obachman Exp $ */
     4/* $Id: extra.cc,v 1.69 1998-10-15 14:08:28 krueger Exp $ */
    55/*
    66* ABSTRACT: general interface to internals of Singular ("system" command)
     
    779779    }
    780780    else
     781#endif /* HAVE_NAMESPACES */
    781782/*==================== nsstack ===================================*/
    782783    if(strcmp(sys_cmd,"nsstack")==0)
     
    784785      namehdl nshdl = namespaceroot;
    785786      for( ; nshdl->isroot != TRUE; nshdl = nshdl->next) {
    786         Print("NSstack: %s:%d\n", nshdl->name, nshdl->lev);
    787       }
    788       Print("NSstack: %s:%d\n", nshdl->name, nshdl->lev);
    789       return FALSE;
    790     }
    791     else
    792 #endif /* HAVE_NAMESPACES */
     787        Print("NSstack: %s:%d, nesting=%d\n", nshdl->name, nshdl->lev, nshdl->myynest);
     788      }
     789      Print("NSstack: %s:%d, nesting=%d\n", nshdl->name, nshdl->lev, nshdl->myynest);
     790      return FALSE;
     791    }
     792    else
    793793/*==================== proclist =================================*/
    794794    if(strcmp(sys_cmd,"proclist")==0)
  • Singular/grammar.y

    r7ae776 r77ff8e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: grammar.y,v 1.48 1998-09-14 13:59:28 Singular Exp $ */
     4/* $Id: grammar.y,v 1.49 1998-10-15 14:08:29 krueger Exp $ */
    55/*
    66* ABSTRACT: SINGULAR shell grammatik
     
    12851285                    //}
    12861286                  }
     1287#ifdef USE_IILOCALRING
    12871288                  iiLocalRing[myynest-1]=IDRING(h);
     1289#else
     1290                  namespaceroot->next->currRing=IDRING(h);
     1291#endif
    12881292                }
    12891293                else
  • Singular/ipid.cc

    r7ae776 r77ff8e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipid.cc,v 1.17 1998-09-24 09:59:44 Singular Exp $ */
     4/* $Id: ipid.cc,v 1.18 1998-10-15 14:08:31 krueger Exp $ */
    55
    66/*
     
    2727#include "ipid.h"
    2828
    29 #ifdef HAVE_NAMESPACES
    3029namehdl namespaceroot = NULL;
    3130#define TEST
    32 #else /* HAVE_NAMESPACES */
     31#ifndef HAVE_NAMESPACES
    3332idhdl idroot = NULL;
    3433#endif /* HAVE_NAMESPACES */
     
    7877  IDLEV(h)  = lev;
    7978#ifdef HAVE_NAMESPACES
    80   h->ref    = 1;
     79  h->ref    = 0;
    8180#endif /* HAVE_NAMESPACES */
    8281  IDNEXT(h) = this;
     
    287286  else
    288287  {
     288    //if(t==PACKAGE_CMD) printf("Achtung\n");
    289289    idhdl s=IDROOT;
    290290    while ((s!=h) && (s!=NULL)) s=s->next;
     
    315315
    316316    // any objects defined for this ring ?
    317     if (((IDTYP(h)==PACKAGE_CMD) || (IDRING(h)->ref<=0))
     317    if (((IDTYP(h)==RING_CMD) && (IDRING(h)->ref<=0))
    318318    &&  (IDRING(h)->idroot!=NULL))
    319319    {
     
    650650#ifdef HAVE_NAMESPACES
    651651    *h = namespaceroot->get(i, myynest);
     652    if(*h == NULL) { *h = namespaceroot->get(i, myynest, TRUE); }
    652653#else /* HAVE_NAMESPACES */
    653654#endif /* HAVE_NAMESPACES */
     
    685686}
    686687
    687 #ifdef HAVE_NAMESPACES
    688688char *getnamelev()
    689689{
     
    697697  //printf("PUSH: put entry (%s) on stack\n", name);
    698698  namehdl ns = (namerec *)Alloc0(sizeof(namerec));
     699  extern int myynest;
    699700  ns->next   = this;
    700701  if(this==NULL && !init)
     
    705706  if(init)
    706707  {
    707     ns->pack   = (ip_package *)Alloc0(sizeof(ip_package));
    708     ns->isroot = TRUE;
    709     ns->lev    = 1;
     708    ns->next    = NULL;
     709#ifdef HAVE_NAMESPACES
     710    ns->pack    = (ip_package *)Alloc0(sizeof(ip_package));
     711#endif /* HAVE_NAMESPACES */
     712    ns->isroot  = TRUE;
     713    ns->lev     = 1;
     714    ns->myynest = 0;
    710715  }
    711716  else
    712717  {
     718    extern ring currRing;
     719#ifdef HAVE_NAMESPACES
    713720    ns->pack   = pack;
     721#endif /* HAVE_NAMESPACES */
    714722    ns->lev    = this->lev+1;
    715   }
    716   ns->name   = mstrdup(name);
    717 
    718 
     723    ns->myynest = myynest+1;
     724    this->currRing = currRing;
     725    //printf("Saving Ring %x, %x\n", this->currRing, currRing);
     726  }
     727  ns->name    = mstrdup(name);
     728 
     729 
    719730  //if(ns->isroot) Print("PUSH: Add root NameSpace\n");
     731  //ns->currRing = currRing;
     732  //ns->currRingHdl = currRingHdl;
     733  //printf("Test 1\n");
    720734  if(ns->isroot) ns->root=ns; else ns->root = this->root;
    721735  namespaceroot = ns;
     
    730744  }
    731745#endif
     746  //Print("NSPUSH: done\n");
    732747  return(namespaceroot);
    733748}
     
    749764}
    750765
     766#ifdef HAVE_NAMESPACES
    751767idhdl namerec::get(const char * s, int lev, BOOLEAN root)
    752768{
  • Singular/ipid.h

    r7ae776 r77ff8e  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: ipid.h,v 1.16 1998-09-24 09:59:45 Singular Exp $ */
     6/* $Id: ipid.h,v 1.17 1998-10-15 14:08:32 krueger Exp $ */
    77/*
    88* ABSTRACT: identfier handling
     
    7575{
    7676  idhdl      idroot; /* local objects */
     77  short      ref;
    7778};
    7879
     
    138139};
    139140
    140 #ifdef HAVE_NAMESPACES
    141141class namerec {
    142142  public:
     
    144144  namehdl    root;
    145145  package    pack;
    146   idhdl      currRingHdl;
    147146  char *     name;
    148147  int        lev;
     
    151150#define NSPACK(a) ((a)->pack)
    152151
     152  int        myynest;
     153  idhdl      currRingHdl;
     154  ring       currRing;
    153155
    154156 namerec()  { memset(this,0,sizeof(*this)); }
     
    160162
    161163extern namehdl namespaceroot;
     164#ifdef HAVE_NAMESPACES
    162165#  define IDROOT (NSROOT(namespaceroot))
    163166#else /* HAVE_NAMESPACES */
  • Singular/iplib.cc

    r7ae776 r77ff8e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: iplib.cc,v 1.33 1998-08-25 13:33:19 krueger Exp $ */
     4/* $Id: iplib.cc,v 1.34 1998-10-15 14:08:34 krueger Exp $ */
    55/*
    66* ABSTRACT: interpreter: LIB and help
     
    2828                                    BOOLEAN pstatic = FALSE);
    2929#endif /* HAVE_LIBPARSER */
     30#define NS_LRING namespaceroot->next->currRing
    3031
    3132char *iiConvName(char *p);
     
    271272}
    272273
     274#ifdef USE_IILOCALRING
    273275ring    *iiLocalRing
    274276#ifdef TEST
     
    276278#endif
    277279                   ;
     280#endif
    278281sleftv  *iiRETURNEXPR
    279282#ifdef TEST
     
    286289static void iiShowLevRings()
    287290{
     291#ifdef USE_IILOCALRING
    288292  int i;
    289293  for (i=1;i<=myynest;i++)
     
    294298    Print("\n");
    295299  }
     300#endif
     301  {
     302    namehdl nshdl;
     303    for(nshdl=namespaceroot; nshdl->isroot != TRUE; nshdl = nshdl->next) {
     304      Print("%d lev %d:",nshdl->lev, nshdl->myynest);
     305      if (nshdl->currRing==NULL) PrintS("NULL");
     306      else                       Print("%d",nshdl->currRing);
     307      Print("\n");
     308    }
     309    Print("%d lev %d:",nshdl->lev, nshdl->myynest);
     310    if (nshdl->currRing==NULL) PrintS("NULL");
     311    else                       Print("%d",nshdl->currRing);
     312    Print("\n");
     313  }
    296314  if (currRing==NULL) PrintS("curr:NULL\n");
    297315  else                Print ("curr:%d\n",currRing->no);
     
    306324                                   iiRETURNEXPR_len*sizeof(sleftv),
    307325                                   (iiRETURNEXPR_len+16)*sizeof(sleftv));
     326#ifdef IILOCALRING
    308327    iiLocalRing=(ring *)ReAlloc(iiLocalRing,
    309328                                   iiRETURNEXPR_len*sizeof(ring),
    310329                                   (iiRETURNEXPR_len+16)*sizeof(ring));
     330#endif
    311331    iiRETURNEXPR_len+=16;
    312332  }
     
    316336  int err;
    317337  procinfov pi = IDPROC(pn);
    318 #ifdef HAVE_NAMESPACES
    319338  char *plib = iiConvName(pi->libname);
     339#ifdef HAVE_NAMESPACES
    320340  idhdl ns = namespaceroot->get(plib,0, TRUE);
     341  if(pi->is_static) {
     342    if(ns==NULL) {
     343      Werror("'%s::%s()' 1 is a local procedure and cannot be accessed by an user.",
     344             plib, pi->procname);
     345      FreeL(plib);
     346      return NULL;
     347    }
     348    if(strcmp(plib, namespaceroot->name)!= 0) {
     349      Werror("'%s::%s()' 2 is a local procedure and cannot be accessed by an user.",
     350             plib, pi->procname);
     351      FreeL(plib);
     352      return NULL;
     353    }
     354  }
    321355  FreeL(plib);
    322356  if(ns != NULL)
     
    327361  else
    328362  {
    329     namespaceroot->push(namespaceroot->root->pack, "toplevel");
     363    namespaceroot->push(namespaceroot->root->pack, "Top");
    330364    //printf("iiMake_proc: staying in TOP-LEVEL\n");
    331365  }
     
    337371    return NULL;
    338372  }
     373  namespaceroot->push(NULL, plib);
    339374#endif /* HAVE_NAMESPACES */
    340375  iiCheckNest();
     376#ifdef USE_IILOCALRING
    341377  iiLocalRing[myynest]=currRing;
     378#endif
    342379  iiRETURNEXPR[myynest+1].Init();
    343380  if (traceit&TRACE_SHOW_PROC)
     
    349386  if (traceit&TRACE_SHOW_RINGS) iiShowLevRings();
    350387#endif
    351 #if 1
    352   if(pi->language == LANG_SINGULAR)
    353   {
    354     err=iiPStart(pn,sl);
    355   }
    356   else if(pi->language == LANG_C)
    357   {
    358     leftv res = (leftv)Alloc0(sizeof(sleftv));
    359     res->rtyp=NONE;
    360     err = (pi->data.o.function)(res, sl);
    361     iiRETURNEXPR[myynest+1].Copy(res);
    362     Free((ADDRESS)res, sizeof(sleftv));
    363   }
    364 #else
    365388  switch (pi->language)
    366389  {
    367     case LANG_SINGULAR: err=iiPStart(pn,sl); break;
    368     case LANG_C: leftv res = (leftv)Alloc0(sizeof(sleftv));
    369       err = (pi->data.o.function)(res, sl);
    370       iiRETURNEXPR[myynest+1].Copy(res);
    371       Free((ADDRESS)res, sizeof(sleftv));
    372       break;
    373     default: err=TRUE;
    374   }
    375 #endif
     390    case LANG_NONE:
     391                 err=TRUE;
     392                 break;
     393               
     394    case LANG_SINGULAR:
     395                 err=iiPStart(pn,sl);
     396                 break;
     397    case LANG_C:
     398                 leftv res = (leftv)Alloc0(sizeof(sleftv));
     399                 err = (pi->data.o.function)(res, sl);
     400                 iiRETURNEXPR[myynest+1].Copy(res);
     401                 Free((ADDRESS)res, sizeof(sleftv));
     402                 break;
     403  }
    376404  if (traceit&TRACE_SHOW_PROC)
    377405  {
     
    387415    iiRETURNEXPR[myynest+1].Init();
    388416  }
     417#ifdef HAVE_NAMESPACES
     418  if (namespaceroot->next->currRing != currRing)
     419  //if (iiLocalRing[myynest] != currRing)
     420  {
     421    //Print("RING changed?\n");
     422   
     423    if (((iiRETURNEXPR[myynest+1].Typ()>BEGIN_RING)
     424      && (iiRETURNEXPR[myynest+1].Typ()<END_RING))
     425    || ((iiRETURNEXPR[myynest+1].Typ()==LIST_CMD)
     426      && (lRingDependend((lists)iiRETURNEXPR[myynest+1].Data()))))
     427    {
     428      //idhdl hn;
     429      char *n;
     430      char *o;
     431      if (namespaceroot->next->currRing!=NULL) o=rFindHdl(namespaceroot->next->currRing,NULL, NULL)->id;
     432      //namespaceroot->currRingHdl->id;
     433      else                            o="none";
     434      if (currRing!=NULL)             n=rFindHdl(currRing,NULL, NULL)->id; //currRingHdl->id;
     435      else                            n="none";
     436      Werror("ring change during procedure call: %s -> %s",o,n);
     437      iiRETURNEXPR[myynest+1].CleanUp();
     438      err=TRUE;
     439    }
     440    if (namespaceroot->next->currRing!=NULL)
     441    {
     442      rSetHdl(rFindHdl(namespaceroot->next->currRing,NULL, NULL),TRUE);
     443      iiLocalRing[myynest]=NULL;
     444      namespaceroot->next->currRing = NULL;
     445    }
     446    else
     447    { currRingHdl=NULL; currRing=NULL; }
     448  }
     449  else
     450  {
     451    if(currRingHdl == NULL)
     452    {
     453      //printf("iplib.cc: currRingHdl is NULL\n");
     454      //currRingHdl = namespaceroot->currRingHdl;
     455    }
     456  }
     457#else /* HAVE_NAMESPACES */
     458#ifdef USE_IILOCALRING
     459  if(namespaceroot->next->currRing != iiLocalRing[myynest]) printf("iiMake_proc: 1 ring not saved\n");
    389460  if (iiLocalRing[myynest] != currRing)
    390461  {
     
    409480      rSetHdl(rFindHdl(iiLocalRing[myynest],NULL, NULL),TRUE);
    410481      iiLocalRing[myynest]=NULL;
     482      namespaceroot->next->currRing = NULL;
    411483    }
    412484    else
    413485    { currRingHdl=NULL; currRing=NULL; }
    414486  }
     487#else /* USE_IILOCALRING */
     488  if (NS_LRING != currRing)
     489  {
     490    if (((iiRETURNEXPR[myynest+1].Typ()>BEGIN_RING)
     491      && (iiRETURNEXPR[myynest+1].Typ()<END_RING))
     492    || ((iiRETURNEXPR[myynest+1].Typ()==LIST_CMD)
     493      && (lRingDependend((lists)iiRETURNEXPR[myynest+1].Data()))))
     494    {
     495      //idhdl hn;
     496      char *n;
     497      char *o;
     498      if (NS_LRING!=NULL) o=rFindHdl(NS_LRING,NULL, NULL)->id;
     499      else                            o="none";
     500      if (currRing!=NULL)             n=rFindHdl(currRing,NULL, NULL)->id;
     501      else                            n="none";
     502      Werror("ring change during procedure call: %s -> %s",o,n);
     503      iiRETURNEXPR[myynest+1].CleanUp();
     504      err=TRUE;
     505    }
     506    if (NS_LRING!=NULL)
     507    {
     508      rSetHdl(rFindHdl(NS_LRING,NULL, NULL),TRUE);
     509      NS_LRING=NULL;
     510    }
     511    else
     512    { currRingHdl=NULL; currRing=NULL; }
     513  }
     514#endif /* USE_IILOCALRING */
     515#endif /* HAVE_NAMESPACES */
    415516  if (iiCurrArgs!=NULL)
    416517  {
     
    420521    iiCurrArgs=NULL;
    421522  }
    422 #ifdef HAVE_NAMESPACES
     523// #ifdef HAVE_NAMESPACES
    423524  namespaceroot->pop();
    424 #endif /* HAVE_NAMESPACES */
     525// #endif /* HAVE_NAMESPACES */
    425526  if (err)
    426527    return NULL;
     
    439540  newBuffer( example, BT_example, pi, pi->data.s.example_lineno );
    440541  iiCheckNest();
     542  namespaceroot->push(NULL, "");
     543  if(namespaceroot->next->currRing != currRing) printf("iiEStart: ring not saved\n");
     544#ifdef USE_IILOCALRING
    441545  iiLocalRing[myynest]=currRing;
     546#endif
    442547  if (traceit&TRACE_SHOW_PROC)
    443548  {
     
    455560    printf("leaving  -example- (level %d)\n",myynest);
    456561  }
     562#ifdef USE_IILOCALRING
    457563  if (iiLocalRing[myynest] != currRing)
    458564  {
     
    468574    }
    469575  }
     576#else /* USE_IILOCALRING */
     577  if (NS_LRING != currRing)
     578  {
     579    if (NS_LRING!=NULL)
     580    {
     581      rSetHdl(rFindHdl(NS_LRING,NULL, NULL),TRUE);
     582      NS_LRING=NULL;
     583    }
     584    else
     585    {
     586      currRingHdl=NULL;
     587      currRing=NULL;
     588    }
     589  }
     590#endif /* USE_IILOCALRING */
     591  namespaceroot->pop();
    470592  return err;
    471593}
     
    492614  }
    493615#ifdef HAVE_NAMESPACES
     616  int token;
     617 
     618  if(IsCmd(plib, &token)) {
     619    Werror("'%s' is resered identifier\n", plib);
     620    return TRUE;
     621  }
    494622  hl = namespaceroot->get("LIB",0, TRUE);
    495623#else /* HAVE_NAMESPACES */
     
    856984
    857985/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
     986char mytoupper(char c)
     987{
     988  if(c>=97 && c<=(97+26)) c-=32;
     989  return(c);
     990}
     991
     992/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
     993#if defined(WINNT)
     994#  define  FS_SEP '\\'
     995#elif defined(macintosh)
     996#  define FS_SEP ','
     997#else
     998#  define FS_SEP '/'
     999#endif
     1000
    8581001char *iiConvName(char *libname)
    8591002{
    860   int l=strlen(libname)+7;
    861   char *p = (char *)AllocL(l);
     1003  char *tmpname = mstrdup(libname);
     1004  char *p = strrchr(tmpname, FS_SEP);
    8621005  char *r;
    863 
    864   memset(p,0,l);
    865   //sprintf(p, "%s_init", libname);
    866   sprintf(p, "%s", libname);
    867   for(r=p; *r!='\0'; r++)
    868   {
    869     if(*r=='.') *r='_';
    870     if(*r==':') *r='_';
    871   }
    872   return(p);
     1006  if(p==NULL) p = tmpname;
     1007  else p++;
     1008  r = strchr(p, '.');
     1009  if( r!= NULL) *r = '\0';
     1010  r = mstrdup(p);
     1011  *r = mytoupper(*r);
     1012  // printf("iiConvName: '%s' '%s' => '%s'\n", libname, tmpname, r);
     1013  FreeL(tmpname);
     1014 
     1015  return(r);
    8731016}
    8741017
  • Singular/ipshell.cc

    r7ae776 r77ff8e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipshell.cc,v 1.24 1998-09-29 10:36:39 krueger Exp $ */
     4/* $Id: ipshell.cc,v 1.25 1998-10-15 14:08:35 krueger Exp $ */
    55/*
    66* ABSTRACT:
     
    800800          {
    801801            Warn("redefining %s",IDID(h));
     802#ifdef USE_IILOCALRING
    802803            if (iiLocalRing[0]==IDRING(h)) iiLocalRing[0]=NULL;
     804#else
     805            if (namespaceroot->root->currRing==IDRING(h))
     806              namespaceroot->root->currRing=NULL;
     807#endif
    803808            killhdl(h,root);
    804809          }
  • Singular/ipshell.h

    r7ae776 r77ff8e  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: ipshell.h,v 1.12 1998-05-12 14:59:20 Singular Exp $ */
     6/* $Id: ipshell.h,v 1.13 1998-10-15 14:08:37 krueger Exp $ */
    77/*
    88* ABSTRACT
     
    2525extern int     iiRETURNEXPR_len;
    2626extern sleftv *iiRETURNEXPR;
     27#ifdef IILOCALRING
    2728extern ring   *iiLocalRing;
     29#endif
    2830extern cmdnames cmds[];
    2931extern char *lastreserved;
  • Singular/mod2.h.in

    r7ae776 r77ff8e  
    138138#endif
    139139
     140/* Define to use old mechanismen for saving currRing with procedures
     141 * Does not work with HAVE_NAMESPACES enabled
     142 */
     143#undef USE_IILOCALRING
     144
    140145/* Define to use new namespaces techniks */
    141146#undef HAVE_NAMESPACES
     
    321326#endif /* not NDEBUG */
    322327
    323 
     328#ifdef HAVE_NAMESPACES
     329#  undef USE_IILOCALRING
     330#endif
    324331#endif /* MOD2_H  */
  • Singular/ring.cc

    r7ae776 r77ff8e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ring.cc,v 1.31 1998-08-25 13:33:21 krueger Exp $ */
     4/* $Id: ring.cc,v 1.32 1998-10-15 14:08:39 krueger Exp $ */
    55
    66/*
     
    862862    int j;
    863863    int *pi=r->order;
     864#ifdef USE_IILOCALRING
    864865    for (j=0;j<iiRETURNEXPR_len;j++)
    865866    {
     
    870871      }
    871872    }
     873#else /* USE_IILOCALRING */
     874    {
     875      namehdl nshdl = namespaceroot;
     876     
     877      for(nshdl=namespaceroot; nshdl->isroot != TRUE; nshdl = nshdl->next) {
     878        //Print("NSstack: %s:%d, nesting=%d\n", nshdl->name, nshdl->lev, nshdl->myynest);
     879        if (nshdl->currRing==r)
     880        {
     881          if (nshdl->myynest<myynest)
     882//            Warn("killing the basering for level %d/%d",nshdl->lev,nshdl->myynest);
     883          Warn("killing the basering for level %d",nshdl->myynest);
     884          nshdl->currRing=NULL;
     885        }
     886      }
     887      if (nshdl->currRing==r)
     888      {
     889        //Print("NSstack: %s:%d, nesting=%d\n", nshdl->name, nshdl->lev, nshdl->myynest);
     890        if (nshdl->myynest<myynest)
     891//          Warn("killing the basering for level %d/%d",nshdl->lev,nshdl->myynest);
     892          Warn("killing the basering for level %d",nshdl->myynest);
     893        nshdl->currRing=NULL;
     894      }
     895    }
     896#endif /* USE_IILOCALRING */
    872897    if (pi!=NULL)
    873898    {
  • Singular/structs.h

    r7ae776 r77ff8e  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: structs.h,v 1.14 1998-09-09 13:08:38 Singular Exp $ */
     6/* $Id: structs.h,v 1.15 1998-10-15 14:08:41 krueger Exp $ */
    77/*
    88* ABSTRACT
     
    4646class ssyStrategy;
    4747class procinfo;
    48 #ifdef HAVE_NAMESPACES
    4948class namerec;
    50 #endif
    5149#endif
    5250
     
    10098typedef ssyStrategy *      syStrategy;
    10199typedef procinfo *         procinfov;
    102 #ifdef HAVE_NAMESPACES
    103100typedef namerec *          namehdl;
    104 #endif
    105101#endif
    106102
  • Singular/tesths.cc

    r7ae776 r77ff8e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: tesths.cc,v 1.53 1998-10-15 11:46:08 obachman Exp $ */
     4/* $Id: tesths.cc,v 1.54 1998-10-15 14:08:43 krueger Exp $ */
    55
    66/*
     
    485485  }
    486486  /*. say hello */
     487  {
     488    idhdl h;
     489    namespaceroot->push(NULL, "Top", TRUE);
    487490#ifdef HAVE_NAMESPACES
    488   namespaceroot->push(NULL, "(ROOT)", TRUE);
     491    h=enterid(mstrdup("Top"), 0, PACKAGE_CMD, &IDROOT, TRUE);
     492    IDPACKAGE(h) = NSPACK(namespaceroot);
    489493#endif /* HAVE_NAMESPACES */
     494  }
    490495  if (BVERBOSE(0) && !feBatch)
    491496  {
Note: See TracChangeset for help on using the changeset viewer.