f



Error message: "can't shrink heap any further"

Running a cut-down version of AntiSpam (which does something very
specific to a set of mailboxes and has lots of otherwise unnecessary
logic excised) on VRPC-SA Adjust, I occasionally get this message.

So far I've not tracked down what the program is doing when it happens,
because it doesn't seem to happen when !Reporter is doing detailed
tracing of the program, but does when it isn't.  (So maybe a !Reporter
problem?)  The app's wimpslot is several hundred K bigger than it
actually uses.  !Reporter is V2.64d, the most recent one.

Any ideas?

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/6/2007 9:06:41 PM
comp.sys.acorn.programmer 2499 articles. 0 followers. Post Follow

28 Replies
388 Views

Similar Articles

[PageSpeed] 12

On 6 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:

> Running a cut-down version of AntiSpam (which does something very
> specific to a set of mailboxes and has lots of otherwise unnecessary
> logic excised) on VRPC-SA Adjust, I occasionally get this message.

This? Please dont put crucial information only in the subject line, it's
damn annoying to have to break the flow of reading to find it. If it's
worth writing the message, it's worth typing it in the proper place.

---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/6/2007 11:00:21 PM
In article <49d429a14e.druck@druck.freeuk.net>,
   druck <news@druck.freeuk.com> wrote:

> This? Please dont put crucial information only in the subject line, it's
> damn annoying to have to break the flow of reading to find it. If it's
> worth writing the message, it's worth typing it in the proper place.

I completely agree with Dave here!

The subject line is to help you decide if the message is worth reading.

The message itself should contain /all/ the relevant information.

He and I don't /always/ agree, but on this one we do!

John

-- 
John Williams, Wirral, Merseyside, UK - no attachments to these addresses!
Non-RISC OS posters change user to johnrwilliams or put 'risc' in subject
for reliable contact! Who is John Williams? http://www.picindex.info/author/ 
0
UCEbin (2771)
1/6/2007 11:25:10 PM
In article <4ea12c170cUCEbin@tiscali.co.uk>,
   John Williams (News) <UCEbin@tiscali.co.uk> wrote:
> In article <49d429a14e.druck@druck.freeuk.net>,
>    druck <news@druck.freeuk.com> wrote:

> > This? Please dont put crucial information only in the subject line,
> > it's damn annoying to have to break the flow of reading to find it.
> > If it's worth writing the message, it's worth typing it in the
> > proper place.

> I completely agree with Dave here!

> The subject line is to help you decide if the message is worth
> reading.

Well, what subject line would you have liked to see?  How about 

  "Error message"

It's not very informative though, is it?  No-one reading *that* would
have any idea what the post was about.


> The message itself should contain /all/ the relevant information.

> He and I don't /always/ agree, but on this one we do!

The message should indded contain all the relevant info, but it doesn't
- eg it doesn't say what component of BASIC or RO or whatever is
complaining or under what circumstances.  Or did you mean the body of
this post?  See, what you said is ambiguous.

More to the point though does anyone know what can produce this (or
that) error message?

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/7/2007 11:40:02 AM
In article <4ea12c170cUCEbin@tiscali.co.uk>, "John Williams (News)"
<UCEbin@tiscali.co.uk> wrote:
> > This? Please dont put crucial information only in the subject line, it's
> > damn annoying to have to break the flow of reading to find it. If it's
> > worth writing the message, it's worth typing it in the proper place.

I think that this problem may arise because some mail programs display the
subject line very visibly above the message - thus leading some of us to not
realise how important it is to repeat the information.



-- 
    _                     _________________________________________
   / \._._ |_  _     _  /'       Orpheus Internet Services
   \_/| |_)| |(/_|_|_> /          'Internet for Everyone'
_______ | ___________./       http://www.orpheusinternet.co.uk


0
mijas (537)
1/7/2007 12:30:35 PM
On 7 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> In article <4ea12c170cUCEbin@tiscali.co.uk>,
>    John Williams (News) <UCEbin@tiscali.co.uk> wrote:
> > In article <49d429a14e.druck@druck.freeuk.net>,
> >    druck <news@druck.freeuk.com> wrote:
>>> This? Please dont put crucial information only in the subject line, it's
>>> damn annoying to have to break the flow of reading to find it. If it's
>>> worth writing the message, it's worth typing it in the proper place.
> 
>> I completely agree with Dave here!
> 
>> The subject line is to help you decide if the message is worth reading.
> 
> Well, what subject line would you have liked to see?  How about 
> 
>   "Error message"
> 
> It's not very informative though, is it?  No-one reading *that* would have
> any idea what the post was about.

There was nothing wrong with the subject line that was fine. But it should
the exact error should also be given in the body of the message instead of
using 'this' and leaving people to look around to see where you might have
mentioned it.
 
> The message should indded contain all the relevant info, but it doesn't
> - eg it doesn't say what component of BASIC or RO or whatever is
> complaining or under what circumstances.  Or did you mean the body of
> this post?  See, what you said is ambiguous.

Stop wriggling on the hook, you know what we mean, there's no need to say
anymore.

---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/7/2007 7:12:02 PM
Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:

> In article <4ea12c170cUCEbin@tiscali.co.uk>,
>    John Williams (News) <UCEbin@tiscali.co.uk> wrote:

> > The subject line is to help you decide if the message is worth
> > reading.

> Well, what subject line would you have liked to see?  How about

>   "Error message"

> It's not very informative though, is it?  No-one reading *that*
> would have any idea what the post was about.

I'm pretty sure the remarks weren't about the subject line, but
about the messagebody.

[snip the non-relevant bit]

> More to the point though does anyone know what can produce this
> (or that) error message?

How about:

DIM heap% 1000

SYS"OS_Heap",0,heap%,,1000
SYS"OS_Heap",2,heap%,,100
SYS"OS_Heap",5,heap%,,-950

Cheers,
Jan-Jaap
0
jjvdgeer (228)
1/7/2007 7:13:09 PM
In article <10dd98a14e.Jan-Jaap@iyonix.c2i.net>,
   Jan-Jaap van der Geer <jjvdgeer@zapo.net> wrote:
> Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:

> > More to the point though does anyone know what can produce this
> > (or that) error message?

> How about:

> DIM heap% 1000

> SYS"OS_Heap",0,heap%,,1000
> SYS"OS_Heap",2,heap%,,100
> SYS"OS_Heap",5,heap%,,-950

Hmm, yes I see, but that is explicit Heap manipulation.  Is it that
kind of heap that is the problem, or the one in the BASIC workspace?
There are no OS_Heap calls in my program.  The SWIs I use are:

  SYS "OS_Byte",129
  SYS "OS_SWINumberFromString"
  SYS "SysLog_LogMessage"
  SYS "SysLog_LogUnstamped"
  SYS "TaskManager_EnumerateTasks"
  SYS "Wimp_CloseDown"
  SYS "Wimp_Initialise"
  SYS "Wimp_ReportError"
  SYS "Wimp_SendMessage"
  SYS "XSysLog_CloseSessionLog"
  SYS "XSysLog_FlushLog"
  SYS "XSysLog_OpenSessionLog"
  SYS "XWimp_GetMenuState"
  SYS "XWimp_TextOp"
  SYS OS_ReadMonotonicTime%
  SYS Socket_Ioctl%
  SYS Wimp_CloseTemplate%
  SYS Wimp_CloseWindow%
  SYS Wimp_CreateIcon%
  SYS Wimp_CreateMenu%
  SYS Wimp_CreateWindow%
  SYS Wimp_GetIconState%
  SYS Wimp_GetPointerInfo%
  SYS Wimp_GetWindowState%
  SYS Wimp_LoadTemplate%
  SYS Wimp_OpenTemplate%
  SYS Wimp_OpenWindow%
  SYS Wimp_Poll%
  SYS Wimp_PollIdle%
  SYS Wimp_ProcessKey%
  SYS Wimp_SendMessage%
  SYS Wimp_SetIconState%
  SYS XSocket_Bind%
  SYS XSocket_Close%
  SYS XSocket_Connect%
  SYS XSocket_Creat%
  SYS XSocket_Read%
  SYS XSocket_Send%
  SYS XWimp_StartTask%
  SYS&490C0 : REM Timer_Start

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/7/2007 11:30:23 PM
On 7 Jan, Mr John FO Evans wrote in message
  <na.1074024ea1.a903c0mijas@orpheusmail.co.uk>:

> In article <4ea12c170cUCEbin@tiscali.co.uk>, "John Williams (News)"
> <UCEbin@tiscali.co.uk> wrote:
> 
> > > This? Please dont put crucial information only in the subject line,
> > > it's damn annoying to have to break the flow of reading to find it.
> > > If it's worth writing the message, it's worth typing it in the
> > > proper place.
> 
> I think that this problem may arise because some mail programs display
> the subject line very visibly above the message - thus leading some of
> us to not realise how important it is to repeat the information.

No, it's important even if the subject is directly above the body.

-- 
Steve Fryatt - Leeds, England

http://www.stevefryatt.org.uk/

0
news1571 (3486)
1/8/2007 12:03:11 AM
On 7 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> Hmm, yes I see, but that is explicit Heap manipulation.  Is it that
> kind of heap that is the problem, or the one in the BASIC workspace?

No its OS_Heap as the message is in the kernel messages file.

> There are no OS_Heap calls in my program.  The SWIs I use are:

Just put an error handler in your program and see what call is causing it.

  ON ERROR PRINTREPORT$;" at line ";ERL:END
 
---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/8/2007 1:21:39 AM
In article <dd99baa14e.druck@druck.freeuk.net>,
   druck <news@druck.freeuk.com> wrote:
> On 7 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> > Hmm, yes I see, but that is explicit Heap manipulation.  Is it that
> > kind of heap that is the problem, or the one in the BASIC workspace?

> No its OS_Heap as the message is in the kernel messages file.

> > There are no OS_Heap calls in my program.  The SWIs I use are:

> Just put an error handler in your program and see what call is
> causing it.

>   ON ERROR PRINTREPORT$;" at line ";ERL:END

Ah; I've got several of these already with slightly different actions
depending on how early in the program they are eg whether the program
has registered with the wimp yet or not.  The main ones are all
basically what you suggest, where shutting down the program in the case
of an unexpected error is sensible.

The others are inside PROCs with LOCAL ERROR routines:

DEF PROCcfg_close_config_file
LOCAL ERROR
ON ERROR LOCAL config_file% = 0
IF config_file% THEN
 CLOSE#config_file%
 config_file% = 0
ENDIF
ENDPROC



DEF PROClog_close
LOCAL ERROR

ON ERROR LOCAL applogh% = 0
IF applogh% THEN
 SYS "XSysLog_FlushLog",applogh%
 SYS "XSysLog_CloseSessionLog",applogh%
 applogh% = 0
ENDIF

ON ERROR LOCAL dlflogh% = 0
IF dlflogh% THEN
 SYS "XSysLog_FlushLog",dlflogh%
 SYS "XSysLog_CloseSessionLog",dlflogh%
 dlflogh% = 0
ENDIF

ENDPROC



DEF PROCskt_close_socket
LOCAL flags%,r0%,iyoen%

LOCAL ERROR
PROClog("PROCskt_close_socket called, sock="+STR$ sock%)
ON ERROR LOCAL sock% = -1
IF sock% >= 0 THEN
 SYS XSocket_Close%,sock% TO r0%;flags%

 IF flags% AND 1 THEN
    iyoen% = (r0%!0) AND &7F: REM Iyonix compliant
    PROClog("XSocket_Close set flag, r0%=" +STR$ r0% + " iyoen%=" +STR$
iyoen% )
 ENDIF

 sock% = -1
ENDIF
ENDPROC

(This last PROC is messy because I've been trying to track socket
open/close to see why I get socket exhaustion sometimes.)


I'll change these routines to log REPORT$ and ERL as well.  Maybe
there's scope for conditional logic based on the contents of REPORT$ ?

Thanks!

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/8/2007 12:38:53 PM
On 8 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> Ah; I've got several of these already with slightly different actions
> depending on how early in the program they are eg whether the program
> has registered with the wimp yet or not.  The main ones are all
> basically what you suggest, where shutting down the program in the case
> of an unexpected error is sensible.
> 
> The others are inside PROCs with LOCAL ERROR routines:
> 
> DEF PROCcfg_close_config_file
> LOCAL ERROR
> ON ERROR LOCAL config_file% = 0
> IF config_file% THEN
>  CLOSE#config_file%
>  config_file% = 0
> ENDIF
> ENDPROC

[Snip] 

> I'll change these routines to log REPORT$ and ERL as well.  Maybe
> there's scope for conditional logic based on the contents of REPORT$ ?

Yes, but use the error number in ERR rather than looking at the string.
You can then check in your error handler for an "expected" error concerning a
file operation, but if it is something else, re-raise the error so it gets
caught by your top level error handler.

Something like:-

 IF ERR <> error_FileDosentExist THEN ERROR ERR, REPORT$

---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/8/2007 9:22:33 PM
druck wrote:
> Jeremy C B Nicoll wrote:
> > I'll change these routines to log REPORT$ and ERL as well.  Maybe
> > there's scope for conditional logic based on the contents of REPORT$ ?
> Yes, but use the error number in ERR rather than looking at the string.
> You can then check in your error handler for an "expected" error concerning a
> file operation, but if it is something else, re-raise the error so it gets
> caught by your top level error handler.
> 
> Something like:-
> 
>  IF ERR <> error_FileDosentExist THEN ERROR ERR, REPORT$

There is a problem with this in that you lose the original error line
(ERL) and possibly confuse REPORT$ with a " in ThisLibrary" tag.

Just for interest, Basalt implements plain ERROR to jump directly to the
current error handler, retaining the original information. An alternative
is to add the original error line to the report:

  IF ERR <> error_FileDosentExist THEN ERROR ERR, REPORT$+" from "+STR$
  ERL

Basalt also has other additions to error handling, including fully
nested local errors. ;-)

-- 
 ;  ,', * Basalt * - gives RO 3.10+ versions of BASIC V new and alternative
 ;,'    keywords, dynamic memory for arrays and blocks, new variable types.
 ;',    Legal, fast and simple to use. Freeware - version 0.98� - 19 Aug 03
,;  ',, Steve Drain, Kappa : http://www.users.zetnet.co.uk/kappa/basalt.htm

0
steve.drain (241)
1/9/2007 9:22:46 AM
In article <4ea1f89aa8Jeremy@omba.demon.co.uk>,
   Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:

> Ah; I've got several of these already with slightly different actions
> depending on how early in the program they are eg whether the program
> has registered with the wimp yet or not.  The main ones are all
> basically what you suggest, where shutting down the program in the
> case of an unexpected error is sensible.

> The others are inside PROCs with LOCAL ERROR routines:

As far as I can tell the problem is happening in a PROC which wraps
around XSocket_Connect.

The procedure gets called repeatedly until there's (usually) been

  one occurrence   of error 36 (EINPROGRESS)

  many occurrences of error 37 (EALREADY)

  one occurrence   of error 56 (EISCONN)

Every so often I see the 36, multiple 37s, and then a 7.  I don't know
what socket error code 7 means.  Maybe (like these other 'error
codes') it isn't actually really an error, and I suppose it's just
possible the when I'm getting it register 0 is coincidentally pointing
to the "can't shrink" message even if that's not intended to have been
treated as an error. Does anyone know what socket error 7 means?

When it does happen after the 7 has been logged ok, my code calls a
standard error-box report procedure which displays the "Can't shrink
heap any further" message.  !Reporter shows it as:

  ** WimpError ** from AntiSpQD
  Error  : &00000187
  Message: Can't shrink heap any further
   
I dunno if the &187 helps or not.

For now, when this happens I'm explicitly testing for it, having the
machine beep so I know it has happened, closing the socket and going in
to process the next mailbox, which *is* working around the problem ok
except that that mailbox doesn't then get processed.

But I'd like to know what the cause might be!  

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/11/2007 9:04:25 PM
On 11 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> As far as I can tell the problem is happening in a PROC which wraps
> around XSocket_Connect.
> 
> The procedure gets called repeatedly until there's (usually) been
> 
>   one occurrence   of error 36 (EINPROGRESS)
> 
>   many occurrences of error 37 (EALREADY)
> 
>   one occurrence   of error 56 (EISCONN)
>
> Every so often I see the 36, multiple 37s,

Those are expected errors if you establish a TCP connection on a non blocking
socket by multiple calls to connect, rather than the cleaner method of
calling connect once then doing a socket select call on the handle and
waiting for write availability which indicates its now open.

>  and then a 7.  I don't know what socket error code 7 means.

If its a errno coming back from the call its E2BIG which isn't really
sensible for a socket call (its normally when the argument list supplied when
starting a new program is too long).

> Maybe (like these other 'error codes') it isn't actually really an error,
> and I suppose it's just possible the when I'm getting it register 0 is
> coincidentally pointing to the "can't shrink" message even if that's not
> intended to have been treated as an error. Does anyone know what socket
> error 7 means?

I would have thought it unlikely that the string would be there by
happenstance...

> When it does happen after the 7 has been logged ok, my code calls a
> standard error-box report procedure which displays the "Can't shrink
> heap any further" message.  !Reporter shows it as:
> 
>   ** WimpError ** from AntiSpQD
>   Error  : &00000187
>   Message: Can't shrink heap any further
>    
> I dunno if the &187 helps or not.

....that is backed up by the fact that error &187 is in the range used by
OS_Heap and matches the error string. Its likely your socket code is
converting the non socket error in to just &7.
 
> For now, when this happens I'm explicitly testing for it, having the
> machine beep so I know it has happened, closing the socket and going in
> to process the next mailbox, which *is* working around the problem ok
> except that that mailbox doesn't then get processed.

What I don't know is why you are getting OS_Heap errors on socket calls.
The internet stack has its own memory management and doesn't use OS_Heap
AFAIK. Do you have any code operating in the background which may be causing
the forground to pick up an error?

Have you tried testing with no other applications running or 3rd party
module loaded? Temporarily replacing your !Boot with a clean is useful for
ensuring this rather, than trying to strip out a lifetime of customisation.

---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/11/2007 10:54:15 PM
In article <5c73bca34e.druck@druck.freeuk.net>,
   druck <news@druck.freeuk.com> wrote:
> On 11 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> > As far as I can tell the problem is happening in a PROC which wraps
> > around XSocket_Connect.
> > 
> > The procedure gets called repeatedly until there's (usually) been
> > 
> >   one occurrence   of error 36 (EINPROGRESS)
> > 
> >   many occurrences of error 37 (EALREADY)
> > 
> >   one occurrence   of error 56 (EISCONN)
> >
> > Every so often I see the 36, multiple 37s,

> Those are expected errors if you establish a TCP connection on a non
> blocking socket by multiple calls to connect,

Thanks for your reply.  Yes, I realised that's what this represents. 

> rather than the cleaner method of calling connect once then doing a
> socket select call on the handle and waiting for write availability
> which indicates its now open.

but didn't know of that method.  Is there sample code somewhere?

> >  and then a 7.  I don't know what socket error code 7 means.

> If its a errno coming back from the call its E2BIG which isn't really
> sensible for a socket call (its normally when the argument list
> supplied when starting a new program is too long).

Hmm.

> > Maybe (like these other 'error codes') it isn't actually really an
> > error, and I suppose it's just possible the when I'm getting it
> > register 0 is coincidentally pointing to the "can't shrink" message
> > even if that's not intended to have been treated as an error. Does
> > anyone know what socket error 7 means?

> I would have thought it unlikely that the string would be there by
> happenstance...

> > When it does happen after the 7 has been logged ok, my code calls a
> > standard error-box report procedure which displays the "Can't shrink
> > heap any further" message.  !Reporter shows it as:
> > 
> >   ** WimpError ** from AntiSpQD
> >   Error  : &00000187
> >   Message: Can't shrink heap any further
> >    
> > I dunno if the &187 helps or not.

> ...that is backed up by the fact that error &187 is in the range used
> by OS_Heap and matches the error string. Its likely your socket code
> is converting the non socket error in to just &7.

Ah.  Yes the code is:

  SYS XSocket_Connect%,sock%,struct%,16 TO r0%;flags%
  IF flags% AND 1 THEN
     errno% = (r0%!0) AND &7F : REM Iyonix compliant
     CASE errno% OF
       WHEN EINPROGRESS ...

The thing is, the "Iyonix compliant" part was added throughout "real"
!AntiSpam for some reason or other.  It's clearly an over-
simplification, or while Iyo-compliant doesn't work on VRPC.



> What I don't know is why you are getting OS_Heap errors on socket
> calls. The internet stack has its own memory management and doesn't
> use OS_Heap AFAIK.

> Do you have any code operating in the background which may be causing
> the forground to pick up an error?

I don't think so.

> Have you tried testing with no other applications running or 3rd party
> module loaded? 

Not yet...

> Temporarily replacing your !Boot with a clean is useful for ensuring
> this rather, than trying to strip out a lifetime of customisation.

This is a virtually new installation of VRPC, with no boot
customisation applied at all.  Any modules I load (TimerMod for
example) or apps I boot I'm doing manually after the VRPC software has
started.  The only apps running apart from the standard VRPC stuff are
RAM disk, this app, Edit, Alarm, and Reporter.  

The app doesn't do OS_Heap stuff.

Would any of your monitor apps - SWIstat or whatever help to track this
down?

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/12/2007 1:26:42 AM
In article <4ea3ca67ceJeremy@omba.demon.co.uk>,
   Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:

> Ah.  Yes the code is:

>   SYS XSocket_Connect%,sock%,struct%,16 TO r0%;flags%
>   IF flags% AND 1 THEN
>      errno% = (r0%!0) AND &7F : REM Iyonix compliant
>      CASE errno% OF
>        WHEN EINPROGRESS ...

> The thing is, the "Iyonix compliant" part was added throughout "real"
> !AntiSpam for some reason or other.

The REM is an echo of my original which applied to just a couple of
instances in the AS code.

I noted the problem with the error codes returned by RO5 when testing
AntiSpam on my Iyonix.(Dave didn't have one at the time) After a bit of
digging it turned out that RO5 returns the error code that RISC OS
versions somewhat earlier *should* have been returning but were not. The
PRM gives the error code range as 20exx where xx is 00-7F. IIRC the
wrapper code in earlier versions of RISC OS stripped this down to the
last bit and effectively masked off the 20e00

The mask in that bit of BASIC (&7F) does the job. I only checked the simple
parts of the socket connection Dave Higton included the amendment but was
unsure which instances of the error return should be masked so they all
were.
I found the PRM reference to the error code masking at 5a-427 (Makecall)

If it's wrong, just blame me. I'm a dabbler not a programmer. :-)

>  It's clearly an over-
> simplification, or while Iyo-compliant doesn't work on VRPC.

It's an over-simplification in the PRM's then.

Perhaps the problem is that VRPC isn't returning the correct code at that
point and the mask is just highlighting this.

-- 

Steve Pampling
0
1/12/2007 8:26:04 AM
In article <4ea3f0cd1csteve.pampling@dsl.pipex.com>,
   Steven Pampling <steve.pampling@dsl.pipex.com> wrote:

> I noted the problem with the error codes returned by RO5 when testing
> AntiSpam on my Iyonix.  (Dave didn't have one at the time)  After a
> bit of digging it turned out that RO5 returns the error code that
> RISC OS versions somewhat earlier *should* have been returning but
> were not. The PRM gives the error code range as 20exx where xx is
> 00-7F. IIRC the wrapper code in earlier versions of RISC OS stripped
> this down to the last bit and effectively masked off the 20e00

> The mask in that bit of BASIC (&7F) does the job. I only checked the
> simple parts of the socket connection Dave Higton included the
> amendment but was unsure which instances of the error return should
> be masked so they all were.

I *think* you're saying that socket error codes are in range 20Exx and
only the xx part varies.

But the error I'm getting from this socket SWI is not a socket error as
far as we can see, but something else.  ANDing &187 with &7F disguises
the OS_Heap error &187 and makes it look like &7 which has not helped
me.

> Perhaps the problem is that VRPC isn't returning the correct code at
> that point and the mask is just highlighting this.

Or that it did return the right code (though we don't know yet, why),
but the mask corrupted the code.

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/12/2007 5:01:19 PM
In article <4ea41ff958Jeremy@omba.demon.co.uk>,
   Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> In article <4ea3f0cd1csteve.pampling@dsl.pipex.com>,
>    Steven Pampling <steve.pampling@dsl.pipex.com> wrote:

> But the error I'm getting from this socket SWI is not a socket error as
> far as we can see, but something else.  ANDing &187 with &7F disguises
> the OS_Heap error &187 and makes it look like &7 which has not helped
> me.

Just some random thoughts...

IIRC from PRM5a,
the internet module has its error codes starting at a big hex no.... could
be &20Exx, i can't remember OTTOMH and I can't find it in the book ATM.  If
this is subtracted the errors are in the BSD error range 0 to whatever, ie 
36 EINPROGRESS maps to the module 20Exx + 36.

Surely your code should mask with &ff  although the error codes don't go
that high  (87 is the last one listed)?

HTH

-- 
Mitch - 1995 Z28 LT1 M6          terminal_crazy@sand-hill.freeserve.co.uk
Lancashire England          http://www.sand-hill.freeserve.co.uk/terminal_crazy/
0
1/12/2007 8:35:01 PM
On 12 Jan 2007 Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> In article <5c73bca34e.druck@druck.freeuk.net>,
>    druck <news@druck.freeuk.com> wrote:
> > rather than the cleaner method of calling connect once then doing a
> > socket select call on the handle and waiting for write availability
> > which indicates its now open.
> 
> but didn't know of that method.  Is there sample code somewhere?

Plenty, but probably all in C. Its quite straightforward, call connect()
once, if you get an error of EISCONN you are alread connected, if you get
either a EWOULDBLOCK, EINPROGRESS or EALREADY continue to the select call,
any other error means a failure. For the select call set up a write mask with
the desired socket handle and it will return a write available event on that
socket when it is connected. For blocking code use a suitable timeout, for
non blocking poll the select call with a zero or short timeout. If handling
multiple sockets you can use the same select() call to monitor
read/write/connect and error states on all at the same time.

> The thing is, the "Iyonix compliant" part was added throughout "real"
> !AntiSpam for some reason or other.  It's clearly an over-
> simplification, or while Iyo-compliant doesn't work on VRPC.

As explained by others the Iyonix now returns the previously documented
values of Internet SWI chunk + POSIX errno code. Don't just mask off the
bottom bits as in your example. You should ange check for the SWI chunk + 0
to +63 and subtract the base to get the errno. If the value outside this
range, treat the entire value as a RISC OS error code.

> This is a virtually new installation of VRPC, with no boot
> customisation applied at all.  Any modules I load (TimerMod for
> example) or apps I boot I'm doing manually after the VRPC software has
> started.  The only apps running apart from the standard VRPC stuff are
> RAM disk, this app, Edit, Alarm, and Reporter.  

Ah, VRPC doesn't use the RISC OS Internet stack, it its implementation may be
using OS_Heap, and your code is causing an overflow in its memory management.
You could grab the module and have a poke around it in to check.

> Would any of your monitor apps - SWIstat or whatever help to track this
> down?

SWIstat would allow you to see OS_Heap calls being made from if they are
occuring within the context of your application, but it wont help you fix
the problem.

You need to prove correctness of your code on a Risc PC or Iyonix running
the proper RISC OS networking stack, then go back to Virtual Acorn with a
bug report on their stack. I also have a not quite finished version of VRPC
networking (which doesn't use OS_Heap) which you could also test against.
 
---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/12/2007 9:51:57 PM
In article <4ea4338a14Terminal_Crazy@sand-hill.freeserve.co.uk>,
   Terminal Crazy <Terminal_Crazy@sand-hill.freeserve.co.uk> wrote:
> In article <4ea41ff958Jeremy@omba.demon.co.uk>,
>    Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> > In article <4ea3f0cd1csteve.pampling@dsl.pipex.com>,
> >    Steven Pampling <steve.pampling@dsl.pipex.com> wrote:

> > But the error I'm getting from this socket SWI is not a socket
> > error as far as we can see, but something else.  ANDing &187 with
> > &7F disguises the OS_Heap error &187 and makes it look like &7
> > which has not helped me.

> Just some random thoughts...

> IIRC from PRM5a, the internet module has its error codes starting
> at a big hex no.... could be &20Exx, i can't remember OTTOMH and I
> can't find it in the book ATM.  If this is subtracted the errors
> are in the BSD error range 0 to whatever, ie 36 EINPROGRESS maps
> to the module 20Exx + 36.

> Surely your code should mask with &ff  although the error codes
> don't go that high  (87 is the last one listed)?

Haven't been really following this in detail, however - should the
error handler not check that the error code is in the &20Exx series
before ANDing with the &ff mask? Then other OS errors would maintain
their full error code.

-- 
Chris Johnson
0
news104 (799)
1/12/2007 9:55:03 PM
In article <4ea41ff958Jeremy@omba.demon.co.uk>,
   Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:

> I *think* you're saying that socket error codes are in range 20Exx and
> only the xx part varies.

Yep. IIRC the PRM's in the ever popular PDF form were noted as being
available from the ROL site (drobe info) - fix the (broken) zip file and
have a butchers at PRM 5a-472 . Page 427 specifically mentions the 20E00
value.

> But the error I'm getting from this socket SWI is not a socket error as
> far as we can see, but something else.  ANDing &187 with &7F disguises
> the OS_Heap error &187 and makes it look like &7 which has not helped
> me.

Puzzled, Socket_Connect returns an OS_Heap error. How does that work?

> > Perhaps the problem is that VRPC isn't returning the correct code at
> > that point and the mask is just highlighting this.

> Or that it did return the right code (though we don't know yet, why),
> but the mask corrupted the code.

Remove the mask and see what the actual error code is - if it happens

-- 

Steve Pampling
0
1/12/2007 10:19:28 PM
In article <1f953aa44e.druck@druck.freeuk.net>, druck
<news@druck.freeuk.com> wrote:

> As explained by others the Iyonix now returns the previously documented
> values of Internet SWI chunk + POSIX errno code. Don't just mask off the
> bottom bits as in your example.

That bit quoted is a direct rip from AntiSpam and largely my fault.
The problem being that the examples around and about are in C (about which
I know a little more now than I did then - but not a lot) and things may
have been lost in translation to BASIC not to mention the tidy up DH did on
what I'd hacked up.

Could you be a bit more explicit about the correct error code handling?

-- 

Steve Pampling
0
1/12/2007 10:35:37 PM
On 12 Jan 2007 Steven Pampling <steve.pampling@dsl.pipex.com> wrote:
> In article <1f953aa44e.druck@druck.freeuk.net>, druck
> <news@druck.freeuk.com> wrote:
> > As explained by others the Iyonix now returns the previously documented
> > values of Internet SWI chunk + POSIX errno code. Don't just mask off the
> > bottom bits as in your example.
> 
> That bit quoted is a direct rip from AntiSpam and largely my fault.
> The problem being that the examples around and about are in C (about which
> I know a little more now than I did then - but not a lot) and things may
> have been lost in translation to BASIC not to mention the tidy up DH did on
> what I'd hacked up.
> 
> Could you be a bit more explicit about the correct error code handling?

In BASICish(TM):-

    SYS "XSomeInternetSWI" TO errcode%
   
    IF(errcode%>=INET_SWI_BASE% AND errcode%<=INET_SWI_MAX%) THEN
        REM handle POSIX errors
        errno% = errcode% - INET_SWI_BASE%
      
        CASE errno% OF
           WHEN ETHIS:      ...
           WHEN ETHAT:      ...
           WHEN ETHEOTHER:  ...
        ENDCASE
    
    ELSE
        REM handle RISC OS errors
        
        IF errcode=&187 THEN ERROR &187 "Well bugger me!"
    ENDIF

---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/12/2007 11:34:52 PM
On 12 Jan 2007 Steven Pampling <steve.pampling@dsl.pipex.com> wrote:
> Puzzled, Socket_Connect returns an OS_Heap error. How does that work?

Its VRPC, it doesn't use the Internet module, but instead uses its own
code to pass socket calls directly to the Windows internet stack, and
retrun the data back to RISC OS again (with quite a bit of mungingg to make
up for the many BSD complience failures of Windows). Its quite likely it is
using OS_Heap for memory management internally - to which all I can say is
eeek!

I prototyped the technique but never got round to completing it before the
Iyonix was launched, so passed on the information to Graeme. I obviously
forgot to mention all internet stuff should be using fixed buffers for
optimum performance.

---druck

-- 
The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/
0
news5843 (7461)
1/12/2007 11:40:33 PM
In article <190144a44e.druck@druck.freeuk.net>,
   druck <news@druck.freeuk.com> wrote:
> On 12 Jan 2007 Steven Pampling <steve.pampling@dsl.pipex.com> wrote:
> > In article <1f953aa44e.druck@druck.freeuk.net>, druck
> > <news@druck.freeuk.com> wrote:
> > > As explained by others the Iyonix now returns the previously
> > > documented values of Internet SWI chunk + POSIX errno code. Don't
> > > just mask off the bottom bits as in your example.
> > 
> > That bit quoted is a direct rip from AntiSpam and largely my fault.
> > The problem being that the examples around and about are in C (about
> > which I know a little more now than I did then - but not a lot) and
> > things may have been lost in translation to BASIC not to mention the
> > tidy up DH did on what I'd hacked up.

> > Could you be a bit more explicit about the correct error code handling?


So it's

> In BASICish(TM):-

>     SYS "XSomeInternetSWI" TO errcode%

Range check:

>     IF(errcode%>=INET_SWI_BASE% AND errcode%<=INET_SWI_MAX%) THEN
>         REM handle POSIX errors

Subtract the base:

>         errno% = errcode% - INET_SWI_BASE%
>       
>         CASE errno% OF
>            WHEN ETHIS:      ...
>            WHEN ETHAT:      ...
>            WHEN ETHEOTHER:  ...
>         ENDCASE
>     
>     ELSE
>         REM handle RISC OS errors

OK. Ta.
My first present of the day.
         
>         IF errcode=&187 THEN ERROR &187 "Well bugger me!"
>     ENDIF

With error &187 it probably has ;-)

-- 

Steve Pampling
0
1/13/2007 12:31:14 AM
In article <4ea43d19cdsteve.pampling@dsl.pipex.com>,
   Steven Pampling <steve.pampling@dsl.pipex.com> wrote:

> Remove the mask and see what the actual error code is - if it happens

It's &187 with a heap-related error message.

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/13/2007 1:47:28 AM
In article <190144a44e.druck@druck.freeuk.net>,
   druck <news@druck.freeuk.com> wrote:

>     IF(errcode%>=INET_SWI_BASE% AND errcode%<=INET_SWI_MAX%) THEN

Are there SWIs one can use to determine these numbers?

>         IF errcode=&187 THEN ERROR &187 "Well bugger me!"

Tee hee!

-- 
Jeremy C B Nicoll, Edinburgh, Scotland - my opinions are my own.
0
Jeremy1 (1807)
1/13/2007 1:50:53 AM
In article <4ea450752cJeremy@omba.demon.co.uk>,
   Jeremy C B Nicoll <Jeremy@omba.demon.co.uk> wrote:
> In article <190144a44e.druck@druck.freeuk.net>,
>    druck <news@druck.freeuk.com> wrote:

> >     IF(errcode%>=INET_SWI_BASE% AND errcode%<=INET_SWI_MAX%) THEN

> Are there SWIs one can use to determine these numbers?

The InetSocket StrongHelp manual contains a full listing.

In compiled C the range seems to be set as &20E00-&20E7F. I've seen
several examples where - after AND-ing with &FF - everything above
EREMOTE (71) is changed to ESRCH (3).

Anyway, adding the error range check won't make the original problem go
away. Maybe inserting a Select state will. I'll see if I can add that to
AS 1.60.

Regards,
Frank
0
zuiderduin (135)
1/13/2007 8:32:39 AM
Reply:

Similar Artilces:

Can't "mk CONF=9pcdisk" --> gives error "rc: #d/0: token '=': syntax error"
I'm in /sys/src/9/pc and I type `mk CONF=9pcdisk` and rc gives me the error "rc: #d/0: token '=': syntax error". Why is this? Just doing mk works fine (I think). Thanks! Plan9 looks very cool... just finished reading through intro (all of it). you're using backquotes, why? that would be `{mk CONF=3D9pcdisk} in rc's syntax. now to compile that kernel the syntax is: % mk 'CONF=3Dpcdisk' now are you sure you want a pcdisk?=20 On Jul 19, 2012, at 6:07 AM, kalaracey@gmail.com wrote: > I'm in /sys/src/9/pc and I type >=20 > `mk CONF=3D9pcdisk` >=20 > and rc gives me the error "rc: #d/0: token '=3D': syntax error". >=20 > Why is this? Just doing mk works fine (I think). >=20 > Thanks! Plan9 looks very cool... just finished reading through intro = (all of it). >=20 --- Federico G. Benavento benavento@gmail.com --0015174757f6baa65404c52b40a6 Content-Type: text/plain; charset=UTF-8 9pcdisk is the output file, not the configuration file. Also you need to quote the = because it is special to rc (assignment). Try mk 'CONF=pcdisk' On 19 July 2012 10:07, <kalaracey@gmail.com> wrote: > > `mk CONF=9pcdisk` --0015174757f6baa65404c52b40a6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 9pcdisk is the output file, not the configuration file. Also you need to qu= ote the =3D becaus...

xclock fail with "Error: Can't open display" on "ssh -X"
I can ssh -X to a RHEL4 linux and a HP-UX B.11.23 U ia64 computer from a FC6 linux computer. I can run xclock or xterm on the RHEL4 linux computer. However, running xclock or xterm on the HP-UX B.11.23 U ia64 computer has these errors: bash-3.2# xclock Error: Can't open display: Error: Couldn't find per display information bash-3.2# xterm xterm Xt error: Can't open display: %s bash-3.2# sshd -version sshd: illegal option -- v OpenSSH_4.5p1+sftpfilecontrol-v1.1-hpn12v14, OpenSSL 0.9.7l 28 Sep 2006 HP-UX Secure Shell-A.04.50.021, HP-UX Secure Shell version Using "ssh -Y" to login to the RHEL4 and HPUX computer get the same result. Please help so that I can run xclock or xterm on the HPUX computer. On Mon, 5 Jan 2009 17:34:57 -0800 (PST), TsanChung wrote: > I can ssh -X to a RHEL4 linux and a HP-UX B.11.23 U ia64 computer > from a FC6 linux computer. > I can run > xclock or xterm > on the RHEL4 linux computer. > However, running > xclock or xterm > on the HP-UX B.11.23 U ia64 computer has these errors: might try xhost +localhost ssh RHEL4.ip.here You may want to verify your hupx login script(s) does not hard code $DISPLAY On Jan 5, 9:01=A0pm, Bit Twister <BitTwis...@mouse-potato.com> wrote: > On Mon, 5 Jan 2009 17:34:57 -0800 (PST), TsanChung wrote: > > I can ssh -X to a RHEL4 linux and a HP-UX B.11.23 U ia64 computer > > from a FC6 linux computer. > > I can run > > xclock or xterm &...

xclock fail with "Error: Can't open display:" on "ssh -X"
I can ssh -X to a RHEL4 linux and a HP-UX B.11.23 U ia64 computer from a FC6 linux computer. I can run xclock or xterm on the RHEL4 linux computer. However, running xclock or xterm on the HP-UX B.11.23 U ia64 computer has these errors: bash-3.2# xclock Error: Can't open display: Error: Couldn't find per display information bash-3.2# xterm xterm Xt error: Can't open display: %s bash-3.2# sshd -version sshd: illegal option -- v OpenSSH_4.5p1+sftpfilecontrol-v1.1-hpn12v14, OpenSSL 0.9.7l 28 Sep 2006 HP-UX Secure Shell-A.04.50.021, HP-UX Secure Shell version Using "ssh -Y"...

pgsql-server: Give a more specific error message for "you can't do that"
Log Message: ----------- Give a more specific error message for "you can't do that" error cases in plpgsql, particularly trying to begin/end/rollback a transaction. Modified Files: -------------- pgsql-server/src/pl/plpgsql/src: pl_exec.c (r1.114 -> r1.115) (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plpgsql/src/pl_exec.c.diff?r1=1.114&r2=1.115) ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to ...

Error Message: "Microsoft Access Can't Open the Mail Session"
I am getting the following error when I am trying to send a report as an email attachment "Microsoft Access Can't Open the Mail Session" On the knowledge base on the MS site it says that this will happen if you have installed Access 97 after installing MS Office 2000. However I haven't installed Access 97 on this machine. I am not using code for this, I am using the Mail as Attachment option from the file menu. Can anyone help me with this. TIA Stephen, Try opening the mail program before clicking on the "Mail as Attachment". I seem to remember this error having something to do with what is your default mail program. If you have Outlook listed as your default mail program you may need to change it to Outlook Express. Regards. "Stephen" <steph_mw@hotmail.com> wrote in message news:3fb7fe31@news.comindico.com.au... > I am getting the following error when I am trying to send a report as an > email attachment > > "Microsoft Access Can't Open the Mail Session" > > On the knowledge base on the MS site it says that this will happen if you > have installed Access 97 after installing MS Office 2000. However I haven't > installed Access 97 on this machine. > > I am not using code for this, I am using the Mail as Attachment option from > the file menu. > > Can anyone help me with this. > > TIA > > --- This email from Barry Wright has been scanned using AVG 6.0 and...

Error
Why does the code below give me this error? What can I do to fix it? /people3.rb:4:in `+': can't convert nil into String (TypeError) om C:/Ruby192/people3.rb:4:in `to_s' class Person attr_accessor :fname, :lname, :age def to_s "hi " + @fname + ", " + @lname end end Thanks PR -- Posted via http://www.ruby-forum.com/. On Sep 29, 12:03=A0am, Paul Roche <prpaulro...@gmail.com> wrote: > Why does the code below give me this error? What can I do to fix it? > > /people3.rb:4:in `+': can't convert nil into String (...

Forget "Why Can't Johnny Read?" ... Why Can't Eudora Read?
I have a script which writes a MIME-formatted email containing both text and HTML. It works perfectly with all email clients with the exception of the free version of Eudora. As many of you no doubt are aware, a multipart/alternative email is constructed with two or more parts: (1) text for mail clients unable to read HTML and (2) HTML. Eudora is one of the clients which cannot read HTML. So does it read the text version of the multipart/alternative email? Of course not. It tries to read the 2nd part which is the HTML and fails ... thus displaying a table as if it were text. Eudora liter...

Instruction at "0x00FC3D70" use memory address "0x00000000". Can't be "read".
Yesterday, ALL code in python work and nothing when I close(finish) a code. Today, when I close, some raise this windows error : Instruction at "0x00FC3D70" use memory address "0x00000000". Can't be "read". Click on "OK" to exit program. Why this error, today and not before today? Askari Askari wrote: > Yesterday, ALL code in python work and nothing when I close(finish) a code. > Today, when I close, some raise this windows error : > > Instruction at "0x00FC3D70" use memory address "0x00000000". Can't be &...

Why can't "define" double as "set!"?
hi Is there any good reason that "define" shouldn't double as "set!"? dillogimp@gmail.com wrote: > Is there any good reason that "define" shouldn't double as "set!"? Yes: DEFINE defines variables, SET! changes the values of (defined) variables: (set! x 1) => wrong! (define x 0) (set! x 1) x => 1 Some interpreters may implicitly define variables when you try to set! them for the first time, thereby making DEFINE and SET! /appear/ to be the same. -- Nils M Holm <n m h @ t 3 x . o r g> -- http://t3x.org/nmh/ On Thu, 5 Apr 200...

error-message "can't open file wb" ; strange behavior of scipad in linux (mark/select & [copy &] paste)
I 've got today two error messages, which I've never seen before and which I don't understand at all. (Maybe there where changes in the linux-system on the PC, but I don't know...) Running a scilab-"code" written by myself and used without problems before, today at first there was something like: "xinit must be called before any action" When I then called xinit before the code, I've got at least the message "can't open file wb" or both messages. I didn't find an explanation or solution to the problem, so I deleted and installed scilab again and somehow its working again. I've just got another problem: Before, I used to mark ("select") all the code in scipad (usually using the shortcut ctrl+/) and to put it into scilex by middle-mouse-click. Now, this is often (but not always!) impossible. The code has much less than 16000 characters! Using gedit or other editors/writers it's no problem to put (the same) code into scilex by select and middle-mouse-click in the scilex-window.. Alternatively (after pressing ctrl+/ (select all)) i could use the ctrl+y (evaluate selection) shortcut in scipad instead of middle-mouse-click in the scilex-window, but unfortunately in this case, one doesn't see immediately if it works. I don't understand, why it worked without any problems until now and now it often (but not always) doesn't work. using scilab3.0 in linux (...

Windows "routing" server separating two subnets
Gurus, I have a small lab with a bunch of servers setup on two different subnets, 192.168.1.1 is the gateway for one and 172.16.1.1 is the gateway for the other. Installed on my Router (Windows Server with three NICs - I know, please don't comment on this, it's is for learning purposes, not production), the third NIC is the gateway to the Internet. What works: The Router server can reach the Internet as well as the computers in the 192.168.1.0/24 subnet (the first subnet built). What's broken: The computers on the 172.16.1.0/16 subnet cannot get to the Inter...

Fortran PROGRAMMER "can't"
As these threads are back (unfortunately), I thought I would start a new one: Apparently, at least one Fortran programmer can neither read (and understand) nor write a "programming specification". I wonder how common that is among those "limited" to Fortran? My assumption is that it isn't very common - but you never know! (He still hasn't produced a valid Fortran application to *meet* the full specifications of the "Telco benchmark" - or at least hasn't produced one that has been accepted and referenced on that site. His "CAN'T" "specifications"change every time he is shown that what he SPECIFIED can be done.) -- Bill Klein wmklein <at> ix.netcom.com ...

error with smtp send_message: can't read "aprops(error)": no such element in array
can't read "aprops(error)": no such element in array I get the above error at one clients site when sending a message using smtp::send_message. Sometimes it works, sometimes it doesn't. This appears to be an intermittent bug with the smtp package. Does anybody have any ideas how to work around it? "Peter Campbell" <pc@acs.co.nz> writes: >can't read "aprops(error)": no such element in array > >I get the above error at one clients site when sending a message using >smtp::send_message. >Sometimes it works, sometimes it doesn't. > >This appears to be an intermittent bug with the smtp package. >Does anybody have any ideas how to work around it? Create a test script that includes the -debug 1 option in the sendmessage step. This will log all the SMTP traffic to stderr. With any luck this will suggest which bit needs fixing. In the meantime, look through the smtp.tcl file for anywhere that aprops(error) is used and prefix it with a [info exists aprops(error)]. Presumably you will still need to handle the error though. -- Pat Thoyts http://www.zsplat.freeserve.co.uk/resume.html To reply, rot13 the return address or read the X-Address header. PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD Peter Campbell wrote: > can't read "aprops(error)": no such element in array > > I get the above error at one clients site when sending a message using > smt...

Why can't push a "const auto_ptr" into a "vector"
Hi, I want to push a const auto_ptr into a vector, but the compile reports errors. Below is the code. class Folder; class Result; class Results { public: int size(){return _Items.size();} const vector<const auto_ptr<Result> >& Items()const{return _Items;} Results(); ~Results(); private: vector<const auto_ptr<Result> > _Items; }; Results::Results() { typedef list<const auto_ptr<Result> > ResultVector; Result* hdresult = new Result(); auto_ptr<Result> hdptr(hdresult); _Items.push_back(hdptr); } The c...

Can't locate object method "first" via package "attempt" (perhaps you forgot to load "attempt"?) at ....
"Can't locate object method "first" via package "attempt" (perhaps you forgot to load "attempt"?) at E:\Inetpub\....\N_Clt_prf.pl line 38."I get this error on a perl program that prints & processed a form.Program was working until I made a simple (cosmetic) change. Could not find any reference to this error.Could anyone our there help?Thanks. "GMI" <Admin@GoMonitor.com> wrote in news:11bbgp4iovmsdb@corp.supernews.com: > "Can't locate object method "first" via package "attempt" (perhaps you >...

Fortran PROGRAMMER "can't" #2
Subject: Fortran PROGRAMMER "can't" From: "William M. Klein" <wmklein@nospam.netcom.com>, EarthLink Inc. -- http://www.EarthLink.net Date: Fri, 28 May 2004 19:35:08 GMT .. | Apparently, at least one Fortran programmer can neither read (and understand) | nor write a "programming specification". | | I wonder how common that is among those "limited" to Fortran? My assumption is | that it isn't very common - but you never know! .. It used to be quite common, evidenced by Fortran programmers who switched to PL/I. Their code looked like Fortran with semicolons, replete with GOTOs. .. Grasping new concepts such as dynamic storage allocation seemed an unsurmountable task. .. Judging from Frank's postings in particular, and some other postings in c.l.fortran, it's still evident that some cannot cope with a program where each line doesn't start in column 1, and real*4 abounds, and 'implicit none' is eschewed. .. | (He still hasn't produced a valid Fortran application to *meet* the full | specifications of the "Telco benchmark" - or at least hasn't produced one that | has been accepted and referenced on that site. His "CAN'T" | "specifications"change every time he is shown that what he SPECIFIED can be | done.) .. That's right. He thinks that some piece of Fortran code can't be replicated in PL/I, but forgets that PL/I is a superset of Fortran. .. So he changes t...

[OT] Nit: please don't user "it's" unless you can substitute "it is" without changing your inteded meaning.
Typos happen to all of us, but in case you hadn't realized what "it's" is a contraction for ("it is"), now you do, and you can save yourself further embarrassment (assuming you care ;-). If your friends won't tell you, who will ;-) Write the contraction "it's" only when you want its meaning to be "it is," otherwise it's wrong ;-) OTOH, how does one punctuate the posessive of a word per se? E.g., the first letter of "it" is "i", but can one write that as "it"'s first letter is "i," or it...

"Can't call method "disconnect" on an undefined value..."
Hey there anyone, I am new at this and I am trying to figure this out and I don't know too much, but I keep getting this error when trying to run my cgi page can anyone help, please. Here is the error: Can't call method "disconnect" on an undefined value at /home/virtual/site7/fst/var/www/cgi-bin/affiliates/common.sub line 44. Here is the script I am trying to run: #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); #!/usr/local/bin/perl -w ################## Form Processing Function ######### if ($ENV{'REQUEST_METHOD'} eq 'GET') { # Split the name-value pairs @pairs = split(/&/, $ENV{'QUERY_STRING'}); } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); } foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<([^>]|\n)*>//g; $value =~ s/\<//g; $value =~ s/\>//g; $value =~ s/\|//g; $value =~ s/\*/\\\*/g; $value =~ s/\?/\\\?/g; $value =~ s/\+/\\\+/g; $FORM{$name} = $value; } #require "/var/www/cgi-bin/affiliates/config.cgi"; # you might need the full path to this file require "/home/virtual/site7/fst/var/www/cgi-bin/affiliates/config.cgi"...

"can't convert parameter" error
// why is the error message being generated? // Microsoft Visual C/C++ 5.0 class Bar { public: void Log(const char* p){ } }; class Foo : public Bar { public: void Log(int x){ } }; int main() { Foo foo; foo.Log("foo bar"); // error message below return(0); } // error C2664: 'Log' : cannot convert parameter 1 from 'char [8]' to 'int' Ian Lazarus wrote: > // why is the error message being generated? > // Microsoft Visual C/C++ 5.0 > > class Bar > { > public: > void Log(const char* p){ } > }; > > class Foo : public Bar ...

MAC SE: "Bomb" "Sys Error" / Address error" at start
Stephen Buggie (505) 863-2390 Psychology Department Univ. of New Mexico, Gallup February 15, 2006 200 College Road Gallup NM 87301 buggie@unm.edu NEED RESCUE DISK! MAC SE -- BOMB System Error / Address Error ------------------------------------------------------------------------------------------------ Dear Macintosh experts, My Mac SE crashes at power-up. I gives the bell-chime, then it proceeds though the launch sequence. After showing two extension-icons, it crashes. Then a dialogue-box shows the BOMB icon with the message, SORRY, A SYSTEM ERROR HAS OCCURRED --- ADDRESS ERROR It never reaches the desktop; this crash occurs every time. The Mac SE has a 330 meg internal hard drive, System 6.x.x, and a 1.4 meg internal 3.5 floppy drive. There is a SCSI port but no internal CD reader. The b/w screen is extremely sharp in its focus. The computer worked fine until about a year ago, when I stupidly put a file in the wrong folder. It has crashed consistently ever since! It has an assortment of software on the hard drive, but I have backups of everything and am willing to reformat the entire hard drive if necessary to get the computer working again! If I can resurrect the computer, I hope to upgrade the system to System 7.0 or 7.1 . DONE SO FAR: Yes, I have launched it with shift-key down, to turn off the extensions, but it always crashes Ive also tried vari...

"error C2057: expected constant expression", "error C2466: cannot allocate an array of constant size 0". Why doesn't my simple program work???
Hi: I have the following simple program: #include<iostream> using namespace std; int main(int argc, char* argv[]){ const double L = 1.234; const int T = static_cast<const int>(L); int arr[T]; return 0; } But I get the error message shown in title. Why doesn't my program work? Thanks for help! On 2007-01-20 17:08, hn.ft.pris@gmail.com wrote: > Hi: > I have the following simple program: > > #include<iostream> > using namespace std; > int...

error: "couldn't execute "date": no such file or directory" in Tk
hi, i am using the following code in a tcl script with the TK framework, and i get the above error on executing the file main file.. main file --------------- #!c:/tcl/bin/tclsh label .l -text "click to execute" button .b -text "Execute" -command "exec_script" proc exec_script {} { set inp 1 source sss.tcl puts $inp } pack .l .b sss.tcl ----------------------------- #!c:/tcl/bin/tclsh set inp 0 puts $inp set d [exec date] The error i get is "couldn't execute "date": no such file or directory" I am using Tk with Tcl and it is necessary to print the date along with along with my output. The "exec date" works perfect in a tcl script only. but when i use it along with TK i get the error... i will be glad if someone could please help me... thank you.. On 21 Feb., 12:42, "ronnie" <maninder....@gmail.com> wrote: > set d [exec date] > > The error i get is "couldn't execute "date": no such file or > directory" Since Tcl 7.6 or so, the [clock] function delivers date and time in a portable way. See http://www.tcl.tk/man/tcl8.4/TclCmd/clock.htm Examples: 53615 % clock format [clock seconds] Wed Feb 21 12:48:09 W. Europe Standard Time 2007 84 % clock format [clock seconds] -format %c Mittwoch, 21. Februar 2007 12:48:21 53 % clock format [clock seconds] -format %Y-%m-%d,%H:%M:%S 2007-02-21,12:49:42 That [exec date] does work at times, and not at ...

Suddenly Can't Use "ifstream"s and "ofstream"s
I had a working piece of code that successfully read from files with the "ifstream" type and wrote to files with the "ofstream" type. This code is made up of a number of different files. In the course of the job I needed for two of these files to have access to one piece of information, so I created a class that I called "CSuffix" and stored the common information there. So I created a "Suffix.h" file that looks like: #pragma once class CSuffix { public: static void initialize (); static void increment (); static c...

Error "can't create SYSTEM.MDW" ???
Dear Access gurus, I was using since years Access 97, now under XP SP2, without any problem. However I've just reformatted my HD (viruses...), reinstalled XP SP2, and then I am no longer able to install Access 97 : When executing the install, I got successively two error messages (sorry, it's probable not exactly the same text than in the english version of access as I've just translated what my french access says) : - "Error while changing workgroup" - "Impossible to create SYSTEM.MDW (-1011)" Then when trying to launch access I get of course an error like "missing c:\windows\system32\system.mdw". I tried to copy system.mdw from another PC but then access crashes with an "out of memory" error ! What's happening ? Any help welcome... PS : As an urgent workaround, is there any open source database front-end that that "read" acces DB and forms ? Many thanks, Robert Sorry if I state the obvious, but do you have write access to the system32 folder? Are you using an admin account for the installation? "Rog" <delahayerc@state.gov> a �crit dans le message de news: 1109838806.460227.137250@o13g2000cwo.googlegroups.com... > Sorry if I state the obvious, but do you have write access to the > system32 folder? Are you using an admin account for the installation? Thanks, but I am administrator (and the only account on my PC). I can create or modify a file in system32 without any...

Web resources about - Error message: "can't shrink heap any further" - comp.sys.acorn.programmer

Resources last updated: 3/25/2016 10:55:28 AM