Couple of D6 bugs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Couple of D6 bugs

ChrisB
The first open of a dll fails after you install a package that uses it.
Saving the image, restarting and opening the dll subsequently works.

An inspect on a selection of code in the debugger (as it appears when you
step rather than manual selecting) is in the wrong context and returns the
instance of the class rather than executing the selection. Forcing it by
dragging over the same block and inspect/evaluate works fine. Is it possible
to have this be default behaviour as I would normally want to check whats
happening under the selected block.

Very very minor issues that I don't even want to mention but can't remember
any more important stuff just now :)

- Interval>>includes: when dealing with floats. Obviously a test of = can
produce the wrong result so I changed all references to equals:
- Putting Float fmax in a collection/dictionary, produces a walkback.
- SYSTEMTIME new produces a walkback

Regards,
Chris


Reply | Threaded
Open this post in threaded view
|

Re: Couple of D6 bugs

Chris Uppal-3
ChrisB wrote:

> The first open of a dll fails after you install a package that uses it.
> Saving the image, restarting and opening the dll subsequently works.

Works OK for me.


> An inspect on a selection of code in the debugger (as it appears when you
> step rather than manual selecting) is in the wrong context and returns the
> instance of the class rather than executing the selection. Forcing it by
> dragging over the same block and inspect/evaluate works fine. Is it
> possible to have this be default behaviour as I would normally want to
> check whats happening under the selected block.

By "context", I assume you mean that the focus in in one of the top two panes
by default when it would be better in the text pane.  If so then I agree.  A
similar observation applies to the MethodBrowser which appears when you have
done a search -- the found text is highlighted, but you can't directly, say,
start typing to replace it.


> - Interval>>includes: when dealing with floats. Obviously a test of = can
> produce the wrong result so I changed all references to equals:

I don't think that using Floats with intervals (outisde the range where the
calculations are exact) is too good an idea anyway.


> - Putting Float fmax in a collection/dictionary, produces a walkback.

That seems to be because the code-styling code for a workspace barfs if you
enter text like:
    a Set(1.79769313486232e+308).
Which you will get if you attempt to "printIt" of:
    Set with: Float fmax.
Indeed, type in:
   ( 3.14e307)
and all is serene. Change the 7 to 8, and you get a walkback...

Fun ;-)


> - SYSTEMTIME new produces a walkback

It doesn't, but the resulting object is (correctly, IMO) unable to provide a
valid printString and so gives a walkback if you attempt to display it.

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Couple of D6 bugs

The Brave Sir Robin-2
On Mon, 10 Jul 2006 13:50:52 +0100, "Chris Uppal"
<[hidden email]> wrote:

>ChrisB wrote:
>
>> The first open of a dll fails after you install a package that uses it.
>> Saving the image, restarting and opening the dll subsequently works.
>
>Works OK for me.
>

I get the same problem.


The Brave Sir Robin.

RUN AWAY !!!


Reply | Threaded
Open this post in threaded view
|

Re: Couple of D6 bugs

ChrisB
In reply to this post by Chris Uppal-3
"Chris Uppal" <[hidden email]> wrote in message
news:44b24e69$0$775$[hidden email]...
> ChrisB wrote:
>
>> The first open of a dll fails after you install a package that uses it.
>> Saving the image, restarting and opening the dll subsequently works.
>
> Works OK for me.

Okay I think I see the problem. I have my install and image directories
different and the Kernel32 LoadLibrary call fails with a not found when the
dlls are local to the image, as its default behaviour will be to look local
to Dolphin.exe. Having them in the install or system32 is fine. But for
whatever reason the reload after image save must be doing something to allow
it to pass, maybe SetDllDirectory or SetCurrentDirectory although I can't
find anything. I am just using fileName with no path or dll extension and
should probably just specify a path in there instead.

>
>
>> An inspect on a selection of code in the debugger (as it appears when you
>> step rather than manual selecting) is in the wrong context and returns
>> the
>> instance of the class rather than executing the selection. Forcing it by
>> dragging over the same block and inspect/evaluate works fine. Is it
>> possible to have this be default behaviour as I would normally want to
>> check whats happening under the selected block.
>
> By "context", I assume you mean that the focus in in one of the top two
> panes
> by default when it would be better in the text pane.  If so then I agree.
> A
> similar observation applies to the MethodBrowser which appears when you
> have
> done a search -- the found text is highlighted, but you can't directly,
> say,
> start typing to replace it.
>
>
>> - Interval>>includes: when dealing with floats. Obviously a test of = can
>> produce the wrong result so I changed all references to equals:
>
> I don't think that using Floats with intervals (outisde the range where
> the
> calculations are exact) is too good an idea anyway.

Yes I agree. I was just trying to establish whether a float was within two
limits and didn't feel like writing a new class when Interval start and stop
do the job. I was just going to do a > start and < stop but kinda felt that
includes: should do the job although its not technically the same.

>
>
>> - Putting Float fmax in a collection/dictionary, produces a walkback.
>
> That seems to be because the code-styling code for a workspace barfs if
> you
> enter text like:
>    a Set(1.79769313486232e+308).
> Which you will get if you attempt to "printIt" of:
>    Set with: Float fmax.
> Indeed, type in:
>   ( 3.14e307)
> and all is serene. Change the 7 to 8, and you get a walkback...
>
> Fun ;-)
>
>
>> - SYSTEMTIME new produces a walkback
>
> It doesn't, but the resulting object is (correctly, IMO) unable to provide
> a
> valid printString and so gives a walkback if you attempt to display it.

Thats what I meant ;) I guess because it is actually a null time (for some
reason I thought it did a now like Time) its ok but I don't like walkbacks
:)

Regards,
Chris


Reply | Threaded
Open this post in threaded view
|

Re: Couple of D6 bugs

Chris Uppal-3
Chris,

> Okay I think I see the problem. I have my install and image directories
> different and the Kernel32 LoadLibrary call fails with a not found when
> the dlls are local to the image, as its default behaviour will be to look
> local to Dolphin.exe. Having them in the install or system32 is fine. But
> for whatever reason the reload after image save must be doing something
> to allow it to pass, maybe SetDllDirectory or SetCurrentDirectory
> although I can't find anything. I am just using fileName with no path or
> dll extension and should probably just specify a path in there instead.

I wouldn't use an explicit path except during early development when I might
want to point directly at the debug build of the DLL in some VC++ project
folder.  I put DLLs into the same directory as the deployed app, or somewheree
on the %Path%. (Or sometimes into the Dolphin installation folder as a quick
hack for development-time access).  So far that has worked for me without
problems.

> Yes I agree. I was just trying to establish whether a float was within two
> limits and didn't feel like writing a new class when Interval start and
> stop do the job. I was just going to do a > start and < stop but kinda
> felt that includes: should do the job although its not technically the
> same.

Definitely not the same, even without rounding issues:

    (0.0 to: 1.0) includes: 0.5 "--> false"
    (0.0 to: 1.0 by: 0.25) includes: 0.125 "--> false"

You could use:

    aNumber between: lowerLimit and: upperLimit

if the limit conditions (<= and >=) are correct for your application.

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Couple of D6 bugs

ChrisB
"Chris Uppal" <[hidden email]> wrote in message
news:44b37caa$2$774$[hidden email]...

> Chris,
>
>> Okay I think I see the problem. I have my install and image directories
>> different and the Kernel32 LoadLibrary call fails with a not found when
>> the dlls are local to the image, as its default behaviour will be to look
>> local to Dolphin.exe. Having them in the install or system32 is fine. But
>> for whatever reason the reload after image save must be doing something
>> to allow it to pass, maybe SetDllDirectory or SetCurrentDirectory
>> although I can't find anything. I am just using fileName with no path or
>> dll extension and should probably just specify a path in there instead.
>
> I wouldn't use an explicit path except during early development when I
> might
> want to point directly at the debug build of the DLL in some VC++ project
> folder.  I put DLLs into the same directory as the deployed app, or
> somewheree
> on the %Path%. (Or sometimes into the Dolphin installation folder as a
> quick
> hack for development-time access).  So far that has worked for me without
> problems.
>
>> Yes I agree. I was just trying to establish whether a float was within
>> two
>> limits and didn't feel like writing a new class when Interval start and
>> stop do the job. I was just going to do a > start and < stop but kinda
>> felt that includes: should do the job although its not technically the
>> same.
>
> Definitely not the same, even without rounding issues:
>
>    (0.0 to: 1.0) includes: 0.5 "--> false"
>    (0.0 to: 1.0 by: 0.25) includes: 0.125 "--> false"

Yes I know it uses a step but had one dp and just did a by: 0.1; by the time
I was that far I knew it wasn't right but was intrigued to see whether it
would work!