Everyone concerned about performance on mobile (and probably other platforms some day when they also get ARC) should absolutely vote for these:

Everyone concerned about performance on mobile (and probably other platforms some day when they also get ARC) should absolutely vote for these:

https://quality.embarcadero.com/browse/RSP-9712
https://quality.embarcadero.com/browse/RSP-9946

Comments

  1. About the implicit const evaluation. Is the one-pass compiler really capable of resolving this?

    ReplyDelete
  2. Leif Uneus The new ARC compiler is based on LLVM, I highly doubt it's still one-pass, and if so it can be easily extended to be multi-pass.

    ReplyDelete
  3. Not that I'm suggesting adding "implicit const" checking is trivial, but the LLVM is made to be modular. IIRC the Oxygene compiler, which is also LLVM based, has half a dozen passes or more.

    ReplyDelete
  4. Is your EDN login not supposed to "Just work" with the new quality site? Mine doesn't?!?

    Edit: Figured it out: I log into EDN with my email address, however for the new Quality site you must use your actual account name when logging in. (For the record, I also reset my EDN account password in trying to get this working, so not sure if that makes a difference or not.)

    ReplyDelete
  5. The day other platforms go into ARC, I will definitively leave Delphi, since it won't be the same compiler, and will break all my non trivial code. I just hope FPC will continue to be as compatible as it is.

    ReplyDelete
  6. For interest, there was a discussion on the FPC mailing list September 2014 about ARC implementations and some interesting comments from several posters, in particular Boian Mitov (not to undervalue any of the other posters who also made very insightful posts!) which suggests to me that one should not jump to conclusions regarding ARC too quickly.  

    The thread is visible here: http://goo.gl/8Ra9bn

    Well worth reading if you're interested in this kind of stuff.

    ReplyDelete
  7. Walter Prins Yet another of these endless debates with probably no outcome - I followed several of these about generics, enhanced rtti and anonymous methods but lost faith in seeing them implemented anytime soon.

    ReplyDelete
  8. In the Windows-compiler analog, there are valid use cases for overriding reference counting.  It's a moderately common technique.  Would any of those still be useful or valid on mobile?

    The second link - optimising when refcount methods are called - is a resounding YES.  I have one app I wrote recently, on Windows, where refcounting is the single largest performance issue. It uses interfaced objects heavily, and has const in every place it can, yet refcounts are still added and removed in many, many places where code analysis can prove they are not required.  I would love to see this improved.

    ReplyDelete
  9. Just FYI, the Delphi compiler front end is a single pass compiler, yes. LLVM is used as back end (on some platforms, not all).

    ReplyDelete

Post a Comment