[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problems with X server

    Date: Thu, 17 Oct 1991 16:53 EDT
    From: readingj@CERF.NET (John D. Reading)

    I just went to connect to a remote host using the X server program
    on the Symbolics, and got a "divide by 0" error. "That's strange", I
    thought. So I went and looked at the routine that was giving the
    error. It was supposed to return the time in milliseconds. Predictably
    enough, it gets the full-microsecond-time, then calls some undocumented
    function to divide the two-part number thus obtained by 1000. After a 
    little fiddling I realized that full-microsecond-time has just very
    recently (probably today?) clicked over to 1000 in the high value it
    is returning. I tried using (mod high 1000) in the routine as an
    argument to the undocumented function, and it worked just fine.

    Question: Is everybody else having this problem today, or is it only
    me? Does anybody have a better solution than mine? The actual function
    being called by X is x-server:|GetTimeInMillis|, and the function
    getting the error is sys:%divide-bignum-step (for which I don't have
    the source, so I have no idea how to fix it).

This problem occurs when your system has been up too long.  It's handing
a number that's too large to be a component of a bignum to a bignum

Your fix is exactly what I use.  Actually, for a long time I was using a
version of the patch that called microsecond-time and then called FLOOR.
The code is trying hard to avoid consing bignums.  Eventually I realized
that the MOD solution is equivalent.