| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
| |||
| |||
| PowerLisp hasn't frozen my Macintosh for the past several weeks, so I haven't needed a cold restart since I last posted that I've avoided that. As a result, the current uptime for my Macintosh is longer than the average uptime for FreeBSD Unix on my ISP's shell machine. (It needed a preventive re-start on Aug.28 and again on Jul.05, while my Mac with PowerLisp sailed through all that time *up* 24/7.) So now I think I can say that PowerLisp on my Mac is my preferred Common Lisp development environment (among the very few currently available to me; MACL 1.2.2 on my Mac Plus was even better before my Mac Plus fried its power+video board again in mid-1999 and I couldn't afford to get it fixed again has I had twice before, especially with Y2K coming at the end of that year and the date+time control panel for System 6.0.3 didn't support years past 1999) where I can keep stuff loaded for weeks/months unlike CMUCL on FreeBSD Unix where after each system re-start I have to load my Lisp stuff again. So what have I been doing in PowerLisp on my Mac Performa? After finishing (Aug.22) my IDE station for indent-prefix (using indent prefix from first line, and using whitespace indent from second line, two different IDE stations) I have kept them around and have used them lots of times to format newsgroup articles, including three times already in this article. On Aug.24 I finished my IDE station to convert from my Caller-ID log to the form contents to paste into the annoying-call complaint form on whocalled.us, and have been using it on a regular basis. And starting 2008.Sep.04 I've been developing a new s-expression prettyprinter using an idea I tried to develop about 20 years ago in PSL (similar to "dynamic programming" in that it generates a bottom-up list of all possible abstract formattings for each sub-expression and combines the best abstract formattings at each level to produce all reasonable abstract formattings at the next higher level) but I think I have it right this time, keeping track of both the longest line and also the length of the last line separately within each abstract formatting, so that I can correctly put the extra closing parens on the same last line if it fits else on a new line by itself. The main combiner for using the best abstract formattings at one level to generate one possible abstract formatting at the next higher level per a given tentative line width seems to be working as of a few minutes ago when I started composing this article, at least for simple cases which exercise all the code. Next I need to write the next higher level of code that cranks down the tentative line width to generate all possible formattings at that next higher level... Note: My jargon "IDE station": The idea is that inside the IDE there's a virtual (software) station, where "station" is used in the sense of a place where you bring work to be processed, similar to these standard definitions: * a facility equipped with special equipment and personnel for a particular purpose; "he started looking for a gas station"; "the train pulled into ... * A roller coaster's station is where the passengers board and alight from the trains. ... * ... A place where one stands or stays in order to perform a task; ... * ... a permanent or temporary location where scientific observations and measurements are made. ... The way an "IDE station" works is that there's a permanent s-expression in the IDE, which is an executable form which when executed reads lines of input until a blank line is found then processes those non-blank lines and edits the result into the IDE buffer. I paste the input data directly after the form, then mark the form plus input with mouse, then submit it to PowerLisp by Clover-Return, and the output appears inserted right after the input. I then copy that output and paste wherever I need it, such as replacing the original text in this message I'm composing. If anybody knows a more standard jargon for my "IDE station", please let me know (followup or e-mail through SpamGourmet). At this stage in my use of PowerLisp, the most annoying things are: - I need to repeatedly copy my working under-development code from the IDE to an ordinary text edit file and save to disk, because saving the IDE file doesn't actually happen!! - I need to carefully tag all local variables with x- prefix while doing line at a time development, then rename them without the prefix when defining the function, because all variables are SPECIAL and it totally breaks down if you already have global bindings for something that is also local (lexical). - Whenever I accidently click mouse or type immediately at the front of an incomplete s-expression, it spends about ten seconds scanning to the end of the IDE to try to find a matching close parens. If I'm typing, it spends about ten seconds per character I've typed, echoing each character only after that delay, if I'm typing multiple characters just before an unmatched open-paren. - Whenever an error is signalled, either because I goofed and triggered an error within the library, or I am testing my own ERROR call to make sure I have the format string and params correct, it takes about a half minute before it finally prints the error message to the IDE. - And it doesn't implement GET-UNIVERSAL-TIME or related functions, so there's no way to run anything that depends on date&time for proper operation, such as my optimal-flashcard-drill algorithm. So if anybody has an old Macintosh (68xxx CPU) and needs a halfway decent Common Lisp for it, and is considering PowerLisp, please contact me for info about what to **avoid** doing so that you won't freeze your Mac and need a cold restart. |
![]() |
| Thread Tools | |
| Display Modes | |
In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.