Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

https://github.com/Unipisa/CMM
13 July 2022, 09:41:13 UTC
  • Code
  • Branches (2)
  • Releases (8)
  • Visits
    • Branches
    • Releases
    • HEAD
    • refs/heads/SourceCode
    • refs/heads/master
    • 1.9
    • 1.8
    • 1.7
    • 1.6
    • 1.5
    • 1.4
    • 1.3
    • 1.1
  • 0321ba1
  • /
  • cmm
  • /
  • ChangeLog
Raw File Download
Take a new snapshot of a software origin

If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.

Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.
swh spinner

Processing "take a new snapshot" request ...

Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
  • revision
  • snapshot
  • release
origin badgecontent badge Iframe embedding
swh:1:cnt:c30d4de06dd8d741dca60bff53303116370eeb9f
origin badgedirectory badge Iframe embedding
swh:1:dir:0f39ffe23742172a38e0e61f209105db8c4e58b9
origin badgerevision badge
swh:1:rev:bf76b38a16a1c7c2b9b54c40b3d6e1471fe79c7b
origin badgesnapshot badge
swh:1:snp:4ac4ed834489429d51fc0fd004f10ddbf78d807a
origin badgerelease badge
swh:1:rel:853002f6382c62fbe84c0f488fff7bedece74910
Citations

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
  • revision
  • snapshot
  • release
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Tip revision: bf76b38a16a1c7c2b9b54c40b3d6e1471fe79c7b authored by Giuseppe Attardi on 02 November 1995, 15:11:11 UTC
1.5 -
Tip revision: bf76b38
ChangeLog
Thu Nov  2 16:11:11 1995  Pietro Iglio  <iglio@attardi.di.unipi.it>

	* Added CmmObject::operator new[] and CmmObject::operator delete[].
	  Now CmmArray shouldn't be necessary.

Wed Nov  1 13:53:42 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.h (Cmm): renamed mswHeap to theMSHeap
	(GcObject): renamed fo CmmObject
	(GcVarObject): renamed fo CmmVarObject
	(GcArray): renamed fo CmmArray

Tue Oct 31 14:00:35 1995  Pietro Iglio  <iglio@attardi>
        * C++ programs don't need to call mswInit() any more.

Mon Oct 30 19:00:35 1995  Pietro Iglio  <iglio@attardi>

	* Added virtual method "CmmHeap::scanRoots(page)" that promote pages
	  for each allocated object inside "page". Such method has a
	  meaningful implementation for MarkAndSweep and UncollectedHeap heaps.
	* Minor changes/cleanings.

Thu Oct 26 19:37:35 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc (Cmm): added parameter newGcThreshold

Thu Oct 12 13:06:18 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.h (bytesPerPageLg): eliminated

	* cmm.cc: default traverse() is again empty:
	it is not possible to call promotePage during traverse, since
	all promotions must be done in first phase of collector.
	Objects in such pages might have been already copied.

Tue Oct  3 11:43:54 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc: added default traverse() for GcObject

Sat Jun 10 10:47:08 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc (collect):
	 verify_object -> verifyObject
	 verify_header -> verifyHeader
	 log_root -> logRoot

	* cmm.h (WHEN_FLAGS): fixed

Thu Mar 23 18:58:17 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc (CmmInit): removed memalign because it is not
	available on Linux

Tue Mar 21 09:19:25 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc (expandHeap): added parameter increment
	  Replaced new char with MEMALIGN, normally defined as memalign

	* cmm.cc: allocatePage -> allocatePages

Fri Mar  3 12:17:21 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.h (GCPtoPage): fixes for Alpha

	* cmm.cc (basePointer): fixes for Alpha

Thu Mar  2 09:59:03 1995  Giuseppe Attardi  <attardi@omega>

	* tempheap.cc (scavenge): fixed MARKING with TempHeap

Tue Feb 28 09:52:56 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc: fixes for RS/6000:
	added DefaultHeap::DefaultHeap() to initialize usedPages
	added STACKBOTTOM

Wed Feb 22 12:51:01 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc (collect): traverse Marked objects only in pages not yet scanned

	* cmm.h (GcObject): Marked() -> isMarked()

Tue Feb 21 10:14:34 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.cc (promotePage): fixed to work with MARKING

Sat Feb 18 13:12:05 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.h: typedef long  *GCP, for compatibility with
	64-bit architecutres

Fri Feb 17 19:16:23 1995  Giuseppe Attardi  <attardi@omega>

	* machine.h: fixed DATASTART for SVR4 (Solaris2)

	* cmm.cc (emptyStableSet): empties up to page.
	This allows retaininig in stable set pages which have just been
	copied during last collection which is not worth while to copy
	again in the immediately following full collection.

Sat Feb 11 12:45:43 1995  Giuseppe Attardi  <attardi@omega>

	* tempheap.cc (collect): fixed printout when VERBOSE

Thu Jan 19 11:02:34 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.h (GcArray): revised by Tito to use overloaded [].

Tue Jan  3 13:25:16 1995  Giuseppe Attardi  <attardi@omega>

	* cmm.h (CmmHeap): 
	changed transparent to opaque, so that default is 0 (false).
	 isTransparent() ->  isOpaque()
	 setTransparent(bool) -> setOpaque(bool)
	 bool transparent -> bool opaque

Mon Dec 19 12:35:11 1994  Giuseppe Attardi  <attardi@omega>

	* cmm.h (Cmm): added
	  inline bool isTransparent()
	  inline void setTransparent(bool transparency)
	 private:
	  bool transparent = false;

Wed Dec 14 13:03:28 1994  Giuseppe Attardi  <attardi@omega>

	* cmm.cc (scavenge): fixed to visit only if base pointer is not
	OUTSIDE_HEAP

Tue Dec 13 12:07:04 1994  Giuseppe Attardi  <attardi@omega>

	* cmm.*:
	added support for SGI (contributed by Uttam M. Narsu" <narsu@styx.hks.com>)

	* test*.cc:
	updated to version 1.4

	* doc/CMMguide.tex: 
	updated to version 1.4

Thu Dec  1 10:56:13 1994  Giuseppe Attardi  <attardi@omega>

	* tempheap.cc (alloc):
	When HEADER_SIZE && defined(DOUBLE_ALIGN), top is kept at an odd value
	by incrementing it if necessary after alloc() or copy().

	* tempheap.h: 
	In class Container replaced  variable bytes with size, which measures
	the size in words.

Sun Nov 27 10:43:30 1994  Giuseppe Attardi  <attardi@neuron>

	* cmm.h: renamed
	gcobject -> isTraced

Fri Nov 25 13:47:50 1994  Giuseppe Attardi  <attardi@neuron>

	* cmm.cc (expandHeap): restored from version 1.3

Mon Nov 21 17:16:19 1994  Giuseppe Attardi  <attardi@omega>

	* tempheap.cc: renamed
	BBStack -> TempHeap
	heapstack.cc -> tempheap.cc
	heapstack.h -> tempheap.h
	Eliminated HeapStack.

Sat Nov 19 12:35:36 1994  Giuseppe Attardi  <attardi@neuron>

	* cmm.cc: 
	firstp -> firstFreeWord

	* heapstack.cc (Container::alloc, Container::copy, HeapStack::collect,
	BBStack::collect):
	added handling of case HEADER_SIZE && defined(DOUBLE_ALIGN)

Mon Nov  7 17:36:34 1994  Giuseppe Attardi  <attardi@omega>

	* machine.H: #undef STACK_GROWS_DOWNWARD for hp pa architecture

Thu Oct 27 12:26:20 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.H: renamed STATIC_0 as DATASTART
	DATASTART is defined for many architectures

	* cmm.C, cmm.H: updated for g++ 2.6

Thu Oct 20 11:11:16 1994  Giuseppe Attardi  (attardi@omega)

	* HeapStack.C (scavenge): 
	use OUTSIDE_HEAP instead of !inside

Wed Oct 19 11:39:50 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.H (DefaultHeap::scavenge): 
	moved to cmm.C

	* cmm.C (allocate_page): 
	removed bzero of page

Thu Oct 13 09:07:15 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.H (CmmHeap): 
	DefaultHeap -> theDefaultHeap
	gcmove -> CmmMove

	* cmm.C (reserve_pages):
	maintain reservedPages instead of unusedPages

	* cmm.C ():
	UNALLOCATEDPAGE -> UNALLOCATEDSPACE with value 1 to ensure it is
	not STABLE()

Tue Oct 11 09:44:33 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.C (reserve_page): 
	restricted search for unused pages to pages between
	firstReservedPage and lastReservedPage

	* cmm.C:
	use memset (STD C) instead of bzero (BSD) when not GCC
	(bzero is 3 times faster than memset)

Mon Oct 10 10:24:06 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.C (collect): 
	#ifdef STACK_GROWS_DOWNWARD
	    register unsigned *lim = (unsigned *)regs;
	#else
	    register unsigned *lim = (unsigned *)regs + sizeof(regs);
	#endif    

Fri Oct  7 18:49:27 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.C (collect): 
	  while (cp < nextcp ||
	   inCurrentPage && cp < (nextcp = (cp <= freep && freep < nextPage) ?
				  freep : nextPage)) {
	was: cp < freep

	* cmm.C : restored working version with HEADER_SIZE = 1,
	Revised DOUBLE_SIZE handling with HEADER_SIZE = 1.

Tue Oct  4 11:52:29 1994  Giuseppe Attardi  (attardi@igor)

	* HeapStack.C (scavenge): eliminated Heapstack::outside

Mon Oct  3 20:15:02 1994  Giuseppe Attardi  (attardi@igor)

	* HeapStack.C (collect): added
	   SET_OBJECTMAP(ToSpace->current());
	   SET_OBJECTMAP(container->current());
	  to ensure that we stop at the end of the container.

	* cmm.C (allocate_page): 
	set pageGroup for the benefit of words() in non default heap

Fri Sep 30 16:20:00 1994  Giuseppe Attardi  (attardi@igor)

	* cmm.C (collect): 
	Added
	  if (freePages + unusedPages < usedPages)
	      expandHeap();
	to ensure that expandHeap is not called within gcmove.
	
	* cmm.C (CmmInitEarly): 
	#ifdef STACK_GROWS_DOWNWARD
	#else
	    stackBottom = (unsigned)&i & ~STACKBOTTOM_ALIGNMENT_M1;
	#endif

	* HeapStack.C (scavenge): 
	Added cast for correct offset computation:
	    *ptr = (GcObject *)((char *)newObj + offset);

	Moved #include <iostream.h> to HeapStack.C to avoid unnecessary
	inclusion

Fri Sep 30 09:55:24 1994  Giuseppe Attardi  (attardi@omega)

	* HeapStack.C (scan): 
	modified so that it the argument heap is used in traversal

	* HeapStack.H ():
	insert -> copy
	ContainerStack -> Container
	WordsInUse -> usedWords
	used -> usedBytes
	entryNump -> entrypNum
	BBStack::top -> BBStack::current

Thu Sep 29 14:27:17 1994  Giuseppe Attardi  (attardi@omega)

	* HeapStack.C: 
	HeapStack::scavenge() and BBStack::scavenge() use just MARKED(p)
	(rather than p->forwarded()) to determine whether object is forwarded
	added resetLiveMap to clear LiveMap at beginning of collection

	* cmm.H: 
	SetForward() marks object

Tue Sep 20 20:37:17 1994  Giuseppe Attardi  (attardi@neuron)

	* Makefile.schema (HFILES): added machine,h,
	new file containing processor parameters.
	
	* cmm.C (alloc): added alignment support
	On processors requiring double alignment, objects of size > 12
	are aligned to double words boundaries.
	A padding is added when a large object is adjacent to a small one.

Fri Sep 16 14:41:17 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.C (collect): 
	Added STACK_GROWS_DOWNWARD for stack limit identification.

Thu Sep 15 10:30:59 1994  Giuseppe Attardi  (attardi@omega)

	* Makefile.schema (demo): eliminated LCFLAGS

Tue Sep  6 11:40:40 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.H: added #define VirtualBase(A)

Fri Aug 12 13:18:56 1994  Giuseppe Attardi  (attardi@igor)

	* cmm.H (GcObject): 
	Can't use IS_OBJECT(++nextObj), since macro evaluates arg twice:

	    while (! IS_OBJECT(nextObj) && nextObj < lastObj)
	          nextObj++;

Wed Aug 10 14:36:28 1994  Giuseppe Attardi  (attardi@omega)

	* cmm.C (collect):
	Bartlett discards current page after sweeping it.
	We continue using it instead.

	* cmm.C (collect):
	  With traversal of uncollected heap:
	   valla   207.5     1.30    2150400
	  Without:
           valla   166.94    1.9     2146304

Thu Aug  4 17:49:50 1994  Giuseppe Attardi  (attardi@posso)

	* Gr13/gc/cmm/cmm.H (MARK): 
	MARK operates on pointer to object, not to header
	
	Eliminated flag GCHEAPMAP

Thu Aug  4 07:47:19 1994  Giuseppe Attardi  (attardi@omega)

	* Gr13/groebner/groebner.C (ShowTime):
	Display name of problem and results on a single line so that it
	can be pasted in a result file.

	* Gr13/gc/cmm/cmm.C:
	Eliminated callbacks.
	HEADER_CALLBACK -> HEADER_TAG
	freespace_callback -> freespace_tag

	* Gr12a/gc/cmm/cmm.H (CmmHeap): 
	Eliminated CmmHeap()

	* Gr12a/configure.in: 
	bartlett -> default
	heapzone -> heap
	with- ->

	* Gr12a/gc/cmm/cmm.C (new): 
	Eliminated heap->id();

Wed Aug  3 12:07:01 1994  Giuseppe Attardi  (attardi@omega)

	* Gr12a/gc/cmm/cmm.C (reserve_pages): 
	moved call to queue in gcmove

	* Gr12a/gc/cmm/cmm.C:
	Eliminated
	 #include <sys/time.h>
	 #include <sys/ioctl.h>
	 #include <machine/vmparam.h>

	 #include <machine/param.h> -> <sys/param.h>

Tue Aug  2 11:16:51 1994  Giuseppe Attardi  (attardi@omega)

	* Gr12a/gc/cmm/cmm.C:
	Introduced flag STACK_GROWS_DOWNWARD

	* Gr12a/gc/cmm/cmm.C (alloc): 
	Should be better that alloc would return (object+1), i.e. pointer
	to data, rather than to header.

Mon Aug  1 08:52:27 1994  Giuseppe Attardi  (attardi@omega)

	* Gr12a/gc/cmm/cmm.H (CmmHeap): 
	  alloc returns GCP instead of GcObject*

	* Gr12a/gc/cmm/interface.H (IsAnObject): eliminated

	* Gr12a/gc/cmm/cmm.H (scavenge): 
	  We must distinguish membership among several heaps.
	  So we use the following:

	  OUSIDE_HEAP			outside any heap
	  gcobject			recognised GcObject (to which traverse
	  				can be applied)
	  CmmHeap::outside		outside this heap

	  OutsideHeap -> !gcobject

Sat Jul 30 11:25:15 1994  Giuseppe Attardi  (attardi@omega)

	* Gr12a/gc/cmm/ecl.doc: 

	  /* Shifting by 32 is noop, so we must do it in two steps: */
	  MTword(p) |= (~0 << MTbit(p)) & ~(~0 << MTbit(q) << 1);

	* Rename:

	  Bartlett -> DefaultHeap
	  reclaimer -> reclaim
	  zone() -> heap()
	  firstword -> ObjectMap
	  GetBeginning -> basePointer
	  makecurrentstableset -> stableset_to_current
	  gcallpercent -> gcFullGcThreshold
	  GCALLPERCENT -> GCFULLGCTHRESHOLD
	  MARKED -> MARKING
	  IS_MARKED -> MARKED
	  IsMarked -> Marked

	* Gr12a/Makefile (Makefiles):
	  Added:
	     rm -f junk.c \

Fri Jul 29 11:43:20 1994  Giuseppe Attardi  (attardi@omega)

	* Gr12a/gc/cmm/cmm.C: 
	  GcObject -> gcobject (according to what mentioned in header file)

	* Eliminated _gcinit: initialization is done by _CmmInit() in
	  interface.H

	* stackbase is aligned to segment boundary:

	  stackbase = (((unsigned)&i + NBPG - 1) / NBPG) * NBPG;
	  ->
	  stackbase = ((unsigned)&i + STACKBOTTOM_ALIGNMENT_M1)
	        & ~STACKBOTTOM_ALIGNMENT_M1;

	* Eliminated STACKINC

Thu Jul 28 21:37:14 1994  Giuseppe Attardi  (attardi@omega)

	* Gr12a/gc/cmm/cmm.C (expand_heap): 

	   new_firstword[i + (firstHeapPage-new_firstHeapPage)*BITSxWORD] = firstword[i];
	   ->
	   new_firstword[i] = firstword[i];


	* Gr12a/greobner/Makefile.schema (bench): 
	Added dependencies:
	H = BaseItem.H gdiv.H pair.H algebra.H groebner.H poly.H util.H ../util/List.H
	groebner:	$(OBJS) $(GC_LIBS)

	groebner.o: groebner.C  $(H)

Thu Jul 28 12:09:26 1994  Giuseppe Attardi  (attardi@omega)

	* Gr12a/gc/cmm/cmm.C (promote_page): 
	  Eliminated guess_pointer_count, guess_pointers and GCGUESSPTRS

	* Gr12a/gc/cmm/cmm.H: 
	  Eliminated  __GCVariable and gcvnew

	  Introduced new flag TRACE: only when defined logging and
	  tracing are performed.

	* Gr12a/gc/cmm/cmm.C (gccollect): 
	  Serious error in Bartlett code:

	   for  (int i = 0; i < roots_count; i++)  {
	     fp = roots[i].addr;
	     for  (int j = roots[i].bytes; j > 0; j = j-STACKINC)  {
	       promote_page((GCP)*fp);
	     }
	     fp++;  <- should be inside previous for loop
	   }

	  Serious error in Bartlett code:

	   if  (gcflags & GCHEAPROOTS  ||  gcflags & GCHEAPLOG)  {
	     if  (gcflags & GCHEAPLOG)
	       fprintf(stderr, "non-GC heap roots:\n");
	     unsigned*  heapend = (unsigned*)sbrk(0);
	     while  (fp < heapend)  {
		     ^^ is not initialized

	* Gr12a/gc/cmm/interface.H: 

	  follow -> visit

	* Gr12a/gc/cmm/cmm.C

	  (allocate_page):
	  bzero((char*)&firstword[firstpage*BITSxWORD],
		 	BIT_BYTES*pages);
	  ->

	  bzero((char*)&firstword[WORD_INDEX(firstpage*BYTESxPAGE)],
		 	pages*(WORDSxPAGE/BITSxWORD));

  	  (gccollect): 
	  bzero((char*)&marked[firstHeapPage*BITSxWORD],
	       BIT_BYTES*heapspanpages);
	  ->

	  bzero((char*)&marked[WORD_INDEX(firstHeapPage*BYTESxWORD)],
	       heapspanpages*(WORDSxPAGE/BITSxWORD));

	* Global renaming:

	  BIT_WORDS -> BITSxWORD
	  WORDBYTES -> BYTESxWORD
	  PAGEBYTES -> BYTESxPAGE
	  PAGEWORDS -> WORDSxPAGE

	  HeapZone  -> CmmHeap

	* Gr12a/gc/cmm/cmm.C (GcObject): 

	  firstword = firstword - WORD_INDEX(firstHeapPage*BYTESxPAGE);
	  marked = marked - WORD_INDEX(firstHeapPage*BYTESxPAGE);

	  corretto di nuovo GcObjectect -> GcObject

Wed Jul 27 21:44:23 1994  Giuseppe Attardi  (attardi@posso)

	* Gr12a/config.h.in:
	  BARTLETT -> __BARTLETT
	  BOEHM -> __BOEHM

	* Gr12a/groebner/main.H: added #ifdef __CMM before
	  extern HeapZone *hs;

	* Gr12a/gc/cmm/gcalloc.C (gccollect):
	  replaced gcregisters with setjmp/longjmp

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Contact— JavaScript license information— Web API

back to top