Commit Graph

89 Commits

Author SHA1 Message Date
a47d3e0c6a fix(deps): add autoconf to Brewfile
On a fresh install of Big Sur with only the Xcode CLI tools installed,
autoconf is not available. Hence it needs to be installed from homebrew
instead.
2021-01-02 14:00:49 +00:00
5a61a72a73 chore(release): 0.4.3 0.4.3 2020-12-28 11:47:11 +00:00
9cdf67e71b Merge pull request #26 from jimeh/fix-big-sur
fix(big-sur): resolve issues with building and native-comp on Big Sur
2020-12-28 11:42:45 +00:00
946856e9c2 fix(big-sur): add Xcode CLI tools lib directory to runtime LIBRARY_PATH 2020-12-25 15:59:53 +00:00
claford-v-lawrence
2247158051 fix(big-sur): added support for building on Big Sur
Curtsy of https://apple.stackexchange.com/questions/408999/gfortran-compiler-error-on-mac-os-big-sur
2020-12-25 15:59:47 +00:00
4a7c507858 chore(release): 0.4.2 0.4.2 2020-12-09 23:58:00 +00:00
884f1607f6 fix(cli): avoid error if --git-sha is used without a branch/tag/sha argument
Fixes #21
2020-12-09 23:57:51 +00:00
c7daa1350b fix(native_comp): update env setup patch for recent changes to comp.el 2020-12-09 23:35:23 +00:00
9223ff8e28 chore(release): 0.4.1 0.4.1 2020-10-29 10:38:07 +00:00
70bf6b05d5 feat(native_comp): remove patch based on feature/native-comp-macos-fixes branch
Based on comparing two Emacs.app builds, one with and one without the
patch, it seems to have no effect at all on the contents of Emacs.app.
2020-10-29 10:35:18 +00:00
8936f4762a docs(readme): add CLI usage instructions
Resolves #16
2020-10-04 16:33:25 +01:00
be8e04e7a5 chore(release): 0.4.0 0.4.0 2020-10-04 16:15:11 +01:00
aadf32cbbe Merge pull request #17 from jimeh/support-libgccjit-homebrew-formula
feat(native_comp)!: use new libgccjit Homebrew formula
2020-10-04 16:14:38 +01:00
d8bbcb72b3 feat(native_comp)!: use new libgccjit Homebrew formula
The new libgccjit Homebrew formula negates the need to install a custom
patched gcc formula from source to get libgccjit.

As it's a separate formula, the file structure is a bit different
though, requiring some changes to the script. This means it is no longer
compatible libgccjit from the custom gcc formula. If you already have
the custom patched gcc formula installed, you can replace it with the
standard gcc formula by running:

    brew reinstall gcc

In theory though, it should work even with the patched gcc formula, as
long as libgccjit is installed too. But it will probably produce a
Emacs.app that's around 35MB larger than it needs to, thanks to
duplicating the libgccjit.so.0.0.1 file within the final application.

BREAKING CHANGE: Standard Homewbrew `gcc` and `libgccjit` formula are now required for native-comp, instead of the custom patched gcc formula.
2020-10-04 15:12:41 +01:00
d6f11b5459 docs(readme): update usage section 2020-09-23 00:49:14 +01:00
09e67381cb chore(release): 0.3.0 0.3.0 2020-09-22 20:29:06 +01:00
d21ccad3e4 docs(readme): update custom eln cache location instructions
Recent builds seem to pre-allocate empty `*.eln.tmp` files rather than
empty `*.eln` files. So the issue of empty `*.eln` files preventing
Emacs from starting should no longer be an issue.

I'm leaving #3 open for now, in case anyone is using older git SHAs from
the list of known good commits in #6.
2020-09-22 20:28:49 +01:00
036d2a82d9 Merge pull request #15 from jimeh/setup-library-path-with-elisp
feat(native_comp)!: use elisp patch instead of launcher script to set LIBRARY_PATH
2020-09-22 20:06:23 +01:00
111cb64993 feat(native_comp)!: use elisp patch instead of launcher script to set LIBRARY_PATH
Replace the launcher script with a emacs-lisp patch to `comp.el` which
sets the `LIBRARY_PATH` environment variable to point at the embedded
GCC/libgccjit.

This fixes issues related to the launcher script on macOS 10.15 and
later.

Fixes #14
BREAKING CHANGE: `--[no-]launcher` option is deprecated, as launcher script is no longer used.
2020-09-22 20:03:17 +01:00
fe3af6c4c9 chore(release): 0.2.0 0.2.0 2020-09-20 14:31:54 +01:00
7ca3f52819 chore: add Makefile with new_version target 2020-09-20 14:31:12 +01:00
0ab94da153 feat(native_comp)!: add support for NATIVE_FULL_AOT, replacing NATIVE_FAST_BOOT
The feature/native-comp branch no longer supports the use of the
NATIVE_FAST_BOOT environment variable. It has been replaced by
NATIVE_FULL_AOT (Ahead of Time compilation).

As the new environment variable's value is opposite of the old one, it
is disabled by default.

Under the hood, the --[no-]native-full-aot option still sets the
NATIVE_FAST_BOOT environment variable as needed to ensure it works as
expected when producing builds against older commits, and also newer
ones.

BREAKING CHANGE: Deprecate `--[no-]native-fast-boot` option in favor of `--[no-]native-full-aot`
2020-09-20 14:27:50 +01:00
01d27c0891 chore(rubocop): update .rubocop.yml 2020-09-20 14:04:49 +01:00
5341728b41 chore(release): 0.1.1 0.1.1 2020-09-19 18:45:02 +01:00
f8515ad3a4 chore(libs): simplify embedded libs folder path 2020-09-19 18:43:21 +01:00
c89d0a0b73 fix(internal): improve macOS version detection
Turns out that `sw_vers -productVersion` doesn't always return a version
string with a `MAJOR.MINOR.PATCH` format, but can also just return two
digits, like `11.0` on the current beta of macOS Big Sur.

Fixes: #13
2020-09-10 20:33:18 +01:00
f28ed683e2 chore(release): 0.1.0 0.1.0 2020-09-05 05:15:12 +01:00
42a4c21266 chore(version): add .versionrc.js configuration file 2020-09-05 05:14:39 +01:00
8aeb3ba065 Merge pull request #10 from jimeh/embedd-gcc
feat(native_comp): embedd gcc/libgccjit into Emacs.app
2020-09-05 05:12:57 +01:00
d30b45fb2e fix(svg): disable rsvg by default
When SVG support is enabled via librsvg, launching builds of Emacs 27.1
or later from the Finder into GUI mode will crash Emacs if the fancy
startup screen is used. This crash has been observed with librsvg
2.46.4, 2.48.7 and 2.48.8.

Hence SVG image support is now disabled by default. Should you need it,
you will need to disable the startup screen to avoid Emacs crashing, by
putting this in your init.el:

    (setq inhibit-startup-screen t)

The cause of the issue seems to be the `image-size` function as called
from `use-fancy-splash-screens-p`.
2020-09-05 05:11:42 +01:00
9d264357df feat(native_comp): support renaming of eln-cache director to native-lisp 2020-09-05 04:48:32 +01:00
583f22a360 feat(patches): add support for optional no-titlebar and no-refocus-frame patches 2020-09-05 04:48:32 +01:00
83289acd33 feat(native_comp): embedd gcc/libgccjit into Emacs.app
The solution to get libgccjit properly working, and embedded in
Emacs.app included:

- The contents of GCC's lib folder (`/usr/local/opt/gcc/lib`) is copied
  into the `Contents/MacOS/lib-<arch>-<os_version>` folder.
- Setting `LIBRARY_PATH` environment variable to correct GCC lib
  folders within Emacs.app. This is done through a bash launcher script
  which replaces the regular `Contents/MacOS/Emacs` executable. The main
  Emacs executable itself is named `Emacs-bin` now instead, so anything
  that depends on the exact process name will need updating.
- The launcher script also adds `Content/MacOS/bin` and
  `Content/MacOS/libexec` folders to the PATH environment variable, to
  so ensure binary tools packaged into Emacs itself are available. This
  is done even when not doing a native-comp build. The launcher script
  skips setting LIBRARY_PATH if it's not a native-comp build.

This should hopefully resolve both #5 and #7.
2020-09-05 04:48:32 +01:00
8e459ce00d fix(requirements): make script compatible with Ruby 2.3.0 and later 2020-09-05 04:48:32 +01:00
5ffffb7c77 refactor(internals): extract and DRY up a number of things 2020-09-05 04:48:30 +01:00
3d6e6fa158 Merge pull request #11 from bramadams/master
Fixing missing cast for Ruby 2.5.1.
2020-09-05 03:52:43 +01:00
BA
61bba288c5 Fixing missing cast for Ruby 2.5.1. 2020-09-04 22:36:46 -04:00
b07fe4bf2b chore(native_comp): add GNU-based tools to PATH in patched GCC helper script
An attempt at resolving #8 by getting the GCC compilation step to have
GNU-based `sed` and other commands available. At the very least, I'm
assuming this won't break things. Fingers crossed.
2020-08-30 15:25:46 +01:00
d1e6ff5c76 chore(tools): ensure various GNU tools are used from brew 2020-08-27 18:48:30 +01:00
da2fcb0440 feat(native_comp): add fix based on feature/native-comp-macos-fixes branch
The `feature/native-comp-macos-fixes` has seemingly been updated about
once a week with latest changes from `feature/native-comp`.

As the fix in the branch is desired, a custom function that applies the
same kind of fix has been added. This should be more reliable than just
downloading the git diff as a patch.
2020-08-25 01:24:00 +01:00
d944a64484 feat(deps): add mailutils to Brewfile so Emacs can use GNU Mailutils 2020-08-21 23:35:42 +01:00
f2ee7a12c3 docs(readme): Update usage help info 2020-08-20 21:44:19 +01:00
89ab39b0b8 docs(readme): add link to known good native-comp commits issue 2020-08-20 21:17:57 +01:00
eebda4db42 feat(ref): allow overriding git SHA
This allows building old commits for a specified branch, as if you had
built it when the specified commit was the latest commit on the branch.
2020-08-20 21:09:32 +01:00
9dab9199d1 docs(readme): track issues with native-comp as proper GitHub issues 2020-08-20 21:05:55 +01:00
a651715dd2 docs(readme): minor tweaks and additions 2020-08-20 00:58:44 +01:00
b46e5aa7cb fix(native_comp): ensure builds work after recent changes to eln cache locations
As detailed in Update 11 (https://akrl.sdf.org/gccemacs.html#org4b11ea1)
the `*.eln` cache location has been changed, which initially broke
builds.

This fixes those issues, and also simplifies usage of the build-script
by:

- Auto-detecting native-comp support if not explicitly enabled/disabled
  with CLI flags.
- Auto-detecting number of logical CPU cores on your machine, and
  defaulting the `-j` option to said number to ensure fast builds.
- Enable XWidgets by default, only skip if `configure` script doesn't
  support it (Emacs 26.x and earlier).
2020-08-19 00:58:31 +01:00
a8d4db284c fix(native_comp): Improve ./install-patched-gcc helper
Instead of just installing a pre-patched gcc formula, copy the local
formula from Homebrew and apply a patch to it, before then installing
it. This should be a lot more future-proof.
2020-08-18 02:20:18 +01:00
f7b0c16db8 docs(readme): Update readme with native-comp info and latest "status" 2020-08-18 01:50:55 +01:00
fe460a824e feat(native_comp): Add support for --with-nativecomp
See https://akrl.sdf.org/gccemacs.html for more info.
2020-08-18 01:49:24 +01:00