Dynamic library issues...

Anoq of the Sun anoq@HardcoreProcessing.com
Wed, 24 Jan 2001 15:42:30 +0100


This is a multi-part message in MIME format.
--------------2B8EF7E73ACA9F8D30269B4A
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello again!


Just come to think of it - there are 2
more potential problem in creating dynamic
libraries:

1) Linking the implementation of a
   function with a known signature to
   an ML function at runtime.
2) Passing arbitrary data-structures as
   function arguments.

MoscowML just allows to call functions
with 1, 2, 3, 4, or 5 arguments, but
it seems to allow any kind of data -
but I'm not sure if there are any limits
to what it can really handle.

I have attached the Dynlib.sig from
MoscowML - so that you don't have to
search for it if you want to see it :)


Cheers   
-- 
http://www.HardcoreProcessing.com


--------------2B8EF7E73ACA9F8D30269B4A
Content-Type: application/x-unknown-content-type-sig_auto_file;
 name="Dynlib.sig"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="Dynlib.sig"

c2lnbmF0dXJlIER5bmxpYiA9CnNpZwogICAgdHlwZSBkbEhhbmRsZQogICAgdHlwZSBzeW1IYW5k
bGUKICAgICAgICAKICAgIGV4Y2VwdGlvbiBDbG9zZWQKICAgIAogICAgZGF0YXR5cGUgZmxhZyA9
IFJUTERfTEFaWSB8IFJUTERfTk9XCiAgICB2YWwgZGxvcGVuICA6IHsgbGliIDogc3RyaW5nLCBm
bGFnIDogZmxhZywgZ2xvYmFsIDogYm9vbCB9IC0+IGRsSGFuZGxlCiAgICB2YWwgZGxzeW0gICA6
IGRsSGFuZGxlIC0+IHN0cmluZyAtPiBzeW1IYW5kbGUKICAgIHZhbCBkbGNsb3NlIDogZGxIYW5k
bGUgLT4gdW5pdAoKICAgIHZhbCB2YXIgIDogc3ltSGFuZGxlIC0+ICdiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgdmFsIGFwcDEgOiBzeW1IYW5kbGUgLT4gJ2ExIC0+ICdiICAgICAg
ICAgICAgICAgICAgICAgCiAgICB2YWwgYXBwMiA6IHN5bUhhbmRsZSAtPiAnYTEgLT4gJ2EyIC0+
ICdiICAgICAgICAgICAgICAKICAgIHZhbCBhcHAzIDogc3ltSGFuZGxlIC0+ICdhMSAtPiAnYTIg
LT4gJ2EzIC0+ICdiICAgICAgIAogICAgdmFsIGFwcDQgOiBzeW1IYW5kbGUgLT4gJ2ExIC0+ICdh
MiAtPiAnYTMgLT4gJ2E0IC0+ICdiCiAgICB2YWwgYXBwNSA6IHN5bUhhbmRsZSAtPiAnYTEgLT4g
J2EyIC0+ICdhMyAtPiAnYTQgLT4gJ2E1IC0+ICdiCmVuZAoKKCogCiAgIFN0cnVjdHVyZSBEeW5s
aWIgcHJvdmlkZXMgZHluYW1pYyBsb2FkaW5nIGFuZCBjYWxsaW5nIG9mIEMKICAgZnVuY3Rpb25z
LCB1c2luZyB0aGUgZGxmY24gaW50ZXJmYWNlLiAgQSBkeW5hbWljIGxpYnJhcnkgaXMgYQogICBj
b2xsZWN0aW9uIG9mIHN5bWJvbHMgKEMgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMpLiAgCgogICBB
biBNTCB2YWx1ZSBwYXNzZWQgdG8gb3IgcmV0dXJuZWQgZnJvbSBhIHN5bWJvbCBoYXMgdHlwZSBg
dmFsdWUnIGFzCiAgIGRlZmluZWQgaW4gc3JjL3J1bnRpbWUvbWx2YWx1ZXMuaC4gIFRoZSBDIGZ1
bmN0aW9ucyBzaG91bGQgdXNlIHRoZQogICBtYWNyb2VzIGRlZmluZWQgdGhlcmUgdG8gYWNjZXNz
IGFuZCBwcm9kdWNlIE1MIHZhbHVlcy4gIFdoZW4KICAgd3JpdGluZyBhIEMgZnVuY3Rpb24sIHJl
bWVtYmVyIHRoYXQgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIG1heSBiZQogICBhY3RpdmF0ZWQgd2hl
bmV2ZXIgeW91IGFsbG9jYXRlIGFuIE1MIHZhbHVlLiAgQWxzbywgcmVtZW1iZXIgdGhhdAogICB0
aGUgZ2FyYmFnZSBjb2xsZWN0b3IgbWF5IG1vdmUgdmFsdWVzIGZyb20gdGhlIHlvdW5nIGhlYXAg
dG8gdGhlCiAgIG9sZCBvbmUsIHNvIHRoYXQgYSBDIHBvaW50ZXIgcG9pbnRpbmcgaW50byB0aGUg
TUwgaGVhcCBtYXkgbmVlZCB0bwogICBiZSB1cGRhdGVkLiBVc2UgdGhlIFB1c2hfcm9vdHMgYW5k
IFBvcF9yb290cyBtYWNyb2VzIHRvIGFjaGlldmUKICAgdGhpcy4KCiAgIFR5cGUgW2RsSGFuZGxl
XSBpcyB0aGUgdHlwZSBvZiBkeW5hbWljIGxpYnJhcnkgaGFuZGxlcy4gIEEgZHluYW1pYwogICBs
aWJyYXJ5IGhhbmRsZSBpcyBjcmVhdGVkIGJ5IG9wZW5pbmcgYSBkeW5hbWljIGxpYnJhcnkgdXNp
bmcKICAgZGxvcGVuLiAgVGhpcyB3aWxsIGxvYWQgdGhlIGxpYnJhcnkgaW50byB0aGUgcnVudGlt
ZSBzeXN0ZW0uICBUaGUKICAgZHluYW1pYyBsaWJyYXJ5IGhhbmRsZSBpcyB1c2VkIGZvciBhY2Nl
c3Npbmcgc3ltYm9scyBpbiB0aGF0CiAgIGxpYnJhcnkuICBUaGUgbGlicmFyeSBtYXkgYmUgY2xv
c2VkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJ1bnRpbWUKICAgc3lzdGVtIHVzaW5nIGRsY2xvc2Uu
ICAKCiAgIFRoZSBzYW1lIGxpYnJhcnkgbWF5IGJlIG9wZW5lZCBtb3JlIHRoYW4gb25jZSwgcmVz
dWx0aW5nIGluCiAgIGRpZmZlcmVudCBsaWJyYXJ5IGhhbmRsZXMuICBUaGUgcGh5c2ljYWwgbGli
cmFyeSB3aWxsIGJlIGxvYWRlZAogICBvbmx5IG9uY2UsIHRob3VnaCwgYW5kIHdpbGwgcmVtYWlu
IGluIHRoZSBydW50aW1lIHN5c3RlbSB1bnRpbCBhbGwKICAgaGFuZGxlcyB0byB0aGUgbGlicmFy
eSBoYXZlIGJlZW4gY2xvc2VkLgoKICAgVHlwZSBbc3ltSGFuZGxlXSBpcyB0aGUgdHlwZSBvZiBz
eW1ib2wgaGFuZGxlcy4gIEEgc3ltYm9sIGhhbmRsZSBpcwogICB1c2VkIHRvIGFjY2VzcyBhIHN5
bWJvbCAodmFyaWFibGUgb3IgZnVuY3Rpb24pIGluIHRoZSBkeW5hbWljCiAgIGxpYnJhcnksIHVz
aW5nIHRoZSBmdW5jdGlvbnMgdmFyLCBhcHAxLCBhcHAyLCAuLi4sIGFwcDUuICBUeXBlCiAgIHNh
ZmV0eSBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHByb2dyYW1tZXI7IHRoZSBydW50aW1l
IHN5c3RlbQogICBwZXJmb3JtcyBubyB0eXBlIGNoZWNraW5nLiAgSGVuY2UgeW91IGFyZSBhZHZp
c2VkIHRvIGFkZCBleHBsaWNpdAogICB0eXBlcyB3aGVuZXZlciB5b3UgZGVmaW5lIGFuIE1MIGZ1
bmN0aW9uIGluIHRlcm1zIG9mIHZhciwgYXBwMSwKICAgLi4uLCBhcHA1LgoKICAgSG93IHRvIGNy
ZWF0ZSBhIGR5bmFtaWNhbGx5IGxvYWRhYmxlIGxpYnJhcnkKICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQXNzdW1lIGZpbGUgInh5ei5jIiBjb250YWlu
cyB5b3VyIEMgZnVuY3Rpb25zLiAgCgogICBUbyBjb21waWxlIHh5ei5jIGludG8geHl6Lm8gYW5k
IHRoZW4gY3JlYXRlIGEgZHluYW1pYyBsaWJyYXJ5IAogICBsaWJ4eXouc28gZnJvbSB4eXoubzoK
CiAgICAgVW5kZXIgTGludXggYW5kIE9TRi8xIChEaWdpdGFsIFVuaXgpOgogICAgICAgIGdjYyAt
YyAtbyB4eXoubyB4eXouYyAKICAgICAgICBsZCAtc2hhcmVkIC1vIGxpYnh5ei5zbyB4eXoubwog
ICAgIFVuZGVyIFNvbGFyaXMgKGlnbm9yZSB0aGUgd2FybmluZ3MgZnJvbSBsZCk6CiAgICAgICAg
Z2NjIC1jIC1vIHh5ei5vIHh5ei5jIAogICAgICAgIGxkIC1HIC1CIHN5bWJvbGljIC16IG5vZGVm
cyAtbyBsaWJ4eXouc28geHl6Lm8KICAgICBVbmRlciBIUC1VWDoKICAgICAgICBnY2MgLWZQSUMg
LWMgLW8geHl6Lm8geHl6LmMgCiAgICAgICAgbGQgLWIgLUIgc3ltYm9saWMgLUUgLW8gbGlieHl6
LnNvIHh5ei5vCgogICBJZiAieHl6Lm8iIGRlcGVuZHMgb24gYW5vdGhlciBsaWJyYXJ5ICJsaWJh
YmMuYSIgeW91IG1heSBsaW5rIHRoZQogICByZXF1aXJlZCBmdW5jdGlvbnMgaW50byBsaWJ4eXou
c28ganVzdCBieSBhZGRpbmcgLWxhYmMgb3IgbGliYWJjLmEKICAgdG8gdGhlIGFib3ZlIGxpbmtl
ciBjb21tYW5kLgoKICAgSWYgInh5ei5vIiBkZXBlbmRzIG9uIGFub3RoZXIgZHluYW1pYyBsaWJy
YXJ5ICJsaWJhYmMuc28iIHlvdSBtYXkKICAgc3BlY2lmeSB0aGlzIGJ5IGFkZGluZyAtbGFiYyB0
byB0aGUgYWJvdmUgbGlua2VyIGNvbW1hbmQuICBUaGVuCiAgIER5bmxpYi5kbG9wZW4gd2lsbCBh
dXRvbWF0aWNhbGx5IGxvYWQgbGliYWJjLnNvIGJlZm9yZSBsaWJ4eXouc28uCgoKICAgW2Rsb3Bl
biB7IGxpYiwgZmxhZywgZ2xvYmFsIH1dIHdpbGwgbG9hZCBhbmQgb3BlbiB0aGUgbGlicmFyeSBp
bgogICBmaWxlIGBsaWInLCByZXR1cm5pbmcgYSBoYW5kbGUgdG8gaXQuICAKICAgICAgICBJZiBg
ZmxhZycgaXMgUlRMRF9MQVpZLCB0aGVuIG9ubHkgc3ltYm9sIHJlbG9jYXRpb25zIHdpbGwgYmUK
ICAgcGVyZm9ybWVkIG5vdywgYW5kIGZ1bmN0aW9uIHJlbG9jYXRpb25zIHdpbGwgYmUgcGVyZm9y
bWVkIHdoZW4gZWFjaAogICBmdW5jdGlvbiBpcyBpbnZva2VkIGZvciB0aGUgZmlyc3QgdGltZSAo
aWYgZXZlcikuICBUaGlzIGlzIHRoZQogICBub3JtYWwgc2l0dWF0aW9uLiAgSWYgYGZsYWcnIGlz
IFJUTERfTk9XLCB0aGVuIGFsbCByZWxvY2F0aW9ucyBhcmUKICAgcGVyZm9ybWVkIGltbWVkaWF0
ZWx5LCBhbHNvIGZvciBmdW5jdGlvbnMgdGhhdCB3aWxsIG5ldmVyIGJlCiAgIGNhbGxlZC4gIFRo
aXMgbWF5IHdhc3RlIHNvbWUgdGltZS4gIAogICAgICAgIElmIGBnbG9iYWwnIGlzIHRydWUsIHRo
ZW4gdGhlIGxpYnJhcnkncyBnbG9iYWwgc3ltYm9scyBhcmUKICAgbWFkZSBhdmFpbGFibGUgZm9y
IG90aGVyIGxpYnJhcmllcyBzdWJzZXF1ZW50bHkgbG9hZGVkLgogICAgICAgIExpYnJhcmllcyBh
cmUgdXN1YWxseSBzcGVjaWZpZWQganVzdCBieSBmaWxlIG5hbWUsIGxlYXZpbmcgb3V0CiAgIHRo
ZSBkaXJlY3RvcnkgcGF0aC4gIExpbnV4L1VuaXgtc3BlY2lmaWMgaW5mb3JtYXRpb246IExpYnJh
cmllcyBhcmUKICAgc2VhcmNoZWQgZm9yIGluIHRob3NlIGRpcmVjdG9yaWVzIG1lbnRpb25lZCBp
biBMRF9MSUJSQVJZX1BBVEgsCiAgIHRob3NlIG1lbnRpb25lZCBpbiAvZXRjL2xkLnNvLmNhY2hl
LCBpbiAvdXNyL2xpYiBhbmQgL2xpYi4gIChOb3RlCiAgIHRoYXQgL2V0Yy9sZC5zby5jYWNoZSBp
cyBjcmVhdGVkIGZyb20gL2V0Yy9sZC5zby5jb25mIGJ5IHJ1bm5pbmcKICAgbGRjb25maWc7IHlv
dSBtdXN0IGJlIHN1cGVydXNlciB0byBkbyB0aGF0KS4KCiAgIFtkbHN5bSBkbGggbmFtXSByZXR1
cm5zIGEgc3ltYm9sIGhhbmRsZSBmb3IgdGhlIHN5bWJvbCBjYWxsZWQgYG5hbScKICAgaW4gdGhl
IGxpYnJhcnkgYXNzb2NpYXRlZCB3aXRoIGRsaC4gIFJhaXNlcyBDbG9zZWQgaWYgZGxoIGhhcyBi
ZWVuCiAgIGNsb3NlZC4KCiAgIFtkbGNsb3NlIGRsaF0gY2xvc2VzIHRoZSBsaWJyYXJ5IGhhbmRs
ZSBhbmQgZGVhbGxvY2F0ZXMgdGhlIGxpYnJhcnkKICAgaWYgdGhlcmUgYXJlIG5vIG1vcmUgb3Bl
biBoYW5kbGVzIHRvIHRoaXMgbGlicmFyeS4KCiAgIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHJh
aXNlIENsb3NlZCBpZiB0aGUgYXNzb2NpYXRlZCBoYW5kbGUgaGFzCiAgIGJlZW4gY2xvc2VkLgoK
ICAgW3ZhciBzeW1dIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBDIHZhcmlhYmxlIGFzc29jaWF0
ZWQgd2l0aCBzeW0uCgogICBbYXBwMSBzeW0gYXJnMV0gYXBwbGllcyB0aGUgQyBmdW5jdGlvbiBh
c3NvY2lhdGVkIHdpdGggc3ltIHRvIGFyZzEuCgogICBbYXBwMiBzeW0gYXJnMSBhcmcyXSBhcHBs
aWVzIHRoZSBDIGZ1bmN0aW9uIGFzc29jaWF0ZWQgd2l0aCBzeW0gdG8KICAgKGFyZzEsIGFyZzIp
LgoKICAgW2FwcDMgc3ltIGFyZzEgYXJnMiBhcmczXSBhcHBsaWVzIHRoZSBDIGZ1bmN0aW9uIGFz
c29jaWF0ZWQgd2l0aAogICBzeW0gdG8gKGFyZzEsIGFyZzIsIGFyZzMpLgoKICAgW2FwcDQgc3lt
IGFyZzEgYXJnMiBhcmczIGFyZzRdIGFwcGxpZXMgdGhlIEMgZnVuY3Rpb24gYXNzb2NpYXRlZAog
ICB3aXRoIHN5bSB0byAoYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkuCgogICBbYXBwNSBzeW0gYXJn
MSBhcmcyIGFyZzMgYXJnNCBhcmc1XSBhcHBsaWVzIHRoZSBDIGZ1bmN0aW9uCiAgIGFzc29jaWF0
ZWQgd2l0aCBzeW0gdG8gKGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpLiAKKikK

--------------2B8EF7E73ACA9F8D30269B4A--