Hi,

Sorry for putting it here but I don't know where to file a bug report for the allocator project.

On 32-bit linux with the latest dmd beta I get errors for ulong -> uint (size_t) conversions.

dmd -main -unittest allocator.d

allocator.d(2015): Error: cannot implicitly convert expression (i * 4096LU) of type ulong to uint allocator.d(2015): Error: cannot implicitly convert expression ((i + cast(ulong)blocks) * 4096LU) of type ulong to uint allocator.d(1743): Error: template instance std.allocator.HeapBlock!(4096u, 4u) <cut the long line> allocator.d(331): instantiated from here: HeapBlock!(4096u, 4u) allocator.d(334): Error: template instance Segregator! <cut the long line> allocator.d(2015): Error: cannot implicitly convert expression (i * 128LU) of type ulong to uint allocator.d(2015): Error: cannot implicitly convert expression ((i + cast(ulong)blocks) * 128LU) of type ulong to uint allocator.d(1743): Error: template instance std.allocator.HeapBlock!(128u, 4u) <cut the long line>
 , __ctmp2303).this(m)) error instantiating
allocator.d(1342): instantiated from here: HeapBlock!(128u, 4u) allocator.d(1493): Error: cannot implicitly convert expression (x / 64LU) of type ulong to immutable(uint) allocator.d(1495): Error: cannot implicitly convert expression (y / 64LU) of type ulong to immutable(uint) allocator.d(1520): Error: cannot implicitly convert expression (x / 64LU) of type ulong to uint allocator.d(1526): Error: cannot implicitly convert expression (i) of type ulong to uint allocator.d(1527): Error: cannot implicitly convert expression (i) of type ulong to uint allocator.d(1544): Error: cannot implicitly convert expression (w) of type ulong to uint allocator.d(1553): Error: cannot implicitly convert expression (w) of type ulong to uint allocator.d(1572): Error: cannot implicitly convert expression (w) of type ulong to uint allocator.d(1582): Error: cannot implicitly convert expression (w) of type ulong to uint allocator.d(1607): Error: cannot implicitly convert expression (i) of type ulong to uint allocator.d(1615): Error: cannot implicitly convert expression (i) of type ulong to uint allocator.d(1627): Error: cannot implicitly convert expression (i) of type ulong to uint allocator.d(1633): Error: cannot implicitly convert expression (i) of type ulong to uint allocator.d(4143): Error: function std.allocator.roundUpToMultipleOf (uint s, uint base) is not callable using argument types (ulong, uint)


Is it a known issue? Or are there currently only 64-bit OSes supported by the allocator project?

Piotrek

Reply via email to