profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/thomasjm/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Tom McLaughlin thomasjm @codedownio Mountain View, CA codedown.io

clojupyter/clojupyter 685

a Jupyter kernel for Clojure

bgwines/symbol-navigation-hydra 12

The Spacemacs Auto-Highlight Symbol Hydra, ported over to vanilla Emacs

codedownio/sandwich 5

Yet another test framework for Haskell.

codedownio/hspec-webdriver-toolkit 1

Tools for awesome Haskell Selenium testing

thomasjm/chordnet 1

ML project to identify chords in audio files

alexi/sia 0

Contextual combinatorial bandit

codedownio/codemirror-compose-change 0

Compose two sequential CodeMirror changes

codedownio/hs-webdriver 0

A Haskell client for the Selenium WebDriver protocol.

codedownio/remarkable 0

Markdown parser, done right. Commonmark support, extensions, syntax plugins, high speed - all in one. Gulp and metalsmith plugins are also available.

startedthomasjm/julia2nix

started time in a day

issue closedthomasjm/julia2nix

Jupyter support?

Hello - it seems like this is an issue that's possibly been solved already, but I can't get this to work with Jupyter. If I add IJulia to my Project.toml, run julia2nix, then start Julia (with the appropriate build, so as per the instructions), then

julia> using IJulia
julia> notebook()
install Jupyter via conda, y/n? [y]: y
[ Info: Downloading miniconda installer ...
[ Info: Installing miniconda ...
PREFIX=/home/chris/.julia/conda/3
Unpacking payload ...
/home/chris/.julia/conda/3/installer.sh: line 412: /home/chris/.julia/conda/3/conda.exe: No such file or directory
/home/chris/.julia/conda/3/installer.sh: line 414: /home/chris/.julia/conda/3/conda.exe: No such file or directory
ERROR: failed process: Process(`/home/chris/.julia/conda/3/installer.sh -b -f -p /home/chris/.julia/conda/3`, ProcessExited(1)) [1]

It seems like I may need to add Jupyter as a build input to my default.nix or one of the other nix files, so that Conda doesn't try to build it in my home directory, but I'm not proficient enough to figure out exactly where.

Thanks!

closed time in a day

harris-chris

issue commentthomasjm/julia2nix

Jupyter support?

Thanks - that actually works great and is kind of a game-changer for me with Julia and Nix (previously I have been running it in a docker container).

harris-chris

comment created time in a day

issue commentthomasjm/julia2nix

Jupyter support?

Thanks, Thomas. That doesn't seem to work as-is. The crucial bit seems to be in https://github.com/JuliaLang/IJulia.jl/blob/master/src/jupyter.jl - the find_jupyter_subcommand function seems to have a series of fallbacks on where to look for Jupyter. It's late evening here but I'll have a look at it tomorrow and see if I can figure it out.

harris-chris

comment created time in 2 days

issue openedthomasjm/julia2nix

Jupyter support?

Hello - it seems like this is an issue that's possibly been solved already, but I can't get this to work with Jupyter. If I add IJulia to my Project.toml, run julia2nix, then start Julia (with the appropriate build, so as per the instructions), then

julia> using IJulia
julia> notebook()
install Jupyter via conda, y/n? [y]: y
[ Info: Downloading miniconda installer ...
[ Info: Installing miniconda ...
PREFIX=/home/chris/.julia/conda/3
Unpacking payload ...
/home/chris/.julia/conda/3/installer.sh: line 412: /home/chris/.julia/conda/3/conda.exe: No such file or directory
/home/chris/.julia/conda/3/installer.sh: line 414: /home/chris/.julia/conda/3/conda.exe: No such file or directory
ERROR: failed process: Process(`/home/chris/.julia/conda/3/installer.sh -b -f -p /home/chris/.julia/conda/3`, ProcessExited(1)) [1]

It seems like I may need to add Jupyter as a build input to my default.nix or one of the other nix files, so that Conda doesn't try to build it in my home directory, but I'm not proficient enough to figure out exactly where.

Thanks!

created time in 2 days

startedthomasjm/julia2nix

started time in 17 days

startedthomasjm/julia2nix

started time in 19 days

fork LightAndLight/julia2nix

Generate Nix expressions for building a Julia depot with a set of packages

fork in 19 days

issue commentthomasjm/julia2nix

Future of Pkg.jl

Also thought you'd find this interesting: https://github.com/JuliaLang/Pkg.jl/issues/2515

colinxs

comment created time in 22 days

issue openedthomasjm/julia2nix

Future of Pkg.jl

I stumbled across some changes in 1.6 and later versions of Pkg.jl that might break julia2nix or at least limit its function. Prior to 1.6, everything in the Artifacts.toml was statically defined. Now there is an optional file located at project_root/.pkg/select_artifacts that can generate an arbitrary Artifacts.toml. The description is here and relevant code here.

created time in 22 days

issue commentthomasjm/julia2nix

Make "precompile" do the right thing on older Julia versions

One thing that occurs is that all the generated .ji files contain absolute paths to the build environment.

This is a similar problem to embedded paths in binaries or shebangs but we have tools like autopatchelf for those (I did write a script to patch those paths but figured it wasn't worth the effort, especially with parallel precompilation in Julia > 1.6).

If you're curious go open up some of the .ji files after building and you'll see those paths.

On Fri, Apr 16, 2021, 15:35 Tom McLaughlin ***@***.***> wrote:

I think so...it speeds up the first use of the package. Platform dependency shouldn't be an issue because Nix already segregates its derivations by platform I think (doesn't the platform appear in the derivation somewhere and get hashed along with it?) If you can show me an example of an undesirable embedded path or system detail we can look at it--I tend to think of those as problems to be solved on the Julia side. In any case Julia is pretty conservative about using precompiled files, if they smell wrong to Julia (via timestamps etc.) it tends to ignore them.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/thomasjm/julia2nix/issues/1#issuecomment-821576112, or unsubscribe https://github.com/notifications/unsubscribe-auth/AELLS2A7VA7XCG26TIVVAYLTJCUSZANCNFSM4UG4QL2Q .

thomasjm

comment created time in 22 days

issue commentthomasjm/julia2nix

Make "precompile" do the right thing on older Julia versions

Somewhat related, does it even make sense to include the precompile cache in the derivation? AFAIK those files are platform dependent and contain embedded absolute paths and system details.

thomasjm

comment created time in 22 days

issue openedthomasjm/julia2nix

Shallow clone for registry

A deep clone of the General registry can take quite some time. I think its safe to do a shallow clone as follows:

    repo = Repo.clone_from(general_repo_url, local_registry_path, depth=1)

created time in 23 days

PR opened codedownio/sandwich

Bump react-dev-utils from 10.2.1 to 11.0.4 in /sandwich-site

Bumps react-dev-utils from 10.2.1 to 11.0.4. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/facebook/create-react-app/commits/HEAD/packages/react-dev-utils">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+1404 -1059

0 comment

1 changed file

pr created time in 23 days

PR opened codedownio/sandwich

Bump immer from 1.10.0 to 8.0.1 in /sandwich-site

Bumps immer from 1.10.0 to 8.0.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/immerjs/immer/releases">immer's releases</a>.</em></p> <blockquote> <h2>v8.0.1</h2> <h2><a href="https://github.com/immerjs/immer/compare/v8.0.0...v8.0.1">8.0.1</a> (2021-01-20)</h2> <h3>Bug Fixes</h3> <ul> <li>Fixed security issue <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/738">#738</a>: prototype pollution possible when applying patches CVE-2020-28477 (<a href="https://github.com/immerjs/immer/commit/da2bd4fa0edc9335543089fe7d290d6a346c40c5">da2bd4f</a>)</li> </ul> <h2>v8.0.0</h2> <h1><a href="https://github.com/immerjs/immer/compare/v7.0.15...v8.0.0">8.0.0</a> (2020-11-17)</h1> <h3>feature</h3> <ul> <li>Always freeze by default (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/702">#702</a>) (<a href="https://github.com/immerjs/immer/commit/a406c8f1e524efabfe641f4eaf742b444e501cc0">a406c8f</a>)</li> </ul> <h3>BREAKING CHANGES</h3> <ul> <li>always freeze by default, even in production mode. Use <code>setAutoFreeze(process.env.NODE_ENV !== 'production')</code> for the old behavior. See <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/687#issuecomment-728881754">immerjs/immer#687</a> for the rationale. Fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/649">#649</a>, <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/681">#681</a>, <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/687">#687</a></li> </ul> <h2>v7.0.15</h2> <h2><a href="https://github.com/immerjs/immer/compare/v7.0.14...v7.0.15">7.0.15</a> (2020-11-17)</h2> <h3>Bug Fixes</h3> <ul> <li>make plugin loading idempotent, fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/692">#692</a> (<a href="https://github.com/immerjs/immer/commit/754331bb0d0a24ca56399ac7a778f5e87be1c236">754331b</a>)</li> </ul> <h2>v7.0.14</h2> <h2><a href="https://github.com/immerjs/immer/compare/v7.0.13...v7.0.14">7.0.14</a> (2020-10-20)</h2> <h3>Bug Fixes</h3> <ul> <li>build issue. Fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/685">#685</a> (?) (<a href="https://github.com/immerjs/immer/commit/9007be0a68e8c521d23657729036d2eee9f5df83">9007be0</a>)</li> </ul> <h2>v7.0.13</h2> <h2><a href="https://github.com/immerjs/immer/compare/v7.0.12...v7.0.13">7.0.13</a> (2020-10-20)</h2> <h3>Bug Fixes</h3> <ul> <li>reconcile if the original value is assigned after creating a draft. Fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/659">#659</a> (<a href="https://github.com/immerjs/immer/commit/c0e6749e8df3e20d880d61b726b1395167ba2088">c0e6749</a>)</li> </ul> <h2>v7.0.12</h2> <h2><a href="https://github.com/immerjs/immer/compare/v7.0.11...v7.0.12">7.0.12</a> (2020-10-20)</h2> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/immerjs/immer/commit/da2bd4fa0edc9335543089fe7d290d6a346c40c5"><code>da2bd4f</code></a> fix: Fixed security issue <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/738">#738</a>: prototype pollution possible when applying pa...</li> <li><a href="https://github.com/immerjs/immer/commit/d75de7031c3430fbcb76fa7b90cf681ba5042df9"><code>d75de70</code></a> chore: fix Buffer deprecation warning in test (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/706">#706</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/8fbf93cddb27fe96891b7a7f3218742881dfaae1"><code>8fbf93c</code></a> docs: Add referential equality to pitfalls (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/731">#731</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/c21a2ef6d78b683fa6d4bd62ba465cb3542e8c03"><code>c21a2ef</code></a> docs: Update current.md (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/728">#728</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/211314c0b3b125bd4acf15f22dfb49eee9fb9729"><code>211314c</code></a> docs: add cool-store into built-with.md (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/724">#724</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/e8fd805740f1b0ae788470b93615e51e9bc887a3"><code>e8fd805</code></a> chore(tests): use UTC date string in tests to be timezone independent (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/705">#705</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/fe8f5891d4fdd35107ebb252df85332fd8c53543"><code>fe8f589</code></a> chore(comments): update comments (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/727">#727</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/d8121d66a5546ab6939c64c23f5486e522c5ceb0"><code>d8121d6</code></a> chore(docs): Fix typo in pitfalls.md (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/729">#729</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/5379cddef95a237fd25b450e629054b3e02f95ee"><code>5379cdd</code></a> chore(docs): Update example-reducer.md (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/734">#734</a>)</li> <li><a href="https://github.com/immerjs/immer/commit/d3908e12dfb118d44e54f8a2f44f8c6862fad940"><code>d3908e1</code></a> chore(deps): bump dot-prop from 4.2.0 to 4.2.1 in /website (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/735">#735</a>)</li> <li>Additional commits viewable in <a href="https://github.com/immerjs/immer/compare/v1.10.0...v8.0.1">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+1380 -1038

0 comment

1 changed file

pr created time in 23 days

issue commentthomasjm/julia2nix

Learning from Rust

Although I think that assumes there's only one commit with the corresponding tree hash?

colinxs

comment created time in a month

issue commentthomasjm/julia2nix

Learning from Rust

I think builtins.fetchGit accepting a tree hash makes a lot of sense. The fact that it accepts rev instead is kind of weird since someone could rebase a branch and yield the same commit sha but a different tree hash (which is why Pkg uses the tree hash in the first place). Would you like to open an issue for that?

Until then, could we convert the tree hash to a revision? There's probably a better way that doesn't require so much parsing but:

git log --pretty=raw | grep -B 1 <tree-hash> | awk 'NR==1{print $2}'

will print out the commit sha.

colinxs

comment created time in a month

issue commentthomasjm/julia2nix

Learning from Rust

Ah thanks for pointing out #3, I should've checked first :)

I'm not an expert, but import-cargo is only 116 LOC so hopefully not hard to grok. I think the general idea of import-cargo/naersk, however, is that the Cargo.lock contains the checksums needed to create a Julia package as a fixed-output derivation (and notably without having to specify a cargoSha256 like the current nixpkgs.rustPlatform.builtRustPackage, which is something that seems to be frowned upon, is difficult to work with, and can be avoided).

We have a similar story with the Manifest.toml with the exception that we have git tree sha's instead of checksums. I'm not entirely sure what the Cargo checksum is of, however. The package source or a tarball of it? checksum of the binary?

colinxs

comment created time in a month

issue openedthomasjm/julia2nix

Learning from Rust

Awesome project! I just came across this.

I was wondering if you've looked at the various Rust packaging methods that don't require generating Nix representations of Project.toml/Manifest.toml like naersk and import-cargo. It seems like something similar could be done given the similarity between Project.toml/Manifest.toml & Cargo.toml/Cargo.lock.

Also, if you're interested there's now a #nix channel in the Julia Slack if you're interested

created time in a month

startedthomasjm/julia2nix

started time in a month

issue closedhaskell-fswatch/hfsnotify

Fire event variety "CloseWrite"

I noticed that http://unisonweb.org 's UCM tool does not re-read my scratch file when entering it and then doing a save. I noticed a similar comment (although talking about WSL) https://github.com/haskell-fswatch/hfsnotify/issues/74#issuecomment-386076622 but I'm on linux and I would like this event to be observable, so that I could fix UCM downstream.

Any reason why this event is not listed in https://github.com/haskell-fswatch/hfsnotify/blob/master/src/System/FSNotify/Linux.hs#L84 ?

In any case, thanks for reading :)

EDIT: I use -e close_write instead of -e modify when writing inotifywait shell scripts and it usually works better; it basically subsumes modify behavior and does what you expect.

closed time in 2 months

docteurklein

issue commenthaskell-fswatch/hfsnotify

Fire event variety "CloseWrite"

thanks a lot :)

docteurklein

comment created time in 2 months

startedthomasjm/julia2nix

started time in 2 months

Pull request review commentcodedownio/aeson-typescript

Allow to export types easily

 instance IsString (TSString a) where  -- * Formatting options +data ExportMode =+  ExportEach+  -- ^ Prefix every declaration with the "export" keyword (suitable for putting in a TypeScripe module)+  | ExportNone+  -- ^ No exporting (suitable for putting in a .d.ts file)+ data FormattingOptions = FormattingOptions   { numIndentSpaces       :: Int   -- ^ How many spaces to indent TypeScript blocks   , interfaceNameModifier :: String -> String   -- ^ Function applied to generated interface names   , typeNameModifier :: String -> String   -- ^ Function applied to generated type names+  , exportTypes :: ExportMode

my bad!

NinjaTrappeur

comment created time in 2 months

pull request commentcodedownio/aeson-typescript

Allow to export types easily

My apologies for the delay, I missed the notification.

NinjaTrappeur

comment created time in 2 months

startedthomasjm/sicp_markdown

started time in 2 months

PR opened thomasjm/julia2nix

Add a Gitter chat badge to README.md

thomasjm/julia2nix now has a Chat Room on Gitter

@thomasjm has just created a chat room. You can visit it here: https://gitter.im/julia2nix/community.

This pull-request adds this badge to your README.md:

Gitter

If my aim is a little off, please let me know.

Happy chatting.

PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

+2 -0

0 comment

1 changed file

pr created time in 2 months

fork gitter-badger/julia2nix

Generate Nix expressions for building a Julia depot with a set of packages

fork in 2 months