OT: Amazing new development tools

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

OT: Amazing new development tools

ik-6
Hello,

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

Enjoy
Ido
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Vinzent Höfler
On Sat, 25 Feb 2012 19:15:54 +0100, ik <[hidden email]> 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.


Vinzent.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Juha Manninen
2012/2/26 Vinzent Höfler <[hidden email]>
On Sat, 25 Feb 2012 19:15:54 +0100, ik <[hidden email]> 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.

Yes it is!
Has this one guy made himself all the tools he demonstrated? He is quite a super-human then. :)

Juha


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Michael Van Canneyt
In reply to this post by Vinzent Höfler


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

> On Sat, 25 Feb 2012 19:15:54 +0100, ik <[hidden email]> 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 don't see him doing this in huge corporate administrative business
programs where hundreds of database tables are involved.
They are hard to connect to or visualize :-)

But visionary nonetheless.

Michael.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Mattias Gaertner
On Sun, 26 Feb 2012 11:43:38 +0100 (CET)
Michael Van Canneyt <[hidden email]> wrote:

>
>
> On Sun, 26 Feb 2012, Vinzent Höfler wrote:
>
> > On Sat, 25 Feb 2012 19:15:54 +0100, ik <[hidden email]> 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?

The next step is to run the function and read every value change.
Easy in an interpreter.
For a compiled program you have to single step with the debugger.

 
> I don't see him doing this in huge corporate administrative business
> programs where hundreds of database tables are involved.
> They are hard to connect to or visualize :-)
>
> But visionary nonetheless.

+1

Mattias
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

zeljko
In reply to this post by Michael Van Canneyt

On Sunday 26 of February 2012 11:43:38 Michael Van Canneyt wrote:


> I don't see him doing this in huge corporate administrative business

> programs where hundreds of database tables are involved.


and that tables can contain billion of rows ... so visualisation won't be so snappy :)


zeljko


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

ik-6
On Sun, Feb 26, 2012 at 13:25, zeljko <[hidden email]> wrote:

> On Sunday 26 of February 2012 11:43:38 Michael Van Canneyt wrote:
>
>
>> I don't see him doing this in huge corporate administrative business
>
>> programs where hundreds of database tables are involved.
>
>
> and that tables can contain billion of rows ... so visualisation won't be so
> snappy :)

It depends on your tests. That visualization is for test driven
development (http://en.wikipedia.org/wiki/Test-driven_development).

In Ruby I use Cucumber for such things, and then you can provide also
a table with possible values to see how it will react.

>
>
> zeljko
>
>
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Roland Schäfer
That was the seventh message on a subject which is not related to FPC in
any recognizable way. Although not a very frequent poster, I still need
to be on this list because I chose FPC for some of my professional work,
and I usually learn a lot from following some of the discussions on the
list. Why does this type of discussion not go on fpc-other?

I know I'm not a moderator or anything. I am just very busy and really
just beg you to respect my decision to be on the "fpc-pascal" list and
not "visions-other".

Thanks,
R.

On 2/26/2012 12:35 PM, ik wrote:

> On Sun, Feb 26, 2012 at 13:25, zeljko <[hidden email]> wrote:
>> and that tables can contain billion of rows ... so visualisation won't be so
>> snappy :)
>
> It depends on your tests. That visualization is for test driven
> development (http://en.wikipedia.org/wiki/Test-driven_development).
>
> In Ruby I use Cucumber for such things, and then you can provide also
> a table with possible values to see how it will react.
>
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Jürgen Hestermann
Roland Schäfer schrieb:
> I am just very busy and really
> just beg you to respect my decision to be on the "fpc-pascal" list and
> not "visions-other".
>  
Then why don't you simply ignore (delete) the posts with the subject
"Amazing new development tools"?
That's what I am doing: Just open posts which look interesting to me
from the subject line.
I doubt that anybody else (a moderator) can do this selection for me by
sorting such posts into categories.
In the end it's the same as a spam filter: It does not work.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Michael Van Canneyt
In reply to this post by ik-6


On Sun, 26 Feb 2012, ik wrote:

> On Sun, Feb 26, 2012 at 13:25, zeljko <[hidden email]> wrote:
>> On Sunday 26 of February 2012 11:43:38 Michael Van Canneyt wrote:
>>
>>
>>> I don't see him doing this in huge corporate administrative business
>>
>>> programs where hundreds of database tables are involved.
>>
>>
>> and that tables can contain billion of rows ... so visualisation won't be so
>> snappy :)
>
> It depends on your tests. That visualization is for test driven
> development (http://en.wikipedia.org/wiki/Test-driven_development).
>
> In Ruby I use Cucumber for such things, and then you can provide also
> a table with possible values to see how it will react.

That is childs play; good for some simple website stuff.

We're talking corporate RDBMS here.

Take a school. To be able to test for example data entry of a pupil who comes
to inscribe, I need to create and set up the whole eco-system for my pupil:
- Table with schools
- Table with countries
- Table with cities
- Table with addresses
- Table with nationalities
- Tables with values for all kinds of parameters.
- Table with groups in my school.
- Table with teaching subjects.
- Table with teachers teaching the subject.
All these tables have constraints, time dependencies, whatnot.

I cannot even start testing anything pupil-related without having properly set up all this first :/

To be able to visualize or test all that, you need detailed knowledge of the system;
a simple "test table with possible values" is unusable; all tables are linked together
somehow. For the same reason I never understood the use of 'test data generators'
functionalities in database modeling tools. The generated data is utterly useless...

Michael.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Jonas Maebe-2
In reply to this post by Jürgen Hestermann

On 26 Feb 2012, at 13:24, Jürgen Hestermann wrote:

> Roland Schäfer schrieb:
>> I am just very busy and really
>> just beg you to respect my decision to be on the "fpc-pascal" list and
>> not "visions-other".
>>  
> Then why don't you simply ignore (delete) the posts with the subject "Amazing new development tools"?

The whole reason we have four different lists is to minimise cases where people have to do that. This topic indeed belongs on the fpc-other list, not on fpc-pascal (since it's not about programming in or getting help with FPC).


Jonas
FPC mailing lists admin_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Graeme Geldenhuys-2
In reply to this post by Michael Van Canneyt
On 26 February 2012 14:38, Michael Van Canneyt  wrote:
> Take a school. To be able to test for example data entry of a pupil who
> comes to inscribe, I need to create and set up the whole eco-system for my
> pupil:
>
> ...snip...

> linked together somehow. For the same reason I never understood the use of
> 'test data generators' functionalities in database modeling tools. The
> generated data is utterly useless...


I haven't viewed the video yet, I will tomorrow at work. From
everybody's comments, it sounds very interesting.

Regarding your comment on data generators. I can say that I have (in
our company product) a very similar data structure as you described
above. I have created a "data generator" for our product and it does
work with our complex data model. It generates realistic data, not
just random text garbage (that is indeed useless - maybe this is what
you were referring too). We used the data generator for performance
testing. Populating for example our Learner table with 500 000
learners (and there related data - like addresses, subjects, schools
etc), and then see where any bottlenecks occur in our UI or SQL.

I think tiOPF's demo 21 uses a similar data generator to what I
created in our Master Maths product. Our company product just uses a
much greater scale of generated data. So bottom line - a realistic
data generator can be very useful.

--
Regards,
  - Graeme -


_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

el_es
In reply to this post by Mattias Gaertner
On 26/02/2012 11:17, Mattias Gaertner wrote:

> On Sun, 26 Feb 2012 11:43:38 +0100 (CET) Michael Van Canneyt
> <[hidden email]> wrote:
>
>>
>>
>> On Sun, 26 Feb 2012, Vinzent Höfler wrote:
>>
>>> On Sat, 25 Feb 2012 19:15:54 +0100, ik
>>> <[hidden email]> 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 ?

(especially simulation/image/OpenGL Artists would be grateful :) )
>
> The next step is to run the function and read every value change.
> Easy in an interpreter. For a compiled program you have to single
> step with the debugger.
>
>

Lukasz

* Yes, Microsoft Visual C++ Six Point Zero. Mine (dating from before my times where I work now)
is from 1998. *

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Fix & Continue in FPC [was: off-topic discussion)

Jonas Maebe-2
               
On 27 Feb 2012, at 13:32, Lukasz Sokol wrote:

> On 26/02/2012 11:17, Mattias Gaertner wrote:
>> 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 ?

Apple supported that in older versions of their development tools, and  
it worked as well (or as badly) with FPC as it did with GCC. It  
required changes to their dynamic linker (for the code replacement)  
and to GDB. It was extremely flakey and limited though, and they  
abandoned it fairly quickly.

Since the required support is generally not part of the compiler but  
of the environment (you need a way to inject the new code, and  
possibly data, into the process, and link up everything with the new  
version), I don't think this is something that can be added as an  
"FPC" feature.


Jonas
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Martin Frb
In reply to this post by el_es
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
>> <[hidden email]>  wrote:
>>
>>>
>>> On Sun, 26 Feb 2012, Vinzent Höfler wrote:
>>>
>>>> On Sat, 25 Feb 2012 19:15:54 +0100, ik
>>>> <[hidden email]>  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...

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Fix & Continue in FPC [was: off-topic discussion)

el_es
In reply to this post by Jonas Maebe-2
On 28/02/2012 10:45, Jonas Maebe wrote:

>
> On 27 Feb 2012, at 13:32, Lukasz Sokol wrote:
>
>> On 26/02/2012 11:17, Mattias Gaertner wrote:
>>> 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 ?
>
> Apple supported that in older versions of their development tools,
> and it worked as well (or as badly) with FPC as it did with GCC. It
> required changes to their dynamic linker (for the code replacement)
> and to GDB. It was extremely flakey and limited though, and they
> abandoned it fairly quickly.
>
> Since the required support is generally not part of the compiler but
> of the environment (you need a way to inject the new code, and
> possibly data, into the process, and link up everything with the new
> version), I don't think this is something that can be added as an
> "FPC" feature.
>
>
> Jonas

(Un)fortunately I don't know much about the internals, as I mentioned :)

The closest idea that looks similar is a loadable library: you can unload a dll
(or a .so), edit/recompile/rebuild it while the caller program is paused/waiting,
then reload it (with an obvious constraint that you can't modify the interfaces
that the already-running program knows)
 - now imagine each code/data block is separate 'object' that can be loaded/unloaded...?

(Did I just hit on the unmentionable feature of loadable modules :) )

Lukasz

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Fix & Continue in FPC [was: off-topic discussion)

Jonas Maebe-2

On 28 Feb 2012, at 14:36, Lukasz Sokol wrote:

On 28/02/2012 10:45, Jonas Maebe wrote:

Apple supported that in older versions of their development tools,
and it worked as well (or as badly) with FPC as it did with GCC. It
required changes to their dynamic linker (for the code replacement)
and to GDB. It was extremely flakey and limited though, and they
abandoned it fairly quickly.

(Un)fortunately I don't know much about the internals, as I mentioned :)

The closest idea that looks similar is a loadable library: you can unload a dll
(or a .so), edit/recompile/rebuild it while the caller program is paused/waiting,
then reload it (with an obvious constraint that you can't modify the interfaces
that the already-running program knows)
- now imagine each code/data block is separate 'object' that can be loaded/unloaded...?

That is basically what Apple did. But if you want to do that at a reasonable speed and with support for e.g. existing addresses in memory (someone may have taken the address of a routine you are about to replace, and if the new code is larger it may get stored somewhere else), then you need lots of extra support (e.g. via trampolines for code; for data it's even harder). Not to mention that your debugger has to be able to deal with code changing addresses all the time and debug info changing.

In the end, people spent more time debugging the inconsistencies and limitations of "fix and continue" than it helped them. Maybe Microsoft's implementation is better, but
a) it is extremely hard to get right
b) as mentioned, it cannot be implemented in FPC itself; it mainly requires support from a lot of other things (and if that support is in place and requires some help from the compiler, then we can talk about making FPC support such an environment)


Jonas

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Mark Morgan Lloyd-5
In reply to this post by Martin Frb
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
>>> <[hidden email]>  wrote:
>>>
>>>>
>>>> On Sun, 26 Feb 2012, Vinzent Höfler wrote:
>>>>
>>>>> On Sat, 25 Feb 2012 19:15:54 +0100, ik
>>>>> <[hidden email]>  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  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Martin Frb
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  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: OT: Amazing new development tools

Mark Morgan Lloyd-5
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  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal