Update of Mac installation information for Monterey (v 12)

Open
#5,271 5 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
55/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Stale
Tech stack
r
Domain
documentation

Research direction

Open the data.table Wiki Installation page and review Step 2, Option 1 (LLVM), especially the Makevars specifications for Monterey and Homebrew. Compare that section with the working configuration in the issue, then update the instructions so installation from source and OpenMP setup are accurately documented; done means the page reflects the reported Monterey setup.

Written by the indexing model from the issue text.

Description

documentation install

I had to do a fresh install on a new M1 Mac running Monterey (v 12.0.1) today. I followed the instructions at https://github.com/Rdatatable/data.table/wiki/Installation (which were really helpful). However, I couldn't get data.table to install from source or recognize OpenMP.

It turns out that in Step 2, Option 1 (LLVM) the Makevars file specifications don't work with the current version of the Mac OS (Monterey 12.0.1) and the latest version of Homebrew (3.3.5) which installs into a new location. Below is the code that worked for me. I installed from source without a problem and OpenMP is recognized. I had to install gettext (brew install gettext). I had also installed gcc via Homebrew also, but I don't know if that was required. After this, I get OpenMP working with 5 threads, which is correct.

Hopefully this will be helpful to someone. Note that, despite the success with data.table, the fst package doesn't recognize OpenMP even after installing from source, so I can't guarantee that the code below will solve all related issues. I will file an issue in the fst repo separately.

HOMEBREW_LOC=/opt/homebrew
LLVM_LOC=$(HOMEBREW_LOC)/opt/llvm
CC=$(LLVM_LOC)/bin/clang -fopenmp
CXX=$(LLVM_LOC)/bin/clang++ -fopenmp
# -O3 should be faster than -O2 (default) level optimisation ..
CFLAGS=-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe
CXXFLAGS=-g -O3 -Wall -pedantic -std=c++11 -mtune=native -pipe
LDFLAGS=-L$(HOMEBREW_LOC)/opt/gettext/lib -L$(LLVM_LOC)/lib -Wl,-rpath,$(LLVM_LOC)/lib
CPPFLAGS=-I$(HOMEBREW_LOC)/opt/gettext/include -I$(LLVM_LOC)/include
Dominant language
R
Stars
3.9k
Forks
1.1k
Avg merge
14h 4m
Merged PRs (30d)
4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Rdatatable/data.table

All issues in Rdatatable/data.table

Similar issues

More R issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.