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

Reply via email to