I finally got a chance to download ast-open-2014-09-29. I am finding
waning support for my machine's old PowerPC architecture with many
software packages. So, I guess I shouldn't be surprised by any problems
I find with AST. With that said here's the details of my system:
$ machine
ppc970
$ uname -v
Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:01 PDT 2009;
root:xnu-1228.15.4~1/RELEASE_PPC
$ cc --version
powerpc-apple-darwin9-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5577)
Copyright (C) 2007 Free Software Foundation, Inc.
And yes, I ran into a few problems. Let's start with the build, which
wasn't bad -- just one problem compiling proto:
$ package make
.
.
.
cmd/proto:
+ cc -O2 -I../../lib/libpp -I/Source/AST/2014-09-29/src/lib/libpp
-I/Source/AST/2014-09-29/src/lib/libast/port -I/usr/include
-I/usr/lib/gcc/powerpc-apple-darwin9/4.2.1/include -I- -I.
-I../../../include/ast -D_PACKAGE_ast '-DUSAGE_LICENSE="[-author?Glenn
Fowler <[email protected]>][-copyright?Copyright (c) 1990-2014
AT&T Intellectual
Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?proto]"'
-c /Source/AST/2014-09-29/src/cmd/proto/proto.c
cc1: note: obsolete option -I- used, please use -iquote instead
+ cc -O2 -L/Source/AST/2014-09-29/arch/darwin.ppc/lib -o proto proto.o
-last -liconv
ld warning: option -m is obsolete and being ignored
Undefined symbols:
"_error", referenced from:
_main in proto.o
_main in proto.o
_main in proto.o
_main in proto.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make [cmd/proto]: *** exit code 1 making proto
.
.
.
make: *** 1 action failed
package: make done at Sat Dec 6 21:31:07 CST 2014 in
/Source/AST/2014-09-29/arch/darwin.ppc
After using nm on libast.a and libast.dylib (I'm sure ld on Darwin/Mac
OS X uses the latter) I indeed found no definition for _error, but I did
find a definition for __ast_error. I recall some discussions on the AST
mailing lists over concerns about namespace collisions. The solution was
to prefix certain functions with _ast_. Apparently proto is not aware of
the _ast_ prefix. Strange that only proto has this problem. I see calls
to error() all over the AST code.
The test suite had quite a few errors, including a couple places where
test programs wouldn't link because of undefined symbols. Then, it hit a
spot where the following dynamic loader errors appeared:
cmd/kshlib/dss:
+ regress /Source/AST/2014-09-29/src/cmd/kshlib/dss/dss.tst
dyld: lazy symbol binding failed: Symbol not found: _nv_lastdict
Referenced from:
/Source/AST/2014-09-29/arch/darwin.ppc/lib/ksh/libdss.dylib.0.0
Expected in: flat namespace
dyld: Symbol not found: _nv_lastdict
Referenced from:
/Source/AST/2014-09-29/arch/darwin.ppc/lib/ksh/libdss.dylib.0.0
Expected in: flat namespace
Progress halted for more than an hour at this point, and the load on my
system remained high all the while. So, I hit control-c and ended the
tests. Nevertheless, two test processes, regress and nmake, remained
running and continued to drive up the load on my system. I had to kill
both processes with SIGKILL. Considering the size of the test suite
output, I think David and Glenn would rather I send it offline. Let me
know where to send it.
Despite these errors I installed the new binaries. Here's what I've
found so far:
- My previous version of ast-open was 2012-06-12. The large
number of new built-ins added between then and this latest
version of ksh forced me to make a few changes to my .profile
and .kshrc; specifically:
- I use "stty crt" in my .profile. Darwin's stty
understands the crt composite command. The ksh
built-in stty does not. I changed my .profile to
force use of /bin/stty.
- I had grep aliased to "grep -d skip" (similarly for
fgrep and egrep) in my .kshrc in order to force
Darwin's grep to stop its annoying habit of reading
directories as though they are regular files. The ksh
built-in grep doesn't read directories this way
(all-in-all a good thing) and doesn't have a -d
option. Thus, I had to change the logic of my .kshrc
to alias grep only if $((KSH_VERSION)) < 20140929.
- The ls that's now built into ksh is missing several
options found in the native Darwin ls (see my dir
alias below). I make use of the options because I and
the operating system make use of the features (file
flags (-O), ACLs (-e) and extended attributes (the
Apple resource fork) (-@)) they depict. So for
$((KSH_VERSION)) >= 20140929 I am aliasing ls to
/bin/ls.
- This last change to my .kshrc isn't because of a
built-in but from a bug in the new ksh. I had the
following alias in my .kshrc:
alias dir='ls -FableiO@'
I found that the new ksh was often (but not always)
producing a memory fault when it sourced my .kshrc. I
traced it to the dir alias above. Indeed, if I
commented-out the alias no memory fault occurred.
Later I found that I could keep the alias if I moved
the @ to the beginning of the options list. Since
it's small, I've attached the crash log as
source_.kshrc-memory-fault.log.
- On my system's architecture job control is messed up in the
new version of ksh. I can put a job in the background with
control-z, but when I try to bring it back to the foreground
with fg ksh responds with "No job control." I can, however,
bring the job back to the foreground if I do "jobs -l" and
then send a SIGCONT to the process id with kill. Also, if I
abort a ping process with control-c I see the following
unusual behavior:
$ ping 74.125.142.16
PING 74.125.142.16 (74.125.142.16): 56 data bytes
64 bytes from 74.125.142.16: icmp_seq=0 ttl=45 time=65.774 ms
64 bytes from 74.125.142.16: icmp_seq=1 ttl=45 time=62.623 ms
^C$ # ksh prompt appears before ping's final output
--- 74.125.142.16 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 62.623/64.198/65.774/1.576 ms
# I press the return key here
[2] + Done ping 74.125.142.16
$
It seems very much like ksh places the last part of ping in
the background after control-c is typed.
That's all for now. Although, I recently found some problems with the
20120612 version of ksh that I was hoping would be fixed in 20140929
version. Some problems were fixed, others weren't. I'll have to report
those in another message.
Terrence Doyle
On 10/7/14 8:27 PM, David Korn wrote:
> A new beta version of the AST Toolkit and ksh93 have posted on the AT&T
> website, http://www.research.att.com/sw/download. Click on the word beta
> on the left side of this download page.
>
> There are many significant new features for ksh93 in the last six months as
> well as many bug fixes. Here are some of the new features. The RELEASE
> file
> in the ksh93 source directory has a log of all the changes. Here are some
> of the highlights.
>
> 1. Bash style programmable command completion.
> 2. A bash compatibility mode which runs many more bash scripts without
> change. When in this mode, the shell uses dynamic scoping for functions
> and function name, and name() are equivalent.
> 3. The read command can read json format files to create a ksh93 compound
> variable with the read -m json. It is already able to write ksh93
> compound variables in json format.
> 4. The jobs command how displays the directory in which the command was
> started if it is not the current directory. This is a bash feature that
> I found useful.
> 5. The expansion ${$variable} to get the value of the variable named by
> variable.
> 6. Several options have been added to commands to aide in Bash
> compatibility.
>
> We are hoping to get an official release for ksh93v by the end of this
> year. Please
> let us know of any problems you have.
>
>
>
>
> _______________________________________________
> ast-users mailing list
> [email protected]
> http://lists.research.att.com/mailman/listinfo/ast-users
Process: ksh [47562]
Path: /bin/ksh
Identifier: ksh
Version: ??? (???)
Code Type: PPC (Native)
Parent Process: ksh [55333]
Date/Time: 2014-12-09 10:50:06.922 -0600
OS Version: Mac OS X 10.5.8 (9L31a)
Report Version: 6
Anonymous UUID: 2E5438D0-7B00-4823-AFB0-0CB3035E03A2
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000002b2000e4
Crashed Thread: 0
Thread 0 Crashed:
0 ksh 0x0005397c nv_isnull + 28
1 ksh 0x00013be0 setall + 1376
2 ksh 0x00015638 b_alias + 744
3 ksh 0x000776b0 sh_exec + 6192
4 ksh 0x00079bd0 sh_exec + 15696
5 ksh 0x0007a9f8 sh_exec + 19320
6 ksh 0x00017b9c exfile + 2892
7 ksh 0x00017ddc sh_source + 140
8 ksh 0x0001833c sh_main + 1308
9 ksh 0x00002430 start + 64
Thread 0 crashed with PPC Thread State 32:
srr0: 0x0005397c srr1: 0x0000f030 dar: 0x2b2000e4 dsisr: 0x00200000
r0: 0x00013be4 r1: 0xbfffe110 r2: 0x01667289 r3: 0x2b2000d0
r4: 0x00800080 r5: 0x00138000 r6: 0x80808080 r7: 0x00000001
r8: 0x40002700 r9: 0x01667288 r10: 0x2b2000d0 r11: 0x0019a680
r12: 0x91fbdb80 r13: 0x001a7060 r14: 0xffff49fe r15: 0x00000000
r16: 0x0000002c r17: 0x00280200 r18: 0x001a5e94 r19: 0x001a7574
r20: 0x001a5e94 r21: 0x016672ac r22: 0x00000000 r23: 0x01652cc0
r24: 0x01652cc0 r25: 0xbfffe258 r26: 0x00000200 r27: 0x01667279
r28: 0x00196108 r29: 0x016b8920 r30: 0x2b2000d0 r31: 0x00053970
cr: 0x48222444 xer: 0x00000000 lr: 0x00053970 ctr: 0x91fbdb80
vrsave: 0x00000000
Binary Images:
0x1000 - 0x195ff3 +ksh ??? (???) <b00299a0bdcd1065d698d6ddb2eeb4c9>
/bin/ksh
0x1c0000 - 0x1c2ffd libutil.dylib ??? (???)
<dacc21eea7647ba1bee44ffc0124489d> /usr/lib/libutil.dylib
0x8fe00000 - 0x8fe30c23 dyld 97.1 (???) <89a0055b0e7ea2db881b73c6e63bc774>
/usr/lib/dyld
0x901b3000 - 0x902a9ffc libiconv.2.dylib ??? (???)
<05ae1fcc97404173b2f9caef8f8be797> /usr/lib/libiconv.2.dylib
0x9148c000 - 0x91491ff6 libmathCommon.A.dylib ??? (???)
/usr/lib/system/libmathCommon.A.dylib
0x91fb4000 - 0x9214dfe3 libSystem.B.dylib ??? (???)
<79cf3ef34f92361dc6263d884c723c24> /usr/lib/libSystem.B.dylib
0x9595b000 - 0x95966ffb libgcc_s.1.dylib ??? (???)
<ea47fd375407f162c76d14d64ba246cd> /usr/lib/libgcc_s.1.dylib
0xffff8000 - 0xffff9703 libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib
_______________________________________________
ast-users mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-users