[fpc-devel]How to subscribe to list

Sergey Korshunoff Sergey.Korshunoff at p5.f2666.n5020.z2.fidonet.org
Mon Nov 6 06:27:13 CET 2000

Hello everybody.
There is no description in FPC doc's about this list subscription.
May be it is better to put some doc's about this procedure in FPC
doc's insteed of following sentense in readme.txt:
  Information about available lists and subscription can be found
  on http://lists.freepascal.org/mailman/listinfo
I do not have direct internet access. Can You send me answer by

  Sergey Korshunoff

PS: I have modified version of heap manager for FPC (v1.00).
In FPC 1.02 problem of memory fragmentation was solved in "FreeMem"
procedure. I think this is not so good. In my version a merging
is performed in "GetMem" procedure (when we looking freelists[0]
for a free memory block).
This is faster (about 20% faster for a GetMem/FreeMem test cycle)

 And my version do not allocate new memory from system if
we have continius memory block of needed size (in v1.02 we do not
merge blocks which start from some block in freelists[1..x])

Well. There is notes about my changes (related to v1.00):
  Sergey Korshunoff (seyko at p5.f434.n5020.z2.fidonet.org):
  1. Some constants moved from heaph.inc to this file.
  2. Value returned by `SysMaxavail' is more correct now.
  3. In SysGetMem:
     is moved near to succesful exit (or we need to decrement
     internal_memavail when we fail to allocate memory).
  4. Handle case when `HeapError' return value is not in [0,1,2].
  5. Now we repeat a full memory search path when `HeapError' say
     to try again. This is like Borland `GetMem' do it. And
     this allow us to handle a case when `HeapError' lead to
     a `FreeMem' call without adding any new memory from OS.
  6. BESTMATCH removed (it is time consuming procedure)
  7. SysGetMem now merges blocks.
  8. `heaporg', `heapptr' and `beforeheapendmask' are
     not used now and removed (new memory from system go directly
     to free list)
  9. Procedure ReAllocMem in TMemoryManager record now takes
     3rd paramater: a size of memory in old block which
     contain information (some time it is much faster do not
     to copy not used data from the old block)
 10. Functions 'SysGetMem, Sys..' are removed from heaph.inc
     because you should use MemoryManager for this job.

  I replaced a call to syscall_nr_mmap by a call to syscall_nr_brk:
  1) with syscall_nr_mmap first block of memory, reserved by FPC option
      "-Cs<n>  set stack size to <n>",
  and second memory block, asked from Linux, will never be merged.
  2) Linux do not allow restrict amount of memory (used by
  program) if this memory is not allocated by syscall_nr_brk.

cmem.pp from source/packages:
  CHeapSize and CMemAvail was added. CMEM do not return memory
  to system now (this behavior is like behavior of standard heap package).  And
now CMEM really do a work (there was some errors: before changes
  adding CMEM in Uses statements lead to not working program).

More information about the fpc-devel mailing list