September 20, 2013
On 2013-09-20 11:46:34 +0000, Manu <turkeyman@gmail.com> said:

> Good to know it has been done elsewhere.
> Can you recall any ways in which it was unreliable? How did you use it in
> XCode?

I think it sometime failed to patch the executable, thus forcing a full rebuild and a relaunch. Perhaps just a little too often to be useful? I wasn't working on anything where avoiding a full rebuild was really useful, so I never really used it.


> In VS, you break/pause somewhere, make some code changes, and then when you
> press F10 (step), or F5 (continue), it takes a few seconds (building), and
> then it just continues with the new code. Pretty much seamless.

Same thing. Press Fix-and-continue instead of Continue, it rebuilds and then it continues running with the new code.

-- 
Michel Fortin
michel.fortin@michelf.ca
http://michelf.ca

September 20, 2013
On 2013-09-20 13:30:15 +0000, Jacob Carlborg <doob@me.com> said:

> On 2013-09-20 13:46, Manu wrote:
> 
>> Good to know it has been done elsewhere.
>> Can you recall any ways in which it was unreliable? How did you use it
>> in XCode?
>> In VS, you break/pause somewhere, make some code changes, and then when
>> you press F10 (step), or F5 (continue), it takes a few seconds
>> (building), and then it just continues with the new code. Pretty much
>> seamless.
> 
> I just found this: http://injectionforxcode.com/

Yes. They're doing it using the Objective-C runtime ability to change at runtime the pointer to methods while the older Fix-and-continue stuff was doing pretty the same thing using a special linker (ZeroLink) that actually links things lazily at runtime.
http://zathras.de/angelweb/blog-the-dangers-of-zerolink.htm

-- 
Michel Fortin
michel.fortin@michelf.ca
http://michelf.ca

September 20, 2013
On 2013-09-20 13:36:45 +0000, Michel Fortin <michel.fortin@michelf.ca> said:

> On 2013-09-20 11:46:34 +0000, Manu <turkeyman@gmail.com> said:
> 
>> Good to know it has been done elsewhere.
>> Can you recall any ways in which it was unreliable? How did you use it in
>> XCode?
> 
> I think it sometime failed to patch the executable, thus forcing a full rebuild and a relaunch. Perhaps just a little too often to be useful? I wasn't working on anything where avoiding a full rebuild was really useful, so I never really used it.

Ok, actually if you search for ZeroLink (the underlying linker behind that feature), you'll get a ton of results showing issues with it, like unexplained crashes.

-- 
Michel Fortin
michel.fortin@michelf.ca
http://michelf.ca

September 20, 2013
On 20 September 2013 21:53, dennis luehring <dl.soluz@gmx.net> wrote:

> Am 20.09.2013 13:46, schrieb Manu:
>
>  Good to know it has been done elsewhere.
>> Can you recall any ways in which it was unreliable? How did you use it in
>> XCode?
>> In VS, you break/pause somewhere, make some code changes, and then when
>> you
>> press F10 (step), or F5 (continue), it takes a few seconds (building), and
>> then it just continues with the new code. Pretty much seamless.
>>
>
> but that works only good if your design is very very interface oriented - i've never touched a project where it worked properbly
>

Can you elaborate what you mean?
I would say I avoid 'interfaces' like the plague... depending what you
mean. It's always worked great for me.


September 20, 2013
On 20 September 2013 23:22, Wyatt <wyatt.epp@gmail.com> wrote:

> On Friday, 20 September 2013 at 07:16:09 UTC, Manu wrote:
>
>> [...]
>>
>> It needs a reasonable amount of support from the compiler and presumably
>> cooperation from the debugger too. If people have
>> never heard of it, chances are, it doesn't exist :(
>>
>>  Google has been hitting close to this:
> http://www.youtube.com/watch?**v=U98rhV6wONo<http://www.youtube.com/watch?v=U98rhV6wONo>(slides:
> http://llvm.org/devmtg/2012-**04-12/Slides/Manuel_Klimek.pdf<http://llvm.org/devmtg/2012-04-12/Slides/Manuel_Klimek.pdf>
> **)
> Lot of potential here, even for a die-hard Vim user like myself.


... I didn't see him mention it at all. However he did mention lots of
useful things.
It looks like finally there are some people interested in closing the gap
between VS.
Clang is a super exciting piece of C/C++ technology. Why is it that they
are so innovative when GCC is basically stagnant for ages?

 Mmmm, a concept that I've always found completely amazing actually. How is
>> it that Linux - truly an OS for developers
>> (certainly not for end-users) - can consistently be plagued by
>> the worst dev tools out there? Surely someone in the past 30-40
>> years get's frustrated at some stage, looks at what MS have
>> been doing for over a decade, and think "shit, that's awesome,
>> I'd like that too!". I'm actually amazed that MS managed to
>> invent it in the first place. You'd think that Linux should have
>> gotten to it first...
>>
>>  Part of this would seem to be the simple fact that the GNU
> toolchain is the de facto standard for working in Linux and other
> Unixen.  If you've ever encountered a GNU project's general
> attitude toward patches and ideas from "outsiders", the concerns
> presented in this SO answer might offer some clarity as to why
> it's taken so long:
> http://stackoverflow.com/a/**4440794/432364<http://stackoverflow.com/a/4440794/432364>


Sadly, I don't think that guy who responded actually knew much about it. He
was making it sound harder than it is, and most of the questions/problems
he raised are known and/or solved already by MS.
The point is, there's a perfectly good working example, and it's well
understood how it works. (but apparently he didn't read up on it at all)

In short: getting all the people involved to agree on answers to
> all these questions is sort of a hard problem.
> (Though it looks like "Fix-and-continue" was added to the GDB
> roadmap about a year ago:
> http://gcc.gnu.org/wiki/**cauldron2012?action=**AttachFile&do=get&target=*
> *jkratoch.pdf<http://gcc.gnu.org/wiki/cauldron2012?action=AttachFile&do=get&target=jkratoch.pdf>
> )


Huzzah! Better late than never I guess...
I'm actually wondering if the recent movement of ex-windows dev's towards
things like android/iphone/web/etc, is fueling a whole bunch of new voices
behind the rubbish *nix tooling.
A massive industry of users who have for the longest time been perfectly
happy with VS, are now having to find new tools for prevailing non-MS
platforms, and becoming frustrated in the process. (I can refer to rant's
and complaints from countless (ex-)colleagues, perhaps numbering well into
the hundreds)

 I agree, I'm really looking forward to what they bring to the table. I
>> expect it's a lot of work though... they have over a
>> decade of catching up to do.
>>
>>  Per the links above, they might be closer than it initially
> appears.  Of course, it's also a matter of integration and coordination across multiple projects.  There are, occasionally, advantages to monolithic vertically-integrated dictatorships.


LLVM would seem to have the best shot at it. Given the current trajectory,
I'm optimistic I can abandon VS in maybe 2-3 years...
Don't get me wrong, there's loads of things wrong with VS. I'm not married
to it, it's actually crap in lots of ways, but it just has so many
productivity features that I consider absolutely non-negotiable.
I prefer Clang/GCC the compilers right now. But VS is so much more than a
compiler.


September 20, 2013
On 20 September 2013 23:36, Michel Fortin <michel.fortin@michelf.ca> wrote:

> On 2013-09-20 11:46:34 +0000, Manu <turkeyman@gmail.com> said:
>
>  Good to know it has been done elsewhere.
>> Can you recall any ways in which it was unreliable? How did you use it in XCode?
>>
>
> I think it sometime failed to patch the executable, thus forcing a full rebuild and a relaunch. Perhaps just a little too often to be useful? I wasn't working on anything where avoiding a full rebuild was really useful, so I never really used it.


In MSC/VS, this only really happens when you change a public struct. You
can't really change the structure of heap-allocated memory. Basically
anything else is fine though.
If you're tweaking code, you rarely want to re-structure your data. And
it's easy to understand what you've done, and why it says "a rebuild is
required" for certain changes.

 In VS, you break/pause somewhere, make some code changes, and then when you
>> press F10 (step), or F5 (continue), it takes a few seconds (building), and
>> then it just continues with the new code. Pretty much seamless.
>>
>
> Same thing. Press Fix-and-continue instead of Continue, it rebuilds and then it continues running with the new code.
>
>
> --
> Michel Fortin
> michel.fortin@michelf.ca
> http://michelf.ca
>
>


September 20, 2013
Manu wrote:
>> I see, I didn't know VS was capable of that, but it doesn't sound very
>> useful for large projects which take a lot of time to compile (which I'm
>> sure is important to you folks at Remedy).
>
> Actually, it's about a zillion times MORE useful for large projects. If the
> project is big, takes time to reboot/restart, and particularly in games
> where you might need to run to a particular part of a level and perform
> some bunch of actions to test the thing you're trying to debug in the first
> place.

Yes, I understand and agree. I made a typo. I meant to say: "..but it **does** sound very useful for large projects.."


> Fair enough, but it's weird I should have to. Basic productivity tools like
> that should surely be known by users of the tools...
> I'll just go and continue to assume that Visual Studio is still the only viable option on any platform :P

Well, again, this isn't my area of experience. Professionally, I spend most my time in Kate/Inkscape/Gimp/Krita/Blender working on front-end web development & graphics art. I have a long history of personal Direct3D/OpenGL projects and game logic, but in recent years that has been in C# and D (and some Nimrod), and It's been months since I've really had time to spend on anything there.

That said, based on other's responses so far, my bet is that no Linux has these features you need, yet. So your assumptions about VS are probably correct.


> Mmmm, a concept that I've always found completely amazing actually. How is
> it that Linux - truly an OS for developers (certainly not for end-users) -

This I actually disagree with that on a couple of levels.

First, "edit and continue" is really only a absolute necessity for the AAA game industry (and some others).. since the ability to make changes without having to re-navigate the game to the area being effected is a crucial time saver. Linux hasn't really been a consumer platform before Android, and Android most games (especially in the earlier days) a simple enough that doesn't matter as much. Not to mention you can develop Android apps on non-Linux platforms just fine.

So Linux hasn't really *needed* the ability to edit-and-continue until just now, when Android-based systems are becoming more powerful, and Valve is planning it's migration to Linux. Any company assessing the development cost of implementing the features into the tool-chains probably came to the conclusion it wasn't worth the effort.


Second, Linux is quickly becoming a platform that's fully fit for end-users. I've installed Gnome & Unity systems on my friends and family's computers, and for the most part they where very comfortable with the overall experience - going so far as to praise it as an "upgrade" in the cases where XP SP3 ate all their outdated computer's ram, and Linux did not. New distro's like Elementary OS present a very balanced and user-friendly desktop environment as well.

Linux can also be very pretty and feature-rich, and, as a geek, I like the available choice in DEs Linux offers rather than being stuck with the sometimes unsavory "advancements" Windows makes in their design (i'm looking at you, Windows 8).

Here is a screenshot of my computer:
http://reign-studios.com/screenshots/arch-linux-screenshot.png

I would have a hard time taking you seriously if you claim that isn't a rather pretty environment ;-)

And for features, I have a multi-monitor/multi-resolution AMD Catalyst setup with a HD 7850 (a worse-case scenario for X11 drivers), and what's funny is that the art tools I use (Blender, Krita, MyPaint, Inkscape) actually run much faster on Linux than Windows (mostly because it's their target platform). KDE works great with AMD Tear-free desktop, so no vsync or lags. So I am very happy with Linux as a platform in general.

There are still horror stories to be sure, but I think the biggest hurdle Linux faces today is simply the fact that it doesn't run Windows software or come pre-installed on laptops at Walmart.. (the corner cases exist because there aren't enough consumers worth supporting).. It will take a massive amount of advertising to sell Linux as a consumer alternative to Mac and Windows (and it will require being sold like Mac, where the OS is sold with sleek hardware that's drivers functions well with it). So far, only Google has been able to accomplish this, but hopefully Valve inadvertently helps Linux Desktop adoption as well by encouraging it as a gaming platform.
September 21, 2013
On 21 September 2013 07:06, F i L <witte2008@gmail.com> wrote:

> Manu wrote:
>
>> I see, I didn't know VS was capable of that, but it doesn't sound very
>>> useful for large projects which take a lot of time to compile (which I'm sure is important to you folks at Remedy).
>>>
>>
>> Actually, it's about a zillion times MORE useful for large projects. If
>> the
>> project is big, takes time to reboot/restart, and particularly in games
>> where you might need to run to a particular part of a level and perform
>> some bunch of actions to test the thing you're trying to debug in the
>> first
>> place.
>>
>
> Yes, I understand and agree. I made a typo. I meant to say: "..but it **does** sound very useful for large projects.."
>
>
>  Fair enough, but it's weird I should have to. Basic productivity tools
>> like
>> that should surely be known by users of the tools...
>> I'll just go and continue to assume that Visual Studio is still the only
>> viable option on any platform :P
>>
>
> Well, again, this isn't my area of experience. Professionally, I spend most my time in Kate/Inkscape/Gimp/Krita/**Blender working on front-end web development & graphics art. I have a long history of personal Direct3D/OpenGL projects and game logic, but in recent years that has been in C# and D (and some Nimrod), and It's been months since I've really had time to spend on anything there.
>
> That said, based on other's responses so far, my bet is that no Linux has these features you need, yet. So your assumptions about VS are probably correct.
>
>
>
>  Mmmm, a concept that I've always found completely amazing actually. How is
>> it that Linux - truly an OS for developers (certainly not for end-users) -
>>
>
> This I actually disagree with that on a couple of levels.
>
> First, "edit and continue" is really only a absolute necessity for the AAA game industry (and some others).. since the ability to make changes without having to re-navigate the game to the area being effected is a crucial time saver. Linux hasn't really been a consumer platform before Android, and Android most games (especially in the earlier days) a simple enough that doesn't matter as much. Not to mention you can develop Android apps on non-Linux platforms just fine.
>

It's certainly missed in my professional environment, but even outside
that, it's still super handy and saves a lot of time. Particularly if you
are in the habit of using it.
Do you remember when you first got a mouse with a mouse wheel? You thought
it was kinda cool, but I'll bet you didn't use it that much... you weren't
in the habit of it.
Have you tried to use a mouse without a mouse wheel recently? ... it's like
that.

So Linux hasn't really *needed* the ability to edit-and-continue until just
> now, when Android-based systems are becoming more powerful, and Valve is planning it's migration to Linux. Any company assessing the development cost of implementing the features into the tool-chains probably came to the conclusion it wasn't worth the effort.
>

No one *needs* to save their time and energy. It's just nice, and once you're in the habit of not wasting time, wasting time seems like an annoying waste of time ;)

Second, Linux is quickly becoming a platform that's fully fit for
> end-users. I've installed Gnome & Unity systems on my friends and family's computers, and for the most part they where very comfortable with the overall experience - going so far as to praise it as an "upgrade" in the cases where XP SP3 ate all their outdated computer's ram, and Linux did not. New distro's like Elementary OS present a very balanced and user-friendly desktop environment as well.
>

I agree... if they work (refer to my auto-update fail the other day).
Linux UI still feels largely like a facade to me. If ANYTHING goes wrong,
you are back at square 1, if you're not an expert, you probably can't fix
it.
But it's definitely getting there.

Linux can also be very pretty and feature-rich, and, as a geek, I like the
> available choice in DEs Linux offers rather than being stuck with the sometimes unsavory "advancements" Windows makes in their design (i'm looking at you, Windows 8).
>

Yeah, maybe. I personally couldn't care less. I almost always use the default on any system.

Here is a screenshot of my computer:
> http://reign-studios.com/**screenshots/arch-linux-**screenshot.png<http://reign-studios.com/screenshots/arch-linux-screenshot.png>
>
> I would have a hard time taking you seriously if you claim that isn't a rather pretty environment ;-)
>

It looks basically identical to my default mint15 install... ? Dunno, doesn't really affect me.

And for features, I have a multi-monitor/multi-resolution AMD Catalyst
> setup with a HD 7850 (a worse-case scenario for X11 drivers), and what's funny is that the art tools I use (Blender, Krita, MyPaint, Inkscape) actually run much faster on Linux than Windows (mostly because it's their target platform). KDE works great with AMD Tear-free desktop, so no vsync or lags. So I am very happy with Linux as a platform in general.
>
> There are still horror stories to be sure, but I think the biggest hurdle Linux faces today is simply the fact that it doesn't run Windows software or come pre-installed on laptops at Walmart.. (the corner cases exist because there aren't enough consumers worth supporting).. It will take a massive amount of advertising to sell Linux as a consumer alternative to Mac and Windows (and it will require being sold like Mac, where the OS is sold with sleek hardware that's drivers functions well with it). So far, only Google has been able to accomplish this, but hopefully Valve inadvertently helps Linux Desktop adoption as well by encouraging it as a gaming platform.
>

I still think the biggest problem by far is that only an expert can fix it when anything goes wrong. And things *always* go wrong. It might seem trivial if you love computer OS's at the command line and text file level, but I think to most users it just appears to be unstable and tedious. It's getting better. I want it to succeed... I really do.


September 21, 2013
Manu wrote:
> It's certainly missed in my professional environment, but even outside
> that, it's still super handy and saves a lot of time. Particularly if you
> are in the habit of using it.
> Do you remember when you first got a mouse with a mouse wheel? You thought
> it was kinda cool, but I'll bet you didn't use it that much... you weren't
> in the habit of it.
> Have you tried to use a mouse without a mouse wheel recently? ... it's like
> that.

Yes, I agree. My point wasn't that it isn't a convenience, only that linux tech companies with the ability to implement it probably haven't seen it as a worth-while effort (financially speaking) in the past, due to it not effecting their development practices as much as it may effects other industries (like major game creators).

I hope, as I'm sure you do, that, due to Valve's interest in Linux, better debugging features will be seen as more of a priority. It will be a brighter day for Linux when engine designers of AAA game companies don't have anything to complain about when it comes to developing on Linux ;)


> Linux UI still feels largely like a facade to me. If ANYTHING goes wrong,
> you are back at square 1, if you're not an expert, you probably can't fix it.

I recommend trying Elementary OS sometime (also, keep an eye on Manjaro). There are surely more automatic self-correcting feature on Windows, but Linux is getting better here I think. There has simply been more man-hours put into consumer-level features on Windows.


> I still think the biggest problem by far is that only an expert can fix it
> when anything goes wrong. And things *always* go wrong.

I think you may be exaggerating a bit. I've never had any outstanding issues with distro's like Unbuntu on my machine, but then, it's subject a lot to the quality of your drivers, which sometimes get neglected a bit due to linux's lack of popularity in the desktop consumer space. I've had good success installing on Intel laptops, for instance, and bad experience installing on AMD laptops. But I think you'd find the same was probably true (or worse) with Mac. Which is why I mentioned the only way to sell Linux would be to put it in a fancy box and paint it's face with some expensive advertising (just like Mac and Sony do with BSD, only someone needs to do it more openly).

I do agree, there are some areas Linux needs more time to bake, the Display Server is a good example (and PulseAudio), also things like more user-friendly Software Centers. But projects like Wayland, Gnome, Ubuntu, and Elementary are doing good work, and there are some good improvements on the way in the next year or two I think.
September 21, 2013
Am 21.09.2013 07:10, schrieb F i L:
> Manu wrote:
>> It's certainly missed in my professional environment, but even outside
>> that, it's still super handy and saves a lot of time. Particularly if you
>> are in the habit of using it.
>> Do you remember when you first got a mouse with a mouse wheel? You
>> thought
>> it was kinda cool, but I'll bet you didn't use it that much... you
>> weren't
>> in the habit of it.
>> Have you tried to use a mouse without a mouse wheel recently? ... it's
>> like
>> that.
>
> Yes, I agree. My point wasn't that it isn't a convenience, only that
> linux tech companies with the ability to implement it probably haven't
> seen it as a worth-while effort (financially speaking) in the past, due
> to it not effecting their development practices as much as it may
> effects other industries (like major game creators).
>
> I hope, as I'm sure you do, that, due to Valve's interest in Linux,
> better debugging features will be seen as more of a priority. It will be
> a brighter day for Linux when engine designers of AAA game companies
> don't have anything to complain about when it comes to developing on
> Linux ;)
>
>
>> Linux UI still feels largely like a facade to me. If ANYTHING goes wrong,
>> you are back at square 1, if you're not an expert, you probably can't
>> fix it.
>
> I recommend trying Elementary OS sometime (also, keep an eye on
> Manjaro). There are surely more automatic self-correcting feature on
> Windows, but Linux is getting better here I think. There has simply been
> more man-hours put into consumer-level features on Windows.
>
>
>> I still think the biggest problem by far is that only an expert can
>> fix it
>> when anything goes wrong. And things *always* go wrong.
>
> I think you may be exaggerating a bit. I've never had any outstanding
> issues with distro's like Unbuntu on my machine, but then, it's subject
> a lot to the quality of your drivers, which sometimes get neglected a
> bit due to linux's lack of popularity in the desktop consumer space.
> I've had good success installing on Intel laptops, for instance, and bad
> experience installing on AMD laptops. But I think you'd find the same
> was probably true (or worse) with Mac. Which is why I mentioned the only
> way to sell Linux would be to put it in a fancy box and paint it's face
> with some expensive advertising (just like Mac and Sony do with BSD,
> only someone needs to do it more openly).
>
> I do agree, there are some areas Linux needs more time to bake, the
> Display Server is a good example (and PulseAudio), also things like more
> user-friendly Software Centers. But projects like Wayland, Gnome,
> Ubuntu, and Elementary are doing good work, and there are some good
> improvements on the way in the next year or two I think.


The sad thing is that although Linux distributions have progressed quite a lot, I would have said something like what you are saying back in 1994-2005 time frame.

Nowadays I just use Windows on my main laptop with a Linux VM on it.

I do have a small netbook with Linux on it for travelling, but I was lucky Asus sells laptops with Linux distributions in Germany. And even then, as I described a few times, the drivers got borked due to FOSS religious decisions.

This to say I stopped caring about dual boot and playing around with configuration files. Either it works out of the box, or I have better things to do with my time.

--
Paulo