profile
viewpoint
Steve Purcell purcell France http://www.sanityinc.com/ I simplify and optimise software and human systems.

melpa/melpa 2340

Recipes and build machinery for the biggest Emacs package repo

magnars/multiple-cursors.el 1927

Multiple cursors for emacs.

bbatsov/emacs-lisp-style-guide 935

A community-driven Emacs Lisp style guide

eschulte/rinari 413

Rinari Is Not A Rails IDE (it is an Emacs minor mode for Rails)

jcollard/elm-mode 368

Elm mode for emacs

congomongo/congomongo 354

Clojure wrapper for the mongo-db java api

asok/projectile-rails 247

Emacs Rails mode based on projectile

nix-community/poetry2nix 246

Convert poetry projects to nix automagically [maintainer=@adisbladis]

nex3/haml-mode 142

Emacs mode for Haml.

jlr/rainbow-delimiters 111

Emacs rainbow delimiters mode

PullRequestReviewEvent

issue commentpurcell/envrc

When started from the systemd unit, process-environment defaults to buffer local.

Emacs isn't launched by systemd in a dir with a .envrc file, is it?

canatella

comment created time in 6 days

pull request commentmelpa/package-build

Various new features, mostly for use in recipes, and a bugfix

They appear in this order:

1. Add files from `docs/` to default files-spec.

Nice

2. Cosmetic changes to files-spec handling.

3. Fix how last-modified revision is calculated, taking files into account that are not put in the tarball but which matter nonetheless.  Support new `(:inputs ...)` form in the files-spec for that purpose.

What's the actual purpose of this one? I don't understand the use case, and feel like it could be avoided.

4. Add support for `org-texinfo-export-to-texinfo` 

Sounds like a good idea, but potentially dangerous if it allows any arbitrary code execution

and for specifying make targets and/or an arbitrary shell command in recipes. The unsafe code is restricted using bubblewrap, which obviously has to be installed on the server.

Again, use case? I've pushed back very strongly against supporting arbitrary build steps in recipes, at least for MELPA purposes. Even sandboxing such things isn't usually safe IMO.

5. Store revision description (e.g. `v0.3.7-68-ga19faa1c`) in archive.

Purpose?

6. Give recipe code access to version information using `PACKAGE_VERSION`, `PACKAGE_REVISION` and `PACKAGE_REVDESC` envvars.

7. When `package-build.el` is loaded and `<package-build--melpa-base>/config.el` exists, then load that too.

Same comment for these. I know I haven't been very involved recently, so I may be missing relevant discussions and context elsewhere.

tarsius

comment created time in 6 days

PullRequestReviewEvent

Pull request review commentmelpa/package-build

Various new features, mostly for use in recipes, and a bugfix

 still be renamed."   '("*.el" "*.el.in" "dir"     "*.info" "*.texi" "*.texinfo"     "doc/dir" "doc/*.info" "doc/*.texi" "doc/*.texinfo"+    "docs/dir" "docs/*.info" "docs/*.texi" "docs/*.texinfo"     (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el"))   "Default value for :files attribute in recipes.") -(defun package-build-expand-file-specs (dir specs &optional subdir allow-empty)-  "In DIR, expand SPECS, optionally under SUBDIR.-The result is a list of (SOURCE . DEST), where SOURCE is a source-file path and DEST is the relative path to which it should be copied.--If the resulting list is empty, an error will be reported.  Pass t-for ALLOW-EMPTY to prevent this error."-  (let ((default-directory dir)-        (prefix (if subdir (format "%s/" subdir) ""))-        (lst))-    (dolist (entry specs)-      (setq lst-            (if (consp entry)-                (if (eq :exclude (car entry))-                    (cl-nset-difference lst-                                        (package-build-expand-file-specs-                                         dir (cdr entry) nil t)-                                        :key #'car-                                        :test #'equal)-                  (nconc lst-                         (package-build-expand-file-specs-                          dir-                          (cdr entry)-                          (concat prefix (car entry))-                          t)))-              (nconc-               lst (mapcar (lambda (f)-                             (cons f-                                   (concat prefix-                                           (replace-regexp-in-string-                                            "\\.el\\.in\\'"-                                            ".el"-                                            (file-name-nondirectory f)))))-                           (file-expand-wildcards entry))))))-    (when (and (null lst) (not allow-empty))-      (error "No matching file(s) found in %s: %s" dir specs))-    lst))--(defun package-build--config-file-list (rcp)-  (let ((file-list (oref rcp files)))-    (cond-     ((null file-list)-      package-build-default-files-spec)-     ((eq :defaults (car file-list))-      (append package-build-default-files-spec (cdr file-list)))-     (t-      file-list))))--(defun package-build--expand-source-file-list (rcp)-  (mapcar #'car-          (package-build-expand-file-specs-           (package-recipe--working-tree rcp)-           (package-build--config-file-list rcp))))+(defun package-build-expand-files-spec (rcp &optional assert include-inputs)+  "Return an alist of files of package RCP to be included in tarball.++Each element has the form (SOURCE . DESTINATION), where SOURCE+is a file in the package's repository and DESTINATION is where+that file is placed in the package's tarball.++RCP is the package recipe as an object.  If the `files' slot of+RCP is non-nil, then that is used as the file specification.+Otherwise `package-build-default-files-spec' is used.++If optional ASSERT is non-nil, then raise an error if nil would+be returned.  If ASSERT and `files' are both non-nil and using+`files' results in the same set of files as the default spec,+then show a warning.++If optional INCLUDE-INPUTS is non-nil, then include files that+are not to be included in the tarball but which still effect the+outcome.  This is used when determining the last commit that+modified any relevant file.++A file specification SPEC is a list.  Its elements are processes+in order and can have the following form:++- :default++  If the very first element of the top-level SPEC is `:default',+  then that means to prepend the default file spec to the SPEC+  specified by the remaining elements.++- GLOB++  A string is glob-expanded to match zero or more files.  Matched+  files are copied to the top-level directory.++- (SUBDIRECTORY . SPEC)++  A list that begins with a string causes the files matched by+  the second and subsequent elements to be copied into the sub-+  directory specified by the first element.++- (:exclude . SPEC)++  A list that begins with `:exclude' causes files that were+  matched by earlier elements that are also matched by the second+  and subsequent elements of this list to be removed from the+  returned alist.  Files matched by later elements are not+  affected.++- (:input . SPEC)

This is :inputs elsewhere, right?

tarsius

comment created time in 6 days

pull request commentLnL7/nix-darwin

Set brewPrefix defaults according to platform

Thanks @LnL7

purcell

comment created time in 6 days

delete branch purcell/nix-darwin

delete branch : smarter-brew-prefix-default

delete time in 6 days

pull request commenttweag/asterius

placate mdbook

Probably the mdbook devs are very nice people, also working in the open, and when there's frustration (this is software, after all!) I might suggest it would be preferable to express it constructively. ❤️

nrnrnr

comment created time in 6 days

issue commentpurcell/envrc

When started from the systemd unit, process-environment defaults to buffer local.

Thanks, unfortunately I can't reproduce this locally because I don't have easy access to a machine with systemd, but I'm also a little confused about the exact steps, particularly in which buffer you're performing the local-variable-p test.

I'd also perhaps suggest adding (setq envrc-debug t) before enabling the global mode — the output in the *envrc-debug* might provide some clues.

canatella

comment created time in 7 days

Pull request review commentLnL7/nix-darwin

Set brewPrefix defaults according to platform

 in      brewPrefix = mkOption {       type = types.str;-      default = "/usr/local/bin";+      default = if pkgs.stdenv.hostPlatform.darwinArch == "aarch64" then "/opt/homebrew/bin" else "/usr/local/bin";

Done, but also happy to just use isAarch64 if you think that's preferable, ie. to keep compatibility with older nixpkgs.

purcell

comment created time in 7 days

PullRequestReviewEvent

push eventpurcell/nix-darwin

John Soo

commit sha e5ba780a764b209b3a1546d273e2162594668f48

nixpkgs: Allow functors. Replace builtins.isFunction with lib.isFunction, which allows functors.

view details

John Soo

commit sha cb1b24cff1e5fc682785952127aa530bf9322d29

eval-config: Add check parameter for compatibility with nixpkgs.

view details

Domen Kožar

commit sha 16c9343b250c8a2c6186de702a034e05b6d0d248

move installer into a separate file

view details

Daiderd Jordan

commit sha 6555c3622559f93751fcd4e97bd42993745a9577

Merge pull request #394 from jsoo1/allow-functors nixpkgs: Allow functors.

view details

Daiderd Jordan

commit sha 2296ffcd2194fda124e02ad267f032513472f53a

Merge pull request #397 from jsoo1/eval-config-check-param eval-config: Add check parameter for compatibility with nixpkgs.

view details

Daiderd Jordan

commit sha d3d7db7b86c8a2f3fa9925fe5d38d29025e7cb7f

Merge pull request #421 from domenkozar/modular-installer move installer into a separate file

view details

Daiderd Jordan

commit sha 9a388b6b56d079090ff8e9998e2d4a63e6886f01

bump stable tests to 21.05

view details

Steve Purcell

commit sha 7f68974ea4e86f8827e6bcc3d26ad356a1e4f505

Set brewPrefix defaults according to platform This allows homebrew support to work out of the box on Apple Silicon machines. See #322

view details

push time in 7 days

issue commentNixOS/nixpkgs

Cannot build `darwin.diskdev_cmds` on M1 macbook

Thanks @willcohen, really appreciate your work & help!

liji-canva

comment created time in 12 days

issue commentpurcell/package-lint

Honor prefix from package group i.e. defgroup definition

Yes, there is; the difference is that those symbols should not be used by 3rd party users. They are often internal for a reason; a subject of change due to development being in progress, or because they don't make sense to use in context outside some other functionality.

I'm not arguing the utility of private identifiers: just that the prefixes should be package- and package-- for public and private symbols respectively.

Re. your completion point, you're arguing that the symbols should go into different namespaces for the sake of more convenient completion in some cases, and I'd say that completion backends can/should easily be made to deal with that, e.g. by sorting foo-bar ahead of foo--bar-baz. Totally agree that completion gets annoying in some of these cases. In the end, all of this is a mess of compromises due to lack of first-class namespaces.

thierryvolpiatto

comment created time in 12 days

issue commentNixOS/nixpkgs

Cannot build `darwin.diskdev_cmds` on M1 macbook

I'll take the liberty of pinging @willcohen here, who was apparently fixing the Darwin build of zsh in the last day or so.

liji-canva

comment created time in 13 days

issue commentNixOS/nixpkgs

netcdf4: build fails on aarch64-darwin

Yes, I'll take a look if get chance. It's probably somewhat fiddly because doCheck is already false here: the homebrew formula (linked above) passes a bunch of different build flags to cmake to disable tests for various things, it doesn't look like an easy fix relative to my personal nix skill level.

Btw, that link I mentioned:

"Don't be too concerned about this. 90% of the problems we have with nc_test and nf_test are with the tests themselves. (Arrgh.)"

But that's from '97, lol.

purcell

comment created time in 13 days

issue commentNixOS/nixpkgs

netcdf4: build fails on aarch64-darwin

Googling turned up an (old) result from the GDAL devs saying that such test failures could be ignored, and since all the other tests are passing and the homebrew folks are disabling tests wholesale, perhaps an acceptable workaround is to disable tests on this platform+arch.

purcell

comment created time in 13 days

issue commentNixOS/nixpkgs

Cannot build `darwin.diskdev_cmds` on M1 macbook

This now seems to be preventing zsh from building on this platform! 😱

error: builder for '/nix/store/mhhnac2k3xjnb6jsndzj63gnd91wb1x4-diskdev_cmds-593.drv' failed with exit code 1;
       last 10 log lines:
       > /private/tmp/nix-build-diskdev_cmds-593.drv-0/diskdev_cmds-593/disklib/dkdisklabel.c:178:29: error: use of undeclared identifier 'MAXPARTITIONS'
       >     for (index = 0; index < MAXPARTITIONS; index++)
       >                             ^
       > 4 errors generated.
       >
       > ** BUILD FAILED **
       >
       > The following build commands failed:
       >     CompileC /private/tmp/nix-build-diskdev_cmds-593.drv-0/diskdev_cmds-593/Intermediates/diskdev_cmds.build/Release/libdisk.build/Objects-normal/arm64/dkdisklabel.o disklib/dkdisklabel.c normal arm64 c com.apple.compilers.llvm.clang.1_0.compiler
       > (1 failure)
       For full logs, run 'nix log /nix/store/mhhnac2k3xjnb6jsndzj63gnd91wb1x4-diskdev_cmds-593.drv'.
error: 1 dependencies of derivation '/nix/store/s1s0pxldwb8cmskc3wck2m8ag4sqx3rs-fdisk-diskdev_cmds-593.drv' failed to build
building '/nix/store/2yipyqxhdx1qqfy1jppjbh1r2hghsbvl-patches.drv'...
error: 1 dependencies of derivation '/nix/store/03g8mlz5vv9jrspnalyngzx36k2bw6cm-util-linux-1003.1-2008.drv' failed to build
error: 1 dependencies of derivation '/nix/store/ixixzd42gf75nypdjxyad35gvzxcwphd-zsh-5.8.drv' failed to build
error: 1 dependencies of derivation '/nix/store/mx70a1whvh3vi6337q62rd57ykab8lpb-zsh-5.8.drv' failed to build
error: 1 dependencies of derivation '/nix/store/i5rnnhxp1yr7pl867h6bhpk5rrlasqlm-applications.drv' failed to build
error: 1 dependencies of derivation '/nix/store/sr66byxazyb3cm8dbdq54wx8064vdccy-gitstatus-1.5.1.drv' failed to build
error: 1 dependencies of derivation '/nix/store/61smnpxjcwrsvyyy1qyvjlf4lkmfi6nm-zsh-syntax-highlighting-0.7.1.drv' failed to build
error: 1 dependencies of derivation '/nix/store/126vkphg3mai2y5wf8wj0vdh2mk5dqa5-darwin-system-22.05pre345162.81f05d871fa+darwin4.0000000.drv' failed to build
liji-canva

comment created time in 13 days

issue commentpurcell/package-lint

Honor prefix from package group i.e. defgroup definition

I can't really add more to what I wrote before: the risk of clashes is much higher if authors use short acronymic internal prefixes, plus it's harder to see where symbols came from. There's no fundamental difference in this regard between public and internal symbols, so why not just namespace everything consistently? The only counter-argument is convenience for the original author, which isn't a strong enough argument in our view.

thierryvolpiatto

comment created time in 14 days

issue commentNixOS/nixpkgs

netcdf4: build fails on aarch64-darwin

The one thing that Homebrew does do is disable the tests...

purcell

comment created time in 14 days

issue commentNixOS/nixpkgs

netcdf4: build fails on aarch64-darwin

Not stale, this still happens with latest nixpkgs, block gdal build.

purcell

comment created time in 14 days

pull request commentdholm/benchmark-init-el

Add version to define-obsolete-function-alias invocation

I don't have commit rights, sorry. But fwiw, this is an uncontroversial and safe change from my perspective.

kekeimiku

comment created time in 18 days

issue commentpurcell/envrc

Janky interaction with lsp-mode

Yeah, I started to have a poke around lsp-mode to investigate. I think this is more of an lsp-mode issue tbh, but I'd at least like to be able to point at the upstream code that should be fixed up.

Ralith

comment created time in 18 days

pull request commentLnL7/nix-darwin

Bundle with /opt/homebrew if brew exists in there

I filed #418 as a replacement for this PR, using approximately the code suggested by @malob.

antifuchs

comment created time in 20 days

PR opened LnL7/nix-darwin

Set brewPrefix defaults according to platform

This allows homebrew support to work out of the box on Apple Silicon machines.

See #322 for background discussion.

+1 -1

0 comment

1 changed file

pr created time in 20 days

create barnchpurcell/nix-darwin

branch : smarter-brew-prefix-default

created branch time in 20 days

fork purcell/nix-darwin

nix modules for darwin

fork in 20 days

issue commentpurcell/envrc

Janky interaction with lsp-mode

Is this for any specific language server?

Ralith

comment created time in 20 days

issue commentpurcell/envrc

Org Babel PATH

I was on the fence about including a fix for this directly in envrc.el, but in the end I've done exactly that. Thanks folks.

garrett-hopper

comment created time in 21 days

push eventpurcell/envrc

Steve Purcell

commit sha f0a056e6e2f461919523ea6be54b9921a2d83e0a

Also advise org-babel-eval, see #28

view details

Steve Purcell

commit sha 456c4100de41d2cb50813058a9e727b6e83c5d1e

Note about troubleshooting and use of inheritenv

view details

push time in 21 days

more