Re: Linux port progress

talksmall <[email protected]> Sun, 9 Dec 2007 12:16:55 -0800 (PST)
Newsgroups gmane.comp.lang.smalltalk.strongtalk
Message-ID <4f913470-9a65-4201-bb7c-efe9fade20a2@l16g2000hsf.googlegroups.com>
Brian,
Glad to hear that you at least managed to get the VM compiled under
NetBSD. Can you send me a list of the changes you had to make to get
this working, so that I can look at incorporating them into gcc-linux
branch?

To run any of the scripts involves opening and reading the script file
which requires the libc library for file access. If you can't do this,
none of the scripts are going to make any difference, because you have
started executing any of their code.

Using libc.so was my first approach, however, under Ubuntu at least
this is a linker script file that dlopen cannot interpret properly. As
a first pass I chose instead to reference the shared object file
(actually the least specific link to it). If you have a simple
alternative suggestion, I'd be interested in hearing it.

Once you start putting library callouts as primitives where do you
stop? File access isn't really any different to any other external
call, other than as an initial hurdle to get scripted code running.

At the moment the mapping from generic library names to the shared
object files (and to DLLs under Windows) is quite simplistic.
Possibly, we could enhance the mapping code to do progressive lookups
for a number of possible shared object names. At the moment, there is
a single lookup. If that fails, it's an error and you're toast.

The possible incompatibilities in *nix environments is one reason I'm
not a fan of trying to support additional operating systems until we
have more people resources to do it. As to the offsets in the
StatBuffer structure one approach would be to offer different variants
of the class and use a factory method to access the class. If we moved
the platform class name from the os:: class to a property configurable
via the .strongtalkrc file we could avoid additional variants of the
os_*.cpp modules.

In the interim, in order to run the tests in your environment, how
about creating a link to the shared object file named libc.so.6?

Regards, Steve

On Dec 9, 6:48 am, Brian de Alwis <[email protected]> wrote:
> That's great news Stephen, and I'll look forward to those changes.
>
> I've managed to get the VM compiled and running on NetBSD with
> relatively few changes. With the image you provided on sendspace, the
> VM starts, the image loads and from tracing I can see ST code
> running.  So that's good news.
>
> If I start the VM with `-script test.dlt', I get a walkback from
> trying to resolve libc.so.6 -- UnixPlatform should probably just
> reference libc.so.  And the references to __fxstat in
> UnixFileDescriptor and the offsets in StatBuffer.  Perhaps the easiest
> solution in the long run is to push the file stuff as prims rather
> than loading from libc?
>
> I get the same results if I try running any other script.
> Unfortunately I only get the top 20 stack frames so I can't see where
> exactly this is coming from.  I've tried setting StackPrintLimit=40
> but to no avail.
>
> Brian.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Strongtalk-general" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/strongtalk-general?hl=en
-~----------~----~----~----~------~----~------~--~---