Re: [fpc-pascal] Re: OT: Amazing new development tools

2012-03-03 Thread Mark Morgan Lloyd

Martin wrote:

On 29/02/2012 11:44, Mark Morgan Lloyd wrote:

Martin wrote:

Sure one *could* record *all* variables, and the callstack...
But what if
- you add a new variable, what to initialize it with?
- remove the function that called the current code, or even delete 
the line where you just paused?


Or one could record all input, and replay the app. But that has 
limits too.


Neither of those are likely to happen


btw on some platforms, gdb can step backwards (again limitations 
apply). But it's not integrated in Lazarus yet...


Noting what I described looking at in 
http://lists.freepascal.org/lists/fpc-other/2012-February/000670.html, 
I found myself wondering whether the IDE could tweak (writable?) 
constants at runtime, or possibly closures once they exist.


Being able to tune e.g. the exact position of visible components could 
be rather useful.




The evaluate dialog, offers a way to change values.
Yes it is not at all comfortable ...

And be warned, it performs no checks. Trying to change managed types 
(string, dyn array) will almost certainly crash your app.


I guess, if you have a Form you can change it's values. Only to make 
those thinks visible on screen, it is not enough to change them. You 
need to call the setter. And calling functions from the debugger is not 
yet there...


Thanks, noted. I must admit that I've never really got my head around 
evaluation of anything other than simple variables, but I'm sure that's 
because I've not spent enough time really getting to grips with it.



-
If you work on the IDE itself try the package IdeInspector (it adds 
itself to view  Ide Internals if installed)


Thanks, I'll make a point of looking at that, but it leads my into 
another question which I'll post in the Lazarus ML since I think it's 
out of place here.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Re: OT: Amazing new development tools

2012-03-02 Thread Martin

On 29/02/2012 11:44, Mark Morgan Lloyd wrote:

Martin wrote:

Sure one *could* record *all* variables, and the callstack...
But what if
- you add a new variable, what to initialize it with?
- remove the function that called the current code, or even delete 
the line where you just paused?


Or one could record all input, and replay the app. But that has 
limits too.


Neither of those are likely to happen


btw on some platforms, gdb can step backwards (again limitations 
apply). But it's not integrated in Lazarus yet...


Noting what I described looking at in 
http://lists.freepascal.org/lists/fpc-other/2012-February/000670.html, 
I found myself wondering whether the IDE could tweak (writable?) 
constants at runtime, or possibly closures once they exist.


Being able to tune e.g. the exact position of visible components could 
be rather useful.




The evaluate dialog, offers a way to change values.
Yes it is not at all comfortable ...

And be warned, it performs no checks. Trying to change managed types 
(string, dyn array) will almost certainly crash your app.


I guess, if you have a Form you can change it's values. Only to make 
those thinks visible on screen, it is not enough to change them. You 
need to call the setter. And calling functions from the debugger is not 
yet there...



-
If you work on the IDE itself try the package IdeInspector (it adds 
itself to view  Ide Internals if installed)



___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Re: OT: Amazing new development tools

2012-03-01 Thread Mark Morgan Lloyd

Martin wrote:

On 27/02/2012 12:32, Lukasz Sokol wrote:

On 26/02/2012 11:17, Mattias Gaertner wrote:

On Sun, 26 Feb 2012 11:43:38 +0100 (CET) Michael Van Canneyt
mich...@freepascal.org  wrote:



On Sun, 26 Feb 2012, Vinzent Höfler wrote:


On Sat, 25 Feb 2012 19:15:54 +0100, ik
ido...@gmail.com  wrote:


I found the following amazing lecture that present a new idea
of a development tool, that I think will interest you all:

http://vimeo.com/36579366

Impressive, indeed. And I am usually not that easily impressed.

Impressed indeed. But IMHO limited to a certain kind of
programming. The binary search part could probably be done for any
kind of programming, I suppose.

I doubt that any kind of programming. He showed the simplest case:
a function that only receives base types. But most functions work on
complex parameters - classes. These need to be set up. Either by
writing a test environment or by taking a snapshot with the debugger.
Then you can run the function repeatedly.

The next step is to compile the function on every change. Easy with
an interpreter. How to compile only one function of a big program and
insert/replace it?

Sorry for a plug, but MS VC++ 6.0 (!)* allowed for Pause-Edit Code-
Quick compile-Resume Execution kind of workflow...

Yes, in Debug/Pause mode, you COULD write a {code block} and then go
Debug-Apply and Continue (or something like that) and voila,
you could totally change code paths ...
(Not that I know much about internals/constraints of this, to be honest,
but of all, i found that a very cool feature)

Is there a way to add THAT to FPC/Lazarus/GDB world ?



I wonder where the limits of that are.

Sure one *could* record *all* variables, and the callstack...
But what if
- you add a new variable, what to initialize it with?
- remove the function that called the current code, or even delete the 
line where you just paused?


Or one could record all input, and replay the app. But that has limits too.

Neither of those are likely to happen


btw on some platforms, gdb can step backwards (again limitations apply). 
But it's not integrated in Lazarus yet...


Noting what I described looking at in 
http://lists.freepascal.org/lists/fpc-other/2012-February/000670.html, I 
found myself wondering whether the IDE could tweak (writable?) constants 
at runtime, or possibly closures once they exist.


Being able to tune e.g. the exact position of visible components could 
be rather useful.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal