Re: Object file questions

2014-08-17 Thread Artur Skawina via D.gnu
On 08/17/14 16:16, Johannes Pfau via D.gnu wrote: > Am Sun, 17 Aug 2014 15:15:12 +0200 > schrieb "Artur Skawina via D.gnu" : > >> Do you see any problems with it? (Other than gcc not removing >> that dead constant load) > > It's perfect for structs, but when simply declaring a Volatile!uint the >

Re: Object file questions

2014-08-17 Thread Timo Sintonen via D.gnu
On Sunday, 17 August 2014 at 14:47:57 UTC, Johannes Pfau wrote: Am Sun, 17 Aug 2014 14:36:53 + schrieb "Timo Sintonen" : On Sunday, 17 August 2014 at 13:59:03 UTC, Artur Skawina via D.gnu wrote: > On 08/17/14 15:44, Timo Sintonen via D.gnu wrote: > >> I am compiling for arm and I am sorry

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sun, 17 Aug 2014 16:45:15 +0200 schrieb Johannes Pfau : > the callee can't rely on its caller of course ;-)

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sun, 17 Aug 2014 14:36:53 + schrieb "Timo Sintonen" : > On Sunday, 17 August 2014 at 13:59:03 UTC, Artur Skawina via > D.gnu wrote: > > On 08/17/14 15:44, Timo Sintonen via D.gnu wrote: > > > >> I am compiling for arm and I am sorry I misinterpreted the > >> optimized code. Actually the c

Re: Object file questions

2014-08-17 Thread Timo Sintonen via D.gnu
On Sunday, 17 August 2014 at 13:59:03 UTC, Artur Skawina via D.gnu wrote: On 08/17/14 15:44, Timo Sintonen via D.gnu wrote: I am compiling for arm and I am sorry I misinterpreted the optimized code. Actually the code is correct but it still does not work. The problem is that the call to get th

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sun, 17 Aug 2014 15:15:12 +0200 schrieb "Artur Skawina via D.gnu" : > Do you see any problems with it? (Other than gcc not removing > that dead constant load) It's perfect for structs, but when simply declaring a Volatile!uint the pointer dereference must be done manually, right? enum Ti

Re: Object file questions

2014-08-17 Thread Artur Skawina via D.gnu
On 08/17/14 15:44, Timo Sintonen via D.gnu wrote: > I am compiling for arm and I am sorry I misinterpreted the optimized code. > Actually the code is correct but it still does not work. > The problem is that the call to get the tls pointer for volatile_dummy seems > to corrupt the register (r3)

Re: Object file questions

2014-08-17 Thread Timo Sintonen via D.gnu
On Sunday, 17 August 2014 at 11:35:33 UTC, Artur Skawina via D.gnu wrote: It works for me: import volat; // module w/ the last Volatile(T) implementation. struct uartreg { Volatile!int sr; Volatile!int dr; Volatile!int brr; Volatile!int cr1; Volatile

Re: Object file questions

2014-08-17 Thread Artur Skawina via D.gnu
On 08/17/14 10:49, Johannes Pfau via D.gnu wrote: > That's a good start. Can you also get unary operators working? > e.g > TimerB++; Unary ops are easy. If you mean post-inc and post-dec -- that's a language problem. At least for volatile, they will cause a compile error; for atomic ops the naiv

Re: Object file questions

2014-08-17 Thread Artur Skawina via D.gnu
On 08/17/14 13:57, Johannes Pfau via D.gnu wrote: > Am Sun, 17 Aug 2014 13:38:36 +0200 > schrieb "Artur Skawina via D.gnu" : > >> On 08/17/14 10:31, Johannes Pfau via D.gnu wrote: >>> Am Sat, 16 Aug 2014 13:15:57 +0200 >>> schrieb "Artur Skawina via D.gnu" : >>> It already does. Apparently th

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sun, 17 Aug 2014 13:38:36 +0200 schrieb "Artur Skawina via D.gnu" : > On 08/17/14 10:31, Johannes Pfau via D.gnu wrote: > > Am Sat, 16 Aug 2014 13:15:57 +0200 > > schrieb "Artur Skawina via D.gnu" : > > > >> It already does. Apparently there are some kind of problems with > >> certain setups,

Re: Object file questions

2014-08-17 Thread Artur Skawina via D.gnu
On 08/17/14 09:57, Timo Sintonen via D.gnu wrote: > What is the purpose of volatile_dummy? Even if it is not used, Ensuring ordering, w/o it the compiler could reorder operations on different volatile objects. (Which isn't necessarily a bad thing, but people expect certain semantics of 'volatile'

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sun, 17 Aug 2014 10:44:34 + schrieb "Mike" : > On Sunday, 17 August 2014 at 08:26:40 UTC, Johannes Pfau wrote: > > > > Great! But I think this pull request addresses a different > > monitor > > problem: There's an implicit __monitor field in every class > > right now, > > which makes ever

Re: Object file questions

2014-08-17 Thread Artur Skawina via D.gnu
On 08/17/14 10:31, Johannes Pfau via D.gnu wrote: > Am Sat, 16 Aug 2014 13:15:57 +0200 > schrieb "Artur Skawina via D.gnu" : > >> It already does. Apparently there are some kind of problems with >> certain setups, but, instead of addressing those problems, more and >> more /language/ hacks are pro

Re: Object file questions

2014-08-17 Thread Artur Skawina via D.gnu
On 08/17/14 11:24, Timo Sintonen via D.gnu wrote: > On Sunday, 17 August 2014 at 07:57:15 UTC, Timo Sintonen wrote: >> >> >> This seems to work. >> > > This does not work with member functions > > struct uartreg { > Volatile!int sr; > Volatile!int dr; > Volatile!int brr; > Volatil

Re: Object file questions

2014-08-17 Thread Mike via D.gnu
On Sunday, 17 August 2014 at 08:26:40 UTC, Johannes Pfau wrote: Great! But I think this pull request addresses a different monitor problem: There's an implicit __monitor field in every class right now, which makes every class _instance_ bigger. But the monitor in TypeInfo/ClassInfo is differ

Re: Object file questions

2014-08-17 Thread Mike via D.gnu
On Saturday, 16 August 2014 at 11:16:09 UTC, Artur Skawina via D.gnu wrote: A `@nocode` attribute would be a good idea, yes, but there's no need to make it implicit for `@inline`. But this situation demonstrates why having an intelligent linker is a better solution than decorating with attrib

Re: Object file questions

2014-08-17 Thread Timo Sintonen via D.gnu
On Sunday, 17 August 2014 at 07:57:15 UTC, Timo Sintonen wrote: This seems to work. This does not work with member functions struct uartreg { Volatile!int sr; Volatile!int dr; Volatile!int brr; Volatile!int cr1; Volatile!int cr2; Volatile!int cr3; Volatile!int gt

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sun, 17 Aug 2014 07:57:15 + schrieb "Timo Sintonen" : > On Saturday, 16 August 2014 at 20:01:06 UTC, Artur Skawina via > D.gnu wrote: > > On 08/16/14 20:40, Artur Skawina wrote: > >>> How can I use this with struct members ? > >> > >> One possibility would be to declare all members as > >

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sat, 16 Aug 2014 11:58:49 +0200 schrieb "Artur Skawina via D.gnu" : > On 08/16/14 09:33, Johannes Pfau via D.gnu wrote: > > https://github.com/D-Programming-GDC/GDC/pull/82 > > [Only noticed this accidentally; using a mailing list > instead of some web forum would increase visibility...] > >

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sat, 16 Aug 2014 13:15:57 +0200 schrieb "Artur Skawina via D.gnu" : > On 08/16/14 12:41, Mike via D.gnu wrote: > > On Saturday, 16 August 2014 at 09:59:03 UTC, Artur Skawina via > > D.gnu wrote: > >> > >> Taking the address of an always_inline function is allowed. > >> > > > > It may be allowe

Re: Object file questions

2014-08-17 Thread Johannes Pfau via D.gnu
Am Sat, 16 Aug 2014 10:36:19 + schrieb "Mike" : > On Saturday, 16 August 2014 at 09:29:14 UTC, Johannes Pfau wrote: > > > I just had a look at this and ClassInfo has a mutable 'monitor' > > field, > > so it can't be placed into read-only data. > > This was discussed at DConf 2014. > https

Re: Object file questions

2014-08-17 Thread Timo Sintonen via D.gnu
On Saturday, 16 August 2014 at 20:01:06 UTC, Artur Skawina via D.gnu wrote: On 08/16/14 20:40, Artur Skawina wrote: How can I use this with struct members ? One possibility would be to declare all members as `Volatile!...`, or I did not like that required dereference in the previous versio

[Bug 152] ICE, CtorDeclaration::semantic(Scope*): Assertion `tf && tf->ty == Tfunction' failed

2014-08-17 Thread via D.gnu
http://bugzilla.gdcproject.org/show_bug.cgi?id=152 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #1 fro

[Bug 152] New: ICE, CtorDeclaration::semantic(Scope*): Assertion `tf && tf->ty == Tfunction' failed

2014-08-17 Thread via D.gnu
http://bugzilla.gdcproject.org/show_bug.cgi?id=152 Bug ID: 152 Summary: ICE, CtorDeclaration::semantic(Scope*): Assertion `tf && tf->ty == Tfunction' failed Product: GDC Version: 4.9.x Hardware: All OS: All