Jump to page: 1 2
Thread overview
[Bug 10] ARM: runnable/opover2.d fails: xopEquals fallback aborts instead of throwing Exception
Feb 12, 2014
Johannes Pfau
Feb 12, 2014
Johannes Pfau
Feb 12, 2014
Iain Buclaw
Feb 12, 2014
Johannes Pfau
Feb 13, 2014
Johannes Pfau
Feb 14, 2014
Iain Buclaw
Feb 14, 2014
Iain Buclaw
Feb 14, 2014
Johannes Pfau
Feb 15, 2014
Johannes Pfau
Feb 15, 2014
Iain Buclaw
Feb 15, 2014
Johannes Pfau
February 12, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

Andrei Alexandrescu <andrei@erdani.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrei@erdani.com

--- Comment #7 from Andrei Alexandrescu <andrei@erdani.com> 2014-02-12 07:06:25 GMT ---
$200 bounty created: https://www.bountysource.com/issues/1407205-arm-runnable-opover2-d-fails-xopequals-fallback-aborts-instead-of-throwing-exception

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 12, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

Johannes Pfau <johannespfau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|ibuclaw@gdcproject.org      |johannespfau@gmail.com

--- Comment #8 from Johannes Pfau <johannespfau@gmail.com> 2014-02-12 07:35:00 GMT ---
@Andrei I already fixed that in the ARM branch. Sorry for not mentioning this
before. The GDC master branch was broken for some time and I couldn't merge the
ARM changes.
As the 2.065 changes on the GDC branch have been reverted I'll start merging
the ARM stuff later today.

https://github.com/jpf91/GDC/commit/9bb8b803f9e25ce98b555e8eaf765f0e73605796

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 12, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

Johannes Pfau <johannespfau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |johannespfau@gmail.com

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 12, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw@gdcproject.org

--- Comment #9 from Iain Buclaw <ibuclaw@gdcproject.org> 2014-02-12 08:19:44 GMT ---
(In reply to comment #8)
> @Andrei I already fixed that in the ARM branch. Sorry for not mentioning this
> before. The GDC master branch was broken for some time and I couldn't merge the
> ARM changes.
> As the 2.065 changes on the GDC branch have been reverted I'll start merging
> the ARM stuff later today.
> 
> https://github.com/jpf91/GDC/commit/9bb8b803f9e25ce98b555e8eaf765f0e73605796

Congrats, you've won! :o)

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 12, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

--- Comment #10 from Johannes Pfau <johannespfau@gmail.com> 2014-02-12 12:39:42 GMT ---
Indeed, somehow feels like cheating though ;-)

@Iain do you agree with the solution or should I open a pull request for further discussion?

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 12, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

--- Comment #11 from Andrei Alexandrescu <andrei@erdani.com> 2014-02-12 16:37:46 GMT ---
I'm fine with paying for a solution that was almost done, unless you guys would like me to reallocate the monies to another, more important bug. Please advise.

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 13, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

--- Comment #12 from Johannes Pfau <johannespfau@gmail.com> 2014-02-13 08:06:11 GMT ---
I had a look at the other bugs but it's difficult to estimate how much work is needed for those that qualify as 'more important' (NRVO, non-POD types). NRVO needs some work/clarifications on the D spec first and then it's possible that we can't even implement it in a nice way with the GCC backend. Non-POD types is a simple change in GDC but it'll require lots of frontend work. Overall I don't think a bounty on these would help.

The rest are either easier to solve or we don't have the hardware to test them (OSX) or unsupported (windows). I'd propose we keep the bounty on this bug but I'll promise to fix #62 and #65 as well. These are probably easy to fix debug-info bugs that are kinda low priority so this is some incentive to actually fix them.

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 14, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

--- Comment #13 from Iain Buclaw <ibuclaw@gdcproject.org> 2014-02-14 09:50:14 GMT ---
(In reply to comment #12)
> I had a look at the other bugs but it's difficult to estimate how much work is needed for those that qualify as 'more important' (NRVO, non-POD types). NRVO needs some work/clarifications on the D spec first and then it's possible that we can't even implement it in a nice way with the GCC backend. Non-POD types is a simple change in GDC but it'll require lots of frontend work. Overall I don't think a bounty on these would help.
> 
> The rest are either easier to solve or we don't have the hardware to test them
> (OSX)

I was actually donated an OSX machine... I should really turn it on sometime rather than let it collect dust.  :o)

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 14, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

--- Comment #14 from Iain Buclaw <ibuclaw@gdcproject.org> 2014-02-14 10:09:13 GMT ---
(In reply to comment #8)
> @Andrei I already fixed that in the ARM branch. Sorry for not mentioning this
> before. The GDC master branch was broken for some time and I couldn't merge the
> ARM changes.
> As the 2.065 changes on the GDC branch have been reverted I'll start merging
> the ARM stuff later today.
> 
> https://github.com/jpf91/GDC/commit/9bb8b803f9e25ce98b555e8eaf765f0e73605796

I've just seen the check-in this morning.  It's quite sad that we can't actually apply any of these optimisations that Walter seems to bang on about all the time in reality.

Out of curiosity, is XopEquals marked as pure nothrow?

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
February 14, 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=10

--- Comment #15 from Johannes Pfau <johannespfau@gmail.com> 2014-02-14 19:15:01 GMT ---
Yes, it's kinda sad. However I don't think any other solution will work. TREE_NOTHROW means 'wont ever throw anything' and the backend seems to rely on this so we just can't map that to the 'nothrow' keyword.


* TypeInfo_Struct.xopEquals in object_d. is marked as '@safe pure nothrow'
* it's called from TypeInfo_Struct.equals '@trusted pure nothrow const'
* _xopEquals in object.d is not marked as nothrow (but it throws an Error so it
could be)
* the compiler generates a stub for TypeInfo_Struct.xopEquals which is not
nothrow. This stub then calls _xopEquals

So the autogenerated stub and _xopEquals could be marked as nothrow as well but it wouldn't change anything.

This reported bug is not the only cases were this causes problems. These test cases also fail as long as we set TREE_NOTHROW:

FAIL: runnable/gdc.d execution test
FAIL: runnable/opover2.d execution test
FAIL: runnable/test41.d execution test
FAIL: runnable/testcontracts.d execution test
FAIL: runnable/testdstress.d execution test
FAIL: runnable/testline.d execution test
FAIL: runnable/xtest46.d execution test

Here's the GCC commit which introduced removing unwind tables for TREE_NOTHROW functions, for reference: http://gcc.gnu.org/ml/gcc-patches/2008-03/msg00958.html

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
« First   ‹ Prev
1 2