missing HexString documentation

Walter Bright newshound2 at digitalmars.com
Thu Feb 8 18:31:06 UTC 2018


On 2/8/2018 5:26 AM, Steven Schveighoffer wrote:
> The extra data in the object file comes from the inclusion of the hexStringImpl 
> function, and from the template parameter (the symbol 
> _D3std4conv__T9hexStringVAyaa8_6465616462656566ZQBiyAa is in there as well, 
> which will always be larger than the actual string passed to hexString).
> 
> I also see the data in there twice for some reason.

This is no longer the case with the PR.

   import std.conv;

   void test() {
     __gshared immutable char[4] s = hexString!"deadbeef";
   }

produces the following, with no sign of the template and the data is there only 
once:

_TEXT	segment dword use32 public 'CODE'	;size is 0
_TEXT	ends
_DATA	segment para use32 public 'DATA'	;size is 4
_DATA	ends
CONST	segment para use32 public 'CONST'	;size is 14
CONST	ends
_BSS	segment para use32 public 'BSS'	;size is 0
_BSS	ends
FLAT	group	
	extrn	_D5test24testFZv

	public	_D5test24testFZ1syG4a
FMB	segment dword use32 public 'DATA'	;size is 0
FMB	ends
FM	segment dword use32 public 'DATA'	;size is 4
FM	ends
FME	segment dword use32 public 'DATA'	;size is 0
FME	ends

	public	_D5test212__ModuleInfoZ
_D5test24testFZv	COMDAT flags=x0 attr=x0 align=x0

_TEXT	segment
	assume	CS:_TEXT
_TEXT	ends
_DATA	segment
_D5test24testFZ1syG4a:
	db	0ffffffdeh,0ffffffadh,0ffffffbeh,0ffffffefh	;....
_DATA	ends
CONST	segment
_D5test212__ModuleInfoZ:
	db	004h,010h,000h,000h,000h,000h,000h,000h	;........
	db	074h,065h,073h,074h,032h,000h	;test2.
CONST	ends
_BSS	segment
_BSS	ends
FMB	segment
FMB	ends
FM	segment
	dd	offset FLAT:_D5test212__ModuleInfoZ
FM	ends
FME	segment
FME	ends
_D5test24testFZv	comdat
	assume	CS:_D5test24testFZv
		ret
_D5test24testFZv	ends
	end





More information about the Digitalmars-d mailing list