sling icon indicating copy to clipboard operation
sling copied to clipboard

Am I able to install sling on a Mac with M1 chip?

Open megamattc opened this issue 1 year ago • 8 comments

Hello,

I am trying to install and build the source code for sling on a Mac with M1 chip. This appears to be problematic for installation, as not only do I get a 'sudo: apt-get: command not found' error when running setup.sh, but also the buildall.sh script fails. Trying to install the Python features via

sudo -H pip3 install https://ringgaard.com/data/dist/sling-3.0.0-py3-none-linux_x86_64.whl

also fails.

Is there any alternative for me?

megamattc avatar Mar 28 '23 00:03 megamattc

I do remember having SLING up and running on Mac OSX with very few patches, and some of the patches are still in the code. There is a version of Bazel for OSX, but you will have to build the code from source.

The semantic parser depends on Myelin, which cannot easily be ported to M1, but the rest of the code should be fairly standard C++ code. There are a few places that assumes ELF binaries, but these might not be essential to you.

What parts of SLING are you planning on using?

ringgaard avatar Mar 28 '23 06:03 ringgaard

I wanted to build a semantic frame database based on another language (Akkadian) and then use it to do frame parsing on my own Akkadian corpus. I assumed one could use sling for any language, not just English.

Michael Ringgaard @.***> 于2023年3月28日周二 09:55写道:

I do remember having SLING up and running on Mac OSX with very few patches, and some of the patches https://github.com/ringgaard/sling/blob/master/sling/file/posix.cc#L184 are still in the code. There is a version of Bazel for OSX, but you will have to build the code from source.

The semantic parser depends on Myelin, which cannot easily be ported to M1, but the rest of the code should be fairly standard C++ code. There are a few places that assumes ELF binaries, but these might not be essential to you.

What parts of SLING are you planning on using?

— Reply to this email directly, view it on GitHub https://github.com/ringgaard/sling/issues/18#issuecomment-1486314019, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALEYQYAPT33DTDTZ44HQEFLW6KDNXANCNFSM6AAAAAAWJ3DQ4A . You are receiving this because you authored the thread.Message ID: @.***>

megamattc avatar Mar 28 '23 14:03 megamattc

You will need an annotated corpus in Akkadian to train a parser.

ringgaard avatar Mar 28 '23 21:03 ringgaard

Indeed, which I am prepared to do (hopefully in Inception) if it can be used to train the parser.

Michael Ringgaard @.***> 于2023年3月29日周三 00:12写道:

You will need an annotated corpus in Akkadian to train a parser.

— Reply to this email directly, view it on GitHub https://github.com/ringgaard/sling/issues/18#issuecomment-1487598565, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALEYQYE6T2PTVPJ5KQJMPADW6NH5FANCNFSM6AAAAAAWJ3DQ4A . You are receiving this because you authored the thread.Message ID: @.***>

megamattc avatar Mar 28 '23 21:03 megamattc

The base module appears to forcibly assume the availability of ELF architecture headers ( https://github.com/ringgaard/sling/blob/master/sling/base/symbolize.h#L20 )

PierceLBrooks avatar May 08 '23 04:05 PierceLBrooks

The crash dump module would need to be disabled/ported on Mac and Windows. There are a few other places that would need to be fixed as well. The data file embedding code used for internal file systems as well as a number of places in Myelin.

ringgaard avatar May 08 '23 07:05 ringgaard

@ringgaard , where is this data file embedding code located at inside the repository? Also, for Myelin, do you mean an overall translation of the x86 assembly generation logic to ARM would be necessary?

PierceLBrooks avatar May 08 '23 18:05 PierceLBrooks

@PierceLBrooks: SLING binaries can contain embedded data, which is typically used for internal file systems. These are used as resources for the web services, i.e. HTML, CSS, and JS files. These are specified using embed_data targets in the BUILD files, e.g.sling/nlp/kb/BUILD.

I don't think it is realistic to port Myelin to ARM, but a lot of functionality in SLING does not depend on Myelin. However, this semantic parser uses Myelin.

If there is enough interest in a MacOS version, I would be happy to try to make an OSX version of the SLING Python library. This version will have reduced functionality compared to the Linux version , but it might still be useful for some applications. I don't have access to an ARM-based Mac, but I can try to make an x64-based OSX version.

ringgaard avatar May 08 '23 19:05 ringgaard