Thread overview | ||||||
---|---|---|---|---|---|---|
|
June 18, 2010 [phobos] Variant broken for large types | ||||
---|---|---|---|---|
| ||||
Variant hurts my brain. Something's screwy with using large values (ones that dynamic storage is allocated for automatically) but I haven't figured out what yet. Help? import std.variant; import std.typecons; import std.stdio; void main() { struct Large { int[1024] x; } Large large; Variant v = large; if( v.convertsTo!(Large) ) writeln( "yay" ); } (gdb) run Starting program: /Users/sean/Projects/3p/test/vtest Reading symbols for shared libraries +. done Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00000000 0x00002754 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi6getPtrFPvZPSmain5Large () (gdb) bt #0 0x00002754 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi6getPtrFPvZPSmain5Large () #1 0x000023c5 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi () #2 0x000032e8 in D3std7variant17__T8VariantNVk32Z8VariantN28__T10convertsToTSmain5LargeZ10convertsToMFZb () #3 0x000022a1 in _Dmain () #4 0x0000e92f in D2rt6dmain24mainUiPPaZi7runMainMFZv () #5 0x0000e866 in D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv () #6 0x0000e972 in D2rt6dmain24mainUiPPaZi6runAllMFZv () #7 0x0000e866 in D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv () #8 0x0000e7f4 in main () (gdb) |
June 18, 2010 [phobos] Variant broken for large types | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sean Kelly | Never mind. Three cheers for printf debugging. |
August 26, 2010 [phobos] Variant broken for large types | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sean Kelly | Works fine for me. Did you or someone else fix it in the meantime?
Andrei
On 6/18/10 21:51 PDT, Sean Kelly wrote:
> Variant hurts my brain. Something's screwy with using large values (ones that dynamic storage is allocated for automatically) but I haven't figured out what yet. Help?
>
>
> import std.variant;
> import std.typecons;
> import std.stdio;
>
> void main()
> {
> struct Large
> {
> int[1024] x;
> }
> Large large;
> Variant v = large;
> if( v.convertsTo!(Large) )
> writeln( "yay" );
> }
>
> (gdb) run
> Starting program: /Users/sean/Projects/3p/test/vtest
> Reading symbols for shared libraries +. done
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
> 0x00002754 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi6getPtrFPvZPSmain5Large ()
> (gdb) bt
> #0 0x00002754 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi6getPtrFPvZPSmain5Large ()
> #1 0x000023c5 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi ()
> #2 0x000032e8 in D3std7variant17__T8VariantNVk32Z8VariantN28__T10convertsToTSmain5LargeZ10convertsToMFZb ()
> #3 0x000022a1 in _Dmain ()
> #4 0x0000e92f in D2rt6dmain24mainUiPPaZi7runMainMFZv ()
> #5 0x0000e866 in D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv ()
> #6 0x0000e972 in D2rt6dmain24mainUiPPaZi6runAllMFZv ()
> #7 0x0000e866 in D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv ()
> #8 0x0000e7f4 in main ()
> (gdb)
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
|
August 27, 2010 [phobos] Variant broken for large types | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | Probably. I know that I made a few changes to Variant, and others have as well.
On Aug 26, 2010, at 11:15 PM, Andrei Alexandrescu wrote:
> Works fine for me. Did you or someone else fix it in the meantime?
>
> Andrei
>
> On 6/18/10 21:51 PDT, Sean Kelly wrote:
>> Variant hurts my brain. Something's screwy with using large values (ones that dynamic storage is allocated for automatically) but I haven't figured out what yet. Help?
>>
>>
>> import std.variant;
>> import std.typecons;
>> import std.stdio;
>>
>> void main()
>> {
>> struct Large
>> {
>> int[1024] x;
>> }
>> Large large;
>> Variant v = large;
>> if( v.convertsTo!(Large) )
>> writeln( "yay" );
>> }
>>
>> (gdb) run
>> Starting program: /Users/sean/Projects/3p/test/vtest
>> Reading symbols for shared libraries +. done
>>
>> Program received signal EXC_BAD_ACCESS, Could not access memory.
>> Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
>> 0x00002754 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi6getPtrFPvZPSmain5Large ()
>> (gdb) bt
>> #0 0x00002754 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi6getPtrFPvZPSmain5Large ()
>> #1 0x000023c5 in D3std7variant17__T8VariantNVk32Z8VariantN24__T7handlerTSmain5LargeZ7handlerFE3std7variant17__T8VariantNVk32Z8VariantN4OpIDPG32hPvZi ()
>> #2 0x000032e8 in D3std7variant17__T8VariantNVk32Z8VariantN28__T10convertsToTSmain5LargeZ10convertsToMFZb ()
>> #3 0x000022a1 in _Dmain ()
>> #4 0x0000e92f in D2rt6dmain24mainUiPPaZi7runMainMFZv ()
>> #5 0x0000e866 in D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv ()
>> #6 0x0000e972 in D2rt6dmain24mainUiPPaZi6runAllMFZv ()
>> #7 0x0000e866 in D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv ()
>> #8 0x0000e7f4 in main ()
>> (gdb)
>>
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
|
Copyright © 1999-2021 by the D Language Foundation