Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Upcoming? My first practical use for generic functions: WebPageType + WhatToGlean

20 views
Skip to first unread message

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 10, 2009, 2:58:39 PM10/10/09
to
I'm currently upgrading some of my software to work in
automatic-dataflow mode. See these recent tweets since my previous
newsgroup article:
<http://twitter.com/CalRobert/status/4755853906>
<http://twitter.com/CalRobert/status/4755862002>
<http://twitter.com/CalRobert/status/4755874667>
<http://twitter.com/CalRobert/status/4755919021>
<http://twitter.com/CalRobert/status/4755963644>
<http://twitter.com/CalRobert/status/4756022073>
<http://twitter.com/CalRobert/status/4756033669>
<http://twitter.com/CalRobert/status/4756064203>
<http://twitter.com/CalRobert/status/4757073513>
<http://twitter.com/CalRobert/status/4757099245>
<http://twitter.com/CalRobert/status/4757126901>
<http://twitter.com/CalRobert/status/4757326800>
<http://twitter.com/CalRobert/status/4757334323>

Basically I have a NestAL (Nested Association Lists, more
conceptually nested associative arrays, or if I may coin a new term
"associative tree") which has entries for the various stages within
a data pipeline, starting from input (given data, or filename where
data can be found) and proceeding through various other data
objects sequentially-computed from that input. (For this
application, most of the items are singleton, so no nesting
actually occurs, but the DOM item is a complete parse tree which is
a NestAL embedded directly in the toplevel NestAL.) My current
application starts with the filename of some WebPage source that
was previously downloaded to a local disk file, which then gets
loaded as 8-bit bytes, which then gets analyzed to see whether it
looks like 8-bit or 16-bit UniCode tokens, and in the latter case
it gets re-packed into 16-bit bytes, which then gets tokenized (and
in the process nontrivial UTF-8 or UTF-16 sequences get re-packed
to single UniCode points), and then the tokens get "nested", i.e.
OPEN/CLOSE tag pairs are combined to a single MATCH token with all
enclosed structure nested within it, yielding a DOM (Document
Object Model), a.k.a. "parse tree". Finally, various kinds of
information can be gleaned merely by traversing that DOM in a
structured manner. For example, if the original WebPage was from a
"file manager" on a Web hosting service, items to be gleaned from
its DOM could be the storage that is used, the storage that remains
unused, and a listing of toplevel files and toplevel sub-folders.

To use the automatic dataflow, first you create an empty NestAL,
then add to it the filename, or a function that can generate the
filename plus any information it needs to compute that filename,
then you simply ask for some item of information further down the
dataflow sequence. It automatically backtracks as needed to find
some item it already has, then computes forward from that point.
For example, here's a transcript of providing a Yahoo account name
and a function to compute the corresponding local filename where I
previously cached the toplevel GeoCities FileManager WebPage, and
then asking it to produce the Usage in megabytes for that GeoCities
account (warning: This example is *before* I implement the generic
function, so it's not as clean as I'm now proposing to make it):

* (setq g-nestal (make-nestal :TEST))
(:TEST)
* (nestal+tag+value-install g-nestal :YAHACCT "rem642b")
(:TEST (:YAHACCT . "rem642b"))
* (nestal+tag+value-install g-nestal :TOFILENAME #'nestal-yahacct-geotopfm-filename)
(:TEST
(:TOFILENAME
. #<Interpreted Function NESTAL-YAHACCT-GEOTOPFM-FILENAME {61187DA1}>)
(:YAHACCT . "rem642b"))
* (sgxmlp-want-GeoFMusage g-nestal)
[To get GEOFMUSAGE, need to glean from DOM ... [To get DOM, need to process fro
m TOKENS ... [To get TOKENS, need to process from UNICODES ... [To get UNICODES,
need to process from RAWDATA ... [To get RAWDATA, need to load from FILENAME ..
. [To get FILENAME, need to call TOFILENAME ... gotcha FILENAME] gotcha RAWDATA
]
NCHS: (10 10 10 10 60 104 116 109)
CHS: (#\Newline #\Newline #\Newline #\Newline #\< #\h #\t #\m)
8-bit encoding
gotcha UNICODES]
* Neither DOCTYPE nor XML decl at top of file *
1000 (NakedScript 192 ... 735) (NakedScript 19497 ... 19498) gotcha 917 TOKE
NS] (Unmatched (:CLOSE "TR") token) (Unmatched (:CLOSE "TABLE") token) gotcha
2 toplevel DOM items] gotcha GEOFMUSAGE]
3.2

So there we are, 3.2 megabytes of space used on the GeoCities
WebSite owned by the Yahoo account rem642b.

But that's just one type of Web page (toplevel FileManager on
Geocities), and just one datum to be gleaned (usage in MB) from the
DOM of that Web page. There are some other kinds of data I might
want to get out of a Web page:
- Remaining unused storage
- List of files and folders in that (site-toplevel) directory

And there are several other kinds of Web pages I might want to
glean such data from:
- Sub-folder within FileManager on Geocities
- Public-accessible folder on GeoCities, if not protected by an index file (*1*)

This seems to me to be a clear case of "chinese restaurant"
mix-and-match, "one from column A and one from column B", i.e.
generic function: One parameter telling which kind/format of Web
page has been downloaded, and another parameter telling which kind
of data is to be gleaned from the DOM, the two dimensions of
variation acting independently of each other in regard to how the
generic function is called, but a separate handcoded method defined
for each combination of WebPageFormat and WhatIsWanted that makes
sense. One combination, for example, that doesn't make sense, is
trying to get the usage-in-megabytes from a GeoCities FileManager
page that isn't at the top level, because only the login page and
the Top-FileManage pages show the chart of usage/free/total.
Another combination that doesn't make sense is trying to get a
listing of files and folders from a GeoCities login page, because
after login you have to get into the file manager before you can
see any directory listings. Here's a tentative chart of which
combinations make sense and which don't:
Want: Usage, Free, Total Files, SubDirectories
TopGeoCities yes NO
TopGeoFM yes yes
InnerGeoFM NO yes
PublicURL NO yes (but works only if not protected)

Conclusion: This seems a good time for me to learn the
generic-function part of CLOS and put it to good use. After the
change, instead of asking for GeoFMusage specifically, as in the
demo above, I'd install a PAGETYPE datum into the NestAL at the
very start, at the same time as I set up the filename or method to
compute filename, because that is when such info is most readily
available. Then later I would just ask generically for USAGE or
FREE or TOTAL or FILESDIRECTORIES and the generic function would
dispatch according the combination of what type PAGETYPE and
WHATWANT. I suppose the API for this would be:
(nestal-dataflow-want <nestal> <whatwant>)
So I'll need to check the CLOS documentation to determine whether
this type of 2-dimensional generic dispatching is even supported.
The <whatwant> parameter will be a keyword, which will be EQ or EQL
compared with various methods. But dispatching over the <nestal>
parameter will require fetching the PAGETYPE item from the NestAL
and then dispatching on *that*. I don't know if CLOS can do that
directly, or I'd have to fetch it myself before calling:
(nestal-dataflow-want <nestal> <whatwant> <pagetype>)
where 2nd and 3rd parameters are keywords which I'm sure CLOS can
2-dimensionally dispatch over.

Of course I don't *have* to use CLOS. I could do it the old
fashioned way, by having the dataflow handler as a single ordinary
function with explicitly nested CASE expressions:
(defun nestal-dataflow-want (nestal whatwant &optional (pagetype :UNKNOWN))
(unless (nestalp nestal)
(error "First parameter needs to be a NestAL"))
(unless (keywordp whatwant)
(error "Second parameter needs to be a keyword"))
(unless (keywordp pagetype)
(error "Third parameter needs to be a keyword"))
(case pagetype
(:UNKNOWN (let ((pt (nestal+key-geval nestal :PAGETYPE)))
(unless (keywordp pt) (error "Need PAGETYPE to dispatch"))
(when (eq pt :UNKNOWN) (error "Avoiding recursion loop"))
(nestal-dataflow-want nestal whatwant pt)))
(:TOPGEO (case whatwant
(:USAGE (whatever))
(otherwise (error "For Toplevel GeoCities, want what??"))))
(:TOPGEOFM (case whatwant
(:USAGE (whatever))
(:FILESFOLDERS (whatever))
(otherwise (error "For Toplevel GeoCities FM, want what??"))))
(:INNERGEOFM (case whatwant
(:FILESFOLDERS (whatever))
(otherwise (error "For inner GeoCities FM, want what??"))))
(:PUBLICGEO (case whatwant
(:FILESFOLDERS (whatever))
(otherwise (error "For public GeoCities directory, want what??"))))
(otherwise (error "Unknown type of Web page, can't dispatch")))
)
That's 27 lines, which is a little bit longer than I usually like
to have any single function, but it's (barely) manageable that way.
But as I add more and more types of Web pages, all of which pass
through the same generic SGML/XML parser, but each of requires
dispatching to a different set of gleaners for each of the
different kinds of data available within that type of Web page, and
as I add more types of data that can be gleaned from each type of
Web page, it'll soon become unwealdy, unless I convert to a generic
function with various DEFMETHODs.


(*1*) For each directory on a Web-hosting site, or in the public_html
of an ISP, there's a corresponding URL, such as:
-1- <http://www.geocities.com/bright111111/>
-2- <http://www.geocities.com/bright111111/Images/>
-3- <http://www.geocities.com/bright111111/Images/S5/>
-4- <http://www.rawbw.com/~rem/>
-5- <http://www.rawbw.com/~rem/NewPub/>
-6- <http://www.rawbw.com/~rem/NewPub/BadWebSites/>
-7- <http://www.rawbw.com/~rem/New/>
-8- <http://www.rawbw.com/~rem/New/PrivateMessages/>

If there is no index file in that particular directory, going to
that URL from any Web browser will show a listing of files and
sub-directories within that directory. But if there *is* an index
file for that directory, then going to that URL will show the index
file instead of the directory listing. Most Web-hosting sites
*require* that each user's toplevel directory be protected, and
they supply a default index page which the user is supposed to
later modify to prove he/she is actively building a Web site. But
sub-directories are the option of the owner, whether they'll also
be protected or not, on most Web-hosting services.

Depending on the hosting service, the name of the index file at the
top level or for any particular sub-directory may be any of:
index.html index.htm index.php index.asp etc.

Note that of the URLs listed above, items -1- -4- -8- are
protected, while the others are not protected and can be viewed
(directory listed) by anyone on the net. The index file for -8- in
particular has a link to the Computer Crime law and another link to
an essay giving more detail about how wrong it is to attempt to
break into anything online which the owner has *tried* to protect
from break-in, which (IMO) would apply to Web directories with an
index file. That essay is (IMO) very fine reading!

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 11, 2009, 5:59:37 AM10/11/09
to
I previously pondered whether to learn how to use generic functions
in CLOS and apply them to this task, or use old-fashioned Lispy
functions. I posted a "strawman" example of what kind of Lispy code
I was thinking of.

Update: I looked at an online CLOS tutorial, and couldn't figure
out any easy way to make generic functions dispatch on the specific
value of a keyword in a data structure, so I dismissed CLOS as not
suitable for this task, at least at my present level of
understanding. Instead I chose an old-fashioned Lispy functional
approach, but quite different from my original "strawman" idea.

My thinking was as follows: For many types of dataflow, such as
filename -> rawdata -> unicode -> tokens -> DOM
it's completely irrelevant what kind of Web page is being parsed,
whether it's the top level just after logging into GeoCities, or
the top level of GeoCities File Manager, or some sub-directory
within File Manager, or some public view of a GeoCities directory,
etc. Thus it's silly to dispatch on both goal (what data to
generate) and type of WebPage as originally envisioned. Most of the
time it's sufficient to dispatch on just the goal. And even when
there are different methods to compute the same data depending on
which format of Web page is being parsed, the dispatching to
different gleaners may be more complicated than just diapatching on
a single TypeOfWebPage keyword. So I decided that the top level of
dispatching should be the goal rather than the type of Web page,
and then the dispatched-to function would have the job of deciding
whether to "just do it" or sub-dispatch to some other set of
methods.

Second, it makes sense to have the top-level (goal) dispatching be
data-driven, from a global variable ontaining a NestAL that maps
goal to function, actually *name* of function, actually *symbol*
that if fbound to the function, so that when I load new versions of
methods the dispatch will automatically get the new version instead
of hold onto the old version, so long as the name/symbol for the
method doesn't change.

Likewise, whenever a goal-specific method needs to sub-dispatch to
different methods for different formats of Web pages, as is the
case of gleaning the megabytes USAGE from various formats of Web
pages, it should be table-driven, working from a private global
variable containing a NestAL that is specific to that particular
goal and the corresponding function.

For the moment, the toplevel dispatch-NestAL is a single
DEFPARAMETER, and each of the sub-dispatch NestALs is likewise each
a single DEFPARAMETER, which means there's a central registry that
is hand-coded to know about *all* the various methods available at
that level of dispatch, and whenever I add a new dispatch method I
need to edit that single DEFPARAMETER and re-load the whole thing.
But within this framework of global NestAL for each level of
dispatch, I could easily rearrange the code as follows:
- In a file that is loaded before any other file (except the
auto-loading module which is loaded first of all), I would
define some load-time functions or macros:
- Initialize a particular global dispatch table if nobody did so yet.
- Insert into that dispatch table a new dispatch entry, if not already there.
- In each source file that wants to establish a dispatch method,
either toplevel per goal, or sub-dispatch per WebPage format per
goal, the file does LOADTIME calls to the above two functions:
- to make sure the NestAL is actually present already during loading
- to make sure that NestAL contains the appropriate dispatch entry.
Thus the actual method-dispatch entries could be defined in the
files where their dispatch functions are defined, instead of
forcing them all to be in one master configuration file.

But for the moment, my first draft of the code has giant DEFPARAMETERs:

(defparameter g*nestal-want-dispatch
'(:WANT (:FILENAME . nestal-want-filename)
(:RAWDATA . sgxmlp-want-rawdata)
(:UNICODES . sgxmlp-want-unicodes)
(:TOKENS . sgxmlp-want-tokens)
(:DOM . sgxmlp-want-DOM)
(:USAGE . sgxmlp-want-usage)
))
(defparameter g*nestal-want-max-spew 500)
;At top level: Given a NestAL, and a keyword telling what is wanted,
; look inside the NestAL to learn what :PAGETYPE it is, and recurse
; with that extra parameter.
;Then dispatch on both WhatWant and PageType parameters to call the
; appropriate function to make sure WhatWant is either already in the NestAL
; or gets computed and installed.
(defun nestal-dataflow-want (nestal whatwant &key (return :SMART))
(prog (symwantfunc wantfunc val ne data)
(unless (and (consp nestal) (keywordp (car nestal)) (eq :PROPER (list-what-type nestal)))


(error "First parameter needs to be a NestAL"))
(unless (keywordp whatwant) (error "Second parameter needs to be a keyword"))

(when (nestal+key-find nestal whatwant) (go y)) ;Already available
(setq symwantfunc (nestal+key-getval g*nestal-want-dispatch whatwant))
(unless (and (symbolp symwantfunc) (not (keywordp symwantfunc)) (fboundp symwantfunc))
(error "For dataflow wanting ~S no known method" whatwant))
(unless (functionp (setq wantfunc (symbol-function symwantfunc)))
(error "Bug: FUNCTIONP true but function-cell has non-function"))
(type-of (setq val (funcall wantfunc nestal :RETURN :DATA)))
(when (nestal+key-find nestal whatwant) (go y)) ;Installed by wantfunc
(type-of (nestal+tag+value-install nestal whatwant val)) ;Install now
y(type-of (setq data (cdr (setq ne (nestal+key-find nestal whatwant)))))
(return
(case return
(:LENGTH (length data))
(:DATA data)
(:SYMBOL (lensym-bind data))
(:NESTAL ne)
(:SMART (if (< g*nestal-want-max-spew (length (format nil "~S" data)))
(lensym-bind data)
data))
(otherwise (error "RETURN keyword parameter not valid"))))
))

;For the case where we have the toplevel GeoCities FileManage WebPage:
;Given a NestAL containing various items, including :DOM which has
; already been computed, or enough information that it can be computed
; by generic dataflow dispatching:
;First, make sure the DOM is computed.
;Then glean the MB usage from it.
;Just return the floating-point number, don't install in NestAL yet.
(defun yahgeo-topfm-nestal-find-usage (nestal)
(yahgeo-topfm-dom-find-usage
(nestal-dataflow-want nestal :DOM :RETURN :NESTAL))
)

(defparameter g*nestal-usage-dispatch
'(:WANT-USAGE-PAGETYPE (:TOPGEOFM . yahgeo-topfm-nestal-find-usage)
))
;Given a NestAL containing either the :DOM of some Web page that contains
; megabyte-usage data, or enough prior information to compute such a :DOM
; via automatic dataflow,
;And given that the NestAL contains :PAGETYPE telling what *kind* of
; Web page we're dealing with (because for example TopLevel GeoCities
; and TopFileManager pages have exactly the same information in different
; places).
;And given that g*nestal-usage-dispatch has an appropriate dispatch:
;If :USAGE is already present, just return it.
;Otherwise, make sure that :DOM is created if not already present,
; then fetch the dispatch function and call it and install the result.
;Always returns the actual floating-point number, since printing it out
; wouldn't cause spew and data overrun the way printing a DOM would.
(defun sgxmlp-want-usage (nestal &key (return :DATA))
(prog (pagetype usagefunctname usagefunct val data)
(when (nestal+key-find nestal :USAGE) (go y)) ;Already present.
(format t " [To get USAGE, need to glean from DOM ...") (finish-output)
(sgxmlp-want-DOM nestal :RETURN :LENGTH)
(setq pagetype (nestal+key-getval nestal :PAGETYPE))
(unless (and (keywordp pagetype) (not (eq :MISSING pagetype)))
(error "PAGETYPE missing from NestAL"))
(setq usagefunctname (nestal+key-getval g*nestal-usage-dispatch pagetype))
(unless (and (symbolp usagefunctname) (not (keywordp usagefunctname)))
(error "For PageType=~S no known dispatch to get USAGE" pagetype))
(unless (functionp (setq usagefunct (symbol-function usagefunctname)))
(error "Bug: FUNCTIONP true but function-cell has non-function"))
(format t " for PageType=~A will call ~A ..." pagetype usagefunctname)
(setq val (funcall usagefunct nestal))
(format t " gotcha USAGE] ") (finish-output)
(when (nestal+key-find nestal :USAGE) (go y)) ;Got installed by usagefunct
(length (nestal+tag+value-install nestal :USAGE val))
y(setq data (nestal+key-getval nestal :USAGE))
(return data)
))

Here's a sample run:

* (setq g-nestal (make-nestal :DEMO))

(:DEMO)


* (nestal+tag+value-install g-nestal :YAHACCT "rem642b")

(:DEMO (:YAHACCT . "rem642b"))


* (nestal+tag+value-install g-nestal :TOFILENAME #'nestal-yahacct-geotopfm-filen
ame)

(:DEMO
(:TOFILENAME
. #<Interpreted Function NESTAL-YAHACCT-GEOTOPFM-FILENAME {481FB1C9}>)


(:YAHACCT . "rem642b"))

* (nestal+tag+value-install g-nestal :PAGETYPE :TOPGEOFM)

(:DEMO (:PAGETYPE . :TOPGEOFM)
(:TOFILENAME
. #<Interpreted Function NESTAL-YAHACCT-GEOTOPFM-FILENAME {481FB1C9}>)


(:YAHACCT . "rem642b"))

* (nestal-dataflow-want g-nestal :USAGE)
[To get USAGE, need to glean from DOM ... [To get DOM, need to process from TOK


ENS ... [To get TOKENS, need to process from UNICODES ... [To get UNICODES, need

to process from RAWDATA ... [To get RAWDATA, need to load from FILENAME ... [To


get FILENAME, need to call TOFILENAME ... gotcha FILENAME] gotcha RAWDATA]
NCHS: (10 10 10 10 60 104 116 109)
CHS: (#\Newline #\Newline #\Newline #\Newline #\< #\h #\t #\m)
8-bit encoding
gotcha UNICODES]
* Neither DOCTYPE nor XML decl at top of file *
1000 (NakedScript 192 ... 735) (NakedScript 19497 ... 19498) gotcha 917 TOKE
NS] (Unmatched (:CLOSE "TR") token) (Unmatched (:CLOSE "TABLE") token) gotcha

2 toplevel DOM items] for PageType=TOPGEOFM will call YAHGEO-TOPFM-NESTAL-FIND
-USAGE ... gotcha USAGE]
3.2

Note that this new code was developed using CMUCL with automatic GC disabled.

Now a demo of the NestAL browser, which I couldn't show yesterday
because CMUCL ran out of heap space right after the main dataflow
demo just before I was about to run a demo of the NestAL browser.

* (nestal-browse g-nestal)

((0 :DEMO) (1 :USAGE) (2 :DOM CONS) (3 :TOKENS CONS) (4 :UNICODES) (5 :STARTIX)
(6 :NBYTASCII) (7 :RAWDATA) (8 :FILENAME) (9 :PAGETYPE) (10 :TOFILENAME)
(11 :YAHACCT))
NIL:2

((0 :DOM) (1 :MATCH "html") (2 :MATCH "script"))
(2):1

((0 :MATCH) (1 "html") (2 :MATCH "head") (3 :MATCH "body"))
(2 1):3

((0 :MATCH) (1 "body") (2 :ATTVAL "bgcolor") (3 :COMMENT "fm_header3")
(4 :MATCH "table") (5 :MATCH "p") (6 :MATCH "div") (7 :MATCH "style")
(8 :COMMENT "start tabs") (9 :OPEN "div") (10 :MATCH "div")
(11 :TEXT "&nbsp;") (12 :COMMENT "/fm_header") (13 :MATCH "table")
(14 :OPEN "br") (15 :MATCH "FORM") (16 :MATCH "TD") (17 :XCLOSEX "TR")
(18 :XCLOSEX "TABLE") (19 :MATCH "table") (20 :OPEN "br") (21 :OPEN "br")
(22 :MATCH "center"))
(2 1 3):-1 -1

((0 :MATCH) (1 "html") (2 :MATCH "head") (3 :MATCH "body"))
(2 1):
((0 :DOM) (1 :MATCH "html") (2 :MATCH "script"))
(2):-1

((0 :DEMO) (1 :USAGE) (2 :DOM CONS) (3 :TOKENS CONS) (4 :UNICODES) (5 :STARTIX)
(6 :NBYTASCII) (7 :RAWDATA) (8 :FILENAME) (9 :PAGETYPE) (10 :TOFILENAME)
(11 :YAHACCT))
NIL:3
;Note the tokens are stored in reverse sequence, don't let that confuse you!
((0 :TOKENS) (1 :CLOSE "script")
(2 :SCRIPT-TEXT "
")
(3 :OPEN "script") (4 :CLOSE "html") (5 :CLOSE "body") (6 :CLOSE "center")
(7 :CLOSE "font") (8 :CLOSE "a") (9 :TEXT "Help") (10 :OPEN "a")
(11 :TEXT "-") (12 :CLOSE "a") (13 :TEXT "Terms of Service") (14 :OPEN "a")
(15 :TEXT "-") (16 :CLOSE "a") (17 :TEXT "Guidelines") (18 :OPEN "a")
(19 :TEXT "-") (20 :CLOSE "a") (21 :TEXT "Copyright Policy") (22 :OPEN "a")
(23 :TEXT "-") (24 :CLOSE "a") (25 :TEXT "Privacy Policy") (26 :OPEN "a")
(27 :OPEN "br")
(28 :TEXT "Copyright &copy;
2009 Yahoo! Inc. All right...ed.")
(29 :OPEN "font") (30 :OPEN "hr") (31 :OPEN "p") (32 :CLOSE "table")
(33 :CLOSE "tr") (34 :CLOSE "td") (35 :CLOSE "table") (36 :CLOSE "tr")
(37 :CLOSE "td") (38 :CLOSE "font") (39 :CLOSE "A") (40 :TEXT "more...")
(41 :OPEN "A") (42 :TEXT "&#183;") (43 :CLOSE "A")
(44 :TEXT "Yellow&nbsp;Pages") (45 :OPEN "A") (46 :TEXT "&#183;")
(47 :CLOSE "A") (48 :TEXT "Web Hosting") (49 :OPEN "A") (50 :TEXT "&#183;")
(51 :CLOSE "A") (52 :TEXT "Weather") (53 :OPEN "A") (54 :TEXT "&#183;")
(55 :CLOSE "A") (56 :TEXT "Travel") (57 :OPEN "A") (58 :TEXT "&#183;")
(59 :CLOSE "A") (60 :TEXT "TV") (61 :OPEN "A") (62 :TEXT "&#183;")
(63 :CLOSE "A") (64 :TEXT "Sports") (65 :OPEN "A") (66 :TEXT "&#183;")
(67 :CLOSE "A") (68 :TEXT "Shopping") (69 :OPEN "A") (70 :TEXT "&#183;")
(71 :CLOSE "A") (72 :TEXT "Radio") (73 :OPEN "A") (74 :TEXT "&#183;")
(75 :CLOSE "A") (76 :TEXT "Photos") (77 :OPEN "A") (78 :TEXT "&#183;")
(79 :CLOSE "A") (80 :TEXT "Personals") (81 :OPEN "A") (82 :TEXT "&#183;")
(83 :CLOSE "A") (84 :TEXT "People&nbsp;Search") (85 :OPEN "A")
(86 :TEXT "&#183;") (87 :CLOSE "A") (88 :TEXT "PayDirect") (89 :OPEN "A")
(90 :TEXT "&#183;") (91 :CLOSE "A") (92 :TEXT "News") (93 :OPEN "A")
(94 :TEXT "&#183;") (95 :CLOSE "A") (96 :TEXT "My&nbsp;Yahoo!") (97 :OPEN "A")
(98 :TEXT "&#183;") (99 :CLOSE "A") (100 :TEXT "Music") (101 :OPEN "A")
(102 :TEXT "&#183;") (103 :CLOSE "A") (104 :TEXT "Movies") (105 :OPEN "A")
(106 :TEXT "&#183;") (107 :CLOSE "A") (108 :TEXT "Mobile") (109 :OPEN "A")
(110 :TEXT "&#183;") (111 :CLOSE "A") (112 :TEXT "Messenger") (113 :OPEN "A")
(114 :TEXT "&#183;") (115 :CLOSE "A") (116 :TEXT "Member&nbsp;Directory")
(117 :OPEN "A") (118 :TEXT "&#183;") (119 :CLOSE "A") (120 :TEXT "Maps")
...

Pascal Costanza

unread,
Oct 11, 2009, 6:15:41 AM10/11/09
to
Robert Maas, http://tinyurl.com/uh3t wrote:
> I previously pondered whether to learn how to use generic functions
> in CLOS and apply them to this task, or use old-fashioned Lispy
> functions. I posted a "strawman" example of what kind of Lispy code
> I was thinking of.
>
> Update: I looked at an online CLOS tutorial, and couldn't figure
> out any easy way to make generic functions dispatch on the specific
> value of a keyword in a data structure, so I dismissed CLOS as not
> suitable for this task, at least at my present level of
> understanding.

You may want to take a look at filtered dispatch, see
http://p-cos.net/documents/filtered-dispatch.pdf

The code isn't published yet, but I'm currently trying hard to get it
out the door. (There are some issues with the CLOS MOP that I needed to
solve first, but I'm almost there.) Release is imminent.


Pascal

--
My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 11, 2009, 6:35:47 AM10/11/09
to
> From: Pascal Costanza <p...@p-cos.net>

> You may want to take a look at filtered dispatch, see
> http://p-cos.net/documents/filtered-dispatch.pdf

How would you propose I look at that via a VT100 term on FreeBSD?

Petter Gustad

unread,
Oct 11, 2009, 7:34:38 AM10/11/09
to
seeWeb...@rem.intarweb.org (Robert Maas, http://tinyurl.com/uh3t)
writes:

Maybe:

wget http://p-cos.net/documents/filtered-dispatch.pdf
sz filtered-dispatch.pdf # or kermit, xmodem, etc
rm filtered-dispatch.pdf

Then xpdf filtered-dispatch.pdf on your FreeBSD system.

Petter
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Frank Buss

unread,
Oct 11, 2009, 7:51:34 AM10/11/09
to
Petter Gustad wrote:

> Then xpdf filtered-dispatch.pdf on your FreeBSD system.

Robert has an Apple Mac with something like MacOS 1.0, because he doesn't
have the money for a better Mac (at least he is saying this and other
excuses all the time), and has an account on a FreeBSD system. But maybe he
is lucky and there is pdf2text available on the FreeBSD system, then he
could at least read the text.

--
Frank Buss, f...@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de

Tamas K Papp

unread,
Oct 11, 2009, 8:42:06 AM10/11/09
to
On Sun, 11 Oct 2009 13:51:34 +0200, Frank Buss wrote:

> Petter Gustad wrote:
>
>> Then xpdf filtered-dispatch.pdf on your FreeBSD system.
>
> Robert has an Apple Mac with something like MacOS 1.0, because he
> doesn't have the money for a better Mac (at least he is saying this and
> other excuses all the time), and has an account on a FreeBSD system. But
> maybe he is lucky and there is pdf2text available on the FreeBSD system,
> then he could at least read the text.

I am surprised that Robert hasn't acquired an Amiga (from the 90s)
yet. That would be a real goldmine for whining about what he cannot
do ("How do you propose that I fit that into 20 Mb of RAM? And my PDF
reader only handles version 1.0.")

Tamas

Pascal Costanza

unread,
Oct 11, 2009, 3:28:53 PM10/11/09
to
Robert Maas, http://tinyurl.com/uh3t wrote:

Enter the URL as a search term in google, like this:

http://www.google.com/search?q=http://p-cos.net/documents/filtered-dispatch.pdf

Then select "View as HTML" in the first search result.

If you can't access google (for whatever reason), I don't know how to
help you.

Raffael Cavallaro

unread,
Oct 12, 2009, 1:53:36 AM10/12/09
to
On 2009-10-11 15:28:53 -0400, Pascal Costanza <p...@p-cos.net> said:

> Enter the URL as a search term in google, like this:

How would you propose that I look at google using two tin cans and some
string? Can I also use this networking setup to talk to my friend Timmy
in the apartment across the alley?

How would you propose that I look at a pdf using stone knives and
bearskins? Failing that, can I use them to construct a mnemonic circuit?

How would you propose that I access the world wide web using an ear
trumpet and an alpenhorn? Will I be able to visit any sites other than
ricola.com?


--
Raffael Cavallaro

Pascal J. Bourguignon

unread,
Oct 12, 2009, 5:01:30 AM10/12/09
to
Raffael Cavallaro <raffaelc...@pas.espam.s.il.vous.plait.mac.com> writes:

You could take the bus to Google's headquarter and ask them.
Living in the Silicon Valley, it shouldn't be too far a trip.

--
__Pascal Bourguignon__

Lars Rune Nøstdal

unread,
Oct 12, 2009, 6:54:16 AM10/12/09
to
On Oct 11, 12:35 pm, seeWebInst...@rem.intarweb.org (Robert Maas,

gosh .. you're like the nerd-geek version of a douchebag

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 13, 2009, 6:06:54 AM10/13/09
to
> From: Petter Gustad <newsmailco...@gustad.com>
> I seem to remember you were using an UNIX shell account.

Yes, VT100 emulator through modem+phone to Unix VT100 term.

> You should be able to use a curses based mail program,

I don't know anything about that. Since "curses" is a plural of a
comman word, it would be rather difficult to get good search
results with a search engine. Is there a curses tutorial that you
recommend that works on a VT100 term, so that when I finish the
current GeoCities-closing rescue-files crisis I can read it to get
an idea what you're talking about?

> even connecting to gmail using IMAP.

Yeah, that's what I was thinking of when I said POP etc. I remembed
it was something MAP but couldn't remember the "I" so I mentionned
the similer but older protocol instead so you'd get on the same
"wavelength" with me and lead me the next step, and it worked, you
led me to IMAP. I think I read something about the differences
between them, where POP requires you *first* download *all* your
new e-mail to your own computer at the start of the session,
whereas IMAP is something like a distributed API for keeping all
e-mail on the hosting service (Gmail in this case) until and unless
you request a particular message or category/group of messages to
be *moved* to the client computer. Is that vaguely correct??

> Personally, I prefer Mew (www.mew.org) in Emacs as my E-mail client.

The version of Emacs here is horribly broken. Over and over as I'm
typing input, it moves the cursor to the wrong place, so what I'm
typing *looks* like it's going to some wrong place, and I have to
later press ctrl-L to see how my edit *really* is at that point.
Basically from the point where it starts trashing the cursor and
writing my new type-in to the wrong place on my VT100 term, until I
press ctrl-L, I'm typing semi-blind, can see new text I type, but
can't see where it's really going in my edit.

It's even worse with minibuffer auto-complete such as when typing a
directory path and filename: If I type space, it enters space in
the minibuffer, instead of completing the current word as far along
as there's only one option possible like the older version of Emacs
did on the other shell machine.

Old shell I was on until two weeks ago:
FreeBSD 4.10-STABLE (SHELL) #0: Thu Feb 16 03:07:17 PST 2006
GNU Emacs 20.7.2
(worked fine)

New shell I've been on the past two weeks:
FreeBSD 7.1-PRERELEASE (SHELL0) #0: Mon Mar 23 03:17:26 PDT 2009
GNU Emacs 22.2.1
(seriously broken: handling VT100 screen, minibuffer auto-complete)

I know my terminal type is correct, so wrong term-type isn't the problem:
> echo $TERM
vt100
> echo $term
vt100
> echo $Term
Term: Undefined variable.

So why is emacs screwing up so badly? Do I need to explicitly tell
emacs that I'm on a limited-bandwidth dialup? I remember when I was
using a 1200 BPS modem (more than 20 years ago, upgraded to 2400
BPS modem then, got this modem in 1998 and started using 19200 BPS
a few months/years after then), on a direct dialup port, emacs
would transmit cursor-control sequences in a burst faster than the
modem could take, causing trashing, unless I told it to insert
extra NUL bytes after each sequence. But on 19200 BPS modem, with a
transparent TELNET with plenty of buffering between my shell and
the physical modem, that can't be a problem, can it? Or maybe it
can?? Help?

Bottom line, I can't possibly cope with an e-mail program where
Emacs is trashing the screen every five seconds and I have to keep
refreshing the screen just to see if I've already lost.
<nit>OK, that was 3 lines, but you know the clich{e'}, right?</nit>


Back to the original topic of this thread:
If I go more than 2 days with automatic-GC disabled, eventually it
fills up the 512 MB allocation and at that point it refuses to let
me do a (GC) to get it back down to smaller memory.
But I tried something new today, after about one day running a big
session with automatic-GC off, when I reached a stable point where
the functions were stable/working and I had saved the main dataset
to disk, I tried:
* (gc)
; [GC threshold exceeded with 348,244,872 bytes in use. Commencing GC.]
; [GC completed with 6,950,552 bytes retained and 341,294,320 bytes freed.]
; [GC will next occur when at least 18,950,552 bytes are in use.]
then I started the next major work session without re-starting
CMUCL, and so far after about 11 additional hours since then, it
hasn't crashed or anything else bad.
(The bug seems to strike only when two GCs happen close together,
such as when the first "generation" of GC can't reclaim enough
memory so it immediately does a second "generation" of GC, or
where I manually do (GC) twice in a row with almost nothing
between.)
So it looks like I can keep a CMUCL session alive indefinitely long
if I manually do (GC) just once per major software-development
session of a day or so, after it's allocated enough new memory to
avoid the page fault bug, but before it's allocated 512 MB to where
GC is no longer possible. I'm too tired to do any more software
development tonight, so I'm using the last of my barely-awake
energy to respond to this one newsgroup article. I'll resume the
*same* CMUCL session, without any new (GC), after a night's sleep,
picking up where I left off in the middle of a major
software-development session that should take another half or full
day to reach another "good time to GC".

P.S. It looks like I can do about 340 megabytes of work during a
single major work session. I wonder how that compares with "lines
of code" as a measure of productivity?

Hmm, when I upload new versions of my source files, I keep around
two backups. Someday after a few days of heavy work, after a new
upload of changed source, I should do (for each newly-uploaded
file):
diff foo.lisp-old foo.lisp | wc
as a measure of how much code I wrote/changed in each of the files,
and add up the 'wc' totals, and claim I did that many "lines of
code" between the two uploads. Would be that a good metric??

Hey, I still have a few minutes before I pass out, so I think I'll
do it now:
> ls -lt | more
;Most recent upload, start of this past session:
5 -rw------- 1 rem user 3702 Oct 11 22:22 topHelpText.dat
21 -rw------- 1 rem user 20136 Oct 11 22:20 2009-3-NestAL.lisp
29 -rw------- 1 rem user 28982 Oct 11 21:40 2009-9-geo2.lisp

;Previous upload, start of previous session:
18 -rw------- 1 rem user 16967 Oct 10 20:41 2009-6-sgxmlp.lisp
25 -rw------- 1 rem user 24908 Oct 10 20:35 2009-9-geo2.lisp-old
18 -rw------- 1 rem user 17503 Oct 10 20:27 2009-3-NestAL.lisp-old
8 -rw------- 1 rem user 7260 Oct 10 20:14 2009-7-sgxmlp.lisp
5 -rw------- 1 rem user 3640 Oct 10 20:10 topHelpText.dat-old
22 -rw------- 1 rem user 21046 Oct 10 17:46 2009-3-sgxmlp.lisp
23 -rw------- 1 rem user 22253 Oct 10 17:37 2009-9-geo.lisp
25 -rw------- 1 rem user 25029 Oct 10 17:31 2009-5-sgxmlp.lisp
30 -rw------- 1 rem user 29690 Oct 10 17:24 2009-8-MUPK.lisp
27 -rw------- 1 rem user 26151 Oct 10 17:09 2008-7-Code.lisp
21 -rw------- 1 rem user 20227 Oct 10 16:48 2009-A-parse1p.lisp
8 -rw------- 1 rem user 6738 Oct 10 16:37 2009-7-web1.lisp

;Previous2 upload, start of previous2 session:
30 -rw------- 1 rem user 29601 Oct 8 00:18 2009-8-MUPK.lisp-old
11 -rw------- 1 rem user 9990 Oct 8 00:07 2009-A-subcurl.lisp

;Previous3 upload, start of previous3 session:
3 -rw------- 1 rem user 2180 Oct 7 14:13 topHelpText.dat-old2


> diff topHelpText.dat-old topHelpText.dat | wc
2 8 70
> diff 2009-3-NestAL.lisp-old 2009-3-NestAL.lisp | wc
53 339 2749
> diff 2009-9-geo2.lisp-old 2009-9-geo2.lisp | wc
79 549 4252
2+53+79=134 lines of code (subtotal)

> diff 2009-6-sgxmlp.lisp-old 2009-6-sgxmlp.lisp | wc
21 133 995
> diff 2009-9-geo2.lisp-old 2009-9-geo2.lisp | wc
79 549 4252
> diff 2009-3-NestAL.lisp-old 2009-3-NestAL.lisp | wc
53 339 2749
> diff 2009-7-sgxmlp.lisp-old 2009-7-sgxmlp.lisp | wc
49 363 2459
> diff ~/Trash/topHelpText.dat-old2 ./topHelpText.dat-old | wc
46 189 1577
21+79+53+49+46=248 lines of code (subtotal)

> diff 2009-3-sgxmlp.lisp-old 2009-3-sgxmlp.lisp | wc
107 721 5243
> diff 2009-9-geo.lisp-old 2009-9-geo.lisp | wc
95 639 4829
> diff 2009-5-sgxmlp.lisp-old 2009-5-sgxmlp.lisp | wc
77 626 4096
> diff 2009-8-MUPK.lisp-old 2009-8-MUPK.lisp | wc
15 55 575
> diff 2008-7-Code.lisp-old 2008-7-Code.lisp | wc
15 63 488
> diff 2009-A-parse1p.lisp-old 2009-A-parse1p.lisp | wc
216 1559 10620
> diff 2009-7-web1.lisp-old 2009-7-web1.lisp | wc
23 133 933
107+95+77+15+15+216+23=548 lines of code (subtotal)

> diff 2009-8-MUPK.lisp-old 2009-8-MUPK.lisp | wc
15 55 575
> diff 2009-A-subcurl.lisp-old 2009-A-subcurl.lisp | wc
26 153 1147
15+26=41 lines of code (subtotal)

Grand total lines of code:
134+248+548+41=971 lines of code
(minus the 'diff' header lines,
but fairly/properly/honestly counting lines of inline documentation
which are just as important as the executable code)
plus throwaway code I needed for more extensive testing and operation,
so the two biases sorta cancel each other),
each line unit-tested before starting on next line of code,
each completed function composed of these lines unit-tested before starting
work on first line of next function,
and integrated application tested by actual use.
Time span from Oct 7 14:13 to Oct 11 22:22 = 4.33 days
Average 971/4.33 = about 220 to 230 LOC/workday.
So how does that compare with the average software engineer at rate
of writing and fully unit + alpha/integration testing LOC?

Tamas K Papp

unread,
Oct 13, 2009, 6:26:51 AM10/13/09
to
On Tue, 13 Oct 2009 03:06:54 -0700, Robert Maas, http://tinyurl.com/uh3t
wrote:

>> From: Petter Gustad <newsmailco...@gustad.com> I seem to remember you


>> were using an UNIX shell account.
>
> Yes, VT100 emulator through modem+phone to Unix VT100 term.
>
>> You should be able to use a curses based mail program,
>
> I don't know anything about that. Since "curses" is a plural of a comman
> word, it would be rather difficult to get good search results with a
> search engine. Is there a curses tutorial that you recommend that works

The first hit on Google is "curses (programming library)" on Wikipedia.

You keep "explaining" why you cannot do things, but if you devoted the
same amount of time to actually doing it, you would be happily
programming by now with all this setup stuff far behind you.

It is very clear that you don't actually want to program, and you are
setting up obstacles for yourself so that you don't ever have to. I
just wonder why you have to do this on c.l.l.

Tamas

Thomas F. Burdick

unread,
Oct 13, 2009, 7:03:05 AM10/13/09
to
On Oct 13, 12:26 pm, Tamas K Papp <tkp...@gmail.com> wrote:
> On Tue, 13 Oct 2009 03:06:54 -0700, Robert Maas,http://tinyurl.com/uh3t

He would do it somewhere else, but to do so would require editing his
newsreader configuration file. The problem is that the bits are on a
disk across town and when he tries to access them with emacs it tells
him that his bus pass is expired. The documentation for renewing bus
passes is in wordstar format which is not readable on this mac plus...

Robert Swindells

unread,
Oct 13, 2009, 7:31:03 AM10/13/09
to

Thomas F. Burdick wrote:

>>On Oct 13, 12:26=A0pm, Tamas K Papp <tkp...@gmail.com> wrote:
>> On Tue, 13 Oct 2009 03:06:54 -0700, Robert Maas,http://tinyurl.com/uh3t
>> wrote:
>>
>> >> From: Petter Gustad <newsmailco...@gustad.com> I seem to remember you
>> >> were using an UNIX shell account.
>>
>> > Yes, VT100 emulator through modem+phone to Unix VT100 term.
>>
>> >> You should be able to use a curses based mail program,
>>
>> > I don't know anything about that. Since "curses" is a plural of a comma=

>n
>> > word, it would be rather difficult to get good search results with a
>> > search engine. Is there a curses tutorial that you recommend that works
>>
>> The first hit on Google is "curses (programming library)" on Wikipedia.
>>
>> You keep "explaining" why you cannot do things, but if you devoted the
>> same amount of time to actually doing it, you would be happily
>> programming by now with all this setup stuff far behind you.
>>
>> It is very clear that you don't actually want to program, and you are
>> setting up obstacles for yourself so that you don't ever have to. =A0I

>> just wonder why you have to do this on c.l.l.
>
>He would do it somewhere else, but to do so would require editing his
>newsreader configuration file. The problem is that the bits are on a
>disk across town and when he tries to access them with emacs it tells
>him that his bus pass is expired. The documentation for renewing bus
>passes is in wordstar format which is not readable on this mac plus...

It is even worse than your analogy.

He isn't using the resources that are easily available to him like the
FreeBSD man pages.

Inventing wierd naming conventions for backup files on a system with
CVS installed by default is not clever it is just timewasting.

His Mac can run a TCP/IP stack with PPP, there is a ssh implementation
that works fine on the MacOS version he is using. There is no excuse
for using a dumb terminal program with poor flow control.

George Neuner

unread,
Oct 13, 2009, 11:35:27 AM10/13/09
to
On 13 Oct 2009 12:31:03 +0100, Robert Swindells <r...@fdy2.demon.co.uk>
wrote:

>His Mac can run a TCP/IP stack with PPP, there is a ssh implementation
>that works fine on the MacOS version he is using. There is no excuse
>for using a dumb terminal program with poor flow control.

Maas has claimed previously that he can't get PPP to work and that it
wouldn't help because his Mac is too small to run a browser. A few of
us have tried to help with the modem problems at various times, but it
seems like he might actually have a broken OS install that he either
is unable or unwilling to try to fix.

Internet Explorer (for Mac) v3 should definitely run on his hardware.
v4 would be better, but it included a JVM so the install was much
larger and, IIRC, it required 8MB of RAM to run (so a 12+MB Mac).

All the old versions of IE are freely available, but obviously Maas
would need to get PPP running to use any of them.

George

Raymond Wiker

unread,
Oct 13, 2009, 11:39:59 AM10/13/09
to

Adam Michalik

unread,
Oct 13, 2009, 11:58:27 AM10/13/09
to dod...@gmail.com
George Neuner <gneu...@comcast.net> writes:

In my country you can find better hardware than his in a trash
dump. Living in USA, which more technologicaly advanced by an order of
magnitude, he should not have any excuses. Hell, I was even able to
afford brand-new notebook after one month of holiday job. This is just silly.

--
Adam Michalik
vel Dodek Dodecki
<dodek[]dodecki.net>

Robert Swindells

unread,
Oct 13, 2009, 12:01:52 PM10/13/09
to

Raymond Wiker <r...@RAWMBP-2.local> wrote:

>Robert Swindells <r...@fdy2.demon.co.uk> writes:
> He isn't using the resources that are easily available to him like the
> FreeBSD man pages.

I know, I was reading comp.lang.lisp then too, I'm only following this
thread to see if we need to make any changes to CMUCL.

George Neuner

unread,
Oct 13, 2009, 11:17:33 PM10/13/09
to
On Tue, 13 Oct 2009 17:58:27 +0200, Adam Michalik <dod...@gmail.com>
wrote:

>In my country you can find better hardware than [Maas's] in a trash


>dump. Living in USA, which more technologicaly advanced by an order of
>magnitude, he should not have any excuses. Hell, I was even able to
>afford brand-new notebook after one month of holiday job. This is just silly.

If Maas has mentioned where he lives, I've missed it. He claims to be
in heavy debt and to have no discretionary funds. I agree that in
most places he should be able to find better hardware free or almost
free.

From my own interactions with him, I've formed the (possibly wrong)
impression of a retired mathematician or physicist - intellectual but
not particularly technical. He programs in Lisp and uses Unix, but he
seems lost in other domains. He has (at least) 3 computers - the Mac,
a Linux laptop, and another I can't recall just now. He claims to
have unsolvable hardware/OS problems with all of them.

George

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 13, 2009, 6:06:54 AM10/13/09
to
> From: Petter Gustad <newsmailco...@gustad.com>
> I seem to remember you were using an UNIX shell account.

Yes, VT100 emulator through modem+phone to Unix VT100 term.

> You should be able to use a curses based mail program,

I don't know anything about that. Since "curses" is a plural of a

comman word, it would be rather difficult to get good search


results with a search engine. Is there a curses tutorial that you

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 14, 2009, 3:25:48 AM10/14/09
to
> From: Robert Swindells <r...@fdy2.demon.co.uk>

> His Mac can run a TCP/IP stack with PPP,

Actually it can't, because in 1998 I deleted all the PPP files. I
have a complete disk backup on SyQuest drive, and a year or so ago
I tried restoring the files to the directories they originally came
from, but one of them refused to let me put it in that directory.
With that file missing, when I tried to run MicroSoft InterNet
Explorer, my whole machine froze, and I had to cold-restart. Now
after a year or so has passed I don't remember what file it was
that Finder wouldn't let me move to the folder where it belonged,
but I vaguely remember it might have been a system extension or
control panel. Do you know why when I try to drag it to the folder
where it belongs, Finder refuses to put it there?

If you will please tell me a complete list of all PPP-related files
that are needed to make PPP work on System 7.5.5, I'll see which of
them I have already where they belong, and which aren't where they
belong, and then I can try dragging them to correct folder and
describe what message Finder tells me when it refuses, and you can
then help me overcome that problem. Then with all files restored to
correct directories, I can try starting MS-IE again and see if it
doesn't freeze my machine any longer.

> there is a ssh implementation that works fine on the MacOS
> version he is using. There is no excuse for using a dumb terminal
> program with poor flow control.

A couple weeks ago, the ISP's sysadmin
(the guy who moved my account to the new shell machine 16 days
ago, where CMUCL crashes to LDB whenever two GC are done in a
short span of work, where emacs totally screws up VT100 screen,
and where lynx highlights both hrefs and bold text *identically*
so I can't see the difference, and doesn't highlight submit
buttons at all so they look just like regular text, and where
'wget' produces different output so I needed to completely
re-write my wget-output parser, but where 'curl' is available
(wasn't installed on old shell machine) so I've converted my
lynx-scrape software to do curl-parse instead)
suggested a telnet-PPP program, so I downloaded it and unbinhexed
it and then tried to run UnStuffit, but it said it isn't a Compact
Pro archive so it can't be decompressed. Here's my explanation that
I sent to the admin who told me to try that program:

*STARTQUOTE*
I ran BinHex to convert:
niftytelnet-1_1-ssh-r3.hqx
to result in:
niftytelnet-1.1-ssh-r3.cpt
but at the very end BinHex put up a CRC ERROR alert.

I went ahead anyway and tried to use StuffIt expander on it,
but it can't decompress it because StuffIt expander says
it's not a Compact Pro file. So I need to download some
*other* program just to decompress the program you had me
download before I'll actually have the niftytelnet
application on my Mac to try running.
*ENDQUOTE*

He never got back to me on that. Do you have any idea how to
uncompress that particular program?

Back to the original topic, bug in GC in CMUCL 19c and 19f on FreeBSD 7.1:
<http://twitter.com/CalRobert/status/4853508732>
<http://twitter.com/CalRobert/status/4853544600>
<http://twitter.com/CalRobert/status/4855752458> TypoFix: s/foreward/forward/
<http://twitter.com/CalRobert/status/4856609142>
Bottom line: The switch from the old shell to the new shell machine
cost me 16 days. I'm right where I was 16 days ago, with only 12
days remaining to rescue my GeoCities files.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 14, 2009, 4:41:45 AM10/14/09
to
> From: Adam Michalik <dode...@gmail.com>

> In my country you can find better hardware than his in a trash
> dump.

Apparently you know *which* trash dump to look in. Here in
Sunnyvale, they have severe restrictions on dumping electronic
stuff, to avoid pollution. If you are caught dumping electronics in
the trash, you go to jail. Everyone is required to take electronics
to a special recycling dropoff (the SMART station in northern
Sunnyvale near light rail), where the law requires them to
**DESTROY** the hard disk before passing the now useless computer
to the company that disassembles it and recycles the metals and
destroys the electronics.

There's an organization called "freecycle" which has Yahoo Groups
in each local area, including one in Sunnyvale. I saw many requests
for computers, but only one offer
(several years ago in the archive; I spent several hours looking
back further and further and further to get a "feel" for what
sorts of things were offered and what sorts of things were
requested over the past several years)
which was taken up by some lucky bastard in less than a day. I went
ahead and posted my request there anyway, but nobody ever responded
to offer me a free computer.

> Living in USA, which more technologicaly advanced by an order of
> magnitude, he should not have any excuses.

Given the laws absolutely forbidding the recycle centers from
passing a discarded computer to anyone else without first
destroying the hard disk physically by burning it in a fire or
something like that, and given the gross imbalance between offers
and requests in FreeCycle, perhaps you have some other idea where
it is so fucking easy to find a free *WORKING* computer around here
that I must be an idiot for not finding one yet?

> Hell, I was even able to afford brand-new notebook after one
> month of holiday job.

Nearly three years ago I applied for a holiday job at the local
Macy's, the only store near here that had any job openings that
didn't require experience I don't have such as three years paid
J2EE + JBoss + WebSphere. They told me they'd contact me within 2-3
weeks to tell me if I got a job. I waited, but they never contacted
me. I went in there physically and ask the person ("April") whom I
had talked with before and she said I should just wait a while
longer. She strung me along like that for more than a year. Then
the next time I went back in to ask *again* why they hadn't yet
contacted me, she was no longer working there. Macy's has been on
my HATE LIST ever since then.

If you happen to know any company in the local area that is hiring
*this* season, but not Macy's, like I said they are now on my HATE
LISP and I would never be so stupid to waste my time applying to
them ever again, anyway any *other* nearby company that might hire
me, please tell me.

A few months ago I applied at Northrup-Grumman, which is also very
close to here, and got a nice reply asking something, which I
replied to, but then no further reply from them.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 14, 2009, 4:56:51 AM10/14/09
to
> From: Robert Swindells <r...@fdy2.demon.co.uk>
> ... I'm only following this thread to see if we need to make any
> changes to CMUCL.

Well it would be nice if you fixed it so that under FreeBSD 7.1 if
you do two garbage collects close together it doesn't get a bus
error and crash to LDB monitor. You can get a two-week free trial
account here on RawBandwidth.com so you can verify the bug and then
try to find a fix for it other than (ext:gc-off) as I've been doing
the past several days. When I reach a good stopping point with
everything saved to disk, I manually do a (gc). The one time I did
it during this session was a couple days ago. Here's a repeat of
what happened:

* (gc)
; [GC threshold exceeded with 348,244,872 bytes in use. Commencing GC.]
; [GC completed with 6,950,552 bytes retained and 341,294,320 bytes freed.]
; [GC will next occur when at least 18,950,552 bytes are in use.]

(that text copied from earlier newsgroup article shortly after the GC)

I haven't done another manual (gc) since then, but plan to do so
sometime Wednesday noonish when I expect to reach another good
stopping point with everything saved to disk again. Running with
automatic-GC disabled, and *manually* calling (gc) every two or
three days gets me by, but it'd be better if you fixed the GC to
work automatically without generating BUS ERROR -> LDB monitor.

Pascal J. Bourguignon

unread,
Oct 14, 2009, 5:26:04 AM10/14/09
to
George Neuner <gneu...@comcast.net> writes:

He's a programmer, searching a job, and living in Sunnyvale:
http://www.rawbw.com/~rem/NewPub/SeekJob/Resume.2005.B.txt

--
__Pascal Bourguignon__

Robert Swindells

unread,
Oct 14, 2009, 6:38:53 AM10/14/09
to

Robert Maas wrote:
>> From: Robert Swindells <r...@fdy2.demon.co.uk>
>> ... I'm only following this thread to see if we need to make any
>> changes to CMUCL.

>Well it would be nice if you fixed it so that under FreeBSD 7.1 if
>you do two garbage collects close together it doesn't get a bus
>error and crash to LDB monitor. You can get a two-week free trial
>account here on RawBandwidth.com so you can verify the bug and then
>try to find a fix for it other than (ext:gc-off) as I've been doing
>the past several days. When I reach a good stopping point with
>everything saved to disk, I manually do a (gc). The one time I did
>it during this session was a couple days ago. Here's a repeat of
>what happened:

The 19f version you downloaded was built under FreeBSD 7.1, it will
have done many garbage collection cycles while building the code
in the 'extra' tarball. For it to fail on your system there must
be something unusual about the setup.

If you want it to work then you will need to put in the effort
yourself, download the source to 19f and run the executable for
it with gdb.

George Neuner

unread,
Oct 14, 2009, 12:06:10 PM10/14/09
to
On Wed, 14 Oct 2009 11:26:04 +0200, p...@informatimago.com (Pascal J.
Bourguignon) wrote:

>George Neuner <gneu...@comcast.net> writes:
>
>> If Maas has mentioned where he lives, I've missed it.
>

>[Maas is] a programmer, searching a job, and living in Sunnyvale:
>http://www.rawbw.com/~rem/NewPub/SeekJob/Resume.2005.B.txt

Interesting. He doesn't claim much for 10 years and theoretically
knowing so many languages. He is a mathematician (as I suspected) and
his list of applications is, thus far, mostly unimpressive.

[My own resume is probably mostly unimpressive too ... depends who's
looking and accomplishments are mostly what you luck into. But mine
invokes curses like "hard real time", "FDA validated",
"client-server", "data modeling", "system software", etc. and a 10
year accomplishment list could name some very well known companies as
users of my software.]

George

George Neuner

unread,
Oct 14, 2009, 12:14:31 PM10/14/09
to
On Wed, 14 Oct 2009 01:41:45 -0700, seeWeb...@rem.intarweb.org

(Robert Maas, http://tinyurl.com/uh3t) wrote:

No swap meets or users groups? In Sunnyvale?

Here in Boston we have charities that place useful 2nd hand computers
and other electronics into the hands of people who can use them.
California is even more bloody liberal than Massachusetts ... I can't
believe there isn't something similar there.

George

Robert Swindells

unread,
Oct 14, 2009, 12:41:51 PM10/14/09
to

George Neuner wrote:
>On Wed, 14 Oct 2009 01:41:45 -0700, seeWeb...@rem.intarweb.org
>(Robert Maas, http://tinyurl.com/uh3t) wrote:
>
>>> From: Adam Michalik <dode...@gmail.com>
>>> In my country you can find better hardware than his in a trash
>>> dump.
>>
>>Apparently you know *which* trash dump to look in. Here in
>>Sunnyvale, they have severe restrictions on dumping electronic
>>stuff, to avoid pollution. If you are caught dumping electronics in
>>the trash, you go to jail. Everyone is required to take electronics
>>to a special recycling dropoff (the SMART station in northern
>>Sunnyvale near light rail), where the law requires them to
>>**DESTROY** the hard disk before passing the now useless computer
>>to the company that disassembles it and recycles the metals and
>>destroys the electronics.

[snip]

>No swap meets or users groups? In Sunnyvale?

He has written that he already has three computers. Taking one or more
of them to a user group could be the best way to get them working
though, we are not getting very far trying to do it via USENET.


Tamas K Papp

unread,
Oct 14, 2009, 12:58:24 PM10/14/09
to

Gedankenexperiment: if someone placed a fully functional, fairly
recent (<3 yrs old) computer on his doorstep, he would still come up
with justifications on why he cannot get things done.

He comes to USENET exactly because he knows that this is not going to
help him, so we will not deprive him of excuses for not programming.

Tamas

Robert Swindells

unread,
Oct 14, 2009, 1:16:42 PM10/14/09
to

I agree but at least he would be annoying a different group of people
if he went to a user group.

>He comes to USENET exactly because he knows that this is not going to
>help him, so we will not deprive him of excuses for not programming.

He is choosing to reject the advice here, it isn't worthless.

All the software needed for a clean install of his Macintosh is freely
available on the net, it might require taking a box of floppies or
a blank CD to a Public Library or Internet cafe if his modem is
unreliable.

George Neuner

unread,
Oct 14, 2009, 2:28:13 PM10/14/09
to

A few seconds of Googling (once I had a moment to do it) found

ACCRC (http://www.accrc.org/) a computer reuse charity in Berkeley
that helps individuals. They, unfortunately, have a PDF form to fill
out and return. Maybe you can get a friend to print it out for you or
contact them directly at:

Phone: (510) 528-4052
Email: in...@accrc.org


George

Paul Donnelly

unread,
Oct 14, 2009, 3:17:41 PM10/14/09
to
writes:

>> From: Petter Gustad <newsmailco...@gustad.com>
>> I seem to remember you were using an UNIX shell account.
>
> Yes, VT100 emulator through modem+phone to Unix VT100 term.
>
>> You should be able to use a curses based mail program,
>
> I don't know anything about that. Since "curses" is a plural of a
> comman word, it would be rather difficult to get good search
> results with a search engine.

Trying it rather than guessing might have been a good idea. But I guess
you win points for knowing about things as modern as search engines.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 14, 2009, 3:29:06 PM10/14/09
to
> From: p...@informatimago.com (Pascal J. Bourguignon)

> He's a programmer, searching a job, and living in Sunnyvale

Correct about Sunnyvale, but no I'm not a programmer, a single-purpose
device that programs and does nothing else useful. I'm a human being
(bioLife > cellLife > eukaryote > animalia > chordata > ... Homo sapiens)
who does lots of different *kinds* of useful things:
- I envision major changes in future techology and society, such as:
- 1964-1967: Computerized manipulation of structured math formulas
- 1969-1970: Automatic layout of complex math-formulas from plaintext scripts
- 1969-2002: Effective flashcard drill for foreign languages
- 1970-1978: Interval Refinement Stochastic Mapping, for data compression
- 1971-1972: Frames (pages) of information with links to other frames/pages
- 1973-----: "Generalized Computer Dating" = automatic topic clustering
- 1975-1976: Hierarchially built "overlays" of layed-out text such as math
- 1976-2009: Custom/vanity cryptokeys for public-key encryption
- 1982-----: Online auctions (eventually implemented by Yahoo & eBay)
- 1991-1995: Toplevel meta-index to the InterNet = list of lists+documents
- 1991-1995: Toplevel index of useful InterNet howTo/explanatory documents
- 1995-2002: Effective flashcard drill for pre-school reading+spelling
- 1995-1996: Unified InterNet tree-of-info on the Web (before dir.yahoo.com)
- 2003-2009: Web pages/services specially tailored to fit one-inch cellphones
- 2006-2009: No-syntext menu-driven dataflow-model software development
- 2008-2009: Truth-futures market (not my original idea, but further developed)
- 2008-2009: Filtering job ads to eliminate those which you don't qualify for
- 2008-2009: Automatic path-finding per idea of "six degrees of separation"
- 2008-2009: Reverse tree for filtering multi-source input to just the best
- 2008-2009: Priority-alert notification system
- 2008-2009: Fully automated surveys, starting with "what survey would you like?"
- 2008-2009: Many more novel ideas in http://www.rawbw.com/~rem/WAP/projectIdeas.html
- 2008-2009: New economic system where currency is labor-time, not dollar
- I develop many of those new visions to preliminary/abstract design specs/goals
- I "analyze" (convert general design goals into detailed design specs)
- I "program" (convert detailed design specs into compilable-executable code)
(Those just-previous two were my job title at Stanford: "Programmer/Analyst")
- I organize information into Web pages, and interface to software on server
- I teach/tutor (math, ESL, how to play Go a.k.a. wei-chi, computer programming)
- I brainstorm various ideas on online discussion forums (newsgroups, Twitter)
- I compose ditties (short silly songs, to common tunes such as Barney Dinosaur)
- I used to take care of children pretty well, when I had them living with me
- I used to give great pleasure to a special woman, when I had one around
- I would like to lead a team to develop at least one of my major ideas;
My current plans for http://TinyURL.Com/NewEco include something like that.

Whenever anyone asks me, in an abusive tone, "Are you a programmer, or what?":
- I answer "No, I'm a ditty writer.", or
- I answer "Yes, I'm a ditty writer.", or
- I go into a longwinded lecture about how I'm a multi-skilled human being, or
- I go into a longwinded lecture about how it's wrong to put labels on people, or
- I just give them a dirty look and walk away, or
- I give them a dirty look, say "If you say so.", and walk away.

Pascal J. Bourguignon

unread,
Oct 14, 2009, 3:33:14 PM10/14/09
to
Paul Donnelly <paul-d...@sbcglobal.net> writes:

He doesn't know anything.
How many curses do you associate with mail programs or any programs?
I mean, users may curse bad programs, but for a general search, you
only need to add one or two keywords to get what you want.

--
__Pascal Bourguignon__

Aatu Koskensilta

unread,
Oct 15, 2009, 4:47:28 AM10/15/09
to

> Whenever anyone asks me, in an abusive tone, "Are you a programmer,
> or what?":
>
> - I answer "No, I'm a ditty writer.", or
> - I answer "Yes, I'm a ditty writer.", or
> - I go into a longwinded lecture about how I'm a multi-skilled human
> being, or
> - I go into a longwinded lecture about how it's wrong to put labels
> on people, or
> - I just give them a dirty look and walk away, or
> - I give them a dirty look, say "If you say so.", and walk away.

What if they ask in a non-abusive tone?

--
Aatu Koskensilta (aatu.kos...@uta.fi)

"Wovon man nicht sprechen kann, dar�ber muss man schweigen"
- Ludwig Wittgenstein, Tractatus Logico-Philosophicus

Adam Michalik

unread,
Oct 15, 2009, 3:10:10 AM10/15/09
to dod...@gmail.com
> Apparently you know *which* trash dump to look in. Here in
> Sunnyvale, they have severe restrictions on dumping electronic
> stuff, to avoid pollution. If you are caught dumping electronics in
> the trash, you go to jail. Everyone is required to take electronics
> to a special recycling dropoff (the SMART station in northern
> Sunnyvale near light rail), where the law requires them to
> **DESTROY** the hard disk before passing the now useless computer
> to the company that disassembles it and recycles the metals and
> destroys the electronics.

Frankly, I didn't think of it. I believe we have similar law in this
matter, however it doesn't seem to work at all - almost nobody, with an
exception of big corporations) cares about it. And regarding big
corporations, an acquaintance of mine works in a company responsible for
disposing of electronic garbage. He says that after they receive trash
and fill in protocol, nobody cares what really happens with it, and
nobody asks questions when there is one computer less than what was
expected.

Apparently, you country sucks :)


> There's an organization called "freecycle" which has Yahoo Groups
> in each local area, including one in Sunnyvale. I saw many requests
> for computers, but only one offer
> (several years ago in the archive; I spent several hours looking
> back further and further and further to get a "feel" for what
> sorts of things were offered and what sorts of things were
> requested over the past several years)
> which was taken up by some lucky bastard in less than a day. I went
> ahead and posted my request there anyway, but nobody ever responded
> to offer me a free computer.

It's hard to believe.

> Given the laws absolutely forbidding the recycle centers from
> passing a discarded computer to anyone else without first
> destroying the hard disk physically by burning it in a fire or
> something like that, and given the gross imbalance between offers
> and requests in FreeCycle, perhaps you have some other idea where
> it is so fucking easy to find a free *WORKING* computer around here
> that I must be an idiot for not finding one yet?

What about taking the computer from them and then buying old, used hard
disk on ebay?

> Nearly three years ago I applied for a holiday job at the local
> Macy's, the only store near here that had any job openings that
> didn't require experience I don't have such as three years paid
> J2EE + JBoss + WebSphere. They told me they'd contact me within 2-3
> weeks to tell me if I got a job. I waited, but they never contacted
> me. I went in there physically and ask the person ("April") whom I
> had talked with before and she said I should just wait a while
> longer. She strung me along like that for more than a year. Then
> the next time I went back in to ask *again* why they hadn't yet
> contacted me, she was no longer working there. Macy's has been on
> my HATE LIST ever since then.

I worked physically, but I guess it may not be possible in your
case. You can also try in job agency etc.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 15, 2009, 4:20:40 AM10/15/09
to
> > Whenever anyone asks me, in an abusive tone, "Are you a programmer,
> > or what?":
> From: Aatu Koskensilta <aatu.koskensi...@uta.fi>

> What if they ask in a non-abusive tone?

You mean like she's a gorgeous "goth" lady who is snuggling close
to me and telling me "All my life I've always wanted to make love
to a programmer. Tell me you're a programmer!"?

Or do you mean like a recruiter who is pretending like he's going
to help me find a job, and if I'm a programmer then he has no jobs
for me, so I have to be something else to get a job, but I have to
*guess* what he wants me to be before he'll have a job for me?
Actually, that's abusive. He just wants me to pigeonhole myself so
that he can categorically rule me out of a job because I'm not
exactly what he's looking for. I'm a programmer, but all he wants
is a Java engineer, or a Web designer, and that's not a programmer,
so I don't qualify.

Back to that "goth" lady: I'm in a record store, trying to meet
women, and I accidently drop a yellow "Post It" that says "T.O.D.
15:25, and as I lean over trying to pick it up she leans over
faster than I can lean over and snatches it away from me before I
can get it, and she reads it aloud and asks me what it means, and I
explain that T.O.D. means Time Of Death, because the sample-ware I
wrote will self-destruct at that time, ending the free-trial
period, and so she starts snuggling up like she's fascinated to
meet a *real* *programmer*, and then she utters the cheesy line
from "StarTrek TNG" adapted to a silent line in "Dead Like Me" and
further adapted to my personal use now.

Back to the original topic of this thread: I started a new CMUCL
several days ago, then when I reached a good breaking point with
all processed data saved to disk, I did this:

* (gc)
; [GC threshold exceeded with 348,244,872 bytes in use. Commencing GC.]
; [GC completed with 6,950,552 bytes retained and 341,294,320 bytes freed.]
; [GC will next occur when at least 18,950,552 bytes are in use.]
(that text copied from earlier newsgroup article shortly after the GC)

That was a couple days ago. I contined to develop new code and test
the code and put it to productive use, in that same coreimage, and
it never gave me any trouble the whole time. I reached the nest
good breaking point with the next version of data all written to
disk, and then did this:

* (gc)
; [GC threshold exceeded with 264,489,520 bytes in use. Commencing GC.]
Help! 12 nested errors. KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded.
Debug (type H for help)
%primitive halt called; the party is over.
LDB monitor

See relevant tweets:
http://twitter.com/CalRobert/status/4719984815
http://twitter.com/CalRobert/status/4721252083
http://twitter.com/CalRobert/status/4721321698
http://twitter.com/CalRobert/status/4721336618
http://twitter.com/CalRobert/status/4728388970
http://twitter.com/CalRobert/status/4729129760
http://twitter.com/CalRobert/status/4746647286
http://twitter.com/CalRobert/status/4755853906
http://twitter.com/CalRobert/status/4755862002
http://twitter.com/CalRobert/status/4755874667
http://twitter.com/CalRobert/status/4755919021
http://twitter.com/CalRobert/status/4755963644
http://twitter.com/CalRobert/status/4756022073
http://twitter.com/CalRobert/status/4756033669
http://twitter.com/CalRobert/status/4756064203
http://twitter.com/CalRobert/status/4757073513
http://twitter.com/CalRobert/status/4757099245
http://twitter.com/CalRobert/status/4757126901
http://twitter.com/CalRobert/status/4757326800
http://twitter.com/CalRobert/status/4757334323
http://twitter.com/CalRobert/status/4781117568
http://twitter.com/CalRobert/status/4818638767
http://twitter.com/CalRobert/status/4818676677
Linkname: 3:03 PM Oct 12th (GC 2 days ago that worked fine)
URL: http://twitter.com/CalRobert/status/4818686437
http://twitter.com/CalRobert/status/4846282870

http://twitter.com/CalRobert/status/4855786735
http://twitter.com/CalRobert/status/4881549354
http://twitter.com/CalRobert/status/4881585365
http://twitter.com/CalRobert/status/4881622186
Linkname: about 2 hours ago (GC tonight that crashed into LDB)
URL: http://twitter.com/CalRobert/status/4883078739

Adam Michalik

unread,
Oct 15, 2009, 7:28:02 AM10/15/09
to dod...@gmail.com
Robert Swindells <r...@fdy2.demon.co.uk> writes:

> I agree but at least he would be annoying a different group of people
> if he went to a user group.

Annoying? I find his posts quite interesting and amusing, I like his
elaborate style. His complaints are getting tiresome, though.

> All the software needed for a clean install of his Macintosh is freely
> available on the net, it might require taking a box of floppies or
> a blank CD to a Public Library or Internet cafe if his modem is
> unreliable.

Box of floppies? Recently I did something like that:

http://blag.dodecki.net/2009/09/18/co-mozna-zrobic-majac-50-dyskietek/

Text is written in Polish, but it's enough to look at the photographs.

Aatu Koskensilta

unread,
Oct 15, 2009, 8:08:23 AM10/15/09
to

>> From: Aatu Koskensilta <aatu.koskensi...@uta.fi>
>> What if they ask in a non-abusive tone?
>
> You mean like she's a gorgeous "goth" lady who is snuggling close to
> me and telling me "All my life I've always wanted to make love to a
> programmer. Tell me you're a programmer!"?

Well, that wasn't really what I had in mind. You could try telling the
gorgeous ladies you're a mathematical logician (this is what I do, with
varying degrees of success). A female acquaintance once said, when I
told her a few anecdotes about the notorious womanizer Alfred Tarski,
who would often force his students (a notable number of who where
female) stay up til the wee hours, pounding on a logical problem,
smoking foul-smelling cigars and sipping whiskey, that it all sounds
very sexy.

--
Aatu Koskensilta (aatu.kos...@uta.fi)

"Wovon mann nicht sprechen kann, dar�ber muss man schweigen"

vippstar

unread,
Oct 15, 2009, 8:53:17 AM10/15/09
to
On Oct 15, 11:20 am, seeWebInst...@rem.intarweb.org (Robert Maas,
http://tinyurl.com/uh3t) wrote:
<snip>
> See relevant tweets:
<snip lots of links of "micro-messages">
What's all this crap? Get a proper blog.

Don Geddis

unread,
Oct 15, 2009, 7:12:59 PM10/15/09
to
seeWeb...@rem.intarweb.org (Robert Maas, http://tinyurl.com/uh3t) wrote on Thu, 15 Oct 2009:
> so she starts snuggling up like she's fascinated to meet a *real*
> *programmer*, and then she utters the cheesy line from "StarTrek TNG"
> adapted to a silent line in "Dead Like Me" and further adapted to my
> personal use now.

Don't leave us hanging. What's the cheesy line?
_______________________________________________________________________________
Don Geddis http://don.geddis.org/ d...@geddis.org
I wish I would have a real tragic love affair and get so bummed out that I'd
just quit my job and become a bum for a few years, because I was thinking about
doing that anyway. -- Deep Thoughts, by Jack Handey

Robert Swindells

unread,
Oct 16, 2009, 8:53:52 AM10/16/09
to

>> From: Robert Swindells <r...@fdy2.demon.co.uk>
>> His Mac can run a TCP/IP stack with PPP,
>
>Actually it can't, because in 1998 I deleted all the PPP files. [snip]

That was a good idea wasn't it.

>If you will please tell me a complete list of all PPP-related files
>that are needed to make PPP work on System 7.5.5, I'll see which of
>them I have already where they belong, and which aren't where they
>belong, and then I can try dragging them to correct folder and
>describe what message Finder tells me when it refuses, and you can
>then help me overcome that problem. Then with all files restored to
>correct directories, I can try starting MS-IE again and see if it
>doesn't freeze my machine any longer.

I don't need to know which files are needed for this, the installation
programs for OpenTransport or FreePPP know. If I couldn't remember
which of them had been on the machine previously then I would start
with a clean copy of System 7.5.3 and the 7.5.5 update.

A good starting point for info is <http://www.lowendmac.com/macos.shtml>

FreePPP is available at the info-mac archive.

> there is a ssh implementation that works fine on the MacOS
> version he is using. There is no excuse for using a dumb terminal
> program with poor flow control.

>A couple weeks ago, the ISP's sysadmin

>suggested a telnet-PPP program, so I downloaded it and unbinhexed
>it and then tried to run UnStuffit, but it said it isn't a Compact
>Pro archive so it can't be decompressed. Here's my explanation that
>I sent to the admin who told me to try that program:
>
>*STARTQUOTE*
>I ran BinHex to convert:
> niftytelnet-1_1-ssh-r3.hqx
>to result in:
> niftytelnet-1.1-ssh-r3.cpt
>but at the very end BinHex put up a CRC ERROR alert.

The BinHex archive has got corrupted.

I don't think this package will help with your PPP problem, it is just
a telnet client.

>I went ahead anyway and tried to use StuffIt expander on it,
>but it can't decompress it because StuffIt expander says
>it's not a Compact Pro file. So I need to download some
>*other* program just to decompress the program you had me
>download before I'll actually have the niftytelnet
>application on my Mac to try running.
>*ENDQUOTE*
>
>He never got back to me on that. Do you have any idea how to
>uncompress that particular program?

There isn't any point in trying to uncompress it if it has CRC errors.

Christopher C. Stacy

unread,
Oct 16, 2009, 11:59:21 AM10/16/09
to

REM invented the blog, actually.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 20, 2009, 4:19:38 AM10/20/09
to
> >His Mac can run a TCP/IP stack with PPP, there is a ssh implementation

> >that works fine on the MacOS version he is using. There is no excuse
> >for using a dumb terminal program with poor flow control.

Since at present I have nothing better available, I much prefer
using a dumb terminal program than being entire cut off from the
InterNet and from any decent version of lisp.

> From: George Neuner <gneun...@comcast.net>
> Maas has claimed previously that he can't get PPP to work

Correct. In 1998 it worked so utterly slowly (20 minutes to
download homepage, 20 minutes to switch pages, 5 minutes just to
scroll locally after page already on Mac) that it was worse than if
it didn't work at all. That was with MS-IE on CD-ROM that came with
the data/FAX modem I was using and am still using.

Then after I deleted all the PPP-related files from the hard disk,
it just freezes the machine if I try to run it.

Then when I tried to restore all the PPP-related files from SyQuest
backup, one of them refused to install, not allowed to drag it from
SyQuest folder to System extensions or whatever folder, and with
all other files restored but that one file not restored, it still
freezes if I try to run MS-IE even to look at local CD-ROM files only.

> and that it wouldn't help because his Mac is too small to run a
> browser.

Yes, it was thrashing audibly during those 20 or 5 minutes.
8 MB RAM just isn't big enough for MS-IE + PPP.

> A few of us have tried to help with the modem problems at various
> times, but it seems like he might actually have a broken OS install
> that he either is unable or unwilling to try to fix.

Since it *did* actually connect to AT&T WorldNet home page in 1998,
despite being utterly thrashingly slow, I doubt a broken OS install
would be the problem.

> Internet Explorer (for Mac) v3 should definitely run on his hardware.

Let me check what version of MS-IE is on that CD-ROM from 1998...
OK, what's on the CD-ROM is the installer for IE version 2.1, which
says it runs in 640k bytes, but that's just the installer, not IE
itself, that runs in such small memory.
The CD-ROM also has MS-IE version 3.0, but only for PowerPC, not
for 680x0.

Does there even exist a version 3 of MS-IE for 68030 CPU??
(I don't even have 68040 which is more suited for PPP usage.)

> v4 would be better, but it included a JVM so the install was much
> larger and, IIRC, it required 8MB of RAM to run (so a 12+MB Mac).

How can something that won't even run on 68030 with 8MB RAM be "better"??

> All the old versions of IE are freely available, but obviously
> Maas would need to get PPP running to use any of them.

Yes. After I finish the software to catalog and check-duplicates
and download-to-rescue my GeoCities files, I'll be in less of a mad
rush and might have some time to compare FileList directory
listings of my hard disk from before and after I deleted the
PPP-related files to generate a complete list of all files I
deleted, then compare with what I have resored (a few months ago)
to figure out what was that one file I was unable to re-install and
whether there were any other files I deleted and lost track of so I
never even tried to re-install them. Then with that info which
files I don't have re-installed, maybe you can help me figure out
how to install them? After that day I tried and failed to install
one of them, many months later, it randomly occurred to me that
maybe the way to install a Mac System 6 or 7 "extension" is not by
dragging it into the extensions folder but dragging it into the
icon for the System itself. But having lost track of which file it
was, I can't simply "try and see" during a spare moment. First I
have to find out which file that was. With good luck, I'll get all
my GeoCities files rescued before it's too late, then I'll compare
FileList directories of hard disk and discover which file(s) were
deleted and not yet re-installed, and then the trick of dragging
into icon of system file is the answer, and I'll have PPP
operational again. With bad luck, something will go wrong there.

The only reason I'm spending time now responding to newsgroup
articles is that it's too late and I'm too tired/groggy to work on
new software for GeoCIties rescue, so I'm doing something that I
can do even in a groggy state, write to UseNet, right up to the
moment when I'm about to pass out "now", probably about a half hour
from *really*now*.

By the way, the data/FAX modem CD-ROM also has a program called
"Communicate(TM) Lite". I have no idea what it's supposed to do. I
wonder if it's a TELNET-via-PPP program? No time/energy to do a
Google search to check what it might be.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 20, 2009, 4:47:45 AM10/20/09
to
> From: George Neuner <gneun...@comcast.net>

> From my own interactions with him, I've formed the (possibly wrong)
> impression of a retired mathematician or physicist - intellectual but
> not particularly technical.

Nope, not retird math, unless you count math in school. After I got
out of school I never found any employment in math per se. The
closest I ever came to math work was data compression based on
Shannon's theory of entropy which is vaguely applied math.

Nope, although I did well in physics in high school, and lower
division of college, when I hit Classical Mechanics with Lagranges
and Hamiltonians and the various laws about volume integral of
divergence equallying surface integral of flux, it was all really
nice sounding theory but beyond my ability to memorize the
defintions and theorems, so I stopped taking physics classes after
I got a "C" in Classical Mechanics after getting "A" in all
previous physics and chemistry classes.

No, not retired, still *trying* to *start* a career.

> He programs in Lisp and uses Unix, but he seems lost in other
> domains. He has (at least) 3 computers - the Mac, a Linux
> laptop,

Yes, so-far.

> and another I can't recall just now.

Sony PCG-717 laptop that is supposed to run Windows 98 but when I
powered it up a few months ago it said it's in the middle of
shutting down and never finishes. Update: I tried powering it up
now for the first time in months, and now it says:

PhoenixBIOS 4.0 Release 5.1.2
..
Revision R0139S0
.. pentium ... 640k system RAM ... 130048k extended RAM ...
System CMOS checksum bad - run SETUP
Mouse initialized
Press <F1> to resume, <F2> to Setup

What should I do at this point? Maybe Twitter would be a good
alternative to IRC if somebody wants to give me step by step
instructions what to try as I give step by step info what the
result of each step is?

Also, my old Mac Plus with burned out main-power-video board since mid-1999.

Also, my Altair 8800 with 28k static RAM but weak power supply.

Also, my homebrew 6502 with 4k RAM and 2k pROM with OctalDDT and
several utilities.

> He claims to have unsolvable hardware/OS problems with all of them.

No, the 6502 still worked fine the last time I had it powered up
sometime more than ten years ago.

Jon Solberg

unread,
Oct 20, 2009, 5:03:21 AM10/20/09
to
On 2009-10-20, Robert Maas, http://tinyurl.com/uh3t
<seeWeb...@rem.intarweb.org> wrote:

> Sony PCG-717 laptop that is supposed to run Windows 98 but when I
> powered it up a few months ago it said it's in the middle of
> shutting down and never finishes. Update: I tried powering it up
> now for the first time in months, and now it says:
>
> PhoenixBIOS 4.0 Release 5.1.2
> ..
> Revision R0139S0
> .. pentium ... 640k system RAM ... 130048k extended RAM ...
> System CMOS checksum bad - run SETUP
> Mouse initialized
> Press <F1> to resume, <F2> to Setup
>
> What should I do at this point?

To me, it just seems as the BIOS battery is dead which makes the BIOS
loose its settings.

--
Jon Solberg (remove "nospam." from email address).

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 20, 2009, 5:30:37 AM10/20/09
to
> >[Maas is] a programmer, searching a job, and living in Sunnyvale:
> >http://www.rawbw.com/~rem/NewPub/SeekJob/Resume.2005.B.txt

> From: George Neuner <gneun...@comcast.net>
> Interesting. He doesn't claim much for 10 years

Which 10 years are you talking about? Perhaps the 10 years are
right there in front of your nose but you are overlooking them.
Tell me which 10 years and I'll try to show you where to find the
info.

> and theoretically knowing so many languages.

I've *used* a whole bunch of programming languages over the many
years since 1964 when I first started writing computer software
*for*real* (having access to a machine I could run it on). Are you
calling me a liar? I don't have the hollerith cards for the
software I wrote on IBM 1620 (fortran 1 and fortran 2d and
assembly) and IBM 1130 (fortran IV) and IBM 360/50H (fortran IV and
assembly and watfor) prior to 1972 because all my card-decks burned
up in the warehouse fire on 1972.Dec.29. But I have saved on
dectape -> magtape -> microfiche + Macintosh most of my software at
SU-AI and MIT-ML/MC and SU-IMSSS and 6402 and Altair, and I am
keeping everything I wrote on Unix starting in 1991, and I am
keeping everything I wrote for my Macintoshes starting in 1990. I
have online code-samples from several of them:
<http://www.rawbw.com/~rem/Pub/Samples/>

> He is a mathematician (as I suspected) and his list of
> applications is, thus far, mostly unimpressive.

What do you mean by "so far"? How many of my many hundreds of
computer programs (either standalone programs, or major programming
modules) have you read descriptions of so-far?

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 20, 2009, 5:37:24 AM10/20/09
to
> From: George Neuner <gneun...@comcast.net>

> No swap meets or users groups? In Sunnyvale?

I have no idea if there are, but if there are your suggestion
sounds good. So do you know how to find out if there are any
nearby?

> Here in Boston we have charities that place useful 2nd hand
> computers and other electronics into the hands of people who can
> use them.

I tried calling 211, but they don't know of any such. I have no
idea any other source of such info around here. There could be one
in somebody's home just up the street from me, and I wouldn't know
about it.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 20, 2009, 6:14:22 AM10/20/09
to
> From: Tamas K Papp <tkp...@gmail.com>

> Gedankenexperiment: if someone placed a fully functional, fairly
> recent (<3 yrs old) computer on his doorstep,

Only a resident of this secure building would be able to do that.
The best a non-resident could do is come here during the hours
there's somebody at the front desk, ring the doorbell to get them
to open the door, and leave it at the front desk with my name. The
front-desk person will then leave a note on my mailbox advising me
that there's a package to pick up at front desk.

> He comes to USENET exactly because he knows that this is not
> going to help him, so we will not deprive him of excuses for not
> programming.

You sure have that wrong!! I've been programming like mad!! For example:

11 -rw------- 1 rem user 10716 Oct 19 03:21 2005-8-readers.lisp
;%%% Read whole file, or specified part of file, by various means

14 -rw------- 1 rem user 13068 Oct 19 03:14 2009-A-geo.lisp
;%%% Another batch of new code to handle gleaning Yahoo! Geocities DOM

30 -rw------- 1 rem user 29371 Oct 19 03:10 2009-9-geo2.lisp
;%%% Second half of 2009-9-geo, pulled out 2009.Oct.04

23 -rw------- 1 rem user 22204 Oct 19 03:02 2009-A-subcurl.lisp
;%%% Started 2009.Oct.06, run 'curl' as sub-process.

10 -rw------- 1 rem user 9486 Oct 17 18:15 2009-A-yahpw.lisp
;%%% Too many loose references to global g*YM-assoc-acct+pw,
; so on 2009.Oct.15 I started localizing all references
; in a sorta OO way: load/save/getMayLoad push/unpush/find/delete/etc.

12 -rw------- 1 rem user 11250 Oct 17 18:10 2009-8-MUPK.lisp
;%%% New invention 2009.whenever-August to covertly bootstrap public-key
; cryptosystem across insecure dialup (VT100) link in order to establish
; secure link. This relies on 2008-7-Prime to first set up code on Unix.

19 -rw------- 1 rem user 18183 Oct 17 14:45 2009-A-parse1p.lisp
;%%% One-pass parser, written 2004.Sep as part of 2001.Nov.lisp for parsing
; Received lines in RFC822 headers of e-mail (mostly spam), now moved to
; here starting 2009.Oct.03 for use in parsing output from 'wget'.

23 -rw------- 1 rem user 22770 Oct 17 14:39 2009-3-NestAL.lisp
;%%% New code 2009.Mar.13 to implement nested ASSOC lists similar to Tryg's HDDL
; The CAR of each level of structure is a keyword-symbol or integer
; and these CARs of two types can be freely mixed within next higher level
; Destructive operations are used frequently, making these operationally
; more like property lists, but with the structure of ASSOC lists so that
; nesting is clean, tag and value are CAR/CDR of the same CONS cell
; rather than CAR and CADR inline in a higher level list.

21 -rw------- 1 rem user 20632 Oct 17 14:22 2009-9-subyahoo.lisp
;%%% Code originally in 2001.Nov.lisp moved to 2009-8-sublynx.lisp and further
; developed there, and then just this part pulled out to here on 2009.Sep.14.

28 -rw------- 1 rem user 28116 Oct 15 14:42 2009-9-geo.lisp
;%%% After 2009-3|5|6|7-sgxmlp which together provide a UniCode-compliant
; DOM parser for SGML and XML, here we have specific applications
; of that DOM result for various popular/useful Web sites.
; This part, regarding GeoCities, pulled out 2009.Sep.14.

22 -rw------- 1 rem user 21248 Oct 15 14:32 2009-3-sgxmlp.lisp
;%%% New code 2009.Mar.13 to implement SGML/XML generic parser.
; This first part deals only with character encoding of UniCode data.
; Note: Makes heavy use of 2009-3-NestAl (nested assoc-lists) to organize info.

6 -rw------- 1 rem user 5466 Oct 15 12:29 2009-A-yahoo.lisp
;%%% Code for keeping track of Yahoo accounts, not using sub-process here,
; nothing specific to GeoCities or Groups here.

4 -rw------- 1 rem user 3190 Oct 15 12:17 2009-A-covfil.lisp
;%%% Generic utilities for handling covert files on Unix.

5 -rw------- 1 rem user 4091 Oct 13 14:58 2007-2-fc1.lisp
;%%% Utilities for flashcard program which are common between live CGI service
; and special maintenance. See fc2 for special maintenance utilities.

18 -rw------- 1 rem user 16967 Oct 10 20:41 2009-6-sgxmlp.lisp
;%%% Based upon 2009-3-sgxmlp which handles encoding of UniCode:
; This third part deals only with special syntax (XML decl, DOCTYPE, META)
; and consequent need to decide whether to call 2009-3-sgxmlp to re-pack
; groups of UniCode tokens together to yield single UniCode points.
; Note: Makes heavy use of 2009-3-NestAl (nested assoc-lists) to organize info.

8 -rw------- 1 rem user 7260 Oct 10 20:14 2009-7-sgxmlp.lisp
;%%% After the tokenizer is done, find matching open/close tags and nest
; everything between, thereby achieving DOM parser.
; Note: Makes heavy use of 2009-3-NestAl (nested assoc-lists) to organize info.

25 -rw------- 1 rem user 25029 Oct 10 17:31 2009-5-sgxmlp.lisp
;%%% Based upon 2009-3-sgxmlp which handles encoding of UniCode:
; This second part deals only with general issues of tokenizing
; thereby implementing the main part of a SAX parser.
; Note: Makes heavy use of 2009-3-NestAl (nested assoc-lists) to organize info.

27 -rw------- 1 rem user 26151 Oct 10 17:09 2008-7-Code.lisp
;%%% New code starting 2008.Jul.11 early morning, details of current version
; of actual coding system based on EXPTMOD with product of two large primes.
;Each message is broken into blocks, and each block gets an attached header
; to identify it within the context of the entire message.
;Whenever a field in header is of unlimited size, such as message
; number within a day (if more than 127 messages are sent in a single day),
; UTF-8 encoding is used to convert the arbitrarily-large value to a sequence; of one or more bytes.

8 -rw------- 1 rem user 6738 Oct 10 16:37 2009-7-web1.lisp
;%%% After 2009-3|5|6|7-sgxmlp which together provide a UniCode-compliant
; DOM parser for SGML and XML, here we have specific applications
; of that DOM result for various popular/useful Web sites.

19 -rw------- 1 rem user 18049 Oct 7 13:59 2009-9-subproc.lisp
;%%% Code originally in 2001.Nov.lisp then moved to 2009-8-sublynx.lisp, further
; developed there to include multi-case expecting output, and now just this
; part pulled out to here on 2009.Sep.14.
; This is just the generic sub-process scripting not specific to lynx,
; although at present lynx is the only application.

21 -rw------- 1 rem user 20638 Oct 7 13:54 2009-9-text.lisp
;%%% General utilities for text (characters, strings, binding symbols
; to hide very-long strings, differences between strings),
; pulled from 2007-2-util to here starting 2009.Sep.22

1 -rw------- 1 rem user 503 Sep 30 00:06 2007-2-cmucl.lisp
;%% Patches to CMUCL to get around bugs
;%% Non-patches in lieu of PowerLisp patches

29 -rw------- 1 rem user 29019 Sep 29 23:44 2008-3-WordHist.lisp
;%%% Code originally in WordHist.lisp, pulled out and slightly modified.
;See Mac version of WordHist.lisp for toplevel stuff.
;%% Scan text file or other stream to yield histogram of word frequencies
;%% Given word histogram, generate histogram for bigrams etc.
;%% Given histogram(s), perform further generic processing

7 -rw------- 1 rem user 5780 Sep 29 23:01 2008-7-RandBN.lisp
;%%% New code 2008.Jul.10, calling 2008-7-Rand32 to use a seed (nonempty string)
; to feed a sequence of 32-bit pseudo-random numbers to here,
; where the blocks of 32 bits will be combined and split to yield whatever
; number of bits is needed by the caller. Then if some range which
; is not an exact power of two is needed, samples beyond the
; desired range will be discarded until an in-range sample is obtained.
; Since we always ask for only the number of bits to make the next
; higher power of two greater than or equal to the number of equal
; values to choose from, worst case is slightly less than 1/2
; probability of an individual sample being rejected, hence expected
; number of rejections per good sample less than 1.0

32 -rw------- 1 rem user 31273 Sep 29 22:51 2007-2-utf.lisp
;%% Much of this was formerly in tryutf.lisp, moved here starting 2007.2.23
; This deals with UniCode, UTF-8, Latin-1, my brace-pictures for accented
; characters, various ways programs render non-USASCII bytes (more, emacs,
; vi, maybe others) ....

28 -rw------- 1 rem user 28039 Sep 29 22:32 2007-2-util.lisp
;%%% General utilities

4 -rw------- 1 rem user 2578 Sep 23 19:02 2009-9-io.lisp
;%%% Start of breaking up utilities according to intentional data type,
; on 2009.Sep.21, Input/Output streams.

28 -rw------- 1 rem user 27859 Sep 23 18:55 2009-8-sublynx.lisp
;%%% Code originally in 2001.Nov.lisp being moved here and rearranged
; starting 2009.Aug.01
;% Generic code for any sub-lynx task:
;% Specific to running Lynx on rawbw account with top active config.
;% Debugging utilities below:

16 -rw------- 1 rem user 15415 Sep 22 16:38 2007-6-smtp.lisp
;%% Code originally in 2001.Nov.lisp, pulled out and grossly modified
; to used direct TCP streams (with newline <-> CR+LF conversion).

19 -rw------- 1 rem user 18305 Sep 15 00:45 2009-8-segmat.lisp
;%%% Code originally in flashcard program on Mac, except for segmatseq
; which was written much later, all residing in
; public_html/cgi-bin/segmattmp.lisp for a long time,
; finally on 2009.Aug.01 I've added documentation and unit tests here.
;% Common code for both segmat and segmatseq
;% Code only for segmatseq:
;% Code for segmat as implemented in flashcard program on Mac:
;%% Additional code needed for computer-assisted instruction application,
; where the initial matching segment is treated specially:
;% Toplevel rigs for debug or interactive demo:

28 -rw------- 1 rem user 27754 Aug 29 17:47 2008-7-Prime.lisp
;%%% Rewrite of idea from 1977 to synthesize random products and thus
; synthesize random provable primes, started 2008.Jul.07 and
; most of it finished the very same day, using just one function
; directly translated from the 1977 MacLisp code, the rest new today.
;%% Synthesize product of FIXNUMs within desired range
;%% Brute-force factorization of FIXNUM
;%% Generating random prime(s) in range and verifying it's really prime
; This is similar to the 1977 quick-and-dirty FIXNUM-product method
;%% Given large primes P,Q, choose public exponent and then generate
; corresponding private exponent
;%% Specialize the above for my standard of 210-decimal-digit products,
; where first two digits are set from 33 thru 64 to achieve successive
; codes that altogether add only one bit to blocklength: 696 -> 697,
; next ten or eleven digits are international telephone number or
; other personally-identifying signature, and rest of digits are random.

6 -rw------- 1 rem user 5240 Aug 23 10:41 2008-7-Rand32.lisp
;%%% Code previously in 2008-3-ProxHash.lisp, being refactored here to
; keep an explicit random-number-state which allows a string to be used
; as a seed, same as in 2008-3-ProxHash.lisp except all relevant variables
; are fields within the random-number-state (rns) rather than globals.
; The random-number-state is (:RAND32 . <assocList>) where the assoc
; list contains the original seed string used, the index within that
; string where scanning stopped and needs to be picked up, and the current
; pseudo-random value that will need updating with each iteration.
; Usage: call (MAKE-RAND32-STATE seedString) -> rns once at start of each sequence
; call (STEP-RAND32-STATE rns) -> randval (side-effects rns) repeatedly

17 -rw------- 1 rem user 16506 Aug 17 12:18 2009-2-r20.lisp
;;; New code started 2009.Feb 20 to represent large integers in base 20
;;; notation using alternating consonants and vowels randomly broken
;;; into "words". If number of base-20 digits is odd, first word starts
;;; with vowel, then after it all digits are in cv pairs. Otherwise
;;; entire "sentence" is in cv pairs.
;;; Finished BigInt->Satz 2009.Feb.21 before 10 AM.
;;; Finished Satz->BigInt 2009.Feb.21 18:14 PST.

3 -rw------- 1 rem user 2245 Aug 17 04:37 2009-8-base64.lisp
;%% Started 2009.Aug.16 to convert between octet stream and BASE64 encoding.

3 -rw------- 1 rem user 1727 Aug 17 04:09 2009-8-pwrmod.lisp
;%%% Code formerly in 2005-7-ranpriz.lisp on Unix but missing from same-named
; file on Mac, to perform modular bignum arithmetic efficiently.
; This is used by both Fermat test (to check if prime) and public-key
; cryptosystem.

5 -rw------- 1 rem user 4075 Jul 31 10:49 2007-4-lynx.lisp
;%% Repackage code to run lynx to download WebPages without login

14 -rw------- 1 rem user 13779 Apr 1 2009 2009-3-tradeset.lisp
;%%% New code 2009.Mar.22 to implement algorithm for equal exchange of sets.
; This uses NestAl (nested assoc-lists) to maintain the prefix+status tree.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 20, 2009, 6:45:19 AM10/20/09
to
> From: George Neuner <gneun...@comcast.net>

> A few seconds of Googling (once I had a moment to do it) found
> ACCRC (http://www.accrc.org/) a computer reuse charity in Berkeley
> that helps individuals.

I don't have any transportation to Berkeley, and I don't believe
they'd deliver all the way over here in Sunnyvale.

> They, unfortunately, have a PDF form to fill out and return.

There's a semi-public computer lab that's open briefly weekday
afternoons, and after months of not having a working printer
(because the ink cartridge was empty and they had no funding to get
a new one), it's working again as of a week or so ago (because they
finally got a new ink cartridge).

> Maybe you can get a friend to print it out for you

I don't have any friend. I never had a friend ever in my whole
life. As a child I wasn't allowed to have any friends, because
nobody near us was close enough to me in age, except Sherry Neville
(sp?) who was a "slut" according to my mother, and Andy Ashton who
played games with toy solders so he wasn't a pacifist like we had
to be. Then we moved to Sunnyvale and near Cupertino where
everybody had a lot more money than we had so nobody would talk to
me because I wasn't monetarily up to their standards. Then I got a
big math scholarship at SCU where just about everyone except me was
Catholic and wouldn't have anything to do with me because I wasn't
Catholic. Then as an adult I didn't have any friends to introduce
me to other people who could become my friends, and adults are put
in psychiatric wards if they go around to total strangers asking
"will you be my friend?".

> or contact them directly at:
> Phone: (510) 528-4052

Given the unlikelihood of their delivering to Sunnyvale, that would
be a waste of money I don't have.

> Email: i...@accrc.org

Too bad Google Groups trashed that. But at least the domain name is
good, so maybe they have a Web site with better contact info.
Linkname: ACCRC: Alameda County Computer Resource Center 1
URL: http://accrc.org/
To apply for one or more computers, please print one of our three
placement applications:school, non-profit, or individual, and then fax,
mail, or bring us the completed form.
Link that you currently have selected
Linkname: individual
URL: http://accrc.org/2009%20Individual.pdf
Based on the context and URL, that looks like what you were referring to.

If your equipment is in working or easily repairable order, we will fix
it and place it with a charity, non-profit, school, or low-income or
disabled individual somewhere on the planet Earth.

Hmm, I guess since Sunnyvale is on planet Earth I have a chance?

Doing nothing means that you do not care who sees your data.
This allows us to simply reformat the drive and use it in a
rebuilt computer.
Our refurbished systems all run a Free software GNU/Linux operating system.

Hmm, it seems they reformat the drive, move it to a working
computer that didn't have a working hard drive, then install Linux.
That's different from the recyclers around here which are required
by law to **DESTROY** the hard drive by crushing/burning to make it
**IMPOSSIBLE** for anyone to get your data but impossible for the
hard drive to be put into refurbished computer either.

George Neuner

unread,
Oct 20, 2009, 5:22:38 PM10/20/09
to
On Tue, 20 Oct 2009 02:30:37 -0700, seeWeb...@rem.intarweb.org

(Robert Maas, http://tinyurl.com/uh3t) wrote:

Please don't get angry ... if you have more listed somewhere, I'm
happy to look at it and re-evaluate my statements.

My comments were based on the "Skills and Accomplishments" section of
the resume Pascal B. pointed to.
http://www.rawbw.com/~rem/NewPub/SeekJob/Resume.2005.B.txt

Apart from the email system and maybe the formula formatter, the
project descriptions are all things I might assign to a CS student
(some of them maybe a grad student) ... essentially one or two person
projects that really don't seem overly complicated. That may be a
completely unfair characterization, but that's how I view them based
on your descriptions.


As I said, a lot of my own career "accomplishments" are likely
unimpressive seen from the perspective of experts in various domains.
But when I look over my own list, I see team oriented projects of
various sizes like:

Programmable Image/Signal Processing Platform: a PCI based, bus master
image/signal processing board employing a high speed DSP and multiple
FPGA processing elements. Designed to be end-user programmable to
support either autonomous embedded or host controlled, client-server
type applications. The host system software was designed to support
multiple processing boards per host computer and to permit remote
network use/control of hosted boards.
- Co-designed system software including: DSP based multi-tasking
OS and virtual machine run-time environment; a modular, OO,
domain language with constructs for easy configuration and
control of FPGAs; Windows and Linux based cross compilers and
remote application debuggers; Windows and Linux based host server
software and software platform emulator.
- Principal developer for DSP operating system, virtual machine
and language support runtime library.
- Co-developer for language compiler focusing on optimal data
placement among disjoint memory spaces, FPGA operation control
syntax and optimal scheduling of FPGA reconfiguration.
- Worked closely with hardware design team, counseling on impact
of design choices on system software.

and

Holographic Film Print Processing System: a distributed system for
producing holographic X-ray film prints from CT or MR imagery,
connecting multiple graphic workstations with one or more back-end
processing servers controlling semi-autonomous laser film printers.
Workstations enable users to select imagery, print views and
parameters, and monitor print progress. Back-end servers monitor
printers and prepare imagery for exposure based on film and printer
characteristics.
- Co-developer for server-side, holographic volume slice
rendering module.
- Principal developer for multi-session communication module
interfacing back-end servers to film printers, providing network
independent job control and status messaging between a server
and any number of printers. Implemented using TCP/IP for
Ethernet enabled printers and as a bus controller for SCSI
enabled printers.
- Principal developer for server-side print control module.
Printing required creation of a disposable "master" film (similar
to a photo "negative") which then was used to expose viewable
films. The print control module monitored operational status and
resource usage for all connected printers, performed film pack
and laser dependent exposure computations for each rendered master
slice, sequenced master slice exposures, and controlled up to
three interleaved jobs per printer.
- Principal developer for film printer software emulation used
as a development aid.
- Consultant for software system distributed architecture and
workstation GUI design.

and

Surface Print Quality Assurance System: a system for real time visual
inspection of object surface and/or ink labeling featuring: multiple
arbitrarily shaped inspection regions per object with independent
registration for position and rotation; four different inspection
methods; simultaneous inspection of up to eight objects with eight
regions per object; and easy to use, touch screen GUI enabling rapid
setup and operation by non-technical staff.
- Co-developer for four versions based on Sharp GPB coprocessor,
responsible for real-time inspection control, IO signaling,
GUI, job setup, data collection and storage.
- Principle developer for rehosting port to PC/framegrabber
platform with significant enhancements including: video capture
hardware independence, increased performance, improved image
algorithms, increased ease of use, and certified USFDA 21 CFR part
11 user access control and audit history.
- Principal developer for color processing extensions enabling
simultaneous inspection of grayscale and color images.
- Principal developer for OCR/OCV extensions including: font
training, per region font selection, OCR "read" verification
of job setup and real time OCV inspection.
List of commercial users available.


And then there's a bunch of small stuff: various development aid
libraries I've written, small applications and tools, etc.


In my view, a resume's "accomplishments" section is to showcase the
best of what you can do - the items do not necessarily have to be
recent unless you are listing them to prove that you're up on the
latest technology. Good managers[*] aren't interested in alphabet
soup - they want to see reasonably applicable skills, experience,
flexibility and team work. A good manager should take for granted
that you can learn a new platform, tool chain or language.

I've used and had exposure to even more languages than you list. I
don't claim facility with them unless I can point to a commercial or
open source project I've been involved with that used them (of course
I keep a list of my personal projects as well, but generally I won't
try to use it to get a job). Much more importantly, I can point to a
documented history of team work and varied experiences including bare
hardware programming, real-time programming, OS and compiler
internals, peer and client-server network applications, database
modeling and programming, etc.

You might think stuff you did long ago on mainframes is irrelevant.
Perhaps it is ... and perhaps it says more about your worth as a
developer than some of your more recent PC based stuff. Personally I
think you should show off the most complex software you've written
regardless of what language it was written in or what platform it was
for. And make you sure you have a good description of it.

YMMV,
George


[*] Of course there are plenty of bad managers who think developers
are interchangeable and expect people to drop into an ongoing project
and be productive immediately. That kind of short-sighted thinking
leads to ridiculous want ad requirements that make it difficult to
find a candidate unless applicants lie about experience. I don't
really believe there is a deep developer shortage ... rather I think
that recent hiring and advertising practices have created the illusion
that there are no qualified applicants for jobs that exist. According
to an IEEE survey, the region I live in has an estimated 10,000
software developers out of work amidst 7,000+ available positions.
Although some percentage of the unemployed are, no doubt, web script
kiddies, I have immense trouble believing that *none* of them are
qualified to fill *any* of the open positions.

George Neuner

unread,
Oct 20, 2009, 5:26:47 PM10/20/09
to
On Tue, 20 Oct 2009 03:45:19 -0700, seeWeb...@rem.intarweb.org

(Robert Maas, http://tinyurl.com/uh3t) wrote:

>
>> Email: i...@accrc.org
>
>Too bad Google Groups trashed that. But at least the domain name is
>good, so maybe they have a Web site with better contact info.

Sorry. It was INFO AT ACCRC DOT ORG


> Linkname: ACCRC: Alameda County Computer Resource Center 1
> URL: http://accrc.org/

That's them.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 27, 2009, 5:50:12 AM10/27/09
to
> From: Robert Swindells <r...@fdy2.demon.co.uk>
> The 19f version you downloaded was built under FreeBSD 7.1, it will
> have done many garbage collection cycles while building the code
> in the 'extra' tarball. For it to fail on your system there must
> be something unusual about the setup.

It's a pre-release version. Maybe there was something that worked
fine for everything except CMUCL, and they didn't discover the
problem until after that pre-release version was made available for
our admin to install. I asked him to tell me which CVS version ID
he used, but all he would tell me is:

> We track the FreeBSD stable tree for when I update the kernel or
> rest of the OS. It is updated constantly, just like many other
> open source programs. Code does not get committed to
> the tree unless the developers believe it is ready. I have
> no reason at this point to believe there were any changes
> in this code between the version we are running and release
> 7.1 or release 7.2 for that matter; you'd have to research
> it more if you care to. I believe the changes made were in
> a file trap.c in the source, and I see no relevant changes
> in CVS to how it works since December 2007. Note the 7.0 release
> was I believe still pending at that time and came out in early 2008.

REM> I presume that date in March is when you compiled it, and is
REM> not definitive as to which CVS version you used as sources.

> It was updated right before it was compiled.

I don't think he wants to track down which CVS version that was. So
maybe you can either do that for me or tell me how to track it down
myself? The system login banner says:

FreeBSD/amd64 (shell0.rawbw.com) (ttyp7)
Last login: Mon Oct 26 17:24:26 from max0.rawbw.net
Copyright (c) 1992-2008 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.1-PRERELEASE (SHELL0) #0: Mon Mar 23 03:17:26 PDT 2009

So if you can please tell me what version was committed to the
"tree" (whatever that means) just hours or days before that date
when our admin installed it, at least then we'll know which CVS
version we're running here. Then it'll be possible to see if any
bugfixes were made between that CVS version and the final release
of 7.1 on which CMUCL was built and ran fine. If there were
bugfixes then perhaps either our system can be patched after the
fact to be just like the final-release version, or CMUCL can be
patched to tolerate the pre-release bug(s) in FreeBSD.

> If you want it to work then you will need to put in the effort
> yourself, download the source to 19f and run the executable for
> it with gdb.

I have only 32384 kbytes unused in my personal shell account. How
large is the source that I'd need to download for that particular
CVS that was used to build the pre-release FreeBSD? If I download
it to somewhere in my personal directory-tree, would you then tell
me how to tell gdb where to find it? I tried "man gdb" and it has a
way to tell it where to find the symbol table, but no way to tell
it where to find the source (presumably so that it could generate
the symbol table from the source).

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 27, 2009, 5:57:15 AM10/27/09
to
> From: Adam Michalik <dode...@gmail.com>

> What about taking the computer from them and then buying old,
> used hard disk on ebay?

I don't have any way to use ebay from here (unix VT100 term).

> You can also try in job agency etc.

I contacted about a hundred different agencies/recruiters/etc. over
the course of the past 18 years that I've been unemployed, and not
one of them has gotten me even one job interview the whole time.
They are a completely worthless lot, IMO.

Tamas K Papp

unread,
Oct 27, 2009, 7:12:38 AM10/27/09
to
On Tue, 27 Oct 2009 02:57:15 -0700, Robert Maas, http://tinyurl.com/uh3t
wrote:

Or you are simply not employable.

Boss: Robert, have you done the task I asked you to do?
Robert: No! I could not do it because [paste excuse here].

I would assume that your attitude is revealed in the first 5s, after
which the agency/recruiter would just want to get rid of you as quickly
as possible. They are afraid that if they told you what they really
think about you, you would start arguing or make a scene. So they
just close with "we will contact you".

Tamas

Robert Swindells

unread,
Oct 27, 2009, 7:50:56 AM10/27/09
to

Robert Maas wrote:
>> From: Robert Swindells <r...@fdy2.demon.co.uk>
>> The 19f version you downloaded was built under FreeBSD 7.1, it will
>> have done many garbage collection cycles while building the code
>> in the 'extra' tarball. For it to fail on your system there must
>> be something unusual about the setup.
>
>It's a pre-release version. Maybe there was something that worked
>fine for everything except CMUCL, and they didn't discover the
>problem until after that pre-release version was made available for
>our admin to install. I asked him to tell me which CVS version ID
>he used, but all he would tell me is:

[snip]

The important part is that it is running FreeBSD/amd64 not
FreeBSD/i386.

>> If you want it to work then you will need to put in the effort
>> yourself, download the source to 19f and run the executable for
>> it with gdb.
>
>I have only 32384 kbytes unused in my personal shell account. How
>large is the source that I'd need to download for that particular
>CVS that was used to build the pre-release FreeBSD? If I download
>it to somewhere in my personal directory-tree, would you then tell
>me how to tell gdb where to find it? I tried "man gdb" and it has a
>way to tell it where to find the symbol table, but no way to tell
>it where to find the source (presumably so that it could generate
>the symbol table from the source).

You don't need to source to FreeBSD, you need the source to CMUCL,
for 19f it is 22826k. The '-d' option to gdb tells it where to find
source code.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 28, 2009, 3:31:14 PM10/28/09
to
> From: Robert Swindells <r...@fdy2.demon.co.uk>
> >> His Mac can run a TCP/IP stack with PPP,
> >Actually it can't, because in 1998 I deleted all the PPP files. [snip]
> That was a good idea wasn't it.

It was the only way, other than shutting down my Mac for several
months, to prevent my Mac from dialing into AT&T WorldNet every
night after I desperately tried to stop their totally cruddy
service before the free-trial-month was over. It took several
months before they finally cancelled my bill for *most* of the
second and third month after I terminated service, and even then
they refused to refund an additional surcharge, and continued to
add that to my unpaid bill for about one additional full year. Then
they cut off my long distance phone service because I wouldn't pay
the surcharge on the WorldNet service. To this day I still have no
long distance phone service, but it would have been worse if my Mac
had continue to telephone their PPP port and establish a PPP
connection and log into my account. Then they wouldn't have
cancelled the bill for 2nd and 3rd months, and would have charged
additional months to this very day, and I would now owe them
$30/month for eleven and a half years already i.e. $4140, and
there's no way I could legally refute those charges because my Mac
would be telephoning their PPP port and establishing a PPP
connection every five hours like clockwork all these years. I can't
even afford $400 for a new laptop computer that I could actually
use. You think I could afford $4140 for service I never got but
which my Mac kept dialing into without my permission?

> >If you will please tell me a complete list of all PPP-related files
> >that are needed to make PPP work on System 7.5.5, I'll see which of
> >them I have already where they belong, and which aren't where they
> >belong, and then I can try dragging them to correct folder and
> >describe what message Finder tells me when it refuses, and you can
> >then help me overcome that problem. Then with all files restored to
> >correct directories, I can try starting MS-IE again and see if it
> >doesn't freeze my machine any longer.

> I don't need to know which files are needed for this, the
> installation programs for OpenTransport or FreePPP know.

Do you know any way I can run that installation program in a mode
where it does nothing except print out a list of which files are
needed but not currently on my hard disk or at least not where they
are supposed to be located?

> If I couldn't remember which of them had been on the machine
> previously then I would start with a clean copy of System 7.5.3
> and the 7.5.5 update.

I have no way to get ahold of any such.

> A good starting point for info is <http://www.lowendmac.com/macos.shtml>

I think it's a stupid idea to re-install all the MacOS when there's
nothing wrong with it to begin with. It's the PPP extensions that
are in need of restoration, and I already have copies of all of
those on SyQuest drive, no need to download anything from a Web
site.

> FreePPP is available at the info-mac archive.

Google search: FreePPP info-mac archive
turned up: http://www.macorchard.com/classic/connect/FreePPP.php

(For older Macs. Note that the official FreePPP web site was eliminated
on August 2, 2004, but the software remains available on the InfoMac
archives.) FreePPP has a beautiful interface and lots of nifty
features. More importantly, it is compatible with both Open Transport
and virtual memory. FreePPP 2.6 is the favorite alternative to Apple's
Open Transport PPP (below) and Remote Access (OS 9). Some people find
better luck with one than the other. FreePPP offers far more
configurability options than OT/PPP, and is easier to set up for use in
multiple locations. Version 2.6.2 cleans up the code, fixes lots of
bugs, and improves an already great product.

So I have to decide whether to restore all the files I deleted in
1998 to restore MacTCP + TCP/IP + Open Transport, and see if that
works, and only if it can't be made to work *then* try FreePPP? Or
not bother restoring what I already had, skip it and go directly to
FreePPP?

> >I ran BinHex to convert:
> > niftytelnet-1_1-ssh-r3.hqx
> >to result in:
> > niftytelnet-1.1-ssh-r3.cpt
> >but at the very end BinHex put up a CRC ERROR alert.

> The BinHex archive has got corrupted.

I have one more idea before I give up on that download: What I did
was load the online message containing the BinHex into a text
editor to remove everything except the BinHex itself, then run it
though the BinHex program which issued the CRC ERROR alert. Many
years ago, the last time I ever downloaded any BinHex stuff before
this attempt, I discovered that sometimes when the BinHex program
fails, it's better to use the unBinHex feature within StuffIt
Expander 3.0.7 instead. It seems to be more robust. Also it
automatically strips off anything except the BinHex itself, so I
don't have to edit the download manually before unBinHexing. I was
in the middle of the crisis of rescuing my GeoCities files (59
megabytes thereof) before GeoCities was scheduled to be shut down
Oct.26, so I didn't have time to think slowly and carefully about
additional options such as that. Now I have more time available, so
I'll give it a go ... hey, it worked!! I think the problem is that
the BinHex program has a bug whenever it tries to process very
large files. This file is half a megabyte, which is too large,
triggers the BinHex bug. But in StuffIt Expander 3.0.7 there is no
limit on size of BinHex file processed, so it worked. Anyway, I
have a folder with 5 files in it, including the main application, a
README that lists bugfixes etc., and README SSH support which warns
me it's illegal to use this program in the USA because of a patent
conflict with RSA. Another problem: The mian documentation is in
NiftyTelnet Guide which is a document for the Apple Guide program,
which is a system extension. When I try to double-click on it, it
says it adds functionality to the System and needs to be moved to
the Extensions folder then the Mac re-started. But it is *already*
in the Extensions folder, and has been there ever since 1998,
through *many* re-starts. So how am I supposed to run it? It's not
in the Apple menu. The Extensions Manager shows a check-mark next
to Apple Guide, so it knows Apple Guide is where it's supposed to
be, and it's enabled, so there *should* be some way to activate it.
How??

File that you are currently viewing
Linkname: Open Transport bug affects FreePPP (and a mystery solved) |
MacFixIt - CNET Reviews
URL: http://reviews.cnet.com/8301-13727_7-10340934-263.html
Steve Dagley (author of FreePPP) informs me (and several other
webmasters!) that he can confirm the same Open Transport bug that had
previously been described by AOL - and that AOL's OpenOT extension is
designed to fix. The problem clearly affects FreePPP but will also
affect any other similar MDEV that is not OT-native.
The problem is that Open Transport improperly unloads from memory,
resulting in a crash when you try to reconnect after a connection is
closed. ...
The problem is inherent in all version of Open Transport, including
1.1.2. ...

It sounds to me like Open Transport would be bad to install here.

> I don't think this package will help with your PPP problem, it is
> just a telnet client.

Yes, that's correct. I have two different problems:
- MicroSoft IE can't run effectively here because it requires too
much memory, thrashes 8MB RAM, takes 20 minutes for each Web page
downloaded, takes 5 minutes just to re-fresh the GUI when clicking
the scroll bar locally. But the sysadmin suggested just running
a PPP-TELNET program to get ot my shell account, which should
use a lot less RAM, and probably not thrash. Hence niftytelnet,
whose documentation I can't read because I have no idea how to
start up Apple Guide to read the documentation.
- I deleted all the PPP service routines in 1998 to prevent them
from dialing into AT&T WorldNet every five hours after I tried
desperately to cancel their worthless service.
I need *both* to get PPP service back to working, but configured to
call RawBandwidth instead of AT&T WorldNet, and to find a way to
read the documentation for niftytelnet so that I can learn how to
use it.

> >I went ahead anyway and tried to use StuffIt expander on it,
> >but it can't decompress it because StuffIt expander says
> >it's not a Compact Pro file. So I need to download some
> >*other* program just to decompress the program you had me
> >download before I'll actually have the niftytelnet
> >application on my Mac to try running.

..
> >uncompress that particular program?

> There isn't any point in trying to uncompress it if it has CRC errors.

Actually the BinHex file I downloaded was fine. It was a bug in the
BinHex program that comes with MacOS that was causing the trouble.
But yes after using BinHex program and getting CRC error, there was
no point in trying to decompress the incomplete CompactPro file
that it aborted writing due to CRC error. So I had to go back to
the originally-downloaded BinHex text file and use Stuffit Expander
to perform the unBinHex task. I'm glad, so very many years since I
previously downloaded anything, that I remembered that Stuffit
Expander could do the unBinHex task better than the BinHex program.
So I'm making slight progress.

Meanwhile, last night before bedtime I spent a hour trying to find
where I put the directory listings from 1998, the *before* listing
of total hard-disk bacup on SyQuest drive, a couple months before I
tried AT&T WorldNet and started messing with PPP routines and the
flushing them entirely, and the *after* listing from several months
after I deleted the PPP files. Then I spend another couple hours
using the Compare Windows feature in McSink to find places where
the two listings differed in some way other than just
date-last-written. Below is the report I prepared just before
bedtime last night but was too tired to post then, so I'm finally
posting now:


On or before 1998.Apr.19 I copied the entire hard disk to a SyQuest drive.
Then on 1998.Apr.19 I used FileList to make a directory listing of that copy.
Then on 1998.Dec.13 I used FileList to make a new directory listing of hard disk.
By comparing those two, I can now make a complete listing of
what I deleted between April and December, such as TCP/PPP
files I expunged from the hard disk to prevent my computer
from dialing AT&T in the middle of the night when I had already
cancelled my service and they were refusing to let me cancel and
refusing to cancel charges for months after I cancelled, and I
didn't want them to have any evidence whatsoever that my computer
was still dialing into their service. Using the "Compare Windows"
feature of McSink. In the same process I was also able to make a
compete listing of new files that appeared, such as TCP/PPP-related
files that AT&T Worldnet customer service had me specially download
and install but which I forgot about and failed to delete later.

The listing of files deleted, and files inserted, and also
one file that mysteriously changed its 4+4 type/crea codes,
is presented below.

Then just tonight I used FileList to make a new directory
listing of hard disk. By comparing from 1998.Dec to now I
can see which of the deleted PPP/TCP files I successfully
restored about a year ago. I've now marked those four
deleted-before-December items to show that they have now
been restored. Any not so-marked are still deleted, or were
restored then deleted again.

So the question is: Of the files present 1998.April but gone
by 1998.December, which do I need to restore in order to put
PPP service back into working order? Are there any files I
added between 1998.April and 1998.December that need to be
deleted to avoid interfering with the good files?


Present in 1998.April, but gone by 1998.December:
MacTCP cdev ztcp 118627 94/11/09 12:00:00 98/04/18 14:54:00 HD:System Folder:Control Panels: (restored later)
TCP/IP ???? ZTCP 297586 96/01/19 12:00:00 96/01/19 12:00:00 HD:System Folder:Control Panels: (restored later)
Open Tpt ATalk 68K Library libr OMGR 254974 96/01/19 12:00:00 96/01/19 12:00:00 HD:System Folder:Extensions:
Open Tpt Inet 68K Library libr OMGR 354248 96/01/19 12:00:00 96/01/19 12:00:00 HD:System Folder:Extensions:
Open Transport 68K Library libr OMGR 399069 96/01/19 12:00:00 96/01/19 12:00:00 HD:System Folder:Extensions:
Open Transport Guide Additions mixn reno 210550 96/02/20 12:00:00 96/02/20 12:00:00 HD:System Folder:Extensions:
main.ndx TEXT MSIE 0 98/02/20 13:47:30 98/04/14 10:15:17 HD:System Folder:Preferences:Explorer:Explorer Cache:
History.html TEXT MSIE 6735 98/02/20 13:34:18 98/04/14 10:01:37 HD:System Folder:Preferences:Explorer:
Preferences pref MSIE 22315 98/02/20 13:33:46 98/04/14 10:15:18 HD:System Folder:Preferences:Explorer:
TCP/IP Preferences pref ztcp 910 96/01/19 12:00:00 96/01/19 12:00:00 HD:System Folder:Preferences: (restored later)

Not present in 1998.April, added by 1998.December:
Modem cdev modm 214380 96/11/01 12:00:00 96/11/01 12:00:00 HD:System Folder:Control Panels:
MountImage cdev imgD 9504 89/05/28 12:34:56 90/07/27 15:09:20 HD:System Folder:Control Panels:
CFM-68K Runtime Enabler INIT cfm8 424210 97/02/26 12:00:00 97/02/26 12:00:00 HD:System Folder:Extensions:
Intel Raw Video thng Intl 12478 94/09/13 16:40:15 94/09/13 16:40:17 HD:System Folder:Extensions:
Internet Config Extension thng ICAp 23956 97/01/03 00:00:00 97/01/03 00:00:00 HD:System Folder:Extensions:
jgdw.68k shlb ???? 209876 96/07/04 05:49:56 97/02/17 12:28:28 HD:System Folder:Extensions:
JgPly.CFM68K.shlb shlb ???? 369033 97/02/19 10:52:52 97/05/02 17:31:23 HD:System Folder:Extensions:
Microsoft Component Lib (68k) shlb Ole2 51037 97/06/10 00:00:00 97/06/10 00:00:00 HD:System Folder:Extensions:
NuDragLib.slb shlb cfmg 4750 95/08/11 11:00:00 96/08/21 13:28:47 HD:System Folder:Extensions:
NuQuickTimeLib.slb shlb cfmg 127987 95/04/23 11:00:00 96/08/21 13:28:48 HD:System Folder:Extensions:
NuTranslationLib.slb shlb cfmg 6982 95/09/12 11:00:00 96/08/21 13:28:49 HD:System Folder:Extensions:
ObjectSupportLib shlb cfmg 41599 97/01/29 12:00:00 97/01/29 12:00:00 HD:System Folder:Extensions:
Arial FFIL DMOV 292046 95/12/24 18:13:51 97/03/05 12:07:19 HD:System Folder:Fonts:
Arial Black FFIL DMOV 50746 96/03/22 14:52:26 96/03/22 16:49:23 HD:System Folder:Fonts:
Comic Sans MS FFIL DMOV 120629 96/03/22 13:45:19 98/06/20 07:11:08 HD:System Folder:Fonts:
Courier New FFIL DMOV 351373 95/12/24 18:14:00 97/03/05 12:07:19 HD:System Folder:Fonts:
Georgia FFIL DMOV 263630 96/10/10 11:50:17 97/03/05 12:07:19 HD:System Folder:Fonts:
Impact FFIL DMOV 59895 96/03/22 14:51:37 96/03/22 16:50:53 HD:System Folder:Fonts:
Times New Roman FFIL DMOV 354222 95/12/24 18:14:10 97/03/05 12:07:19 HD:System Folder:Fonts:
Trebuchet MS FFIL DMOV 236904 96/11/09 16:23:57 98/06/20 07:11:08 HD:System Folder:Fonts:
Verdana FFIL DMOV 224258 96/06/06 14:45:32 98/06/20 07:11:08 HD:System Folder:Fonts:
Wingdings FFIL DMOV 72061 96/01/03 22:54:20 96/01/04 08:54:48 HD:System Folder:Fonts:
MacTCP DNR cdev mtcp 17401 98/01/02 14:02:01 98/04/18 14:54:00 HD:System Folder: (restored later)
Date PreferencesI cLKz Date 2184 96/11/16 19:00:24 97/02/13 11:58:19 HD:System Folder:Preferences:
EditPrefs PREF EDIT 266 98/05/04 09:52:33 98/05/04 09:52:33 HD:System Folder:Preferences:
Main User ICAp ICAp 47273 96/12/31 16:27:07 98/07/19 14:48:56 HD:System Folder:Preferences:Internet Configurations:
Internet Preferences ICAp ICAp 47273 96/12/31 16:27:07 98/07/19 20:24:56 HD:System Folder:Preferences:
Modem Preferences mdpf modm 848 98/06/21 13:34:50 98/06/21 13:36:39 HD:System Folder:Preferences:
Pathways Demo Preferences pref p th 82 98/04/23 21:35:08 98/04/23 21:35:09 HD:System Folder:Preferences:
RedShift Prefs RSFS RSFT 18 98/06/18 18:54:04 98/06/18 18:54:04 HD:System Folder:Preferences:
Registration Database pref RgEd 8192 98/06/20 07:32:15 98/07/19 20:09:24 HD:System Folder:Preferences:
Remote Access Connections lzcn rmot 1616 98/06/21 13:28:19 98/07/19 14:49:34 HD:System Folder:Preferences:Remote Access:
Remote Access Log lzlg rmot 282624 98/06/21 13:28:18 98/07/19 20:26:32 HD:System Folder:Preferences:Remote Access:
ResEdit Preferences rsrc RSED 398 98/05/04 09:20:29 98/05/04 14:41:58 HD:System Folder:Preferences:
History.html TEXT MSIE 7252 98/06/20 07:16:21 98/06/20 07:16:21 HD:System Folder:Preferences:Saved Preferences from ICW:
Internet Preferences ICAp ICAp 34077 98/06/20 07:16:20 98/06/20 07:16:20 HD:System Folder:Preferences:Saved Preferences from ICW:
Silverlining Prefs pref SLDd 602 98/04/18 23:58:35 98/06/06 21:15:24 HD:System Folder:Preferences:
TCReader Prefs ???? ???? 648 98/05/09 12:08:43 98/05/09 12:33:23 HD:System Folder:Preferences:

Changed from 1998.April to 1998.December:
Network cdev atdv 42004 95/11/15 12:01:00 96/01/19 12:00:00 HD:System Folder:Control Panels:
Network ???? ATDV 41998 95/11/15 12:01:00 96/01/19 12:00:00 HD:System Folder:Control Panels:

Changed from 1998.Dec to 2009.Oct
Automated Tasks faet MACS 564 98/01/02 13:42:11 98/01/02 13:42:11 HD:System Folder:Apple Menu Items:
Automated Tasks fdrp MACS 564 98/01/02 13:42:11 98/01/02 13:42:11 HD:System Folder:Apple Menu Items:

Restored or added from 1998.Dec to 2009.Oct
Config PPP 2.5 cdev Mppp 39392 96/03/27 04:06:30 96/03/27 04:06:30 HD:System Folder:Control Panels:
MacTCP ???? ZTCP 118627 94/11/09 12:00:00 98/06/20 19:22:59 HD:System Folder:Control Panels: (formerly deleted)
PPP cdev rmot 471617 96/11/01 12:00:00 96/11/01 12:00:00 HD:System Folder:Control Panels:
TCP/IP cdev ztcp 297268 96/01/19 12:00:00 96/01/19 12:00:00 HD:System Folder:Control Panels: (formerly deleted)
PPP mdev PPP 141279 96/03/05 12:00:00 96/03/05 12:00:00 HD:System Folder:Extensions:
MacTCP DNR cdev mtcp 3373 10/05/15 01:08:30 10/10/17 16:15:47 HD:System Folder: (formerly deleted)
Apple Modem Tool Phone Numbers TEXT ttxt 0 10/09/29 01:27:53 10/09/29 01:27:53 HD:System Folder:Preferences:
AppleCD Audio Player Prefs aupf aucd 356 10/12/28 15:43:19 10/02/15 08:25:32 HD:System Folder:Preferences:
AppleScript Preferences pref ascr 386 10/07/05 19:53:57 10/07/05 19:53:58 HD:System Folder:Preferences:
CD Remote Programs ProG SamB 320 10/12/28 15:43:20 10/12/28 15:43:35 HD:System Folder:Preferences:
PowerLisp Preferences TEXT ???? 1026 10/08/03 01:56:29 10/08/03 09:59:02 HD:System Folder:Preferences:
PPP Preferences PREF Mppp 714 98/06/20 07:16:23 98/06/21 13:17:39 HD:System Folder:Preferences:
Stickies Preferences pref notz 23 10/08/01 07:41:02 10/08/01 07:41:02 HD:System Folder:Preferences:
TCP/IP Preferences pref ztcp 924 96/01/19 12:00:00 98/06/21 18:44:27 HD:System Folder:Preferences: (formerly deleted)

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 28, 2009, 4:25:54 PM10/28/09
to
> >> The 19f version you downloaded was built under FreeBSD 7.1, it will
> >> have done many garbage collection cycles while building the code
> >> in the 'extra' tarball. For it to fail on your system there must
> >> be something unusual about the setup.
> >It's a pre-release version. Maybe there was something that worked
> >fine for everything except CMUCL, and they didn't discover the
> >problem until after that pre-release version was made available for
> >our admin to install. I asked him to tell me which CVS version ID
> >he used, but all he would tell me is:

> From: Robert Swindells <r...@fdy2.demon.co.uk>
> The important part is that it is running FreeBSD/amd64 not
> FreeBSD/i386.

Are you claiming the system admin here installed an inappropriate
version of FreeBSD, one which does *not* work quite correctly on
Intel Xeon processors, but the incompatibility between OS and CPU
is so slight that only applications that depend on intimate things
such as page-fault signals will crash, so most users will
mistakenly believe the system is working fine, and since the system
itself hasn't crashed in 219 days the admin mistakenly believes the
Titanic is fine and doesn't need to go back to port to be re-built?

Or are you saying they admin *really* is running an AMD CPU, and
the system message saying it's Intel Xeon is a lie?

> >I have only 32384 kbytes unused in my personal shell account. How

> >large is the source that I'd need to download ...

> You don't need to source to FreeBSD, you need the source to CMUCL,
> for 19f it is 22826k.

Oops, sorry for my mental lapse. Well that would leave only 9.5
megabytes unused, which is really cutting it tight with all the
major things I plan to be doing here. Of course if I deleted CMUCL
19f that would free up a lot of disk space, but I guess you don't
want me doing that.

> The '-d' option to gdb tells it where to find source code.

-d directory
Add directory to the path to search for source files.
Ah, I didn't see that first time eyeballing the 'man' page. Thanks.

OK, let me first try it without the source, just to verify that it
crashes and that 'gdb' gives *some* info about why:

> gdb ~/Tmps/TmpCmucl/bin/lisp
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
(gdb) run
Starting program: /home/users/rem/Tmps/TmpCmucl/bin/lisp
Warning: Chip supports SSE2, but could not find SSE2 core.
Falling back to x87 core.
CMU Common Lisp 19f (19F), running on shell0.rawbw.com
With core: /home/users/rem/Tmps/TmpCmucl/lib/cmucl/lib/lisp-x87.core
Dumped on: Tue, 2009-03-10 20:58:42-07:00 on daland
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
Python 1.1, target Intel x86
CLOS based on Gerd's PCL 2008-11-12 16:36:41
* (gc)
; [GC threshold exceeded with 138,960 bytes in use. Commencing GC.]
; [GC completed with 20,600 bytes retained and 118,360 bytes freed.]
; [GC will next occur when at least 12,020,600 bytes are in use.]

NIL
* (gc)
; [GC threshold exceeded with 24,872 bytes in use. Commencing GC.]

Program received signal SIGSEGV, Segmentation fault.
0x101b46f4 in ?? ()
(gdb) quit
The program is running. Exit anyway? (y or n) y

Now let me check if what I already downloaded includes any source:

> cd ~/Tmps/TmpCmucl/
> du
388 ./bin
18 ./lib/cmucl/lib/ext-formats
1644 ./lib/cmucl/lib/subsystems
26654 ./lib/cmucl/lib
26946 ./lib/cmucl
26948 ./lib
27337 .

The source would be in its own special directory, and du would show it,
so indeed I don't already have the source. Now where to find it on
the net?

Google search: cmucl 19f source


File that you are currently viewing

Linkname: Index of /pub/cmucl/release/19f
URL: http://www.pmsf.de/pub/cmucl/release/19f/


Link that you currently have selected

Linkname: cmucl-src-19f.tar.bz2
URL:
http://www.pmsf.de/pub/cmucl/release/19f/cmucl-src-19f.tar.bz2
Is that the set of sources I need to download to make 'gdb' useful
for debugging CMUCL 19f? That's 6.1 megabytes, but when I ungzip it
that'll be an additional 20 some odd megabytes, leaving only 6
megabytes unused, then when I try to untar it it'll fail because
there isn't enough disk space available.
> df -k ~
Filesystem 1024-blocks Used Avail Capacity Mounted on
tank/users/rem 409600 377472 32128 92% /home/users/rem

I am currently tying up over 63 megabytes having a copy of SBCL
here, because somebody said I should try that instead of CMUCL. I
could delete it to free up enough space to debug CMUCL.
> cd TmpSbcl
> du
24983 ./sbcl-1.0.23-x86-freebsd/output
388 ./sbcl-1.0.23-x86-freebsd/src/runtime
390 ./sbcl-1.0.23-x86-freebsd/src
722 ./sbcl-1.0.23-x86-freebsd/contrib/sb-aclrepl
61 ./sbcl-1.0.23-x86-freebsd/contrib/sb-rt
128 ./sbcl-1.0.23-x86-freebsd/contrib/asdf-install
386 ./sbcl-1.0.23-x86-freebsd/contrib/asdf
98 ./sbcl-1.0.23-x86-freebsd/contrib/sb-rotate-byte
27 ./sbcl-1.0.23-x86-freebsd/contrib/sb-executable
327 ./sbcl-1.0.23-x86-freebsd/contrib/sb-sprof
217 ./sbcl-1.0.23-x86-freebsd/contrib/sb-cover
182 ./sbcl-1.0.23-x86-freebsd/contrib/sb-md5
1527 ./sbcl-1.0.23-x86-freebsd/contrib/sb-simple-streams
1306 ./sbcl-1.0.23-x86-freebsd/contrib/sb-posix
217 ./sbcl-1.0.23-x86-freebsd/contrib/sb-grovel
194 ./sbcl-1.0.23-x86-freebsd/contrib/sb-introspect
791 ./sbcl-1.0.23-x86-freebsd/contrib/sb-bsd-sockets
117 ./sbcl-1.0.23-x86-freebsd/contrib/sb-cltl2
6301 ./sbcl-1.0.23-x86-freebsd/contrib
19 ./sbcl-1.0.23-x86-freebsd/doc
32220 ./sbcl-1.0.23-x86-freebsd
63735 .
But I'd rather somebody tell me *how* to run SBCL here. What I
downloaded doesn't work here.
> ls -l
total 532
79 -rw------- 1 rem user 79897 Nov 4 2008 BUGS
2 -rw------- 1 rem user 870 Jun 1 2006 COPYING
33 -rw------- 1 rem user 33155 Oct 17 2008 CREDITS
10 -rw------- 1 rem user 8706 Jan 14 2008 INSTALL
387 -rw------- 1 rem user 275486 Nov 3 2008 NEWS
3 -rw------- 1 rem user 1779 Jul 30 2008 README
4 -rw------- 1 rem user 2878 Nov 7 2006 SUPPORT
2 drwx------ 17 rem user 19 Oct 6 17:19 contrib/
2 drwx------ 2 rem user 3 Oct 6 17:19 doc/
2 -rw------- 1 rem user 778 Nov 6 2006 find-gnumake.sh
5 -rw------- 1 rem user 4171 Nov 4 2007 install.sh
2 drwx------ 2 rem user 3 Oct 6 17:19 output/
1 -rw------- 1 rem user 348 Sep 17 2000 pubring.pgp
2 -rw------- 1 rem user 1095 Oct 31 2008 run-sbcl.sh
1 -rw------- 1 rem user 300 Dec 28 2007 sbcl-pwd.sh
2 drwx------ 3 rem user 3 Oct 6 17:19 src/
> sh run-sbcl.sh
(running SBCL from: .)
/libexec/ld-elf.so.1: Shared object "libm.so.4" not found, required by "sbcl"
So can you or somebody tell me how to fix that??

> ls
2 sbcl-1.0.23-x86-freebsd/
31514 sbcl-1.0.23-x86-freebsd-binary.tar
Hmm, I could delete the tar to free up over 31 megabytes immediately.

Robert Maas, http://tinyurl.com/uh3t

unread,
Oct 28, 2009, 4:51:20 PM10/28/09
to
> >> You can also try in job agency etc.
> > I contacted about a hundred different agencies/recruiters/etc. over the
> > course of the past 18 years that I've been unemployed, and not one of
> > them has gotten me even one job interview the whole time. They are a
> > completely worthless lot, IMO.

> From: Tamas K Papp <tkp...@gmail.com>
> Or you are simply not employable.

And where do you get such a stupid idea as that? I'm very much
employable, do very good work, always try to do whatever my boss
asks me to do so long as it's legal (I had to turn down a job offer
about 35 years ago because the job *required* driving the wrong way
on one-way streets in downtown Palo Alto to deliver San Francisco
Examiner newspapers and I just wasn't comfortable breaking the law
on a regular basis just because my boss-to-be said I needed to do
it).

> Boss: Robert, have you done the task I asked you to do?
> Robert: No! I could not do it because [paste excuse here].

OK, at this point you have committed libel. YOU FUCKING BASTARD!!!
If I have the tools available to do the job, and I know how to use
the tools to do the job, and it's not illegal, and my boss tells me
to do the job, and the boss is paying my hourly wages to work for
him, then of course I do the job. If I don't know how, I ask for
advice/help, and as much as politeness allows I bug the boss for
better explanation until I know what needs to be known to do the
job, then I go do it and tell the boss when it's done. If my boss
tells me to do something I've never done before, have never been
trained to do, something unlike anything I've ever done before, I
try to find online help, such as tutorials or newsgroup folks. Only
if my boss refuses to give me any idea how to do some new such as
"frob the bogangle with jive-juice" and I can't find any online
help to figure out what the fuck my boss is wanting me to do, then
I might come back and simply say "until and unless you explain what
you want me to do, I can't possibly be expected to read your mind
and guess what to do".

> I would assume that your attitude is revealed in the first 5s,
> after which the agency/recruiter would just want to get rid of
> you as quickly as possible.

And where the fuck do you get such a ridiculous mis-assumption
about me? Why don't you either shut the fuck up or tell me to do
some work for you that is within my capabilities and send me
ceritifcation that you intend to pay me for my work if I complete
it, and we'll see whether I am willing to work for pay or not.

Put up or shut the fuck up!!

> They are afraid that if they told you what they really think
> about you, you would start arguing or make a scene.

Unless you have inside information on this topic, that you've
talked with some recruiter at some employment agency who has lied
to me but you have gotten the truth from that recruiters, then you
are smoking lies through your filthy fucking dirty obscene libelous
mouth from your equally filthy brain or excuse for such.

So put up or shut up. Offer me money to work for me, or tell me the
name of a recruiter who has secretly told you why he could't find
me a job, or stop posting libel about me. I'm pissed angry that you
are libeling me and that I have no money to hire a lawyer to sue
the pants off you.

No, I'm not going to apologize for cursing at you. You fucking deserve it.

I'm nice to everyone else in the world, except people who abuse me,
as you're doing. You pay me cash to work for you, work that I know
how to do and currently have tools to enable me to do that work,
and I'll stop cursing at you and do the work you ask me to do. Then
when I finish the work, I expect you to pay me, and to post a
public retraction of your libelous remarks against me, and to post
a public letter of recommendation for me. I didn't particularily
like Patrick Suppes, he had a rather abrasive personality, but he
paid me, so I worked for him. I don't like you either, but you put
up the money and I work for you. Deal or no deal?

Andrew Reilly

unread,
Oct 28, 2009, 5:08:46 PM10/28/09
to
On Wed, 28 Oct 2009 13:25:54 -0700, Robert Maas, http://tinyurl.com/uh3t
wrote:

> Are you claiming the system admin here installed an inappropriate
> version of FreeBSD, one which does *not* work quite correctly on Intel
> Xeon processors, but the incompatibility between OS and CPU is so slight
> that only applications that depend on intimate things such as page-fault
> signals will crash, so most users will mistakenly believe the system is
> working fine, and since the system itself hasn't crashed in 219 days the
> admin mistakenly believes the Titanic is fine and doesn't need to go
> back to port to be re-built?

No.

> Or are you saying they admin *really* is running an AMD CPU, and the
> system message saying it's Intel Xeon is a lie?

No: FreeBSD/amd64 *is* the name of the FreeBSD build that is appropriate
for Intel Xeon processors with the EM64T architecture extensions, which
yours clearly has, or else it would not be running at all. The name is
historical. Get over it.

> Starting program: /home/users/rem/Tmps/TmpCmucl/bin/lisp Warning: Chip
> supports SSE2, but could not find SSE2 core.
> Falling back to x87 core.

That, IMO, is very weird. Could be significant. I'm afraid that I don't
know what it means, though.

> Is that the set of sources I need to download to make 'gdb' useful for
> debugging CMUCL 19f? That's 6.1 megabytes, but when I ungzip it that'll
> be an additional 20 some odd megabytes, leaving only 6 megabytes unused,
> then when I try to untar it it'll fail because there isn't enough disk
> space available.

You don't need to unzip before untarring. All modern tar variants,
including the one in FreeBSD have an option to extract directly from a
gzipped tar file ("z" on FreeBSD, so you want tar xvfz file.tar.gz). So
you'll only be consuming your 22Meg of source once.

Cheers,

--
Andrew

Robert Swindells

unread,
Oct 28, 2009, 5:54:03 PM10/28/09
to

Robert Maas wrote:
>> >> The 19f version you downloaded was built under FreeBSD 7.1, it will
>> >> have done many garbage collection cycles while building the code
>> >> in the 'extra' tarball. For it to fail on your system there must
>> >> be something unusual about the setup.
>> >It's a pre-release version. Maybe there was something that worked
>> >fine for everything except CMUCL, and they didn't discover the
>> >problem until after that pre-release version was made available for
>> >our admin to install. I asked him to tell me which CVS version ID
>> >he used, but all he would tell me is:
>
>> From: Robert Swindells <r...@fdy2.demon.co.uk>
>> The important part is that it is running FreeBSD/amd64 not
>> FreeBSD/i386.
>
>Are you claiming the system admin here installed an inappropriate
>version of FreeBSD, one which does *not* work quite correctly on
>Intel Xeon processors, but the incompatibility between OS and CPU
>is so slight that only applications that depend on intimate things
>such as page-fault signals will crash, so most users will
>mistakenly believe the system is working fine, and since the system
>itself hasn't crashed in 219 days the admin mistakenly believes the
>Titanic is fine and doesn't need to go back to port to be re-built?
>
>Or are you saying they admin *really* is running an AMD CPU, and
>the system message saying it's Intel Xeon is a lie?

Andrew Reilly replied to this part. It is the correct operating system
variant for this processor.

FreeBSD/amd64 can also *usually* run binaries compiled for FreeBSD/i386.

CMUCL was compiled for FreeBSD/i386, not for FreeBSD/amd64.

Something seems to be going wrong when running CMUCL under i386
emulation on that version of FreeBSD/amd64.

Maybe if you run gdb on the CMUCL binary and the sources to it are
present then it will print a message to give us some idea what is
going wrong, maybe we (the CMUCL developers) won't be able to
tell. You need to decide how much it matters to get CMUCL working for
you.

If you just want a working Lisp on this system then SBCL may be easier
to get working.

[snip]

>Now let me check if what I already downloaded includes any source:

[snip]

>The source would be in its own special directory, and du would show it,
>so indeed I don't already have the source. Now where to find it on
>the net?
>
>Google search: cmucl 19f source
>File that you are currently viewing
> Linkname: Index of /pub/cmucl/release/19f
> URL: http://www.pmsf.de/pub/cmucl/release/19f/
>Link that you currently have selected
> Linkname: cmucl-src-19f.tar.bz2
> URL:
> http://www.pmsf.de/pub/cmucl/release/19f/cmucl-src-19f.tar.bz2
>Is that the set of sources I need to download to make 'gdb' useful
>for debugging CMUCL 19f? That's 6.1 megabytes, but when I ungzip it
>that'll be an additional 20 some odd megabytes, leaving only 6
>megabytes unused, then when I try to untar it it'll fail because
>there isn't enough disk space available.

Andrew Reilly gave you the answer to this too.

That is the correct file that contains the sources.

>I am currently tying up over 63 megabytes having a copy of SBCL
>here, because somebody said I should try that instead of CMUCL. I
>could delete it to free up enough space to debug CMUCL.

[snip]

>But I'd rather somebody tell me *how* to run SBCL here. What I
>downloaded doesn't work here.

[snip]

>/libexec/ld-elf.so.1: Shared object "libm.so.4" not found, required by "sbcl"
>So can you or somebody tell me how to fix that??

A shared library that it needs is missing, it was built against a
different version of the operating system. You can't really fix this
unless you are the system administrator.

>> ls
> 2 sbcl-1.0.23-x86-freebsd/
>31514 sbcl-1.0.23-x86-freebsd-binary.tar
>Hmm, I could delete the tar to free up over 31 megabytes immediately.

Delete all of this copy of sbcl, it was built for FreeBSD/i386
(labelled as x86), maybe it would work if you had the missing shared
library but it makes more sense to try a version built for
FreeBSD/amd64 (labelled as x86-64). The most recent binary is here:

<http://prdownloads.sourceforge.net/sbcl/sbcl-1.0.22-x86-64-freebsd-binary.tar.bz2>

This is a build from last year.

If this doesn't work then you could ask your system administrator to
"install sbcl from ports", he will know what this means. You will then
have an up to date build of SBCL on that system.


George Neuner

unread,
Oct 29, 2009, 1:22:52 AM10/29/09
to
On 28 Oct 2009 21:08:46 GMT, Andrew Reilly
<andrew-...@areilly.bpc-users.org> wrote:

>On Wed, 28 Oct 2009 13:25:54 -0700, Robert Maas, http://tinyurl.com/uh3t
>wrote:
>

>> Starting program: /home/users/rem/Tmps/TmpCmucl/bin/lisp Warning: Chip
>> supports SSE2, but could not find SSE2 core.
>> Falling back to x87 core.
>
>That, IMO, is very weird. Could be significant. I'm afraid that I don't
>know what it means, though.

It could mean that the OS is not saving SSE registers in a context
switch. That could be a build option that was overlooked or it could
mean that that particular OS version doesn't really support the chip.
In any event, Xeon processors definitely support SSE2.

George

Robert Swindells

unread,
Oct 29, 2009, 4:20:41 AM10/29/09
to

It could just mean that the SSE2 core has been removed. That core was
being used the first time he ran 19f.

There are corner cases where you want to use the X87 core instead of
the SSE2 one even if the processor has SSE2 support.

It will be fine.

Robert Swindells

Raymond Toy

unread,
Oct 29, 2009, 11:29:17 AM10/29/09
to
>>>>> "Andrew" == Andrew Reilly <andrew-...@areilly.bpc-users.org> writes:

Andrew> On Wed, 28 Oct 2009 13:25:54 -0700, Robert Maas, http://tinyurl.com/uh3t


>> Starting program: /home/users/rem/Tmps/TmpCmucl/bin/lisp Warning: Chip
>> supports SSE2, but could not find SSE2 core.
>> Falling back to x87 core.

Andrew> That, IMO, is very weird. Could be significant. I'm afraid that I don't
Andrew> know what it means, though.

Nothing weird about that. CMUCL 19f and later supports both x87 and
sse2 for floating point. To do that, there are two separate core
files. For whatever reason, Robert deleted the sse2 core file, and
cmucl is just saying that it knows the chip supports sse2 and wants to
use the sse2 core, but couldn't find it. Thus it falls back to the
x87 core, which it did find.

Ray

George Neuner

unread,
Oct 29, 2009, 5:30:36 PM10/29/09
to
On 29 Oct 2009 08:20:41 +0000, Robert Swindells <r...@fdy2.demon.co.uk>
wrote:

>
>George Neuner wrote:
>>On 28 Oct 2009 21:08:46 GMT, Andrew Reilly
>><andrew-...@areilly.bpc-users.org> wrote:
>>
>>>On Wed, 28 Oct 2009 13:25:54 -0700, Robert Maas, http://tinyurl.com/uh3t
>>>wrote:
>>>
>>>> Starting program: /home/users/rem/Tmps/TmpCmucl/bin/lisp Warning: Chip
>>>> supports SSE2, but could not find SSE2 core.
>>>> Falling back to x87 core.
>>>
>>>That, IMO, is very weird. Could be significant. I'm afraid that I don't
>>>know what it means, though.
>>
>>It could mean that the OS is not saving SSE registers in a context
>>switch. That could be a build option that was overlooked or it could
>>mean that that particular OS version doesn't really support the chip.
>>In any event, Xeon processors definitely support SSE2.
>
>It could just mean that the SSE2 core has been removed. That core was
>being used the first time he ran 19f.

In a previous thread Maas reported that the processors are dual core
Xeons. Every dual/quad core Xeon supports SSE2.

The warning says: "Chip supports SSE2, but could not find SSE2 core."
Despite the use of the term "core", the message suggests the problem
is software rather than hardware. I'm guessing that "core" in this
context refers to a device driver.


>There are corner cases where you want to use the X87 core instead of
>the SSE2 one even if the processor has SSE2 support.

Such as?


>It will be fine.

Yes, it will run fine with x87, but it might run slower.

George

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 1, 2009, 3:04:52 AM11/1/09
to
> > Are you claiming the system admin here installed an inappropriate
> > version of FreeBSD, one which does *not* work quite correctly on Intel
> > Xeon processors, ...
> From: Andrew Reilly <andrew-newsp...@areilly.bpc-users.org>
> No.

> > Or are you saying they admin *really* is running an AMD CPU, and the
> > system message saying it's Intel Xeon is a lie?
> No: FreeBSD/amd64 *is* the name of the FreeBSD build that is
> appropriate for Intel Xeon processors with the EM64T architecture
> extensions, which yours clearly has, or else it would not be
> running at all. The name is historical. Get over it.

Thanks for clarifying this issue, eliminating one ore red herring.

> > Starting program: /home/users/rem/Tmps/TmpCmucl/bin/lisp Warning: Chip
> > supports SSE2, but could not find SSE2 core.
> > Falling back to x87 core.

> That, IMO, is very weird. Could be significant. I'm afraid that
> I don't know what it means, though.

Not weird at all. After I downloaded CMUCL 19f and discovered it
had the same bug as the older version that is installed on the
system directory and available by the 'lisp' command, I noticed
that every time it started up it said it was running
something.core, but the only time I ever saw a something.core file
before was when CMUCL crashed and did a coredump. So I was
wondering why it was telling me about a coredump. So I looked in
that directory, and discovered not one but two different.core files
sitting there. I still had no idea what they were for, so I tried
moving them both to my Trash folder and re-starting CMUCL 19f, and
it wouldn't run at all, said it couldn't find any core file. So
then I tried moving just one, then the other, back to where it was
originally, to see whether it needed *both* or just one or the
other. Turns out it could run with either by itself, but if only
the x86 was available then it'd print a warning message at startup
that SSE2 was available but core wasn't available so it's reverting
to x86 instead. But with only sse core available, it started
normally. So somehow I left one of them in the Trash folder and the
other in the regular folder where CMUCL could find it, and ran
further tests to see whether it really did work correctly (except
for the GC crash bug) with just one core available. Yes, apparently
it needed only one of them.

Then I finished downloading my GeoCities files, but had only a
small amount of disk space remaining, and people in the newsgroup
were telling me that I should download the source for CMUCL to
allow a debugger to make sense of what was happening, but I didn't
have enough disk space for that, so I went to Trash and began
expunging (with the 'rm' command) anything that was a large file I
didn't think I needed.

Later when you mentionned the puzzlement over the SSE2 core not
being available, I realized I had left the SSE2 core in Trash, so I
went looking for it, but couldn't find it anywhere. Apparently in
the cleanup to reclaim disk spaced used by large files I didn't
think I'd need, I accidently deleted the SSE2 core. Oh well.

> > Is that the set of sources I need to download to make 'gdb' useful for
> > debugging CMUCL 19f? That's 6.1 megabytes, but when I ungzip it that'll
> > be an additional 20 some odd megabytes, leaving only 6 megabytes unused,
> > then when I try to untar it it'll fail because there isn't enough disk
> > space available.

> You don't need to unzip before untarring. All modern tar variants,
> including the one in FreeBSD have an option to extract directly
> from a gzipped tar file ("z" on FreeBSD, so you want tar xvfz
> file.tar.gz). So you'll only be consuming your 22Meg of source
> once.

Dang, one more flag I need to add to the tar command to squeeze the
task into limited disk space. But thanks for the reminder. If I
ever have time to download the source and try collecting debug
info, I'll make use of your suggestion. Right now (this week and
next) I'm busy planning how to implement surveys (polls) within
NewEco, and then I'll be actually implementing them. I lost several
months because of the GeoCities closure, plus an extra two weeks
because of CMUCL GC crashing on this new shell account, and I
really need to get NewEco up to the point where it becomes
partially self-bootstrapping. See http://TinyURL.Com/EcoSur is
you're curious about that.

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 1, 2009, 3:20:00 AM11/1/09
to
> From: Robert Swindells <r...@fdy2.demon.co.uk>

> It could just mean that the SSE2 core has been removed. That core was
> being used the first time he ran 19f.

Yes, you got it right. I swapped the two cores one at a time or
both together to my Trash folder, to see what would happen with
either or both inaccessible to CMUCL, and then I forgot and left
the SSE2 core in Trash when running that demo that puzzled you-all.

> There are corner cases where you want to use the X87 core instead
> of the SSE2 one even if the processor has SSE2 support.

Hmm, can you show a Web page that gives examples of this kind of situation?

> It will be fine.

Thanks for the info.

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 1, 2009, 3:33:26 AM11/1/09
to
> From: George Neuner <gneun...@comcast.net>

> The warning says: "Chip supports SSE2, but could not find SSE2 core."
> Despite the use of the term "core", the message suggests the problem
> is software rather than hardware. I'm guessing that "core" in this
> context refers to a device driver.

Nope. CMUCL requires an executable file plus a "core" file. Here are the two:

> pwd
/home/users/rem/Tmps/TmpCmucl/bin
> ls -l
387 -rwx------ 1 rem user 334878 Mar 10 2009 lisp*

> pwd
/home/users/rem/Tmps/TmpCmucl/lib/cmucl/lib
> ls -l *core
24982 -rw------- 1 rem user 25432064 Mar 10 2009 lisp-x87.core

> >It will be fine.
> Yes, it will run fine with x87, but it might run slower.

Sigh. It might take two more microseconds from the time I type in
(gc) the second time until it crashes into the debugger. Whoopie.

Actually, to save disk space, I might just delete CMUCL 19f
entirely and just download the source for 19c and run *that* in the
debugger. It's probably exactly the same cause for the GC-crash bug
in both versions.

I'm still putting my bets on the cause being that this pre-release
version of FreeBSD 7.1 does *not* have the new kinds of signals
that CMUCL is assuming it has, which the *final* version of 7.1
*does* have, which is why CMUCL runs fine in 7.1 but not in
7.1PRERELEASE. But right now I'm too busy getting ready to implment
http://TinyURL.Com/EcoSur, except just before bedtime when I'm too
tired to do any new programming work so I use my last energy to
respond to newsgroup articles or e-mail.

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 1, 2009, 3:40:24 AM11/1/09
to
> From: Raymond Toy <raymond....@stericsson.com>

> Nothing weird about that. CMUCL 19f and later supports both x87
> and sse2 for floating point. To do that, there are two separate
> core files.

Yup, you got that exactly correct.

> For whatever reason, Robert deleted the sse2 core file, and cmucl
> is just saying that it knows the chip supports sse2 and wants to
> use the sse2 core, but couldn't find it. Thus it falls back to
> the x87 core, which it did find.

Yeah, sigh, you got that right too. Somehow in the process of
juggling the two core files between the regular directory and my
Trash folder, and deleting anything in Trash that I didn't think
I'd need, I must have accidently expunged the SSE2 core. It would
be too much trouble to download yet a second copy of 19f just to
get that SSE2 core back, so I won't bother. X87 core is good enough
to demonstrate the GC-crash bug, after I finish implementing
http://TinyURL.Com/EcoSur so that I'll have some time to look at
CMUCL again.

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 1, 2009, 4:18:10 AM11/1/09
to
> From: Robert Swindells <r...@fdy2.demon.co.uk>

> Andrew Reilly replied to this part. It is the correct operating
> system variant for this processor.

OK, both of you agree, our admin installed the correct flavor of
FreeBSD, although it was a pre-release version which in itself (I'm
guessing) might cause problems in being not quite standard.

> FreeBSD/amd64 can also *usually* run binaries compiled for FreeBSD/i386.

With the emphasized word "usually", I'm guessing that *some*
programs use subtle features that might not work correctly if they
were compiled for FreeBSD/i386 but then run on FreeBSD/amd64. From
what you say next below, CMUCL *might* be one of **those** programs
that can't run like that.

> CMUCL was compiled for FreeBSD/i386, not for FreeBSD/amd64.

So it's really a chancy thing whether it'll work correctly or not?

> Something seems to be going wrong when running CMUCL under i386
> emulation on that version of FreeBSD/amd64.

So you're saying that even the CMUCL 19f SSE2 core is *not*
designed to work on FreeBSD/amd64, only for i386+SSE2 which also
exists but not here?

> Maybe if you run gdb on the CMUCL binary and the sources to it
> are present then it will print a message to give us some idea what
> is going wrong, maybe we (the CMUCL developers) won't be able to
> tell. You need to decide how much it matters to get CMUCL working
> for you.

If I do (ext:gc-off) at the start of a run, and do (gc) manually
only **once** during the whole run, *before* it fills up memory (I
have to guess, can't find anything in CMUCL documentation that says
how to query how close it is to filling up the 512MB maximum heap
size, or 1024MB maximum heap if I set it larger at startup), then I
can get a few hours or a couple days out of it before it runs out
of memory. That's good enough for most uses I put it to.

> If you just want a working Lisp on this system then SBCL may be
> easier to get working.

It doesn't work at all here.

> >/libexec/ld-elf.so.1: Shared object "libm.so.4" not found, required by "sbcl"
> >So can you or somebody tell me how to fix that??

> A shared library that it needs is missing, it was built against a
> different version of the operating system.

Tha's even more drastic a problem than what I guessed. Sometimes
there are problems because GCC and the Berkeley native C compiler
don't have the same libraries, so a program compiled by one
compiler won't run with the libraries defined by the other. In that
case I could fix it just by downloading the correct C library. But
wrong OS is hopeless for me to try to fix.

> You can't really fix this unless you are the system administrator.

Yup, no disagreement there!

> >> ls
> > 2 sbcl-1.0.23-x86-freebsd/
> >31514 sbcl-1.0.23-x86-freebsd-binary.tar
> >Hmm, I could delete the tar to free up over 31 megabytes immediately.

> Delete all of this copy of sbcl, it was built for FreeBSD/i386
> (labelled as x86), maybe it would work if you had the missing
> shared library but it makes more sense to try a version built for
> FreeBSD/amd64 (labelled as x86-64).

Ah, after months of asking the same question, why doesn't SBCL work
here, why does it give that fatal "Shared object ... not found"
message at startup, somebody finally answers that question (you did
a half-screen above) and *also* tells me what needs to be done to
fix the problem (just-above and next below)!

> df -k ~


Filesystem 1024-blocks Used Avail Capacity Mounted on

tank/users/rem 409600 375808 33792 92% /home/users/rem

OK, I've expunged all the sbcl that I downloaded before.

> df -k ~
Filesystem 1024-blocks Used Avail Capacity Mounted on

tank/users/rem 409600 311680 97920 76% /home/users/rem

Now I've downloaded from that URL you cited above:

> pwd
/home/users/rem/Tmps/TmpSbcl
> ls -l
7944 -rw------- 1 rem user 8043267 Nov 1 02:00 sbcl-1.0.22-x86-64-freebsd-binary.tar.bz2


> df -k ~
Filesystem 1024-blocks Used Avail Capacity Mounted on

tank/users/rem 409600 319616 89984 78% /home/users/rem

Now I have to spend the next half hour trying to figure out the
appropriate command to un-tar.bz2 that. Andrew Reilly said:
tar xvfz file.tar.gz
but that's for gz, not for bz2, so I'm not sure that would work here.

-v Produce verbose output. In create and extract modes, tar will
list each file name as it is read from or written to the archive.
In list mode, tar will produce output similar to that of ls(1).
Additional -v options will provide additional detail.

I can't afford that on VT100 dialup with no flow control, so I'll omit it.

-z (c mode only) Compress the resulting archive with gzip(1). In
extract or list modes, this option is ignored. Note that, unlike
other tar implementations, this implementation recognizes gzip
compression automatically when reading archives.

I don't think Andrew Reilly knows what he's talking about.

<PeterSellersShotInDark>
> tar xf sbcl-1.0.22-x86-64-freebsd-binary.tar.bz2
</PeterSellersShotInDark>
> du
644 ./sbcl-1.0.22-x86-64-freebsd/src/runtime
646 ./sbcl-1.0.22-x86-64-freebsd/src
39714 ./sbcl-1.0.22-x86-64-freebsd/output
19 ./sbcl-1.0.22-x86-64-freebsd/doc
385 ./sbcl-1.0.22-x86-64-freebsd/contrib/asdf
118 ./sbcl-1.0.22-x86-64-freebsd/contrib/asdf-install
26 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-executable
781 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-bsd-sockets
204 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-grovel
190 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-md5
61 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-rt
197 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-introspect
327 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-sprof
206 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-cover
724 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-aclrepl
73 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-rotate-byte
1310 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-posix
118 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-cltl2
1505 ./sbcl-1.0.22-x86-64-freebsd/contrib/sb-simple-streams
6226 ./sbcl-1.0.22-x86-64-freebsd/contrib
47133 ./sbcl-1.0.22-x86-64-freebsd
55078 .


> df -k ~
Filesystem 1024-blocks Used Avail Capacity Mounted on

tank/users/rem 409600 366720 42880 90% /home/users/rem

> pwd
/home/users/rem/Tmps/TmpSbcl/sbcl-1.0.22-x86-64-freebsd
> more INSTALL
1.1. Quick start:
To run SBCL without installing it, from the top of binary distribution
directory:
$ sh run-sbcl.sh
> ls -l run-sbcl.sh
2 -rw------- 1 rem user 1484 Oct 28 2008 run-sbcl.sh
> sh run-sbcl.sh
(running SBCL from: /home/users/rem/Tmps/TmpSbcl/sbcl-1.0.22-x86-64-freebsd)
mmap: Cannot allocate memory
ensure_space: failed to validate 8589869056 bytes at 0x1000000000
(hint: Try "ulimit -a"; maybe you should increase memory limits.)

CMUCL runs fine (except for GC bug) in 1024 megabytes. If SBCL
requires more than 1024 megabytes just to run at all, then it's
crap that doesn't deserve further effort.

Andrew Reilly

unread,
Nov 1, 2009, 7:05:55 AM11/1/09
to
On Sun, 01 Nov 2009 02:18:10 -0700, Robert Maas, http://tinyurl.com/uh3t
wrote:

> I don't think Andrew Reilly knows what he's talking about.

'ts been said. However I often post anyway, in the hope that what I say
may still be useful, but mostly in the hope that I will learn something.
And I just have. Thank you! I did not know that FreeBSD's tar had
learned to auto-detect archive compression schemes (including bzip2 that
your SBCL distfile had used: that used to require the -y flag.) Still, I
expect the finger-reflex to persist for a while yet.

On the subject of memory limits and the like, what does "limits -a" say
on your system? Perhaps your shell account has had its memory limitd?

Cheers,

--
Andrew

Anti Vigilante

unread,
Nov 1, 2009, 11:34:06 AM11/1/09
to
> Now I've downloaded from that URL you cited above:
>
> > pwd
> /home/users/rem/Tmps/TmpSbcl
> > ls -l
> 7944 -rw------- 1 rem user 8043267 Nov 1 02:00 sbcl-1.0.22-x86-64-freebsd-binary.tar.bz2
> > df -k ~
> Filesystem 1024-blocks Used Avail Capacity Mounted on
> tank/users/rem 409600 319616 89984 78% /home/users/rem
>
> Now I have to spend the next half hour trying to figure out the
> appropriate command to un-tar.bz2 that. Andrew Reilly said:
> tar xvfz file.tar.gz
> but that's for gz, not for bz2, so I'm not sure that would work here.

install mc (midnight commander) and be happy

Rob Warnock

unread,
Nov 2, 2009, 2:13:14 AM11/2/09
to
Robert Maas ... <seeWeb...@rem.intarweb.org> wrote:
+---------------
| From: Robert Swindells <r...@fdy2.demon.co.uk>

| > FreeBSD/amd64 can also *usually* run binaries compiled for FreeBSD/i386.
|
| With the emphasized word "usually", I'm guessing that *some*
| programs use subtle features that might not work correctly if they
| were compiled for FreeBSD/i386 but then run on FreeBSD/amd64. From
| what you say next below, CMUCL *might* be one of **those** programs
| that can't run like that.
+---------------

As I have said several times already in this thread, 32-bit ("i386")
CMUCL-19c and CMUCL-19e work just *fine* on 64-bit versions of
both FreeBSD 6.2 and Linux 2.4.26 & 2.6.{7,18,20}, and IME have
*no* problems with long-running processes that GC *thousands* of times.
It *does* require that the 32-bit compatibility libs be installed,
but if it runs at all then that has been done. [The only 32-bit libs
it absolutely requires to run & GC are "libc" & "libm".]

But CMUCL-19f and/or FreeBSD 7.1 are another matter entirely...

+---------------


| > CMUCL was compiled for FreeBSD/i386, not for FreeBSD/amd64.
|
| So it's really a chancy thing whether it'll work correctly or not?

+---------------

Look, on the x86 architecture, CMUCL current exists *ONLY* in a
32-bit version, so there *isn't* a 64-bit version to use in any case.
But as I've said above [and before], the 32-bit x86 build works
just fine on x86-64 hardware with a 64-bit operating system that
has 32-bit compatibility libs installed. So -- prior to CMUCL-19f
and prior to FreeBSD 7.x -- there was nothing "chancy" about it
at all. It "just worked".

+---------------


| > Something seems to be going wrong when running CMUCL under i386
| > emulation on that version of FreeBSD/amd64.
|
| So you're saying that even the CMUCL 19f SSE2 core is *not*
| designed to work on FreeBSD/amd64, only for i386+SSE2 which also
| exists but not here?

+---------------

I have not looked into it closely, and the release notes for CMUCL-19f
don't mention it, but ISTR hearing something about some changes to
signal handling needed for FreeBSD 7.1, and those may have made it
into CMUCL-19f, and there might be some problem with the GC resulting
from that. [I can't suggest more, since I don't have any FreeBSD 7.x
machines to experiment on.] I do know that for x86/FreeBSD the conservative
generational GC is now the only version supported, and that that GC *does*
use Unix signalling of page-fault write traps as a hardware write barrier,
so it is certainly possible that the 32-bit-on-64-bit handling of memory
fault signals is different than 32-bit-on-32-bit or 64-bit-on-64-bit.

+---------------


| If I do (ext:gc-off) at the start of a run, and do (gc) manually
| only **once** during the whole run, *before* it fills up memory (I
| have to guess, can't find anything in CMUCL documentation that says
| how to query how close it is to filling up the 512MB maximum heap

| size, or 1024MB maximum heap if I set it larger at startup)...
+---------------

(room) and (room t) should provide some helpful information to you.

Note that the default in CMUCL is to trigger a GC when ~12 MB of new data
has been allocated since the last GC, so if it's failing on the second GC
after process start that's not likely to be a "filling up" issue...


-Rob

-----
Rob Warnock <rp...@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 2, 2009, 2:55:13 AM11/2/09
to
> From: Andrew Reilly <andrew-newsp...@areilly.bpc-users.org>

> I did not know that FreeBSD's tar had learned to auto-detect
> archive compression schemes (including bzip2 that your SBCL
> distfile had used: that used to require the -y flag.)

I rather doubt any such learning was active on the part of the
'tar' program. I think 'tar' was a passive subject of software
surgery done by rather intelligent and well-intentionned humans.

I think it would be fun to teach Japanese hot-tub macaque monkeys,
or orangutans, or baboons, each of which is very good at adapting
to human society, how to design computer algorithms and implement
them in software, and see what a very different kind of software
they would create.

> Still, I expect the finger-reflex to persist for a while yet.

I rather doubt any such complicated reflex exists in your fingers.
I think your fingers are the slaves of nerve impulses from your
brain. I think it's your reptilian brain that needs to re-learn
'tar'.

> On the subject of memory limits and the like, what does "limits -a"
> say on your system?

I tried "man limits" and all it would tell me is that it's a built-in
command. I refuse to type some command that I don't understand, such
as 'rm **/*', into the shell just to see what happens when I do,
just because somebody on the net tells me to try it. I don't obey
drug dealers asking me to "just try it", and I don't obey you
asking me "what does ... say on your system". Until I know
otherwise, it's like that path of wild mushrooms I found growing
next to a tree at my local bank: Might be delicious to taste, but
it's not worth the risk. Oh by the way, here's a photo of one of
the mushrooms. If you saw this, would you take a chance on it?
http://www.rawbw.com/~rem/GeoCities/bright111111/Images-S6/mushroom1E1F-10.jpg

> Perhaps your shell account has had its memory limitd?

How come CMUCL can start up with default of 512MB heap, or with me
telling it 1024MB heap, just fine, without exceeding my per-account
or per-process memory limit, but default startup of SBCL can't get
memory? Please explain how that can possibly be that it needs more
memory than my account allows. I think SBCL is just plain broken on
xeon processor running this version of FreeBSD.

Andrew Reilly

unread,
Nov 2, 2009, 6:13:32 AM11/2/09
to
On Sun, 01 Nov 2009 23:55:13 -0800, Robert Maas, http://tinyurl.com/uh3t
wrote:

>> From: Andrew Reilly <andrew-newsp...@areilly.bpc-users.org> I did not
>> On the subject of memory limits and the like, what does "limits -a" say
>> on your system?
>
> I tried "man limits" and all it would tell me is that it's a built-in
> command.

I doubt that.

http://www.FreeBSD.org/cgi/man.cgi?
query=limits&apropos=0&sektion=0&manpath=FreeBSD+7.1-RELEASE&format=html

I quote, for those for whome web access is inconvenient:

LIMITS(1) FreeBSD General Commands Manual
LIMITS(1)

NAME
limits -- set or display process resource limits

SYNOPSIS
limits [-C class | -U user] [-SHB] [-ea] [-bcdflmnstuv [val]]
limits [-C class | -U user] [-SHB] [-bcdflmnstuv [val]] [-E]
[[name=value ...] command]

DESCRIPTION
The limits utility either prints or sets kernel resource limits, and
may
optionally set environment variables like env(1) and run a program
with
the selected resources. Three uses of the limits utility are
possible:

etc.

It's in /usr/bin on my system. Yes, some shells (csh) have their own,
builtin, called "limit". Nothing is stopping you from looking this stuff
yourself, of course.

You're just doing this for my amusement, now. Good job.

> I refuse to type some command that I don't understand, such as
> 'rm **/*', into the shell just to see what happens when I do, just
> because somebody on the net tells me to try it. I don't obey drug
> dealers asking me to "just try it", and I don't obey you asking me "what
> does ... say on your system". Until I know otherwise, it's like that
> path of wild mushrooms I found growing next to a tree at my local bank:
> Might be delicious to taste, but it's not worth the risk. Oh by the way,
> here's a photo of one of the mushrooms. If you saw this, would you take
> a chance on it?

Ha!

Cheers,

--
Andrew

George Neuner

unread,
Nov 2, 2009, 9:04:32 PM11/2/09
to
On Sun, 01 Nov 2009 01:33:26 -0700, seeWeb...@rem.intarweb.org

(Robert Maas, http://tinyurl.com/uh3t) wrote:

>> From: George Neuner <gneun...@comcast.net>
>> The warning says: "Chip supports SSE2, but could not find SSE2 core."
>> Despite the use of the term "core", the message suggests the problem
>> is software rather than hardware. I'm guessing that "core" in this
>> context refers to a device driver.
>
>Nope. CMUCL requires an executable file plus a "core" file. Here are the two:
>
>> pwd
>/home/users/rem/Tmps/TmpCmucl/bin
>> ls -l
>387 -rwx------ 1 rem user 334878 Mar 10 2009 lisp*
>
>> pwd
>/home/users/rem/Tmps/TmpCmucl/lib/cmucl/lib
>> ls -l *core
>24982 -rw------- 1 rem user 25432064 Mar 10 2009 lisp-x87.core


Ok, it may not be a "driver" in the OS sense, but the x87 is not
memory mapped, so the existence of this file still verifies my
supposition that the problem is software.

George

Raymond Toy

unread,
Nov 3, 2009, 8:12:35 AM11/3/09
to
>>>>> "George" == George Neuner <gneu...@comcast.net> writes:

George> On Sun, 01 Nov 2009 01:33:26 -0700, seeWeb...@rem.intarweb.org


George> (Robert Maas, http://tinyurl.com/uh3t) wrote:

>>> From: George Neuner <gneun...@comcast.net>
>>> The warning says: "Chip supports SSE2, but could not find SSE2 core."
>>> Despite the use of the term "core", the message suggests the problem
>>> is software rather than hardware. I'm guessing that "core" in this
>>> context refers to a device driver.
>>
>> Nope. CMUCL requires an executable file plus a "core" file. Here are the two:
>>
>>> pwd
>> /home/users/rem/Tmps/TmpCmucl/bin
>>> ls -l
>> 387 -rwx------ 1 rem user 334878 Mar 10 2009 lisp*
>>
>>> pwd
>> /home/users/rem/Tmps/TmpCmucl/lib/cmucl/lib
>>> ls -l *core
>> 24982 -rw------- 1 rem user 25432064 Mar 10 2009 lisp-x87.core


George> Ok, it may not be a "driver" in the OS sense, but the x87 is not
George> memory mapped, so the existence of this file still verifies my
George> supposition that the problem is software.

This core file has no relationship to the core dump core file. This
file (or lisp-sse2.core) is required by cmucl to work. It is
basically the memory image for lisp. Without either of files, cmucl
would not run at all.

Ray

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 7, 2009, 3:51:50 AM11/7/09
to
> From: Anti Vigilante <antivigila...@pyrabang.com>

> install mc (midnight commander) and be happy

Um, why do you want me to install something into my personal
directory that is already installed on the system directory?

> whereis mc
mc: /usr/local/bin/mc /usr/local/man/man1/mc.1.gz /usr/ports/misc/mc
> mc --version
GNU Midnight Commander 4.6.2
Virtual File System: tarfs, extfs, cpiofs, ftpfs, fish, smbfs
With builtin Editor
Using system-installed S-Lang library with termcap database
With subshell support as default
With support for background operations
With mouse support on xterm
With internationalization support
With multiple codepages support
Data types: char 8 int 32 long 64 void * 64 off_t 64 ecs_char 8

By the way, several weeks ago I tried to type:
> mv sourceFile destinationDirectory/
but accidently hit the 'c' key next to the 'v' key on standard
QWERTY keyboard, resulting in typing by mistake:
> mc sourceFile destinationDirectory/
That threw me into something that looked vaguely like DIRED except
that it didn't seem to be emacs-based so ctrl-X ctrl-C wouldn't
exit from it. I spent a half hour looking through the 'man mc'
pages, trying to find out how to gracefully exit from the program,
but couldn't find the needed info. Finally, totally frustrated, I
gave up and did something rather drastic: I ran 'ps' to find out
the process number and then used the 'kill' command to FORCIBLY KILL IT!!

Vassil Nikolov

unread,
Nov 7, 2009, 2:38:54 PM11/7/09
to

On Sat, 07 Nov 2009 00:51:50 -0800, seeWeb...@rem.intarweb.org (Robert Maas, http://tinyurl.com/uh3t) said:
> ...

> I spent a half hour looking through the 'man mc'
> pages, trying to find out how to gracefully exit from the program,

I have never used `mc', but I got curious, so I searched for `quit'
in the man page. However, do you have an `f10' key?

---Vassil.


--
"Even when the muse is posting on Usenet, Alexander Sergeevich?"

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 8, 2009, 4:56:07 AM11/8/09
to
> > I spent a half hour looking through the 'man mc'
> > pages, trying to find out how to gracefully exit from the program,
> From: Vassil Nikolov <vniko...@pobox.com>

> I have never used `mc', but I got curious, so I searched for `quit'
> in the man page. However, do you have an `f10' key?

Yes. When I press it, it transmits the following sequence of five characters:

Control-open-square-bracket open-square-bracket digit-2 digit-8 tilde

Making that one keystroke be the contents of a CMUCL string, convert to hxd:
* (map 'list #'(lambda (ch) (format nil "~x" (char-code ch))) "^[[28~"))
==> ("1B" "5B" "32" "38" "7E")

Now is there any particular reason to believe that sequence of five
characters is in-combo specially meaningful to 'mc'?

Now since the four arrow keys transmit similar-looking sequences:
uparrow ^[[A
downarrow ^[[B
rightarrow ^[[C
leftarrow ^[[D
and the shell actually understands them and does the "right" thing
(up/down arrows navigate to previous/later shell commands,
left/right arrows move within a single command-line being edited)
it's plausable that the function-number keys might likewise do
something meaningful when typed at some Unix applications/utilities.

By the way, it's my understanding that those same sequences of
characters when sent *from* the host *to* the VT100 terminal
(emulator) are screen-edit cursor-motion commands. I discovered
some of them when scraping 'lynx' output via ext:run-program.

Robert Maas, http://tinyurl.com/uh3t

unread,
Nov 8, 2009, 5:58:21 AM11/8/09
to
> From: r...@rpw3.org (Rob Warnock)

> As I have said several times already in this thread, 32-bit ("i386")
> CMUCL-19c and CMUCL-19e work just *fine* on 64-bit versions of
> both FreeBSD 6.2 and Linux 2.4.26 & 2.6.{7,18,20}, and IME have
> *no* problems with long-running processes that GC *thousands* of times.
> It *does* require that the 32-bit compatibility libs be installed,
> but if it runs at all then that has been done. [The only 32-bit libs
> it absolutely requires to run & GC are "libc" & "libm".]

OK, thanks for eliminating one spurious worry. It must be something
a lot more subtle than what version of CPU things run on. I'm still
looking to a difference between this pre-reslease version and the
official final release regarding the types of page-fault signals
that are generated by the system to be intercepted by the
application, which CMUCL uses to make GC more efficient.

> But CMUCL-19f and/or FreeBSD 7.1 are another matter entirely...

Except that both 19c and 19f exhibit the *same* crash-on-second-GC
bug, so whatever is different from 19c to 19f is likely moot.

> Look, on the x86 architecture, CMUCL current exists *ONLY* in a
> 32-bit version, so there *isn't* a 64-bit version to use in any case.
> But as I've said above [and before], the 32-bit x86 build works
> just fine on x86-64 hardware with a 64-bit operating system that
> has 32-bit compatibility libs installed. So -- prior to CMUCL-19f
> and prior to FreeBSD 7.x -- there was nothing "chancy" about it
> at all. It "just worked".

But that does't explain why 19c and 19f exhibit the *same* crash here.

> I have not looked into it closely, and the release notes for
> CMUCL-19f don't mention it, but ISTR hearing something about some
> changes to signal handling needed for FreeBSD 7.1, and those may
> have made it into CMUCL-19f, and there might be some problem with
> the GC resulting from that.

Specifically page-fault signals is the rumor I heard.

> [I can't suggest more, since I don't have any FreeBSD 7.x
> machines to experiment on.]

You have rawbw.com any time you want to ask the admin to give you a
2-week free-trial shell account here. I posted the URL for the
relevant Web page, and excerpts, but apparently you missed it so
I'll repeat here:

<http://www.RawBandwidth.com/services/res.html>
Try our Personal PPP account FREE for 2 weeks with no strings attached.
We don't even take your credit card number!
..
Personal PPP/Shell (extra Web space and CGI), $25.95/mo.
Network Shell (no dialup), $15.00/mo.
Personal Shell (terminal dialup), $19.95/mo. (what I had until
2009.Nov.04 when RawBandwidth outsourced all dialups to no
longer include terminal dialup. Now I use PPP + NiftyTelnet)

2 weeks should be plenty long for a CMUCL/internals/FreeBSD expert
such as you to diagnose this problem and get ideas towards a fix.

> I do know that for x86/FreeBSD the conservative generational GC
> is now the only version supported,

I assume that statement also applies to amd/FreeBSD by means of
32-bit compatibility libraries?

Hmm, here's something I hadn't considered before: Both amd/FreeBSD
and CMUCL 19c/19f might be perfectly fine, but the 32-bit
compatibility libraries installed here might *not* be the correct
version for FreeBSD 7.1, which would explain why 7.1 everywhere
else works fine with CMUCL but not here. Tell me the names of
the files to look for, and the 'where's command should show them.
Based on what you said above, I'm guessing:

> whereis libc
libc: /usr/ports/x11/kdelibs4/work/kdelibs-4.3.1/kjs/wtf/unicode/libc
^^^
(-: what the fuck?? :-)

> whereis libm
libm:

Hmm, libm seems to be missing here. Could *that* be the problem,
why regular stuff works fine, using libc, but GC which needs libm
crashes??

> and that that GC *does* use Unix signalling of page-fault write
> traps as a hardware write barrier,

Ah, that's a better explanation than was posted previously, thanks.

> so it is certainly possible that the 32-bit-on-64-bit handling of
> memory fault signals is different than 32-bit-on-32-bit or
> 64-bit-on-64-bit.

Especially if libm is missing??

> (room) and (room t) should provide some helpful information to you.

* (room)
Dynamic Space Usage: 85,808 bytes (out of 512 MB).
..

Ah, thanks. I had vaguely heard of that many many years ago, but
didn't have access to any version of Common Lisp that provided that
function, so it slipped my mind. So in theory an application could
divert that output to a string-stream then parse it to glean the
relevant information and use that info to decide whether it's just
about time to do that one and only usable GC or whether to wait a
while longer. I wish I had known that when I was doing the
emergency rescue of my GeoCities files. But I got by without it,
just running until it crashed, never doing any GC at all, setting
maxheap to 1024 MB, saving to disk every major batch, and
re-starting from the end the last saved batch after every
run-out-of-heap crash.

I wish I had been able to use 'room' in MACL 1.2.2 when I was
writing my *huge* file-maintenance utility that sorted a listing of
*all* my files on hundreds of diskettes, all on a Mac Plus with
only 1MB RAM. It first collected batches of as much as would fit in
memory. With no way to anticipate a GC, but a tricky way to tell
*after* a GC had happened, what I did when loading data into memory
to build a sorting batch was to load *twice* as much data as I
really needed, discarding pointers to half of it, so that after a
GC happened I knew that the heap was about half full, plenty of
room to sort that batch of data and write to disk. After the master
list of files was broken into sorted blocks like that, then I had
about fifty separate merge-run files on the disk, but was allowed
only about 25 files open at any one time, so I did multiple passes
of a 20-way merge to reduce the fifty-some-odd files down to a
single final-output sorted file.

Oh by the way, I got the idea for the *overall* file-maintenance
system from the COBOL compiler that Four Phase Inc. wrote to run on
their own custom 24-bit mini-computers cirac 1970, which had such
small address space that the entire COBOL compiler wouldn't fit in
RAM at one time, so it had to be broken into overlays, but also all
the temporary data for compiling a large COBOL program such as
symbol table wouldn't fit in RAM either. So the overall compiler
consisted of alternating merge-sort and collate passes. First do
syntax analysis and write file of symbols defined or used. Then
sort them into alphabetical order by symbol so that all
definitions/uses of same symbol are adjacent. Then pass that file
matching definitions/uses of each symbol which are adacent to make
sure all symbols are defined before used. Then another sort/merge
to rearrange all the data into a different sequence whereby
collating would accomplish the next compiler pass, of matching
usages of symbols with details of their definitions, so that
appropriate object-code could be generated. The last pass sorted
all that object-code into source sequence so that the executable
binary could be written. Ingenious, and I was hired to maintain
that COBOL compiler, i.e. fix bugs in this ingenious COBOL
compiler, which is why I understand the innerds, and could apply
the idea to my file-maintenance application.

So anyway, my file-maintenance application worked like this:
- Run a directory-making function, whereby I manually looked
through all my diskettes to see which were write-enabled,
indicating that I had changed them since the last directory was
listed. I write-lock each and put it in, the program checks to
make sure the WDEF virus isn't present, but if present then it
asks me to temporarily write-unlock so that it can remove the
WDEF resource from the Desktop on that diskette, then write-lock
and check again. Finally, recursively explore the directory and
write it out as a nested s-expression showing the file hierarchy.
- Read all the nested-s-expression directory files in and write out
a temporary of each flattened to repeat all the directory path
in every line of output, writing *all* these flattened lines to
one (1) temporary output file.
- The sort-merge algorithm described above to put into alphabetical
order by filename.
- Collate-pass to find how many versions of each file exist, and
recommend older backups to delete so that I have exactly three
copies of each file scattered among my many diskettes. Write all
these delete-requests to new temporary file.
- The sort-merge algorithm again on this file of delete-requests,
now putting this subset back into diskette sequence.
- Now read through this list of diskette-sequence delete-requests,
asking me to write-unlock each so that the program can
automatically delete the files per the delete requests. Then I
write-lock it again, and the program automatically creates a new
nested-s-expression listing of that diskette to replace the one
it had been working from earlier. It also updates a master
listing of how much empty space there is on each diskette, so
that I can plan re-using now-partially-empty diskettes to save
new backups on.

> Note that the default in CMUCL is to trigger a GC when ~12 MB of
> new data has been allocated since the last GC, so if it's failing
> on the second GC after process start that's not likely to be a
> "filling up" issue...

Yup, your logic on that point agrees with mine.
The GC bug is unrelated to how much of the 512MB or 1024MB allowed
heap is actually used at the time of the second GC.

Wouldn't it be funny if libm missing was the whole problem?
The admin did a rather hasty installation of any Unix applications
that various users depended on, to encourage them to switch to the
new shell machine, and he could have very easily overlooked
something that CMUCL needs *only* when a second GC happens.
(Better than miles/km confusion crashing Mars probe, so he
ain't going to lose his job if this is all his fault like that,
especially since he's letting me use PPP + NiftyTelnet for the same
price that VT100-terminal-dialup used to cost, $6/mo less than PPP account.)

David Golden

unread,
Nov 8, 2009, 7:32:25 AM11/8/09
to
Robert Maas, whinger, wrote:
> ^[[28~

> Now is there any particular reason to believe that sequence of five
> characters is in-combo specially meaningful to 'mc'?
>

In general, keypresses of function keys on terminals map to such escape
sequences. So yes, one would of course expect mc to understand them like
other terminal applications. As such sequences vary a bit from terminal
to terminal, there is an abstraction layer us dwellers in the present
use for such things - terminfo (or the older termcap).

However, that specific sequence does not match the typical terminal
escape sequence for F10 which is ^[[21~

So you need to find a TERM env var setting that accurately corresponds
to whatever the hell stone-age terminal you have, one that sends ^[[28~
instead of ^[[21~ for F10 (or verify that you were really pressing F10)

A quick glance at the terminfo database source (nowadays bundled in
ncurses sources in misc/terminfo.src) shows that there ARE terminals
that use ^[[28~ for F10 (non-exhaustive, look them up your goddamn self):

NCSA Telnet for Macintosh
TERM=ncsa-m
(not ncsa-vt220, since that uses ^[[28~ = F15),

hewlett packard 700/44 in HP-PCterm mode
TERM=hpansi

Questar 303 with PC keyboard
TERM=bq300-pc

Texas Instruments 916
TERM=ti916

Texas Instruments 928
TERM=ti928


With the correct TERM setting for your terminal or terminal emulator, mc
should recognise an F10 keypress as F10.

John Thingstad

unread,
Nov 14, 2009, 1:11:55 PM11/14/09
to
The Sun, 08 Nov 2009 12:32:25 +0000, David Golden wrote:

> With the correct TERM setting for your terminal or terminal emulator, mc
> should recognise an F10 keypress as F10.

That is a oversimpification. The terminal emulator itself often overides
function key's. If thermial emulator grabs it before ncurses sees it it
there is little you can do. You can of cource run it fullscreen as a text
teminal.

--
John Thingstad

David Golden

unread,
Nov 14, 2009, 9:39:22 PM11/14/09
to
John Thingstad wrote:
> The Sun, 08 Nov 2009 12:32:25 +0000, David Golden wrote:
>
>> With the correct TERM setting for your terminal or terminal emulator, mc
>> should recognise an F10 keypress as F10.
>
> That is a oversimpification. The terminal emulator itself often overides
> function key's. If thermial emulator grabs it before ncurses sees it it
> there is little you can do.

Well, yeah. xfce4-terminal grabs F10 for menu access, for example
(though you can turn that off in the shortcuts tab in its preferences,
thankfully). However, I don't think that was the problem he was having
in this instance since he was apparently able to see the escape sequence
being generated.

0 new messages