September 20, 2013
On 20 September 2013 14:53, F i L <witte2008@gmail.com> wrote:

> Manu wrote:
>
>> Edit-and-continue is what MS calls the obvious extension from incremental
>> linking where you can re-link your exe while it's running and paused in a
>> debugger, and then continue debugging the current process with the new exe
>> after it links your code changes.
>> it's one of visual studio's most valuable tools.
>>
>
> 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.

Remember, non make-based build systems typically perform reliable
dependency checking, so if you tweak code in one file, it only compiles
that one file... it's very fast.
Also, incremental linking is precisely that, incremental, so if you only
change one function, it only needs to append one function on the end of the
exe. It's also very fast.
Visual Studio is very fast, this is the main reason why it's awesome, and
the industry standard :)
In a tech company, there's nothing more valuable than your programmers time.

I figured it was something along those lines though, so I tested editing a
> file while stopped on a breakpoint, and then running it and it didn't work. It's possible there's some switch i needed to hit, or that it would work with Clang/LLDB, but I doubt it (don't quote me on that though, you should ask the KDE folks).


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 :(

 It requires support from various stages in the pipeline and gui, but it's
>> been available for a decade from MS. Surely someone else has bothered to copy it? (assuming it was invented by MS?)
>>
>
> I wouldn't know. You'll probably get a lot more information on what's available from asking the GCC, LLVM, and KDevelop IRCs.


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

 Debugging is the most important feature an IDE offers by far, and it's only
>> half-implemented if it doesn't support edit-and-continue. Everything else looked good to me in kdevelop. I'll definitely give it a bit more time. Sadly there seems to be no push for D in kdevelop though :(
>>
>
> Make sure to ask someone more informed than me before you write it off, but I'm guessing this is an area Linux dev tools are lacking in compared to Windows.
>

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...

In Gabe Newell's recent talk at LinuxCon, he mentioned Valve is interested
> in make Linux a more friendly environment for game developers. To that end, they're working on two different C/C++ debuggers (one for LLVM, I forget the other) and I'm guessing they wouldn't feel the need to do that unless they where unhappy with the current situation compared to what developers expect from Windows. Hopefully their efforts are fruitful in the near future.
>

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.

I've been using Linux and FOSS tools for nearly two years now, and I'm
> surprised I'd never heard about KDevelope until only a few months ago. It's a great IDE with a lot of nice features (even has Sublime-style text overview) and I hope D gets more attention from the KDev/Kate teams in the future.
>

Mmmm, I stumbled across it years ago, the first time I ever tried KDE; it
must have been around feisty, hardy, or intrepid (they're the names that
come to mind).
I thought it looked promising, but it certainly 'wasn't there' at the time.


September 20, 2013
On 2013-09-20 06:53, F i L wrote:

> I figured it was something along those lines though, so I tested editing
> a file while stopped on a breakpoint, and then running it and it didn't
> work. It's possible there's some switch i needed to hit, or that it
> would work with Clang/LLDB, but I doubt it (don't quote me on that
> though, you should ask the KDE folks).

I've seen a couple of talks about LLDB and I'm pretty sure they would have mentioned this feature if it existed. Unless it's so common feature that everybody expects it to exist.

-- 
/Jacob Carlborg
September 20, 2013
On Friday, 20 September 2013 at 07:16:09 UTC, Manu wrote:
> On 20 September 2013 14:53, F i L <witte2008@gmail.com> wrote:
>
>> ...
>
>  It requires support from various stages in the pipeline and gui, but it's
>>> been available for a decade from MS. Surely someone else has bothered to
>>> copy it? (assuming it was invented by MS?)

This type of workflow already existed in non C languages before.

Microsoft just brought them into C land.

> ...
>
> 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...


Because many still use the system as we were back in the 70's and
UNIX System V was the latest version.

Even though we have nice GUIs since the mid-80's.


>
> In Gabe Newell's recent talk at LinuxCon, he mentioned Valve is interested
>> in make Linux a more friendly environment for game developers. To that end,
>> they're working on two different C/C++ debuggers (one for LLVM, I forget
>> the other) and I'm guessing they wouldn't feel the need to do that unless
>> they where unhappy with the current situation compared to what developers
>> expect from Windows. Hopefully their efforts are fruitful in the near
>> future.
>>
>
> 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.

There are nice debuggers, like TotalView for example.

But proprietary software is evil. :)


>
> I've been using Linux and FOSS tools for nearly two years now, and I'm
>> surprised I'd never heard about KDevelope until only a few months ago. It's
>> a great IDE with a lot of nice features (even has Sublime-style text
>> overview) and I hope D gets more attention from the KDev/Kate teams in the
>> future.
>>

KDevelop and KDE always suffered a big push back from Linux and BSD developers, because of their C++ roots.

Back when I did a few contributions to GTKmm, the GNOME community used to ostracize the project because it was being done in C++.  There used to exist a few big C vs C++ flamewars back then

KDevelop was always seen as an IDE for KDE developers, nothing else.

I always got the feeling C++ was better received by developers targeting commercial UNIX systems, than the ones living in BSD/Linux land.

--
Paulo
September 20, 2013
On 2013-09-20 02:10:30 +0000, Manu <turkeyman@gmail.com> said:

> It requires support from various stages in the pipeline and gui, but it's
> been available for a decade from MS. Surely someone else has bothered to
> copy it? (assuming it was invented by MS?)

Apple had Fix-and-continue when Xcode 1.0 replaced Project Builder ten years ago. It was abandoned in Xcode 4. I'm not sure how reliable it was, but I remember having played with it when it was new but not bothering much later.

I guess the feature not being completely reliable, moving the toolchain from gcc to clang, and code signatures being required when running iOS apps all contributed to make the feature go away. Perhaps they'll revive that feature now that their toolchain is more stable. File enhancement requests on Apple's bug tracker if you want to put some pressure on them to resurrect the feature.


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

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

> On 2013-09-20 02:10:30 +0000, Manu <turkeyman@gmail.com> said:
>
>  It requires support from various stages in the pipeline and gui, but it's
>> been available for a decade from MS. Surely someone else has bothered to copy it? (assuming it was invented by MS?)
>>
>
> Apple had Fix-and-continue when Xcode 1.0 replaced Project Builder ten years ago. It was abandoned in Xcode 4. I'm not sure how reliable it was, but I remember having played with it when it was new but not bothering much later.
>
> I guess the feature not being completely reliable, moving the toolchain from gcc to clang, and code signatures being required when running iOS apps all contributed to make the feature go away. Perhaps they'll revive that feature now that their toolchain is more stable. File enhancement requests on Apple's bug tracker if you want to put some pressure on them to resurrect the feature.


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.


September 20, 2013
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

September 20, 2013
On 20/09/13 10:47, PauloPinto wrote:
> KDevelop and KDE always suffered a big push back from Linux and BSD developers,
> because of their C++ roots.
>
> Back when I did a few contributions to GTKmm, the GNOME community used to
> ostracize the project because it was being done in C++. There used to exist a
> few big C vs C++ flamewars back then

As I recall there was a bit of an ideological aspect around this.  The GNU guidelines, written quite a long while ago, advocated using C rather than C++ where possible because it was more portable, and for some people this seems to have turned into a religious dogma rather than a practical consideration (much like kosher or halal, to be honest...).

> KDevelop was always seen as an IDE for KDE developers, nothing else.

Well, whatever the intent, if you want to install it you have to pull in a ton of KDE dependencies, which is always annoying if you're on a different desktop environment and don't use any other KDE applications.

I used it a fair bit -- albeit as a superpowered text editor rather than a true IDE -- up until the switch to KDE 4, when the new release became very unstable and prone to crashing (if I recall right it was the symbol parsing that would fall over).

I'm sure it's a great IDE (the KDE devs have always been good at building really functional software), but it doesn't seem an ideal target for cross-platform use.
September 20, 2013
On Friday, 20 September 2013 at 07:16:09 UTC, Manu wrote:
> 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...

I guess there are 2 main reasons:

1)
culture - many of programmers who could have addressed that stick to rather old-school development process and don't feel demand for such stuff.

For example, when I have tried VS and found that feature I thought "wow, neat". But I am only using debugger if something crashes, relying on logging facilities otherwise -> forgot about it next day until you have mentioned it in this thread :)

2)
lack of large projects (relatively to Windows). In smaller you can always just recompile module in question so the benefit is not that huge (and there are always other things to spend time on).

Also it needs to be a collaboration between compiler, linker and IDE and stuff like that is always tricky in uncontrolled development environment ;)
September 20, 2013
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 (slides:
http://llvm.org/devmtg/2012-04-12/Slides/Manuel_Klimek.pdf)
Lot of potential here, even for a die-hard Vim user like myself.

> 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
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)

> 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.

-Wyatt
September 20, 2013
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/

-- 
/Jacob Carlborg