[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#45972] [PATCH] Add julia-json with dependencies
From: |
Nicolò Balzarotti |
Subject: |
[bug#45972] [PATCH] Add julia-json with dependencies |
Date: |
Thu, 28 Jan 2021 01:30:24 +0100 |
> My understanding is that the first patch expects the source file name to
> match the Julia package name.
That's correct, we use it in the build system.
> IMO, that shouldn’t be the case.
At first I wasn't sure it was ok, but it went on through the revision
process when I submitted the first package (Compat) so I tought it was fine.
> Can we either extract the Julia package name from metadata that’s in
> the package itself (?), or otherwise pass it to all the phases via
> ‘julia-build-system’?
Sure, I'd just read it from Package.toml (nowadays almost all the
packages have this file, and for when it's missing we also have the
julia-create-package-toml procedure that creates it).
The file is toml, but I don't see a toml parser in guix. So, I'd use a
function like the following:
#+begin_src scheme
(define (package.toml->name file)
(call-with-input-file file
(lambda (in)
(let loop ((line (read-line in 'concat)))
(if (eof-object? line)
#f ;What to do?
(let ((m (string-match "name\\s*=\\s*\"(.*)\"" line)))
(if m (match:substring m 1)
(loop (read-line in 'concat)))))))))
#+end_src
As you can see this is very minimal/naive (takes the first name = ""
occurrence, does not even consider comments, for which I'd add a
negative lookahead "^(?!#)" which I can't get to work with ice-9 regex),
but tested on a few packages it working. I don't know what to do when
the match is not found (since it's something that might happen only
during development, the #f fallback should not be too bad, btw, as the
build will fail).
The other way I think this is easily solvable is by asking julia
directly, by reading the output of:
(invoke-julia "using Pkg; Pkg.TOML.parsefile("Project.toml")["name"] |>
println")
doing something like cargo's manifest-target procedure does. But it'd
go the other way if it's ok.
Let me know! Once decided, I'll submit the updated patches
>
> Sorry for not noticing earlier!
>
np and thanks again!
- [bug#45972] [PATCH] Add julia-json with dependencies, Nicolò Balzarotti, 2021/01/18
- [bug#45972] [PATCH] Add julia-json with dependencies, Ludovic Courtès, 2021/01/26
- [bug#45972] Julia importer?, zimoun, 2021/01/30
- [bug#45972] Julia importer?, Nicolò Balzarotti, 2021/01/30
- [bug#45972] Julia importer?, Nicolò Balzarotti, 2021/01/30
- [bug#45972] Julia importer?, zimoun, 2021/01/31
- [bug#45972] Julia importer?, Nicolò Balzarotti, 2021/01/31