|Version 3 (modified by tene, 6 years ago)|
* Until case mangling issues in Parrot are fixed, you must use an all-lowercase HLL name (someone plz add TT#)
To provide other languages access to libraries written in your language, you must add a 'load_library' method to your compiler object. This method must accept one positional parameter, a list (or ::-delimited string?) representing the name of the library to load, and an arbitrary quantity of other named parameters (:named :slurpy), which it is (currently) free to ignore. This method should return a hash containing the following attributes:
symbols: # The only required attribute DEFAULT: # a map of names to symbols ALL: # a map of names to symbols # other named sets of symbols can go here... # the only required items are DEFAULT and ALL # You can include other additional information filename: "/path/to/filename.ext" version: "v1.0.1" author: "adent"
For existing implementations of this, look at runtime/parrot/languages/parrot/parrot.pir in the Parrot repository and perl6.pir in the rakudo repository.