[M3commit] CVS Update: cm3

Jay Krell jkrell at elego.de
Sat Sep 29 21:30:18 CEST 2012

CVSROOT:	/usr/cvs
Changes by:	jkrell at birch.	12/09/29 21:30:18

Modified files:
	cm3/m3-sys/m3back/src/: M3C.m3 

Log message:
	cleanup struct size handling to be more efficient
	no sort -- we can unique through an array of booleans indexed by size
	Still we have linear + two allocations.
	C++ would be nlgn and one allocation.
	Not clear which is better. Linear is good. Allocations are bad.
	Still the C++/STL way is a good general design that
	so far eludes me in Modula-3. I compete here by taking advantage
	of the element type being reasonably ranged integers. If the data
	was more arbitrary, we couldn't use the array of booleans.
	Even so -- this is badness e.g. on 32bit host when compiling
	64bit code with a large struct size..need to think about this
	and probably put it back.. we shouldn't be allocating arrays whose
	size equals the size of user defined data structures..not good...
	(Modula-3 would be one allocation but I want to be lazy
	and have the container tell me the size. The C++ STL design
	might actually be doable in Modula-3, but I don't think m3core
	provides it. Something to work on, another time.)

More information about the M3commit mailing list