Skip to content
This repository was archived by the owner on Jan 31, 2023. It is now read-only.

Latest commit

 

History

History
3770 lines (2766 loc) · 155 KB

20884.md

File metadata and controls

3770 lines (2766 loc) · 155 KB

Issue 20884: line buffering in sage-logger causes "hang" due to invisible prompt when installing experimental packages

archive/issues_020647.json:

{
    "assignees": [],
    "body": "<div id=\"comment:0\"></div>\n\n(Observed on Mac OS X.)\n\nAs I reported in [#20708 comment:8](https://github.com/sagemath/sage/issues/20708#comment:8):\n\nWhen installing an \"experimental\" package, Sage warns a lot and then prompts the user. \nBecause of line buffering, one does not see the prompt, but Sage just waits indefinitely.\n\n```\nsage -f latte_int\n...\n[latte_int-1.7.3] =========================== WARNING ===========================\n[latte_int-1.7.3] You are about to download and install an experimental package.\n[latte_int-1.7.3] This probably won't work at all for you! There is no guarantee\n[latte_int-1.7.3] that it will build correctly, or behave as expected.\n[latte_int-1.7.3] Use at your own risk!\n[latte_int-1.7.3] ===============================================================\n```\n<--- This is where it asks \"[latte_int-1.7.3] Are you sure you want to continue [Y/n]?\" but this is line-buffered and not visible to the user.\n\nCC:  @jdemeyer @embray @vbraun @kcrisman @dimpase @videlec @novoselt\n\nComponent: **build**\n\nAuthor: **Matthias Koeppe**\n\nBranch: **[`6888a67`](https://github.com/sagemath/sagetrac-mirror/commit/6888a6788eb25bcc293a465091c68850346f0e85)**\n\nReviewer: **Leif Leonhardy, Volker Braun**\n\n_Issue created by migration from https://trac.sagemath.org/ticket/20884_\n\n",
    "closed_at": "2016-07-23T18:38:27Z",
    "created_at": "2016-06-26T22:19:41Z",
    "labels": [
        "https://github.com/sagemath/sage/labels/c%3A%20build",
        "https://github.com/sagemath/sage/labels/p%3A%20blocker%20/%201",
        "https://github.com/sagemath/sage/labels/bug"
    ],
    "milestone": "https://github.com/sagemath/sage/milestones/sage-7.3",
    "reactions": [],
    "repository": "https://github.com/sagemath/sage",
    "title": "line buffering in sage-logger causes \"hang\" due to invisible prompt when installing experimental packages",
    "type": "issue",
    "updated_at": "2016-07-24T13:45:44Z",
    "url": "https://github.com/sagemath/sage/issues/20884",
    "user": "https://github.com/mkoeppe"
}

(Observed on Mac OS X.)

As I reported in #20708 comment:8:

When installing an "experimental" package, Sage warns a lot and then prompts the user. Because of line buffering, one does not see the prompt, but Sage just waits indefinitely.

sage -f latte_int
...
[latte_int-1.7.3] =========================== WARNING ===========================
[latte_int-1.7.3] You are about to download and install an experimental package.
[latte_int-1.7.3] This probably won't work at all for you! There is no guarantee
[latte_int-1.7.3] that it will build correctly, or behave as expected.
[latte_int-1.7.3] Use at your own risk!
[latte_int-1.7.3] ===============================================================

<--- This is where it asks "[latte_int-1.7.3] Are you sure you want to continue [Y/n]?" but this is line-buffered and not visible to the user.

CC: @jdemeyer @embray @vbraun @kcrisman @dimpase @videlec @novoselt

Component: build

Author: Matthias Koeppe

Branch: 6888a67

Reviewer: Leif Leonhardy, Volker Braun

Issue created by migration from https://trac.sagemath.org/ticket/20884


archive/issue_events_291227.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-06-26T22:19:41Z",
    "event": "milestoned",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "milestone_number": null,
    "milestone_title": "sage-7.3",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291227"
}

archive/issue_events_291228.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-06-26T22:19:41Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/c%3A%20build",
    "label_color": "0000b0",
    "label_name": "c: build",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291228"
}

archive/issue_events_291229.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-06-26T22:19:41Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/p%3A%20critical%20/%202",
    "label_color": "ff7700",
    "label_name": "p: critical / 2",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291229"
}

archive/issue_events_291230.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-06-26T22:19:41Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/bug",
    "label_color": "d73a4a",
    "label_name": "bug",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291230"
}

archive/issue_comments_302760.json:

{
    "body": "<div id=\"comment:1\" align=\"right\">comment:1</div>\n\nIMHO we just shouldn't ask questions here, a (potentially) parallel make session is just not an interactive process. Either do it or bail out and require a command line switch `--experimental` to opt-in.",
    "created_at": "2016-06-26T23:36:26Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302760",
    "user": "https://github.com/vbraun"
}
comment:1

IMHO we just shouldn't ask questions here, a (potentially) parallel make session is just not an interactive process. Either do it or bail out and require a command line switch --experimental to opt-in.


archive/issue_comments_302761.json:

{
    "body": "<div id=\"comment:2\" align=\"right\">comment:2</div>\n\nI think so too.",
    "created_at": "2016-06-26T23:37:54Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302761",
    "user": "https://github.com/mkoeppe"
}
comment:2

I think so too.


archive/issue_comments_302762.json:

{
    "body": "<div id=\"comment:3\" align=\"right\">comment:3</div>\n\n+1, just keep the message.",
    "created_at": "2016-06-27T08:56:46Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302762",
    "user": "https://github.com/embray"
}
comment:3

+1, just keep the message.


archive/issue_comments_302763.json:

{
    "body": "<div id=\"comment:4\" align=\"right\">comment:4</div>\n\nI also think it's fine for *experimental* packages to just run and fail.  As long as there isn't any potential to mess up the rest of Sage (like with messed up runs of `make`).",
    "created_at": "2016-06-28T14:18:53Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302763",
    "user": "https://github.com/kcrisman"
}
comment:4

I also think it's fine for experimental packages to just run and fail. As long as there isn't any potential to mess up the rest of Sage (like with messed up runs of make).


archive/issue_comments_302764.json:

{
    "body": "Author: **Erik Bray**",
    "created_at": "2016-06-28T14:29:09Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302764",
    "user": "https://github.com/embray"
}

Author: Erik Bray


archive/issue_comments_302765.json:

{
    "body": "Branch: **[u/embray/disable-exp-pkg-prompt](https://github.com/sagemath/sagetrac-mirror/tree/u/embray/disable-exp-pkg-prompt)**",
    "created_at": "2016-06-28T14:29:09Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302765",
    "user": "https://github.com/embray"
}

Branch: u/embray/disable-exp-pkg-prompt


archive/issue_comments_302766.json:

{
    "body": "<div id=\"comment:5\" align=\"right\">comment:5</div>\n\nHere's a patch to remove the prompt entirely.\n\nMight be good to find a fix to the underlying problem, since in principle there could be some other prompt somewhere that would be hidden in the same way.  I'm not sure how best to fix this though--would have to disable line-buffering on such prompts somehow.\n\n---\nNew commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/ccff00540641c9a7b19166c550433b6d4495a5ba\"><code>ccff005</code></a></td><td><code>Disable the y/n prompt when installing experimental packages.</code></td></tr></table>\n",
    "created_at": "2016-06-28T14:29:09Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302766",
    "user": "https://github.com/embray"
}
comment:5

Here's a patch to remove the prompt entirely.

Might be good to find a fix to the underlying problem, since in principle there could be some other prompt somewhere that would be hidden in the same way. I'm not sure how best to fix this though--would have to disable line-buffering on such prompts somehow.


New commits:

ccff005Disable the y/n prompt when installing experimental packages.

archive/issue_events_291231.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-06-28T14:29:09Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291231"
}

archive/issue_comments_302767.json:

{
    "body": "Commit: **[`ccff005`](https://github.com/sagemath/sagetrac-mirror/commit/ccff00540641c9a7b19166c550433b6d4495a5ba)**",
    "created_at": "2016-06-28T14:29:09Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302767",
    "user": "https://github.com/embray"
}

Commit: ccff005


archive/issue_comments_302768.json:

{
    "body": "<div id=\"comment:6\" align=\"right\">comment:6</div>\n\nThis would be fine with me. But it could be argued that this warning is too easy to overlook (and comes too late) and so the point of distinguishing between optional and experimental packages is lost.",
    "created_at": "2016-06-28T17:07:09Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302768",
    "user": "https://github.com/mkoeppe"
}
comment:6

This would be fine with me. But it could be argued that this warning is too easy to overlook (and comes too late) and so the point of distinguishing between optional and experimental packages is lost.


archive/issue_comments_302769.json:

{
    "body": "<div id=\"comment:10\" align=\"right\">comment:10</div>\n\nI don't think simply removing this dialog is the right thing to do.",
    "created_at": "2016-06-29T07:24:47Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302769",
    "user": "https://github.com/dimpase"
}
comment:10

I don't think simply removing this dialog is the right thing to do.


archive/issue_events_291232.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-06-29T07:38:29Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291232"
}

archive/issue_events_291233.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-06-29T07:38:29Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291233"
}

archive/issue_comments_302770.json:

{
    "body": "<div id=\"comment:12\" align=\"right\">comment:12</div>\n\n> This would be fine with me. But it could be argued that this warning is too easy to overlook (and comes too late) and so the point of distinguishing between optional and experimental packages is lost.\n\nI'm not sure what you suggest differently, other than moving the warning a little earlier?\n\nBut if someone doesn't read their build output it will be lost on them anyways.  That's okay, because it's \"merely\" a warning.",
    "created_at": "2016-06-29T08:23:35Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302770",
    "user": "https://github.com/embray"
}
comment:12

This would be fine with me. But it could be argued that this warning is too easy to overlook (and comes too late) and so the point of distinguishing between optional and experimental packages is lost.

I'm not sure what you suggest differently, other than moving the warning a little earlier?

But if someone doesn't read their build output it will be lost on them anyways. That's okay, because it's "merely" a warning.


archive/issue_comments_302771.json:

{
    "body": "<div id=\"comment:13\" align=\"right\">comment:13</div>\n\nDima has a point that removing the prompt outright is potentially disruptive.  \n\nWhat if we moved the warning so that there's no prompt if running `make <packagename>` directly, as a package developer might do.  But running `./sage -i` for an experimental package both displays the warning and the prompt (before ever even running `make`, much less `sage-logger`).",
    "created_at": "2016-06-29T08:42:05Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302771",
    "user": "https://github.com/embray"
}
comment:13

Dima has a point that removing the prompt outright is potentially disruptive.

What if we moved the warning so that there's no prompt if running make <packagename> directly, as a package developer might do. But running ./sage -i for an experimental package both displays the warning and the prompt (before ever even running make, much less sage-logger).


archive/issue_comments_302772.json:

{
    "body": "<div id=\"comment:14\" align=\"right\">comment:14</div>\n\nReplying to [@embray](#comment%3A13):\n> Dima has a point that removing the prompt outright is potentially disruptive.  \n> \n> What if we moved the warning so that there's no prompt if running `make <packagename>` directly, as a package developer might do.  But running `./sage -i` for an experimental package both displays the warning and the prompt (before ever even running `make`, much less `sage-logger`).\n\nI think `./sage -i PACKAGENAMES...` should display the warning and the prompt before at the very beginning, before installing any package.\n\nAs per Volker's initial suggestion, a command-line switch `--experimental` should override the prompt. This would be useful in a script. I didn't know that `make PACKAGENAME` works; but in any case it would be better to be able to use \"sage -i\" also from a script.",
    "created_at": "2016-06-29T16:16:42Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302772",
    "user": "https://github.com/mkoeppe"
}
comment:14

Replying to @embray:

Dima has a point that removing the prompt outright is potentially disruptive.

What if we moved the warning so that there's no prompt if running make <packagename> directly, as a package developer might do. But running ./sage -i for an experimental package both displays the warning and the prompt (before ever even running make, much less sage-logger).

I think ./sage -i PACKAGENAMES... should display the warning and the prompt before at the very beginning, before installing any package.

As per Volker's initial suggestion, a command-line switch --experimental should override the prompt. This would be useful in a script. I didn't know that make PACKAGENAME works; but in any case it would be better to be able to use "sage -i" also from a script.


archive/issue_comments_302773.json:

{
    "body": "<div id=\"comment:15\" align=\"right\">comment:15</div>\n\n`make <packagename>` is how all packages are built.  `sage -i` is just a thin front-end over that.\n\nIt appears the warning/prompt comes from the `sage-spkg` (which is the program responsible for unpacking the package, running `spkg-install`, etc) which is in turn called by make.  \n\nI tried reworking this yesterday in a way that didn't change `sage-spkg`, but to make that prompt happen *right* away it would have to moved either into the makefile itself, or into the `sage` command, though I think it's good to have the warning when running `sage-spkg` too.  So I'd hate to have duplicate copies of the warning.\n\nIn other words it's not exactly clear where the best place would be for it.  Jeroen might have some ideas but he's on holiday right now so we won't bug him about it.",
    "created_at": "2016-06-30T08:37:24Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302773",
    "user": "https://github.com/embray"
}
comment:15

make <packagename> is how all packages are built. sage -i is just a thin front-end over that.

It appears the warning/prompt comes from the sage-spkg (which is the program responsible for unpacking the package, running spkg-install, etc) which is in turn called by make.

I tried reworking this yesterday in a way that didn't change sage-spkg, but to make that prompt happen right away it would have to moved either into the makefile itself, or into the sage command, though I think it's good to have the warning when running sage-spkg too. So I'd hate to have duplicate copies of the warning.

In other words it's not exactly clear where the best place would be for it. Jeroen might have some ideas but he's on holiday right now so we won't bug him about it.


archive/issue_comments_302774.json:

{
    "body": "<div id=\"comment:16\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/611480df1194bb460abfbc77c6418bab1d0518e4\"><code>611480d</code></a></td><td><code>No matter what I do, even with sed --unbuffered, sed will read either up to the EOF or the EOL, but otherwise buffers until EOL.</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/632fea7e3912f4769fa65413c62dbbaec098b613\"><code>632fea7</code></a></td><td><code>Add a new -y argument to sage-spkg to make it automatically answer 'y' to all prompts.</code></td></tr></table>\n",
    "created_at": "2016-06-30T12:38:45Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302774",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

611480dNo matter what I do, even with sed --unbuffered, sed will read either up to the EOF or the EOL, but otherwise buffers until EOL.
632fea7Add a new -y argument to sage-spkg to make it automatically answer 'y' to all prompts.

archive/issue_comments_302775.json:

{
    "body": "Changed commit from **[`ccff005`](https://github.com/sagemath/sagetrac-mirror/commit/ccff00540641c9a7b19166c550433b6d4495a5ba)** to **[`632fea7`](https://github.com/sagemath/sagetrac-mirror/commit/632fea7e3912f4769fa65413c62dbbaec098b613)**",
    "created_at": "2016-06-30T12:38:45Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302775",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from ccff005 to 632fea7


archive/issue_comments_302776.json:

{
    "body": "<div id=\"comment:17\" align=\"right\">comment:17</div>\n\nWelp, this is definitely more complicated than it was before, but I think it's pretty good.",
    "created_at": "2016-06-30T12:39:19Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302776",
    "user": "https://github.com/embray"
}
comment:17

Welp, this is definitely more complicated than it was before, but I think it's pretty good.


archive/issue_events_291234.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-06-30T12:39:29Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291234"
}

archive/issue_events_291235.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-06-30T12:39:29Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291235"
}

archive/issue_comments_302777.json:

{
    "body": "Changed commit from **[`632fea7`](https://github.com/sagemath/sagetrac-mirror/commit/632fea7e3912f4769fa65413c62dbbaec098b613)** to **[`4f7b63f`](https://github.com/sagemath/sagetrac-mirror/commit/4f7b63f16b156891638b546427f4d9c7e66c7137)**",
    "created_at": "2016-06-30T12:44:08Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302777",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 632fea7 to 4f7b63f


archive/issue_comments_302778.json:

{
    "body": "<div id=\"comment:19\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/4f7b63f16b156891638b546427f4d9c7e66c7137\"><code>4f7b63f</code></a></td><td><code>Display an additional message when continuing automatically</code></td></tr></table>\n",
    "created_at": "2016-06-30T12:44:08Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302778",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

4f7b63fDisplay an additional message when continuing automatically

archive/issue_comments_302779.json:

{
    "body": "<div id=\"comment:20\" align=\"right\">comment:20</div>\n\nlooks good to me",
    "created_at": "2016-06-30T13:03:26Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302779",
    "user": "https://github.com/dimpase"
}
comment:20

looks good to me


archive/issue_events_291236.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-06-30T13:03:26Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291236"
}

archive/issue_events_291237.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-06-30T13:03:26Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291237"
}

archive/issue_comments_302780.json:

{
    "body": "Reviewer: **Dima Pasechnik, Matthias Koeppe**",
    "created_at": "2016-06-30T13:03:26Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302780",
    "user": "https://github.com/dimpase"
}

Reviewer: Dima Pasechnik, Matthias Koeppe


archive/issue_comments_302781.json:

{
    "body": "<div id=\"comment:21\" align=\"right\">comment:21</div>\n\nOn OSX:\n\n```\nconfig.status: creating directory /Users/buildslave-sage/slave/sage_git/build/local/lib\nconfig.status: creating directory /Users/buildslave-sage/slave/sage_git/build/local/share\nconfig.status: creating directory /Users/buildslave-sage/slave/sage_git/build/local/var/lib/sage/installed\nbuild/bin/sage-logger \\\n\t\t\"cd build/make && ./install 'start'\" logs/install.log\nbuild/bin/sage-logger: line 48: read: -N: invalid option\nread: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...]\nmake: *** [start] Error 141\nprogram finished with exit code 2\n```",
    "created_at": "2016-06-30T19:18:54Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302781",
    "user": "https://github.com/vbraun"
}
comment:21

On OSX:

config.status: creating directory /Users/buildslave-sage/slave/sage_git/build/local/lib
config.status: creating directory /Users/buildslave-sage/slave/sage_git/build/local/share
config.status: creating directory /Users/buildslave-sage/slave/sage_git/build/local/var/lib/sage/installed
build/bin/sage-logger \
		"cd build/make && ./install 'start'" logs/install.log
build/bin/sage-logger: line 48: read: -N: invalid option
read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...]
make: *** [start] Error 141
program finished with exit code 2

archive/issue_events_291238.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-06-30T19:18:54Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291238"
}

archive/issue_events_291239.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-06-30T19:18:54Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291239"
}

archive/issue_comments_302782.json:

{
    "body": "<div id=\"comment:22\" align=\"right\">comment:22</div>\n\noops... perhaps one can just replace `-N` with `-n` ?",
    "created_at": "2016-06-30T19:54:47Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302782",
    "user": "https://github.com/dimpase"
}
comment:22

oops... perhaps one can just replace -N with -n ?


archive/issue_comments_302783.json:

{
    "body": "<div id=\"comment:23\" align=\"right\">comment:23</div>\n\nWith `IFS` unset, at least, `-n` appears to be equivalent to `-N`.",
    "created_at": "2016-07-01T07:47:05Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302783",
    "user": "https://github.com/dimpase"
}
comment:23

With IFS unset, at least, -n appears to be equivalent to -N.


archive/issue_comments_302784.json:

{
    "body": "<div id=\"comment:24\" align=\"right\">comment:24</div>\n\nAnd here I thought by relying entirely on bash features this would be portable.  Leave it to OSX to \"think different\"!\n\nMysteriously, on my bash `-n` is not quite the same as `-N` even with `IFS` unset.  I think the key is that for `-N` it reads \"Delimiter characters  encountered  in  the input are not treated specially and do not cause `read` to return until `nchars` are read\".  So in other words, hitting \"Enter\" with `-N 1` will cause read to return a newline literal.  Whereas for `-n` the delimiter is still treated specially and is *not* returned.  Hitting Enter causes `read` to return with no characters read.  It should be made clear that here \"delimiter\" is referring to the delimiter that `read` should read up to, not the delimiter(s) used to split a line, which is what `IFS` is.\n\nThe solution is to use `-n`, but treat an empty string has having received a newline.",
    "created_at": "2016-07-01T11:03:29Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302784",
    "user": "https://github.com/embray"
}
comment:24

And here I thought by relying entirely on bash features this would be portable. Leave it to OSX to "think different"!

Mysteriously, on my bash -n is not quite the same as -N even with IFS unset. I think the key is that for -N it reads "Delimiter characters encountered in the input are not treated specially and do not cause read to return until nchars are read". So in other words, hitting "Enter" with -N 1 will cause read to return a newline literal. Whereas for -n the delimiter is still treated specially and is not returned. Hitting Enter causes read to return with no characters read. It should be made clear that here "delimiter" is referring to the delimiter that read should read up to, not the delimiter(s) used to split a line, which is what IFS is.

The solution is to use -n, but treat an empty string has having received a newline.


archive/issue_comments_302785.json:

{
    "body": "<div id=\"comment:25\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/bdcfff486256625b42541e505905e3a7d2e083e7\"><code>bdcfff4</code></a></td><td><code>Two fixes:</code></td></tr></table>\n",
    "created_at": "2016-07-01T11:33:17Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302785",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

bdcfff4Two fixes:

archive/issue_comments_302786.json:

{
    "body": "Changed commit from **[`4f7b63f`](https://github.com/sagemath/sagetrac-mirror/commit/4f7b63f16b156891638b546427f4d9c7e66c7137)** to **[`bdcfff4`](https://github.com/sagemath/sagetrac-mirror/commit/bdcfff486256625b42541e505905e3a7d2e083e7)**",
    "created_at": "2016-07-01T11:33:17Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302786",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 4f7b63f to bdcfff4


archive/issue_events_291240.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-01T14:40:50Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291240"
}

archive/issue_events_291241.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-01T14:40:50Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291241"
}

archive/issue_comments_302787.json:

{
    "body": "<div id=\"comment:27\" align=\"right\">comment:27</div>\n\nthe last commit did not make it into the branch! Never seen such a strange thing before...",
    "created_at": "2016-07-03T06:03:42Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302787",
    "user": "https://github.com/dimpase"
}
comment:27

the last commit did not make it into the branch! Never seen such a strange thing before...


archive/issue_events_291242.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-03T06:07:00Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291242"
}

archive/issue_events_291243.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-03T06:07:00Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291243"
}

archive/issue_comments_302788.json:

{
    "body": "<div id=\"comment:28\" align=\"right\">comment:28</div>\n\nsorry, in fact there is still -N left in sage-logger, and I get on OSX\n\n`build/bin/sage-logger: line 48: read: -N: invalid option`",
    "created_at": "2016-07-03T06:07:00Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302788",
    "user": "https://github.com/dimpase"
}
comment:28

sorry, in fact there is still -N left in sage-logger, and I get on OSX

build/bin/sage-logger: line 48: read: -N: invalid option


archive/issue_comments_302789.json:

{
    "body": "<div id=\"comment:29\" align=\"right\">comment:29</div>\n\nAh, right.",
    "created_at": "2016-07-04T13:05:49Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302789",
    "user": "https://github.com/embray"
}
comment:29

Ah, right.


archive/issue_comments_302790.json:

{
    "body": "Changed commit from **[`bdcfff4`](https://github.com/sagemath/sagetrac-mirror/commit/bdcfff486256625b42541e505905e3a7d2e083e7)** to **[`0fc8fde`](https://github.com/sagemath/sagetrac-mirror/commit/0fc8fde498193be273b22ec69e5e97a67caa0dc0)**",
    "created_at": "2016-07-04T13:24:25Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302790",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from bdcfff4 to 0fc8fde


archive/issue_comments_302791.json:

{
    "body": "<div id=\"comment:30\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/0fc8fde498193be273b22ec69e5e97a67caa0dc0\"><code>0fc8fde</code></a></td><td><code>Change -N 1 to -n 1 in sage-logger, since the former does not work on</code></td></tr></table>\n",
    "created_at": "2016-07-04T13:24:25Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302791",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

0fc8fdeChange -N 1 to -n 1 in sage-logger, since the former does not work on

archive/issue_events_291244.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-04T13:24:45Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291244"
}

archive/issue_events_291245.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-04T13:24:45Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291245"
}

archive/issue_comments_302792.json:

{
    "body": "<div id=\"comment:31\" align=\"right\">comment:31</div>\n\nFixed `sage-logger` to not use `read -N 1` as well.\n\n---\nNew commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/0fc8fde498193be273b22ec69e5e97a67caa0dc0\"><code>0fc8fde</code></a></td><td><code>Change -N 1 to -n 1 in sage-logger, since the former does not work on</code></td></tr></table>\n",
    "created_at": "2016-07-04T13:24:45Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302792",
    "user": "https://github.com/embray"
}
comment:31

Fixed sage-logger to not use read -N 1 as well.


New commits:

0fc8fdeChange -N 1 to -n 1 in sage-logger, since the former does not work on

archive/issue_comments_302793.json:

{
    "body": "<div id=\"comment:32\" align=\"right\">comment:32</div>\n\nOK, this works on OSX.",
    "created_at": "2016-07-04T14:58:24Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302793",
    "user": "https://github.com/dimpase"
}
comment:32

OK, this works on OSX.


archive/issue_events_291246.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-04T14:58:24Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291246"
}

archive/issue_events_291247.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-04T14:58:24Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291247"
}

archive/issue_comments_302794.json:

{
    "body": "<div id=\"comment:33\" align=\"right\">comment:33</div>\n\nFollow up: #20937",
    "created_at": "2016-07-04T17:33:46Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302794",
    "user": "https://github.com/mkoeppe"
}
comment:33

Follow up: #20937


archive/issue_comments_302795.json:

{
    "body": "<div id=\"comment:34\" align=\"right\">comment:34</div>\n\nI'm getting this failure\n\n```\nsage -t --long src/sage/tests/cmdline.py\n**********************************************************************\nFile \"src/sage/tests/cmdline.py\", line 219, in sage.tests.cmdline.test_executable\nFailed example:\n    print(out)\nExpected:\n    Found local metadata for sqlite-...\n    = SQLite =\n    ...\n    SQLite is a software library that implements a self-contained,\n    serverless, zero-configuration, transactional SQL database engine.\n    ...\nGot:\n    Found local metadata for sqliteautoconf3130000\n    = SQLite =\n    <BLANKLINE>\n    == Description ==\n    <BLANKLINE>\n    SQLite is a software library that implements a selfcontained,\n    serverless, zeroconfiguration, transactional SQL database engine.\n    <BLANKLINE>\n    == License ==\n    <BLANKLINE>\n    Public Domain\n    <BLANKLINE>\n    == Upstream contact ==\n    <BLANKLINE>\n     * http://www.sqlite.org\n    <BLANKLINE>\n    == Dependencies ==\n    <BLANKLINE>\n    * readline\n    <BLANKLINE>\n    == Special Update/Build Instructions ==\n    <BLANKLINE>\n    * Use the autoconf version of sqlite.\n    <BLANKLINE>\n**********************************************************************\n1 item had failures:\n   1 of 239 in sage.tests.cmdline.test_executable\n    [238 tests, 1 failure, 142.30 s]\n```",
    "created_at": "2016-07-04T21:27:35Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302795",
    "user": "https://github.com/vbraun"
}
comment:34

I'm getting this failure

sage -t --long src/sage/tests/cmdline.py
**********************************************************************
File "src/sage/tests/cmdline.py", line 219, in sage.tests.cmdline.test_executable
Failed example:
    print(out)
Expected:
    Found local metadata for sqlite-...
    = SQLite =
    ...
    SQLite is a software library that implements a self-contained,
    serverless, zero-configuration, transactional SQL database engine.
    ...
Got:
    Found local metadata for sqliteautoconf3130000
    = SQLite =
    <BLANKLINE>
    == Description ==
    <BLANKLINE>
    SQLite is a software library that implements a selfcontained,
    serverless, zeroconfiguration, transactional SQL database engine.
    <BLANKLINE>
    == License ==
    <BLANKLINE>
    Public Domain
    <BLANKLINE>
    == Upstream contact ==
    <BLANKLINE>
     * http://www.sqlite.org
    <BLANKLINE>
    == Dependencies ==
    <BLANKLINE>
    * readline
    <BLANKLINE>
    == Special Update/Build Instructions ==
    <BLANKLINE>
    * Use the autoconf version of sqlite.
    <BLANKLINE>
**********************************************************************
1 item had failures:
   1 of 239 in sage.tests.cmdline.test_executable
    [238 tests, 1 failure, 142.30 s]

archive/issue_events_291248.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-04T21:27:35Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291248"
}

archive/issue_events_291249.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-04T21:27:35Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291249"
}

archive/issue_comments_302796.json:

{
    "body": "<div id=\"comment:35\" align=\"right\">comment:35</div>\n\nlooks like a monster is eating up all `-` in there: in `sqlite-autoconf3130000`, in `self-contained`, in `zero-configuration`. So there is something wrong in the update of `build/bin/sage-logger`. (The problem is reproducible on Linux as well as on OSX).",
    "created_at": "2016-07-04T22:13:58Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302796",
    "user": "https://github.com/dimpase"
}
comment:35

looks like a monster is eating up all - in there: in sqlite-autoconf3130000, in self-contained, in zero-configuration. So there is something wrong in the update of build/bin/sage-logger. (The problem is reproducible on Linux as well as on OSX).


archive/issue_comments_302797.json:

{
    "body": "<div id=\"comment:36\" align=\"right\">comment:36</div>\n\nPerhaps it's best to use a simple solution that doesn't try to be interactive...",
    "created_at": "2016-07-04T22:33:07Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302797",
    "user": "https://github.com/mkoeppe"
}
comment:36

Perhaps it's best to use a simple solution that doesn't try to be interactive...


archive/issue_comments_302798.json:

{
    "body": "<div id=\"comment:37\" align=\"right\">comment:37</div>\n\nindeed, `-` does not get echoed:\n\n```\n$ cat blah\noh-oh\n\n$ while IFS= read -d'' -s -n 1 char; do echo -n \"$char\"; done <blah\nohoh\n\n```",
    "created_at": "2016-07-05T09:11:35Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302798",
    "user": "https://github.com/dimpase"
}
comment:37

indeed, - does not get echoed:

$ cat blah
oh-oh

$ while IFS= read -d'' -s -n 1 char; do echo -n "$char"; done <blah
ohoh


archive/issue_comments_302799.json:

{
    "body": "<div id=\"comment:38\" align=\"right\">comment:38</div>\n\nFantastic.  I'm this close to just rewriting this script in Python....",
    "created_at": "2016-07-05T09:18:59Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302799",
    "user": "https://github.com/embray"
}
comment:38

Fantastic. I'm this close to just rewriting this script in Python....


archive/issue_comments_302800.json:

{
    "body": "<div id=\"comment:39\" align=\"right\">comment:39</div>\n\nIncidentally, `read -N 1` (as it was before) does *not* inexplicably eat `-`.",
    "created_at": "2016-07-05T09:21:38Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302800",
    "user": "https://github.com/embray"
}
comment:39

Incidentally, read -N 1 (as it was before) does not inexplicably eat -.


archive/issue_comments_302801.json:

{
    "body": "<div id=\"comment:40\" align=\"right\">comment:40</div>\n\nThis is so effing bizarre I had to ask about it on Stack Overflow: http://stackoverflow.com/questions/38199974/bash-read-mystery-read-d-s-n-1-eats-hyphens\n\nI think it's a bug in bash, personally, or at least  very ill-documented behavior.  In the meantime I do have a work-around.",
    "created_at": "2016-07-05T09:41:04Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302801",
    "user": "https://github.com/embray"
}
comment:40

This is so effing bizarre I had to ask about it on Stack Overflow: http://stackoverflow.com/questions/38199974/bash-read-mystery-read-d-s-n-1-eats-hyphens

I think it's a bug in bash, personally, or at least very ill-documented behavior. In the meantime I do have a work-around.


archive/issue_comments_302802.json:

{
    "body": "<div id=\"comment:41\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/4ce1311c5eb580adc85ab95f596e85d13145847c\"><code>4ce1311</code></a></td><td><code>Don't use -d'' to read, since it mysteriously treats - as a delimiter.</code></td></tr></table>\n",
    "created_at": "2016-07-05T09:49:31Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302802",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

4ce1311Don't use -d'' to read, since it mysteriously treats - as a delimiter.

archive/issue_comments_302803.json:

{
    "body": "Changed commit from **[`0fc8fde`](https://github.com/sagemath/sagetrac-mirror/commit/0fc8fde498193be273b22ec69e5e97a67caa0dc0)** to **[`4ce1311`](https://github.com/sagemath/sagetrac-mirror/commit/4ce1311c5eb580adc85ab95f596e85d13145847c)**",
    "created_at": "2016-07-05T09:49:31Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302803",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 0fc8fde to 4ce1311


archive/issue_events_291250.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-05T09:50:16Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291250"
}

archive/issue_events_291251.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-05T09:50:16Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291251"
}

archive/issue_comments_302804.json:

{
    "body": "<div id=\"comment:42\" align=\"right\">comment:42</div>\n\nFixed the issue with `sage-logger` eating hyphens.",
    "created_at": "2016-07-05T09:50:16Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302804",
    "user": "https://github.com/embray"
}
comment:42

Fixed the issue with sage-logger eating hyphens.


archive/issue_comments_302805.json:

{
    "body": "<div id=\"comment:43\" align=\"right\">comment:43</div>\n\nReplying to [@embray](#comment%3A40):\n> This is so effing bizarre I had to ask about it on Stack Overflow: http://stackoverflow.com/questions/38199974/bash-read-mystery-read-d-s-n-1-eats-hyphens\n> \n> I think it's a bug in bash, personally, or at least  very ill-documented behavior.  In the meantime I do have a work-around.\n\nThe internet has solved your problem - you must have a space between `-d` and `''` !\n(so this must also be fixed in the other place where you use `-d*` instead of `-d *`)",
    "created_at": "2016-07-05T11:20:54Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302805",
    "user": "https://github.com/dimpase"
}
comment:43

Replying to @embray:

This is so effing bizarre I had to ask about it on Stack Overflow: http://stackoverflow.com/questions/38199974/bash-read-mystery-read-d-s-n-1-eats-hyphens

I think it's a bug in bash, personally, or at least very ill-documented behavior. In the meantime I do have a work-around.

The internet has solved your problem - you must have a space between -d and '' ! (so this must also be fixed in the other place where you use -d* instead of -d *)


archive/issue_events_291252.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-05T11:20:54Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291252"
}

archive/issue_events_291253.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-05T11:20:54Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291253"
}

archive/issue_comments_302806.json:

{
    "body": "<div id=\"comment:44\" align=\"right\">comment:44</div>\n\nWow, I feel silly.  But not too silly either--bash's behavior here is really quite silly IMO.  But very nice.\n\nI actually didn't use `-d*` anywhere else--at least in the current version of this patch the `-d` flag is not used at all.  But I'll still update the patch once more time to use this, since it will simplify things *slightly''.",
    "created_at": "2016-07-05T12:03:01Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302806",
    "user": "https://github.com/embray"
}
comment:44

Wow, I feel silly. But not too silly either--bash's behavior here is really quite silly IMO. But very nice.

I actually didn't use -d* anywhere else--at least in the current version of this patch the -d flag is not used at all. But I'll still update the patch once more time to use this, since it will simplify things *slightly''.


archive/issue_comments_302807.json:

{
    "body": "<div id=\"comment:45\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/7a6f70c6cb3f7106109d61093fc07240e4a5bfe1\"><code>7a6f70c</code></a></td><td><code>Now that we know what the correct syntax is, went back to using `-d ''`</code></td></tr></table>\n",
    "created_at": "2016-07-05T12:12:33Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302807",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

7a6f70cNow that we know what the correct syntax is, went back to using `-d ''`

archive/issue_comments_302808.json:

{
    "body": "Changed commit from **[`4ce1311`](https://github.com/sagemath/sagetrac-mirror/commit/4ce1311c5eb580adc85ab95f596e85d13145847c)** to **[`7a6f70c`](https://github.com/sagemath/sagetrac-mirror/commit/7a6f70c6cb3f7106109d61093fc07240e4a5bfe1)**",
    "created_at": "2016-07-05T12:12:33Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302808",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 4ce1311 to 7a6f70c


archive/issue_events_291254.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-05T12:20:44Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291254"
}

archive/issue_events_291255.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-05T12:20:44Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291255"
}

archive/issue_comments_302809.json:

{
    "body": "Changed commit from **[`7a6f70c`](https://github.com/sagemath/sagetrac-mirror/commit/7a6f70c6cb3f7106109d61093fc07240e4a5bfe1)** to **[`7055736`](https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836)**",
    "created_at": "2016-07-05T12:23:28Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302809",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 7a6f70c to 7055736


archive/issue_comments_302810.json:

{
    "body": "<div id=\"comment:47\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836\"><code>7055736</code></a></td><td><code>Replace one more example of echo -n with printf</code></td></tr></table>\n",
    "created_at": "2016-07-05T12:23:28Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302810",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

7055736Replace one more example of echo -n with printf

archive/issue_comments_302811.json:

{
    "body": "<div id=\"comment:48\" align=\"right\">comment:48</div>\n\nOK, good.",
    "created_at": "2016-07-05T12:38:49Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302811",
    "user": "https://github.com/dimpase"
}
comment:48

OK, good.


archive/issue_events_291256.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-05T12:38:49Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291256"
}

archive/issue_events_291257.json:

{
    "actor": "https://github.com/dimpase",
    "created_at": "2016-07-05T12:38:49Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291257"
}

archive/issue_comments_302812.json:

{
    "body": "<div id=\"comment:49\" align=\"right\">comment:49</div>\n\nReplying to [@embray](#comment%3A44):\n> Wow, I feel silly.  But not too silly either--bash's behavior here is really quite silly IMO.  But very nice.\n\nIt's not silly, it's as documented.  `read -d'' -s ...` is equivalent to `read -d '-s' ...` (where only the first character of the string argument `'-s'` is taken as the delimiter, as documented).",
    "created_at": "2016-07-05T21:54:54Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302812",
    "user": "https://github.com/nexttime"
}
comment:49

Replying to @embray:

Wow, I feel silly. But not too silly either--bash's behavior here is really quite silly IMO. But very nice.

It's not silly, it's as documented. read -d'' -s ... is equivalent to read -d '-s' ... (where only the first character of the string argument '-s' is taken as the delimiter, as documented).


archive/issue_comments_302813.json:

{
    "body": "<div id=\"comment:50\" align=\"right\">comment:50</div>\n\nThat's clearly the wrong solution to the problem.\n\nDid anyone even *think* of performance when replacing `sed` by a character-by-character *shell loop* (in addition with two conditionals in it)?\n\nOne should probably try this on a single-, maybe dual-core machine.\n\n---\n\nHow about simply changing the scripts to output a newline when prompting the user for something, at least when the sage-logger is used?",
    "created_at": "2016-07-05T23:13:05Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302813",
    "user": "https://github.com/nexttime"
}
comment:50

That's clearly the wrong solution to the problem.

Did anyone even think of performance when replacing sed by a character-by-character shell loop (in addition with two conditionals in it)?

One should probably try this on a single-, maybe dual-core machine.


How about simply changing the scripts to output a newline when prompting the user for something, at least when the sage-logger is used?


archive/issue_events_291258.json:

{
    "actor": "https://github.com/nexttime",
    "created_at": "2016-07-05T23:13:05Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291258"
}

archive/issue_events_291259.json:

{
    "actor": "https://github.com/nexttime",
    "created_at": "2016-07-05T23:13:05Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291259"
}

archive/issue_comments_302814.json:

{
    "body": "<div id=\"comment:51\" align=\"right\">comment:51</div>\n\nI didn't want to wait for the latter to finish, but now it did:\n\n```sh\n$ time ./sage-logger-7.3.beta6 -p \"cat logs/install.log\" test-current.log >/dev/null\n\nreal\t0m0.311s\nuser\t0m0.170s\nsys\t0m0.160s\n$ time ./sage-logger-20884 -p \"cat logs/install.log\" test-new.log >/dev/null\n\nreal\t25m12.620s\nuser\t24m20.680s\nsys\t0m51.900s\n```\n\n(Note that the comparison isn't even exactly fair, since `sed` had to output a longer prefix, and the second time, `install.log` was already in the filesystem cache. ;-) )",
    "created_at": "2016-07-05T23:29:23Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302814",
    "user": "https://github.com/nexttime"
}
comment:51

I didn't want to wait for the latter to finish, but now it did:

$ time ./sage-logger-7.3.beta6 -p "cat logs/install.log" test-current.log >/dev/null

real	0m0.311s
user	0m0.170s
sys	0m0.160s
$ time ./sage-logger-20884 -p "cat logs/install.log" test-new.log >/dev/null

real	25m12.620s
user	24m20.680s
sys	0m51.900s

(Note that the comparison isn't even exactly fair, since sed had to output a longer prefix, and the second time, install.log was already in the filesystem cache. ;-) )


archive/issue_events_291260.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-06T07:28:16Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291260"
}

archive/issue_events_291261.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-06T07:28:16Z",
    "event": "closed",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291261"
}

archive/issue_comments_302815.json:

{
    "body": "Changed branch from **[u/embray/disable-exp-pkg-prompt](https://github.com/sagemath/sagetrac-mirror/tree/u/embray/disable-exp-pkg-prompt)** to **[`7055736`](https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836)**",
    "created_at": "2016-07-06T07:28:16Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302815",
    "user": "https://github.com/vbraun"
}

Changed branch from u/embray/disable-exp-pkg-prompt to 7055736


archive/issue_comments_302816.json:

{
    "body": "Changed commit from **[`7055736`](https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836)** to none",
    "created_at": "2016-07-06T10:00:54Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302816",
    "user": "https://github.com/embray"
}

Changed commit from 7055736 to none


archive/issue_comments_302817.json:

{
    "body": "<div id=\"comment:53\" align=\"right\">comment:53</div>\n\n> How about simply changing the scripts to output a newline when prompting the user for something, at least when the sage-logger is used?\n\nThose scripts don't necessarily have any way to know that `sage-logger` is being used, nor should they.\n\nI think the test of just `cat`ting is not quite fair either.  In a real build the overhead of the commands being run far outweighs the overhead of the logger.  For example running `make patch` on current `develop` I got:\n\n```\nreal    2m14.225s\nuser    0m29.614s\nsys     1m2.397s\n```\n\nwhile on my branch:\n\n```\nreal    2m18.844s\nuser    0m38.751s\nsys     1m4.341s\n```\n\nSo maybe possibly a little slower but hard to say from a single data point.\n\nThere's no need to emphasize *shell loop* since it's using only shell built-ins, or should be, so that shouldn't be a significant source of overhead.  Ultimately `sed` is looping over one character at a time too.  One thing that might speed this up a bit is to not `printf` for every character, but at least buffer that.\n\nStill, point partly taken.  I might prefer to go with my earlier instinct and just rewrite it in Python.  I think using `sed` just to prepend to a line also feels like a blunt instrument.",
    "created_at": "2016-07-06T10:00:54Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302817",
    "user": "https://github.com/embray"
}
comment:53

How about simply changing the scripts to output a newline when prompting the user for something, at least when the sage-logger is used?

Those scripts don't necessarily have any way to know that sage-logger is being used, nor should they.

I think the test of just catting is not quite fair either. In a real build the overhead of the commands being run far outweighs the overhead of the logger. For example running make patch on current develop I got:

real    2m14.225s
user    0m29.614s
sys     1m2.397s

while on my branch:

real    2m18.844s
user    0m38.751s
sys     1m4.341s

So maybe possibly a little slower but hard to say from a single data point.

There's no need to emphasize shell loop since it's using only shell built-ins, or should be, so that shouldn't be a significant source of overhead. Ultimately sed is looping over one character at a time too. One thing that might speed this up a bit is to not printf for every character, but at least buffer that.

Still, point partly taken. I might prefer to go with my earlier instinct and just rewrite it in Python. I think using sed just to prepend to a line also feels like a blunt instrument.


archive/issue_comments_302818.json:

{
    "body": "<div id=\"comment:54\" align=\"right\">comment:54</div>\n\n> It's not silly, it's as documented. read -d'' -s ... is equivalent to read -d '-s' ... (where only the first character of the string argument '-s' is taken as the delimiter, as documented).\n\nJust because it's as documented (which I see now, on very careful read, that the syntax must be `-d<space><delimiter>`).  That's not *unreasonable*, just different from how other commands (specifically `cut`, which is why I was mentally comparing to) take their arguments.  You can't well argue that the syntax of shell commands is always logical or consistent.",
    "created_at": "2016-07-06T10:10:04Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302818",
    "user": "https://github.com/embray"
}
comment:54

It's not silly, it's as documented. read -d'' -s ... is equivalent to read -d '-s' ... (where only the first character of the string argument '-s' is taken as the delimiter, as documented).

Just because it's as documented (which I see now, on very careful read, that the syntax must be -d<space><delimiter>). That's not unreasonable, just different from how other commands (specifically cut, which is why I was mentally comparing to) take their arguments. You can't well argue that the syntax of shell commands is always logical or consistent.


archive/issue_comments_302819.json:

{
    "body": "<div id=\"comment:55\" align=\"right\">comment:55</div>\n\nFWIW, I also tried running `make patch` with a version that doesn't add the prefix at all and the result from `time` was roughly the same there too.  The point is that the overhead of adding the prefix, regardless how it's done, pales in comparison to the time to run most commands that produce output during the build.",
    "created_at": "2016-07-06T14:51:15Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302819",
    "user": "https://github.com/embray"
}
comment:55

FWIW, I also tried running make patch with a version that doesn't add the prefix at all and the result from time was roughly the same there too. The point is that the overhead of adding the prefix, regardless how it's done, pales in comparison to the time to run most commands that produce output during the build.


archive/issue_comments_302820.json:

{
    "body": "<div id=\"comment:56\" align=\"right\">comment:56</div>\n\nVolker, I don't understand why you merged this when it was labeled as \"needs_work\". At one point, yes, it was marked as \"positive_review\", but when you merged it, it had gone back to \"needs_work\" and had been that way for 12 hours.",
    "created_at": "2016-07-06T14:54:09Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302820",
    "user": "https://github.com/jhpalmieri"
}
comment:56

Volker, I don't understand why you merged this when it was labeled as "needs_work". At one point, yes, it was marked as "positive_review", but when you merged it, it had gone back to "needs_work" and had been that way for 12 hours.


archive/issue_comments_302821.json:

{
    "body": "<div id=\"comment:57\" align=\"right\">comment:57</div>\n\nI can confirm Leif's timings. On an OS X machine:\n\n- `make build` from a fresh tarball: 73 minutes. Within that build, it took 19m53s to build `gcc`.\n- `make build` from a fresh tarball + this branch: 93 minutes. Within that build, it took 29m57s to build `gcc`.\n\nFollowing that:\n- `./sage -f gcc` took 20m39s without this branch.\n- `./sage -f gcc` took 29m15s with this branch.\n\nSo the timing difference can be significant. It will be more significant for larger log files, which is why it doesn't make that much difference when building `patch`.",
    "created_at": "2016-07-06T18:53:52Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302821",
    "user": "https://github.com/jhpalmieri"
}
comment:57

I can confirm Leif's timings. On an OS X machine:

  • make build from a fresh tarball: 73 minutes. Within that build, it took 19m53s to build gcc.
  • make build from a fresh tarball + this branch: 93 minutes. Within that build, it took 29m57s to build gcc.

Following that:

  • ./sage -f gcc took 20m39s without this branch.
  • ./sage -f gcc took 29m15s with this branch.

So the timing difference can be significant. It will be more significant for larger log files, which is why it doesn't make that much difference when building patch.


archive/issue_comments_302822.json:

{
    "body": "<div id=\"comment:58\" align=\"right\">comment:58</div>\n\nPerhaps Erik can explain the need to patch `build/bin/sage-logger` - this is the part that causes the slowdown.",
    "created_at": "2016-07-06T19:22:41Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302822",
    "user": "https://github.com/dimpase"
}
comment:58

Perhaps Erik can explain the need to patch build/bin/sage-logger - this is the part that causes the slowdown.


archive/issue_events_291262.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-06T19:55:29Z",
    "event": "reopened",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291262"
}

archive/issue_comments_302823.json:

{
    "body": "<div id=\"comment:60\" align=\"right\">comment:60</div>\n\nOkay, thanks for the full `make build` comparison.  That's definitely more convincing.  I'll see what I can do to tinker.\n\n> Perhaps Erik can explain the need to patch build/bin/sage-logger - this is the part that causes the slowdown.\n\nI could--there are good reasons.  But regardless as this stands now it's adding more overhead than any explanation I have justifies, so back to the drawing board.",
    "created_at": "2016-07-07T07:50:05Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302823",
    "user": "https://github.com/embray"
}
comment:60

Okay, thanks for the full make build comparison. That's definitely more convincing. I'll see what I can do to tinker.

Perhaps Erik can explain the need to patch build/bin/sage-logger - this is the part that causes the slowdown.

I could--there are good reasons. But regardless as this stands now it's adding more overhead than any explanation I have justifies, so back to the drawing board.


archive/issue_comments_302824.json:

{
    "body": "<div id=\"comment:61\" align=\"right\">comment:61</div>\n\nReplying to [@embray](#comment%3A53):\n> > How about simply changing the scripts to output a newline when prompting the user for something, at least when the sage-logger is used?\n> \n> \n> Those scripts don't necessarily have any way to know that `sage-logger` is being used, nor should they.\n\nWhile you could set some env var in \"non-interactive\" mode (or when the sage-logger is used), what's the problem with having a newline after `\"... [Y/n]?\"`?\n\n\n\n\n> I think the test of just `cat`ting is not quite fair either.  In a real build the overhead of the commands being run far outweighs the overhead of the logger.\n\nThe timings I listed are (the lower bound of) *consumed CPU time you get in addition* with every build from scratch (not taking into account a GCC build btw.); on a single-core that's what adds to the wall time (plus presumably the overhead of more context switches), and regardless of whether you build any experimental package (or any other question is asked). \n\n\n\n\n> There's no need to emphasize *shell loop* since it's using only shell built-ins, or should be,\n\nYou were not using bash's built-in test (`[[ ... ]]`), but the speed-up with the latter isn't huge either:\n\n```sh\n$ time ./sage-logger-20884-bt -p \"cat logs/install.log\" test-nw2.log >/dev/null\n\nreal\t21m51.249s\nuser\t21m15.210s\nsys\t0m36.170s\n```\n(i.e., ~22 minutes vs. previously ~25 minutes, saving about 3.5 minutes, and all tests were performed on the same, a *relatively fast* machine; note that `sys` though dropped by nearly one third.)\n\n\n\n\n> so that shouldn't be a significant source of overhead.  Ultimately `sed` is looping over one character at a time too.\n\nBut it's not an interpreter, it compiles the regular expressions instead of rereading and interpreting them over and over, and btw. operates on lines of input -- you've seen the difference (orders of magnitude).\n\n\n\n\n> [...] I might prefer to go with my earlier instinct and just rewrite it in Python.  I think using `sed` just to prepend to a line also feels like a blunt instrument.\n\nPlease don't, `sed` is IMHO pretty adequate in lack of other portable tools for this trivial task (prepending something to each line); regarding that we meanwhile have separate log files for each package it's a bit superfluous though, even for parallel builds.  But *as is* (with `sed`), it doesn't hurt much.\n\n(If at all, I'd personally rewrite the whole sage-logger in C.)",
    "created_at": "2016-07-08T16:16:14Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302824",
    "user": "https://github.com/nexttime"
}
comment:61

Replying to @embray:

How about simply changing the scripts to output a newline when prompting the user for something, at least when the sage-logger is used?

Those scripts don't necessarily have any way to know that sage-logger is being used, nor should they.

While you could set some env var in "non-interactive" mode (or when the sage-logger is used), what's the problem with having a newline after "... [Y/n]?"?

I think the test of just catting is not quite fair either. In a real build the overhead of the commands being run far outweighs the overhead of the logger.

The timings I listed are (the lower bound of) consumed CPU time you get in addition with every build from scratch (not taking into account a GCC build btw.); on a single-core that's what adds to the wall time (plus presumably the overhead of more context switches), and regardless of whether you build any experimental package (or any other question is asked).

There's no need to emphasize shell loop since it's using only shell built-ins, or should be,

You were not using bash's built-in test ([[ ... ]]), but the speed-up with the latter isn't huge either:

$ time ./sage-logger-20884-bt -p "cat logs/install.log" test-nw2.log >/dev/null

real	21m51.249s
user	21m15.210s
sys	0m36.170s

(i.e., ~22 minutes vs. previously ~25 minutes, saving about 3.5 minutes, and all tests were performed on the same, a relatively fast machine; note that sys though dropped by nearly one third.)

so that shouldn't be a significant source of overhead. Ultimately sed is looping over one character at a time too.

But it's not an interpreter, it compiles the regular expressions instead of rereading and interpreting them over and over, and btw. operates on lines of input -- you've seen the difference (orders of magnitude).

[...] I might prefer to go with my earlier instinct and just rewrite it in Python. I think using sed just to prepend to a line also feels like a blunt instrument.

Please don't, sed is IMHO pretty adequate in lack of other portable tools for this trivial task (prepending something to each line); regarding that we meanwhile have separate log files for each package it's a bit superfluous though, even for parallel builds. But as is (with sed), it doesn't hurt much.

(If at all, I'd personally rewrite the whole sage-logger in C.)


archive/issue_comments_302825.json:

{
    "body": "<div id=\"comment:62\" align=\"right\">comment:62</div>\n\nReplying to [@embray](#comment%3A54):\n> > It's not silly, it's as documented. read -d'' -s ... is equivalent to read -d '-s' ... (where only the first character of the string argument '-s' is taken as the delimiter, as documented).\n> \n> \n> Just because it's as documented (which I see now, on very careful read, that the syntax must be `-d<space><delimiter>`).  That's not *unreasonable*, just different from how other commands (specifically `cut`, which is why I was mentally comparing to) take their arguments.  You can't well argue that the syntax of shell commands is always logical or consistent.\n\nYou were also passing an **empty** string, which *there* gets removed altogether in shell preparsing (`-d*` => `-d`).  (You could likely have written `re*ad ...` for example... 8-) )",
    "created_at": "2016-07-08T16:26:38Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302825",
    "user": "https://github.com/nexttime"
}
comment:62

Replying to @embray:

It's not silly, it's as documented. read -d'' -s ... is equivalent to read -d '-s' ... (where only the first character of the string argument '-s' is taken as the delimiter, as documented).

Just because it's as documented (which I see now, on very careful read, that the syntax must be -d<space><delimiter>). That's not unreasonable, just different from how other commands (specifically cut, which is why I was mentally comparing to) take their arguments. You can't well argue that the syntax of shell commands is always logical or consistent.

You were also passing an empty string, which there gets removed altogether in shell preparsing (-d* => -d). (You could likely have written re*ad ... for example... 8-) )


archive/issue_comments_302826.json:

{
    "body": "<div id=\"comment:63\" align=\"right\">comment:63</div>\n\nAnyhow, perhaps we should keep `sage-logger` as it is, and proceed with the rest of the patch.",
    "created_at": "2016-07-09T15:01:23Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302826",
    "user": "https://github.com/dimpase"
}
comment:63

Anyhow, perhaps we should keep sage-logger as it is, and proceed with the rest of the patch.


archive/issue_comments_302827.json:

{
    "body": "<div id=\"comment:64\" align=\"right\">comment:64</div>\n\nI have rewritten `sage-logger` in Python.  I'm still doing some performance tests (i.e. on a full build) but all indication so far is that performance is the same or slightly better than the current version.",
    "created_at": "2016-07-11T11:23:47Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302827",
    "user": "https://github.com/embray"
}
comment:64

I have rewritten sage-logger in Python. I'm still doing some performance tests (i.e. on a full build) but all indication so far is that performance is the same or slightly better than the current version.


archive/issue_comments_302828.json:

{
    "body": "<div id=\"comment:65\" align=\"right\">comment:65</div>\n\n> You were not using bash's built-in test `[[ ]]`\n\nNo, I was using bash's built-in test `[ ]`.  This is still a bash built-in--it does not run as a separate process.  The only difference between `[ ]` and `[[ ]]` is that the latter is bash-specific and less portable.  But when run explicitly in bash, as opposed to an arbitrary shell, `test` is still a shell built-in.",
    "created_at": "2016-07-11T11:26:56Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302828",
    "user": "https://github.com/embray"
}
comment:65

You were not using bash's built-in test [[ ]]

No, I was using bash's built-in test [ ]. This is still a bash built-in--it does not run as a separate process. The only difference between [ ] and [[ ]] is that the latter is bash-specific and less portable. But when run explicitly in bash, as opposed to an arbitrary shell, test is still a shell built-in.


archive/issue_comments_302829.json:

{
    "body": "<div id=\"comment:66\" align=\"right\">comment:66</div>\n\n> (If at all, I'd personally rewrite the whole sage-logger in C.)\n\nI considered that too.  In fact it might be good to take the Python version I wrote as a prototype for a faster C version.  That said, having a Python version is easier for bootstrapping purposes, and the Python version I wrote is just as fast as the current version, by all indications.",
    "created_at": "2016-07-11T11:29:28Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302829",
    "user": "https://github.com/embray"
}
comment:66

(If at all, I'd personally rewrite the whole sage-logger in C.)

I considered that too. In fact it might be good to take the Python version I wrote as a prototype for a faster C version. That said, having a Python version is easier for bootstrapping purposes, and the Python version I wrote is just as fast as the current version, by all indications.


archive/issue_comments_302830.json:

{
    "body": "<div id=\"comment:67\" align=\"right\">comment:67</div>\n\nReplying to [@nexttime](#comment%3A61):\n> (If at all, I'd personally rewrite the whole sage-logger in C.)\n\nI considered that too.  In fact it might be good to take the Python version I wrote as a prototype for a faster C version.  That said, having a Python version is easier for bootstrapping purposes, and the Python version I wrote is just as fast as the current version, by all indications (and can certainly be sped up more than the current naive version).",
    "created_at": "2016-07-11T11:36:07Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302830",
    "user": "https://github.com/embray"
}
comment:67

Replying to @nexttime:

(If at all, I'd personally rewrite the whole sage-logger in C.)

I considered that too. In fact it might be good to take the Python version I wrote as a prototype for a faster C version. That said, having a Python version is easier for bootstrapping purposes, and the Python version I wrote is just as fast as the current version, by all indications (and can certainly be sped up more than the current naive version).


archive/issue_comments_302831.json:

{
    "body": "<div id=\"comment:68\" align=\"right\">comment:68</div>\n\nReplying to [@embray](#comment%3A65):\n> > You were not using bash's built-in test `[[ ]]`\n> \n> \n> No, I was using bash's built-in test `[ ]`.  This is still a bash built-in--it does not run as a separate process.  The only difference between `[ ]` and `[[ ]]` is that the latter is bash-specific and less portable.  But when run explicitly in bash, as opposed to an arbitrary shell, `test` is still a shell built-in.\n\nOh, that's new (to me m) and presumably to bash versions that aren't ages old)...\n\nStill, `[[` is reproducibly faster for me (bash 4.1.5) -- just retested ten times each (with just 0.5 MB input).",
    "created_at": "2016-07-11T13:16:18Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302831",
    "user": "https://github.com/nexttime"
}
comment:68

Replying to @embray:

You were not using bash's built-in test [[ ]]

No, I was using bash's built-in test [ ]. This is still a bash built-in--it does not run as a separate process. The only difference between [ ] and [[ ]] is that the latter is bash-specific and less portable. But when run explicitly in bash, as opposed to an arbitrary shell, test is still a shell built-in.

Oh, that's new (to me m) and presumably to bash versions that aren't ages old)...

Still, [[ is reproducibly faster for me (bash 4.1.5) -- just retested ten times each (with just 0.5 MB input).


archive/issue_comments_302832.json:

{
    "body": "Changed branch from **[`7055736`](https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836)** to **[u/embray/disable-exp-pkg-prompt](https://github.com/sagemath/sagetrac-mirror/tree/u/embray/disable-exp-pkg-prompt)**",
    "created_at": "2016-07-12T09:50:32Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302832",
    "user": "https://github.com/fchapoton"
}

Changed branch from 7055736 to u/embray/disable-exp-pkg-prompt


archive/issue_comments_302833.json:

{
    "body": "<div id=\"comment:69\" align=\"right\">comment:69</div>\n\nre-introduced branch name\n\n---\nNew commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/ccff00540641c9a7b19166c550433b6d4495a5ba\"><code>ccff005</code></a></td><td><code>Disable the y/n prompt when installing experimental packages.</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/611480df1194bb460abfbc77c6418bab1d0518e4\"><code>611480d</code></a></td><td><code>No matter what I do, even with sed --unbuffered, sed will read either up to the EOF or the EOL, but otherwise buffers until EOL.</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/632fea7e3912f4769fa65413c62dbbaec098b613\"><code>632fea7</code></a></td><td><code>Add a new -y argument to sage-spkg to make it automatically answer 'y' to all prompts.</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/4f7b63f16b156891638b546427f4d9c7e66c7137\"><code>4f7b63f</code></a></td><td><code>Display an additional message when continuing automatically</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/bdcfff486256625b42541e505905e3a7d2e083e7\"><code>bdcfff4</code></a></td><td><code>Two fixes:</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/0fc8fde498193be273b22ec69e5e97a67caa0dc0\"><code>0fc8fde</code></a></td><td><code>Change -N 1 to -n 1 in sage-logger, since the former does not work on</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/4ce1311c5eb580adc85ab95f596e85d13145847c\"><code>4ce1311</code></a></td><td><code>Don't use -d'' to read, since it mysteriously treats - as a delimiter.</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/7a6f70c6cb3f7106109d61093fc07240e4a5bfe1\"><code>7a6f70c</code></a></td><td><code>Now that we know what the correct syntax is, went back to using `-d ''`</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836\"><code>7055736</code></a></td><td><code>Replace one more example of echo -n with printf</code></td></tr></table>\n",
    "created_at": "2016-07-12T09:50:32Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302833",
    "user": "https://github.com/fchapoton"
}
comment:69

re-introduced branch name


New commits:

ccff005Disable the y/n prompt when installing experimental packages.
611480dNo matter what I do, even with sed --unbuffered, sed will read either up to the EOF or the EOL, but otherwise buffers until EOL.
632fea7Add a new -y argument to sage-spkg to make it automatically answer 'y' to all prompts.
4f7b63fDisplay an additional message when continuing automatically
bdcfff4Two fixes:
0fc8fdeChange -N 1 to -n 1 in sage-logger, since the former does not work on
4ce1311Don't use -d'' to read, since it mysteriously treats - as a delimiter.
7a6f70cNow that we know what the correct syntax is, went back to using `-d ''`
7055736Replace one more example of echo -n with printf

archive/issue_comments_302834.json:

{
    "body": "Commit: **[`7055736`](https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836)**",
    "created_at": "2016-07-12T09:50:32Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302834",
    "user": "https://github.com/fchapoton"
}

Commit: 7055736


archive/issue_comments_302835.json:

{
    "body": "<div id=\"comment:70\" align=\"right\">comment:70</div>\n\nIMHO we cannot solve this other than by either\n\n* disabling prompting the user, or\n* simply printing a newline after the prompt.\n\n(I think the latter solution to users is the less surprising, as it doesn't change the behaviour.)\n\n\n\n\nIf the sage-logger *did* print incomplete lines (such as a prompt from `read`), this would just mess up other output where `echo -n` is used, especially from `configure`.  We'd (again) end up with (now *wrongly* prefixed!) lines like for example\n\n```\n...\n[ foo ] checking whether make supports nested variables... /bin/grep\n[ bar ] checking build system type... yes\n[ baz ] checking for C/C++ restrict keyword... x86_64-unknown-linux-gnu\n...\n```\nwhere a prefix usually correctly refers to the package from which *the first part of a line* originated, but the result (at the end of the line) comes from another, so doesn't belong to the first part.  (When building in parallel that is, on the terminal, and in `install.log`.)\n\nIn fact, even the left part of a line wouldn't necessarily belong to the package the prefix tells.",
    "created_at": "2016-07-12T14:04:05Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302835",
    "user": "https://github.com/nexttime"
}
comment:70

IMHO we cannot solve this other than by either

  • disabling prompting the user, or
  • simply printing a newline after the prompt.

(I think the latter solution to users is the less surprising, as it doesn't change the behaviour.)

If the sage-logger did print incomplete lines (such as a prompt from read), this would just mess up other output where echo -n is used, especially from configure. We'd (again) end up with (now wrongly prefixed!) lines like for example

...
[ foo ] checking whether make supports nested variables... /bin/grep
[ bar ] checking build system type... yes
[ baz ] checking for C/C++ restrict keyword... x86_64-unknown-linux-gnu
...

where a prefix usually correctly refers to the package from which the first part of a line originated, but the result (at the end of the line) comes from another, so doesn't belong to the first part. (When building in parallel that is, on the terminal, and in install.log.)

In fact, even the left part of a line wouldn't necessarily belong to the package the prefix tells.


archive/issue_comments_302836.json:

{
    "body": "<div id=\"comment:71\" align=\"right\">comment:71</div>\n\nIMHO we should never have y/n prompts in parallel output. Its pretty much by definition not interactive. The way to pass options to non-interactive processes is via command line options.",
    "created_at": "2016-07-12T20:32:31Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302836",
    "user": "https://github.com/vbraun"
}
comment:71

IMHO we should never have y/n prompts in parallel output. Its pretty much by definition not interactive. The way to pass options to non-interactive processes is via command line options.


archive/issue_comments_302837.json:

{
    "body": "<div id=\"comment:72\" align=\"right\">comment:72</div>\n\n+1",
    "created_at": "2016-07-12T22:37:34Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302837",
    "user": "https://github.com/mkoeppe"
}
comment:72

+1


archive/issue_comments_302838.json:

{
    "body": "<div id=\"comment:73\" align=\"right\">comment:73</div>\n\n@vbraun, @mkoeppe:  It's still not clear to me what you propose.\n\nDisable/remove any prompting?  Disable it depending on how `sage-spkg` got invoked?\n\n(Shouldn't `sage -f ...` -- as given in the example -- proceed anyway, since `-f` means *force*? ;-)",
    "created_at": "2016-07-12T23:37:59Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302838",
    "user": "https://github.com/nexttime"
}
comment:73

@vbraun, @mkoeppe: It's still not clear to me what you propose.

Disable/remove any prompting? Disable it depending on how sage-spkg got invoked?

(Shouldn't sage -f ... -- as given in the example -- proceed anyway, since -f means force? ;-)


archive/issue_comments_302839.json:

{
    "body": "<div id=\"comment:74\" align=\"right\">comment:74</div>\n\nReplying to [@vbraun](#comment%3A71):\n> IMHO we should never have y/n prompts in parallel output. Its pretty much by definition not interactive. The way to pass options to non-interactive processes is via command line options.\n\nI had this discussion with Dima and we agreed that there should be no prompts when running `make` directly, and that there should only be such a prompt when using the high level interface of `./sage -i`.  So that's a large part of what this patch does, before getting mired in all the issues with the prompt itself.\n\nMaybe I should just refactor things further so that `sage-spkg` itself never prompts (and hence the prompt is never raised during `make`, which calls `sage-spkg`), and instead the prompt is `only` issued by the `sage` script itself before any calls to `make`.",
    "created_at": "2016-07-13T08:52:38Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302839",
    "user": "https://github.com/embray"
}
comment:74

Replying to @vbraun:

IMHO we should never have y/n prompts in parallel output. Its pretty much by definition not interactive. The way to pass options to non-interactive processes is via command line options.

I had this discussion with Dima and we agreed that there should be no prompts when running make directly, and that there should only be such a prompt when using the high level interface of ./sage -i. So that's a large part of what this patch does, before getting mired in all the issues with the prompt itself.

Maybe I should just refactor things further so that sage-spkg itself never prompts (and hence the prompt is never raised during make, which calls sage-spkg), and instead the prompt is only issued by the sage script itself before any calls to make.


archive/issue_comments_302840.json:

{
    "body": "<div id=\"comment:75\" align=\"right\">comment:75</div>\n\nReplying to [@nexttime](#comment%3A70):\n> If the sage-logger *did* print incomplete lines (such as a prompt from `read`), this would just mess up other output where `echo -n` is used, especially from `configure`.  We'd (again) end up with (now *wrongly* prefixed!) lines like for example\n\nPoint taken on this--I didn't believe this would happen as I did't think `make` would interleave the output of individual commands but it definitely can if it's waiting for output for some command, as is wont to happen with `configure`.  Though if you `make` is new enough (>=4.0) you can enable this behavior with `-Oline`. \n\nThat said, this isn't just an issue with sage-logger.  This can happen even without it, and also happened with the previous version of the logger before I added the prefixing (and the line-buffering that came with it).\n\nI do agree with Volker and others though that there's no reason for user input prompts in make.  So I'll go with my proposed solution above and move the prompt entirely to the top-level user interface, and that will simplify this whole matter greatly.\n\nI would still propose keeping my Python implementation of sage-logger because why not?  I can change it to be line-based instead of character-based and that should actually make it faster than the current version by a bit, I think.",
    "created_at": "2016-07-13T09:55:07Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302840",
    "user": "https://github.com/embray"
}
comment:75

Replying to @nexttime:

If the sage-logger did print incomplete lines (such as a prompt from read), this would just mess up other output where echo -n is used, especially from configure. We'd (again) end up with (now wrongly prefixed!) lines like for example

Point taken on this--I didn't believe this would happen as I did't think make would interleave the output of individual commands but it definitely can if it's waiting for output for some command, as is wont to happen with configure. Though if you make is new enough (>=4.0) you can enable this behavior with -Oline.

That said, this isn't just an issue with sage-logger. This can happen even without it, and also happened with the previous version of the logger before I added the prefixing (and the line-buffering that came with it).

I do agree with Volker and others though that there's no reason for user input prompts in make. So I'll go with my proposed solution above and move the prompt entirely to the top-level user interface, and that will simplify this whole matter greatly.

I would still propose keeping my Python implementation of sage-logger because why not? I can change it to be line-based instead of character-based and that should actually make it faster than the current version by a bit, I think.


archive/issue_comments_302841.json:

{
    "body": "<div id=\"comment:76\" align=\"right\">comment:76</div>\n\n+1 for python implementation instead of some untestable bash noise.",
    "created_at": "2016-07-13T10:08:27Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302841",
    "user": "https://github.com/vbraun"
}
comment:76

+1 for python implementation instead of some untestable bash noise.


archive/issue_comments_302842.json:

{
    "body": "<div id=\"comment:77\" align=\"right\">comment:77</div>\n\nReplying to [@vbraun](#comment%3A76):\n> +1 for python implementation instead of some untestable bash noise.\n\nThe only change I'd perhaps make to the sage-logger (which works and is sufficiently short and simple enough) is to replace `$SED \"s/^/$prefix/\"` by `cat` if the prefix is empty (i.e., no `-p` given), in order to win a *useless use of cat* award.  (More precisely, also move the argument to `sed` into `SED`, and let `SED=cat` if the prefix is empty.  Otherwise we'd have to nearly duplicate a line in case the prefix is empty.)\n\nAlso, it's fast enough with `sed` (see figures above), so reimplementing it in Python would IMHO be just yet another case of *needless use of Python* -- in a script that would be executed by *both* the system's Python and (later) Sage's.\n\n---\n\nI'd be happy with the current branch if Erik just removed the changes to sage-logger from it.",
    "created_at": "2016-07-13T13:52:40Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302842",
    "user": "https://github.com/nexttime"
}
comment:77

Replying to @vbraun:

+1 for python implementation instead of some untestable bash noise.

The only change I'd perhaps make to the sage-logger (which works and is sufficiently short and simple enough) is to replace $SED "s/^/$prefix/" by cat if the prefix is empty (i.e., no -p given), in order to win a useless use of cat award. (More precisely, also move the argument to sed into SED, and let SED=cat if the prefix is empty. Otherwise we'd have to nearly duplicate a line in case the prefix is empty.)

Also, it's fast enough with sed (see figures above), so reimplementing it in Python would IMHO be just yet another case of needless use of Python -- in a script that would be executed by both the system's Python and (later) Sage's.


I'd be happy with the current branch if Erik just removed the changes to sage-logger from it.


archive/issue_events_291263.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-07-16T12:24:56Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/p%3A%20critical%20/%202",
    "label_color": "ff7700",
    "label_name": "p: critical / 2",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291263"
}

archive/issue_events_291264.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-07-16T12:24:56Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/p%3A%20blocker%20/%201",
    "label_color": "ff0000",
    "label_name": "p: blocker / 1",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291264"
}

archive/issue_comments_302843.json:

{
    "body": "<div id=\"comment:79\" align=\"right\">comment:79</div>\n\nReplying to [@mkoeppe](#comment%3A78):\n> *** Priority** changed from critical to blocker\n\nCould we then postpone beautifying the sage-logger to another ticket?\n\nOr do we want to wait with the next release until Erik had a *\"quiet, rainy day\"*? ;-)",
    "created_at": "2016-07-16T12:40:24Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302843",
    "user": "https://github.com/nexttime"
}
comment:79

Replying to @mkoeppe:

*** Priority** changed from critical to blocker

Could we then postpone beautifying the sage-logger to another ticket?

Or do we want to wait with the next release until Erik had a "quiet, rainy day"? ;-)


archive/issue_comments_302844.json:

{
    "body": "<div id=\"comment:80\" align=\"right\">comment:80</div>\n\nI have not followed the details of this implementation.\nBut in any case breaking the installation of all experimental packages is a blocker, IMO.",
    "created_at": "2016-07-16T12:51:53Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302844",
    "user": "https://github.com/mkoeppe"
}
comment:80

I have not followed the details of this implementation. But in any case breaking the installation of all experimental packages is a blocker, IMO.


archive/issue_comments_302845.json:

{
    "body": "<div id=\"comment:81\" align=\"right\">comment:81</div>\n\nIt isn't really broken, you just have to hit return when installation stops with the warning, or do e.g.\n\n```sh\n  echo yes | ./sage -i latte_int\n```",
    "created_at": "2016-07-16T13:46:42Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302845",
    "user": "https://github.com/nexttime"
}
comment:81

It isn't really broken, you just have to hit return when installation stops with the warning, or do e.g.

  echo yes | ./sage -i latte_int

archive/issue_comments_302846.json:

{
    "body": "<div id=\"comment:82\" align=\"right\">comment:82</div>\n\nInstead of fixing this, could as well revert #20640, #20708, which caused this problem.",
    "created_at": "2016-07-16T18:37:35Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302846",
    "user": "https://github.com/mkoeppe"
}
comment:82

Instead of fixing this, could as well revert #20640, #20708, which caused this problem.


archive/issue_comments_302847.json:

{
    "body": "<div id=\"comment:83\" align=\"right\">comment:83</div>\n\nI'm leaving tomorrow on vacation (originally today but my travel plans were diverted from the events in Turkey).\n\nIf someone else wants to fix this a very easy workaround (in fact, I would say a solution) without even touching sage-logger is to move the code that prompts the user out of `build/bin/sage-spkg` and into the `sage` script itself which is the \"user interface\" and the only script that should be prompting anything.",
    "created_at": "2016-07-18T09:10:44Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302847",
    "user": "https://github.com/embray"
}
comment:83

I'm leaving tomorrow on vacation (originally today but my travel plans were diverted from the events in Turkey).

If someone else wants to fix this a very easy workaround (in fact, I would say a solution) without even touching sage-logger is to move the code that prompts the user out of build/bin/sage-spkg and into the sage script itself which is the "user interface" and the only script that should be prompting anything.


archive/issue_comments_302848.json:

{
    "body": "<div id=\"comment:84\" align=\"right\">comment:84</div>\n\n> so reimplementing it in Python would IMHO be just yet another case of needless use of Python -- in a script that would be executed by both the system's Python and (later) Sage's.\n\nIt's already been done.  And this is a moot point because Python is a requirement now for bootstrapping the build system, so while it may be \"needless\" the more we get rid of piles of bash noise the better.  I agree with Volker here.",
    "created_at": "2016-07-18T09:12:30Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302848",
    "user": "https://github.com/embray"
}
comment:84

so reimplementing it in Python would IMHO be just yet another case of needless use of Python -- in a script that would be executed by both the system's Python and (later) Sage's.

It's already been done. And this is a moot point because Python is a requirement now for bootstrapping the build system, so while it may be "needless" the more we get rid of piles of bash noise the better. I agree with Volker here.


archive/issue_comments_302849.json:

{
    "body": "<div id=\"comment:85\" align=\"right\">comment:85</div>\n\nEven easier is to modify `sage-spkg` so it still handles the prompting (otherwise a lot of package parsing stuff needs to be duplicated), but for `./sage -i` first have it run `sage-spkg -d` (download-only) which is the only context in which those prompts are displayed, then run `make` (which in turn calls `sage-spkg`) but with the package already downloaded, it won't prompt.  I might add some options to `sage-spkg` to make extra sure it doesn't prompt.",
    "created_at": "2016-07-18T10:20:21Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302849",
    "user": "https://github.com/embray"
}
comment:85

Even easier is to modify sage-spkg so it still handles the prompting (otherwise a lot of package parsing stuff needs to be duplicated), but for ./sage -i first have it run sage-spkg -d (download-only) which is the only context in which those prompts are displayed, then run make (which in turn calls sage-spkg) but with the package already downloaded, it won't prompt. I might add some options to sage-spkg to make extra sure it doesn't prompt.


archive/issue_events_291265.json:

{
    "actor": "https://github.com/embray",
    "created_at": "2016-07-18T12:48:32Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291265"
}

archive/issue_comments_302850.json:

{
    "body": "Changed branch from **[u/embray/disable-exp-pkg-prompt](https://github.com/sagemath/sagetrac-mirror/tree/u/embray/disable-exp-pkg-prompt)** to **[u/embray/ticket-20884-squashed](https://github.com/sagemath/sagetrac-mirror/tree/u/embray/ticket-20884-squashed)**",
    "created_at": "2016-07-18T12:48:32Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302850",
    "user": "https://github.com/embray"
}

Changed branch from u/embray/disable-exp-pkg-prompt to u/embray/ticket-20884-squashed


archive/issue_comments_302851.json:

{
    "body": "Changed commit from **[`7055736`](https://github.com/sagemath/sagetrac-mirror/commit/705573623266f1017aa4a433e816c0e878960836)** to **[`a6aefa3`](https://github.com/sagemath/sagetrac-mirror/commit/a6aefa3c8c41d726a7e677a11ef521d484f1fa98)**",
    "created_at": "2016-07-18T12:48:32Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302851",
    "user": "https://github.com/embray"
}

Changed commit from 7055736 to a6aefa3


archive/issue_comments_302852.json:

{
    "body": "<div id=\"comment:86\" align=\"right\">comment:86</div>\n\nOkay, give this a look.  I've pushed a new branch with a different approach.\n\nThe one downside I see to this approach is that if you run `./sage -i <pkg>` for an experimental package, while it *will* display the warning prompt for that package, if `<pkg>` has any dependencies that are also experimental packages it will not display the prompt for those packages as well (it will still display a warning message).\n\nI think this is acceptable--if the user is accepting to install one experimental package that can include everything that comes along with it.\n\n(Sorry for the noise below--I made a few mistakes in rebasing that I had to fix)\n\n---\nNew commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/9da3ad56ca37501812a1f077f5bf504c133b6ef9\"><code>9da3ad5</code></a></td><td><code>Disable the y/n prompt when installing experimental packages.</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/a6aefa3c8c41d726a7e677a11ef521d484f1fa98\"><code>a6aefa3</code></a></td><td><code>A simplified approach to #20884</code></td></tr></table>\n",
    "created_at": "2016-07-18T12:48:32Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302852",
    "user": "https://github.com/embray"
}
comment:86

Okay, give this a look. I've pushed a new branch with a different approach.

The one downside I see to this approach is that if you run ./sage -i <pkg> for an experimental package, while it will display the warning prompt for that package, if <pkg> has any dependencies that are also experimental packages it will not display the prompt for those packages as well (it will still display a warning message).

I think this is acceptable--if the user is accepting to install one experimental package that can include everything that comes along with it.

(Sorry for the noise below--I made a few mistakes in rebasing that I had to fix)


New commits:

9da3ad5Disable the y/n prompt when installing experimental packages.
a6aefa3A simplified approach to #20884

archive/issue_comments_302853.json:

{
    "body": "<div id=\"comment:87\" align=\"right\">comment:87</div>\n\nI still want to add my Python implementation of `sage-logger` but that can be kept back for later.",
    "created_at": "2016-07-18T12:50:14Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302853",
    "user": "https://github.com/embray"
}
comment:87

I still want to add my Python implementation of sage-logger but that can be kept back for later.


archive/issue_comments_302854.json:

{
    "body": "<div id=\"comment:88\"></div>\n\nBranch pushed to git repo; I updated commit sha1. This was a forced push. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/e2cf8fbe05c83a0827bcdbd7feba9e510524232e\"><code>e2cf8fb</code></a></td><td><code>A simplified approach to #20884</code></td></tr></table>\n",
    "created_at": "2016-07-18T12:51:36Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302854",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

e2cf8fbA simplified approach to #20884

archive/issue_comments_302855.json:

{
    "body": "Changed commit from **[`a6aefa3`](https://github.com/sagemath/sagetrac-mirror/commit/a6aefa3c8c41d726a7e677a11ef521d484f1fa98)** to **[`e2cf8fb`](https://github.com/sagemath/sagetrac-mirror/commit/e2cf8fbe05c83a0827bcdbd7feba9e510524232e)**",
    "created_at": "2016-07-18T12:51:36Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302855",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from a6aefa3 to e2cf8fb


archive/issue_comments_302856.json:

{
    "body": "<div id=\"comment:89\"></div>\n\nBranch pushed to git repo; I updated commit sha1. This was a forced push. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/035e1d8e972d15f50229869da42fe669e9abc35e\"><code>035e1d8</code></a></td><td><code>A simplified approach to #20884</code></td></tr></table>\n",
    "created_at": "2016-07-18T12:55:18Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302856",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

035e1d8A simplified approach to #20884

archive/issue_comments_302857.json:

{
    "body": "Changed commit from **[`e2cf8fb`](https://github.com/sagemath/sagetrac-mirror/commit/e2cf8fbe05c83a0827bcdbd7feba9e510524232e)** to **[`035e1d8`](https://github.com/sagemath/sagetrac-mirror/commit/035e1d8e972d15f50229869da42fe669e9abc35e)**",
    "created_at": "2016-07-18T12:55:18Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302857",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from e2cf8fb to 035e1d8


archive/issue_comments_302858.json:

{
    "body": "<div id=\"comment:90\" align=\"right\">comment:90</div>\n\nI just tried `sage -f latte_int` and I observe the following three things (this is with `MAKE='make -j12'` in case that matters:\n- Sage banner in color, interleaved with environment variables in color due to competing output\n- a visible prompt \"Are you sure you want to continue [Y/n]? \"\n- building the dependency 4ti2\n- another warning about experimental packages, but no visible prompt.\n- \"hang\" as before",
    "created_at": "2016-07-18T17:39:50Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302858",
    "user": "https://github.com/mkoeppe"
}
comment:90

I just tried sage -f latte_int and I observe the following three things (this is with MAKE='make -j12' in case that matters:

  • Sage banner in color, interleaved with environment variables in color due to competing output
  • a visible prompt "Are you sure you want to continue [Y/n]? "
  • building the dependency 4ti2
  • another warning about experimental packages, but no visible prompt.
  • "hang" as before

archive/issue_events_291266.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-07-18T17:40:09Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291266"
}

archive/issue_events_291267.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-07-18T17:40:09Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291267"
}

archive/issue_comments_302859.json:

{
    "body": "<div id=\"comment:92\" align=\"right\">comment:92</div>\n\nYou can avoid `SED=cat` if you put the pipe into the/a variable (`POSTPROCESS`, say), leaving it empty if no prefix was given, i.e.\n\n```sh\n    POSTPROCESS=\"| $SED 's/^/$prefix/'\"\n    ...\n    ( trap '' SIGINT; eval tee -a \"$logfile\" $POSTPROCESS )\n    ...\n```\n\n(I *think*.)",
    "created_at": "2016-07-18T18:10:48Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302859",
    "user": "https://github.com/nexttime"
}
comment:92

You can avoid SED=cat if you put the pipe into the/a variable (POSTPROCESS, say), leaving it empty if no prefix was given, i.e.

    POSTPROCESS="| $SED 's/^/$prefix/'"
    ...
    ( trap '' SIGINT; eval tee -a "$logfile" $POSTPROCESS )
    ...

(I think.)


archive/issue_comments_302860.json:

{
    "body": "<div id=\"comment:93\" align=\"right\">comment:93</div>\n\nYou don't have to install packages in a loop; you can download them one-by-one, and afterwards run `make` on all of them.\n\nIn any case, the following is wrong:\n\n```sh\n        sage-logger \"sage-spkg $INSTALL_OPTIONS -d '$PKG'\" logs/install.log\n\n        # Then make / install the package with no prompts\n        $MAKE SAGE_SPKG=\"sage-spkg $INSTALL_OPTIONS -y\" \"$OPT\"\n```\n(`\"$OPT\"` should be `\"$PKG\"`.)\n\n---\n\nUnrelated to this ticket:\n\n```sh\n# First of all, make sure that the toolchain is up-to-date\n# (which is a dependency of every package)\n./sage --location\n$MAKE all-toolchain\n```\n\nis pretty stupid before we know the package(s) at all exist(s), can be downloaded if needed, whatever.  (And IIRC one gets `*** ALL ENVIRONMENT VARIABLES BEFORE BUILD: ***` etc. twice for no reason, the first time *before* any relevant processing happens.)",
    "created_at": "2016-07-18T18:55:42Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302860",
    "user": "https://github.com/nexttime"
}
comment:93

You don't have to install packages in a loop; you can download them one-by-one, and afterwards run make on all of them.

In any case, the following is wrong:

        sage-logger "sage-spkg $INSTALL_OPTIONS -d '$PKG'" logs/install.log

        # Then make / install the package with no prompts
        $MAKE SAGE_SPKG="sage-spkg $INSTALL_OPTIONS -y" "$OPT"

("$OPT" should be "$PKG".)


Unrelated to this ticket:

# First of all, make sure that the toolchain is up-to-date
# (which is a dependency of every package)
./sage --location
$MAKE all-toolchain

is pretty stupid before we know the package(s) at all exist(s), can be downloaded if needed, whatever. (And IIRC one gets *** ALL ENVIRONMENT VARIABLES BEFORE BUILD: *** etc. twice for no reason, the first time before any relevant processing happens.)


archive/issue_comments_302861.json:

{
    "body": "<div id=\"comment:94\" align=\"right\">comment:94</div>\n\nReplying to [@nexttime](#comment%3A93):\n> You don't have to install packages in a loop; you can download them one-by-one, and afterwards run `make` on all of them.\n\n+1",
    "created_at": "2016-07-19T11:53:23Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302861",
    "user": "https://github.com/jdemeyer"
}
comment:94

Replying to @nexttime:

You don't have to install packages in a loop; you can download them one-by-one, and afterwards run make on all of them.

+1


archive/issue_comments_302862.json:

{
    "body": "Changed branch from **[u/embray/ticket-20884-squashed](https://github.com/sagemath/sagetrac-mirror/tree/u/embray/ticket-20884-squashed)** to **[u/mkoeppe/ticket-20884-squashed](https://github.com/sagemath/sagetrac-mirror/tree/u/mkoeppe/ticket-20884-squashed)**",
    "created_at": "2016-07-20T21:31:04Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302862",
    "user": "https://github.com/mkoeppe"
}

Changed branch from u/embray/ticket-20884-squashed to u/mkoeppe/ticket-20884-squashed


archive/issue_comments_302863.json:

{
    "body": "Changed reviewer from **Dima Pasechnik, Matthias Koeppe** to none",
    "created_at": "2016-07-20T21:34:03Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302863",
    "user": "https://github.com/mkoeppe"
}

Changed reviewer from Dima Pasechnik, Matthias Koeppe to none


archive/issue_comments_302864.json:

{
    "body": "<div id=\"comment:96\" align=\"right\">comment:96</div>\n\nI've implemented a \"good enough for next release\" solution.\nMaking it prettier can be on a follow-up ticket.\nNeeds review.\n\n---\nNew commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/0b1acc2e58162075755f52e941bcb537d8f33d30\"><code>0b1acc2</code></a></td><td><code>Simple (not pretty) solution for #20884</code></td></tr></table>\n",
    "created_at": "2016-07-20T21:34:03Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302864",
    "user": "https://github.com/mkoeppe"
}
comment:96

I've implemented a "good enough for next release" solution. Making it prettier can be on a follow-up ticket. Needs review.


New commits:

0b1acc2Simple (not pretty) solution for #20884

archive/issue_comments_302865.json:

{
    "body": "Changed author from **Erik Bray** to **Matthias Koeppe**",
    "created_at": "2016-07-20T21:34:03Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302865",
    "user": "https://github.com/mkoeppe"
}

Changed author from Erik Bray to Matthias Koeppe


archive/issue_comments_302866.json:

{
    "body": "Changed commit from **[`035e1d8`](https://github.com/sagemath/sagetrac-mirror/commit/035e1d8e972d15f50229869da42fe669e9abc35e)** to **[`0b1acc2`](https://github.com/sagemath/sagetrac-mirror/commit/0b1acc2e58162075755f52e941bcb537d8f33d30)**",
    "created_at": "2016-07-20T21:34:03Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302866",
    "user": "https://github.com/mkoeppe"
}

Changed commit from 035e1d8 to 0b1acc2


archive/issue_events_291268.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-07-20T21:34:03Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20work",
    "label_color": "ffff00",
    "label_name": "needs work",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291268"
}

archive/issue_events_291269.json:

{
    "actor": "https://github.com/mkoeppe",
    "created_at": "2016-07-20T21:34:03Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291269"
}

archive/issue_comments_302867.json:

{
    "body": "<div id=\"comment:97\" align=\"right\">comment:97</div>\n\nReplying to [@mkoeppe](#comment%3A96):\n> I've implemented a \"good enough for next release\" solution.\n> Making it prettier can be on a follow-up ticket.\n> Needs review.\n> \n> ---\n> New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/0b1acc2e58162075755f52e941bcb537d8f33d30\"><code>0b1acc2</code></a></td><td><code>Simple (not pretty) solution for #20884</code></td></tr></table>\n\nOk for me, modulo indentation... (tabs instead of spaces perhaps?)",
    "created_at": "2016-07-20T22:22:10Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302867",
    "user": "https://github.com/nexttime"
}
comment:97

Replying to @mkoeppe:

I've implemented a "good enough for next release" solution. Making it prettier can be on a follow-up ticket. Needs review.


New commits:

0b1acc2Simple (not pretty) solution for #20884

Ok for me, modulo indentation... (tabs instead of spaces perhaps?)


archive/issue_comments_302868.json:

{
    "body": "<div id=\"comment:98\" align=\"right\">comment:98</div>\n\n(At least in theory, we'd have to make sure the prompting message doesn't vanish due to other output when building in parallel though.  But I think in practice this is very unlikely.)",
    "created_at": "2016-07-20T22:27:13Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302868",
    "user": "https://github.com/nexttime"
}
comment:98

(At least in theory, we'd have to make sure the prompting message doesn't vanish due to other output when building in parallel though. But I think in practice this is very unlikely.)


archive/issue_comments_302869.json:

{
    "body": "<div id=\"comment:99\" align=\"right\">comment:99</div>\n\nReplying to [@nexttime](#comment%3A98):\n> (At least in theory, we'd have to make sure the prompting message doesn't vanish due to other output when building in parallel though.  But I think in practice this is very unlikely.)\n\nYes, I hope that a follow-up ticket will do a proper solution, which prompts early (or just bails out and requires an extra flag), rather than prompting in the middle of a parallel build.\n\nMy simple solution just restores (except for cosmetics) the status quo before #20640, #20708 broke the prompting.",
    "created_at": "2016-07-21T07:45:19Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302869",
    "user": "https://github.com/mkoeppe"
}
comment:99

Replying to @nexttime:

(At least in theory, we'd have to make sure the prompting message doesn't vanish due to other output when building in parallel though. But I think in practice this is very unlikely.)

Yes, I hope that a follow-up ticket will do a proper solution, which prompts early (or just bails out and requires an extra flag), rather than prompting in the middle of a parallel build.

My simple solution just restores (except for cosmetics) the status quo before #20640, #20708 broke the prompting.


archive/issue_comments_302870.json:

{
    "body": "Changed commit from **[`0b1acc2`](https://github.com/sagemath/sagetrac-mirror/commit/0b1acc2e58162075755f52e941bcb537d8f33d30)** to **[`6888a67`](https://github.com/sagemath/sagetrac-mirror/commit/6888a6788eb25bcc293a465091c68850346f0e85)**",
    "created_at": "2016-07-21T07:48:08Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302870",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 0b1acc2 to 6888a67


archive/issue_comments_302871.json:

{
    "body": "<div id=\"comment:100\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/6888a6788eb25bcc293a465091c68850346f0e85\"><code>6888a67</code></a></td><td><code>untabify changes</code></td></tr></table>\n",
    "created_at": "2016-07-21T07:48:08Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302871",
    "user": "https://github.com/sagetrac-git"
}

Branch pushed to git repo; I updated commit sha1. New commits:

6888a67untabify changes

archive/issue_comments_302872.json:

{
    "body": "Reviewer: **Leif Leonhardy, Volker Braun**",
    "created_at": "2016-07-22T23:22:11Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302872",
    "user": "https://github.com/vbraun"
}

Reviewer: Leif Leonhardy, Volker Braun


archive/issue_events_291270.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-22T23:22:11Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291270"
}

archive/issue_events_291271.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-22T23:22:11Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291271"
}

archive/issue_comments_302873.json:

{
    "body": "Changed branch from **[u/mkoeppe/ticket-20884-squashed](https://github.com/sagemath/sagetrac-mirror/tree/u/mkoeppe/ticket-20884-squashed)** to **[`6888a67`](https://github.com/sagemath/sagetrac-mirror/commit/6888a6788eb25bcc293a465091c68850346f0e85)**",
    "created_at": "2016-07-23T18:38:27Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302873",
    "user": "https://github.com/vbraun"
}

Changed branch from u/mkoeppe/ticket-20884-squashed to 6888a67


archive/issue_events_291272.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-07-23T18:38:27Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291272"
}

archive/issue_events_291273.json:

{
    "actor": "https://github.com/vbraun",
    "commit_id": "bcece2c1f8a0657d900273058c9fede9b8f57456",
    "commit_repository": "https://github.com/sagemath/sage",
    "created_at": "2016-07-23T18:38:27Z",
    "event": "closed",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20884#event-291273"
}

archive/issue_comments_302874.json:

{
    "body": "Changed commit from **[`6888a67`](https://github.com/sagemath/sagetrac-mirror/commit/6888a6788eb25bcc293a465091c68850346f0e85)** to none",
    "created_at": "2016-07-24T13:45:44Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302874",
    "user": "https://github.com/mkoeppe"
}

Changed commit from 6888a67 to none


archive/issue_comments_302875.json:

{
    "body": "<div id=\"comment:103\" align=\"right\">comment:103</div>\n\nFollow-up ticket - #21082. This is where work on the patch by Erik Bray can continue.",
    "created_at": "2016-07-24T13:45:44Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20884",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20884#issuecomment-302875",
    "user": "https://github.com/mkoeppe"
}
comment:103

Follow-up ticket - #21082. This is where work on the patch by Erik Bray can continue.