Re: native or not

2020-03-31 Thread Mathieu Othacehe


Hey,

> I'm not seeing any size difference, but groff is not in the output:

OK, then its normal.

> That fails on master (libpaper) whereas with the patch it works,
> so I guess the patch is useful on that front.
>
> The patch for sudo will be in the following emails.
>
> Is there anything else to check / test ?

Well you can also check for deterministic compilation, and all the other
items listed here:
https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html

Also be careful because there were quite a lot of cross-compilation
related patches pushed on core-updates. You may want to check that you
are not duplicating this work.

Anyway, most of the packages that should cross-compile fail to do so
because of inputs/native-inputs mix-up, so your patches are really
welcome :)

Thanks,

Mathieu



Re: native or not

2020-03-31 Thread Mathieu Othacehe


> I only build-tested them natively on/for x86_64 (and
> cross built for aarch64 for the sudo one)

This LGTM, I added your copyright on the two first patches and pushed!

Thanks,

Mathieu



Re: native or not

2020-03-31 Thread Vincent Legoll
Hello,

On Tue, Mar 31, 2020 at 9:45 AM Mathieu Othacehe  wrote:
> This LGTM, I added your copyright on the two first patches and pushed!

Thanks for handling that.

Stay tuned for the next batch.

Christopher, looks like your work on data.guix.gnu.org already triggered
something useful ! ;-)

--
Vincent Legoll



Re: native or not

2020-03-31 Thread Vincent Legoll
> Christopher, looks like your work on data.guix.gnu.org
> already triggered something useful ! ;-)

And the view for comparing with previous run is just showing
me what I wanted to see, perfect !

Question: would this view show any `guix size` difference if any ?

Keep up the good work !

-- 
Vincent Legoll



Re: native or not

2020-03-31 Thread Tobias Geerinckx-Rice

Vincent,

Vincent Legoll 写道:
I'm not seeing any size difference, but groff is not in the 
output:


There's some deeper confusion here: why do you expect the size to 
change, at all?


Making ‘groff’ native was the right thing to do (and please, keep 
fixing bugs like this! :-) but it has nothing to do with making 
packages smaller.


Kind regards,

T G-R


signature.asc
Description: PGP signature


Re: native or not

2020-03-31 Thread Vincent Legoll
Hello,

On Tue, Mar 31, 2020 at 11:44 AM Tobias Geerinckx-Rice  wrote:
> Vincent Legoll 写道:
> > I'm not seeing any size difference, but groff is not in the
> > output:
>
> There's some deeper confusion here: why do you expect the size to
> change, at all?

Because I've been told so...

On Mon, Mar 30, 2020 at 8:57 AM Mathieu Othacehe wrote:
> Well yes it may reduce the closure size of the package (run `guix size
> sudo`) to get it.

But I don't expect that to happen every time (I've seen the "it may")...

> Making ‘groff’ native was the right thing to do (and please, keep
> fixing bugs like this! :-) but it has nothing to do with making
> packages smaller.

Never will ?

I'm not expecting package size to shrink, but package closure
(is that the right word) size to sometimes shrink.

And if I've understood that may be visible for ISO, VM, container
image sizes.

Am I mistaken ?
Still learning...

-- 
Vincent Legoll



Thank you for your leadership Ludo

2020-03-31 Thread Joshua Branson


Hey Ludo!

I have been hanging out in #guix recently, and I have submitted a few
guix bug reports (not many). I just wanted to thank you for the
community that you have built with Guix. I have done some minor
volunteer work with other free software projects, but those other free
software projects did not have Guix's incredible community. It is
incredibly nice to feel like I can help Guix, even when it is sparingly.

I also want to thank the other /incredibly/ dedicated Guix maintainers.
Thanks for all that you do!

Thanks again,

Joshua

P.S.  I hope this is not consider off topic.  I just recently read the
first few chapters of "How to Win friends and Influence People".  It
recommended giving out lots of compliments.  I thought that I would
try it.



Re: native or not

2020-03-31 Thread Marius Bakke
Vincent Legoll  writes:

>> Making ‘groff’ native was the right thing to do (and please, keep
>> fixing bugs like this! :-) but it has nothing to do with making
>> packages smaller.
>
> Never will ?
>
> I'm not expecting package size to shrink, but package closure
> (is that the right word) size to sometimes shrink.

Unless you are cross-compiling (i.e. guix build --target=foo),
native-inputs and inputs behave exactly the same; they are simply
concatenated.


signature.asc
Description: PGP signature


Re: LHC for guixHPC?

2020-03-31 Thread Ludovic Courtès
Hello,

bijan ghavami-kia  skribis:

> Thank you kindly for the reply! I have one question born out of my ignorance, 
> so please be patient with me; I am looking at the various
> packages, which belong to various repos eg CRAN, TeXlive etc; 
> for the julia language..., is there a similar thing, or the packages are 
> through the julia built in package manager only (although it
> seems a very decent one https://julialang.org/blog/2019/11/artifacts/)? And 
> if so, is there a reason and is there any loss or conflict in
> relation to the guix package management interaction with these?

In general, it’s possible to use language-specific package managers on
top of Guix, modulo possible packaging bugs.

However, we generally recommend managing packages through Guix: it
brings uniformity, which is always pleasant as a user, and it brings all
the nice features of Guix to all the packages one is
using—reproducibility, transparency and provenance tracking,
transactional upgrades and rollbacks, integration with ‘guix pack’, etc.

For that, we have a set of “importers” that convert, automatically or
semi-automatically, packages from those language-specific repositories:

  https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-import.html

There’s no importer for Julia currently, but it would be a welcome
addition!

> Apologies if these are stupid queries, I am not experienced and I'm sure 
> there are simple answers

These are very valid questions.

Thank you,
Ludo’.



Re: Linphone

2020-03-31 Thread Raghav Gururajan
Hello Guix!

I have finished packaging all the linphone project's packages. \o/

PATCH: https://issues.guix.gnu.org/issue/40264

SOURCE: https://cloud.disroot.org/f/94900047

There will be no new patches and only revision patches. :-)

Regards,
RG.



Re: Use genimage for disk-image creation.

2020-03-31 Thread Ludovic Courtès
Hi!

Vagrant Cascadian  skribis:

> On 2020-03-29, Danny Milosavljevic wrote:
>> Hi Ludo,
>>
>> On Sun, 29 Mar 2020 16:44:39 +0200
>> Ludovic Courtès  wrote:
>>
>>> Oh, really?  I’m surprised partitioning causes problems (though I’m
>>> not familiar with embedded dev!).
>>
>> Well, maybe not that bad, but it's pretty bad.
>>
>> It's because the boot sector for ARM, for some unfathomable reason, is not
>> the first sector but has basically a vendor-dependent sector number somewhere
>> in the middle of the disk :P

Oh I see, I actually noticed that in (gnu bootloader u-boot) and in
Buildroot, it’s teible.

> I haven't really looked at buildroot at all... but I suspect buildroot
> is just a collection of all these criteria applied on a board-by-board
> basis, but most of these boards don't actually require specific
> partition layout, per se, it's just nice to not clobber the raw offsets
> of various parts of the boot process... but creating partitions for each
> of those can make installation less error-prone in some cases.

Yeah, I guess we could keep importing them like Danny did in the past,
but of course it would be nice to have an automated process to do that.

Ludo’.



Re: Proxy settings wrt guix daemon

2020-03-31 Thread Ludovic Courtès
Hi,

Vincent Legoll  skribis:

> On Sun, Mar 29, 2020 at 5:00 PM Ludovic Courtès  wrote:
>> So my recommendation would be to fix [4] specifically for ‘guix-daemon’
>> by adding a ‘set-proxy’ action or something.
>
> Trying to understand what that would imply, I stumbled upon my
> ignorance of how to test attempts at implementing that.
>
> Would the following be useful :
> make + pre-inst guix system container in a git checkout / branch
> with modifications to nix/libstore/builtins.cc::builtinDownload (for
> the server part)
>
> Then how to implement the "asking the server to change its
> proxy setting" ? Where should I look ?
>
> What UI (client-side) ?
>
> `guix daemon set-proxy` or something like that ?
>
> I.e. I'm willing to try, but will need guidance...

I was proposing a custom action for the Shepherd service, just like the
mcron Shepherd service has a custom ‘schedule’ action that one can
invoke with “herd schedule mcron”.

Hope that’s clearer!

Ludo’.



Re: native or not

2020-03-31 Thread Christopher Baines

Vincent Legoll  writes:

>> Christopher, looks like your work on data.guix.gnu.org
>> already triggered something useful ! ;-)
>
> And the view for comparing with previous run is just showing
> me what I wanted to see, perfect !

Nice, I'm glad that you're enjoying using the Guix Data Service, and
finding it useful :)

> Question: would this view show any `guix size` difference if any ?

So, `guix size` as I understand it looks at the size of the store item +
the size of all store items referenced both directly and indirectly.

The `guix size` script can use your local store, as well the data in
narinfo files from substitute files to determine the size of store
items, and there references.

The Guix Data Service gathers up narinfo files from substitute servers,
so the database should contain the necessary data on sizes and
references to provide equivalent information to the `guix size` script.

I like the idea of showing size changes on the comparison page, but I
think a good first step to take towards this would be to show the "size"
for a single item in the store.

This [1] is the page for the store output for the sudo package, with
your changes. It already shows the size from the narinfo files provided
by bayfront and berlin (3633056 bytes).

1: 
http://data.guix.gnu.org/gnu/store/l320ig872ny66d1yi6v7n4zb93iz50dx-sudo-1.8.31p1

It would be nice to have a URL like [2] (which obviously doesn't exist
yet) which would show similar information to running the `guix size`
script [3].

2: 
http://data.guix.gnu.org/gnu/store/l320ig872ny66d1yi6v7n4zb93iz50dx-sudo-1.8.31p1/size
3: guix size /gnu/store/l320ig872ny66d1yi6v7n4zb93iz50dx-sudo-1.8.31p1

Would this be something I'd be able to convince and support you to do
Vincent? I'd be more than happy to help you to implement this.

Chris


signature.asc
Description: PGP signature


Re: [GSoC 2020] [Final Proposal] Clojars importer for Guix

2020-03-31 Thread Leandro Doctors
On Tue, 31 Mar 2020 at 15:06, Leandro Doctors  wrote:
> Below, I share the final version I uploaded to the GSoC website.

Another bug: I didn't mention how I plan to publicly report my
progress over the course of my work. Besides the normal interaction
via this list, I will send (at least) three progress reports. One
progress report to this list (with a post on the Guix blog) after each
Evaluation. Additionally, I may also send irregular updates when I
achieve important milestones.

Sorry for this oversight,
Leandro



Re: native or not

2020-03-31 Thread Vincent Legoll
Hello,

On Tue, Mar 31, 2020 at 3:25 PM Marius Bakke  wrote:
> Unless you are cross-compiling (i.e. guix build --target=foo),
> native-inputs and inputs behave exactly the same; they are simply
> concatenated.

OK, thanks for the clarification.

Christopher, I'm not a web guy, I may take a shot at it, when
my todo list gets emptyish, but don't hold your breath, that
may not happen in this life...

Following this will come the next batch of native-inputs.
Built on x86_64, tried to also target aarch64, but kind of
unconclusive (one stopped at perl, another at mit-krb5...)

I've searched core-updates to avoid duplicating work,
but only after having done it... Got lucky to have only
lost a few minutes on openldap...

The graphviz patch may not be for master as it may
force 2918 packages to be rebuilt. The other ones
should be OK.

Question: should I stay on guix-devel, should I add
guix-patches or should I move to guix-patches for
the following patche series ?

-- 
Vincent Legoll



[PATCH 6/6] gnu: nethack: Make some inputs native.

2020-03-31 Thread Vincent Legoll
* gnu/packages/games.scm (nethack)[native-inputs]: New field.
[inputs]: Move flex & bison to native-inputs.
---
 gnu/packages/games.scm | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3284459021..addadebbba 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -48,6 +48,7 @@
 ;;; Copyright © 2017, 2019 Hartmut Goebel 
 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero 

 ;;; Copyright © 2020 Naga Malleswari 
+;;; Copyright © 2020 Vincent Legoll 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1250,10 +1251,11 @@ watch your CPU playing while enjoying a cup of tea!")
 (string-join (string-split version #\.) "") 
"-src.tgz"))
 (sha256
   (base32 "1liyckjp34j354qnxc1zn9730lh1p2dabrg1hap24z6xnqx0rpng"
+(native-inputs
+  `(("bison" ,bison)
+("flex" ,flex)))
 (inputs
   `(("ncurses" ,ncurses)
-("bison" ,bison)
-("flex" ,flex)
 ("less" ,less)))
 (build-system gnu-build-system)
 (arguments
-- 
2.25.2




[PATCH 4/6] gnu: iwd: Make some inputs native.

2020-03-31 Thread Vincent Legoll
* gnu/packages/networking.scm (iwd)[native-inputs]: New field.
[inputs]: Move libtool to native-inputs.
---
 gnu/packages/networking.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ec2f0b64bd..79b07e23f0 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2712,13 +2712,13 @@ protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and 
RIP. ")
 (build-system gnu-build-system)
 (inputs
  `(("dbus" ,dbus)
-   ("libtool" ,libtool)
("ell" ,ell)
("readline" ,readline)))
 (native-inputs
  `(("asciidoc" ,asciidoc)
("autoconf" ,autoconf)
("automake" ,automake)
+   ("libtool" ,libtool)
("pkgconfig" ,pkg-config)
("python" ,python)
("openssl" ,openssl)))
-- 
2.25.2




[PATCH 1/6] gnu: cgit: Make some inputs native.

2020-03-31 Thread Vincent Legoll
* gnu/packages/version-control.scm (cgit)[native-inputs]: New field.
[inputs]: Move groff & python-docutils to native-inputs.
---
 gnu/packages/version-control.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 8af54c6e35..0aff346e0a 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -28,6 +28,7 @@
 ;;; Copyright © 2020 Roel Janssen 
 ;;; Copyright © 2020 Brice Waegeneire 
 ;;; Copyright © 2020 John D. Boy 
+;;; Copyright © 2020 Vincent Legoll 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -857,6 +858,8 @@ collaboration using typical untrusted file hosts or 
services.")
  `(("asciidoc" ,asciidoc)
("gzip" ,gzip)
("bzip2" ,bzip2)
+   ("groff" ,groff)
+   ("python-docutils" ,python-docutils)
("xz" ,xz)))
 (inputs
  `(;; Building cgit requires a Git source tree.
@@ -869,9 +872,7 @@ collaboration using typical untrusted file hosts or 
services.")
(sha256
 (base32 "09lzwa183nblr6l8ib35g2xrjf9wm9yhk3szfvyzkwivdv69c9r2"
("openssl" ,openssl)
-   ("groff" ,groff)
("python" ,python)
-   ("python-docutils" ,python-docutils)
("python-markdown" ,python-markdown)
("python-pygments" ,python-pygments)
("zlib" ,zlib)))
-- 
2.25.2




[PATCH 5/6] gnu: mailutils: Make some inputs native.

2020-03-31 Thread Vincent Legoll
* gnu/packages/mail.scm (mailutils)[native-inputs]: New field.
[inputs]: Move dejagnu & texinfo to native-inputs.
---
 gnu/packages/mail.scm | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 36b94f409f..458d82ecce 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -29,6 +29,7 @@
 ;;; Copyright © 2018 Gábor Boskovits 
 ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus 
 ;;; Copyright © 2019 Tanguy Le Carrour 
+;;; Copyright © 2020 Vincent Legoll 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -218,11 +219,12 @@
 
#:parallel-tests? #f))
 (native-inputs
- `(("perl" ,perl)))   ;for 'gylwrap'
+ `(("perl" ,perl)
+   ("texinfo" ,texinfo)
+   ("dejagnu" ,dejagnu)))   ;for 'gylwrap'
 (inputs
- `(("dejagnu" ,dejagnu)
+ `(
("m4" ,m4)
-   ("texinfo" ,texinfo)
("guile" ,guile-2.2)
("gsasl" ,gsasl)
("gnutls" ,gnutls)
-- 
2.25.2




[PATCH 2/6] gnu: darktable: Make some inputs native.

2020-03-31 Thread Vincent Legoll
* gnu/packages/photo.scm (darktable)[native-inputs]: New field.
[inputs]: Move intltool & pkg-config to native-inputs.
---
 gnu/packages/photo.scm | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 585289daf1..9f6e4a3031 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice 
 ;;; Copyright © 2018 Leo Famulari 
 ;;; Copyright © 2020 Sebastian Schott 
+;;; Copyright © 2020 Vincent Legoll 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -483,6 +484,9 @@ photographic equipment.")
  (string-append (assoc-ref inputs "ilmbase")
 "/include/OpenEXR:" (or (getenv "CPATH") 
"")))
  #t)
+(native-inputs
+ `(("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)))
 (inputs
  `(("libxslt" ,libxslt)
("libxml2" ,libxml2)
@@ -502,9 +506,7 @@ photographic equipment.")
("ilmbase" ,ilmbase)
("libsoup" ,libsoup)
("python-jsonschema" ,python-jsonschema)
-   ("intltool" ,intltool)
("perl" ,perl)
-   ("pkg-config" ,pkg-config)
("libwebp" ,libwebp)
("lensfun" ,lensfun)
("librsvg" ,librsvg)
-- 
2.25.2




[PATCH 3/6] gnu: graphviz: Make some inputs native.

2020-03-31 Thread Vincent Legoll
* gnu/packages/graphviz.scm (graphviz)[native-inputs]: New field.
[inputs]: Move swig to native-inputs.
---
 gnu/packages/graphviz.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 2d2bb11130..051089881a 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Gábor Boskovits 
 ;;; Copyright © 2018 Mathieu Lirzin 
 ;;; Copyright © 2020 Marius Bakke 
+;;; Copyright © 2020 Vincent Legoll 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -97,7 +98,6 @@
("gts" ,gts)
("gd" ,gd) ; FIXME: Our GD is too old
("guile" ,guile-2.0)   ;Guile bindings
-   ("swig" ,swig)
("pango" ,pango)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
@@ -108,6 +108,7 @@
("libpng" ,libpng)))
 (native-inputs
  `(("bison" ,bison)
+   ("swig" ,swig)
("pkg-config" ,pkg-config)))
 (outputs '("out" "doc"))  ; 5 MiB of html + pdfs
 (home-page "http://www.graphviz.org/";)
-- 
2.25.2




Re: Thank you for your leadership Ludo

2020-03-31 Thread znavko
Hi! I found here in Guix not only the idea that implements
- free software
- reproducible builds,
- better control over system
- and something for the 5th industrial revolution

but also community and relations with the other projects.

Guix uses sources from the different original places (from the maintainers).
Guix connects to the reproducible builds and to the Translation project.
Guix uses gnu servers and based on GNU community.
This is infrastructure that is provided by GNU and Guix move it forward
creating new opportunities for users' new horizons.

And the word free is not only 'name' of all this work but OS Guix 
essential feature.

That is why I like it.


March 31, 2020 12:21 PM, "Joshua Branson"  wrote:

> Hey Ludo!
> 
> I have been hanging out in #guix recently, and I have submitted a few
> guix bug reports (not many). I just wanted to thank you for the
> community that you have built with Guix. I have done some minor
> volunteer work with other free software projects, but those other free
> software projects did not have Guix's incredible community. It is
> incredibly nice to feel like I can help Guix, even when it is sparingly.
> 
> I also want to thank the other /incredibly/ dedicated Guix maintainers.
> Thanks for all that you do!
> 
> Thanks again,
> 
> Joshua
> 
> P.S. I hope this is not consider off topic. I just recently read the
> first few chapters of "How to Win friends and Influence People". It
> recommended giving out lots of compliments. I thought that I would
> try it.



Re: [PATCH 1/6] gnu: cgit: Make some inputs native.

2020-03-31 Thread Tobias Geerinckx-Rice

Vincent,

Thank you!

This list is for general Guix discussion.  Although that can 
sometimes include rough patches (heh), please send any future 
contributions to our patch tracker at guix-patc...@gnu.org — after 
carefully reading the ‘Submitting Patches’ section of the Guix 
manual.


Vincent Legoll 写道:
* gnu/packages/version-control.scm (cgit)[native-inputs]: New 
field.


This is no new field.  Neither are those of mailutils, iwd, or 
graphviz!


Please rewrite all commit messages as either

 * gnu/packages/version-control.scm (cgit)[inputs]: Move groff &
 python-docutils from here…
 [native-inputs]: …to this new field.

or

 * gnu/packages/version-control.scm (cgit)[inputs]: Move groff &
 python-docutils from here…
 [native-inputs]: …to here.

although to be honest, I only ever use the latter format unless 
I'm feeling particularly pedantic.



[inputs]: Move groff & python-docutils to native-inputs.


If we run

 $ guix gc --references `guix build cgit`

we can see that both groff and python-docutils are part of cgit's 
closure.  This means they must to be able to run… at run time :-o 
Oh dear.


python-docutils's ‘rst2html.py’ is required by cgit's 
/lib/cgit/filters/html-converters/rst2html, and groff itself by 
cgit's /lib/cgit/filters/html-converters/man2html.  Both of these 
uses look legitimate to me: they weren't accidentally captured by 
a stray environment variable or overzealous wrapper.


Now, it's still possible that either or both of these dependents 
must *also* run at build time, and for that they would need to be 
native indeed.  Unfortunately:


 $ guix build cgit --target=mips64el-linux-gnu
 guix build: error: gnu/packages/python-xyz.scm:2950:2:
 python-docutils@0.16: build system `python' does not support 
 cross

 builds

I could ignore that and pretend that all Python packages are 
safely architecture-independent (they're not) to continue 
investigating, but I'm out of time.


I don't think this particular patch adds any value at this time, 
so let's drop it.


The rest LGTM!

Kind regards,

T G-R


signature.asc
Description: PGP signature


Rethinking files as a concept -- review draft paper

2020-03-31 Thread Josh Marshall
I was on a while back about using IPFS or some other CAS to cache
computation and results.  I iterated on this concept with metadata, then
data, then just files as a fundamental concept.  It became abundantly clear
that how we use, think, and need from and about files are not what computer
files are.  They are currently unstructured inconsistent blobs.  We want
them to be secure, distributed, and structured.  In the attached, I attempt
to create the concepts to allow such a transition from files as
unstructured blobs to how we actually want and need them for all use
cases.  The grammar is incomplete, and even wrong in some ways.  But I
can't just deliver the final correct and complete paper without feedback.

At the end, I want a understandable, readable, meaningful, complete paper
which is of publication quality and actionable for any skilled developer.

So I ask -- edit, review, critique, criticize, shred, and otherwise pick
out everything wrong in every way that can be done.  Preferably politely.


Unifying File Formats.pdf
Description: Adobe PDF document
\documentclass[]{article}

\usepackage[normalem]{ulem}
\usepackage{titling}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{indentfirst}
\usepackage{syntax}


\title{Universal File Format and Supporting Infrastructure}
\author{
Marshall, Josh\\
\texttt{joshua.r.marshall.1...@gmail.com}
}
\date{\today}

%\setlength{\parindent}{0pt}


\setlength{\grammarparsep}{10pt plus 1pt minus 1pt} % increase separation between rules
\setlength{\grammarindent}{12em} % increase separation between LHS/RHS 


\begin{document}

\maketitle

\begin{abstract}
Similar to how the most complete meaning of a 'function' is deceptively complex, so too is the handling of computer files.  This fundamental process of serializing and deserializing between active memory, and a format suitable for non-volatile storage and transmission has incurred massive costs over time.  Many programs have developed custom serializers and deserializers.  This has resulted in disunity of file formats which has in turn led to encoding inefficiencies, lost backwards and forwards compatibility, portability failures, and redundant work.  Performing this work for each program is expensive.  This paper proposes and formalizes a new model to file handling to ease developer burden, increase space efficiency, improve system integration, allow for much greater compatibility, robust security, transparent sharding across disparate systems, and future extensibility while lowering overall developer burden.

\end{abstract}

\section{Introduction}

This paper is written in \LaTeX, compiled to a pdf, and will likely be read online in HTML, Markdown, or ReStructured Text.  They will all encode the same fundamental information in mutually incompatible ways.  Yet, a system accessing these formats will still display them similarly.  In system memory, their decoded state can be made, in theory, identical.  This is not to say that any of these formats should replace all of the others, but it does exemplify the complexity and divergence in performing a similar simple task in computing.

Imagine the workflow for writing this document -- a program runs where a user enters some data into memory through a text editor, that memory is transformed by some serialization function into an on-disk format which is given to the host system to store through some system provided file writing function, stored by the host system, and can then be read through some system provided function, then deserialized and interpreted by some deserialization function.  This series of actions describe the fundamental actions taken on file:
\begin{enumerate}
  \item interface to modify content in working memory
  \item transform from working memory to non-volatile memory or to stream
  \item transfer to non-volatile state or by stream
  \item transform from non-volatile state or from stream
  \item process for use
\end{enumerate}

It is in these steps that developer burden can be lessened.  Lessening the difference between working memory and non-volatile memory in order to reduce the burden of processing input.  Another is by lessening the difference of transferring to non-volatile forms and making data accessible over a network.  These differences arise in part from encoding efficiency, endianness, and runtime data not relevant towards the model stored in saved files.

All in memory data structures can be practically represented by records (non-ordinal, possibly key-value), lists(ordinal), real numbers, integer numbers, booleans, null, and character strings.  This has been noticed and designed around in SGML, JSON, TOML, YAML, and EDN.  These formats are reliably interconvertible except for SGML because SGML allows representing identical information in semantically different ways.  

Another more powerful design is available in the programming language Lisp, in particular the Scheme dialect.  Given app

Re: Rethinking files as a concept -- review draft paper

2020-03-31 Thread Josh Marshall
Spelling and grammar fixes.  Automatic tools have become insufficient to
catch everything.

On Tue, Mar 31, 2020 at 9:33 PM Josh Marshall <
joshua.r.marshall.1...@gmail.com> wrote:

> I was on a while back about using IPFS or some other CAS to cache
> computation and results.  I iterated on this concept with metadata, then
> data, then just files as a fundamental concept.  It became abundantly clear
> that how we use, think, and need from and about files are not what computer
> files are.  They are currently unstructured inconsistent blobs.  We want
> them to be secure, distributed, and structured.  In the attached, I attempt
> to create the concepts to allow such a transition from files as
> unstructured blobs to how we actually want and need them for all use
> cases.  The grammar is incomplete, and even wrong in some ways.  But I
> can't just deliver the final correct and complete paper without feedback.
>
> At the end, I want a understandable, readable, meaningful, complete paper
> which is of publication quality and actionable for any skilled developer.
>
> So I ask -- edit, review, critique, criticize, shred, and otherwise pick
> out everything wrong in every way that can be done.  Preferably politely.
>


Unifying File Formats.pdf
Description: Adobe PDF document
\documentclass[]{article}

\usepackage[normalem]{ulem}
\usepackage{titling}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{indentfirst}
\usepackage{syntax}


\title{Universal File Format and Supporting Infrastructure}
\author{
Marshall, Josh\\
\texttt{joshua.r.marshall.1...@gmail.com}
}
\date{\today}

%\setlength{\parindent}{0pt}


\setlength{\grammarparsep}{10pt plus 1pt minus 1pt} % increase separation between rules
\setlength{\grammarindent}{12em} % increase separation between LHS/RHS 


\begin{document}

\maketitle

\begin{abstract}
Similar to how the most complete meaning of a 'function' is deceptively complex, so too is the handling of computer files.  This fundamental process of serializing and deserializing between active memory, and a format suitable for non-volatile storage and transmission has incurred massive costs over time.  Many programs have developed custom serializers and deserializers.  This has resulted in disunity of file formats which has in turn led to encoding inefficiencies, lost backwards and forwards compatibility, portability failures, and redundant work.  Performing this work for each program is expensive.  This paper proposes and formalizes a new model of file handling to ease developer burden, increase space efficiency, improve system integration, allow for much greater compatibility, robust security, transparent sharding across disparate systems, and future extensibility.

\end{abstract}

\section{Introduction}

This paper is written in \LaTeX, compiled to a pdf, and will likely be read online in HTML, Markdown, or ReStructured Text.  They will all encode the same fundamental information in mutually incompatible ways.  Yet, a system accessing these formats will still display them similarly.  In system memory, their decoded state can be made, in theory, identical.  This is not to say that any of these formats should replace all of the others, but it does exemplify the complexity and divergence in performing a similar simple task in computing.

Imagine the workflow for writing this document -- a program runs where a user enters some data into memory through a text editor, that memory is transformed by some serialization function into an on-disk format which is given to the host system to store through some system provided file writing function, stored by the host system, and can then be read through some system provided function, then deserialized and interpreted by some deserialization function.  This series of actions describe the fundamental actions taken on file:
\begin{enumerate}
  \item interface to modify content in working memory
  \item transform from working memory to non-volatile memory or to stream
  \item transfer to non-volatile state or by stream
  \item transform from non-volatile state or from stream
  \item process for use
\end{enumerate}

It is in these steps that developer burden can be lessened.  Lessening the difference between working memory and non-volatile memory in order to reduce the burden of processing input.  Another is by lessening the difference of transferring to non-volatile forms and making data accessible over a network.  These differences arise in part from encoding efficiency, endianness, and runtime data irrelevant to the model stored in saved files.

All in memory data structures can be practically represented by records (non-ordinal, possibly key-value), lists(ordinal), real numbers, integer numbers, booleans, null, and character strings.  This has been noticed and designed around in SGML, JSON, TOML, YAML, and EDN.  These formats are reliably interconvertible except for SGML because SGML allows representing identical 

Re: Brainstorming features for issues.guix.gnu.org

2020-03-31 Thread Ricardo Wurmus


Hi Björn,

thanks for the list of suggestions!

> * First of all, I find this mixture very confusing: Is this about bugs
> or is this about patches? I really don't know, and the start page is
> ambigious about it too:
>
> "Guix /patch/ tracker
> This is a web frontend to the Guix /issue/ trackers.
> /Issues/ of interest
> Priority /bugs/"

I updated the text, but I think it’s not a good idea to have two
separate trackers, because bug reports can have patches.

> * Is it intentionally that there still is a http site? I would have
> expected a redirect onto https.
>
> * http[s]://issues.guix.info/ is also still alive. Shouldn't it redirect
> to http[s]://issues.guix.gnu.org/?

This should be changed in maintenance.git.  I would like a redirect to
https://issues.guix.gnu.org/.  I haven’t done this yet as I’m only
focusing on mumi itself at this point.

> * If you search for something, you get away from the homepage and
> tips are missing. There should be a "help/tooltip" button near the
> search input that explains the query language.

The search results page now also has the search input widget with hints.
Not sure how to handle the little search field in the menu bar, though.

> * If you enter a query, that query should be kept in the input field.
> Currently, it is discarded. That would make it more easy to update your
> query.

Yes, this has annoyed me too.  The query is now kept.

> * It is not clear to me how long a closed issue is still visible on the
> home-page. Is it still an "Issue of interest" if it is closed?

The idea was that you may want to look at issues that have just been
closed to catch up (or to reopen them).  But I guess closed issues could
just be hidden.

> * Sorting issues by columns would be cool.

Done.

> * Mumi has no paging: It only presents one page of issues, but it
> doesn't say how many are there in total nor does it page through all
> other pages of issues.

Yes, this is a restriction due to debbugs.  We can’t ask it for all
issues and implementing paging is a little annoying.  I think this will
change as I’m making more and more features independent of debbugs
requests.

> * In that list, it is not clear what a red/orange colored bug-number
> means: A tool-tip would be nice.

I never liked those colors.  There’s a little icon now with a tool-tip.

> * A long desired feature is having general tags. It took me a very long
> time until I realized that Debbugs allows user-tags. What about using a
> common email address like "issues AT guix.gnu.org" and add user-tags
> for that address, like "python", "core-updates", "release-1.1.x", etc.

Sounds like a good idea.  I don’t know if it even has to be an email
address or if we can fake it.  This deserves a closer look.

> * I still don't see that all bugs and patches from the mailing list are
> part of the mumi issues list?

There was a problem with the worker process that fetched and indexed
messages from Debbugs.

> * The HTML could be responsive.

It should be responsive with recent changes.

> * The query syntax examples are only on the home page. Please repeat
> them also on the help page.

That I don’t understand.  The help page has *more* examples, no?

> * Either I don't understand the "date:.." semantics or it
> is broken. The range yesterday..today lists no issues after 2015. Not
> the "yesterday" I expected...:
>
> https://issues.guix.gnu.org/search?query=date%3Ayesterday..today

Yeah, this is embarrassing… “yesterday” isn’t actually valid.  I only
just noticed that after a much longer debugging session than I feel
comfortable admitting.  The “proper” way to do this is to write
“date:2d..”.  I updated the help.

> With numbers, it gets even more strange:
> https://issues.guix.gnu.org/search?query=date%3A2020-03-29..2020-03-30
> --> Nothing found.

This seems to be correct now.

> Some more, but why are these selected?:
> https://issues.guix.gnu.org/search?query=date%3A2020-03-29..2020-03-30

…this is the same query as above.  They are selected because the
discussion contains messages in the given range.

> * Mdate does not find anything?
> https://issues.guix.gnu.org/search?query=mdate%3A2w..12h

mdate no longer exists (it was a debbugs search filter), but maybe it
should be added again to distinguish between message dates and
submission dates.  I’ll add this to my list.

Thanks again!

--
Ricardo


PS: When I say that something’s fixed I mean that it’s fixed in the
repository, not necessarily in the public instance.



Kernel module separation

2020-03-31 Thread Ivan Kozlov
Hello. As of now, building a system requires that the kernel package includes the lib/modules directory, probably with at least some loadable modules, which is not necessary the case for custom packages. This can be fixed trivially with a check in operating-system-directory-base-entries: (packages->manifest (append (if (file-exists? #$(file-append kernel "/lib/modules")) (list kernel) '()) modules)) But may be it would be better to make a separate output for the linux-libre modules and make kernel-loadable-modules include it by default.



Re: [GSoC 2020] [Final Proposal] Clojars importer for Guix

2020-03-31 Thread Pierre Neidhardt
Hi Leandro,

A quick message to let you know that I'm very excited by your project!
I've recently started developing with Clojure and I'd love to see a
Clojars importer become reality!

Good luck!

-- 
Pierre Neidhardt
https://ambrevar.xyz/


signature.asc
Description: PGP signature