1. 07 Mar, 2010 1 commit
  2. 05 Mar, 2010 1 commit
    • Andrei Paskevich's avatar
      refactor theory.ml: · 1c21c061
      Andrei Paskevich authored
      - split clone code between contexts and theories
      
      - add [Dclone] declarations after cloned decls
      
      - account for the used theories in [ctxt_known]
        (the hash-consed [Duse] declaration is referenced)
      
      - provide use and clone for contexts with a distinct semantics:
      
          Context.use_export ctxt th :
              Copies the contents of [th] and its dependencies
              into [ctxt]. The [Duse] declarations are erased
              from the list of decls, but keeped in [ctxt_known],
              so that theories are not copied twice. Useful to
              build flat contexts.
      
          Context.clone_export ctxt th :
              Clones the contents of [th] into [ctxt]. Dependencies
              of [th] are copied, too. Erases the [Duse] declarations,
              but keeps them in [ctxt_known], so that theories are not
              copied twice. Useful to build flat contexts.
      
          Theory.use_export uc th :
              Marks the dependency on [th]. [Duse th] is added to [uc],
              unless [th] is already used.
      
          Theory.clone_export uc th :
              Clones the contents of [th] into [uc]. The dependencies
              of [th] become dependencies of [uc]. [Duse] declarations
              are added, when a theory is used for the first time.
      
      1c21c061
  3. 04 Mar, 2010 11 commits
  4. 03 Mar, 2010 8 commits
  5. 02 Mar, 2010 7 commits
  6. 01 Mar, 2010 7 commits
  7. 28 Feb, 2010 1 commit
    • Andrei Paskevich's avatar
      several improvements, refactorings, and fixes · 094ab658
      Andrei Paskevich authored
      - prevent leak of idents by separating them into two types:
        - "preid" -- user-created and non-unique
        - "ident" -- unique, generated from "preid" by various
                     smart constructors: create_tysymbol, etc
      
        This guarantees that two different symbols never share
        an ident.
      
      - no need to hashcons tysymbols, fsymbols, and psymbols,
        as they are unique by construction
      
      - make separate hashconsing smart constructors for decl
      
      - export namespace as a private record (no reason to not to)
      
      - some code rearrangement in hashconsing of decls
      
      - fix namespace merging in close_namespace
      
      - namespace name can be just a string, no need to use ident
      
      094ab658
  8. 26 Feb, 2010 4 commits