https://github.com/Unipisa/CMM
Revision c0f12bb6f3ea8f1350371695b42990a5c2eb93f2 authored by Giuseppe Attardi on 02 March 1998, 23:00:00 UTC, committed by CMM Curation Team on 11 December 2019, 14:35:48 UTC
Contributors mentioned in Changelog :
 - Giuseppe Attardi @attardi
 - Tito Flagella @tflagella
 - Pietro Iglio
1 parent 55778ad
Raw File
Tip revision: c0f12bb6f3ea8f1350371695b42990a5c2eb93f2 authored by Giuseppe Attardi on 02 March 1998, 23:00:00 UTC
1.9 -
Tip revision: c0f12bb
patch-6
diff -c /home/omega/attardi/posso/cmm/ChangeLog /project/posso/cmm/curr/cmm/ChangeLog
*** /home/omega/attardi/posso/cmm/ChangeLog	Tue Mar  3 15:21:22 1998
--- /project/posso/cmm/curr/cmm/ChangeLog	Fri Nov  7 19:45:55 1997
***************
*** 1,23 ****
- 1998-03-03  Giuseppe Attardi  <attardi@di.unipi.it>
- 
- 	* version 1.9g released.
- 	
- 	* cmm.h (OUTSIDE_HEAPS): checks both NOHEAP and UNCOLLECTEDHEAP
- 
- 1998-03-02  Giuseppe Attardi  <attardi@di.unipi.it>
- 
- 	* cmm.h, cmm.cpp: added allocAtomic() to allocate block not
- 	containing pointers.
- 
- Tue Feb  3 11:46:48 1998  Giuseppe Attardi  <attardi@omega>
- 
- 	* cmm.cpp (expandHeap): fix for Linux: fill gap between old and
- 	new heap.
- 
- Wed Jan 28 11:37:11 1998  Giuseppe Attardi  <attardi@omega>
- 
- 	* cmm.h (WHEN_FLAGS): added {}
- 
  Fri Nov  7 10:40:42 1997  Giuseppe Attardi  <attardi@omega>
  
  	* cmm.cpp (verifyHeader): fixed to deal with SCANNED pages.
--- 1,3 ----
Common subdirectories: /home/omega/attardi/posso/cmm/Parallel and /project/posso/cmm/curr/cmm/Parallel
diff -c /home/omega/attardi/posso/cmm/README /project/posso/cmm/curr/cmm/README
*** /home/omega/attardi/posso/cmm/README	Sun Mar  1 11:17:08 1998
--- /project/posso/cmm/curr/cmm/README	Fri Nov  7 10:39:52 1997
***************
*** 53,60 ****
   - AIX (RS6000)
   - SGI
   - Win32 (Windows 95, Windows NT)
-  - Digital OS (Alpha)
-  - MacOS (Metrowerks C++)
  
  but it should run without changes also on HPUX, NeXTOS and DOS (djgpp).
  If you are interest in some other platforms you can send mail to
--- 53,58 ----
diff -c /home/omega/attardi/posso/cmm/cmm.cpp /project/posso/cmm/curr/cmm/cmm.cpp
*** /home/omega/attardi/posso/cmm/cmm.cpp	Tue Mar  3 14:59:21 1998
--- /project/posso/cmm/curr/cmm/cmm.cpp	Fri Nov  7 19:52:54 1997
***************
*** 54,60 ****
  
  /* Version tag */
  
! char*  Cmm::version = "CMM 1.9g";
  
  /*---------------------------------------------------------------------------*
   *
--- 54,60 ----
  
  /* Version tag */
  
! char*  Cmm::version = "CMM 1.9e";
  
  /*---------------------------------------------------------------------------*
   *
***************
*** 901,915 ****
  	new_pageHeap[i] = UNCOLLECTEDHEAP;
      }
    else
!     {
!       /* Fill gap */
!       Page gapStart = MIN(lastHeapPage, inc_lastHeapPage);
!       Page gapEnd = MAX(firstHeapPage, inc_firstHeapPage);
! 
!       for (i = gapStart + 1; i < gapEnd; i++)
!         new_pageHeap[i] = UNCOLLECTEDHEAP;
!       ::delete (char *)(pageSpace + firstHeapPage); // address of old tables
!     }
  
    pageSpace = new_pageSpace;
    pageLink = new_pageLink;
--- 901,907 ----
  	new_pageHeap[i] = UNCOLLECTEDHEAP;
      }
    else
!     ::delete (char *)(pageSpace + firstHeapPage); // address of old tables
  
    pageSpace = new_pageSpace;
    pageLink = new_pageLink;
***************
*** 1730,1741 ****
  // FromSpace (usedPages - stablePages).
  // We guess that FromSpace will be reduced to less than 50%:
  #define USED2FREE_RATIO 2
! #define enoughPagesLeft(pages) \
! (usedPages + pages \
!  <= USED2FREE_RATIO * (freePages + reservedPages - usedPages - pages))
  
! GCP
! DefaultHeap::alloc(Word size)
  {
    GCP  object;		/* Pointer to the object */
  
--- 1722,1732 ----
  // FromSpace (usedPages - stablePages).
  // We guess that FromSpace will be reduced to less than 50%:
  #define USED2FREE_RATIO 2
! #define enoughPagesLeft(pages)     (usedPages + pages \
! 				    <= USED2FREE_RATIO * (freePages + reservedPages - usedPages - pages))
  
!      GCP
!      DefaultHeap::alloc(Word size)
  {
    GCP  object;		/* Pointer to the object */
  
***************
*** 1831,1853 ****
  }
  
  /*---------------------------------------------------------------------------*
-  * -- DefaultHeap::allocAtomic
-  *
-  * Results: returns an area which is collected but not traversed since it
-  * is declared not to contain pointers.
-  *
-  *---------------------------------------------------------------------------*/
- 
- GCP
- DefaultHeap::allocAtomic(Word size)
- {
- 
-   Ptr area = (Ptr) new (size, this) CmmVarObject;
-   area += sizeof(CmmVarObject);
-   return (GCP)area;
- }
- 
- /*---------------------------------------------------------------------------*
   * -- isTraced
   *
   * Results: true if the object is checked by the garbage collector.
--- 1822,1827 ----
***************
*** 1860,1873 ****
    extern int end;
    if (
  #     ifdef _WIN32
!       printf("in text?\n")
  #     else
!       obj >= (void *)(&end)
  #     endif
  #     ifdef STACK_GROWS_DOWNWARD
!       && obj < (void *)(&obj)
  #     else
!       && obj > (void *)(&obj)
  #     endif
        )
      {
--- 1834,1847 ----
    extern int end;
    if (
  #     ifdef _WIN32
!       printf("in text?\n") &&
  #     else
!       obj >= (void *)(&end) &&
  #     endif
  #     ifdef STACK_GROWS_DOWNWARD
!       obj < (void *)(&obj)
  #     else
!       obj > (void *)(&obj)
  #     endif
        )
      {
diff -c /home/omega/attardi/posso/cmm/cmm.h /project/posso/cmm/curr/cmm/cmm.h
*** /home/omega/attardi/posso/cmm/cmm.h	Tue Mar  3 15:02:40 1998
--- /project/posso/cmm/curr/cmm/cmm.h	Fri Nov  7 10:10:10 1997
***************
*** 311,323 ****
   *---------------------------------------------------------------------------*/
  
  #ifdef CMM_VERBOSE
!   #define WHEN_VERBOSE(flag, code)	if (Cmm::verbose & flag) {code;}
  #else
    #define WHEN_VERBOSE(flag, code)
  #endif
  
  #ifdef CMM_FEATURES
!   #define WHEN_FLAGS(flag, code)	if (Cmm::flags & flag) {code;}
  #else
    #define WHEN_FLAGS(flag, code)
  #endif
--- 311,323 ----
   *---------------------------------------------------------------------------*/
  
  #ifdef CMM_VERBOSE
!   #define WHEN_VERBOSE(flag, code)	if (Cmm::verbose & flag) code
  #else
    #define WHEN_VERBOSE(flag, code)
  #endif
  
  #ifdef CMM_FEATURES
!   #define WHEN_FLAGS(flag, code)	if (Cmm::flags & flag) code
  #else
    #define WHEN_FLAGS(flag, code)
  #endif
***************
*** 513,519 ****
  
  #define OUTSIDE_HEAPS(page) \
  	(page < firstHeapPage || page > lastHeapPage || \
! 	 (Word)pageHeap[page] <= (Word)UNCOLLECTEDHEAP)
  
  #define HEAPPERCENT(x) (((x)*100)/(Cmm::theDefaultHeap->reservedPages \
  			+ freePages))
--- 513,519 ----
  
  #define OUTSIDE_HEAPS(page) \
  	(page < firstHeapPage || page > lastHeapPage || \
! 	 pageHeap[page] == UNCOLLECTEDHEAP)
  
  #define HEAPPERCENT(x) (((x)*100)/(Cmm::theDefaultHeap->reservedPages \
  			+ freePages))
***************
*** 606,613 ****
  
    virtual void scavenge(CmmObject **) {};
  
-   inline GCP allocAtomic(Word size) { return alloc(size); };
- 
    inline bool inside(GCP ptr)
      {
        Page page = GCPtoPage(ptr); // Page number
--- 606,611 ----
***************
*** 662,668 ****
  
    DefaultHeap();
    GCP alloc(Word);
-   GCP allocAtomic(Word);
    void reclaim(GCP) {}		// Bartlett's delete does nothing.
    void collect();		// the default garbarge collector
    void scavenge(CmmObject **);
--- 660,665 ----
***************
*** 697,703 ****
  
    MarkAndSweep();
    inline GCP 	alloc(Word size){ return (GCP) mswAlloc(size); }
-   inline GCP	allocAtomic(Word size) { return (GCP) mswAllocOpaque(size); }
    inline void	reclaim(GCP p)	{ mswFree(p); }
    inline void	collect()	{ mswCollect(); }
    inline void*	realloc(void * p, Word size)	{ return mswRealloc(p, size); }
--- 694,699 ----
Common subdirectories: /home/omega/attardi/posso/cmm/doc and /project/posso/cmm/curr/cmm/doc
diff -c /home/omega/attardi/posso/cmm/msw.cpp /project/posso/cmm/curr/cmm/msw.cpp
*** /home/omega/attardi/posso/cmm/msw.cpp	Mon Mar  2 10:10:36 1998
--- /project/posso/cmm/curr/cmm/msw.cpp	Fri Nov  7 17:26:13 1997
***************
*** 519,525 ****
--- 519,527 ----
  #	endif
  
  	assert(size);
+ 
  	size = ROUND_UP(size, PtrSize);
+ 
  	mswGetStatsDEBUG(size);
  
  	if (size >= MaxFixedSize)
***************
*** 533,538 ****
--- 535,541 ----
  	assert(freePage->objSize == size);
  
  	freeList = freePage->freeList;
+ 
  	freePage->allocatedObjs += 1;
  	*freeList = AllocMask;
  	*(freeList-1) = TransparentMask;
back to top