Tango 0.96 beta2 released
Frits van Bommel
fvbommel at REMwOVExCAPSs.nl
Fri Mar 16 17:01:44 PDT 2007
Sean Kelly wrote:
> Frits van Bommel wrote:
>> [Fair warning: this seems to have become a pretty big post]
>>
>> Sean Kelly wrote:
>>> Frits van Bommel wrote:
>>>>
>>>> I attached a patch, though I'm not sure how much use it'll be if you
>>>> insist on your own version of std.c.stdarg ...
>>>
>>> Thanks. I think the stdarg issues should now be resolved [...]
>>
>> Sorry to disappoint again.
>> Unfortunately, build-gdc.sh only compiles files in lib/ (and some in
>> std/ imported by them). These compile successfully with my patch, AFAICT.
>
> Is this related to the stdarg issues? Just want to make sure I
> understand what you meant by "sorry to disappoint."
Well, the biggest issue was definitely vararg-related, yeah. And
specifically unportable assumptions made in regards to them.
>> The stuff in tango/ doesn't work quite as well though.
>> For instance, it turns out tango.text.convert.Layout is pretty screwed
>> in the current implementation. Again, this has to do with varargs.
>
> Saw that. I passed the issue to Kris, but I suspect we may have to work
> together on this one.
>
>> There were some other errors I less thoroughly investigated, but most
>> of these look like they can probably easily be fixed (in the first two
>> cases perhaps even by simply using the same code as for x86?):
>> * tango.sys.linux.socket static asserts(0) if version(X86) isn't
>> defined, with comment "// Different values on other platforms." (the
>> X86 branch defines a constant named "SOL_SOCKET", whatever that may be)
>> * tango.math.IEEE doesn't define the FPU masks for amd64 (just for x86
>> and PPC it seems).
>> * tango.text.Regex also seems to assume that va_list is a pointer to a
>> 1-byte type instead of using va_start/va_arg/va_end.
>
> Thanks. We'll look into these. And please feel free to submit tickets
> for these or any other problem you find.
I don't think I'll find any others until these are fixed, since all I
did was try to compile every .d file in the tango/ hierarchy with "find
-name *.d -exec gdc [...]" :).
Though that last one should be trivial to fix.
>> * tango.stdc.posix.setjmp straight static asserts(false, "Architecture
>> not supported.") on version(X86_64) (though the actual error is an
>> undefined identifier used after that, presumably because static
>> asserts are evaluated a bit late in the parsing process)
>
> This was deliberate, as a clear and obvious reminder to expand support
> as needed.
Consider yourself reminded :).
> But perhaps this should be allowed to compile, accompanied
> by a pragma(msg) that Fibers won't work?
Oh, I didn't even know what it was used for, or that it was used by
Tango itself at all. Like mentioned above, I just indiscriminately tried
to compile everything...
> That said, if someone wants to
> pass on the relevant setjmp headers for a 64-bit glibc then I'll see
> about expanding support.
You mean the ones attached? Or do you need any others?
> With this in mind, I don't suppose GDC yet
> supports inline ASM for the new 64-bit registers, etc?
Not using the regular DMD-style with Intel syntax, IIRC. But the
"extended asm" (using at&t syntax in strings) supports them, I think.
Actually, if it's anything like regular GCC then it's almost literally
dumped into the input sent to gas (the gnu assembler).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: setjmp-headers.tar.gz
Type: application/x-gzip
Size: 1884 bytes
Desc: not available
Url : http://lists.puremagic.com/pipermail/digitalmars-d-announce/attachments/20070317/416dad2c/attachment.bin
More information about the Digitalmars-d-announce
mailing list