1682da5a0SStefan Eßer[ 2682da5a0SStefan Eßer { 3682da5a0SStefan Eßer "assignees": [], 4682da5a0SStefan Eßer "author": { 5682da5a0SStefan Eßer "id": "U_kgDOCpvj3Q", 6682da5a0SStefan Eßer "is_bot": false, 7682da5a0SStefan Eßer "login": "Palafitas", 8682da5a0SStefan Eßer "name": "Palafitas" 9682da5a0SStefan Eßer }, 10682da5a0SStefan Eßer "body": "I'm using 'bc' to perform a calculation in a shell script and I'm getting the incorrect result from a simple calculation...\n\n80 - (30 * 0) / 50 - (80 / 100) * 38\n\nbc returns value 80\n\nReal value is 49.6\n\n\nOBS.: Can use the calculation direct in bc command to see output\nOBS.: bc version is 1.07.1", 11682da5a0SStefan Eßer "closed": true, 12682da5a0SStefan Eßer "closedAt": "2025-02-25T19:10:08Z", 13682da5a0SStefan Eßer "comments": [ 14682da5a0SStefan Eßer { 15682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6f65pc", 16682da5a0SStefan Eßer "author": { 17682da5a0SStefan Eßer "login": "gavinhoward" 18682da5a0SStefan Eßer }, 19682da5a0SStefan Eßer "authorAssociation": "OWNER", 20682da5a0SStefan Eßer "body": "Two things.\n\nFirst, `bc` is not like other calculators that figure out what precision they need. Instead, `bc` requires you to set the precision before doing any calculation.\n\nThe way to do this is to set the special variable `scale` to an integer value, and then calculations will be done to at least that precision, in digits after the decimal point.\n\nOne quirk of `bc` is that `scale` is set to 0 by default, which means integer-only math.\n\nApplying integer-only math to the expression you gave, we get:\n\n```\n80 - (30 * 0) / 50 - (80 / 100) * 38\n80 - 0 / 50 - (80 / 100) * 38\n80 - 0 - (80 / 100) * 38\n80 - (80 / 100) * 38\n80 - 0 * 38\n80\n```\n\nNotice that `80 / 100` simplifies to 0 with integer-only arithmetic. That is expected.\n\nNow, watch what happens when we set `scale` to 1 first:\n\n```\nscale = 1\n80 - (30 * 0) / 50 - (80 / 100) * 38\n80 - 0 / 50 - (80 / 100) * 38\n80 - 0 - (80 / 100) * 38\n80 - (80 / 100) * 38\n80 - 0.8 * 38\n80 - 30.4\n49.6\n```\n\nAnd that is the value you expected.\n\nSo there is no calculation error; just be sure to set the precision with `scale` before running a calculation.\n\nSecond, this `bc` has never had a `1.07.1` version. That is, in fact, the latest version of the [GNU `bc`][1], so you are not even running this `bc`. So I am closing this issue as invalid.\n\n[1]: https://www.gnu.org/software/bc/", 21682da5a0SStefan Eßer "createdAt": "2025-02-25T19:10:08Z", 22682da5a0SStefan Eßer "includesCreatedEdit": false, 23682da5a0SStefan Eßer "isMinimized": false, 24682da5a0SStefan Eßer "minimizedReason": "", 25682da5a0SStefan Eßer "reactionGroups": [ 26682da5a0SStefan Eßer { 27682da5a0SStefan Eßer "content": "THUMBS_UP", 28682da5a0SStefan Eßer "users": { 29682da5a0SStefan Eßer "totalCount": 1 30682da5a0SStefan Eßer } 31682da5a0SStefan Eßer } 32682da5a0SStefan Eßer ], 33682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/87#issuecomment-2683017820", 34682da5a0SStefan Eßer "viewerDidAuthor": true 35682da5a0SStefan Eßer }, 36682da5a0SStefan Eßer { 37682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6f9KsZ", 38682da5a0SStefan Eßer "author": { 39682da5a0SStefan Eßer "login": "Palafitas" 40682da5a0SStefan Eßer }, 41682da5a0SStefan Eßer "authorAssociation": "NONE", 42682da5a0SStefan Eßer "body": "Thanks, i solved the problem with '-l' to 'bc'\n\ne.g:\necho '1 + 1' | bc -l", 43682da5a0SStefan Eßer "createdAt": "2025-02-26T00:44:54Z", 44682da5a0SStefan Eßer "includesCreatedEdit": false, 45682da5a0SStefan Eßer "isMinimized": false, 46682da5a0SStefan Eßer "minimizedReason": "", 47682da5a0SStefan Eßer "reactionGroups": [], 48682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/87#issuecomment-2683611929", 49682da5a0SStefan Eßer "viewerDidAuthor": false 50682da5a0SStefan Eßer } 51682da5a0SStefan Eßer ], 52682da5a0SStefan Eßer "createdAt": "2025-02-25T17:57:06Z", 53682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6rnKtq", 54682da5a0SStefan Eßer "isPinned": false, 55682da5a0SStefan Eßer "labels": [], 56682da5a0SStefan Eßer "milestone": null, 57682da5a0SStefan Eßer "number": 87, 58682da5a0SStefan Eßer "projectCards": [], 59682da5a0SStefan Eßer "projectItems": [], 60682da5a0SStefan Eßer "reactionGroups": [], 61682da5a0SStefan Eßer "state": "CLOSED", 62682da5a0SStefan Eßer "stateReason": "COMPLETED", 63682da5a0SStefan Eßer "title": "Calculation error", 64682da5a0SStefan Eßer "updatedAt": "2025-02-26T00:44:54Z", 65682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/87" 66682da5a0SStefan Eßer }, 67682da5a0SStefan Eßer { 68682da5a0SStefan Eßer "assignees": [], 69682da5a0SStefan Eßer "author": { 70682da5a0SStefan Eßer "id": "MDQ6VXNlcjI2Nzg4ODg=", 71682da5a0SStefan Eßer "is_bot": false, 72682da5a0SStefan Eßer "login": "shpati", 73682da5a0SStefan Eßer "name": "" 74682da5a0SStefan Eßer }, 75682da5a0SStefan Eßer "body": "Hi! \r\nI am trying to load multiple .bc files stored in the same directory as the program (from your modified function files from Carl's collection) but bc will not load them. \r\n\r\nThe command I give is: \r\n`bc -l *.bc`\r\n\r\nThe error I get is: \r\n```\r\nFatal error: cannot open file: *.bc\r\n 0: (main)\r\n```\r\nLoading files separately works, e.g. bc -l file1.bc file2.bc\r\nLoading files using wildcards works in the gnu bc, and it is practical. \r\n\r\nI am using the windows 10 terminal. ", 76682da5a0SStefan Eßer "closed": true, 77682da5a0SStefan Eßer "closedAt": "2024-11-10T14:27:05Z", 78682da5a0SStefan Eßer "comments": [ 79682da5a0SStefan Eßer { 80682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6TB7mr", 81682da5a0SStefan Eßer "author": { 82682da5a0SStefan Eßer "login": "gavinhoward" 83682da5a0SStefan Eßer }, 84682da5a0SStefan Eßer "authorAssociation": "OWNER", 85682da5a0SStefan Eßer "body": "Hello.\r\n\r\nI am actually really surprised that GNU `bc` will load the files in the Windows 10 terminal, and that is because, as far as I know, wildcard expansion is done by the shell, not the program. So GNU `bc` doesn't actually do it, or so I thought.\r\n\r\nIf you were to run my `bc` with that command under bash on Linux, it would work fine because bash would expand the wildcard into a list of file names and pass that to my `bc`. It seems the Windows 10 terminal does not do that, but passes the wildcard to my `bc`, which does not know how to expand it.\r\n\r\nUnfortunately, wildcard expansion is a heavy feature, not one I can implement in an afternoon. I think it is out of scope for my `bc`, and I don't plan on implementing it.\r\n\r\nThere might be some way to get the Windows 10 terminal to do wildcard expansion, but if that doesn't work, you can run my `bc` under bash using the Windows Subsystem for Linux.", 86682da5a0SStefan Eßer "createdAt": "2024-11-10T14:27:05Z", 87682da5a0SStefan Eßer "includesCreatedEdit": false, 88682da5a0SStefan Eßer "isMinimized": false, 89682da5a0SStefan Eßer "minimizedReason": "", 90682da5a0SStefan Eßer "reactionGroups": [], 91682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/85#issuecomment-2466757035", 92682da5a0SStefan Eßer "viewerDidAuthor": true 93682da5a0SStefan Eßer }, 94682da5a0SStefan Eßer { 95682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6TC19F", 96682da5a0SStefan Eßer "author": { 97682da5a0SStefan Eßer "login": "shpati" 98682da5a0SStefan Eßer }, 99682da5a0SStefan Eßer "authorAssociation": "NONE", 100682da5a0SStefan Eßer "body": "Thanks a lot for the detailed answer Gavin! It seems like the solution is simple and does not need any change in code. You only need to change the linker used during compiling, like this: \r\n\r\n`cl example.c /link setargv.obj`\r\n\r\nCan you try it please? \r\n\r\nSource: https://learn.microsoft.com/en-us/cpp/c-language/expanding-wildcard-arguments?view=msvc-170", 101682da5a0SStefan Eßer "createdAt": "2024-11-11T00:00:13Z", 102682da5a0SStefan Eßer "includesCreatedEdit": true, 103682da5a0SStefan Eßer "isMinimized": false, 104682da5a0SStefan Eßer "minimizedReason": "", 105682da5a0SStefan Eßer "reactionGroups": [], 106682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/85#issuecomment-2466996037", 107682da5a0SStefan Eßer "viewerDidAuthor": false 108682da5a0SStefan Eßer }, 109682da5a0SStefan Eßer { 110682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6UKlNz", 111682da5a0SStefan Eßer "author": { 112682da5a0SStefan Eßer "login": "gavinhoward" 113682da5a0SStefan Eßer }, 114682da5a0SStefan Eßer "authorAssociation": "OWNER", 115682da5a0SStefan Eßer "body": "I tried adding `setargv.obj` to the linker command (next to `bcrypt.lib`), and that didn't work.\r\n\r\nIf you can get it working, feel free to send me a PR, and I will probably accept it.", 116682da5a0SStefan Eßer "createdAt": "2024-11-19T14:00:38Z", 117682da5a0SStefan Eßer "includesCreatedEdit": false, 118682da5a0SStefan Eßer "isMinimized": false, 119682da5a0SStefan Eßer "minimizedReason": "", 120682da5a0SStefan Eßer "reactionGroups": [], 121682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/85#issuecomment-2485801843", 122682da5a0SStefan Eßer "viewerDidAuthor": true 123682da5a0SStefan Eßer } 124682da5a0SStefan Eßer ], 125682da5a0SStefan Eßer "createdAt": "2024-11-10T09:58:36Z", 126682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6dxwXg", 127682da5a0SStefan Eßer "isPinned": false, 128682da5a0SStefan Eßer "labels": [], 129682da5a0SStefan Eßer "milestone": null, 130682da5a0SStefan Eßer "number": 85, 131682da5a0SStefan Eßer "projectCards": [], 132682da5a0SStefan Eßer "projectItems": [], 133682da5a0SStefan Eßer "reactionGroups": [], 134682da5a0SStefan Eßer "state": "CLOSED", 135682da5a0SStefan Eßer "stateReason": "NOT_PLANNED", 136682da5a0SStefan Eßer "title": "Does not load multiple .bc files using * wildcard", 137682da5a0SStefan Eßer "updatedAt": "2024-11-19T14:00:40Z", 138682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/85" 139682da5a0SStefan Eßer }, 140682da5a0SStefan Eßer { 141682da5a0SStefan Eßer "assignees": [], 142682da5a0SStefan Eßer "author": { 143682da5a0SStefan Eßer "id": "MDQ6VXNlcjgyNzIwNQ==", 144682da5a0SStefan Eßer "is_bot": false, 145682da5a0SStefan Eßer "login": "DanielRuf", 146682da5a0SStefan Eßer "name": "Daniel Ruf" 147682da5a0SStefan Eßer }, 148682da5a0SStefan Eßer "body": "I'm new to C and I try to create a PHP extension of bc with SWIG, but as direct replacement for `eval()` in PHP.\r\n\r\nWhat is the **correct function from the bc code to parse a string** and return the calculation result or some error / null when parsing fails?\r\n\r\nI tried looking at the code, but didn't find the right one.", 149682da5a0SStefan Eßer "closed": true, 150682da5a0SStefan Eßer "closedAt": "2025-02-16T13:40:55Z", 151682da5a0SStefan Eßer "comments": [ 152682da5a0SStefan Eßer { 153682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LSQRq", 154682da5a0SStefan Eßer "author": { 155682da5a0SStefan Eßer "login": "gavinhoward" 156682da5a0SStefan Eßer }, 157682da5a0SStefan Eßer "authorAssociation": "OWNER", 158682da5a0SStefan Eßer "body": "I'm not sure what you're asking. `bc` is a program, not a library, and even though I *do* have a library, it does not include expression parsing.\r\n\r\nAre you wanting a library that can parse `bc` expressions? Unfortunately, this `bc` cannot do that, and to do so would require refactoring that I don't have time for.", 159682da5a0SStefan Eßer "createdAt": "2024-09-08T20:42:08Z", 160682da5a0SStefan Eßer "includesCreatedEdit": false, 161682da5a0SStefan Eßer "isMinimized": false, 162682da5a0SStefan Eßer "minimizedReason": "", 163682da5a0SStefan Eßer "reactionGroups": [], 164682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2336818282", 165682da5a0SStefan Eßer "viewerDidAuthor": true 166682da5a0SStefan Eßer }, 167682da5a0SStefan Eßer { 168682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LSRDF", 169682da5a0SStefan Eßer "author": { 170682da5a0SStefan Eßer "login": "DanielRuf" 171682da5a0SStefan Eßer }, 172682da5a0SStefan Eßer "authorAssociation": "NONE", 173682da5a0SStefan Eßer "body": "Understood, so I can not do some `bc_parse(some-string-from-stdin)` with that and I have to resort to some other solution then.\r\n\r\nWhere can I find the current logic of the CLI? Maybe I can do something with that.", 174682da5a0SStefan Eßer "createdAt": "2024-09-08T20:56:06Z", 175682da5a0SStefan Eßer "includesCreatedEdit": false, 176682da5a0SStefan Eßer "isMinimized": false, 177682da5a0SStefan Eßer "minimizedReason": "", 178682da5a0SStefan Eßer "reactionGroups": [], 179682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2336821445", 180682da5a0SStefan Eßer "viewerDidAuthor": false 181682da5a0SStefan Eßer }, 182682da5a0SStefan Eßer { 183682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LSRiv", 184682da5a0SStefan Eßer "author": { 185682da5a0SStefan Eßer "login": "gavinhoward" 186682da5a0SStefan Eßer }, 187682da5a0SStefan Eßer "authorAssociation": "OWNER", 188682da5a0SStefan Eßer "body": "You are correct.\r\n\r\nHowever, what is easiest depends on what you are trying to do. Do you need the full `bc` language? Or do you just need simple expressions? Or something else?\r\n\r\nIf you need the full language, the best solution would be to run `bc` as a child process and just feed it data.\r\n\r\nIf you need simple expression parsing, then you could implement the parsing with Lex and Yacc, and then use `bcl`, the `bc` library, to do the math.\r\n\r\nIf you need something else, we can see what might work best.", 189682da5a0SStefan Eßer "createdAt": "2024-09-08T21:03:51Z", 190682da5a0SStefan Eßer "includesCreatedEdit": false, 191682da5a0SStefan Eßer "isMinimized": false, 192682da5a0SStefan Eßer "minimizedReason": "", 193682da5a0SStefan Eßer "reactionGroups": [], 194682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2336823471", 195682da5a0SStefan Eßer "viewerDidAuthor": true 196682da5a0SStefan Eßer }, 197682da5a0SStefan Eßer { 198682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LSSix", 199682da5a0SStefan Eßer "author": { 200682da5a0SStefan Eßer "login": "DanielRuf" 201682da5a0SStefan Eßer }, 202682da5a0SStefan Eßer "authorAssociation": "NONE", 203682da5a0SStefan Eßer "body": "> Or do you just need simple expressions? Or something else?\r\n\r\nJust basic calculations like `eval(1+2/3*4-5)`.\r\n\r\n> If you need the full language, the best solution would be to run bc as a child process and just feed it data.\r\n\r\nUnfortunately this brings much overhead, I already tested that with `exec(\"bc ...\")` in PHP.\r\n\r\n> If you need simple expression parsing, then you could implement the parsing with Lex and Yacc, and then use bcl, the bc library, to do the math.\r\n\r\nThis sounds more like what I am looking for, even though I wanted to avoid Yacc.", 204682da5a0SStefan Eßer "createdAt": "2024-09-08T21:19:11Z", 205682da5a0SStefan Eßer "includesCreatedEdit": false, 206682da5a0SStefan Eßer "isMinimized": false, 207682da5a0SStefan Eßer "minimizedReason": "", 208682da5a0SStefan Eßer "reactionGroups": [], 209682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2336827569", 210682da5a0SStefan Eßer "viewerDidAuthor": false 211682da5a0SStefan Eßer }, 212682da5a0SStefan Eßer { 213682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LSSw-", 214682da5a0SStefan Eßer "author": { 215682da5a0SStefan Eßer "login": "gavinhoward" 216682da5a0SStefan Eßer }, 217682da5a0SStefan Eßer "authorAssociation": "OWNER", 218682da5a0SStefan Eßer "body": "While refactoring to bring the full `bc` parser into the library may be too much, I may be able to whip a small expression parser in a few hours.\r\n\r\nDo you just need the four basic arithmetic operators? Do you need parentheses? Do you need square root?\r\n\r\nLet me know what you need. I may need a week to get it to you.", 219682da5a0SStefan Eßer "createdAt": "2024-09-08T21:22:48Z", 220682da5a0SStefan Eßer "includesCreatedEdit": false, 221682da5a0SStefan Eßer "isMinimized": false, 222682da5a0SStefan Eßer "minimizedReason": "", 223682da5a0SStefan Eßer "reactionGroups": [], 224682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2336828478", 225682da5a0SStefan Eßer "viewerDidAuthor": true 226682da5a0SStefan Eßer }, 227682da5a0SStefan Eßer { 228682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LSTkN", 229682da5a0SStefan Eßer "author": { 230682da5a0SStefan Eßer "login": "DanielRuf" 231682da5a0SStefan Eßer }, 232682da5a0SStefan Eßer "authorAssociation": "NONE", 233682da5a0SStefan Eßer "body": "I will check that and let you know in the next days. At least parentheses are also needed.\r\n\r\nIf there is at least one function (like sqrt or max) implemened, then I can check the implementation and contribute some of my time to implement more or at least I can help with that.", 234682da5a0SStefan Eßer "createdAt": "2024-09-08T21:35:19Z", 235682da5a0SStefan Eßer "includesCreatedEdit": false, 236682da5a0SStefan Eßer "isMinimized": false, 237682da5a0SStefan Eßer "minimizedReason": "", 238682da5a0SStefan Eßer "reactionGroups": [], 239682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2336831757", 240682da5a0SStefan Eßer "viewerDidAuthor": false 241682da5a0SStefan Eßer }, 242682da5a0SStefan Eßer { 243682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LSUHv", 244682da5a0SStefan Eßer "author": { 245682da5a0SStefan Eßer "login": "gavinhoward" 246682da5a0SStefan Eßer }, 247682da5a0SStefan Eßer "authorAssociation": "OWNER", 248682da5a0SStefan Eßer "body": "`sqrt()` is already builtin; I'll add parsing for it. I can also add parsing for `max()` and `min()`.\r\n\r\nYou can see everything that's builtin [here](https://github.com/gavinhoward/bc/blob/master/manuals/bcl.3.md).", 249682da5a0SStefan Eßer "createdAt": "2024-09-08T21:44:30Z", 250682da5a0SStefan Eßer "includesCreatedEdit": false, 251682da5a0SStefan Eßer "isMinimized": false, 252682da5a0SStefan Eßer "minimizedReason": "", 253682da5a0SStefan Eßer "reactionGroups": [], 254682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2336834031", 255682da5a0SStefan Eßer "viewerDidAuthor": true 256682da5a0SStefan Eßer }, 257682da5a0SStefan Eßer { 258682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LTBjd", 259682da5a0SStefan Eßer "author": { 260682da5a0SStefan Eßer "login": "gavinhoward" 261682da5a0SStefan Eßer }, 262682da5a0SStefan Eßer "authorAssociation": "OWNER", 263682da5a0SStefan Eßer "body": "Ack! I'm sorry! I just had something come up in my personal life that will take a lot of time to resolve!\r\n\r\nSo despite hoping to help with the parsing, I can't even help with a simple thing anymore.\r\n\r\nHowever, I can point you in the right direction. Use the [Shunting-Yard Algorithm](https://en.wikipedia.org/wiki/Shunting-yard_algorithm) like [this](https://softwareengineering.stackexchange.com/questions/254074/how-exactly-is-an-abstract-syntax-tree-created/254075#254075) to make an abstract syntax tree, and then do a post-order traversal.\r\n\r\nIf you need examples of how to use `bcl`, then [its test code](https://github.com/gavinhoward/bc/blob/master/tests/bcl.c) is a good start.\r\n\r\nAgain, I'm really sorry about this, but I figured it would be better to tell you sooner rather than later.", 264682da5a0SStefan Eßer "createdAt": "2024-09-09T03:03:41Z", 265682da5a0SStefan Eßer "includesCreatedEdit": false, 266682da5a0SStefan Eßer "isMinimized": false, 267682da5a0SStefan Eßer "minimizedReason": "", 268682da5a0SStefan Eßer "reactionGroups": [ 269682da5a0SStefan Eßer { 270682da5a0SStefan Eßer "content": "THUMBS_UP", 271682da5a0SStefan Eßer "users": { 272682da5a0SStefan Eßer "totalCount": 1 273682da5a0SStefan Eßer } 274682da5a0SStefan Eßer } 275682da5a0SStefan Eßer ], 276682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2337020125", 277682da5a0SStefan Eßer "viewerDidAuthor": true 278682da5a0SStefan Eßer }, 279682da5a0SStefan Eßer { 280682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6LTUUy", 281682da5a0SStefan Eßer "author": { 282682da5a0SStefan Eßer "login": "DanielRuf" 283682da5a0SStefan Eßer }, 284682da5a0SStefan Eßer "authorAssociation": "NONE", 285682da5a0SStefan Eßer "body": "No problem and thanks for letting me know. I will try to understand and solve it.", 286682da5a0SStefan Eßer "createdAt": "2024-09-09T04:37:26Z", 287682da5a0SStefan Eßer "includesCreatedEdit": false, 288682da5a0SStefan Eßer "isMinimized": false, 289682da5a0SStefan Eßer "minimizedReason": "", 290682da5a0SStefan Eßer "reactionGroups": [], 291682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83#issuecomment-2337097010", 292682da5a0SStefan Eßer "viewerDidAuthor": false 293682da5a0SStefan Eßer } 294682da5a0SStefan Eßer ], 295682da5a0SStefan Eßer "createdAt": "2024-09-08T20:22:38Z", 296682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6Vwp4y", 297682da5a0SStefan Eßer "isPinned": false, 298682da5a0SStefan Eßer "labels": [], 299682da5a0SStefan Eßer "milestone": null, 300682da5a0SStefan Eßer "number": 83, 301682da5a0SStefan Eßer "projectCards": [], 302682da5a0SStefan Eßer "projectItems": [], 303682da5a0SStefan Eßer "reactionGroups": [], 304682da5a0SStefan Eßer "state": "CLOSED", 305682da5a0SStefan Eßer "stateReason": "COMPLETED", 306682da5a0SStefan Eßer "title": "what function to call for parsing string expressions", 307682da5a0SStefan Eßer "updatedAt": "2025-02-16T13:40:55Z", 308682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/83" 309682da5a0SStefan Eßer }, 310682da5a0SStefan Eßer { 311682da5a0SStefan Eßer "assignees": [], 312682da5a0SStefan Eßer "author": { 313682da5a0SStefan Eßer "id": "U_kgDOBqIXaQ", 314682da5a0SStefan Eßer "is_bot": false, 315682da5a0SStefan Eßer "login": "GregTonoski", 316682da5a0SStefan Eßer "name": "Greg Tonoski" 317682da5a0SStefan Eßer }, 318682da5a0SStefan Eßer "body": "Would you like to add elliptic curve point multiplication (https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication) to math library, perhaps?", 319682da5a0SStefan Eßer "closed": true, 320682da5a0SStefan Eßer "closedAt": "2024-08-31T18:09:54Z", 321682da5a0SStefan Eßer "comments": [ 322682da5a0SStefan Eßer { 323682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6Kdiqk", 324682da5a0SStefan Eßer "author": { 325682da5a0SStefan Eßer "login": "gavinhoward" 326682da5a0SStefan Eßer }, 327682da5a0SStefan Eßer "authorAssociation": "OWNER", 328682da5a0SStefan Eßer "body": "I have wanted to, but I haven't *despite* wanting to. And there is a good reason: someone is going to use my `bc` to implement cryptography with vulnerabilities.\r\n\r\nIf my `bc` ships the elliptic curve arithmetic to do that, I will feel responsible. If they write the arithmetic themselves, well, they are responsible.\r\n\r\nOf course, there are other reasons to want it, but because of cryptography, I hesitate to add it.\r\n\r\nSorry!", 329682da5a0SStefan Eßer "createdAt": "2024-08-31T18:09:54Z", 330682da5a0SStefan Eßer "includesCreatedEdit": false, 331682da5a0SStefan Eßer "isMinimized": false, 332682da5a0SStefan Eßer "minimizedReason": "", 333682da5a0SStefan Eßer "reactionGroups": [], 334682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/82#issuecomment-2322999972", 335682da5a0SStefan Eßer "viewerDidAuthor": true 336682da5a0SStefan Eßer } 337682da5a0SStefan Eßer ], 338682da5a0SStefan Eßer "createdAt": "2024-08-31T07:57:25Z", 339682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6U72YL", 340682da5a0SStefan Eßer "isPinned": false, 341682da5a0SStefan Eßer "labels": [], 342682da5a0SStefan Eßer "milestone": null, 343682da5a0SStefan Eßer "number": 82, 344682da5a0SStefan Eßer "projectCards": [], 345682da5a0SStefan Eßer "projectItems": [], 346682da5a0SStefan Eßer "reactionGroups": [], 347682da5a0SStefan Eßer "state": "CLOSED", 348682da5a0SStefan Eßer "stateReason": "COMPLETED", 349682da5a0SStefan Eßer "title": "Feature request: elliptic curve point multiplication", 350682da5a0SStefan Eßer "updatedAt": "2024-08-31T18:09:55Z", 351682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/82" 352682da5a0SStefan Eßer }, 353682da5a0SStefan Eßer { 354682da5a0SStefan Eßer "assignees": [], 355682da5a0SStefan Eßer "author": { 356682da5a0SStefan Eßer "id": "U_kgDOBqIXaQ", 357682da5a0SStefan Eßer "is_bot": false, 358682da5a0SStefan Eßer "login": "GregTonoski", 359682da5a0SStefan Eßer "name": "Greg Tonoski" 360682da5a0SStefan Eßer }, 361682da5a0SStefan Eßer "body": "", 362682da5a0SStefan Eßer "closed": true, 363682da5a0SStefan Eßer "closedAt": "2024-08-30T14:14:44Z", 364682da5a0SStefan Eßer "comments": [ 365682da5a0SStefan Eßer { 366682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6KXcRi", 367682da5a0SStefan Eßer "author": { 368682da5a0SStefan Eßer "login": "gavinhoward" 369682da5a0SStefan Eßer }, 370682da5a0SStefan Eßer "authorAssociation": "OWNER", 371682da5a0SStefan Eßer "body": "Thank you so much for the compliment! I hardly get them nowadays. You made my day!\r\n\r\nI presume \"EOM\" means \"End of Message\" which means there is no bug? So I'm going to close this now, but if you do have a bug, feel free to reopen.", 372682da5a0SStefan Eßer "createdAt": "2024-08-30T14:14:44Z", 373682da5a0SStefan Eßer "includesCreatedEdit": false, 374682da5a0SStefan Eßer "isMinimized": false, 375682da5a0SStefan Eßer "minimizedReason": "", 376682da5a0SStefan Eßer "reactionGroups": [], 377682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/80#issuecomment-2321400930", 378682da5a0SStefan Eßer "viewerDidAuthor": true 379682da5a0SStefan Eßer } 380682da5a0SStefan Eßer ], 381682da5a0SStefan Eßer "createdAt": "2024-08-30T07:30:14Z", 382682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6UzPqQ", 383682da5a0SStefan Eßer "isPinned": false, 384682da5a0SStefan Eßer "labels": [], 385682da5a0SStefan Eßer "milestone": null, 386682da5a0SStefan Eßer "number": 80, 387682da5a0SStefan Eßer "projectCards": [], 388682da5a0SStefan Eßer "projectItems": [], 389682da5a0SStefan Eßer "reactionGroups": [], 390682da5a0SStefan Eßer "state": "CLOSED", 391682da5a0SStefan Eßer "stateReason": "COMPLETED", 392682da5a0SStefan Eßer "title": "Excellent. Works fine. Thank you. [EOM]", 393682da5a0SStefan Eßer "updatedAt": "2024-08-30T14:14:44Z", 394682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/80" 395682da5a0SStefan Eßer }, 396682da5a0SStefan Eßer { 397682da5a0SStefan Eßer "assignees": [], 398682da5a0SStefan Eßer "author": { 399682da5a0SStefan Eßer "id": "MDQ6VXNlcjU3MDY1NjU3", 400682da5a0SStefan Eßer "is_bot": false, 401682da5a0SStefan Eßer "login": "exikyut", 402682da5a0SStefan Eßer "name": "" 403682da5a0SStefan Eßer }, 404682da5a0SStefan Eßer "body": "Was just playing around and happened to get my stack out of sync:\r\n\r\n```\r\n1\r\n+\r\n\r\nRuntime error: stack has too few elements\r\n 0: (main)\r\n```\r\n\r\nBut I noticed this cleared the stack:\r\n\r\n<pre>\r\nf\r\n<i>(no output)</i>\r\n</pre>\r\n\r\nTrying to improve my edge-case-fu spidey sense :) I thought I'd check how other dc implementations behave.\r\n\r\nGNU `dc` immediately showed me something might be up:\r\n\r\n```\r\n1\r\n+\r\ndc: stack empty\r\nf\r\n1\r\nq\r\n$ _\r\n```\r\n\r\nHuh.\r\n\r\nOpenBSD `dc` produced byte-identical output to the above.\r\n\r\nOK... what should arbitrate as reference here? I guess some form of going back to the beginning.\r\n\r\nHow far can we go back?\r\n\r\nApparently the first version of `dc` was written in B while UNIX was being ported. Man that would be fun to play with. Perhaps there's a printout of it starting on page 9,576 of an OCR-averse PDF on bitsavers just waiting to be found :smile: \r\n\r\nhttp://takahirox.github.io/pdp11-js/unixv6.html and http://pdp11.aiju.de/ both emulate UNIX v6 in-browser, which is nice and accessible. The `dc` in both of these has the same size and timestamp; copying from the second emulator for fun, which emulates an uppercase teletype, we get:\r\n\r\n```\r\n# DC\r\n1\r\n+\r\n( +) ?\r\nF\r\n1\r\nQ\r\n# # \r\n```\r\n\r\nHrm. That's V6 UNIX. Can we go further back?\r\n\r\nYes and no, as far as I can manage.\r\n\r\nIt looks like a V1+V2 amalgamation was put together using surviving source code and tape dumps: https://www.in-ulm.de/~mascheck/various/ancient/\r\n\r\nThe project appears to have been quietly migrated to https://github.com/DoctorWkt/unix-jun72, with terrifying instructions to \"now run `make`\" underneath a wall of \"last modified: 16 years ago\" :melting_face:, but I discovered some pre-built SIMH images at https://code.google.com/archive/p/unix-jun72/downloads, which is where the project previously lived (and is what the page in the previous paragraph links to), which still work perfectly - you just run `pdp11 simh.cfg`.\r\n\r\nUnfortunately, while the system is already saying `:login:` before you can even blink and figure out whether it worked, and the distribution includes `dc`, its `f` command appears to be broken... even though I see references to support for an `f` command [on line 949 in dc1.s](https://github.com/DoctorWkt/unix-jun72/blob/1d438bd5874ec628157fbeab370c8e3f3a3ecb8b/src/cmd/dc1.s#L949) (the source is distributed across [dc2.s](https://github.com/DoctorWkt/unix-jun72/blob/1d438bd5874ec628157fbeab370c8e3f3a3ecb8b/src/cmd/dc2.s), [dc3.s](https://github.com/DoctorWkt/unix-jun72/blob/1d438bd5874ec628157fbeab370c8e3f3a3ecb8b/src/cmd/dc3.s), [dc4.s](https://github.com/DoctorWkt/unix-jun72/blob/1d438bd5874ec628157fbeab370c8e3f3a3ecb8b/src/cmd/dc4.s) and [dc5.s](https://github.com/DoctorWkt/unix-jun72/blob/1d438bd5874ec628157fbeab370c8e3f3a3ecb8b/src/cmd/dc5.s), presumably due to memory constraints). I'm not sure if I'm falling through a `default: exit(0);`, a segfault, or a case of mismatching binary/source.\r\n\r\nThe path forward there would be figuring out how to recompile the `dc` implementation; I think this might be possible but it's beyond the scope of the cursory level of interest I approached this with.\r\n\r\nIf anyone wants a rainy day project, I would be really interested to learn more about the result of others' digging around to get the earliest surviving copies of `dc` running.\r\n\r\nZooming back out to the topic, it would **seem** that current consensus is that errors *of this type* don't consume the stack; they leave it alone. But it would be nice to formally qualify this situation better. How should that be framed? Parser consumption expectations? Stack effects by errors in general?\r\n\r\nThis bugreport is somewhat of a thought experiment. I don't have any authoritative ideas or suggestions myself.", 405682da5a0SStefan Eßer "closed": true, 406682da5a0SStefan Eßer "closedAt": "2024-08-23T03:03:02Z", 407682da5a0SStefan Eßer "comments": [ 408682da5a0SStefan Eßer { 409682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6Bc1ec", 410682da5a0SStefan Eßer "author": { 411682da5a0SStefan Eßer "login": "gavinhoward" 412682da5a0SStefan Eßer }, 413682da5a0SStefan Eßer "authorAssociation": "OWNER", 414682da5a0SStefan Eßer "body": "Thank you for digging up the history!\r\n\r\nYou are correct that my `dc` clears the stack. When I was implementing `bc` and `dc`, I wanted to minimize the possibility that an error could screw up code later.\r\n\r\nHence, my `bc` and `dc` both [\"reset\"][1] on error, which means they clear everything and try to start completely fresh.\r\n\r\nThat said, the documentation could be clearer on that; I could make it say that errors clear the stack too. (And they do clear the stack because they have to clear the stack in `bc` since the stack is implicit.)\r\n\r\nHowever, this could go both ways:\r\n\r\n* I could declare this as a mere *documentation bug*, since `dc` is *not* standardized. In that case, I would just update the manual.\r\n* Or I could declare this a *conformance bug*, because while there is no standard, all other `dc` implementations do the opposite. In this case, I would make the change and fix the bugs that pop up.\r\n\r\nQuite frankly, I'm not looking forward to doing a full release cycle, which includes 2 weeks of fuzzing (during which my machine is unusable) and 24 hours of tests, possibly repeated. This means I want to fix the docs and call it a day, but going off of what I *want* to do is not rational.\r\n\r\nI don't know if anyone watches this repo, but this is one case where I'd like to hear comments from users.\r\n\r\n[1]: https://github.com/gavinhoward/bc/blob/master/manuals/bc/A.1.md#reset", 415682da5a0SStefan Eßer "createdAt": "2024-06-16T19:15:40Z", 416682da5a0SStefan Eßer "includesCreatedEdit": false, 417682da5a0SStefan Eßer "isMinimized": false, 418682da5a0SStefan Eßer "minimizedReason": "", 419682da5a0SStefan Eßer "reactionGroups": [], 420682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2171819932", 421682da5a0SStefan Eßer "viewerDidAuthor": true 422682da5a0SStefan Eßer }, 423682da5a0SStefan Eßer { 424682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6BfXEg", 425682da5a0SStefan Eßer "author": { 426682da5a0SStefan Eßer "login": "exikyut" 427682da5a0SStefan Eßer }, 428682da5a0SStefan Eßer "authorAssociation": "NONE", 429682da5a0SStefan Eßer "body": "> You are correct that my `dc` clears the stack. When I was implementing `bc` and `dc`, I wanted to minimize the possibility that an error could screw up code later.\r\n> \r\n> Hence, my `bc` and `dc` both [\"reset\"](https://github.com/gavinhoward/bc/blob/master/manuals/bc/A.1.md#reset) on error, which means they clear everything and try to start completely fresh.\r\n\r\nHuh. That makes pedagogical sense, upon consideration.\r\n\r\n> That said, the documentation could be clearer on that; I could make it say that errors clear the stack too.\r\n\r\nThat would probably be a good idea, both because `gh-dc` deviates from the norm, and because there *is* no norm; this would be the first point at which this particular graph edge / state machine transition is properly documented. Until now it's lived as an edge case in UB land.\r\n\r\n> (And they do clear the stack because they have to clear the stack in `bc` since the stack is implicit.)\r\n\r\nHuh. I wonder how other `bc`->`dc` architectural approaches have handled this situation?\r\n\r\n> However, this could go both ways:\r\n> \r\n> * I could declare this as a mere _documentation bug_, since `dc` is _not_ standardized. In that case, I would just update the manual.\r\n> * Or I could declare this a _conformance bug_, because while there is no standard, all other `dc` implementations do the opposite. In this case, I would make the change and fix the bugs that pop up.\r\n> \r\n> Quite frankly, I'm not looking forward to doing a full release cycle, which includes 2 weeks of fuzzing (during which my machine is unusable) and 24 hours of tests, possibly repeated. This means I want to fix the docs and call it a day, but going off of what I _want_ to do is not rational.\r\n\r\nGood net question. Hmm.\r\n\r\n> I don't know if anyone watches this repo, but this is one case where I'd like to hear comments from users.\r\n\r\nI am too.\r\n\r\nBut I'll add my 2¢:\r\n\r\n- Nobody has screamed until now, but `gh-dc` adoption is still rising.\r\n\r\n- Taking on the complexity of making this a `./configure`able option doesn't sound reasonable in practice.\r\n\r\n- I can only imagine a `dc` script generating different results after being switched to this implementation after some sort of upgrade process that presumably has capable humans involved in it. It would follow that said humans would presumably classify the deviation in output as the result of logic bugs and then fix them, so keeping this architectural approach is theoretically a net positive.\r\n\r\n- Applying to make `dc` a POSIX standard would make for an interesting 180-season TV series that would be excellent mid-afternoon watching while having a nap (and dreaming of how to make `dc` count to infinity twice). I'd definitely seed all 4,961 episodes.\r\n\r\n- Given that `gh-dc` is now in FreeBSD, it may well meet the theoretical/implicational interpretation (and possibly beyond) of \"significant user base\" required to [apply for OSS-Fuzz](https://google.github.io/oss-fuzz/getting-started/accepting-new-projects/) which would subject it to continual analysis and, if accepted, probably provide a slow trickle of genuinely interesting feedback. It also sounds like it would unblock a significant burnout barrier to commoditizing the process of cutting new releases - opting to letting new versions sit in OSS-Fuzz for a fortnight before releasing them (a cool strategy, and if only everything was architecturally simple enough that this could be applied everywhere) would no longer have a local performance impact.\r\n", 430682da5a0SStefan Eßer "createdAt": "2024-06-17T07:21:08Z", 431682da5a0SStefan Eßer "includesCreatedEdit": false, 432682da5a0SStefan Eßer "isMinimized": false, 433682da5a0SStefan Eßer "minimizedReason": "", 434682da5a0SStefan Eßer "reactionGroups": [], 435682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2172481824", 436682da5a0SStefan Eßer "viewerDidAuthor": false 437682da5a0SStefan Eßer }, 438682da5a0SStefan Eßer { 439682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6BmRt8", 440682da5a0SStefan Eßer "author": { 441682da5a0SStefan Eßer "login": "gavinhoward" 442682da5a0SStefan Eßer }, 443682da5a0SStefan Eßer "authorAssociation": "OWNER", 444682da5a0SStefan Eßer "body": "> Nobody has screamed until now, but `gh-dc` adoption is still rising.\r\n\r\nYes, I agree. In fact, I initially wanted to dismiss your report as \"only one user,\" but I did not for this reason.\r\n\r\n> Taking on the complexity of making this a `./configure`able option doesn't sound reasonable in practice.\r\n\r\nI do not want that to be a build-time option. I have too many as it is.\r\n\r\n> I can only imagine a `dc` script generating different results after being switched to this implementation after some sort of upgrade process that presumably has capable humans involved in it. It would follow that said humans would presumably classify the deviation in output as the result of logic bugs and then fix them, so keeping this architectural approach is theoretically a net positive.\r\n\r\nTrue, although people would be better served to switch to `bc` since it's standard and portable.\r\n\r\n> Applying to make `dc` a POSIX standard would make for an interesting 180-season TV series that would be excellent mid-afternoon watching while having a nap (and dreaming of how to make dc count to infinity twice). I'd definitely seed all 4,961 episodes.\r\n\r\nThe [rationale in the `bc` standard][1] says these two things:\r\n\r\n> `dc` was not selected to be part of this volume of POSIX.1-2017 because `bc` was thought to have a more intuitive programmatic interface.\r\n\r\n> The consensus of the standard developers was that `dc` is a fundamentally less usable language and that that would be far too severe a penalty for avoiding the issue of being similar to but incompatible with C.\r\n\r\nYes, that is from the 2017 standard, but that language goes back to the beginning, I believe. This means that standardizing `dc` will not happen, barring some rich fellow deciding that it's his life mission to make it happen.\r\n\r\n> Given that `gh-dc` is now in FreeBSD, it may well meet the theoretical/implicational interpretation (and possibly beyond) of \"significant user base\" required to [apply for OSS-Fuzz](https://google.github.io/oss-fuzz/getting-started/accepting-new-projects/) which would subject it to continual analysis and, if accepted, probably provide a slow trickle of genuinely interesting feedback. It also sounds like it would unblock a significant burnout barrier to commoditizing the process of cutting new releases - opting to letting new versions sit in OSS-Fuzz for a fortnight before releasing them (a cool strategy, and if only everything was architecturally simple enough that this could be applied everywhere) would no longer have a local performance impact.\r\n\r\nI agree with this, so [I have applied][2]. We'll see where that goes.\r\n\r\n[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html#tag_20_09_18\r\n[2]: https://github.com/google/oss-fuzz/pull/12078", 445682da5a0SStefan Eßer "createdAt": "2024-06-17T19:45:51Z", 446682da5a0SStefan Eßer "includesCreatedEdit": false, 447682da5a0SStefan Eßer "isMinimized": false, 448682da5a0SStefan Eßer "minimizedReason": "", 449682da5a0SStefan Eßer "reactionGroups": [], 450682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2174294908", 451682da5a0SStefan Eßer "viewerDidAuthor": true 452682da5a0SStefan Eßer }, 453682da5a0SStefan Eßer { 454682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6BpTwG", 455682da5a0SStefan Eßer "author": { 456682da5a0SStefan Eßer "login": "exikyut" 457682da5a0SStefan Eßer }, 458682da5a0SStefan Eßer "authorAssociation": "NONE", 459682da5a0SStefan Eßer "body": "> > Nobody has screamed until now, but `gh-dc` adoption is still rising.\r\n> \r\n> Yes, I agree. In fact, I initially wanted to dismiss your report as \"only one user,\" but I did not for this reason.\r\n\r\n(Sentiment of appreciation)\r\n\r\n> > Taking on the complexity of making this a `./configure`able option doesn't sound reasonable in practice.\r\n> \r\n> I do not want that to be a build-time option. I have too many as it is.\r\n\r\nI was genuinely surprised at the number of configurable options :) completely agree there haha\r\n\r\n> > I can only imagine a `dc` script generating different results after being switched to this implementation after some sort of upgrade process that presumably has capable humans involved in it. It would follow that said humans would presumably classify the deviation in output as the result of logic bugs and then fix them, so keeping this architectural approach is theoretically a net positive.\r\n> \r\n> True, although people would be better served to switch to `bc` since it's standard and portable.\r\n> \r\n> > Applying to make `dc` a POSIX standard would make for an interesting 180-season TV series that would be excellent mid-afternoon watching while having a nap (and dreaming of how to make dc count to infinity twice). I'd definitely seed all 4,961 episodes.\r\n> \r\n> The [rationale in the `bc` standard](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html#tag_20_09_18) says these two things:\r\n> \r\n> > `dc` was not selected to be part of this volume of POSIX.1-2017 because `bc` was thought to have a more intuitive programmatic interface.\r\n\r\nThanks for the TIL! I should have expected there to be extant discussion on the matter...\r\n\r\n> > The consensus of the standard developers was that `dc` is a fundamentally less usable language and that that would be far too severe a penalty for avoiding the issue of being similar to but incompatible with C.\r\n> \r\n> Yes, that is from the 2017 standard, but that language goes back to the beginning, I believe. This means that standardizing `dc` will not happen, barring some rich fellow deciding that it's his life mission to make it happen.\r\n\r\nI see. Thanks very much for the insight.\r\n\r\n> \r\n> > Given that `gh-dc` is now in FreeBSD, it may well meet the theoretical/implicational interpretation (and possibly beyond) of \"significant user base\" required to [apply for OSS-Fuzz](https://google.github.io/oss-fuzz/getting-started/accepting-new-projects/) which would subject it to continual analysis and, if accepted, probably provide a slow trickle of genuinely interesting feedback. It also sounds like it would unblock a significant burnout barrier to commoditizing the process of cutting new releases - opting to letting new versions sit in OSS-Fuzz for a fortnight before releasing them (a cool strategy, and if only everything was architecturally simple enough that this could be applied everywhere) would no longer have a local performance impact.\r\n> \r\n> I agree with this, so [I have applied](https://github.com/google/oss-fuzz/pull/12078). We'll see where that goes.\r\n\r\n**YOU GOT ACCEPTED :D :face_holding_back_tears:**\r\n\r\nI forgot that it ships in macOS, and TIL it ships in Android as well. OSS-Fuzz's scope tries to extend beyond Google-immediate interests, so this broader status quo (incl. FreeBSD) constitutes a meaningful precedent of relevance – potentially represented by the speed with which the project was accepted without further question (basically 45 minutes).", 460682da5a0SStefan Eßer "createdAt": "2024-06-18T06:03:35Z", 461682da5a0SStefan Eßer "includesCreatedEdit": false, 462682da5a0SStefan Eßer "isMinimized": false, 463682da5a0SStefan Eßer "minimizedReason": "", 464682da5a0SStefan Eßer "reactionGroups": [], 465682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2175089670", 466682da5a0SStefan Eßer "viewerDidAuthor": false 467682da5a0SStefan Eßer }, 468682da5a0SStefan Eßer { 469682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6B3Zis", 470682da5a0SStefan Eßer "author": { 471682da5a0SStefan Eßer "login": "gavinhoward" 472682da5a0SStefan Eßer }, 473682da5a0SStefan Eßer "authorAssociation": "OWNER", 474682da5a0SStefan Eßer "body": "> YOU GOT ACCEPTED :D \r\n\r\nYes, unfortunately, I [ran into problems integrating fuzzers][1], and I don't know what to do next, so I have to put OSS-Fuzz on the back plate. Thus, we're back to where we started.\r\n\r\nThank you for the suggestion, though.\r\n\r\n[1]: https://github.com/google/oss-fuzz/pull/12098", 475682da5a0SStefan Eßer "createdAt": "2024-06-19T13:54:56Z", 476682da5a0SStefan Eßer "includesCreatedEdit": false, 477682da5a0SStefan Eßer "isMinimized": false, 478682da5a0SStefan Eßer "minimizedReason": "", 479682da5a0SStefan Eßer "reactionGroups": [], 480682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2178783404", 481682da5a0SStefan Eßer "viewerDidAuthor": true 482682da5a0SStefan Eßer }, 483682da5a0SStefan Eßer { 484682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6C-bO7", 485682da5a0SStefan Eßer "author": { 486682da5a0SStefan Eßer "login": "spatula75" 487682da5a0SStefan Eßer }, 488682da5a0SStefan Eßer "authorAssociation": "NONE", 489682da5a0SStefan Eßer "body": "I also noticed this behavioral change, because on occasion I need to add a long list of numbers in `dc`, and rather than count how many numbers I have and issuing the right number of `+` operators, I have a habit of just entering way more `+` operators than I need and then grabbing the stack top value afterward. e.g.:\r\n```\r\n1 7 8 6 4 9 1 2 3 6 4 + + + + + + + + + + + + + + + + + + p\r\n```\r\nHistorically, and with other implementations of `dc`, this would result in a lot of `dc: stack empty` messages followed by the sum at the end. Now it results in a clear stack with no result.\r\n\r\nI can certainly see the merit of returning to a clean slate on an error condition when running in an \"automated\" fashion - blowing the stack in this case would generally mean you did something wrong and the results might not be trustworthy.\r\n\r\nI guess what frustrates me is that in interactive mode, this is a significant change from historical behavior that caught me off-guard and also blows up my use case, requiring me to now count how many numbers I have on the stack, and then to supply N-1 operators to get to the result I want. It's also making my stack more \"fragile\" in the sense that I now have to be very careful about my interactions with `dc`.\r\n\r\nI agree that changing behavior based on configuration-time options sounds like overkill and a lot of added complexity, especially when some users of a system might find the new behavior desirable.\r\n\r\nI see a few other possibilities:\r\n- A command line switch to either enable or disable stack clearing when running in `dc` mode, so a user can be explicit about whether they want the new behavior or the historical behavior. Whether the switch enables the old behavior, or enables the new behavior doesn't matter much to me; I'd just add a shell alias if I needed to always supply a switch.\r\n- A rule that when running in interactive mode (ie, from a keyboard not from a pipe or a file), you get the historical (non-clearing) behavior, but in non-interactive mode you always get the new (stack-clearing) behavior.\r\n- Some hybrid of the two: maybe in interactive mode you get the historical behavior _unless_ you supply a command-line switch\r\n\r\nOf course I realize that all of these options add complexity too, but hopefully not altogether too much. Any one of them would make me a happy camper.", 490682da5a0SStefan Eßer "createdAt": "2024-06-28T17:58:14Z", 491682da5a0SStefan Eßer "includesCreatedEdit": false, 492682da5a0SStefan Eßer "isMinimized": false, 493682da5a0SStefan Eßer "minimizedReason": "", 494682da5a0SStefan Eßer "reactionGroups": [ 495682da5a0SStefan Eßer { 496682da5a0SStefan Eßer "content": "THUMBS_UP", 497682da5a0SStefan Eßer "users": { 498682da5a0SStefan Eßer "totalCount": 1 499682da5a0SStefan Eßer } 500682da5a0SStefan Eßer } 501682da5a0SStefan Eßer ], 502682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2197402555", 503682da5a0SStefan Eßer "viewerDidAuthor": false 504682da5a0SStefan Eßer }, 505682da5a0SStefan Eßer { 506682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6DCMZY", 507682da5a0SStefan Eßer "author": { 508682da5a0SStefan Eßer "login": "gavinhoward" 509682da5a0SStefan Eßer }, 510682da5a0SStefan Eßer "authorAssociation": "OWNER", 511682da5a0SStefan Eßer "body": "I am not a fan of having different behavior in interative mode vs non-interactive mode.\r\n\r\nHowever, I think `dc` implementations tend to exit on any error in non-interactive mode anyway. At least GNU `dc` does, IIRC. This one definitely does, and this behavior is documented.\r\n\r\nSo this change would only affect interactive uses anyway.\r\n\r\nI will go ahead and make the change. I will start fuzzing as well. If few or no problems appear, I will make a release.", 512682da5a0SStefan Eßer "createdAt": "2024-06-30T00:55:05Z", 513682da5a0SStefan Eßer "includesCreatedEdit": false, 514682da5a0SStefan Eßer "isMinimized": false, 515682da5a0SStefan Eßer "minimizedReason": "", 516682da5a0SStefan Eßer "reactionGroups": [ 517682da5a0SStefan Eßer { 518682da5a0SStefan Eßer "content": "THUMBS_UP", 519682da5a0SStefan Eßer "users": { 520682da5a0SStefan Eßer "totalCount": 2 521682da5a0SStefan Eßer } 522682da5a0SStefan Eßer } 523682da5a0SStefan Eßer ], 524682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2198390360", 525682da5a0SStefan Eßer "viewerDidAuthor": true 526682da5a0SStefan Eßer }, 527682da5a0SStefan Eßer { 528682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6JdDT8", 529682da5a0SStefan Eßer "author": { 530682da5a0SStefan Eßer "login": "gavinhoward" 531682da5a0SStefan Eßer }, 532682da5a0SStefan Eßer "authorAssociation": "OWNER", 533682da5a0SStefan Eßer "body": "Okay, it took me a long time to have the time for fuzzing and testing, but this change made it into 7.0.0.\r\n\r\nI think I can close this report now, but if there are still problems, feel free to reopen.", 534682da5a0SStefan Eßer "createdAt": "2024-08-23T03:03:02Z", 535682da5a0SStefan Eßer "includesCreatedEdit": false, 536682da5a0SStefan Eßer "isMinimized": false, 537682da5a0SStefan Eßer "minimizedReason": "", 538682da5a0SStefan Eßer "reactionGroups": [], 539682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79#issuecomment-2306094332", 540682da5a0SStefan Eßer "viewerDidAuthor": true 541682da5a0SStefan Eßer } 542682da5a0SStefan Eßer ], 543682da5a0SStefan Eßer "createdAt": "2024-06-16T10:02:06Z", 544682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6MaBsK", 545682da5a0SStefan Eßer "isPinned": false, 546682da5a0SStefan Eßer "labels": [], 547682da5a0SStefan Eßer "milestone": null, 548682da5a0SStefan Eßer "number": 79, 549682da5a0SStefan Eßer "projectCards": [], 550682da5a0SStefan Eßer "projectItems": [], 551682da5a0SStefan Eßer "reactionGroups": [], 552682da5a0SStefan Eßer "state": "CLOSED", 553682da5a0SStefan Eßer "stateReason": "COMPLETED", 554682da5a0SStefan Eßer "title": "Stack-consumption-on-error headscratch in comparison to other `dc`s", 555682da5a0SStefan Eßer "updatedAt": "2024-08-23T03:03:02Z", 556682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/79" 557682da5a0SStefan Eßer }, 558682da5a0SStefan Eßer { 559682da5a0SStefan Eßer "assignees": [], 560682da5a0SStefan Eßer "author": { 561682da5a0SStefan Eßer "id": "MDQ6VXNlcjI2NjI1MTQx", 562682da5a0SStefan Eßer "is_bot": false, 563682da5a0SStefan Eßer "login": "freebrowser1", 564682da5a0SStefan Eßer "name": "" 565682da5a0SStefan Eßer }, 566682da5a0SStefan Eßer "body": "Excellent software !\r\n\r\nThis `bc` is MUCH faster than the bc supplied to Linux distros. I downloaded the source package, compiled under Ubuntu ARM and it worked. I did the same on Termux on an Android cellphone (which also has the slow 1.7 version) and it was blazingly fast as well !\r\nIt can be used for other bases up till sixteen. I changed it (locally, not on this Github site) to max base 36.\r\nMaybe that can be an option to publish it here.", 567682da5a0SStefan Eßer "closed": true, 568682da5a0SStefan Eßer "closedAt": "2024-05-15T15:52:29Z", 569682da5a0SStefan Eßer "comments": [ 570682da5a0SStefan Eßer { 571682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc59oi_N", 572682da5a0SStefan Eßer "author": { 573682da5a0SStefan Eßer "login": "gavinhoward" 574682da5a0SStefan Eßer }, 575682da5a0SStefan Eßer "authorAssociation": "OWNER", 576682da5a0SStefan Eßer "body": "Thank you for your compliments!\r\n\r\nAs it turns out, it's the accompanying `dc` that only goes up to base 16. `bc` goes up to base 36.\r\n\r\nThere is a reason for base 36: according to the `bc` standard, it must be possible to set all input bases with a one character number. This is so any input base could be set no matter the *current* input base.\r\n\r\nFor example, say you write a function that should work in multiple bases. What if it temporarily has to set a new input base. How does it do that when the input base could be anything from binary to hexadecimal?\r\n\r\nThe answer is [here][1] (scroll down to where it says, \"When either ibase or obase is assigned a single digit value...\").\r\n\r\nNow my `bc` does take that up to base 35, which is the base you can reach by using `Z` as the single digit value.\r\n\r\nTo test this, try this code:\r\n\r\n```\r\n$ bc\r\n>>> obase=Z\r\n>>> 35\r\n01 00\r\n>>> quit\r\n```\r\n\r\nI hope this helps.\r\n\r\n[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html#tag_20_09_13_03", 577682da5a0SStefan Eßer "createdAt": "2024-05-13T14:35:35Z", 578682da5a0SStefan Eßer "includesCreatedEdit": true, 579682da5a0SStefan Eßer "isMinimized": false, 580682da5a0SStefan Eßer "minimizedReason": "", 581682da5a0SStefan Eßer "reactionGroups": [], 582682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/78#issuecomment-2107781069", 583682da5a0SStefan Eßer "viewerDidAuthor": true 584682da5a0SStefan Eßer }, 585682da5a0SStefan Eßer { 586682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc59sMoG", 587682da5a0SStefan Eßer "author": { 588682da5a0SStefan Eßer "login": "gavinhoward" 589682da5a0SStefan Eßer }, 590682da5a0SStefan Eßer "authorAssociation": "OWNER", 591682da5a0SStefan Eßer "body": "I realize I forgot to include an example with `ibase`.\r\n\r\n```\r\n$ bc\r\n>>> ibase=Z\r\n>>> 10\r\n35\r\n>>> ibase=6*6\r\n>>> 10\r\n36\r\n>>> quit\r\n```\r\n\r\nSo yes, my `bc` already goes up to base 36 for `ibase` too, although you do need some special way, like `6*6`, to get it.", 592682da5a0SStefan Eßer "createdAt": "2024-05-13T20:24:59Z", 593682da5a0SStefan Eßer "includesCreatedEdit": false, 594682da5a0SStefan Eßer "isMinimized": false, 595682da5a0SStefan Eßer "minimizedReason": "", 596682da5a0SStefan Eßer "reactionGroups": [], 597682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/78#issuecomment-2108738054", 598682da5a0SStefan Eßer "viewerDidAuthor": true 599682da5a0SStefan Eßer }, 600682da5a0SStefan Eßer { 601682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5978rz", 602682da5a0SStefan Eßer "author": { 603682da5a0SStefan Eßer "login": "freebrowser1" 604682da5a0SStefan Eßer }, 605682da5a0SStefan Eßer "authorAssociation": "NONE", 606682da5a0SStefan Eßer "body": "I have changed a few source files (find in the files in the accompanied zip lines with //!!).\r\nThis allows using max base 36 with all digits and all UPPERCASE letters. When I and O are not wanted, use `export NO_I_O_DIGITS=1` (or any value) before executing bc and 34 = @, 35 = #.\r\n\r\n[src.zip](https://github.com/gavinhoward/bc/files/15323750/src.zip)\r\n", 607682da5a0SStefan Eßer "createdAt": "2024-05-15T15:31:15Z", 608682da5a0SStefan Eßer "includesCreatedEdit": false, 609682da5a0SStefan Eßer "isMinimized": false, 610682da5a0SStefan Eßer "minimizedReason": "", 611682da5a0SStefan Eßer "reactionGroups": [], 612682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/78#issuecomment-2112867059", 613682da5a0SStefan Eßer "viewerDidAuthor": false 614682da5a0SStefan Eßer }, 615682da5a0SStefan Eßer { 616682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc598Hyk", 617682da5a0SStefan Eßer "author": { 618682da5a0SStefan Eßer "login": "gavinhoward" 619682da5a0SStefan Eßer }, 620682da5a0SStefan Eßer "authorAssociation": "OWNER", 621682da5a0SStefan Eßer "body": "You did not read my comments. My `bc` already supports up to base 36.\r\n\r\nYour changes are not needed.\r\n\r\nClosing.", 622682da5a0SStefan Eßer "createdAt": "2024-05-15T15:52:29Z", 623682da5a0SStefan Eßer "includesCreatedEdit": false, 624682da5a0SStefan Eßer "isMinimized": false, 625682da5a0SStefan Eßer "minimizedReason": "", 626682da5a0SStefan Eßer "reactionGroups": [], 627682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/78#issuecomment-2112912548", 628682da5a0SStefan Eßer "viewerDidAuthor": true 629682da5a0SStefan Eßer }, 630682da5a0SStefan Eßer { 631682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5-Emcm", 632682da5a0SStefan Eßer "author": { 633682da5a0SStefan Eßer "login": "freebrowser1" 634682da5a0SStefan Eßer }, 635682da5a0SStefan Eßer "authorAssociation": "NONE", 636682da5a0SStefan Eßer "body": "I checked again, downloaded the source kit, compiled it (Ubuntu arm64) and ran this:\r\n' bin/bc -l <<< \"ibase=obase=24; 2^G;\"'\r\nThis results in `04 17 18 16`, i.e. decimal numbers as 'digits' which should only appear with base above 36.\r\nAfter applying my changes, it issues the correct value '4HIG'.\r\n", 637682da5a0SStefan Eßer "createdAt": "2024-05-16T12:35:20Z", 638682da5a0SStefan Eßer "includesCreatedEdit": false, 639682da5a0SStefan Eßer "isMinimized": false, 640682da5a0SStefan Eßer "minimizedReason": "", 641682da5a0SStefan Eßer "reactionGroups": [], 642682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/78#issuecomment-2115135270", 643682da5a0SStefan Eßer "viewerDidAuthor": false 644682da5a0SStefan Eßer }, 645682da5a0SStefan Eßer { 646682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5-E7EK", 647682da5a0SStefan Eßer "author": { 648682da5a0SStefan Eßer "login": "gavinhoward" 649682da5a0SStefan Eßer }, 650682da5a0SStefan Eßer "authorAssociation": "OWNER", 651682da5a0SStefan Eßer "body": "This cannot be changed.\r\n\r\nThere is a [standard for `bc`][1], and in that standard, it says,\r\n\r\n> For bases greater than 16, each digit shall be written as a separate multi-digit decimal number. Each digit except the most significant fractional digit shall be preceded by a single <space>. For bases from 17 to 100, bc shall write two-digit decimal numbers; for bases from 101 to 1000, three-digit decimal strings, and so on.\r\n\r\nSo no, as much as I would like to change it, it cannot be changed.\r\n\r\n[1]: https://pubs.opengroup.org/onlinepubs/009696799/utilities/bc.html", 652682da5a0SStefan Eßer "createdAt": "2024-05-16T13:15:39Z", 653682da5a0SStefan Eßer "includesCreatedEdit": false, 654682da5a0SStefan Eßer "isMinimized": false, 655682da5a0SStefan Eßer "minimizedReason": "", 656682da5a0SStefan Eßer "reactionGroups": [], 657682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/78#issuecomment-2115219722", 658682da5a0SStefan Eßer "viewerDidAuthor": true 659682da5a0SStefan Eßer } 660682da5a0SStefan Eßer ], 661682da5a0SStefan Eßer "createdAt": "2024-05-13T07:31:19Z", 662682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6Infdz", 663682da5a0SStefan Eßer "isPinned": false, 664682da5a0SStefan Eßer "labels": [], 665682da5a0SStefan Eßer "milestone": null, 666682da5a0SStefan Eßer "number": 78, 667682da5a0SStefan Eßer "projectCards": [], 668682da5a0SStefan Eßer "projectItems": [], 669682da5a0SStefan Eßer "reactionGroups": [], 670682da5a0SStefan Eßer "state": "CLOSED", 671682da5a0SStefan Eßer "stateReason": "NOT_PLANNED", 672682da5a0SStefan Eßer "title": "Not an issue, but a change proposal", 673682da5a0SStefan Eßer "updatedAt": "2024-05-16T13:15:40Z", 674682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/78" 675682da5a0SStefan Eßer }, 676682da5a0SStefan Eßer { 677682da5a0SStefan Eßer "assignees": [], 678682da5a0SStefan Eßer "author": { 679682da5a0SStefan Eßer "id": "U_kgDOB00gDQ", 680682da5a0SStefan Eßer "is_bot": false, 681682da5a0SStefan Eßer "login": "oliverkwebb", 682682da5a0SStefan Eßer "name": "Oliver Webb" 683682da5a0SStefan Eßer }, 684682da5a0SStefan Eßer "body": "First I'd like to thank you for the work and care in making bc.\r\n\r\nI replaced GNU bc with your bc on my system, and ran into a error trying to run bc with some external bc libraries that define functions such as `abs()`\r\n\r\nThis is because your bc already has a built in `abs()`, and unlike the functions in the -l math library, will not let you redefine it because it appear to not just be a function, but also a lexer tokens/keyword.\r\n\r\nIs this a problem that you've ran into or considered before? ", 685682da5a0SStefan Eßer "closed": true, 686682da5a0SStefan Eßer "closedAt": "2024-05-08T17:39:46Z", 687682da5a0SStefan Eßer "comments": [ 688682da5a0SStefan Eßer { 689682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc59O96s", 690682da5a0SStefan Eßer "author": { 691682da5a0SStefan Eßer "login": "gavinhoward" 692682da5a0SStefan Eßer }, 693682da5a0SStefan Eßer "authorAssociation": "OWNER", 694682da5a0SStefan Eßer "body": "Yup! And my `bc` already has a solution:\r\n\r\n```\r\n$ bc -r abs <other_args...>\r\n```\r\n\r\nSee [here][1], scroll to the `-r`/`--redefine` option.\r\n\r\nIn short, it allows you to \"redefine\" keywords as functions, variables, or arrays.\r\n\r\nOf course, if that doesn't fix your problem, then it is a bug.\r\n\r\n[1]: https://github.com/gavinhoward/bc/blob/master/manuals/bc/A.1.md#options", 695682da5a0SStefan Eßer "createdAt": "2024-05-08T17:34:29Z", 696682da5a0SStefan Eßer "includesCreatedEdit": false, 697682da5a0SStefan Eßer "isMinimized": false, 698682da5a0SStefan Eßer "minimizedReason": "", 699682da5a0SStefan Eßer "reactionGroups": [], 700682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/77#issuecomment-2101075628", 701682da5a0SStefan Eßer "viewerDidAuthor": true 702682da5a0SStefan Eßer }, 703682da5a0SStefan Eßer { 704682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc59O_7j", 705682da5a0SStefan Eßer "author": { 706682da5a0SStefan Eßer "login": "oliverkwebb" 707682da5a0SStefan Eßer }, 708682da5a0SStefan Eßer "authorAssociation": "NONE", 709682da5a0SStefan Eßer "body": "Putting `-r abs` in my function arguments will run the library.\r\n\r\nThank you for your help", 710682da5a0SStefan Eßer "createdAt": "2024-05-08T17:39:46Z", 711682da5a0SStefan Eßer "includesCreatedEdit": false, 712682da5a0SStefan Eßer "isMinimized": false, 713682da5a0SStefan Eßer "minimizedReason": "", 714682da5a0SStefan Eßer "reactionGroups": [ 715682da5a0SStefan Eßer { 716682da5a0SStefan Eßer "content": "THUMBS_UP", 717682da5a0SStefan Eßer "users": { 718682da5a0SStefan Eßer "totalCount": 1 719682da5a0SStefan Eßer } 720682da5a0SStefan Eßer } 721682da5a0SStefan Eßer ], 722682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/77#issuecomment-2101083875", 723682da5a0SStefan Eßer "viewerDidAuthor": false 724682da5a0SStefan Eßer } 725682da5a0SStefan Eßer ], 726682da5a0SStefan Eßer "createdAt": "2024-05-08T17:29:50Z", 727682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6IQwkm", 728682da5a0SStefan Eßer "isPinned": false, 729682da5a0SStefan Eßer "labels": [], 730682da5a0SStefan Eßer "milestone": null, 731682da5a0SStefan Eßer "number": 77, 732682da5a0SStefan Eßer "projectCards": [], 733682da5a0SStefan Eßer "projectItems": [], 734682da5a0SStefan Eßer "reactionGroups": [], 735682da5a0SStefan Eßer "state": "CLOSED", 736682da5a0SStefan Eßer "stateReason": "COMPLETED", 737682da5a0SStefan Eßer "title": "Allowing redefinition of builtin function such as abs() for compatibility with bc scripts", 738682da5a0SStefan Eßer "updatedAt": "2024-05-08T17:39:46Z", 739682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/77" 740682da5a0SStefan Eßer }, 741682da5a0SStefan Eßer { 742682da5a0SStefan Eßer "assignees": [], 743682da5a0SStefan Eßer "author": { 744682da5a0SStefan Eßer "id": "MDQ6VXNlcjc0MzM1NDcx", 745682da5a0SStefan Eßer "is_bot": false, 746682da5a0SStefan Eßer "login": "mogando668", 747682da5a0SStefan Eßer "name": "" 748682da5a0SStefan Eßer }, 749682da5a0SStefan Eßer "body": "Dear Mr. Howard,\r\n\r\nFor gigantic `obase`s, like those below the line, even though they're clearly beyond the hard-coded `obase `max of `2,147,483,647`,`bc` appears to calculate the expression to full precision before erroring out, thus undermining any early exit criteria that ensure built-in named variables are within designated limits. I haven't tested against `ibase` but I suspect something similar would plague it, i.e. the right hand side expression is being calculated to full precision before any attempts to check them against caps.\r\n\r\nThe full `zsh`-based testing code and output are attached below.\r\n\r\nYours Sincerely\r\nJason K\r\n\r\nps : I've noticed the same issue plagues both `gnu-bc` I've installed via Homebrew as well as the macOS built-in `bc`. \r\n\r\n```\r\n 2 ^ 8 ^ 1 := 2 ^ 8\r\n 2 ^ 8 ^ 2 := 2 ^ 64\r\n 2 ^ 8 ^ 3 := 2 ^ 512\r\n 2 ^ 8 ^ 4 := 2 ^ 4096\r\n 2 ^ 8 ^ 5 := 2 ^ 32768\r\n 2 ^ 8 ^ 6 := 2 ^ 262144\r\n 2 ^ 8 ^ 7 := 2 ^ 2097152\r\n----------------------------\r\n 2 ^ 8 ^ 8 := 2 ^ 16777216\r\n 2 ^ 8 ^ 9 := 2 ^ 134217728\r\n 2 ^ 8 ^ 10 := 2 ^ 1073741824\r\n```\r\n\r\n\r\n```\r\nbc 1.07.1\r\nCopyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.\r\n\r\nDarwin m1mx4CT 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:38:37 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T6000 arm64\r\n\r\ngbc is /usr/local/bin/gbc\r\n\r\nBC_BASE_MAX = 2147483647\r\nBC_DIM_MAX = 16777215\r\nBC_SCALE_MAX = 2147483647\r\nBC_STRING_MAX = 2147483647\r\nMAX Exponent = 9223372036854775807\r\nNumber of vars = 32767\r\n\r\n```\r\n\r\n`for __ in $( jot 10 ); do ( time ( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --preserve-status --foreground 8 dash -c 'for __; do echo \"$__\" | gbc; done' _ ) ); echo \"\\f ----------\\n\\t finished 2^8^$__ with exit status $? ... \\n --------\"; done`\r\n\r\n```\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.00s user 0.01s system 86% cpu 0.008 total\r\n\r\n ----------\r\n\t finished 2^8^1 with exit status 0 ... \r\n --------\r\nRuntime warning (func=(main), adr=13): obase too large, set to 2147483647\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.00s user 0.01s system 58% cpu 0.012 total\r\n\r\n ----------\r\n\t finished 2^8^2 with exit status 0 ... \r\n --------\r\nRuntime warning (func=(main), adr=13): obase too large, set to 2147483647\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.00s user 0.00s system 82% cpu 0.007 total\r\n\r\n ----------\r\n\t finished 2^8^3 with exit status 0 ... \r\n --------\r\nRuntime warning (func=(main), adr=13): obase too large, set to 2147483647\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.00s user 0.00s system 84% cpu 0.008 total\r\n\r\n ----------\r\n\t finished 2^8^4 with exit status 0 ... \r\n --------\r\nRuntime warning (func=(main), adr=13): obase too large, set to 2147483647\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.01s user 0.00s system 90% cpu 0.012 total\r\n\r\n ----------\r\n\t finished 2^8^5 with exit status 0 ... \r\n --------\r\nRuntime warning (func=(main), adr=13): obase too large, set to 2147483647\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.14s user 0.01s system 98% cpu 0.143 total\r\n\r\n ----------\r\n\t finished 2^8^6 with exit status 0 ... \r\n --------\r\nRuntime warning (func=(main), adr=13): obase too large, set to 2147483647\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 3.64s user 0.01s system 99% cpu 3.654 total\r\n\r\n ----------\r\n\t finished 2^8^7 with exit status 0 ... \r\n --------\r\ntimeout: sending signal TERM to command ‘dash’\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.00s user 0.00s system 0% cpu 8.009 total\r\n\r\n ----------\r\n\t finished 2^8^8 with exit status 0 ... \r\n --------\r\ntimeout: sending signal TERM to command ‘dash’\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.00s user 0.00s system 0% cpu 8.008 total\r\n\r\n ----------\r\n\t finished 2^8^9 with exit status 0 ... \r\n --------\r\nRuntime warning (func=(main), adr=13): obase too large, set to 2147483647\r\ntimeout: sending signal TERM to command ‘dash’\r\n( printf 'obase=2^8^%d\\0' \"$__\" | xargs -0 -n 1 -P 24 timeout -v --foregroun) 0.00s user 0.01s system 0% cpu 8.011 total\r\n\r\n ----------\r\n\t finished 2^8^10 with exit status 0 ... \r\n --------\r\n```", 750682da5a0SStefan Eßer "closed": true, 751682da5a0SStefan Eßer "closedAt": "2024-01-27T20:24:51Z", 752682da5a0SStefan Eßer "comments": [ 753682da5a0SStefan Eßer { 754682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5yCwr9", 755682da5a0SStefan Eßer "author": { 756682da5a0SStefan Eßer "login": "gavinhoward" 757682da5a0SStefan Eßer }, 758682da5a0SStefan Eßer "authorAssociation": "OWNER", 759682da5a0SStefan Eßer "body": "In general, this problem is unsolvable. It's a consequence of the limits of computing. (The technical term is \"Turing-completeness.\")\r\n\r\nFor example, to us it's obvious that `2^8^10` is out of range. But computers do not understand any \"concept\" of math, so they can't tell.\r\n\r\nAll they can do is execute the code that they are given.\r\n\r\nYou'd see an different execution time if you did this:\r\n\r\n```\r\nobase = 104438888141315250669175271071662438257996424904738378038423348328395390\\\r\n797155745684882681193499755834089010671443926283798757343818579360726323\\\r\n608785136527794595697654370999834036159013438371831442807001185594622637\\\r\n631883939771274567233468434458661749680790870580370407128404874011860911\\\r\n446797778359802900668693897688178778594690563019026094059957945343282346\\\r\n930302669644305902501597239986771421554169383555988529148631823791443449\\\r\n673408781187263949647510018904134900841706167509366833385055103297208826\\\r\n955076998361636941193301521379682583718809183365675122131849284636812555\\\r\n022599830041234478486259567449219461702380650591324561082573183538008760\\\r\n862210283427019769820231316901767800667519548507992163641937028537512478\\\r\n401490715913545998279051339961155179427110683113409058427288427979155484\\\r\n978295432353451706522326906139490598769300212296339568778287894844061600\\\r\n741294567491982305057164237715481632138063104590291613692670834285644073\\\r\n044789997190178146576347322385026725305989979599609079946920177462481771\\\r\n844986745565925017832907047311943316555080756822184657174637329688491281\\\r\n952031745700244092661691087414838507841192980452298185733897764810312608\\\r\n590300130241346718972667321649151113160292078173803343609024380470834040\\\r\n3154190336\r\n```\r\n\r\ninstead of this:\r\n\r\n```\r\nobase = 2^8^4\r\n```\r\n\r\nAgain, the computer has no idea that `2^8^4` cannot work until it calculates it. We can see it by eye (\"`8^4` is definitely greater than 64, and `2^64` is the max\"), but the computer doesn't think that like. It sees:\r\n\r\n```\r\nconstant 2\r\nconstant 8\r\nconstant 4\r\nx = exponentiation 8 4\r\nexponentiation 2 x\r\n```\r\n\r\nI hope this makes sense.", 760682da5a0SStefan Eßer "createdAt": "2024-01-27T20:24:51Z", 761682da5a0SStefan Eßer "includesCreatedEdit": false, 762682da5a0SStefan Eßer "isMinimized": false, 763682da5a0SStefan Eßer "minimizedReason": "", 764682da5a0SStefan Eßer "reactionGroups": [], 765682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/75#issuecomment-1913326333", 766682da5a0SStefan Eßer "viewerDidAuthor": true 767682da5a0SStefan Eßer } 768682da5a0SStefan Eßer ], 769682da5a0SStefan Eßer "createdAt": "2024-01-27T19:16:44Z", 770682da5a0SStefan Eßer "id": "I_kwDOCL0xJc59ZJcH", 771682da5a0SStefan Eßer "isPinned": false, 772682da5a0SStefan Eßer "labels": [], 773682da5a0SStefan Eßer "milestone": null, 774682da5a0SStefan Eßer "number": 75, 775682da5a0SStefan Eßer "projectCards": [], 776682da5a0SStefan Eßer "projectItems": [], 777682da5a0SStefan Eßer "reactionGroups": [], 778682da5a0SStefan Eßer "state": "CLOSED", 779682da5a0SStefan Eßer "stateReason": "COMPLETED", 780682da5a0SStefan Eßer "title": "bc attempts to first calculate gigantic obase before erroring out", 781682da5a0SStefan Eßer "updatedAt": "2024-01-27T20:24:51Z", 782682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/75" 783682da5a0SStefan Eßer }, 784682da5a0SStefan Eßer { 785682da5a0SStefan Eßer "assignees": [], 786682da5a0SStefan Eßer "author": { 787682da5a0SStefan Eßer "id": "U_kgDOCGPbwA", 788682da5a0SStefan Eßer "is_bot": false, 789682da5a0SStefan Eßer "login": "shuang886", 790682da5a0SStefan Eßer "name": "Steven Huang" 791682da5a0SStefan Eßer }, 792682da5a0SStefan Eßer "body": "Hi, just want to make sure I'm not missing something glaringly obvious...\r\n\r\nI'm trying to build just the library on macOS, so:\r\n\r\n```\r\n% ./configure -a\r\nTesting for FreeBSD...\r\nNot on FreeBSD. Using _POSIX_C_SOURCE and _XOPEN_SOURCE.\r\n\r\nTesting for Mac OSX...\r\nOn Mac OSX. Using _DARWIN_C_SOURCE.\r\n\r\nTesting for OpenBSD...\r\nNot on OpenBSD.\r\n\r\nVersion: 6.7.2\r\nBuilding bc\r\nBuilding dc\r\n\r\nBC_ENABLE_LIBRARY=1\r\n\r\nBC_ENABLE_HISTORY=0\r\nBC_ENABLE_EXTRA_MATH=1\r\nBC_ENABLE_NLS=0\r\n\r\nBC_ENABLE_AFL=0\r\n\r\nBC_NUM_KARATSUBA_LEN=32\r\n\r\nCC=c99\r\nCFLAGS= -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0\r\nHOSTCC=c99\r\nHOSTCFLAGS=\r\nCPPFLAGS=-DNDEBUG -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700\r\nLDFLAGS=-s \r\nPREFIX=/usr/local\r\nBINDIR=/usr/local/bin\r\nINCLUDEDIR=/usr/local/include\r\nLIBDIR=/usr/local/lib\r\nDATAROOTDIR=/usr/local/share\r\nDATADIR=/usr/local/share\r\nMANDIR=/usr/local/share/man\r\nMAN1DIR=/usr/local/share/man/man1\r\nMAN3DIR=/usr/local/share/man/man3\r\nNLSPATH=\r\nPC_PATH=/opt/homebrew/lib/pkgconfig\r\nEXECSUFFIX=\r\nEXECPREFIX=\r\nDESTDIR=\r\nLONG_BIT=\r\nGEN_HOST=1\r\nGEN_EMU=\r\n\r\nSetting Defaults\r\n================\r\nbc.banner=0\r\nbc.sigint_reset=1\r\ndc.sigint_reset=1\r\nbc.tty_mode=1\r\ndc.tty_mode=0\r\nbc.prompt=1\r\ndc.prompt=0\r\nbc.expr_exit=1\r\ndc.expr_exit=1\r\nbc.digit_clamp=0\r\ndc.digit_clamp=0\r\n```\r\n\r\nseems to be happy, but it doesn't actually build:\r\n\r\n```\r\n% make\r\nmkdir -p bin\r\nc99 -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=HN -DEXECPREFIX= -DMAINEXEC=bc -D_DARWIN_C_SOURCE -DBC_NUM_KARATSUBA_LEN=32 -DBC_ENABLE_NLS=0 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=0 -DBC_ENABLE_LIBRARY=1 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DNDEBUG -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -o src/args.o -c ./src//args.c\r\n./src//args.c:62:6: error: use of undeclared identifier 'vm'\r\n if (vm->exprs.v == NULL)\r\n ^\r\n./src//args.c:64:16: error: use of undeclared identifier 'vm'\r\n bc_vec_init(&vm->exprs, sizeof(uchar), BC_DTOR_NONE);\r\n ^\r\n...lots more...\r\n```\r\n\r\n`vm` appears to be defined in `src/vm.c` but inside a `#if !BC_ENABLE_LIBRARY`, while a lot of code in `src/args.c` are not correspondingly enclosed. I tried to sprinkle in some `#if !BC_ENABLE_LIBRARY` directives but that just exposed more code that needed to be `#ifdef`ed out.\r\n\r\nBuilding the executables (i.e., just plain `./configure`) compiles and runs fine.\r\n\r\nWould you mind clarifying if there's more needed than `./configure -a`? I couldn't find anything that helps in the build manual, and I get the sense that `args.c` should not have been in the `Makefile` at all...\r\n\r\nThanks!", 793682da5a0SStefan Eßer "closed": true, 794682da5a0SStefan Eßer "closedAt": "2023-11-27T21:30:42Z", 795682da5a0SStefan Eßer "comments": [ 796682da5a0SStefan Eßer { 797682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5s_tei", 798682da5a0SStefan Eßer "author": { 799682da5a0SStefan Eßer "login": "gavinhoward" 800682da5a0SStefan Eßer }, 801682da5a0SStefan Eßer "authorAssociation": "OWNER", 802682da5a0SStefan Eßer "body": "You're not missing something glaringly obvious. That is a bug because it should build with no errors.\r\n\r\nI think I fixed it in 7807eead159b80b51b8c81680608f8187284971e; can you pull and test for me?\r\n\r\nIf that *is* the fix, then the problem was an extra slash in a path; apparently Mac OSX does not clean paths when doing a string comparison. Oops.", 803682da5a0SStefan Eßer "createdAt": "2023-11-27T21:24:37Z", 804682da5a0SStefan Eßer "includesCreatedEdit": false, 805682da5a0SStefan Eßer "isMinimized": false, 806682da5a0SStefan Eßer "minimizedReason": "", 807682da5a0SStefan Eßer "reactionGroups": [], 808682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/71#issuecomment-1828640674", 809682da5a0SStefan Eßer "viewerDidAuthor": true 810682da5a0SStefan Eßer }, 811682da5a0SStefan Eßer { 812682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5s_vWb", 813682da5a0SStefan Eßer "author": { 814682da5a0SStefan Eßer "login": "shuang886" 815682da5a0SStefan Eßer }, 816682da5a0SStefan Eßer "authorAssociation": "NONE", 817682da5a0SStefan Eßer "body": "Works now, thanks!", 818682da5a0SStefan Eßer "createdAt": "2023-11-27T21:30:42Z", 819682da5a0SStefan Eßer "includesCreatedEdit": false, 820682da5a0SStefan Eßer "isMinimized": false, 821682da5a0SStefan Eßer "minimizedReason": "", 822682da5a0SStefan Eßer "reactionGroups": [], 823682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/71#issuecomment-1828648347", 824682da5a0SStefan Eßer "viewerDidAuthor": false 825682da5a0SStefan Eßer }, 826682da5a0SStefan Eßer { 827682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5s_vvD", 828682da5a0SStefan Eßer "author": { 829682da5a0SStefan Eßer "login": "gavinhoward" 830682da5a0SStefan Eßer }, 831682da5a0SStefan Eßer "authorAssociation": "OWNER", 832682da5a0SStefan Eßer "body": "You're welcome. I'll put out a new release with the fix.", 833682da5a0SStefan Eßer "createdAt": "2023-11-27T21:31:57Z", 834682da5a0SStefan Eßer "includesCreatedEdit": false, 835682da5a0SStefan Eßer "isMinimized": false, 836682da5a0SStefan Eßer "minimizedReason": "", 837682da5a0SStefan Eßer "reactionGroups": [], 838682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/71#issuecomment-1828649923", 839682da5a0SStefan Eßer "viewerDidAuthor": true 840682da5a0SStefan Eßer }, 841682da5a0SStefan Eßer { 842682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5s_y9T", 843682da5a0SStefan Eßer "author": { 844682da5a0SStefan Eßer "login": "gavinhoward" 845682da5a0SStefan Eßer }, 846682da5a0SStefan Eßer "authorAssociation": "OWNER", 847682da5a0SStefan Eßer "body": "Ah! I made a mistake! Could you pull 7eaa40ab8cac29893155471076c621c2f9929d33 and see if that works?", 848682da5a0SStefan Eßer "createdAt": "2023-11-27T21:41:25Z", 849682da5a0SStefan Eßer "includesCreatedEdit": false, 850682da5a0SStefan Eßer "isMinimized": false, 851682da5a0SStefan Eßer "minimizedReason": "", 852682da5a0SStefan Eßer "reactionGroups": [], 853682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/71#issuecomment-1828663123", 854682da5a0SStefan Eßer "viewerDidAuthor": true 855682da5a0SStefan Eßer }, 856682da5a0SStefan Eßer { 857682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5s_zsO", 858682da5a0SStefan Eßer "author": { 859682da5a0SStefan Eßer "login": "shuang886" 860682da5a0SStefan Eßer }, 861682da5a0SStefan Eßer "authorAssociation": "NONE", 862682da5a0SStefan Eßer "body": "Yup, still works.", 863682da5a0SStefan Eßer "createdAt": "2023-11-27T21:43:29Z", 864682da5a0SStefan Eßer "includesCreatedEdit": false, 865682da5a0SStefan Eßer "isMinimized": false, 866682da5a0SStefan Eßer "minimizedReason": "", 867682da5a0SStefan Eßer "reactionGroups": [], 868682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/71#issuecomment-1828666126", 869682da5a0SStefan Eßer "viewerDidAuthor": false 870682da5a0SStefan Eßer }, 871682da5a0SStefan Eßer { 872682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5s_0Ig", 873682da5a0SStefan Eßer "author": { 874682da5a0SStefan Eßer "login": "gavinhoward" 875682da5a0SStefan Eßer }, 876682da5a0SStefan Eßer "authorAssociation": "OWNER", 877682da5a0SStefan Eßer "body": "Thank you, and I'm sorry.", 878682da5a0SStefan Eßer "createdAt": "2023-11-27T21:44:49Z", 879682da5a0SStefan Eßer "includesCreatedEdit": false, 880682da5a0SStefan Eßer "isMinimized": false, 881682da5a0SStefan Eßer "minimizedReason": "", 882682da5a0SStefan Eßer "reactionGroups": [ 883682da5a0SStefan Eßer { 884682da5a0SStefan Eßer "content": "HEART", 885682da5a0SStefan Eßer "users": { 886682da5a0SStefan Eßer "totalCount": 1 887682da5a0SStefan Eßer } 888682da5a0SStefan Eßer } 889682da5a0SStefan Eßer ], 890682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/71#issuecomment-1828667936", 891682da5a0SStefan Eßer "viewerDidAuthor": true 892682da5a0SStefan Eßer } 893682da5a0SStefan Eßer ], 894682da5a0SStefan Eßer "createdAt": "2023-11-27T17:48:32Z", 895682da5a0SStefan Eßer "id": "I_kwDOCL0xJc53-Mb1", 896682da5a0SStefan Eßer "isPinned": false, 897682da5a0SStefan Eßer "labels": [], 898682da5a0SStefan Eßer "milestone": null, 899682da5a0SStefan Eßer "number": 71, 900682da5a0SStefan Eßer "projectCards": [], 901682da5a0SStefan Eßer "projectItems": [], 902682da5a0SStefan Eßer "reactionGroups": [], 903682da5a0SStefan Eßer "state": "CLOSED", 904682da5a0SStefan Eßer "stateReason": "COMPLETED", 905682da5a0SStefan Eßer "title": "Build errors after ./configure -a", 906682da5a0SStefan Eßer "updatedAt": "2023-11-27T21:44:50Z", 907682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/71" 908682da5a0SStefan Eßer }, 909682da5a0SStefan Eßer { 910682da5a0SStefan Eßer "assignees": [], 911682da5a0SStefan Eßer "author": { 912682da5a0SStefan Eßer "id": "U_kgDOBZsPsA", 913682da5a0SStefan Eßer "is_bot": false, 914682da5a0SStefan Eßer "login": "STSMHQ", 915682da5a0SStefan Eßer "name": "STSM" 916682da5a0SStefan Eßer }, 917682da5a0SStefan Eßer "body": "Hi, @gavinhoward,\r\n\r\nI read the [documentation file](https://git.gavinhoward.com/gavin/bc/src/branch/master/manuals/bc/A.1.md) and it seems that arrays can only old a single value per each index (a number or a string). Is there any workaround to be able to store more than one single value in an array?\r\n\r\n```shell\r\n# This works\r\nbc_example[0] = 1;\r\n\r\n# This doesn't\r\nbc_example[1] = [1, 2, 3];\r\nbc_example[2] = [1, \"Random\", 3, \"Another\"];\r\n\r\nprint bc_example[2][1] # Random\r\n```\r\n\r\nAs I already stated before in another issue, I'm using your amazing tool to keep track of my expenses and it would be amazing to be able to create a \"matrix\" or an \"array of arrays\" as people often call it. Although I know that my use case isn't the general one and that the type of feature that I'm requesting doesn't make much sense considering the main goal/purpose of this tool, I'm opening this issue to know if what I want is somehow possible using any syntax workaround not documented in the above file.", 918682da5a0SStefan Eßer "closed": true, 919682da5a0SStefan Eßer "closedAt": "2023-11-13T16:02:39Z", 920682da5a0SStefan Eßer "comments": [ 921682da5a0SStefan Eßer { 922682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5ruIip", 923682da5a0SStefan Eßer "author": { 924682da5a0SStefan Eßer "login": "gavinhoward" 925682da5a0SStefan Eßer }, 926682da5a0SStefan Eßer "authorAssociation": "OWNER", 927682da5a0SStefan Eßer "body": "Unfortunately, there is not any workaround, and that is on purpose. The `bc` language is just too restricted to go any further without *serious* work.\r\n\r\nIt is *possible*, yes. However, I believe that would be a mistake.\r\n\r\nI once said this:\r\n\r\n> Good software design includes putting whatever complexity must exist where it *best fits*.\r\n>\r\n> -- [\"Justifying a Backwards Design Decision for Yao][1]\r\n\r\nSo one of the skills of a good programmer is knowing *where* complexity should go.\r\n\r\nIf you need multiple values in one array slot, it sounds like you need structs, objects, or some other compound data thing. That sort of complexity should live in a \"proper\" programming language.\r\n\r\nSo I suggest that you use a \"proper\" programming language with arbitrary-precision numbers, like Python.\r\n\r\nThat said, I don't want to just hang you out to dry with no solution!\r\n\r\nYou're using my `bc` because it was the best for the job until now, right? Can you tell me why that is?\r\n\r\nYou've mentioned that you use it for finances; unlike most other math, finances basically require base 10 math, so is that why my `bc` was best?\r\n\r\nIf so, I might have a solution for you.\r\n\r\nDo you know Python?\r\n\r\nIf so, I could learn how to create a C extension for Python, and then I could use my [`bc`'s library form][2] to create a Python extension to use my `bc`'s library. That way, you could use Python, but still have the decimal-based math you need for finances, and I wouldn't have to do a ton of work to add multi-values to `bc` while also adding my `bc` to Python.\r\n\r\nAs an extra bonus, if you use Python, you could then have your files be output to JSON or another well-known format. And hey, I may even be able to help you convert your scripts to Python if you send them to me. (Do it through email, not this bug report!)\r\n\r\nWill that work for you?\r\n\r\n[1]: https://gavinhoward.com/2023/02/justifying-a-backwards-design-decision-for-yao/#designing-for-lsp\r\n[2]: https://github.com/gavinhoward/bc/blob/master/manuals/bcl.3.md", 928682da5a0SStefan Eßer "createdAt": "2023-11-12T22:06:36Z", 929682da5a0SStefan Eßer "includesCreatedEdit": true, 930682da5a0SStefan Eßer "isMinimized": false, 931682da5a0SStefan Eßer "minimizedReason": "", 932682da5a0SStefan Eßer "reactionGroups": [], 933682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/70#issuecomment-1807255721", 934682da5a0SStefan Eßer "viewerDidAuthor": true 935682da5a0SStefan Eßer }, 936682da5a0SStefan Eßer { 937682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5rytlH", 938682da5a0SStefan Eßer "author": { 939682da5a0SStefan Eßer "login": "STSMHQ" 940682da5a0SStefan Eßer }, 941682da5a0SStefan Eßer "authorAssociation": "NONE", 942682da5a0SStefan Eßer "body": "Hi, @gavinhoward,\r\n\r\nI'm using your `bc` tool for over a year to keep track of my expenses and everything related to my personal finances. The main reason behind this decision is what you just said, generally speaking, finances use base 10 math and `bc-gh` allows me to have arbitrary-precision numbers on it. The second big reason is **you**. The passion you put into your projects is truly amazing. I know that as long as you're alive and well, you'll keep this project running and that's a important thing for me. Also, your support as shown here in this issue is very, very good. To end, I'm a follower of your [blog](https://gavinhoward.com/) since the beginning of 2022.\r\n\r\nI don't know Python. I could learn it but I don't like much its' syntax and the biggest part of its' design choices. I'll probably take this chance to improve my NuShell knowledge and try to integrate `bc-gh` into it. With NuShell, I know that I can work with well-known formats like JSON/YAML/TOML in order to be able to implement my desired workflow. Thank you for everything and keep up the excellent work.\r\n\r\n", 943682da5a0SStefan Eßer "createdAt": "2023-11-13T16:02:39Z", 944682da5a0SStefan Eßer "includesCreatedEdit": true, 945682da5a0SStefan Eßer "isMinimized": false, 946682da5a0SStefan Eßer "minimizedReason": "", 947682da5a0SStefan Eßer "reactionGroups": [], 948682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/70#issuecomment-1808456007", 949682da5a0SStefan Eßer "viewerDidAuthor": false 950682da5a0SStefan Eßer }, 951682da5a0SStefan Eßer { 952682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5ry87l", 953682da5a0SStefan Eßer "author": { 954682da5a0SStefan Eßer "login": "gavinhoward" 955682da5a0SStefan Eßer }, 956682da5a0SStefan Eßer "authorAssociation": "OWNER", 957682da5a0SStefan Eßer "body": "You flatter me! :) But more seriously, thank you for the compliments; I struggle to see worth in my code, and that helps a lot.\r\n\r\nI'm sorry I couldn't help more. But feel free to ask any questions to help with your port to NuShell. I'm happy to help with that since I was not much help here!", 958682da5a0SStefan Eßer "createdAt": "2023-11-13T16:35:41Z", 959682da5a0SStefan Eßer "includesCreatedEdit": false, 960682da5a0SStefan Eßer "isMinimized": false, 961682da5a0SStefan Eßer "minimizedReason": "", 962682da5a0SStefan Eßer "reactionGroups": [], 963682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/70#issuecomment-1808518885", 964682da5a0SStefan Eßer "viewerDidAuthor": true 965682da5a0SStefan Eßer }, 966682da5a0SStefan Eßer { 967682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5r93lR", 968682da5a0SStefan Eßer "author": { 969682da5a0SStefan Eßer "login": "STSMHQ" 970682da5a0SStefan Eßer }, 971682da5a0SStefan Eßer "authorAssociation": "NONE", 972682da5a0SStefan Eßer "body": "> You flatter me! :) But more seriously, thank you for the compliments; I struggle to see worth in my code, and that helps a lot.\r\n\r\nYour code and your blog posts truly make a difference to my life \r\n\r\n> I'm sorry I couldn't help more. But feel free to ask any questions to help with your port to NuShell. I'm happy to help with that since I was not much help here!\r\n\r\nYou don't have to be sorry. I read the documentation of NuShell and I think I'm able to implement my current workflow with `bc-gh` on it pretty easily. Thank you for all your spent time and help offered. Have a nice rest of week!", 973682da5a0SStefan Eßer "createdAt": "2023-11-14T21:51:18Z", 974682da5a0SStefan Eßer "includesCreatedEdit": true, 975682da5a0SStefan Eßer "isMinimized": false, 976682da5a0SStefan Eßer "minimizedReason": "", 977682da5a0SStefan Eßer "reactionGroups": [], 978682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/70#issuecomment-1811380561", 979682da5a0SStefan Eßer "viewerDidAuthor": false 980682da5a0SStefan Eßer }, 981682da5a0SStefan Eßer { 982682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5sEd4h", 983682da5a0SStefan Eßer "author": { 984682da5a0SStefan Eßer "login": "gavinhoward" 985682da5a0SStefan Eßer }, 986682da5a0SStefan Eßer "authorAssociation": "OWNER", 987682da5a0SStefan Eßer "body": "You're welcome.\r\n\r\nHey, when you finish your NuShell implementation, I would love it if you could email it to me; I'm almost done with my new language, and I'd love to use it as a test application.", 988682da5a0SStefan Eßer "createdAt": "2023-11-15T19:12:11Z", 989682da5a0SStefan Eßer "includesCreatedEdit": false, 990682da5a0SStefan Eßer "isMinimized": false, 991682da5a0SStefan Eßer "minimizedReason": "", 992682da5a0SStefan Eßer "reactionGroups": [], 993682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/70#issuecomment-1813110305", 994682da5a0SStefan Eßer "viewerDidAuthor": true 995682da5a0SStefan Eßer }, 996682da5a0SStefan Eßer { 997682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5sIRpw", 998682da5a0SStefan Eßer "author": { 999682da5a0SStefan Eßer "login": "STSMHQ" 1000682da5a0SStefan Eßer }, 1001682da5a0SStefan Eßer "authorAssociation": "NONE", 1002682da5a0SStefan Eßer "body": "I'm still studying it. As NuShell didn't reach yet the first ever stable level, I don't know if I should implement all of my workflow directly using it. Currently, I'm just exploring the data processing pipeline features that they have against a workflow using `sed`/`awk` and your `bc-gh`, for instance. All I'm doing is pretty much pick a JSON file, iterate over it, apply some editions/additions using your `bc-gh` and then save it again to a JSON file. Hope you like NuShell as much as I do and one day in the future, it can have the same popularity as `zsh`.\r\n\r\nIf in the future I implement something that I'm proud of, I'll happily share it with you, Gavin.", 1003682da5a0SStefan Eßer "createdAt": "2023-11-16T09:48:33Z", 1004682da5a0SStefan Eßer "includesCreatedEdit": false, 1005682da5a0SStefan Eßer "isMinimized": false, 1006682da5a0SStefan Eßer "minimizedReason": "", 1007682da5a0SStefan Eßer "reactionGroups": [ 1008682da5a0SStefan Eßer { 1009682da5a0SStefan Eßer "content": "THUMBS_UP", 1010682da5a0SStefan Eßer "users": { 1011682da5a0SStefan Eßer "totalCount": 1 1012682da5a0SStefan Eßer } 1013682da5a0SStefan Eßer } 1014682da5a0SStefan Eßer ], 1015682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/70#issuecomment-1814108784", 1016682da5a0SStefan Eßer "viewerDidAuthor": false 1017682da5a0SStefan Eßer } 1018682da5a0SStefan Eßer ], 1019682da5a0SStefan Eßer "createdAt": "2023-11-12T18:51:58Z", 1020682da5a0SStefan Eßer "id": "I_kwDOCL0xJc52lbxv", 1021682da5a0SStefan Eßer "isPinned": false, 1022682da5a0SStefan Eßer "labels": [], 1023682da5a0SStefan Eßer "milestone": null, 1024682da5a0SStefan Eßer "number": 70, 1025682da5a0SStefan Eßer "projectCards": [], 1026682da5a0SStefan Eßer "projectItems": [], 1027682da5a0SStefan Eßer "reactionGroups": [], 1028682da5a0SStefan Eßer "state": "CLOSED", 1029682da5a0SStefan Eßer "stateReason": "COMPLETED", 1030682da5a0SStefan Eßer "title": "Array - Multiple values ", 1031682da5a0SStefan Eßer "updatedAt": "2023-11-16T09:48:33Z", 1032682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/70" 1033682da5a0SStefan Eßer }, 1034682da5a0SStefan Eßer { 1035682da5a0SStefan Eßer "assignees": [], 1036682da5a0SStefan Eßer "author": { 1037682da5a0SStefan Eßer "id": "MDQ6VXNlcjQ4MjY5Mzk5", 1038682da5a0SStefan Eßer "is_bot": false, 1039682da5a0SStefan Eßer "login": "TediusTimmy", 1040682da5a0SStefan Eßer "name": "Thomas" 1041682da5a0SStefan Eßer }, 1042682da5a0SStefan Eßer "body": "Greetings,\r\n\r\nI am going to start with some pleasantries and BS and work from there.\r\n\r\nHello. I also like bc. I have some bc-related repos: https://github.com/TediusTimmy/GNU_bc_with_GMP and https://github.com/TediusTimmy/OpenBSD_bc_with_GMP . The first one is an example of how fast bc can be, if we just use GMP. I also fixed as many of the crashes as I was aware of (admittedly, by fixing the back-end to be more robust rather than fixing the garbage generated by the front-end; if you find a crash, please let me know). In the second repo, I have a comparison of the speed of several implementations of bc (based on my own benchmark), including yours. I found it to be roughly comparable to, but still slightly slower than, OpenBSD's bc (except on one specific task, where it even beat GMP). I also wrote a spreadsheet program to use bc-like numbers: https://github.com/TediusTimmy/BC-DeciCalc (which I _really_ need to work on the documentation for).\r\n\r\nAs for those bug-fixes in GNU bc: I really haven't been able to get ahold of Phil, or Ken. Thankfully, there were some really helpful people at Debian, and maybe one day, either https://salsa.debian.org/debian/bc/-/merge_requests/4 will be merged in, or they will just use a better bc implementation, like yours.\r\n\r\nFinally, are you aware of this: https://www.php.net/manual/en/book.bc.php ? They have forked the GNU bc code for number.c and include it in their builds. Maybe they could use the library version of your code? (My only concern would be https://bugs.php.net/bug.php?id=66364 )\r\n\r\n\r\nOn to the issue: I'm not a big fan of your `p(x,y)` function. Let me explain by way of a contrived example: `p(1024,32.1)`. Now `1024` is `2^10`, so this SHOULD give us `2^10^32.1` which is `2^(10*32.1)` or `2^321`. And that's an integer, so it should be exact. But, when we do this we find that only the first 18 digits are correct with the default scale of 20. As you manipulate the scale variable, you find a correlation between the scale variable and the number of correct digits. So, in order to compute this result to 20 digits of scale, you would need to compute the log and exponential to around 117 digits of scale. I don't think that I'm out of line to expect that when you increase the scale of a computation that maybe the last three digits change and you then get extra new good digits. With this implementation of `p(x,y)`, a good chunk of the number changes.\r\n\r\nAs I was thinking about this, four cases came up:\r\n1) If we are raising a number greater than one to a positive power, then we want to bump the scale by the length of the integer part.\r\n2) If we are raising a number greater than one to a negative power, then we can probably use `e(y*l(x))` as that result goes to zero.\r\n3) Conversely, if we are raising a number less than one to a positive power, then we can probably use `e(y*l(x))` as the result goes to zero.\r\n4) Finally, if if we are raising a number less than one to a negative power, then we need to be extra careful. We need to use the reciprocal to find the integer part, but want the reciprocal to the increased scale to have an accurate result (in my testing, it removed a problem in the unit in the last place).\r\n\r\nSo, my final function to improve `p(x,y)`, then commentary:\r\n```\r\ndefine pow(x,y){\r\n\tauto a,i,s,z\r\n\tif(0==y)return 1@scale\r\n\tif(0==x){\r\n\t\tif(y>0)return 0\r\n\t\treturn 1/0\r\n\t}\r\n\ta=y$\r\n\tif(y==a)return(x^a)@scale\r\n\tz=0\r\n\tif(x<1){\r\n\t\ty=-y\r\n\t\ta=-a\r\n\t\tz=x\r\n\t\tx=1/x\r\n\t}\r\n\tif(y<0){\r\n\t\treturn e(y*l(x))\r\n\t}\r\n\ti=x^a\r\n\ts=scale\r\n\tscale+=length(i)\r\n\tif(z){\r\n\t\tx=1/z\r\n\t\ti=x^a\r\n\t}\r\n\ti*=e((y-a)*l(x))\r\n\tscale=s\r\n\treturn i@scale\r\n}\r\n```\r\nI started with your `p(x,y)` function and then added code. We begin with some special case handling for zeros, because people will complain (I didn't realize that bc already defines `0^0==1`). Next is the detection for the easy case of an integer exponent that you already had. We then handle if x is between zero and one: we save x and proceed with the reciprocal, while negating the exponent. Remember that `l(x)==-l(1/x)`. I specifically ignore if x is negative, because we will eventually call `l(x)`, which will return an erroneous value if x is negative. If the exponent is now negative, we fall back on `e(y*l(x))`: that number is going to zero anyway. Next, we compute the integral portion of the exponent and use it to get the working scale for the fractional part of the exponent. After that, if we took the reciprocal of x, recompute the reciprocal and the integral part of the exponent at this higher scale to ensure that both are accurate. Penultimately, compute the fractional part of the exponent and multiply it by the integral part to get the complete exponent. Finally, return a result at the desired scale.\r\n", 1043682da5a0SStefan Eßer "closed": true, 1044682da5a0SStefan Eßer "closedAt": "2023-08-19T06:38:17Z", 1045682da5a0SStefan Eßer "comments": [ 1046682da5a0SStefan Eßer { 1047682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5kV35W", 1048682da5a0SStefan Eßer "author": { 1049682da5a0SStefan Eßer "login": "gavinhoward" 1050682da5a0SStefan Eßer }, 1051682da5a0SStefan Eßer "authorAssociation": "OWNER", 1052682da5a0SStefan Eßer "body": "Hello.\r\n\r\n> As for those bug-fixes in GNU bc: I really haven't been able to get ahold of Phil, or Ken. Thankfully, there were some really helpful people at Debian, and maybe one day, either https://salsa.debian.org/debian/bc/-/merge_requests/4 will be merged in, or they will just use a better bc implementation, like yours.\r\n\r\nMaybe I'm selfish here, but I think they should just use mine. I tested my `bc` against all of the items at <https://lists.debian.org/debian-devel/2022/08/msg00035.html> and <https://bugs.launchpad.net/ubuntu/+source/bc/+bug/1775776>, and not only does my `bc` not crash, ASan, UBSan, and Valgrind report no errors, not even memory leaks. (Yay for fuzzing!) If you know how I might submit a request for them to do so, please let me know. I'll even build the Debian package myself!\r\n\r\n> Finally, are you aware of this: https://www.php.net/manual/en/book.bc.php ? They have forked the GNU bc code for number.c and include it in their builds. Maybe they could use the library version of your code? \r\n\r\nI *am* aware, actually. This was in the back of my mind when I accepted a request from my FreeBSD contact to implement the `bcl` library. But I don't know how to contact them and convince them to use my library.\r\n\r\n> (My only concern would be https://bugs.php.net/bug.php?id=66364 )\r\n\r\nUnfortunately, the PHP authors are wrong; that behavior is well-documented in the [POSIX standard for `bc`][1], which says about multiplication:\r\n\r\n> The result shall be the product of the two expressions. If a and b are the scales of the two expressions, then the scale of the result shall be:\r\n>\r\n> `min(a+b,max(scale,a,b))`\r\n\r\nSo their fix for that bug report is wrong, in my opinion. Thus, I don't think they'll adopt my library because I won't patch my library for their \"bug.\"\r\n\r\n> On to the issue: I'm not a big fan of your `p(x,y)` function...\r\n\r\nYour criticisms are absolutely fair. Fair enough that I took your code (with style fixes), documented it, and pushed it as the `better_pow` branch in this repo.\r\n\r\nCan you take a look to check if the code is correct, that it works for you, and that the documentation I added in `manuals/algorithms.md` is correct? I documented it in my own words, to make sure I understood the code.\r\n\r\nFinally, last item: do you think that you'll open more issues on `bc` in the future? If so, I'll add an account for you on my website; I just need an email address.\r\n\r\n[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html#tag_20_09_13_03", 1053682da5a0SStefan Eßer "createdAt": "2023-08-18T07:09:12Z", 1054682da5a0SStefan Eßer "includesCreatedEdit": false, 1055682da5a0SStefan Eßer "isMinimized": false, 1056682da5a0SStefan Eßer "minimizedReason": "", 1057682da5a0SStefan Eßer "reactionGroups": [], 1058682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1683455574", 1059682da5a0SStefan Eßer "viewerDidAuthor": true 1060682da5a0SStefan Eßer }, 1061682da5a0SStefan Eßer { 1062682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5kV5_7", 1063682da5a0SStefan Eßer "author": { 1064682da5a0SStefan Eßer "login": "gavinhoward" 1065682da5a0SStefan Eßer }, 1066682da5a0SStefan Eßer "authorAssociation": "OWNER", 1067682da5a0SStefan Eßer "body": "Forgot to say this:\r\n\r\n> In the second repo, I have a comparison of the speed of several implementations of bc (based on my own benchmark), including yours. I found it to be roughly comparable to, but still slightly slower than, OpenBSD's bc (except on one specific task, where it even beat GMP).\r\n\r\nThose benchmarks make sense to me, except plain OpenBSD `bc` being faster than mine; it uses plain `char` for digits, so mine should be faster. My guess is that it is parsing without many error checks.\r\n\r\nAlso, I store constants as strings, like GNU. This is because someone could change the `ibase` at any time, and if they do, that constant needs to be interpreted according to the new `ibase`. But I know for a fact that the OpenBSD `bc` has a different behavior: it will interpret the number according to the digits, no matter if the digits are invalid for the `ibase`. This allows it to precalculate, where GNU and I cannot.", 1068682da5a0SStefan Eßer "createdAt": "2023-08-18T07:17:28Z", 1069682da5a0SStefan Eßer "includesCreatedEdit": false, 1070682da5a0SStefan Eßer "isMinimized": false, 1071682da5a0SStefan Eßer "minimizedReason": "", 1072682da5a0SStefan Eßer "reactionGroups": [], 1073682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1683464187", 1074682da5a0SStefan Eßer "viewerDidAuthor": true 1075682da5a0SStefan Eßer }, 1076682da5a0SStefan Eßer { 1077682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5kbO1o", 1078682da5a0SStefan Eßer "author": { 1079682da5a0SStefan Eßer "login": "TediusTimmy" 1080682da5a0SStefan Eßer }, 1081682da5a0SStefan Eßer "authorAssociation": "NONE", 1082682da5a0SStefan Eßer "body": "Many apologies. I posted that improvement and went straight to bed last night, and then life got in the way of me responding. And I am going to go straight to bed tonight, also.\r\n\r\n> If you know how I might submit a request for them to do so, please let me know.\r\n\r\nHonestly, when it comes to Debian, Philip Hands was a godsend (but, he isn't the maintainer). I tried emailing Phil Nelson and Ken Pizzini and Ryan Kavanagh, but those probably went into spam filters. Eventually, I emailed the debian-devel mailing list and someone who helps first-time contributors (Hands) picked it up and ran with it. Like any large open-source project, it has an inscrutable political organization to outsiders like us. I was lucky that they even have a merge request for the changes (which has been open for over a year).\r\n\r\nThe real problem is that GNU bc is \"good enough\". It has vulnerabilities that no one is known to have exploited (if they even are exploitable). People complain, but not loud enough to get things done. It works for its purpose, and doesn't seem to have a large user base.\r\n\r\n> But I don't know how to contact them and convince them to use my library.\r\n\r\nAgain: inscrutable political organization. I don't actually program with PHP, I also am just aware of this extension. Looking at this bug report ( https://github.com/php/php-src/issues/10967 ), maybe the internal mailing list or the RFC process is what you want. \r\n\r\n> the PHP authors are wrong\r\n\r\nYeah. Thought, looking at it again, they could have fixed the issue here ( https://github.com/php/php-src/blob/master/ext/bcmath/bcmath.c#L258 ) instead of where they did. You could convince them that this is the better place for a bodge between their code and the bc library (as the behavior is standards-driven). Though, even Debian has a bug for this: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=610988\r\n\r\n> with style fixes\r\n\r\nWhat did you change? Oh, that. I get that from a former workplace.\r\n\r\n> it uses plain char for digits\r\n\r\nIt uses the OpenSSL BIGNUM library, which is binary words ( https://github.com/openbsd/src/blob/master/usr.bin/dc/bcode.h#L24 and https://github.com/openbsd/src/blob/master/lib/libcrypto/bn/bn_local.h#L121 ). For every 64 bits of a number, they are operating on all 64 bits, and you are operating on a little over 63 bits of it and have a normalization step. The trade-off rears its ugly head when numbers get converted to/from decimal.\r\n\r\n> do you think that you'll open more issues on bc in the future\r\n\r\nI don't have any plans. This was a spur-of-the-moment thing. I had \"finished\" a pow function for the spreadsheet, and decided to rewrite it in bc. (And then, I spent a bunch of time rewriting it again, as I realized that I had missed some corner cases). I don't plan to make a habit of this.\r\n\r\nAs for reviewing things:\r\n\r\n> being non-zero is a flag for later and a value to be used\r\n\r\nI did that, didn't I? Bad me.\r\n\r\nI don't know if the algorithm needs this much detail. It is probably good to give the impression that someone put thought and care into making sure the results were accurate. Though, really it was just some rando who kept doing really large exponents and wanted some numerical stability as he cranked up the precision while looking at numbers like https://www.youtube.com/watch?v=BdHFLfv-ThQ.", 1083682da5a0SStefan Eßer "createdAt": "2023-08-19T06:38:17Z", 1084682da5a0SStefan Eßer "includesCreatedEdit": false, 1085682da5a0SStefan Eßer "isMinimized": false, 1086682da5a0SStefan Eßer "minimizedReason": "", 1087682da5a0SStefan Eßer "reactionGroups": [], 1088682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1684860264", 1089682da5a0SStefan Eßer "viewerDidAuthor": false 1090682da5a0SStefan Eßer }, 1091682da5a0SStefan Eßer { 1092682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5kbPwt", 1093682da5a0SStefan Eßer "author": { 1094682da5a0SStefan Eßer "login": "TediusTimmy" 1095682da5a0SStefan Eßer }, 1096682da5a0SStefan Eßer "authorAssociation": "NONE", 1097682da5a0SStefan Eßer "body": "And I forgot to say something: I understand that the frustrating thing about the bcmath extension to PHP is that you have something that is _just better_. And you have no idea how to make things better.", 1098682da5a0SStefan Eßer "createdAt": "2023-08-19T06:46:55Z", 1099682da5a0SStefan Eßer "includesCreatedEdit": false, 1100682da5a0SStefan Eßer "isMinimized": false, 1101682da5a0SStefan Eßer "minimizedReason": "", 1102682da5a0SStefan Eßer "reactionGroups": [], 1103682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1684864045", 1104682da5a0SStefan Eßer "viewerDidAuthor": false 1105682da5a0SStefan Eßer }, 1106682da5a0SStefan Eßer { 1107682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5kcbqC", 1108682da5a0SStefan Eßer "author": { 1109682da5a0SStefan Eßer "login": "gavinhoward" 1110682da5a0SStefan Eßer }, 1111682da5a0SStefan Eßer "authorAssociation": "OWNER", 1112682da5a0SStefan Eßer "body": "> Eventually, I emailed the debian-devel mailing list and someone who helps first-time contributors (Hands) picked it up and ran with it. Like any large open-source project, it has an inscrutable political organization to outsiders like us.\r\n\r\nYeah, that sounds exhausting. Not worth it to me at the moment.\r\n\r\n> The real problem is that GNU bc is \"good enough\". It has vulnerabilities that no one is known to have exploited (if they even are exploitable). People complain, but not loud enough to get things done. It works for its purpose, and doesn't seem to have a large user base.\r\n\r\nThis is true.\r\n\r\n> Yeah. Thought, looking at it again, they could have fixed the issue here ( https://github.com/php/php-src/blob/master/ext/bcmath/bcmath.c#L258 ) instead of where they did. You could convince them that this is the better place for a bodge between their code and the bc library (as the behavior is standards-driven).\r\n\r\nEh, probably not worth it.\r\n\r\n> Though, even Debian has a bug for this: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=610988\r\n\r\nYikes. People don't read, do they? Okay, I *really* don't care about getting into Debian.\r\n\r\n> It uses the OpenSSL BIGNUM library, which is binary words\r\n\r\nOh, that was not what I understood. Oops. Those benchmarks make sense then.\r\n\r\n> I don't have any plans. This was a spur-of-the-moment thing.\r\n\r\nOkay.\r\n\r\n> As for reviewing things...I did that, didn't I? Bad me.\r\n\r\nWell, that `bc` code goes straight into the binary as a string. Using `z` as a flag and a value is useful to reduce the number of bytes used. I kept it for a reason.\r\n\r\n> I don't know if the algorithm needs this much detail. It is probably good to give the impression that someone put thought and care into making sure the results were accurate.\r\n\r\n*I* need that much detail. I *have* to understand every bit of code in this repo.\r\n\r\nTake, for example, the comment [here][1]. That was me explaining, *to myself*, an algorithm that someone else coded up. If there was a bug in that algorithm when I got it (and there was), there was no way for me to debug it unless I knew what it was supposed to be doing.\r\n\r\nIf there is a bug in your code, I need to understand your code to debug it.\r\n\r\nThat's why there is a wealth of information for developers; it's for *me*.\r\n\r\nSo I'm glad to know that the explanation is correct, but I'll keep all of it. :)\r\n\r\nI may wait a while to release a new version (I have a new PR about adding CMake support), but I will release a new version with your code within a reasonable time.\r\n\r\nThank you.\r\n\r\n[1]: https://github.com/gavinhoward/bc/blob/75cf2e3358b5a76780db0d448c02cf6f61065921/src/num.c#L3077-L3113", 1113682da5a0SStefan Eßer "createdAt": "2023-08-20T04:43:10Z", 1114682da5a0SStefan Eßer "includesCreatedEdit": false, 1115682da5a0SStefan Eßer "isMinimized": false, 1116682da5a0SStefan Eßer "minimizedReason": "", 1117682da5a0SStefan Eßer "reactionGroups": [], 1118682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1685174914", 1119682da5a0SStefan Eßer "viewerDidAuthor": true 1120682da5a0SStefan Eßer }, 1121682da5a0SStefan Eßer { 1122682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5nZ8wq", 1123682da5a0SStefan Eßer "author": { 1124682da5a0SStefan Eßer "login": "gavinhoward" 1125682da5a0SStefan Eßer }, 1126682da5a0SStefan Eßer "authorAssociation": "OWNER", 1127682da5a0SStefan Eßer "body": "There is now a version (`6.6.1`) with your `p()` implementation. Thank you very much!", 1128682da5a0SStefan Eßer "createdAt": "2023-09-26T05:30:27Z", 1129682da5a0SStefan Eßer "includesCreatedEdit": false, 1130682da5a0SStefan Eßer "isMinimized": false, 1131682da5a0SStefan Eßer "minimizedReason": "", 1132682da5a0SStefan Eßer "reactionGroups": [], 1133682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1734855722", 1134682da5a0SStefan Eßer "viewerDidAuthor": true 1135682da5a0SStefan Eßer }, 1136682da5a0SStefan Eßer { 1137682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5nnXnb", 1138682da5a0SStefan Eßer "author": { 1139682da5a0SStefan Eßer "login": "TediusTimmy" 1140682da5a0SStefan Eßer }, 1141682da5a0SStefan Eßer "authorAssociation": "NONE", 1142682da5a0SStefan Eßer "body": "You are welcome. I hope it is as useful for your other users as it is to me and not a maintenance burden on you.", 1143682da5a0SStefan Eßer "createdAt": "2023-09-28T03:11:48Z", 1144682da5a0SStefan Eßer "includesCreatedEdit": false, 1145682da5a0SStefan Eßer "isMinimized": false, 1146682da5a0SStefan Eßer "minimizedReason": "", 1147682da5a0SStefan Eßer "reactionGroups": [], 1148682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1738373595", 1149682da5a0SStefan Eßer "viewerDidAuthor": false 1150682da5a0SStefan Eßer }, 1151682da5a0SStefan Eßer { 1152682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5nnXzO", 1153682da5a0SStefan Eßer "author": { 1154682da5a0SStefan Eßer "login": "gavinhoward" 1155682da5a0SStefan Eßer }, 1156682da5a0SStefan Eßer "authorAssociation": "OWNER", 1157682da5a0SStefan Eßer "body": "None at all now that I understand it, thanks to you!", 1158682da5a0SStefan Eßer "createdAt": "2023-09-28T03:13:15Z", 1159682da5a0SStefan Eßer "includesCreatedEdit": false, 1160682da5a0SStefan Eßer "isMinimized": false, 1161682da5a0SStefan Eßer "minimizedReason": "", 1162682da5a0SStefan Eßer "reactionGroups": [], 1163682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69#issuecomment-1738374350", 1164682da5a0SStefan Eßer "viewerDidAuthor": true 1165682da5a0SStefan Eßer } 1166682da5a0SStefan Eßer ], 1167682da5a0SStefan Eßer "createdAt": "2023-08-18T05:29:27Z", 1168682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5uoYUw", 1169682da5a0SStefan Eßer "isPinned": false, 1170682da5a0SStefan Eßer "labels": [], 1171682da5a0SStefan Eßer "milestone": null, 1172682da5a0SStefan Eßer "number": 69, 1173682da5a0SStefan Eßer "projectCards": [], 1174682da5a0SStefan Eßer "projectItems": [], 1175682da5a0SStefan Eßer "reactionGroups": [], 1176682da5a0SStefan Eßer "state": "CLOSED", 1177682da5a0SStefan Eßer "stateReason": "COMPLETED", 1178682da5a0SStefan Eßer "title": "Incoherent rambling followed by a suggestion for an improvement.", 1179682da5a0SStefan Eßer "updatedAt": "2023-09-28T03:13:15Z", 1180682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/69" 1181682da5a0SStefan Eßer }, 1182682da5a0SStefan Eßer { 1183682da5a0SStefan Eßer "assignees": [], 1184682da5a0SStefan Eßer "author": { 1185682da5a0SStefan Eßer "id": "MDQ6VXNlcjI5MDIyNQ==", 1186682da5a0SStefan Eßer "is_bot": false, 1187682da5a0SStefan Eßer "login": "mhorowitz", 1188682da5a0SStefan Eßer "name": "" 1189682da5a0SStefan Eßer }, 1190682da5a0SStefan Eßer "body": "platform: MacOS Ventura 13.2.1 (m1 max)\r\ncompiler: c99 from Xcode 14.2.0\r\nversion: https://git.gavinhoward.com/gavin/bc.git 55a6c05b280fbfb6873e42a5825403c17417029a\r\n\r\nBuild fails:\r\n```\r\n$ ./configure -O3\r\n<success>\r\n$ make\r\nc99 -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=32 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DNDEBUG -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -o src/program.o -c ./src//program.c\r\n./src//program.c:2994:6: error: use of undeclared identifier 'SIGWINCH'\r\n if (BC_SIG_INTERRUPT(vm))\r\n ^\r\n./include/status.h:698:45: note: expanded from macro 'BC_SIG_INTERRUPT'\r\n BC_UNLIKELY((vm)->sig != 0 && (vm)->sig != SIGWINCH)\r\n ^\r\n./src//program.c:3724:6: error: use of undeclared identifier 'SIGWINCH'\r\n if (BC_SIG_INTERRUPT(vm))\r\n ^\r\n./include/status.h:698:45: note: expanded from macro 'BC_SIG_INTERRUPT'\r\n BC_UNLIKELY((vm)->sig != 0 && (vm)->sig != SIGWINCH)\r\n ^\r\n2 errors generated.\r\nmake: *** [src/program.o] Error 1\r\n```\r\nI think ideally, configure.sh would detect this, and apply an appropriate set of flags, or the source would be changed appropriately.\r\n\r\nAs a workaround, this allows a successful build:\r\n```\r\nCFLAGS=-D_DARWIN_C_SOURCE ./configure -O3\r\n```", 1191682da5a0SStefan Eßer "closed": true, 1192682da5a0SStefan Eßer "closedAt": "2023-03-31T17:44:43Z", 1193682da5a0SStefan Eßer "comments": [ 1194682da5a0SStefan Eßer { 1195682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5Y4XHV", 1196682da5a0SStefan Eßer "author": { 1197682da5a0SStefan Eßer "login": "gavinhoward" 1198682da5a0SStefan Eßer }, 1199682da5a0SStefan Eßer "authorAssociation": "OWNER", 1200682da5a0SStefan Eßer "body": "Stupid GitHub, closing the issue just because I mention the number in a commit...\r\n\r\nAnyway, yes, this is a bug, and yes, `configure.sh` should detect this.\r\n\r\nI've added 29b4b6a4f27b07c4a176258aaf831a5208d4e116 in an attempt to fix this. Unfortunately, I don't have a Mac, so you'll need to test this for me. Would you please do that? Thank you.", 1201682da5a0SStefan Eßer "createdAt": "2023-03-31T01:36:32Z", 1202682da5a0SStefan Eßer "includesCreatedEdit": false, 1203682da5a0SStefan Eßer "isMinimized": false, 1204682da5a0SStefan Eßer "minimizedReason": "", 1205682da5a0SStefan Eßer "reactionGroups": [], 1206682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/67#issuecomment-1491169749", 1207682da5a0SStefan Eßer "viewerDidAuthor": true 1208682da5a0SStefan Eßer }, 1209682da5a0SStefan Eßer { 1210682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5Y8585", 1211682da5a0SStefan Eßer "author": { 1212682da5a0SStefan Eßer "login": "mhorowitz" 1213682da5a0SStefan Eßer }, 1214682da5a0SStefan Eßer "authorAssociation": "NONE", 1215682da5a0SStefan Eßer "body": "> I've added https://github.com/gavinhoward/bc/commit/29b4b6a4f27b07c4a176258aaf831a5208d4e116 in an attempt to fix this. Unfortunately, I don't have a Mac, so you'll need to test this for me. Would you please do that? Thank you.\r\n\r\nI tested it. ./configure.sh output includes\r\n\r\n On Mac OSX. Using _DARWIN_C_SOURCE.\r\n\r\nAnd make completes without error. Thanks for the quick fix!", 1216682da5a0SStefan Eßer "createdAt": "2023-03-31T17:44:43Z", 1217682da5a0SStefan Eßer "includesCreatedEdit": false, 1218682da5a0SStefan Eßer "isMinimized": false, 1219682da5a0SStefan Eßer "minimizedReason": "", 1220682da5a0SStefan Eßer "reactionGroups": [], 1221682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/67#issuecomment-1492361017", 1222682da5a0SStefan Eßer "viewerDidAuthor": false 1223682da5a0SStefan Eßer }, 1224682da5a0SStefan Eßer { 1225682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5Y867a", 1226682da5a0SStefan Eßer "author": { 1227682da5a0SStefan Eßer "login": "gavinhoward" 1228682da5a0SStefan Eßer }, 1229682da5a0SStefan Eßer "authorAssociation": "OWNER", 1230682da5a0SStefan Eßer "body": "Thank you for testing! And thank you for the report. I rely on users like you to help me with Mac OSX!", 1231682da5a0SStefan Eßer "createdAt": "2023-03-31T17:46:45Z", 1232682da5a0SStefan Eßer "includesCreatedEdit": false, 1233682da5a0SStefan Eßer "isMinimized": false, 1234682da5a0SStefan Eßer "minimizedReason": "", 1235682da5a0SStefan Eßer "reactionGroups": [ 1236682da5a0SStefan Eßer { 1237682da5a0SStefan Eßer "content": "ROCKET", 1238682da5a0SStefan Eßer "users": { 1239682da5a0SStefan Eßer "totalCount": 1 1240682da5a0SStefan Eßer } 1241682da5a0SStefan Eßer } 1242682da5a0SStefan Eßer ], 1243682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/67#issuecomment-1492365018", 1244682da5a0SStefan Eßer "viewerDidAuthor": true 1245682da5a0SStefan Eßer }, 1246682da5a0SStefan Eßer { 1247682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5c_2t2", 1248682da5a0SStefan Eßer "author": { 1249682da5a0SStefan Eßer "login": "gavinhoward" 1250682da5a0SStefan Eßer }, 1251682da5a0SStefan Eßer "authorAssociation": "OWNER", 1252682da5a0SStefan Eßer "body": "Release `6.6.0` is out with the fix. Thank you!", 1253682da5a0SStefan Eßer "createdAt": "2023-05-23T23:11:04Z", 1254682da5a0SStefan Eßer "includesCreatedEdit": true, 1255682da5a0SStefan Eßer "isMinimized": false, 1256682da5a0SStefan Eßer "minimizedReason": "", 1257682da5a0SStefan Eßer "reactionGroups": [], 1258682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/67#issuecomment-1560243062", 1259682da5a0SStefan Eßer "viewerDidAuthor": true 1260682da5a0SStefan Eßer } 1261682da5a0SStefan Eßer ], 1262682da5a0SStefan Eßer "createdAt": "2023-03-30T22:25:15Z", 1263682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5iQKue", 1264682da5a0SStefan Eßer "isPinned": false, 1265682da5a0SStefan Eßer "labels": [], 1266682da5a0SStefan Eßer "milestone": null, 1267682da5a0SStefan Eßer "number": 67, 1268682da5a0SStefan Eßer "projectCards": [], 1269682da5a0SStefan Eßer "projectItems": [], 1270682da5a0SStefan Eßer "reactionGroups": [], 1271682da5a0SStefan Eßer "state": "CLOSED", 1272682da5a0SStefan Eßer "stateReason": "COMPLETED", 1273682da5a0SStefan Eßer "title": "Build fails on macOS", 1274682da5a0SStefan Eßer "updatedAt": "2023-05-23T23:11:20Z", 1275682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/67" 1276682da5a0SStefan Eßer }, 1277682da5a0SStefan Eßer { 1278682da5a0SStefan Eßer "assignees": [], 1279682da5a0SStefan Eßer "author": { 1280682da5a0SStefan Eßer "id": "U_kgDOBZsPsA", 1281682da5a0SStefan Eßer "is_bot": false, 1282682da5a0SStefan Eßer "login": "STSMHQ", 1283682da5a0SStefan Eßer "name": "STSM" 1284682da5a0SStefan Eßer }, 1285682da5a0SStefan Eßer "body": "Hi, there,\r\n\r\nI love your command line tool and your blog (I read all your posts). You're an amazing developer. I hope one day I can be like you.\r\nI'm opening this issue to ask you if there is any way to bypass the `Math error: overflow: number cannot fit` error on your calculator. I would like to test it for benchmark purposes against Julia REPL (for example), but your `bc` gives me this error when the number has too many digits.\r\n\r\nExample Calculation: `((169287^137)^920)^13256118217109`.\r\n\r\nRegards,\r\n**STSM**", 1286682da5a0SStefan Eßer "closed": true, 1287682da5a0SStefan Eßer "closedAt": "2023-03-21T17:06:49Z", 1288682da5a0SStefan Eßer "comments": [ 1289682da5a0SStefan Eßer { 1290682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5XyVJh", 1291682da5a0SStefan Eßer "author": { 1292682da5a0SStefan Eßer "login": "gavinhoward" 1293682da5a0SStefan Eßer }, 1294682da5a0SStefan Eßer "authorAssociation": "OWNER", 1295682da5a0SStefan Eßer "body": "Hello,\r\n\r\nThank you for the compliments!\r\n\r\n> I'm opening this issue to ask you if there is any way to bypass the `Math error: overflow: number cannot fit` error on your calculator.\r\n\r\nIt depends.\r\n\r\nOn the particular example you gave, my machine did not give the error. (I am running an `x86_64` Linux machine.)\r\n\r\nThe error happens in this case because `bc` limits exponents to the maximum that can fit in the `unsigned long` type. There are good reasons for this, not least of which calculating a power with an exponent larger than that takes a long time.\r\n\r\nFor example, I started running the example calculation you gave seven hours ago, and it's still going.\r\n\r\nThe other reason is that the exponent needs to be converted into an `unsigned long` to do the actual calculation, which involves running a loop.\r\n\r\nBy the way, this is also the reason that exponents need to be integers.\r\n\r\nAnyway, one way to get around the limit would be to get a computer with a 64-bit `unsigned long` type. Machines that may *not* have that could include Windows (even if 64-bit) or 32-bit machines with any OS.\r\n\r\nAs an example, here are the limits for my machine (found by the `limits` keyword):\r\n\r\n```\r\n$ bc\r\n>>> limits\r\nBC_LONG_BIT = 64\r\nBC_BASE_DIGS = 9\r\nBC_BASE_POW = 1000000000\r\nBC_OVERFLOW_MAX = 18446744073709551615\r\n\r\nBC_BASE_MAX = 1000000000\r\nBC_DIM_MAX = 18446744073709551614\r\nBC_SCALE_MAX = 18446744073709551614\r\nBC_STRING_MAX = 18446744073709551614\r\nBC_NAME_MAX = 18446744073709551614\r\nBC_NUM_MAX = 18446744073709551614\r\nBC_RAND_MAX = 18446744073709551615\r\nMAX Exponent = 18446744073709551615\r\nNumber of vars = 18446744073709551614\r\n>>> quit\r\n```\r\n\r\nThere are two to notice: `BC_LONG_BIT` and `MAX Exponent`.\r\n\r\n`BC_LONG_BIT` is 64, which means `bc` was built assuming a 64-bit `unsigned long` type. `MAX Exponent` is the actual limit to the exponent, which equals `(2^64)-1`, which is `ULONG_MAX` on a machine with a 64-bit `unsigned long`.\r\n\r\nHowever, if I tell my `bc` to assume a 32-bit `unsigned long` when I build it, using:\r\n\r\n```\r\n$ LONG_BIT=32 ./configure <args>\r\n$ make\r\n```\r\n\r\nThen the limits look different:\r\n\r\n```\r\n$ bin/bc\r\n>>> limits\r\nBC_LONG_BIT = 32\r\nBC_BASE_DIGS = 4\r\nBC_BASE_POW = 10000\r\nBC_OVERFLOW_MAX = 4294967295\r\n\r\nBC_BASE_MAX = 10000\r\nBC_DIM_MAX = 4294967294\r\nBC_SCALE_MAX = 4294967294\r\nBC_STRING_MAX = 4294967294\r\nBC_NAME_MAX = 4294967294\r\nBC_NUM_MAX = 4294967294\r\nBC_RAND_MAX = 4294967295\r\nMAX Exponent = 4294967295\r\nNumber of vars = 18446744073709551614\r\n>>> quit\r\n```\r\n\r\n`BC_LONG_BIT` is now 32, and `MAX Exponent` is now 4294967295, which is `(2^32)-1`. Notice that 4294967295 is less than the last exponent (13256118217109) in your example calculation. This means that if 4294967295 is your `MAX Exponent`, you will get that error. And I *do* get that error when trying your example computation with that build.\r\n\r\nNow, there *is* still a way around it, but it requires some math knowledge.\r\n\r\nYou must know one fact: `(x^y)*(x^z) == x^(y+z)`.\r\n\r\nIn essence, if you multiply two powers of one number, the effect is the same as adding the exponents of those powers and then calculating the power from the sum of those exponents.\r\n\r\nUsually, you would want to just add the exponents and then calculate the power because multiplications would be much more expensive. However, in this case, we can do the opposite: split the exponent (13256118217109) into several numbers and then multiply all of those numbers together.\r\n\r\nLet's decide on one exponent to use, which I'll call `E`. I can divide 13256118217109 by `E`, and the result is the number of times that I need to multiply the power by itself. However, that will not be quite right because `E` almost certainly does not divide 13256118217109 evenly, so `13256118217109%E` won't be 0. In that case, we'll want to multiply the end result by the power where the exponent is equal to `13256118217109%E`.\r\n\r\nIt will all look like this (in `bc` code):\r\n\r\n```\r\nscale = 0\r\ns = ((169287^137)^920)\r\nn = s^E\r\nr = n\r\nt = 13256118217109 / E\r\nm = 13256118217109 % E\r\n\r\nfor (i = 1; i < t; ++i)\r\n{\r\n r *= n\r\n}\r\n\r\nr *= s^m\r\n```\r\n\r\nBut even then, we can make it faster. Since we are just multiplying the value by itself many times, we can use power again. This time, the exponents (3086 and 6172) are back within limits, so we're safe.\r\n\r\nIf we do that, we get:\r\n\r\n```\r\nscale = 0\r\ns = ((169287^137)^920)\r\nt = 13256118217109 / E\r\nm = 13256118217109 % E\r\nn = s^E\r\nr = n^t\r\nr *= s^m\r\n```\r\n\r\nAnd that should give us our answer.\r\n\r\nWe should set those exponents as best as we can to make it as efficient as possible.\r\n\r\nI know that my `bc` uses the binary representation of the exponent to calculate power. Every bit that's a 1 has an extra multiply.\r\n\r\nSo if I set one of the powers to `(2^32)-1`, I know every single bit will be 1, meaning that there will be extra multiplications. However, it will also mean I need to use an exponent of 3086 (`13256118217109/((2^32)-1)`), whereas if I set one of the powers to be `2^31`, there will only be a single 1 bit, but I will need to use an exponent of 6172.\r\n\r\nAn exponent of 6172 has the same amount of 1 bits as 3086 (it's just 3086 times 2), so it will require only one more multiply. However, `2^31` will require 30 less multiplies than `(2^32)-1`, so we'll go with that.\r\n\r\nThat gives us this code:\r\n\r\n```\r\nscale = 0\r\ne = 2^31\r\ns = ((169287^137)^920)\r\nt = 13256118217109 / e\r\nm = 13256118217109 % e\r\nn = s^e\r\nr = n^t\r\nr *= s^m\r\n```\r\n\r\nI haven't tested the above code because it will take forever. If there are problems, please let me know.\r\n\r\n> I would like to test it for benchmark purposes against Julia REPL (for example)\r\n\r\nMy `bc` will be slower than Julia. I am confident of that.\r\n\r\nThis is because my `bc` does not use the full range of hardware-native integers in order to use decimal-based math. I bet Julia does use the full range and uses binary-based math.\r\n\r\nAlso, since it's taken seven hours on my `bc` on a 64-bit machine, I am *wildly* confident that Julia will be better.\r\n\r\nYou may want a benchmark with a smaller exponent.", 1296682da5a0SStefan Eßer "createdAt": "2023-03-16T22:04:11Z", 1297682da5a0SStefan Eßer "includesCreatedEdit": false, 1298682da5a0SStefan Eßer "isMinimized": false, 1299682da5a0SStefan Eßer "minimizedReason": "", 1300682da5a0SStefan Eßer "reactionGroups": [], 1301682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1472811617", 1302682da5a0SStefan Eßer "viewerDidAuthor": true 1303682da5a0SStefan Eßer }, 1304682da5a0SStefan Eßer { 1305682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5X2u-Q", 1306682da5a0SStefan Eßer "author": { 1307682da5a0SStefan Eßer "login": "STSMHQ" 1308682da5a0SStefan Eßer }, 1309682da5a0SStefan Eßer "authorAssociation": "NONE", 1310682da5a0SStefan Eßer "body": "First of all, I just want to let you know that you're really, really amazing. The passion that you've for your project(s) and for the people that interact with them is something that melts my heart. I hope one day I can be a programmer as good as you and also, more important, have the same amount of passion that you have.\r\n\r\nEnglish is not my primary language, so this may not make any sense.\r\n\r\n> Anyway, one way to get around the limit would be to get a computer with a 64-bit unsigned long type. Machines that may not have that could include Windows (even if 64-bit) or 32-bit machines with any OS.\r\n\r\nI'm using a x64 Windows Machine, that's the reason, so. I'll start compiling your `bc` on Linux using WSL.\r\n\r\n> You must know one fact: `(x^y)*(x^z) == x^(y+z)`.\r\n> \r\n> In essence, if you multiply two powers of one number, the effect is the same as adding the exponents of those powers and then calculating the power from the sum of those exponents.\r\n\r\nI knew that, but somehow I didn't think about it. Thanks for the recap.\r\n\r\n> My `bc` will be slower than Julia. I am confident of that.\r\n>\r\n> This is because my `bc` does not use the full range of hardware-native integers in order to use decimal-based math. I bet Julia does use the full range and uses binary-based math.\r\n\r\nWell, that's kinda \"chinese\" to me. I'm not as good as you to understand that low-level programming stuff\r\n\r\n> You may want a benchmark with a smaller exponent.\r\n\r\nI'll.\r\n\r\nOn another topic, I'm using your tool to keep track of my expenses. Before closing this issue, I would like to ask you if there is any way that I can use \"import\" statements in your `bc` ecosystem.\r\n\r\nI know that I can work with more than one file at the same time using the `-f`/`-c` flags, but I'm wondering if is possible to access multiple files by only importing one - and use data from other files inside it.\r\n\r\nMy goal (if that can help you answering it) is to have a single file with functions/operations and then a bunch of other files only with data (expenses and gains) - like a local mini database - that I can call in the \"main\" `bc` file and work with.\r\n", 1311682da5a0SStefan Eßer "createdAt": "2023-03-17T14:54:05Z", 1312682da5a0SStefan Eßer "includesCreatedEdit": true, 1313682da5a0SStefan Eßer "isMinimized": false, 1314682da5a0SStefan Eßer "minimizedReason": "", 1315682da5a0SStefan Eßer "reactionGroups": [], 1316682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1473965968", 1317682da5a0SStefan Eßer "viewerDidAuthor": false 1318682da5a0SStefan Eßer }, 1319682da5a0SStefan Eßer { 1320682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5X5p-w", 1321682da5a0SStefan Eßer "author": { 1322682da5a0SStefan Eßer "login": "gavinhoward" 1323682da5a0SStefan Eßer }, 1324682da5a0SStefan Eßer "authorAssociation": "OWNER", 1325682da5a0SStefan Eßer "body": "Thank you for your compliment!\r\n\r\nJust so you know, I have [not always had this passion][1]. But I firmly believe that software is meant to serve people. That's why I focus so much on helping others.\r\n\r\nIt makes me really happy that you noticed!\r\n\r\n> I'm using a x64 Windows Machine, that's the reason, so. I'll start compiling your `bc` on Linux using WSL.\r\n\r\nYeah, sorry about that. Windows is dumb in that they decided that the `unsigned long` type should remain 32 bits. It was a stupid decision.\r\n\r\n> Well, that's kinda \"chinese\" to me. I'm not as good as you to understand that low-level programming stuff\r\n\r\nI apologize. I'll try again.\r\n\r\nUnder the hood, `bc` uses 32-bit unsigned integers (on 64-bit) as \"digits\". It turns out that the highest power of 10 that 32 bits can contain is `10^9`, or 1,000,000,000. This is one more than the maximum value that `bc` allows in each 32-bit integer. If it goes higher than this, `bc` will detect that it went higher and add the extra to the next \"digit\". This keeps each digit below 1,000,000,000.\r\n\r\nHowever, that is not optimal. I did that because `bc` needs to have decimal-based math. (In other words, the math needs to be in base 10.) If you can have your math in binary, base 2, it's much cheaper because then you can make your limit `2^32`, which is much higher than `10^9` (4,294,967,296 vs. 1,000,000,000).\r\n\r\nJulia uses base 2. This means that each \"digit\" can store more, which means the numbers are smaller (in number of digits). And smaller numbers mean faster execution.\r\n\r\nI hope that made sense.\r\n\r\n> On another topic, I'm using your tool to keep track of my expenses.\r\n\r\nI admit that's *terrifying* to me. I mean, technically, it should be safe, as long as you don't do any division or modulus in your scripts. But I don't want to screw up your finances with `bc`.\r\n\r\nI hope you remember there's **no warranty**. If there is a bug, I'll try to help, but I can't guarantee that your financial records will be correct in the presence of bugs.\r\n\r\nI *will* guarantee, though, that I know of no bugs. I have fixed all of the ones I am aware of.\r\n\r\n> Before closing this issue, I would like to ask you if there is any way that I can use \"import\" statements in your bc ecosystem.\r\n\r\nSort of.\r\n\r\n> I know that I can work with more than one file at the same time using the `-f`/`-c` flags, but I'm wondering if is possible to access multiple files by only importing one - and use data from other files inside it.\r\n\r\nWell, that's the only way.\r\n\r\nActually, it's even simpler than that. `bc` runs scripts in the order given on the command-line. For example, you could run this:\r\n\r\n```\r\n$ bc funcs.bc database.bc main.bc\r\n```\r\n\r\nAnd `bc` will run `funcs.bc`, then `database.bc`, then `main.bc`.\r\n\r\nThis means that anything in `funcs.bc` can affect the execution of `database.bc`, and anything in `funcs.bc` and `database.bc` can affect the execution of `main.bc`.\r\n\r\nThis means that you can chain together scripts in a way that acts like import. Sort of. If you would only import at the top of a file.\r\n\r\nBasically, this would mean that if `bc` had an `import` statement, the above would be equivalent to putting:\r\n\r\n```\r\nimport funcs.bc\r\nimport database.bc\r\n```\r\n\r\nat the *top* of `main.bc`.\r\n\r\nI do this myself; I have a math research project, and when I get new ideas, I start a new script. But I have all of my common functions in a `lib.bc` script, so I run it like this:\r\n\r\n```\r\n$ bc lib.bc <current_script>\r\n```\r\n\r\nThis even works for global variables; if you set a variable `food_expenses` to say `101.00` at the top level of a script, that variable will equal `101.00` in later scripts.\r\n\r\nSo if I were you, I would have a `funcs.bc` script that defines all of the functions. Then I would have a `database.bc` script that has the current values of all of your expenses. It should look something like this:\r\n\r\n```\r\nfood_expenses = 101.00\r\nentertainment_expenses = 45.50\r\n```\r\n\r\nand so on.\r\n\r\nThen, in the last script, I would have the code to actually update the database, but instead of directly updating, I would have it print the new \"version\" of `database.bc` to `stdout`.\r\n\r\nThen you would run it like this:\r\n\r\n```\r\n$ bc funcs.bc database.bc main.bc > temp.bc\r\n```\r\n\r\nThen check that `temp.bc` is correct. If it is, you can remove `database.bc` and rename `temp.bc` to `database.bc`:\r\n\r\n```\r\n$ rm database.bc\r\n$ mv temp.bc database.bc\r\n```\r\n\r\nTo make the example more concrete, let's assume that you have a `funcs.bc` that looks like this:\r\n\r\n```\r\ndefine void add_to_food_expenses(expense) {\r\n # If you don't put `food_expenses` in an `auto` statement,\r\n # then the global variable will be affected.\r\n food_expenses += expense\r\n # The global `total_expenses` is also affected with an `auto`.\r\n total_expenses += expense\r\n}\r\n\r\ndefine void print_new_database() {\r\n print \"food_expenses = \", food_expenses, \"\\n\"\r\n print \"total_expenses = \", total_expenses, \"\\n\"\r\n}\r\n```\r\n\r\nThen perhaps you have a `database.bc` that looks like this:\r\n\r\n```\r\nfood_expenses = 101.00\r\ntotal_expenses = 404.40\r\n```\r\n\r\nThen you have a `main.bc` that looks like this:\r\n\r\n```\r\n# read() reads from stdin.\r\nexpense = read()\r\n\r\nadd_to_food_expenses(expense)\r\n\r\nprint_new_database()\r\n```\r\n\r\nThen running the following:\r\n\r\n```\r\n$ echo \"35.75\" | bc funcs.bc database.bc main.bc\r\n```\r\n\r\nwill print:\r\n\r\n```\r\nfood_expenses = 136.75\r\ntotal_expenses = 440.15\r\n```\r\n\r\nwhich if you redirect to `temp.bc`:\r\n\r\n```\r\n$ echo \"35.75\" | bc funcs.bc database.bc main.bc > temp.bc\r\n```\r\n\r\nwill make `temp.bc` a valid replacement for `database.bc`.\r\n\r\n(While it may be safe to redirect straight to `database.bc`, I would not suggest doing so. If `funcs.bc` has any print statements that run, `database.bc` will be overwritten before it is ever read.)\r\n\r\n> My goal (if that can help you answering it) is to have a single file with functions/operations and then a bunch of other files only with data (expenses and gains) - like a local mini database - that I can call in the \"main\" `bc` file and work with.\r\n\r\nI *think* I answered according to your goal. I hope that helps, but please come back with any questions you have.\r\n\r\n[1]: https://gavinhoward.com/2021/12/is-it-even-worth-working-on-foss-anymore/", 1326682da5a0SStefan Eßer "createdAt": "2023-03-18T05:48:18Z", 1327682da5a0SStefan Eßer "includesCreatedEdit": true, 1328682da5a0SStefan Eßer "isMinimized": false, 1329682da5a0SStefan Eßer "minimizedReason": "", 1330682da5a0SStefan Eßer "reactionGroups": [], 1331682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1474731952", 1332682da5a0SStefan Eßer "viewerDidAuthor": true 1333682da5a0SStefan Eßer }, 1334682da5a0SStefan Eßer { 1335682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5YHLzP", 1336682da5a0SStefan Eßer "author": { 1337682da5a0SStefan Eßer "login": "STSMHQ" 1338682da5a0SStefan Eßer }, 1339682da5a0SStefan Eßer "authorAssociation": "NONE", 1340682da5a0SStefan Eßer "body": "Hi. Sorry for the delay replying.\r\n\r\n> It makes me really happy that you noticed!\r\n\r\nOf course. I'm lacking motivation for programming - even in my university project (I'm currently in my last year of my master degree) -, specially now with all the improvements made in the IA field, but reading your blog posts and messages like this one, somehow, gives me motivation to continue.\r\n\r\nI would like to suggest, if possible, a way to interact with you in your blog (like a comments section, for example). \r\n\r\n> I hope that made sense.\r\n\r\nIt did. I studied it in my first year at university, but I didn't know that specifically, so thank you.\r\n\r\n> I hope you remember there's **no warranty**. If there is a bug, I'll try to help, but I can't guarantee that your financial records will be correct in the presence of bugs.\r\n> \r\n> I *will* guarantee, though, that I know of no bugs. I have fixed all of the ones I am aware of.\r\n\r\nAnd that's all that matters for me. There is nothing that compares to the support that you offer.\r\n\r\n> I think I answered according to your goal. I hope that helps, but please come back with any questions you have.\r\n\r\nYou did. Thanks again for the time spent on this. I use a different set of files, but the information that you gave me is going to help me improve my system. So, thanks (one more time xD).", 1341682da5a0SStefan Eßer "createdAt": "2023-03-21T17:06:49Z", 1342682da5a0SStefan Eßer "includesCreatedEdit": true, 1343682da5a0SStefan Eßer "isMinimized": false, 1344682da5a0SStefan Eßer "minimizedReason": "", 1345682da5a0SStefan Eßer "reactionGroups": [], 1346682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1478278351", 1347682da5a0SStefan Eßer "viewerDidAuthor": false 1348682da5a0SStefan Eßer }, 1349682da5a0SStefan Eßer { 1350682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5YIXfA", 1351682da5a0SStefan Eßer "author": { 1352682da5a0SStefan Eßer "login": "gavinhoward" 1353682da5a0SStefan Eßer }, 1354682da5a0SStefan Eßer "authorAssociation": "OWNER", 1355682da5a0SStefan Eßer "body": "> Sorry for the delay replying.\r\n\r\nNo worries!\r\n\r\n> Of course. I'm lacking motivation for programming - even in my university project (I'm currently in my last year of my master degree)\r\n\r\nOh, cool, what is your project? (I dropped out of a Master's; I'm kind of jealous.)\r\n\r\n> I would like to suggest, if possible, a way to interact with you in your blog (like a comments section, for example).\r\n\r\nI have thought about this many times and have always rejected the idea due to the amount of spam-busting and moderation required, at least as told by other bloggers. Oh, and I don't want people to see a buggy site if they have JavaScript turned off as comments nearly always require JavaScript.\r\n\r\nHowever, your suggestion has made me look at it again, and I had an idea.\r\n\r\nOne of the best pieces of software, at least for forums, is the software underpinning <https://lobste.rs/>. While I have been banned from that site, I appreciate the software for its moderation capabilities. This includes invite-only registration, which would help a lot to only allow people who want to interact with me and others in a good way.\r\n\r\nI've also always wanted to run a forum site where Free Speech was honored as much as possible because [I think Free Speech is necessary to find the truth][1].\r\n\r\nSo in response to your suggestion, if the lobste.rs software will work for my purposes, I'll spin up an instance at <https://forum.gavinhoward.com/> (or something similar), and I'll send you an invite, along with anyone else whose opinions I trust. And every time I post something new, I'll put it on the instance and link to it from the post. That should allow me to have a \"comments section\" while not interfering with my current site.\r\n\r\nI think I'll also allow others to post stuff too. Maybe I'll make its theme to be anything that is intellectually stimulating. I don't know; I'm just spitballing here.\r\n\r\n> I studied it in my first year at university, but I didn't know that specifically, so thank you.\r\n\r\nYou're welcome!\r\n\r\n> And that's all that matters for me.\r\n\r\nThank goodness!\r\n\r\n> There is nothing that compares to the support that you offer.\r\n\r\nYou're welcome! And thank you. I am overjoyed to hear this, actually.\r\n\r\nI'm starting a business right now, and my product is support for Open Source software that I have written. I was wondering if that would be a good product, but if my support is good, it might work. So I'm *thrilled* that you think so!\r\n\r\n(Don't worry; I'll always support `bc` for free; it's my gift to the world. The software that I'll be supporting for pay is at <https://git.yzena.com/Yzena/Yc>.)\r\n\r\nFull disclosure: this is also why I took your suggestion for a comments section more seriously; it would be a good way for me to network with potential clients. I apologize for having less than perfect motives.\r\n\r\nAlso, to take it one step further, can I point to this interaction we had as an example of the support I will give? I think it would be great material to advertise with. No offense if you don't want that though; I know that's a selfish motive.\r\n\r\n> You did. Thanks again for the time spent on this. I use a different set of files, but the information that you gave me is going to help me improve my system. So, thanks (one more time xD).\r\n\r\nYou're welcome! Glad I could help!\r\n\r\n[1]: https://gavinhoward.com/2019/11/recommendations-and-radicalization/", 1356682da5a0SStefan Eßer "createdAt": "2023-03-21T21:13:49Z", 1357682da5a0SStefan Eßer "includesCreatedEdit": false, 1358682da5a0SStefan Eßer "isMinimized": false, 1359682da5a0SStefan Eßer "minimizedReason": "", 1360682da5a0SStefan Eßer "reactionGroups": [], 1361682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1478588352", 1362682da5a0SStefan Eßer "viewerDidAuthor": true 1363682da5a0SStefan Eßer }, 1364682da5a0SStefan Eßer { 1365682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5YLZeg", 1366682da5a0SStefan Eßer "author": { 1367682da5a0SStefan Eßer "login": "STSMHQ" 1368682da5a0SStefan Eßer }, 1369682da5a0SStefan Eßer "authorAssociation": "NONE", 1370682da5a0SStefan Eßer "body": "> Oh, cool, what is your project? (I dropped out of a Master's; I'm kind of jealous.)\r\n\r\nYou don't need to be. You seem to have the required knowledge to be a teacher on my university. I'm from Portugal, btw.\r\n\r\nMy project is about telemetry. I'm building a telemetry solution using OpenTelemetry and multiple analysis backends for a health company. The problem is that such project is inside DevOps field and that's not my expertice or even the field that I want to work on. I want to be a programmer, a system programmer to be more precise.\r\n\r\n> This includes invite-only registration, which would help a lot to only allow people who want to interact with me and others in a good way.\r\n\r\nThat seems a good way to implement it. I didn't know about that specific website, but after a brief usage of it, I can say that I liked the way that it works.\r\n\r\n> So in response to your suggestion, if the lobste.rs software will work for my purposes, I'll spin up an instance at https://forum.gavinhoward.com/ (or something similar), and I'll send you an invite, along with anyone else whose opinions I trust. And every time I post something new, I'll put it on the instance and link to it from the post. That should allow me to have a \"comments section\" while not interfering with my current site.\r\n\r\nThat makes a lot of sense. I appreciate the consideration for my opinion xD\r\n\r\nWhen that instance is online, let me know, please.\r\n\r\n> I'm starting a business right now, and my product is support for Open Source software that I have written. I was wondering if that would be a good product, but if my support is good, it might work. So I'm thrilled that you think so!\r\n\r\nI see.. something like the commercial support that Daniel Stenberg offers for cURL?\r\n\r\n> (Don't worry; I'll always support bc for free; it's my gift to the world. The software that I'll be supporting for pay is at https://git.yzena.com/Yzena/Yc.)\r\n\r\nThat's nice to read. I'm planning to use `bc` for a very long time :d\r\n\r\n> Full disclosure: this is also why I took your suggestion for a comments section more seriously; it would be a good way for me to network with potential clients. I apologize for having less than perfect motives.\r\n\r\nIt wasn't necessary to make that disclosure. You're too kind just for considering having to do it. \r\n\r\n> Also, to take it one step further, can I point to this interaction we had as an example of the support I will give? I think it would be great material to advertise with. No offense if you don't want that though; I know that's a selfish motive.\r\n\r\nOf course you can. I'm flattered to be part of that.\r\n\r\n> You're welcome! Glad I could help!\r\n\r\nYou always do. Thanks (one more time)!", 1371682da5a0SStefan Eßer "createdAt": "2023-03-22T11:20:57Z", 1372682da5a0SStefan Eßer "includesCreatedEdit": true, 1373682da5a0SStefan Eßer "isMinimized": false, 1374682da5a0SStefan Eßer "minimizedReason": "", 1375682da5a0SStefan Eßer "reactionGroups": [], 1376682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1479382944", 1377682da5a0SStefan Eßer "viewerDidAuthor": false 1378682da5a0SStefan Eßer }, 1379682da5a0SStefan Eßer { 1380682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5YagqG", 1381682da5a0SStefan Eßer "author": { 1382682da5a0SStefan Eßer "login": "gavinhoward" 1383682da5a0SStefan Eßer }, 1384682da5a0SStefan Eßer "authorAssociation": "OWNER", 1385682da5a0SStefan Eßer "body": "> The problem is that such project is inside DevOps field and that's not my expertice or even the field that I want to work on. I want to be a programmer, a system programmer to be more precise.\r\n\r\nOuch. I feel for you, and I feel lucky.\r\n\r\nI know this may not help, but I have personally found that my system programming skills (dev) got better after I learned system admininstration (ops).\r\n\r\nSystem administration is important to me for another reason: without it, I can't host my code or the forum that I mentioned.\r\n\r\nOnce you get your Master's, maybe you can try to do what I have done: build excellent system software and support it. That may give you the room you need to make it a career. If it is going to work for me, it will surely work for you too!\r\n\r\n> When that instance is online, let me know, please.\r\n\r\nIt's up at <https://forum.gavinhoward.com/>, but email is not working, so I need to wait. Please send me an email using the email listed at <https://gavinhoward.com/contact/>, and I'll send you an invite once email is working.\r\n\r\n> I see.. something like the commercial support that Daniel Stenberg offers for cURL?\r\n\r\nYes, basically.\r\n\r\n> Of course you can. I'm flattered to be part of that.\r\n\r\nThank you!", 1386682da5a0SStefan Eßer "createdAt": "2023-03-24T20:02:20Z", 1387682da5a0SStefan Eßer "includesCreatedEdit": false, 1388682da5a0SStefan Eßer "isMinimized": false, 1389682da5a0SStefan Eßer "minimizedReason": "", 1390682da5a0SStefan Eßer "reactionGroups": [], 1391682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1483344518", 1392682da5a0SStefan Eßer "viewerDidAuthor": true 1393682da5a0SStefan Eßer }, 1394682da5a0SStefan Eßer { 1395682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5YtkJ8", 1396682da5a0SStefan Eßer "author": { 1397682da5a0SStefan Eßer "login": "STSMHQ" 1398682da5a0SStefan Eßer }, 1399682da5a0SStefan Eßer "authorAssociation": "NONE", 1400682da5a0SStefan Eßer "body": "Sorry for the delay replying (again).\r\n\r\n> I know this may not help, but I have personally found that my system programming skills (dev) got better after I learned system admininstration (ops).\r\n\r\nI hope you're right.\r\n\r\n> Once you get your Master's, maybe you can try to do what I have done: build excellent system software and support it. That may give you the room you need to make it a career. If it is going to work for me, it will surely work for you too!\r\n\r\nI'm trying to learn Rust on my free time, but it's been hard - I know your opinion about Rust xD -, let's see. \r\n\r\n> It's up at https://forum.gavinhoward.com/, but email is not working, so I need to wait. Please send me an email using the email listed at https://gavinhoward.com/contact/, and I'll send you an invite once email is working.\r\n\r\nThe [forum](https://forum.gavinhoward.com/) returns a 500 error code to me and the [contact page](https://gavinhoward.com/contact/) shows me that your e-mail is `<my_first_name>@<this_website>`. I'll send an email to `<redacted>` and hope it works.\r\n\r\n> Yes, basically.\r\n\r\nI see. Well, good luck for your new project. I'm pretty sure that people will love your support as much as I do.", 1401682da5a0SStefan Eßer "createdAt": "2023-03-29T10:27:50Z", 1402682da5a0SStefan Eßer "includesCreatedEdit": true, 1403682da5a0SStefan Eßer "isMinimized": false, 1404682da5a0SStefan Eßer "minimizedReason": "", 1405682da5a0SStefan Eßer "reactionGroups": [], 1406682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1488339580", 1407682da5a0SStefan Eßer "viewerDidAuthor": false 1408682da5a0SStefan Eßer }, 1409682da5a0SStefan Eßer { 1410682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5YwWgF", 1411682da5a0SStefan Eßer "author": { 1412682da5a0SStefan Eßer "login": "gavinhoward" 1413682da5a0SStefan Eßer }, 1414682da5a0SStefan Eßer "authorAssociation": "OWNER", 1415682da5a0SStefan Eßer "body": "> I'm trying to learn Rust on my free time, but it's been hard - I know your opinion about Rust xD -, let's see.\r\n\r\nRemember that my Rust opinion is personal; Rust is pretty good in general.\r\n\r\n> The [forum](https://forum.gavinhoward.com/) returns a 500 error code to me and the [contact page](https://gavinhoward.com/contact/) shows me that your e-mail is `<my_first_name>@<this_website>`.\r\n\r\nI'm having trouble with the forum. In fact, it turns out that sending email just doesn't work. My email provider is blaming the lobste.rs software, but the software has the right settings, so...\r\n\r\nI'm probably just going to have to write my own forum software. Sorry for the delay. It may be a year or so.\r\n\r\n> I'll send an email to `<redacted>` and hope it works.\r\n\r\nThat is the correct address. I've redacted it because I don't want it machine-readable (to avoid spam), but it is correct.\r\n\r\n> I see. Well, good luck for your new project. I'm pretty sure that people will love your support as much as I do.\r\n\r\nThank you!", 1416682da5a0SStefan Eßer "createdAt": "2023-03-29T18:07:27Z", 1417682da5a0SStefan Eßer "includesCreatedEdit": false, 1418682da5a0SStefan Eßer "isMinimized": false, 1419682da5a0SStefan Eßer "minimizedReason": "", 1420682da5a0SStefan Eßer "reactionGroups": [], 1421682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1489070085", 1422682da5a0SStefan Eßer "viewerDidAuthor": true 1423682da5a0SStefan Eßer }, 1424682da5a0SStefan Eßer { 1425682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5Y0Yev", 1426682da5a0SStefan Eßer "author": { 1427682da5a0SStefan Eßer "login": "STSMHQ" 1428682da5a0SStefan Eßer }, 1429682da5a0SStefan Eßer "authorAssociation": "NONE", 1430682da5a0SStefan Eßer "body": "> Remember that my Rust opinion is personal; Rust is pretty good in general.\r\n\r\nI hope it is here to stay for the long run.\r\n\r\n> I'm probably just going to have to write my own forum software. Sorry for the delay. It may be a year or so.\r\n\r\nNo problem. I'll put a reminder on my calendar, so. See you in a year (or so). Have a nice week!", 1431682da5a0SStefan Eßer "createdAt": "2023-03-30T11:18:53Z", 1432682da5a0SStefan Eßer "includesCreatedEdit": false, 1433682da5a0SStefan Eßer "isMinimized": false, 1434682da5a0SStefan Eßer "minimizedReason": "", 1435682da5a0SStefan Eßer "reactionGroups": [], 1436682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1490126767", 1437682da5a0SStefan Eßer "viewerDidAuthor": false 1438682da5a0SStefan Eßer }, 1439682da5a0SStefan Eßer { 1440682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5kIVVh", 1441682da5a0SStefan Eßer "author": { 1442682da5a0SStefan Eßer "login": "TediusTimmy" 1443682da5a0SStefan Eßer }, 1444682da5a0SStefan Eßer "authorAssociation": "NONE", 1445682da5a0SStefan Eßer "body": "Hey, I realize that you asked this five months ago, but I just saw this and I wanted to chime in, because I love REALLLY BIG NUMBERS.\r\n\r\nNow, Gavin noted that `(x^y)*(x^z) == x^(y+z)`. It is also true that `(x^y)^z == x^(y*z)`. So, we can simplify your question to `169287^1670801140084418360`. Hoo, boy is that a big number! How big is it? `2.4917161343640611*10^8735990286585912792` The number that describes how many digits are in the number has 19 digits in it.\r\n\r\nHow did I do this (and what is Julia probably doing under the covers)? The same way a slide rule works: logarithms. It is definitionally true that `a^u=e^(ln(a^u))`. So `a^u=e(u*ln(a))`. But this works in any base, so I'll choose base 10 (I hope you remember your laws of logarithms).\r\n\r\nTo follow along:\r\n```\r\nscale=40\r\n137*920*13256118217109*l(169287)/l(10)\r\n```\r\nThat should give you that exponent. Remember: the number we want is ten raised to this power. To get the leading digits, we extract the mantissa (the fractional portion of a logarithm), and then raise 10 to this power. This works because of what Gavin noted: we can separate `3.2` into `3+.2`, and we are raising ten to this power, so it becomes `(10^3)*(10^.2)`:\r\n```\r\ne(.3964985643509537948664437764527360339575*l(10))\r\n```\r\n\r\nI want to point out two things: firstly, `bc` is going to compute all of the digits of this number; secondly, it is a big number. If we pack 19 decimal digits into every 8 bytes, it will still take over 3,000 petabytes of memory to store this number. To give you a sense of scale: at the end of 2021, Internet Archive had 212 petabytes of data archived.", 1446682da5a0SStefan Eßer "createdAt": "2023-08-16T03:29:40Z", 1447682da5a0SStefan Eßer "includesCreatedEdit": false, 1448682da5a0SStefan Eßer "isMinimized": false, 1449682da5a0SStefan Eßer "minimizedReason": "", 1450682da5a0SStefan Eßer "reactionGroups": [ 1451682da5a0SStefan Eßer { 1452682da5a0SStefan Eßer "content": "THUMBS_UP", 1453682da5a0SStefan Eßer "users": { 1454682da5a0SStefan Eßer "totalCount": 1 1455682da5a0SStefan Eßer } 1456682da5a0SStefan Eßer } 1457682da5a0SStefan Eßer ], 1458682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1679906145", 1459682da5a0SStefan Eßer "viewerDidAuthor": false 1460682da5a0SStefan Eßer }, 1461682da5a0SStefan Eßer { 1462682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5kl8FL", 1463682da5a0SStefan Eßer "author": { 1464682da5a0SStefan Eßer "login": "STSMHQ" 1465682da5a0SStefan Eßer }, 1466682da5a0SStefan Eßer "authorAssociation": "NONE", 1467682da5a0SStefan Eßer "body": "Hi, @TediusTimmy. Thank you for your explanation. It helped a lot. I didn't know some of that mathematic equivalences. Have a nice week.", 1468682da5a0SStefan Eßer "createdAt": "2023-08-22T07:56:38Z", 1469682da5a0SStefan Eßer "includesCreatedEdit": false, 1470682da5a0SStefan Eßer "isMinimized": false, 1471682da5a0SStefan Eßer "minimizedReason": "", 1472682da5a0SStefan Eßer "reactionGroups": [], 1473682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66#issuecomment-1687667019", 1474682da5a0SStefan Eßer "viewerDidAuthor": false 1475682da5a0SStefan Eßer } 1476682da5a0SStefan Eßer ], 1477682da5a0SStefan Eßer "createdAt": "2023-03-16T12:20:42Z", 1478682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5g_6ME", 1479682da5a0SStefan Eßer "isPinned": false, 1480682da5a0SStefan Eßer "labels": [], 1481682da5a0SStefan Eßer "milestone": null, 1482682da5a0SStefan Eßer "number": 66, 1483682da5a0SStefan Eßer "projectCards": [], 1484682da5a0SStefan Eßer "projectItems": [], 1485682da5a0SStefan Eßer "reactionGroups": [], 1486682da5a0SStefan Eßer "state": "CLOSED", 1487682da5a0SStefan Eßer "stateReason": "COMPLETED", 1488682da5a0SStefan Eßer "title": "[QUESTION] Bypass Math Overflow for Large Computations", 1489682da5a0SStefan Eßer "updatedAt": "2023-08-22T07:56:38Z", 1490682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/66" 1491682da5a0SStefan Eßer }, 1492682da5a0SStefan Eßer { 1493682da5a0SStefan Eßer "assignees": [], 1494682da5a0SStefan Eßer "author": { 1495682da5a0SStefan Eßer "id": "U_kgDOB5Gq1Q", 1496682da5a0SStefan Eßer "is_bot": false, 1497682da5a0SStefan Eßer "login": "ikolesnikes", 1498682da5a0SStefan Eßer "name": "" 1499682da5a0SStefan Eßer }, 1500682da5a0SStefan Eßer "body": "bin/bc enters an infinite loop while evaluating the cube-root of 0.01\r\n\r\nbin/bc -l -e 'cbrt(0.1)'\r\nreturns .46415888336127788924 (which is expected)\r\n\r\nbin/bc -l -e 'cbrt(0.01)'\r\nfreezes\r\n\r\nLooking at the definition of root(x,n) in lib2.bc the following loop never exits\r\n\r\n\twhile(r!=q){\r\n\t\tr=q\r\n\t\tq=(p*r+x/r^p)/n\r\n\t}\r\n\r\nA simple hack makes the cbrt function working.\r\n\r\n\twhile(abs(r-q)>0.000001){\r\n\t\tr=q\r\n\t\tq=(p*r+x/r^p)/n\r\n\t}", 1501682da5a0SStefan Eßer "closed": true, 1502682da5a0SStefan Eßer "closedAt": "2023-03-15T21:56:14Z", 1503682da5a0SStefan Eßer "comments": [ 1504682da5a0SStefan Eßer { 1505682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5XXKFy", 1506682da5a0SStefan Eßer "author": { 1507682da5a0SStefan Eßer "login": "gavinhoward" 1508682da5a0SStefan Eßer }, 1509682da5a0SStefan Eßer "authorAssociation": "OWNER", 1510682da5a0SStefan Eßer "body": "Yes, this is a bug. I have reproduced it.\r\n\r\nYour fix pointed right to the problem, which I suspected: it ran into a pathological case where the two values, `r` and `q`, never equaled each other because they would keep switching, i.e., `r` would equal `x`, and `q` would equal `y`, then on the next iteration, `r` would equal `y`, and `q` would equal `x`.\r\n\r\nThis is the reason I hate algorithms that are calculated by series. They can easily have problems like this.\r\n\r\nI tried to fix it with 01230fcd9cfb547c5666247e1a36c624d3f2d01c. It increases the precision, but then does the comparison at a smaller precision.\r\n\r\nCan you pull and test it for me? I'll start my release process in the meantime.", 1511682da5a0SStefan Eßer "createdAt": "2023-03-13T08:13:31Z", 1512682da5a0SStefan Eßer "includesCreatedEdit": false, 1513682da5a0SStefan Eßer "isMinimized": false, 1514682da5a0SStefan Eßer "minimizedReason": "", 1515682da5a0SStefan Eßer "reactionGroups": [], 1516682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/64#issuecomment-1465688434", 1517682da5a0SStefan Eßer "viewerDidAuthor": true 1518682da5a0SStefan Eßer }, 1519682da5a0SStefan Eßer { 1520682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5XYwKM", 1521682da5a0SStefan Eßer "author": { 1522682da5a0SStefan Eßer "login": "ikolesnikes" 1523682da5a0SStefan Eßer }, 1524682da5a0SStefan Eßer "authorAssociation": "NONE", 1525682da5a0SStefan Eßer "body": "I tested your solution and it worked!\r\nMaybe it's worth to add a test for this case.\r\n\r\nNever mind, you already did it.", 1526682da5a0SStefan Eßer "createdAt": "2023-03-13T13:03:47Z", 1527682da5a0SStefan Eßer "includesCreatedEdit": true, 1528682da5a0SStefan Eßer "isMinimized": false, 1529682da5a0SStefan Eßer "minimizedReason": "", 1530682da5a0SStefan Eßer "reactionGroups": [], 1531682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/64#issuecomment-1466106508", 1532682da5a0SStefan Eßer "viewerDidAuthor": false 1533682da5a0SStefan Eßer }, 1534682da5a0SStefan Eßer { 1535682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5XZaRe", 1536682da5a0SStefan Eßer "author": { 1537682da5a0SStefan Eßer "login": "gavinhoward" 1538682da5a0SStefan Eßer }, 1539682da5a0SStefan Eßer "authorAssociation": "OWNER", 1540682da5a0SStefan Eßer "body": "Yes, but you are right that if I did not, I should have!\r\n\r\nI will put out a release with the fix as soon as I can. I'll close this issue at that time.", 1541682da5a0SStefan Eßer "createdAt": "2023-03-13T14:45:27Z", 1542682da5a0SStefan Eßer "includesCreatedEdit": false, 1543682da5a0SStefan Eßer "isMinimized": false, 1544682da5a0SStefan Eßer "minimizedReason": "", 1545682da5a0SStefan Eßer "reactionGroups": [], 1546682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/64#issuecomment-1466279006", 1547682da5a0SStefan Eßer "viewerDidAuthor": true 1548682da5a0SStefan Eßer }, 1549682da5a0SStefan Eßer { 1550682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5XrBvX", 1551682da5a0SStefan Eßer "author": { 1552682da5a0SStefan Eßer "login": "gavinhoward" 1553682da5a0SStefan Eßer }, 1554682da5a0SStefan Eßer "authorAssociation": "OWNER", 1555682da5a0SStefan Eßer "body": "Release `6.5.0` is out! Thank you for the report!", 1556682da5a0SStefan Eßer "createdAt": "2023-03-15T21:56:14Z", 1557682da5a0SStefan Eßer "includesCreatedEdit": false, 1558682da5a0SStefan Eßer "isMinimized": false, 1559682da5a0SStefan Eßer "minimizedReason": "", 1560682da5a0SStefan Eßer "reactionGroups": [], 1561682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/64#issuecomment-1470897111", 1562682da5a0SStefan Eßer "viewerDidAuthor": true 1563682da5a0SStefan Eßer } 1564682da5a0SStefan Eßer ], 1565682da5a0SStefan Eßer "createdAt": "2023-03-13T06:01:54Z", 1566682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5gm5mO", 1567682da5a0SStefan Eßer "isPinned": false, 1568682da5a0SStefan Eßer "labels": [], 1569682da5a0SStefan Eßer "milestone": null, 1570682da5a0SStefan Eßer "number": 64, 1571682da5a0SStefan Eßer "projectCards": [], 1572682da5a0SStefan Eßer "projectItems": [], 1573682da5a0SStefan Eßer "reactionGroups": [], 1574682da5a0SStefan Eßer "state": "CLOSED", 1575682da5a0SStefan Eßer "stateReason": "COMPLETED", 1576682da5a0SStefan Eßer "title": "bc freezes evaluating cbrt(0.01)", 1577682da5a0SStefan Eßer "updatedAt": "2023-03-15T21:56:14Z", 1578682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/64" 1579682da5a0SStefan Eßer }, 1580682da5a0SStefan Eßer { 1581682da5a0SStefan Eßer "assignees": [], 1582682da5a0SStefan Eßer "author": { 1583682da5a0SStefan Eßer "id": "MDQ6VXNlcjE0ODEyNjg=", 1584682da5a0SStefan Eßer "is_bot": false, 1585682da5a0SStefan Eßer "login": "pg83", 1586682da5a0SStefan Eßer "name": "Anton Samokhvalov" 1587682da5a0SStefan Eßer }, 1588682da5a0SStefan Eßer "body": "https://github.com/gavinhoward/bc/blob/master/scripts/safe-install.sh#L28 creates hard dependency loop on previously available bc for install process, which can be not available:\r\n\r\n* in bootstrap environments\r\n* in cross-compile environments\r\n", 1589682da5a0SStefan Eßer "closed": true, 1590682da5a0SStefan Eßer "closedAt": "2023-02-25T15:11:27Z", 1591682da5a0SStefan Eßer "comments": [ 1592682da5a0SStefan Eßer { 1593682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5WEExO", 1594682da5a0SStefan Eßer "author": { 1595682da5a0SStefan Eßer "login": "gavinhoward" 1596682da5a0SStefan Eßer }, 1597682da5a0SStefan Eßer "authorAssociation": "OWNER", 1598682da5a0SStefan Eßer "body": "Whoops. I did not think of that. My bad.\r\n\r\nThis should be fixed in 313738df7f6d65875dd91ef63565227d0f782472 and 349cd801d5a7f4ab2fad76096d271397aa738063. I put out `6.3.1` because I know for a fact that Linux from Scratch will need these changes too, and they usually just grab the latest release.\r\n\r\nI hope this new release works for you. Please close this issue if it does.", 1599682da5a0SStefan Eßer "createdAt": "2023-02-24T16:05:13Z", 1600682da5a0SStefan Eßer "includesCreatedEdit": false, 1601682da5a0SStefan Eßer "isMinimized": false, 1602682da5a0SStefan Eßer "minimizedReason": "", 1603682da5a0SStefan Eßer "reactionGroups": [ 1604682da5a0SStefan Eßer { 1605682da5a0SStefan Eßer "content": "THUMBS_UP", 1606682da5a0SStefan Eßer "users": { 1607682da5a0SStefan Eßer "totalCount": 1 1608682da5a0SStefan Eßer } 1609682da5a0SStefan Eßer } 1610682da5a0SStefan Eßer ], 1611682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/63#issuecomment-1443908686", 1612682da5a0SStefan Eßer "viewerDidAuthor": true 1613682da5a0SStefan Eßer }, 1614682da5a0SStefan Eßer { 1615682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5WIxOt", 1616682da5a0SStefan Eßer "author": { 1617682da5a0SStefan Eßer "login": "pg83" 1618682da5a0SStefan Eßer }, 1619682da5a0SStefan Eßer "authorAssociation": "NONE", 1620682da5a0SStefan Eßer "body": "thanx!", 1621682da5a0SStefan Eßer "createdAt": "2023-02-25T15:11:27Z", 1622682da5a0SStefan Eßer "includesCreatedEdit": false, 1623682da5a0SStefan Eßer "isMinimized": false, 1624682da5a0SStefan Eßer "minimizedReason": "", 1625682da5a0SStefan Eßer "reactionGroups": [], 1626682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/63#issuecomment-1445139373", 1627682da5a0SStefan Eßer "viewerDidAuthor": false 1628682da5a0SStefan Eßer } 1629682da5a0SStefan Eßer ], 1630682da5a0SStefan Eßer "createdAt": "2023-02-24T11:34:48Z", 1631682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5fRqQO", 1632682da5a0SStefan Eßer "isPinned": false, 1633682da5a0SStefan Eßer "labels": [], 1634682da5a0SStefan Eßer "milestone": null, 1635682da5a0SStefan Eßer "number": 63, 1636682da5a0SStefan Eßer "projectCards": [], 1637682da5a0SStefan Eßer "projectItems": [], 1638682da5a0SStefan Eßer "reactionGroups": [], 1639682da5a0SStefan Eßer "state": "CLOSED", 1640682da5a0SStefan Eßer "stateReason": "COMPLETED", 1641682da5a0SStefan Eßer "title": "bc -> bc dependency loop", 1642682da5a0SStefan Eßer "updatedAt": "2023-02-25T15:11:28Z", 1643682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/63" 1644682da5a0SStefan Eßer }, 1645682da5a0SStefan Eßer { 1646682da5a0SStefan Eßer "assignees": [], 1647682da5a0SStefan Eßer "author": { 1648682da5a0SStefan Eßer "id": "MDQ6VXNlcjUzMTI5ODE2", 1649682da5a0SStefan Eßer "is_bot": false, 1650682da5a0SStefan Eßer "login": "enh-google", 1651682da5a0SStefan Eßer "name": "" 1652682da5a0SStefan Eßer }, 1653682da5a0SStefan Eßer "body": "trying to update AOSP to 6.2.4 (https://android-review.googlesource.com/c/platform/external/bc/+/2433072) i hit:\r\n```\r\ntests/: 413 files pushed, 0 skipped. 6.5 MB/s (1197549 bytes in 0.175s)\r\nscripts/functions.sh: 1 file pushed, 0 skipped. 60.6 MB/s (14190 bytes in 0.000s)\r\n***********************************************************************\r\n\r\nRunning bc tests...\r\n\r\nRunning bc decimal...pass\r\nSkipping bc print test\r\nSkipping bc parse test\r\nSkipping bc lib2\r\nRunning bc print2...pass\r\nRunning bc length...pass\r\nRunning bc scale...pass\r\nSkipping bc shift\r\nRunning bc add...pass\r\nRunning bc subtract...pass\r\nRunning bc multiply...pass\r\nRunning bc divide...pass\r\nRunning bc modulus...pass\r\nRunning bc power...pass\r\nRunning bc sqrt...pass\r\nSkipping bc trunc\r\nSkipping bc places\r\nRunning bc vars...pass\r\nRunning bc boolean...pass\r\nRunning bc comp...pass\r\nRunning bc abs...pass\r\nRunning bc assignments...pass\r\nRunning bc functions...pass\r\nSkipping bc scientific\r\nSkipping bc engineering\r\nRunning bc globals...pass\r\nRunning bc strings...pass\r\nSkipping bc strings2 test\r\nRunning bc letters...pass\r\nRunning bc exponent...pass\r\nRunning bc log...pass\r\nRunning bc pi...pass\r\nRunning bc arctangent...pass\r\nRunning bc sine...pass\r\nRunning bc cosine...pass\r\nSkipping bc bessel test\r\nRunning bc arrays...pass\r\nRunning bc misc...pass\r\nRunning bc misc1...pass\r\nRunning bc misc2...pass\r\nRunning bc misc3...pass\r\nRunning bc misc4...pass\r\nRunning bc misc5...pass\r\nRunning bc misc6...pass\r\nRunning bc misc7...pass\r\nRunning bc misc8...pass\r\nRunning bc void...pass\r\nSkipping bc rand\r\nRunning bc recursive_arrays...pass\r\nRunning bc divmod...pass\r\nRunning bc modexp...pass\r\nSkipping bc bitfuncs\r\nSkipping bc leadingzero\r\nRunning bc is_number...pass\r\nRunning bc is_string...pass\r\nRunning bc asciify_array...pass\r\nRunning bc line_by_line1...pass\r\nRunning bc line_by_line2...pass\r\nRunning bc line_loop_quit1...pass\r\nRunning bc line_loop_quit2...pass\r\nRunning bc stdin tests...pass\r\n/data/local/tmp/bc-tests/tests/scripts.sh[66]: check_d_arg: inaccessible or not found\r\n\r\nExit Code: 127\r\n```\r\nlooking at scripts.sh, it doesn't source functions.sh where the preceding scripts do. i'm not sure why that works with bash? i didn't think bash exported functions by default, but maybe it's doing so?\r\n\r\nanyway, i tested the obvious fix (https://android-review.googlesource.com/c/platform/external/bc/+/2433072/2/tests/scripts.sh).", 1654682da5a0SStefan Eßer "closed": true, 1655682da5a0SStefan Eßer "closedAt": "2023-02-15T16:15:07Z", 1656682da5a0SStefan Eßer "comments": [ 1657682da5a0SStefan Eßer { 1658682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5VLKwA", 1659682da5a0SStefan Eßer "author": { 1660682da5a0SStefan Eßer "login": "gavinhoward" 1661682da5a0SStefan Eßer }, 1662682da5a0SStefan Eßer "authorAssociation": "OWNER", 1663682da5a0SStefan Eßer "body": "Whoops. That's a bug.\r\n\r\nI tried clicking your links, but they complained that I wasn't signed in our didn't have permission.\r\n\r\nI presume your obvious fix was to source `functions.sh`? I'll do that in my repo when I get home. Do you want a tagged release?", 1664682da5a0SStefan Eßer "createdAt": "2023-02-14T01:55:30Z", 1665682da5a0SStefan Eßer "includesCreatedEdit": false, 1666682da5a0SStefan Eßer "isMinimized": false, 1667682da5a0SStefan Eßer "minimizedReason": "", 1668682da5a0SStefan Eßer "reactionGroups": [], 1669682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62#issuecomment-1428990976", 1670682da5a0SStefan Eßer "viewerDidAuthor": true 1671682da5a0SStefan Eßer }, 1672682da5a0SStefan Eßer { 1673682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5VLMMt", 1674682da5a0SStefan Eßer "author": { 1675682da5a0SStefan Eßer "login": "enh-google" 1676682da5a0SStefan Eßer }, 1677682da5a0SStefan Eßer "authorAssociation": "NONE", 1678682da5a0SStefan Eßer "body": "> I tried clicking your links, but they complained that I wasn't signed in our didn't have permission.\r\n\r\ngah, don't get me started ... the powers that be inflicted a stupid url rewriter on us recently that mean we can't give working urls to anyone. i'd tried to manually fix these, but didn't test them. fixed now (retconned above).\r\n\r\n> I presume your obvious fix was to source `functions.sh`?\r\n\r\nexactly.\r\n\r\n> I'll do that in my repo when I get home. Do you want a tagged release?\r\n\r\nyes please... our tooling isn't yet clever enough to get us back on to the next tagged release if we switch to a sha, so until we implement that, it's quite a bit more convenient if there's another tag. (especially if i happen to go under a bus :-) )", 1679682da5a0SStefan Eßer "createdAt": "2023-02-14T02:02:08Z", 1680682da5a0SStefan Eßer "includesCreatedEdit": false, 1681682da5a0SStefan Eßer "isMinimized": false, 1682682da5a0SStefan Eßer "minimizedReason": "", 1683682da5a0SStefan Eßer "reactionGroups": [], 1684682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62#issuecomment-1428996909", 1685682da5a0SStefan Eßer "viewerDidAuthor": false 1686682da5a0SStefan Eßer }, 1687682da5a0SStefan Eßer { 1688682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5VLqu1", 1689682da5a0SStefan Eßer "author": { 1690682da5a0SStefan Eßer "login": "gavinhoward" 1691682da5a0SStefan Eßer }, 1692682da5a0SStefan Eßer "authorAssociation": "OWNER", 1693682da5a0SStefan Eßer "body": "Fixed in 714782c613ec2a4570f63c1285d38785961edb89, which should also preemptively fix any other occurrences of this same bug.\r\n\r\nI'm running a basic release process to ensure that the release still builds and tests, but I should have a tag out tomorrow morning (US time).", 1694682da5a0SStefan Eßer "createdAt": "2023-02-14T05:04:50Z", 1695682da5a0SStefan Eßer "includesCreatedEdit": false, 1696682da5a0SStefan Eßer "isMinimized": false, 1697682da5a0SStefan Eßer "minimizedReason": "", 1698682da5a0SStefan Eßer "reactionGroups": [], 1699682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62#issuecomment-1429121973", 1700682da5a0SStefan Eßer "viewerDidAuthor": true 1701682da5a0SStefan Eßer }, 1702682da5a0SStefan Eßer { 1703682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5VP1W1", 1704682da5a0SStefan Eßer "author": { 1705682da5a0SStefan Eßer "login": "enh-google" 1706682da5a0SStefan Eßer }, 1707682da5a0SStefan Eßer "authorAssociation": "NONE", 1708682da5a0SStefan Eßer "body": "> I'm running a basic release process to ensure that the release still builds and tests, but I should have a tag out tomorrow morning (US time).\r\n\r\nthanks! no hurry...", 1709682da5a0SStefan Eßer "createdAt": "2023-02-14T18:46:00Z", 1710682da5a0SStefan Eßer "includesCreatedEdit": false, 1711682da5a0SStefan Eßer "isMinimized": false, 1712682da5a0SStefan Eßer "minimizedReason": "", 1713682da5a0SStefan Eßer "reactionGroups": [], 1714682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62#issuecomment-1430214069", 1715682da5a0SStefan Eßer "viewerDidAuthor": false 1716682da5a0SStefan Eßer }, 1717682da5a0SStefan Eßer { 1718682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5VQreo", 1719682da5a0SStefan Eßer "author": { 1720682da5a0SStefan Eßer "login": "gavinhoward" 1721682da5a0SStefan Eßer }, 1722682da5a0SStefan Eßer "authorAssociation": "OWNER", 1723682da5a0SStefan Eßer "body": "It's out! Because I haven't been able to get an Android environment going yet, I'm still not sure this will work for you. If it does, though, please close this issue. Otherwise, I'll try something else.", 1724682da5a0SStefan Eßer "createdAt": "2023-02-14T22:04:15Z", 1725682da5a0SStefan Eßer "includesCreatedEdit": false, 1726682da5a0SStefan Eßer "isMinimized": false, 1727682da5a0SStefan Eßer "minimizedReason": "", 1728682da5a0SStefan Eßer "reactionGroups": [], 1729682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62#issuecomment-1430435752", 1730682da5a0SStefan Eßer "viewerDidAuthor": true 1731682da5a0SStefan Eßer }, 1732682da5a0SStefan Eßer { 1733682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5VRBCe", 1734682da5a0SStefan Eßer "author": { 1735682da5a0SStefan Eßer "login": "enh-google" 1736682da5a0SStefan Eßer }, 1737682da5a0SStefan Eßer "authorAssociation": "NONE", 1738682da5a0SStefan Eßer "body": "thanks... testing now: https://android-review.googlesource.com/c/platform/external/bc/+/2436773", 1739682da5a0SStefan Eßer "createdAt": "2023-02-14T23:24:21Z", 1740682da5a0SStefan Eßer "includesCreatedEdit": false, 1741682da5a0SStefan Eßer "isMinimized": false, 1742682da5a0SStefan Eßer "minimizedReason": "", 1743682da5a0SStefan Eßer "reactionGroups": [], 1744682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62#issuecomment-1430524062", 1745682da5a0SStefan Eßer "viewerDidAuthor": false 1746682da5a0SStefan Eßer }, 1747682da5a0SStefan Eßer { 1748682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5VVNiI", 1749682da5a0SStefan Eßer "author": { 1750682da5a0SStefan Eßer "login": "enh-google" 1751682da5a0SStefan Eßer }, 1752682da5a0SStefan Eßer "authorAssociation": "NONE", 1753682da5a0SStefan Eßer "body": "merged! thanks for your help :-)", 1754682da5a0SStefan Eßer "createdAt": "2023-02-15T16:15:07Z", 1755682da5a0SStefan Eßer "includesCreatedEdit": false, 1756682da5a0SStefan Eßer "isMinimized": false, 1757682da5a0SStefan Eßer "minimizedReason": "", 1758682da5a0SStefan Eßer "reactionGroups": [], 1759682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62#issuecomment-1431623816", 1760682da5a0SStefan Eßer "viewerDidAuthor": false 1761682da5a0SStefan Eßer } 1762682da5a0SStefan Eßer ], 1763682da5a0SStefan Eßer "createdAt": "2023-02-14T00:32:53Z", 1764682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5eXxKU", 1765682da5a0SStefan Eßer "isPinned": false, 1766682da5a0SStefan Eßer "labels": [], 1767682da5a0SStefan Eßer "milestone": null, 1768682da5a0SStefan Eßer "number": 62, 1769682da5a0SStefan Eßer "projectCards": [], 1770682da5a0SStefan Eßer "projectItems": [], 1771682da5a0SStefan Eßer "reactionGroups": [], 1772682da5a0SStefan Eßer "state": "CLOSED", 1773682da5a0SStefan Eßer "stateReason": "COMPLETED", 1774682da5a0SStefan Eßer "title": "another mksh/bash difference?", 1775682da5a0SStefan Eßer "updatedAt": "2023-02-15T16:15:07Z", 1776682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/62" 1777682da5a0SStefan Eßer }, 1778682da5a0SStefan Eßer { 1779682da5a0SStefan Eßer "assignees": [], 1780682da5a0SStefan Eßer "author": { 1781682da5a0SStefan Eßer "id": "MDQ6VXNlcjUzMTI5ODE2", 1782682da5a0SStefan Eßer "is_bot": false, 1783682da5a0SStefan Eßer "login": "enh-google", 1784682da5a0SStefan Eßer "name": "" 1785682da5a0SStefan Eßer }, 1786682da5a0SStefan Eßer "body": "i haven't been able to update for some time (5.0.1 was our last update!) because the tests fail in a weird way without much useful information. i've included the current failures for 6.2.2 below, for example.\r\n\r\nmy guess is that this is something to do with Android using mksh as its /bin/sh. the interleaved output makes it appear like there might be some disagreement about job handling between bash and mksh?\r\n\r\nare the current bc tests known to work on shells other than bash (and in particular mksh)? any ideas where i should look (or some kind of parallelism i can just disable)?\r\n```\r\n~/aosp-master-with-phones/external/bc$ ./run-bc-tests-on-android.sh \r\ntests/: 413 files pushed, 0 skipped. 0.8 MB/s (1191155 bytes in 1.372s)\r\nscripts/functions.sh: 1 file pushed, 0 skipped. 75.4 MB/s (12065 bytes in 0.000s)\r\n***********************************************************************\r\n\r\nRunning bc tests...\r\n\r\nSkipping bc lib2\r\nSkipping bc shift\r\nSkipping bc trunc\r\nSkipping bc places\r\nSkipping bc print test\r\nSkRunning bc decimal...Running bc print2...ipping bc parse test\r\nRunning bc scale...Skipping bc scientific\r\nRunning bc length...Running bc sqrt...Running bc modulus...RuRunning bc add...nning bc divide...Running bc subtract...Skipping bc engineering\r\nRunning bc multiply...Running bc power...Running bc abs...Running bc functions...pass\r\nRunning bc boolean...Running bc comp...Running bc assignments...Running bc vars...pass\r\nSkipping bc rand\r\npass\r\nSRunning bc globals...kipping bc bitfuncs\r\npass\r\nRunning bc strings...pass\r\nRunning bc cosine...pass\r\nSkipping bc strings2 test\r\nSkipping bc bessel test\r\npass\r\nRunning bc sine...Running bc misc2...RRunning bc exponent...pRunning bc log...Running bc misc8...Running bc misc...Running bc misc4...Running bc pi...upass\r\nSkipping bc leadingzero\r\nnning bc misc1...ppasRunning bc arrays...asss\r\n\r\nass\r\nRunning bc arctangent...Running bc misc6...Running bc modexp...Running bc void...Running bc misc3...Running bc letters...pass\r\npass\r\npRunning bc misc7...ass\r\npass\r\npass\r\nRunning bc divmod...Running bc recursive_arrays...Running bc misc5...pass\r\npass\r\npass\r\npass\r\npass\r\npass\r\npass\r\nppass\r\nass\r\nRunning bc is_number...pass\r\npass\r\npass\r\npass\r\nRunning bc asciify_array...Running bc line_loop_quit1...pass\r\nppass\r\npass\r\npass\r\npass\r\npass\r\nass\r\nRunning bc is_string...Running bc line_by_line1...Running bc line_by_line2...Running bc line_loop_quit2...Running bc command-line error tests...Running bc stdin tests...pass\r\nRunning bc error file 01.txt with clamping...pass\r\npass\r\npass\r\nRunning bc read...Running bc error file 02.txt with clamping...Running bc error file 03.txt with clamping...pass\r\npass\r\npass\r\npass\r\npass\r\npass\r\npass\r\npass\r\nRunning bc error file 01.txt without clamping...Running bc error file 04.txt with clamping...ppass\r\nSkipping bc script multiply.bc\r\npass\r\nass\r\nRunning bc error file 02.txt without clamping...pass\r\nRunning bc error file 05.txt with clamping...Skipping bc script divide.bc\r\nRunning bc error file 03.txt without clamping...Skipping bc script subtract.bc\r\npass\r\nRunning bc errors...Running bc read errors...pass\r\nSkipping bc script add.bc\r\nRunning bc error file 06.txt with clamping...Running bc error file 04.txt without clamping...pRunning bc error file 07.txt with clamping...ass\r\nRunning bc error file 01.txt through cat with clamping...pass\r\nRunning bc error file 08.txt with clamping...pass\r\nSkipping bc script print.bc\r\nRunning bc error file 02.txt through cat with clamping...Running bc error file 03.txt through cat with clamping...pass\r\npass\r\npass\r\nRunning bc error file 05.txt without clamping...pass\r\npass\r\nRunning bc error file 09.txt with clamping...pass\r\nRunning bc error file 07.txt without clamping...pass\r\nSkipping bc script parse.bc\r\nRunRunning bc error file 04.txt through cat wnith clamping...ing bc error file 06.txt without clamping...pass\r\nRunning bc error file 10.txt with clamping...RRunning bc empty read...Running bc error file 01.txt through cat without clamping...unning bc script array.bc...RRunning bc error file 03.txt through cat without clamping...pass\r\npaRunning bc error file 08.txt without clamping...Running bc error file 11.txt with clamping...pss\r\nunning bc script array2.bc...ass\r\npass\r\npass\r\nRunning bc error file 02.txt through cat without clamping...pass\r\npass\r\nRunning bc script atan.bc...Running bc error file 09.txt without clamping...Running bc error file 05.txt through cat with clamping...pass\r\npass\r\nRunning bc error file 10.txt without clamping...Running bc error file 06.txt through cat with clamping...Running bc error file 12.txt with clamping...RunRunning bc error file 04.txt through cat without clamping...pass\r\nSkipping bc script bessel.bc\r\npass\r\nning bc error file 07.txt through cat with clamping...Running bc script functions.bc...pass\r\nRunning bc error file 11.txt without clamping...Running bc error file 13.txt with clamping...pass\r\npass\r\nRunning bc error file 08.txt through cat with clamping...pass\r\npass\r\nRunning bc error file 14.txt with clamping...pass\r\nRunning bc read EOF...pass\r\nRunning bc error file 09.txt through cat with clamping...pass\r\npass\r\npass\r\nRunning bc error file 05.txt through cat without clamping...pass\r\npRunning bc script globals.bc...pass\r\nass\r\nRunning bc error file 15.txt with clamping...Skipping bc script: rand.bc\r\nRRunning Rbc error ufninlien g10.txt through cbca ts cwriitpht len.bc...clamping...pass\r\nunning bc error file 07.txt through cat without clamping...pass\r\nRRunning bc error file 06.txt through cat without clamping...pass\r\nRunning bc error file 11.txt through cat with clamping...unning bc error file 12.txt without clamping...pass\r\nRunning bc error file 08.txt through cat without clamping...pass\r\nRunning bc error file 16.txt with clamping...pass\r\nRunning bc error file 14.txt without clamping...pass\r\nRunning bc error file 13.txt without clamping...pass\r\nRunning bc script references.bc...Running bc error file 17.txt with clamping...Running bc error file 09.txt through cat without clamping...pass\r\npass\r\npass\r\npass\r\npass\r\npass\r\nRuRunning bc error file 15.txt without clamping...nning bc error file 18.txt with clamping...Running bc script screen.bc...pass\r\nRpass\r\npapass\r\nunning bc error file 12.txt through cat with clamping...ss\r\nRunning bc error file 11.txt through cat without clamping...Rpass\r\nunning bc error file 10.txt through cat without clamping...Running bc error file 19.txt with clamping...Skipping bc script strings2.bc\r\npass\r\nRunning bc error file 13.txt through cat with clamping...pass\r\nRunning bc error file 16.txt without clamping...pass\r\nRunning bc error file 14.txt through cat with clamping...Running bc error file 20.txt with clamping...pass\r\nRunning bc error file 17.txt without clamping...pass\r\npass\r\nRunning bc error file 21.txt with clamping...paspass\r\nRunning bc script ifs.bc...s\r\nRunning bc error file 18.txt without clamping...pass\r\nRunning bc error file 15.txt through cat with clamping...pass\r\nRunning bc script ifs2.bc...Rpass\r\npass\r\nRunning bc error file 12.txt through cat without clamping...pass\r\nunning bc error file 19.txt without clamping...Running bc erpass\r\nror file 22.txt with clamping...Running bc error file 13.txt through cat without clamping...Rpass\r\npRunning bc error file 20.txt without clamping...pass\r\nass\r\nRuRRuunning bc error file 14.txt through cat without clamping...nnning bc script afl1.bc...unning bc error file 23.txt with clning bcamp einrrg..or. file 16.txt through cat with clamping...pass\r\npass\r\nRunning bc error file 17.txt through cat with clamping...Running bc error filepass\r\npass\r\npass\r\nRunniRunning bc error file 15.txt through cat without clamping... 21.txtng bc error file 24.txt with clamping... without clamping...Running bc error file 18.txt through cat with clamping...pass\r\npass\r\npass\r\npass\r\npass\r\nRunning bc error file 25.txt with clamping...pass\r\nRunning bc error file 22.txt without clamping...Running bc error file 19.txt through cat with clamping...pass\r\nRunning bc error file 16.txt through cat without clamping...Running bc error file 23.txt without clamping...pass\r\npass\r\npass\r\nRunning bc error file 20.txt through cat with clamping...pass\r\nRunning bc error file 26.txt with clamping...Running bc error file 17.txt through cat without clamping...Running bc error file 24.txt without clamping...Running bc error file 27.txt with clamping...pass\r\nRunning bc error file 18.txt through cat without clamping...pass\r\npass\r\npass\r\nRunning bc error file 21.txt through cat with clamping...pass\r\nRunning bc error file 19.txt through cat without clamping...pass\r\nRunning bc error file 22.txt through cat with clamping...pass\r\nRunning bc error file 25.txt without clamping...Running bc error file 28.txt with clamping...pass\r\npass\r\npass\r\npass\r\npass\r\nRunning bc error file 23.txt through cat with clamping...Running bc error file 20.txt through cat without clamping...RuRunning bc error file 29.txt with clamping...Running bc error file 24.txt through cat with clamping...pass\r\nnning bc error file 26.txt without clamping...pass\r\nRunning bc error file 27.txt without clamping...pass\r\npass\r\npass\r\npass\r\nRunning bc error file 22.txt through cat without clamping...Running bc error file 30.txt with clamping...Running bc error file 21.txt through cat without clamping...Running bc error file 31.txt with clamping...pass\r\npass\r\nRunning bc error file 25.txt through cat with clamping...Running bc error file 28.txt without clamping...pass\r\nRunning bc error file 23.txt through cat without clamping...pass\r\nRunning bc error file 27.txt through cat with clamping...pass\r\nRunning bc error file 32.txt with clamping...Running bc error file 24.txt through cat without clamping...Skipping problematic bc error file 33.txt...\r\nRunning bc error file 26.txt through cat with clamping...pass\r\npass\r\npass\r\npass\r\npaRunning bc error file 29.txt withss\r\npout clamping...ass\r\npass\r\nRuRupass\r\nA test failed!\r\nRunning bc error file 25.txt through cat without clamping...Running bc error file 30.txt without clamping...passnning bc error file 28.txt through nning bc error file 31.txt without clamping...\r\ncat with clamping...pass\r\nRunning bc error file 27.txt through cat without clamping...pass\r\npass\r\nA test failed!\r\nRunning bc error file 34.txt with clamping...Running bc error file 32.txt without clamping...pass\r\npass\r\nA test failed!\r\nRunning bc error file 26.txt through cat without clampiRunning bc error file 29.txt through cat with clamping...pass\r\nng...pRunning bc error file 35.txt with clamping...pass\r\nRunning bc error file 31.txt through cat with clamping...A Running bc error file 36.txt with clamping...pass\r\nRunning bc error file 30.txt through cat with clamping...\r\nRunning bc quit test...test failed!\r\nass\r\npass\r\nA test failed!\r\npass\r\nRunning bc error file 32.txt through cat with clamping...Running bc error file 28.txt through cat without clamping...Running bc error file 34.txt without clamping...pass\r\npass\r\npass\r\npass\r\nRA pass\r\ntest failed!\r\nunning bc error file 29.txt through cat without clamping...Running bcpass\r\n error file 35.txt without clamping...Running bc error file 30.txt through cat without clamping...pass\r\nRunning bc error file 31.txt through cat without clamping...Running bc error file 36.txt without clamping...A pass\r\ntest failed!\r\npass\r\nRunning bc error file 34.txt through cat with clamping...pA Running bc error file 32.txt through cat without clamping...ass\r\ntest failed!\r\npass\r\npass\r\npass\r\npass\r\nA test failed!\r\nRuRunning bc error file 35.txt through cat with clamping...nning bc error file 36.txt through cat with clamping...Rupass\r\nnning bc environment var tests...pass\r\nA test failed!\r\nRunning bc error file 34.txt through cat without clamping...A pass\r\ntest failed!\r\npass\r\nRunning bc error file 36.txt through cat without clamping...A test failed!pass\r\nRunning bc error file 35.txt through cat witpass\r\n\r\nhout clamping...Running keyword redefinition test...paA test failed!\r\nss\r\npass\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\npass\r\nA test failed!\r\nRunning multiline comment expression file test...A test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\npass\r\nA test failed!\r\nA test failed!\r\nA Rtest ufnaniilnegd !m\r\nultiline comment expression file error test...A test failed!\r\nA test failed!\r\nA test failed!\r\npass\r\nA test failed!\r\nA test failed!\r\nRunning multiline string expression file test...A test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\npass\r\nRunning multiline string expression file error test...A test failed!\r\nA test failed!\r\npass\r\nA test failed!\r\nRunning bc line length tests...A test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\nA test failed!\r\npass\r\nA test failed!\r\nA test failed!\r\nRunning bc arg tests...pass\r\nRunning bc builtin variable arg tests...pass\r\nRunning bc directory test...pass\r\nRunning bc binary file test...pass\r\nRunning bc binary stdin test...pass\r\nRunning bc limits tests...pass\r\npass\r\nRunning bc posix_errors...pass\r\n~/aosp-master-with-phones/external/bc$ \r\n```", 1787682da5a0SStefan Eßer "closed": true, 1788682da5a0SStefan Eßer "closedAt": "2023-01-12T17:51:06Z", 1789682da5a0SStefan Eßer "comments": [ 1790682da5a0SStefan Eßer { 1791682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5SPfLa", 1792682da5a0SStefan Eßer "author": { 1793682da5a0SStefan Eßer "login": "gavinhoward" 1794682da5a0SStefan Eßer }, 1795682da5a0SStefan Eßer "authorAssociation": "OWNER", 1796682da5a0SStefan Eßer "body": "> i haven't been able to update for some time (5.0.1 was our last update!)\r\n\r\nOof...I'm sorry. Have I been missing communication with you?\r\n\r\n> because the tests fail in a weird way without much useful information. i've included the current failures for 6.2.2 below, for example.\r\n\r\nI agree; that is useless.\r\n\r\n> my guess is that this is something to do with Android using mksh as its /bin/sh. the interleaved output makes it appear like there might be some disagreement about job handling between bash and mksh?\r\n\r\nI think that's a great guess, and it's my guess too because the `tests/all.sh` script does use job control. I tried to write it according to the POSIX standard, but I suspect that job control is finicky in general.\r\n\r\n> are the current bc tests known to work on shells other than bash (and in particular mksh)? any ideas where i should look (or some kind of parallelism i can just disable)?\r\n\r\nThey are known to work on `tcsh` (FreeBSD), but other than that, `bash`, and `dash`, I don't know.\r\n\r\n> any ideas where i should look (or some kind of parallelism i can just disable)?\r\n\r\nTo disable parallelism, change the last line of `run-bc-tests-on-android.sh` to:\r\n\r\n```\r\nexec adb shell $dash_t /data/local/tmp/bc-tests/tests/all.sh -n bc 0 1 0 0 0 bc\r\n```\r\n\r\nI made two changes:\r\n\r\n* Most importantly, there is a `-n` option, which is how to disable parallelism in the `tests/all.sh` script.\r\n* I also added another 0 before the last `bc` because there are now five integer positional arguments.\r\n\r\nMy hope (and it is only a hope) is that that missing integer argument is what is causing the weird failures because the script would otherwise treat the last `bc` argument as the last integer argument and cause some sort of failure. `bash` fails because it has a non-integer argument, but I don't know how `mksh` would fail in that case.\r\n\r\nThe other reason there might be failures is because I added a test that is \"problematic.\" It's my test for `malloc()` failure, and unfortunately, it only works on Linux systems with swap disabled and some other changes. I don't think it would work on Android. I did add an option to disable that test in `tests/all.sh`; that is the missing integer option, in fact. But I don't think that's the reason because I added it in the fourth position (the last is whether to time the tests), so it is a 0 in your current script.\r\n\r\nRegardless, with the parallelism disabled, you should see exactly what test is failing, and you should be able to give me that output, even if either of those are not the reason for the failure.\r\n\r\nIn the meantime, I'll work on my end. Android is a first-class user of my `bc`, and I need to start treating it that way, including setting up a building and testing environment. I'll do my best to do so myself, but if possible, can you give me a helpful link?", 1797682da5a0SStefan Eßer "createdAt": "2023-01-12T04:16:14Z", 1798682da5a0SStefan Eßer "includesCreatedEdit": false, 1799682da5a0SStefan Eßer "isMinimized": false, 1800682da5a0SStefan Eßer "minimizedReason": "", 1801682da5a0SStefan Eßer "reactionGroups": [], 1802682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/61#issuecomment-1379791578", 1803682da5a0SStefan Eßer "viewerDidAuthor": true 1804682da5a0SStefan Eßer }, 1805682da5a0SStefan Eßer { 1806682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5STRaK", 1807682da5a0SStefan Eßer "author": { 1808682da5a0SStefan Eßer "login": "enh-google" 1809682da5a0SStefan Eßer }, 1810682da5a0SStefan Eßer "authorAssociation": "NONE", 1811682da5a0SStefan Eßer "body": "> > i haven't been able to update for some time (5.0.1 was our last update!)\r\n> \r\n> Oof...I'm sorry. Have I been missing communication with you?\r\n\r\nno, this is just the first time i've had time to actually look at the problem and file a bug!\r\n\r\n> > are the current bc tests known to work on shells other than bash (and in particular mksh)? any ideas where i should look (or some kind of parallelism i can just disable)?\r\n> \r\n> They are known to work on `tcsh` (FreeBSD), but other than that, `bash`, and `dash`, I don't know.\r\n\r\nyeah, there's been a lot about job control on the POSIX mailing list recently too.\r\n\r\n> > any ideas where i should look (or some kind of parallelism i can just disable)?\r\n> \r\n> To disable parallelism, change the last line of `run-bc-tests-on-android.sh` to:\r\n> \r\n> ```\r\n> exec adb shell $dash_t /data/local/tmp/bc-tests/tests/all.sh -n bc 0 1 0 0 0 bc\r\n> ```\r\n\r\nyes, that works. thanks!\r\n\r\n> In the meantime, I'll work on my end. Android is a first-class user of my `bc`, and I need to start treating it that way, including setting up a building and testing environment. I'll do my best to do so myself, but if possible, can you give me a helpful link?\r\n\r\nthere's https://source.android.com/docs/setup/build/building (and other pages about running), but it's a pretty large undertaking.\r\n\r\ntbh, i've only had two problems with bc updates:\r\n\r\n1. build changes such as the move from a shell script to a .c file for strgen. those are almost certainly easier for me to do anyway.\r\n2. test changes like this one. these have been harder for me to adapt to (although this is the first one i've failed with). there i'd say \"yes, please make sure you add options like `-n` when you make scary changes\" but one thing you haven't done but could that i think would help would be to fail hard --- making extra options optional (ho ho) makes my life harder. an error message would be more helpful, especially because changes to a row of 0s and 1s aren't necessarily immediately obvious!\r\n\r\nanyway, https://android-review.googlesource.com/c/platform/external/bc/+/2385321 works for me locally, so it should make it through CI. (and if it doesn't, that's probably a question for me anyway :-) )\r\n\r\nthanks!", 1812682da5a0SStefan Eßer "createdAt": "2023-01-12T17:51:06Z", 1813682da5a0SStefan Eßer "includesCreatedEdit": false, 1814682da5a0SStefan Eßer "isMinimized": false, 1815682da5a0SStefan Eßer "minimizedReason": "", 1816682da5a0SStefan Eßer "reactionGroups": [], 1817682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/61#issuecomment-1380783754", 1818682da5a0SStefan Eßer "viewerDidAuthor": false 1819682da5a0SStefan Eßer }, 1820682da5a0SStefan Eßer { 1821682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5SUcYn", 1822682da5a0SStefan Eßer "author": { 1823682da5a0SStefan Eßer "login": "gavinhoward" 1824682da5a0SStefan Eßer }, 1825682da5a0SStefan Eßer "authorAssociation": "OWNER", 1826682da5a0SStefan Eßer "body": "> there's https://source.android.com/docs/setup/build/building (and other pages about running), but it's a pretty large undertaking.\r\n\r\nI'll do my best anyway. Thank you!\r\n\r\n> tbh, i've only had two problems with bc updates\r\n>\r\n> 1. build changes such as the move from a shell script to a .c file for strgen. those are almost certainly easier for me to do anyway.\r\n> 2. test changes like this one. these have been harder for me to adapt to (although this is the first one i've failed with). there i'd say \"yes, please make sure you add options like -n when you make scary changes\" but one thing you haven't done but could that i think would help would be to fail hard --- making extra options optional (ho ho) makes my life harder. an error message would be more helpful, especially because changes to a row of 0s and 1s aren't necessarily immediately obvious!\r\n\r\nI think both of these are oversights on my part. I should add sections to my `NEWS.md` entry for each version about building, packaging, and testing changes. I've never thought they were necessary to list, but here is hard evidence that yes, they are.\r\n\r\nI apologize. I will do that going forward. And I also apologize for accidentally using you as my test subject while I learn how to run a project.\r\n\r\nNow, about making things fail hard: I agree that I messed up by making arguments optional.\r\n\r\nHowever, because I have downstream users that could depend on the options *staying* optional, I'm not sure I can make them required at this point.\r\n\r\nNevertheless, I think I can do the next best thing: do error checking on each argument. This would (hopefully) allow me to add the \"fail hard\" you want (and it's a good idea!) while not causing problems for other downstream users. (Unless they have bugs in their scripts, in which case, they should be fixed anyway.)\r\n\r\nI have implemented the ideas in d5e6dbdf328407bddf53efb655abe4b9c2fcb90f, so they'll be in the next release. I hope that helps.", 1827682da5a0SStefan Eßer "createdAt": "2023-01-12T23:06:57Z", 1828682da5a0SStefan Eßer "includesCreatedEdit": false, 1829682da5a0SStefan Eßer "isMinimized": false, 1830682da5a0SStefan Eßer "minimizedReason": "", 1831682da5a0SStefan Eßer "reactionGroups": [], 1832682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/61#issuecomment-1381090855", 1833682da5a0SStefan Eßer "viewerDidAuthor": true 1834682da5a0SStefan Eßer }, 1835682da5a0SStefan Eßer { 1836682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5SUv2M", 1837682da5a0SStefan Eßer "author": { 1838682da5a0SStefan Eßer "login": "enh-google" 1839682da5a0SStefan Eßer }, 1840682da5a0SStefan Eßer "authorAssociation": "NONE", 1841682da5a0SStefan Eßer "body": "> I apologize. I will do that going forward. And I also apologize for accidentally using you as my test subject while I learn how to run a project.\r\n\r\nno worries --- we're a bit of an outlier anyway. it's only when you get included in a \"ridiculously large\" meta-project (most commonly an operating system [or moral equivalent] such as android or chromium or whatever) that you tend to find people _not_ using your build system because the pain of having to duplicate your build system is still slightly less than the pain of trying to incorporate your build system into theirs!\r\n\r\n> Now, about making things fail hard: I agree that I messed up by making arguments optional.\r\n> \r\n> However, because I have downstream users that could depend on the options _staying_ optional, I'm not sure I can make them required at this point.\r\n> \r\n> Nevertheless, I think I can do the next best thing: do error checking on each argument. This would (hopefully) allow me to add the \"fail hard\" you want (and it's a good idea!) while not causing problems for other downstream users. (Unless they have bugs in their scripts, in which case, they should be fixed anyway.)\r\n\r\nyeah, maybe if you ever need more arguments, make them named? (like `--foo=bar` or `foo=bar`?)\r\n\r\n> I have implemented the ideas in [d5e6dbd](https://github.com/gavinhoward/bc/commit/d5e6dbdf328407bddf53efb655abe4b9c2fcb90f), so they'll be in the next release. I hope that helps.\r\n\r\nthanks. since you're obviously interested in the feedback, i'll try to let you know sooner next time i have an update where manual intervention is required, if i have any trouble :-)", 1842682da5a0SStefan Eßer "createdAt": "2023-01-13T00:55:27Z", 1843682da5a0SStefan Eßer "includesCreatedEdit": false, 1844682da5a0SStefan Eßer "isMinimized": false, 1845682da5a0SStefan Eßer "minimizedReason": "", 1846682da5a0SStefan Eßer "reactionGroups": [ 1847682da5a0SStefan Eßer { 1848682da5a0SStefan Eßer "content": "THUMBS_UP", 1849682da5a0SStefan Eßer "users": { 1850682da5a0SStefan Eßer "totalCount": 1 1851682da5a0SStefan Eßer } 1852682da5a0SStefan Eßer } 1853682da5a0SStefan Eßer ], 1854682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/61#issuecomment-1381170572", 1855682da5a0SStefan Eßer "viewerDidAuthor": false 1856682da5a0SStefan Eßer } 1857682da5a0SStefan Eßer ], 1858682da5a0SStefan Eßer "createdAt": "2023-01-12T01:26:05Z", 1859682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5bMSgX", 1860682da5a0SStefan Eßer "isPinned": false, 1861682da5a0SStefan Eßer "labels": [], 1862682da5a0SStefan Eßer "milestone": null, 1863682da5a0SStefan Eßer "number": 61, 1864682da5a0SStefan Eßer "projectCards": [], 1865682da5a0SStefan Eßer "projectItems": [], 1866682da5a0SStefan Eßer "reactionGroups": [], 1867682da5a0SStefan Eßer "state": "CLOSED", 1868682da5a0SStefan Eßer "stateReason": "COMPLETED", 1869682da5a0SStefan Eßer "title": "test failures on Android", 1870682da5a0SStefan Eßer "updatedAt": "2023-01-13T00:55:28Z", 1871682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/61" 1872682da5a0SStefan Eßer }, 1873682da5a0SStefan Eßer { 1874682da5a0SStefan Eßer "assignees": [], 1875682da5a0SStefan Eßer "author": { 1876682da5a0SStefan Eßer "id": "MDQ6VXNlcjUwNzg5NDY5", 1877682da5a0SStefan Eßer "is_bot": false, 1878682da5a0SStefan Eßer "login": "mcoret", 1879682da5a0SStefan Eßer "name": "" 1880682da5a0SStefan Eßer }, 1881682da5a0SStefan Eßer "body": "Hi,\r\nI'm trying to compile the project using Visual Studio 19, and I get the following error: `error C2065: 'SIGWINCH': undeclared identifier`. I cannot find such definition in MSVC. MSYS64 version compiles without problems.\r\nThank you!", 1882682da5a0SStefan Eßer "closed": true, 1883682da5a0SStefan Eßer "closedAt": "2022-12-06T15:40:35Z", 1884682da5a0SStefan Eßer "comments": [ 1885682da5a0SStefan Eßer { 1886682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5PvhRI", 1887682da5a0SStefan Eßer "author": { 1888682da5a0SStefan Eßer "login": "gavinhoward" 1889682da5a0SStefan Eßer }, 1890682da5a0SStefan Eßer "authorAssociation": "OWNER", 1891682da5a0SStefan Eßer "body": "What version are you trying to compile?\r\n\r\nIf it's the latest `master `, I have some changes there to fix a [FreeBSD bug][1] that I suspected would break the Windows build. I guess I was right.\r\n\r\nUsually, I wait until release time to fix Windows build bugs, but I'll boot Windows and push a fix later today if that will fix your problem. I'll also have a release coming soon with new stuff.\r\n\r\nI hope this helps.\r\n\r\n[1]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268076", 1892682da5a0SStefan Eßer "createdAt": "2022-12-05T17:55:25Z", 1893682da5a0SStefan Eßer "includesCreatedEdit": false, 1894682da5a0SStefan Eßer "isMinimized": false, 1895682da5a0SStefan Eßer "minimizedReason": "", 1896682da5a0SStefan Eßer "reactionGroups": [ 1897682da5a0SStefan Eßer { 1898682da5a0SStefan Eßer "content": "THUMBS_UP", 1899682da5a0SStefan Eßer "users": { 1900682da5a0SStefan Eßer "totalCount": 1 1901682da5a0SStefan Eßer } 1902682da5a0SStefan Eßer } 1903682da5a0SStefan Eßer ], 1904682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/60#issuecomment-1337857096", 1905682da5a0SStefan Eßer "viewerDidAuthor": true 1906682da5a0SStefan Eßer }, 1907682da5a0SStefan Eßer { 1908682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5PvnLD", 1909682da5a0SStefan Eßer "author": { 1910682da5a0SStefan Eßer "login": "mcoret" 1911682da5a0SStefan Eßer }, 1912682da5a0SStefan Eßer "authorAssociation": "NONE", 1913682da5a0SStefan Eßer "body": "Ah, OK, thank you again!\r\nYes, it's the `master` branch.", 1914682da5a0SStefan Eßer "createdAt": "2022-12-05T18:11:45Z", 1915682da5a0SStefan Eßer "includesCreatedEdit": false, 1916682da5a0SStefan Eßer "isMinimized": false, 1917682da5a0SStefan Eßer "minimizedReason": "", 1918682da5a0SStefan Eßer "reactionGroups": [], 1919682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/60#issuecomment-1337881283", 1920682da5a0SStefan Eßer "viewerDidAuthor": false 1921682da5a0SStefan Eßer }, 1922682da5a0SStefan Eßer { 1923682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5PxCgn", 1924682da5a0SStefan Eßer "author": { 1925682da5a0SStefan Eßer "login": "gavinhoward" 1926682da5a0SStefan Eßer }, 1927682da5a0SStefan Eßer "authorAssociation": "OWNER", 1928682da5a0SStefan Eßer "body": "I've pushed e1205eaccfa03a8dbbfd625af664f6b074b69a65 which should fix the problem for now. Can you confirm for me?", 1929682da5a0SStefan Eßer "createdAt": "2022-12-05T22:18:12Z", 1930682da5a0SStefan Eßer "includesCreatedEdit": false, 1931682da5a0SStefan Eßer "isMinimized": false, 1932682da5a0SStefan Eßer "minimizedReason": "", 1933682da5a0SStefan Eßer "reactionGroups": [], 1934682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/60#issuecomment-1338255399", 1935682da5a0SStefan Eßer "viewerDidAuthor": true 1936682da5a0SStefan Eßer }, 1937682da5a0SStefan Eßer { 1938682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5P2DiK", 1939682da5a0SStefan Eßer "author": { 1940682da5a0SStefan Eßer "login": "mcoret" 1941682da5a0SStefan Eßer }, 1942682da5a0SStefan Eßer "authorAssociation": "NONE", 1943682da5a0SStefan Eßer "body": "Hi, I can confirm, everything is OK!", 1944682da5a0SStefan Eßer "createdAt": "2022-12-06T15:40:34Z", 1945682da5a0SStefan Eßer "includesCreatedEdit": false, 1946682da5a0SStefan Eßer "isMinimized": false, 1947682da5a0SStefan Eßer "minimizedReason": "", 1948682da5a0SStefan Eßer "reactionGroups": [ 1949682da5a0SStefan Eßer { 1950682da5a0SStefan Eßer "content": "THUMBS_UP", 1951682da5a0SStefan Eßer "users": { 1952682da5a0SStefan Eßer "totalCount": 1 1953682da5a0SStefan Eßer } 1954682da5a0SStefan Eßer } 1955682da5a0SStefan Eßer ], 1956682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/60#issuecomment-1339570314", 1957682da5a0SStefan Eßer "viewerDidAuthor": false 1958682da5a0SStefan Eßer } 1959682da5a0SStefan Eßer ], 1960682da5a0SStefan Eßer "createdAt": "2022-12-05T17:00:01Z", 1961682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5YCR8i", 1962682da5a0SStefan Eßer "isPinned": false, 1963682da5a0SStefan Eßer "labels": [], 1964682da5a0SStefan Eßer "milestone": null, 1965682da5a0SStefan Eßer "number": 60, 1966682da5a0SStefan Eßer "projectCards": [], 1967682da5a0SStefan Eßer "projectItems": [], 1968682da5a0SStefan Eßer "reactionGroups": [], 1969682da5a0SStefan Eßer "state": "CLOSED", 1970682da5a0SStefan Eßer "stateReason": "COMPLETED", 1971682da5a0SStefan Eßer "title": "Windows MSVC compilation problem", 1972682da5a0SStefan Eßer "updatedAt": "2022-12-06T15:40:35Z", 1973682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/60" 1974682da5a0SStefan Eßer }, 1975682da5a0SStefan Eßer { 1976682da5a0SStefan Eßer "assignees": [], 1977682da5a0SStefan Eßer "author": { 1978682da5a0SStefan Eßer "id": "MDQ6VXNlcjQ2MTYwNzI3", 1979682da5a0SStefan Eßer "is_bot": false, 1980682da5a0SStefan Eßer "login": "firasuke", 1981682da5a0SStefan Eßer "name": "Firas Khalil Khana" 1982682da5a0SStefan Eßer }, 1983682da5a0SStefan Eßer "body": "As in the title, what's the difference between the two? and why is `--localedir` only mentioned in `build.md` and not when running `./configure --help`?", 1984682da5a0SStefan Eßer "closed": true, 1985682da5a0SStefan Eßer "closedAt": "2022-11-26T16:37:39Z", 1986682da5a0SStefan Eßer "comments": [ 1987682da5a0SStefan Eßer { 1988682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5PKKvC", 1989682da5a0SStefan Eßer "author": { 1990682da5a0SStefan Eßer "login": "gavinhoward" 1991682da5a0SStefan Eßer }, 1992682da5a0SStefan Eßer "authorAssociation": "OWNER", 1993682da5a0SStefan Eßer "body": "So I originally added `--localedir` because it was one of the standard GNU configure options. This was before I understood that GNU does *not* use POSIX locales.\r\n\r\n`--localedir` does not make sense when a program is using POSIX locales, so I've [removed references to `LOCALEDIR` and friends from everything][1].\r\n\r\nDoes that answer your question?\r\n\r\n[1]: https://github.com/gavinhoward/bc/commit/f4816582b1264b64566fc162ef6512601077cc63", 1994682da5a0SStefan Eßer "createdAt": "2022-11-26T15:24:49Z", 1995682da5a0SStefan Eßer "includesCreatedEdit": false, 1996682da5a0SStefan Eßer "isMinimized": false, 1997682da5a0SStefan Eßer "minimizedReason": "", 1998682da5a0SStefan Eßer "reactionGroups": [], 1999682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/58#issuecomment-1328065474", 2000682da5a0SStefan Eßer "viewerDidAuthor": true 2001682da5a0SStefan Eßer }, 2002682da5a0SStefan Eßer { 2003682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5PKLiA", 2004682da5a0SStefan Eßer "author": { 2005682da5a0SStefan Eßer "login": "firasuke" 2006682da5a0SStefan Eßer }, 2007682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2008682da5a0SStefan Eßer "body": "So `--localedir` shouldn't be used?", 2009682da5a0SStefan Eßer "createdAt": "2022-11-26T15:45:11Z", 2010682da5a0SStefan Eßer "includesCreatedEdit": false, 2011682da5a0SStefan Eßer "isMinimized": false, 2012682da5a0SStefan Eßer "minimizedReason": "", 2013682da5a0SStefan Eßer "reactionGroups": [], 2014682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/58#issuecomment-1328068736", 2015682da5a0SStefan Eßer "viewerDidAuthor": false 2016682da5a0SStefan Eßer }, 2017682da5a0SStefan Eßer { 2018682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5PKNBl", 2019682da5a0SStefan Eßer "author": { 2020682da5a0SStefan Eßer "login": "gavinhoward" 2021682da5a0SStefan Eßer }, 2022682da5a0SStefan Eßer "authorAssociation": "OWNER", 2023682da5a0SStefan Eßer "body": "You are correct; it should not be used.\r\n\r\nIt wasn't used to change anything in the Makefile, so it merely just didn't do anything. With the change I made, the configure script should more give an error if it is given.", 2024682da5a0SStefan Eßer "createdAt": "2022-11-26T16:24:25Z", 2025682da5a0SStefan Eßer "includesCreatedEdit": false, 2026682da5a0SStefan Eßer "isMinimized": false, 2027682da5a0SStefan Eßer "minimizedReason": "", 2028682da5a0SStefan Eßer "reactionGroups": [], 2029682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/58#issuecomment-1328074853", 2030682da5a0SStefan Eßer "viewerDidAuthor": true 2031682da5a0SStefan Eßer }, 2032682da5a0SStefan Eßer { 2033682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5PKNey", 2034682da5a0SStefan Eßer "author": { 2035682da5a0SStefan Eßer "login": "firasuke" 2036682da5a0SStefan Eßer }, 2037682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2038682da5a0SStefan Eßer "body": "Ok cool, thanks for clarifying. Closing..", 2039682da5a0SStefan Eßer "createdAt": "2022-11-26T16:37:19Z", 2040682da5a0SStefan Eßer "includesCreatedEdit": false, 2041682da5a0SStefan Eßer "isMinimized": false, 2042682da5a0SStefan Eßer "minimizedReason": "", 2043682da5a0SStefan Eßer "reactionGroups": [], 2044682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/58#issuecomment-1328076722", 2045682da5a0SStefan Eßer "viewerDidAuthor": false 2046682da5a0SStefan Eßer } 2047682da5a0SStefan Eßer ], 2048682da5a0SStefan Eßer "createdAt": "2022-11-26T10:36:13Z", 2049682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5XU90M", 2050682da5a0SStefan Eßer "isPinned": false, 2051682da5a0SStefan Eßer "labels": [], 2052682da5a0SStefan Eßer "milestone": null, 2053682da5a0SStefan Eßer "number": 58, 2054682da5a0SStefan Eßer "projectCards": [], 2055682da5a0SStefan Eßer "projectItems": [], 2056682da5a0SStefan Eßer "reactionGroups": [], 2057682da5a0SStefan Eßer "state": "CLOSED", 2058682da5a0SStefan Eßer "stateReason": "COMPLETED", 2059682da5a0SStefan Eßer "title": "Difference between --localedir and NLSPATH", 2060682da5a0SStefan Eßer "updatedAt": "2022-11-26T16:37:39Z", 2061682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/58" 2062682da5a0SStefan Eßer }, 2063682da5a0SStefan Eßer { 2064682da5a0SStefan Eßer "assignees": [], 2065682da5a0SStefan Eßer "author": { 2066682da5a0SStefan Eßer "id": "MDQ6VXNlcjQ2MTYwNzI3", 2067682da5a0SStefan Eßer "is_bot": false, 2068682da5a0SStefan Eßer "login": "firasuke", 2069682da5a0SStefan Eßer "name": "Firas Khalil Khana" 2070682da5a0SStefan Eßer }, 2071682da5a0SStefan Eßer "body": "Hey there,\r\n\r\nI've encountered an error recently where attempting to cross-compile `bc` while using `CC` as the cross compiler and `HOSTCC` as the compiler and when passing `--prefix=/usr` as a configuration flag.\r\n\r\nIt appears that `bc` is searching for header files in `$PREFIX/include`, although the help message mentions that these options control the installation directories of bc files and not the directories header/library files are searched for.\r\n\r\nThe error disappears when I remove the `--prefix=/usr` flag and the installation defaults to `/usr/local` as there's no way to change it because `--prefix` causes an error.\r\n\r\nThe error is:\r\n\r\n```C\r\n /usr/include/bits/types/time_t.h:8:9: error: unknown type name '__time64_t'\r\n 8 | typedef __time64_t time_t;\r\n | ^~~~~~~~~~\r\n```\r\n\r\nI don't recall changing the configuration flags I use for `bc` since version 4.0, did the behavior of these flags change?\r\n\r\nThanks in advance!", 2072682da5a0SStefan Eßer "closed": true, 2073682da5a0SStefan Eßer "closedAt": "2022-09-14T07:40:47Z", 2074682da5a0SStefan Eßer "comments": [ 2075682da5a0SStefan Eßer { 2076682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KF-Ax", 2077682da5a0SStefan Eßer "author": { 2078682da5a0SStefan Eßer "login": "gavinhoward" 2079682da5a0SStefan Eßer }, 2080682da5a0SStefan Eßer "authorAssociation": "OWNER", 2081682da5a0SStefan Eßer "body": "This looks like a bug in `configure.sh`. However, I need to know now to track it down.\r\n\r\nCan you tell me what the host system is, what the target system is, what the host compiler is, and what the target compiler is?", 2082682da5a0SStefan Eßer "createdAt": "2022-09-12T00:19:32Z", 2083682da5a0SStefan Eßer "includesCreatedEdit": false, 2084682da5a0SStefan Eßer "isMinimized": false, 2085682da5a0SStefan Eßer "minimizedReason": "", 2086682da5a0SStefan Eßer "reactionGroups": [], 2087682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1243078705", 2088682da5a0SStefan Eßer "viewerDidAuthor": true 2089682da5a0SStefan Eßer }, 2090682da5a0SStefan Eßer { 2091682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KGmRk", 2092682da5a0SStefan Eßer "author": { 2093682da5a0SStefan Eßer "login": "firasuke" 2094682da5a0SStefan Eßer }, 2095682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2096682da5a0SStefan Eßer "body": "The host system architecture tuple is `x86_64-unknown-linux-gnu` and the target architecture tuple is `x86_64-linux-musl`.\n\nThe host compiler `HOSTCC=gcc` and the target compiler is `CC=x86_64-linux-musl-gcc`.", 2097682da5a0SStefan Eßer "createdAt": "2022-09-12T05:35:13Z", 2098682da5a0SStefan Eßer "includesCreatedEdit": true, 2099682da5a0SStefan Eßer "isMinimized": false, 2100682da5a0SStefan Eßer "minimizedReason": "", 2101682da5a0SStefan Eßer "reactionGroups": [], 2102682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1243243620", 2103682da5a0SStefan Eßer "viewerDidAuthor": false 2104682da5a0SStefan Eßer }, 2105682da5a0SStefan Eßer { 2106682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KJkBF", 2107682da5a0SStefan Eßer "author": { 2108682da5a0SStefan Eßer "login": "firasuke" 2109682da5a0SStefan Eßer }, 2110682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2111682da5a0SStefan Eßer "body": "I thought this will might help narrow down the cause.\r\n\r\nThe last known working version that I tried using the same configuration flags and recipe file is version `5.2.5`, so my guess would be that the change happened after that release, possibly with the latest 6.0 release.", 2112682da5a0SStefan Eßer "createdAt": "2022-09-12T16:52:51Z", 2113682da5a0SStefan Eßer "includesCreatedEdit": false, 2114682da5a0SStefan Eßer "isMinimized": false, 2115682da5a0SStefan Eßer "minimizedReason": "", 2116682da5a0SStefan Eßer "reactionGroups": [], 2117682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1244020805", 2118682da5a0SStefan Eßer "viewerDidAuthor": false 2119682da5a0SStefan Eßer }, 2120682da5a0SStefan Eßer { 2121682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KKJKJ", 2122682da5a0SStefan Eßer "author": { 2123682da5a0SStefan Eßer "login": "firasuke" 2124682da5a0SStefan Eßer }, 2125682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2126682da5a0SStefan Eßer "body": "I think I found the [faulty commit](https://github.com/gavinhoward/bc/commit/c36b91b024e743edb45bf607cb3c2a9f28f0cc48).", 2127682da5a0SStefan Eßer "createdAt": "2022-09-12T19:05:19Z", 2128682da5a0SStefan Eßer "includesCreatedEdit": false, 2129682da5a0SStefan Eßer "isMinimized": false, 2130682da5a0SStefan Eßer "minimizedReason": "", 2131682da5a0SStefan Eßer "reactionGroups": [], 2132682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1244172937", 2133682da5a0SStefan Eßer "viewerDidAuthor": false 2134682da5a0SStefan Eßer }, 2135682da5a0SStefan Eßer { 2136682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KM5Kx", 2137682da5a0SStefan Eßer "author": { 2138682da5a0SStefan Eßer "login": "gavinhoward" 2139682da5a0SStefan Eßer }, 2140682da5a0SStefan Eßer "authorAssociation": "OWNER", 2141682da5a0SStefan Eßer "body": "I think you did too.\r\n\r\nThat commit appears to have been made as exploration; I should have added more to the commit message. Nevertheless, it appears to not be necessary anymore because I tested the FreeBSD port without those changes, and it worked fine.\r\n\r\nSo I committed 2b65eb21cfc575fdb04a090c687bd102a80cc43c to erase the rest of that commit. Can you pull and test it?", 2142682da5a0SStefan Eßer "createdAt": "2022-09-13T04:49:35Z", 2143682da5a0SStefan Eßer "includesCreatedEdit": false, 2144682da5a0SStefan Eßer "isMinimized": false, 2145682da5a0SStefan Eßer "minimizedReason": "", 2146682da5a0SStefan Eßer "reactionGroups": [], 2147682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1244893873", 2148682da5a0SStefan Eßer "viewerDidAuthor": true 2149682da5a0SStefan Eßer }, 2150682da5a0SStefan Eßer { 2151682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KP1Kn", 2152682da5a0SStefan Eßer "author": { 2153682da5a0SStefan Eßer "login": "firasuke" 2154682da5a0SStefan Eßer }, 2155682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2156682da5a0SStefan Eßer "body": "I can confirm that this indeed 2b65eb21cfc575fdb04a090c687bd102a80cc43c fixed the issue.\r\n\r\nCan you release this fix in a new bugfix version?", 2157682da5a0SStefan Eßer "createdAt": "2022-09-13T16:34:53Z", 2158682da5a0SStefan Eßer "includesCreatedEdit": false, 2159682da5a0SStefan Eßer "isMinimized": false, 2160682da5a0SStefan Eßer "minimizedReason": "", 2161682da5a0SStefan Eßer "reactionGroups": [], 2162682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1245663911", 2163682da5a0SStefan Eßer "viewerDidAuthor": false 2164682da5a0SStefan Eßer }, 2165682da5a0SStefan Eßer { 2166682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KQ_MW", 2167682da5a0SStefan Eßer "author": { 2168682da5a0SStefan Eßer "login": "gavinhoward" 2169682da5a0SStefan Eßer }, 2170682da5a0SStefan Eßer "authorAssociation": "OWNER", 2171682da5a0SStefan Eßer "body": "Wonderful!\r\n\r\nI'll release a bug fix version as soon as I have confirmation that this fix does not break FreeBSD. I hope that will be soon.", 2172682da5a0SStefan Eßer "createdAt": "2022-09-13T21:22:20Z", 2173682da5a0SStefan Eßer "includesCreatedEdit": false, 2174682da5a0SStefan Eßer "isMinimized": false, 2175682da5a0SStefan Eßer "minimizedReason": "", 2176682da5a0SStefan Eßer "reactionGroups": [], 2177682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1245967126", 2178682da5a0SStefan Eßer "viewerDidAuthor": true 2179682da5a0SStefan Eßer }, 2180682da5a0SStefan Eßer { 2181682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KShlk", 2182682da5a0SStefan Eßer "author": { 2183682da5a0SStefan Eßer "login": "gavinhoward" 2184682da5a0SStefan Eßer }, 2185682da5a0SStefan Eßer "authorAssociation": "OWNER", 2186682da5a0SStefan Eßer "body": "Release `6.0.3` is out. I hope it fixes your issue.\r\n\r\nIf it doesn't, please feel free to reopen.", 2187682da5a0SStefan Eßer "createdAt": "2022-09-14T07:40:47Z", 2188682da5a0SStefan Eßer "includesCreatedEdit": false, 2189682da5a0SStefan Eßer "isMinimized": false, 2190682da5a0SStefan Eßer "minimizedReason": "", 2191682da5a0SStefan Eßer "reactionGroups": [], 2192682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1246370148", 2193682da5a0SStefan Eßer "viewerDidAuthor": true 2194682da5a0SStefan Eßer }, 2195682da5a0SStefan Eßer { 2196682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5KV1-D", 2197682da5a0SStefan Eßer "author": { 2198682da5a0SStefan Eßer "login": "firasuke" 2199682da5a0SStefan Eßer }, 2200682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2201682da5a0SStefan Eßer "body": "Yup, the new release solved the issue.\r\n\r\nThanks for your time and effort!", 2202682da5a0SStefan Eßer "createdAt": "2022-09-14T19:59:10Z", 2203682da5a0SStefan Eßer "includesCreatedEdit": false, 2204682da5a0SStefan Eßer "isMinimized": false, 2205682da5a0SStefan Eßer "minimizedReason": "", 2206682da5a0SStefan Eßer "reactionGroups": [ 2207682da5a0SStefan Eßer { 2208682da5a0SStefan Eßer "content": "THUMBS_UP", 2209682da5a0SStefan Eßer "users": { 2210682da5a0SStefan Eßer "totalCount": 2 2211682da5a0SStefan Eßer } 2212682da5a0SStefan Eßer } 2213682da5a0SStefan Eßer ], 2214682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56#issuecomment-1247240067", 2215682da5a0SStefan Eßer "viewerDidAuthor": false 2216682da5a0SStefan Eßer } 2217682da5a0SStefan Eßer ], 2218682da5a0SStefan Eßer "createdAt": "2022-09-11T13:48:03Z", 2219682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5RmIzx", 2220682da5a0SStefan Eßer "isPinned": false, 2221682da5a0SStefan Eßer "labels": [], 2222682da5a0SStefan Eßer "milestone": null, 2223682da5a0SStefan Eßer "number": 56, 2224682da5a0SStefan Eßer "projectCards": [], 2225682da5a0SStefan Eßer "projectItems": [], 2226682da5a0SStefan Eßer "reactionGroups": [], 2227682da5a0SStefan Eßer "state": "CLOSED", 2228682da5a0SStefan Eßer "stateReason": "COMPLETED", 2229682da5a0SStefan Eßer "title": "Specifying `--prefix` when cross-compiling", 2230682da5a0SStefan Eßer "updatedAt": "2022-09-14T19:59:10Z", 2231682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/56" 2232682da5a0SStefan Eßer }, 2233682da5a0SStefan Eßer { 2234682da5a0SStefan Eßer "assignees": [], 2235682da5a0SStefan Eßer "author": { 2236682da5a0SStefan Eßer "id": "MDQ6VXNlcjEzNTQxNjk5", 2237682da5a0SStefan Eßer "is_bot": false, 2238682da5a0SStefan Eßer "login": "depler", 2239682da5a0SStefan Eßer "name": "" 2240682da5a0SStefan Eßer }, 2241682da5a0SStefan Eßer "body": "Hi! Here is my command line: `bc.exe --mathlib --leading-zeroes --no-line-length --scale=100`. \r\n\r\nLast argument is ignored by some reason. As I see it `--mathlib` is overriding `scale` value", 2242682da5a0SStefan Eßer "closed": true, 2243682da5a0SStefan Eßer "closedAt": "2022-08-30T15:32:46Z", 2244682da5a0SStefan Eßer "comments": [ 2245682da5a0SStefan Eßer { 2246682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5IMQzl", 2247682da5a0SStefan Eßer "author": { 2248682da5a0SStefan Eßer "login": "gavinhoward" 2249682da5a0SStefan Eßer }, 2250682da5a0SStefan Eßer "authorAssociation": "OWNER", 2251682da5a0SStefan Eßer "body": "Nice to have you back! Sorry that I rejected your original feature request for `--scale`; I was wrong to do so.\r\n\r\nI have reproduced the issue. I think you are right with what is happening.\r\n\r\nI'll get to work on fixing it.", 2252682da5a0SStefan Eßer "createdAt": "2022-08-10T19:29:45Z", 2253682da5a0SStefan Eßer "includesCreatedEdit": true, 2254682da5a0SStefan Eßer "isMinimized": false, 2255682da5a0SStefan Eßer "minimizedReason": "", 2256682da5a0SStefan Eßer "reactionGroups": [ 2257682da5a0SStefan Eßer { 2258682da5a0SStefan Eßer "content": "THUMBS_UP", 2259682da5a0SStefan Eßer "users": { 2260682da5a0SStefan Eßer "totalCount": 1 2261682da5a0SStefan Eßer } 2262682da5a0SStefan Eßer } 2263682da5a0SStefan Eßer ], 2264682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/55#issuecomment-1211174117", 2265682da5a0SStefan Eßer "viewerDidAuthor": true 2266682da5a0SStefan Eßer }, 2267682da5a0SStefan Eßer { 2268682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5IMfdA", 2269682da5a0SStefan Eßer "author": { 2270682da5a0SStefan Eßer "login": "gavinhoward" 2271682da5a0SStefan Eßer }, 2272682da5a0SStefan Eßer "authorAssociation": "OWNER", 2273682da5a0SStefan Eßer "body": "Stupid GitHub automatically closing issues.\r\n\r\nCan you please pull the latest `master` and check if it does what you want? In the meantime, I'll get started on the release process.", 2274682da5a0SStefan Eßer "createdAt": "2022-08-10T20:29:31Z", 2275682da5a0SStefan Eßer "includesCreatedEdit": true, 2276682da5a0SStefan Eßer "isMinimized": false, 2277682da5a0SStefan Eßer "minimizedReason": "", 2278682da5a0SStefan Eßer "reactionGroups": [], 2279682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/55#issuecomment-1211234112", 2280682da5a0SStefan Eßer "viewerDidAuthor": true 2281682da5a0SStefan Eßer }, 2282682da5a0SStefan Eßer { 2283682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5IMmDI", 2284682da5a0SStefan Eßer "author": { 2285682da5a0SStefan Eßer "login": "depler" 2286682da5a0SStefan Eßer }, 2287682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2288682da5a0SStefan Eßer "body": "Yep, it works now. Thanks!", 2289682da5a0SStefan Eßer "createdAt": "2022-08-10T20:55:12Z", 2290682da5a0SStefan Eßer "includesCreatedEdit": false, 2291682da5a0SStefan Eßer "isMinimized": false, 2292682da5a0SStefan Eßer "minimizedReason": "", 2293682da5a0SStefan Eßer "reactionGroups": [], 2294682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/55#issuecomment-1211261128", 2295682da5a0SStefan Eßer "viewerDidAuthor": false 2296682da5a0SStefan Eßer }, 2297682da5a0SStefan Eßer { 2298682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5IMmVH", 2299682da5a0SStefan Eßer "author": { 2300682da5a0SStefan Eßer "login": "gavinhoward" 2301682da5a0SStefan Eßer }, 2302682da5a0SStefan Eßer "authorAssociation": "OWNER", 2303682da5a0SStefan Eßer "body": "Yay! Version `6.0.2` should come out in the next day or two. Thank you for your report!", 2304682da5a0SStefan Eßer "createdAt": "2022-08-10T20:56:21Z", 2305682da5a0SStefan Eßer "includesCreatedEdit": false, 2306682da5a0SStefan Eßer "isMinimized": false, 2307682da5a0SStefan Eßer "minimizedReason": "", 2308682da5a0SStefan Eßer "reactionGroups": [], 2309682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/55#issuecomment-1211262279", 2310682da5a0SStefan Eßer "viewerDidAuthor": true 2311682da5a0SStefan Eßer }, 2312682da5a0SStefan Eßer { 2313682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5Iclau", 2314682da5a0SStefan Eßer "author": { 2315682da5a0SStefan Eßer "login": "gavinhoward" 2316682da5a0SStefan Eßer }, 2317682da5a0SStefan Eßer "authorAssociation": "OWNER", 2318682da5a0SStefan Eßer "body": "It's taking a little longer to get the release out. There are problems with FreeBSD. I need to fix those problems before I release. I'm sorry.\r\n\r\nI'll let you know when `6.0.2` is out.", 2319682da5a0SStefan Eßer "createdAt": "2022-08-15T17:31:11Z", 2320682da5a0SStefan Eßer "includesCreatedEdit": false, 2321682da5a0SStefan Eßer "isMinimized": false, 2322682da5a0SStefan Eßer "minimizedReason": "", 2323682da5a0SStefan Eßer "reactionGroups": [ 2324682da5a0SStefan Eßer { 2325682da5a0SStefan Eßer "content": "THUMBS_UP", 2326682da5a0SStefan Eßer "users": { 2327682da5a0SStefan Eßer "totalCount": 1 2328682da5a0SStefan Eßer } 2329682da5a0SStefan Eßer } 2330682da5a0SStefan Eßer ], 2331682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/55#issuecomment-1215452846", 2332682da5a0SStefan Eßer "viewerDidAuthor": true 2333682da5a0SStefan Eßer }, 2334682da5a0SStefan Eßer { 2335682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5JbEBZ", 2336682da5a0SStefan Eßer "author": { 2337682da5a0SStefan Eßer "login": "gavinhoward" 2338682da5a0SStefan Eßer }, 2339682da5a0SStefan Eßer "authorAssociation": "OWNER", 2340682da5a0SStefan Eßer "body": "`6.0.2` is out.\r\n\r\nThat should fix the issue for you. Feel free to reopen if it does not.", 2341682da5a0SStefan Eßer "createdAt": "2022-08-30T15:32:46Z", 2342682da5a0SStefan Eßer "includesCreatedEdit": false, 2343682da5a0SStefan Eßer "isMinimized": false, 2344682da5a0SStefan Eßer "minimizedReason": "", 2345682da5a0SStefan Eßer "reactionGroups": [ 2346682da5a0SStefan Eßer { 2347682da5a0SStefan Eßer "content": "ROCKET", 2348682da5a0SStefan Eßer "users": { 2349682da5a0SStefan Eßer "totalCount": 1 2350682da5a0SStefan Eßer } 2351682da5a0SStefan Eßer } 2352682da5a0SStefan Eßer ], 2353682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/55#issuecomment-1231831129", 2354682da5a0SStefan Eßer "viewerDidAuthor": true 2355682da5a0SStefan Eßer } 2356682da5a0SStefan Eßer ], 2357682da5a0SStefan Eßer "createdAt": "2022-08-10T19:09:02Z", 2358682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5Pk4LF", 2359682da5a0SStefan Eßer "isPinned": false, 2360682da5a0SStefan Eßer "labels": [], 2361682da5a0SStefan Eßer "milestone": null, 2362682da5a0SStefan Eßer "number": 55, 2363682da5a0SStefan Eßer "projectCards": [], 2364682da5a0SStefan Eßer "projectItems": [], 2365682da5a0SStefan Eßer "reactionGroups": [], 2366682da5a0SStefan Eßer "state": "CLOSED", 2367682da5a0SStefan Eßer "stateReason": "COMPLETED", 2368682da5a0SStefan Eßer "title": "Scale argument is ignored", 2369682da5a0SStefan Eßer "updatedAt": "2022-08-30T15:32:46Z", 2370682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/55" 2371682da5a0SStefan Eßer }, 2372682da5a0SStefan Eßer { 2373682da5a0SStefan Eßer "assignees": [], 2374682da5a0SStefan Eßer "author": { 2375682da5a0SStefan Eßer "id": "MDQ6VXNlcjk3Njg2MjI=", 2376682da5a0SStefan Eßer "is_bot": false, 2377682da5a0SStefan Eßer "login": "drawkula", 2378682da5a0SStefan Eßer "name": "yeti" 2379682da5a0SStefan Eßer }, 2380682da5a0SStefan Eßer "body": "Testing on Debian11...\r\n\r\nAfter configuring with `--prefix=/tmp/bctmpdir` and a successful build, `make install` fails:\r\n```\r\n/tmp/bc $ make install\r\n./scripts/locale_install.sh /usr/share/locale/%L/%N bc \r\nmkdir: cannot create directory ‘//usr/share/locale/de_DE.utf8’: Permission denied\r\nmkdir: cannot create directory ‘//usr/share/locale/de_DE.UTF-8’: Permission denied\r\nln: failed to create symbolic link '//usr/share/locale/de_DE.utf8/bc': No such file or directory\r\nmkdir: cannot create directory ‘//usr/share/locale/en_GB.utf8’: Permission denied\r\nln: failed to create symbolic link '//usr/share/locale/en_GB.utf8/bc': No such file or directory\r\nmkdir: cannot create directory ‘//usr/share/locale/en_US.utf8’: Permission denied\r\nln: failed to create symbolic link '//usr/share/locale/en_US.utf8/bc': No such file or directory\r\n./scripts/safe-install.sh -Dm644 manuals/bc.1 /tmp/bctmpdir/share/man/man1/bc.1\r\n./scripts/safe-install.sh -Dm644 manuals/dc.1 /tmp/bctmpdir/share/man/man1/dc.1\r\n./scripts/exec-install.sh /tmp/bctmpdir/bin \"\" \"/tmp/bc/bin\"\r\n```\r\nSome paths aren't adapted to fit the `--prefix=...` setting, some others fit the desired prefix setting.", 2381682da5a0SStefan Eßer "closed": true, 2382682da5a0SStefan Eßer "closedAt": "2022-07-23T16:23:02Z", 2383682da5a0SStefan Eßer "comments": [ 2384682da5a0SStefan Eßer { 2385682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HDhWA", 2386682da5a0SStefan Eßer "author": { 2387682da5a0SStefan Eßer "login": "gavinhoward" 2388682da5a0SStefan Eßer }, 2389682da5a0SStefan Eßer "authorAssociation": "OWNER", 2390682da5a0SStefan Eßer "body": "Thank you for this report. I will look into it. Thankfully, you caught me before I made a release, which is coming soon. This will be fixed in that release, even if I have to delay it.", 2391682da5a0SStefan Eßer "createdAt": "2022-07-22T02:07:54Z", 2392682da5a0SStefan Eßer "includesCreatedEdit": false, 2393682da5a0SStefan Eßer "isMinimized": false, 2394682da5a0SStefan Eßer "minimizedReason": "", 2395682da5a0SStefan Eßer "reactionGroups": [], 2396682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1192105344", 2397682da5a0SStefan Eßer "viewerDidAuthor": true 2398682da5a0SStefan Eßer }, 2399682da5a0SStefan Eßer { 2400682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HDm8x", 2401682da5a0SStefan Eßer "author": { 2402682da5a0SStefan Eßer "login": "gavinhoward" 2403682da5a0SStefan Eßer }, 2404682da5a0SStefan Eßer "authorAssociation": "OWNER", 2405682da5a0SStefan Eßer "body": "I noticed that you are installing `bc` in a temp directory. Is this a holding directory for a package, which will then install `bc` in its true place? Or is it something eke?\r\n\r\nI ask because locales are *special* (meaning, they are bad). They *must* be installed in one, and only one place. That place is `$NLSPATH`, which is actually a format string (the funny looking path after `./scripts/locale_install.sh` in your pasted output), but it usually points to `/usr/share/locale` with separate directories for every locale and then separate files in those directories for each program.\r\n\r\nIf locales are not installed properly in `$NLSPATH`, they will not work. This means that locales *have to* ignore `--prefix`. It's stupid, but that's POSIX for you. (This behavior is mandated by the POSIX standard.)\r\n\r\nSo if you are trying to install `bc` in `/tmp/bctmpdir`, unfortunately, you still have to install the locale files in `$NLSPATH`, anyway.\r\n\r\nIf you're installing in `/tmp/bctmpdir` to later be installed in its proper place by a package manager, then you can use the `$DESTDIR` environment variable when running `configure.sh`. If you do this, then locales will be installed at `$DESTDIR/$NLSPATH`, while other files will be installed at `$DESTDIR/$PREFIX/<whatever>`, where `$PREFIX` was passed in with `--prefix=$PREFIX`. Once that is done, and the package is made, then when users install the package, the locales will be put into the correct `$NLSPATH`.\r\n\r\nIf, however, you absolutely *must* override the behavior of installing the locales in `$NLSPATH`, you can set your own `$NLSPATH` when running `configure.sh`. The `%L` in the format specifier will be replaced by the locale name, and the `%N` will be replaced by the name of the program. You probably want both of those format specifiers in there.\r\n\r\nBut I do ***NOT*** recommend this because those installed locales will not work unless your `$NLSPATH` is set to that same format during in normal usage, which it appears it is not based on the format string in your output above.\r\n\r\nI hope that explains why things are the way they are. If that is the reason you are having problems, I am willing to help you figure out what would be best for you to do.\r\n\r\nHowever, if you still believe there is a bug in the install behavior, I'll do my best to find it.\r\n\r\nPlease let me know; I would like to help in any way I can.", 2406682da5a0SStefan Eßer "createdAt": "2022-07-22T02:57:50Z", 2407682da5a0SStefan Eßer "includesCreatedEdit": false, 2408682da5a0SStefan Eßer "isMinimized": false, 2409682da5a0SStefan Eßer "minimizedReason": "", 2410682da5a0SStefan Eßer "reactionGroups": [], 2411682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1192128305", 2412682da5a0SStefan Eßer "viewerDidAuthor": true 2413682da5a0SStefan Eßer }, 2414682da5a0SStefan Eßer { 2415682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HD5j0", 2416682da5a0SStefan Eßer "author": { 2417682da5a0SStefan Eßer "login": "drawkula" 2418682da5a0SStefan Eßer }, 2419682da5a0SStefan Eßer "authorAssociation": "NONE", 2420682da5a0SStefan Eßer "body": "I just repeated the build in `/tmp` for catching the log.\r\n\r\nOriginally I wanted to have `bc`/`dc` in an own \"bonsai subtree\" in `/opt/gavinhoward-bc` for not interfering with the default `dc`/`bc` of Debian and I typically manage `/opt` via an own account not being `root` (and not my standard user account). Had I tried this as `root` I easily could have overlooked the files falling out of that subtree. I think that may surprise other users in some other contexts too or will just drop the NLS files somewhere they do not even notice.\r\n\r\nMaybe dropping them into the desired prefix too and issuing a warning is an idea?\r\n\r\nWell, so far nobody complained (or noticed it?). Maybe I'm just the one with strange ideas...\r\n\r\nIn my case, if the NLS files are dropped into that subtree with the consequence that only english works, it would be good enough. And alternatively I can just deactivate NLS.\r\n\r\nThis issue just should be about the surprise that some paths don't respect `--prefix=...` and maybe about minimising surprises.\r\n\r\nAnd it definitely is not urgent.", 2421682da5a0SStefan Eßer "createdAt": "2022-07-22T05:42:58Z", 2422682da5a0SStefan Eßer "includesCreatedEdit": false, 2423682da5a0SStefan Eßer "isMinimized": false, 2424682da5a0SStefan Eßer "minimizedReason": "", 2425682da5a0SStefan Eßer "reactionGroups": [], 2426682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1192204532", 2427682da5a0SStefan Eßer "viewerDidAuthor": false 2428682da5a0SStefan Eßer }, 2429682da5a0SStefan Eßer { 2430682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HFHU6", 2431682da5a0SStefan Eßer "author": { 2432682da5a0SStefan Eßer "login": "gavinhoward" 2433682da5a0SStefan Eßer }, 2434682da5a0SStefan Eßer "authorAssociation": "OWNER", 2435682da5a0SStefan Eßer "body": "I agree that the surprise is bad.\r\n\r\nThe problem with putting them into the desired prefix is that they just won't work, and then I'll get bug reports about it because I know several distros that depend on the current behavior.\r\n\r\nI think there are two things I can do. First, I can ensure that locales are *not* installed if NLS is disabled. I did that. (It already did it right, thankfully.) Second, I can add warnings. I added 7 in https://github.com/gavinhoward/bc/commit/b78e8e4cfb03b1135f03426b2a4aaf848b6c4d5d.\r\n\r\nActually, there's a third thing I can do: I can have `configure.sh` output a warning to the user when the prefix does *not* match with `$NLSPATH`. That has been done in https://github.com/gavinhoward/bc/commit/6dccfebe21c62d1c043387590d23a91b8499f68c.\r\n\r\nWhat else would you like me to do or think that I should do?", 2436682da5a0SStefan Eßer "createdAt": "2022-07-22T12:29:32Z", 2437682da5a0SStefan Eßer "includesCreatedEdit": false, 2438682da5a0SStefan Eßer "isMinimized": false, 2439682da5a0SStefan Eßer "minimizedReason": "", 2440682da5a0SStefan Eßer "reactionGroups": [], 2441682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1192523066", 2442682da5a0SStefan Eßer "viewerDidAuthor": true 2443682da5a0SStefan Eßer }, 2444682da5a0SStefan Eßer { 2445682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HFar1", 2446682da5a0SStefan Eßer "author": { 2447682da5a0SStefan Eßer "login": "drawkula" 2448682da5a0SStefan Eßer }, 2449682da5a0SStefan Eßer "authorAssociation": "NONE", 2450682da5a0SStefan Eßer "body": "Thanks!\r\nThe warnings at configure-time really should help everyone.\r\n\r\nMay I add a tiny \"last\" (for in this issue) wish?\r\nCan the warning be reformatted to fit an 80 columns terminal?\r\nReformatted to be slightly below 80 CpL it will not even take more lines.\r\n", 2451682da5a0SStefan Eßer "createdAt": "2022-07-22T13:55:53Z", 2452682da5a0SStefan Eßer "includesCreatedEdit": false, 2453682da5a0SStefan Eßer "isMinimized": false, 2454682da5a0SStefan Eßer "minimizedReason": "", 2455682da5a0SStefan Eßer "reactionGroups": [], 2456682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1192602357", 2457682da5a0SStefan Eßer "viewerDidAuthor": false 2458682da5a0SStefan Eßer }, 2459682da5a0SStefan Eßer { 2460682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HF6Eg", 2461682da5a0SStefan Eßer "author": { 2462682da5a0SStefan Eßer "login": "gavinhoward" 2463682da5a0SStefan Eßer }, 2464682da5a0SStefan Eßer "authorAssociation": "OWNER", 2465682da5a0SStefan Eßer "body": "I meant to have 80 columns or less from the beginning. Whoops.\r\n\r\nIs https://github.com/gavinhoward/bc/commit/7cdddb8cc53fc1c08fe52fcf7fedbf7c84800c7c at 80 columns or less?", 2466682da5a0SStefan Eßer "createdAt": "2022-07-22T16:12:18Z", 2467682da5a0SStefan Eßer "includesCreatedEdit": false, 2468682da5a0SStefan Eßer "isMinimized": false, 2469682da5a0SStefan Eßer "minimizedReason": "", 2470682da5a0SStefan Eßer "reactionGroups": [], 2471682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1192730912", 2472682da5a0SStefan Eßer "viewerDidAuthor": true 2473682da5a0SStefan Eßer }, 2474682da5a0SStefan Eßer { 2475682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HGEY4", 2476682da5a0SStefan Eßer "author": { 2477682da5a0SStefan Eßer "login": "drawkula" 2478682da5a0SStefan Eßer }, 2479682da5a0SStefan Eßer "authorAssociation": "NONE", 2480682da5a0SStefan Eßer "body": "Without changing the indentation 77 chars are the maximal sub-80 width that fits.\r\n```\r\n*****************************************************************************\r\n\r\nWARNING: Locales will *NOT* be installed in $PREFIX (/opt/gavinhoward-bc).\r\n\r\n This is because they *MUST* be installed at a fixed location to even\r\n work, and that fixed location is $NLSPATH ().\r\n\r\n This location is *outside* of $PREFIX. If you do not wish to install\r\n locales outside of $PREFIX, you must disable NLS with the -N or the\r\n --disable-nls options.\r\n\r\n The author apologizes for the inconvenience, but the need to install\r\n the locales at a fixed location is mandated by POSIX. It is not\r\n possible for the author to change.\r\n\r\n*****************************************************************************\r\n```\r\n", 2481682da5a0SStefan Eßer "createdAt": "2022-07-22T17:05:23Z", 2482682da5a0SStefan Eßer "includesCreatedEdit": true, 2483682da5a0SStefan Eßer "isMinimized": false, 2484682da5a0SStefan Eßer "minimizedReason": "", 2485682da5a0SStefan Eßer "reactionGroups": [], 2486682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1192773176", 2487682da5a0SStefan Eßer "viewerDidAuthor": false 2488682da5a0SStefan Eßer }, 2489682da5a0SStefan Eßer { 2490682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HHHpw", 2491682da5a0SStefan Eßer "author": { 2492682da5a0SStefan Eßer "login": "gavinhoward" 2493682da5a0SStefan Eßer }, 2494682da5a0SStefan Eßer "authorAssociation": "OWNER", 2495682da5a0SStefan Eßer "body": "Whoops. How does https://github.com/gavinhoward/bc/commit/6035d39a68e6078f578823fe407892930fe0d955 look?", 2496682da5a0SStefan Eßer "createdAt": "2022-07-23T03:21:18Z", 2497682da5a0SStefan Eßer "includesCreatedEdit": false, 2498682da5a0SStefan Eßer "isMinimized": false, 2499682da5a0SStefan Eßer "minimizedReason": "", 2500682da5a0SStefan Eßer "reactionGroups": [], 2501682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1193048688", 2502682da5a0SStefan Eßer "viewerDidAuthor": true 2503682da5a0SStefan Eßer }, 2504682da5a0SStefan Eßer { 2505682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HHS2n", 2506682da5a0SStefan Eßer "author": { 2507682da5a0SStefan Eßer "login": "drawkula" 2508682da5a0SStefan Eßer }, 2509682da5a0SStefan Eßer "authorAssociation": "NONE", 2510682da5a0SStefan Eßer "body": "Looks good:\r\n\r\n\r\n\r\nWould it make sense not to show it when `configure` is run with `--disable-nls`?", 2511682da5a0SStefan Eßer "createdAt": "2022-07-23T09:27:41Z", 2512682da5a0SStefan Eßer "includesCreatedEdit": false, 2513682da5a0SStefan Eßer "isMinimized": false, 2514682da5a0SStefan Eßer "minimizedReason": "", 2515682da5a0SStefan Eßer "reactionGroups": [], 2516682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1193094567", 2517682da5a0SStefan Eßer "viewerDidAuthor": false 2518682da5a0SStefan Eßer }, 2519682da5a0SStefan Eßer { 2520682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HHW-X", 2521682da5a0SStefan Eßer "author": { 2522682da5a0SStefan Eßer "login": "gavinhoward" 2523682da5a0SStefan Eßer }, 2524682da5a0SStefan Eßer "authorAssociation": "OWNER", 2525682da5a0SStefan Eßer "body": "Whoops.\r\n\r\nYou are absolutely right, of course. Does https://github.com/gavinhoward/bc/commit/8d8935e44bba15e96e8db83536ba54cd1deab398 fix the issue for you?", 2526682da5a0SStefan Eßer "createdAt": "2022-07-23T11:39:44Z", 2527682da5a0SStefan Eßer "includesCreatedEdit": false, 2528682da5a0SStefan Eßer "isMinimized": false, 2529682da5a0SStefan Eßer "minimizedReason": "", 2530682da5a0SStefan Eßer "reactionGroups": [], 2531682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1193111447", 2532682da5a0SStefan Eßer "viewerDidAuthor": true 2533682da5a0SStefan Eßer }, 2534682da5a0SStefan Eßer { 2535682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HHXEq", 2536682da5a0SStefan Eßer "author": { 2537682da5a0SStefan Eßer "login": "drawkula" 2538682da5a0SStefan Eßer }, 2539682da5a0SStefan Eßer "authorAssociation": "NONE", 2540682da5a0SStefan Eßer "body": "Perfect!\r\nThanks!", 2541682da5a0SStefan Eßer "createdAt": "2022-07-23T11:43:19Z", 2542682da5a0SStefan Eßer "includesCreatedEdit": false, 2543682da5a0SStefan Eßer "isMinimized": false, 2544682da5a0SStefan Eßer "minimizedReason": "", 2545682da5a0SStefan Eßer "reactionGroups": [], 2546682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1193111850", 2547682da5a0SStefan Eßer "viewerDidAuthor": false 2548682da5a0SStefan Eßer }, 2549682da5a0SStefan Eßer { 2550682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5HHgig", 2551682da5a0SStefan Eßer "author": { 2552682da5a0SStefan Eßer "login": "gavinhoward" 2553682da5a0SStefan Eßer }, 2554682da5a0SStefan Eßer "authorAssociation": "OWNER", 2555682da5a0SStefan Eßer "body": "You're welcome.\r\n\r\nSince it appears this issue has been resolved, I'm going to close it, but if you disagree, feel free to reopen it.", 2556682da5a0SStefan Eßer "createdAt": "2022-07-23T16:23:02Z", 2557682da5a0SStefan Eßer "includesCreatedEdit": false, 2558682da5a0SStefan Eßer "isMinimized": false, 2559682da5a0SStefan Eßer "minimizedReason": "", 2560682da5a0SStefan Eßer "reactionGroups": [ 2561682da5a0SStefan Eßer { 2562682da5a0SStefan Eßer "content": "THUMBS_UP", 2563682da5a0SStefan Eßer "users": { 2564682da5a0SStefan Eßer "totalCount": 1 2565682da5a0SStefan Eßer } 2566682da5a0SStefan Eßer } 2567682da5a0SStefan Eßer ], 2568682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53#issuecomment-1193150624", 2569682da5a0SStefan Eßer "viewerDidAuthor": true 2570682da5a0SStefan Eßer } 2571682da5a0SStefan Eßer ], 2572682da5a0SStefan Eßer "createdAt": "2022-07-21T21:12:21Z", 2573682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5OTyTx", 2574682da5a0SStefan Eßer "isPinned": false, 2575682da5a0SStefan Eßer "labels": [], 2576682da5a0SStefan Eßer "milestone": null, 2577682da5a0SStefan Eßer "number": 53, 2578682da5a0SStefan Eßer "projectCards": [], 2579682da5a0SStefan Eßer "projectItems": [], 2580682da5a0SStefan Eßer "reactionGroups": [], 2581682da5a0SStefan Eßer "state": "CLOSED", 2582682da5a0SStefan Eßer "stateReason": "COMPLETED", 2583682da5a0SStefan Eßer "title": "--prefix=... is partially ignored?", 2584682da5a0SStefan Eßer "updatedAt": "2022-07-23T16:23:02Z", 2585682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/53" 2586682da5a0SStefan Eßer }, 2587682da5a0SStefan Eßer { 2588682da5a0SStefan Eßer "assignees": [], 2589682da5a0SStefan Eßer "author": { 2590682da5a0SStefan Eßer "id": "MDQ6VXNlcjQ2MTYwNzI3", 2591682da5a0SStefan Eßer "is_bot": false, 2592682da5a0SStefan Eßer "login": "firasuke", 2593682da5a0SStefan Eßer "name": "Firas Khalil Khana" 2594682da5a0SStefan Eßer }, 2595682da5a0SStefan Eßer "body": "Is it possible to provide release tarballs in `gzip` format as well for limited systems?\r\n\r\nThanks!", 2596682da5a0SStefan Eßer "closed": true, 2597682da5a0SStefan Eßer "closedAt": "2022-04-30T22:23:08Z", 2598682da5a0SStefan Eßer "comments": [ 2599682da5a0SStefan Eßer { 2600682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5CZjfO", 2601682da5a0SStefan Eßer "author": { 2602682da5a0SStefan Eßer "login": "gavinhoward" 2603682da5a0SStefan Eßer }, 2604682da5a0SStefan Eßer "authorAssociation": "OWNER", 2605682da5a0SStefan Eßer "body": "Yes, absolutely.\r\n\r\nJust to be sure, you mean `.tar.gz` files, correct?", 2606682da5a0SStefan Eßer "createdAt": "2022-04-30T14:08:36Z", 2607682da5a0SStefan Eßer "includesCreatedEdit": false, 2608682da5a0SStefan Eßer "isMinimized": false, 2609682da5a0SStefan Eßer "minimizedReason": "", 2610682da5a0SStefan Eßer "reactionGroups": [], 2611682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/52#issuecomment-1113995214", 2612682da5a0SStefan Eßer "viewerDidAuthor": true 2613682da5a0SStefan Eßer }, 2614682da5a0SStefan Eßer { 2615682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5CZoVz", 2616682da5a0SStefan Eßer "author": { 2617682da5a0SStefan Eßer "login": "firasuke" 2618682da5a0SStefan Eßer }, 2619682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2620682da5a0SStefan Eßer "body": "Yup, if possible.", 2621682da5a0SStefan Eßer "createdAt": "2022-04-30T16:25:20Z", 2622682da5a0SStefan Eßer "includesCreatedEdit": false, 2623682da5a0SStefan Eßer "isMinimized": false, 2624682da5a0SStefan Eßer "minimizedReason": "", 2625682da5a0SStefan Eßer "reactionGroups": [], 2626682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/52#issuecomment-1114015091", 2627682da5a0SStefan Eßer "viewerDidAuthor": false 2628682da5a0SStefan Eßer }, 2629682da5a0SStefan Eßer { 2630682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5CZov4", 2631682da5a0SStefan Eßer "author": { 2632682da5a0SStefan Eßer "login": "gavinhoward" 2633682da5a0SStefan Eßer }, 2634682da5a0SStefan Eßer "authorAssociation": "OWNER", 2635682da5a0SStefan Eßer "body": "Not a problem. I have a new release coming out soon, and I will be sure to have `.tar.gz` files for it, as well as every future release.", 2636682da5a0SStefan Eßer "createdAt": "2022-04-30T16:38:05Z", 2637682da5a0SStefan Eßer "includesCreatedEdit": false, 2638682da5a0SStefan Eßer "isMinimized": false, 2639682da5a0SStefan Eßer "minimizedReason": "", 2640682da5a0SStefan Eßer "reactionGroups": [], 2641682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/52#issuecomment-1114016760", 2642682da5a0SStefan Eßer "viewerDidAuthor": true 2643682da5a0SStefan Eßer }, 2644682da5a0SStefan Eßer { 2645682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5CZ0M3", 2646682da5a0SStefan Eßer "author": { 2647682da5a0SStefan Eßer "login": "firasuke" 2648682da5a0SStefan Eßer }, 2649682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2650682da5a0SStefan Eßer "body": "Thanks!\r\n\r\nClosing this now.", 2651682da5a0SStefan Eßer "createdAt": "2022-04-30T22:23:08Z", 2652682da5a0SStefan Eßer "includesCreatedEdit": false, 2653682da5a0SStefan Eßer "isMinimized": false, 2654682da5a0SStefan Eßer "minimizedReason": "", 2655682da5a0SStefan Eßer "reactionGroups": [], 2656682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/52#issuecomment-1114063671", 2657682da5a0SStefan Eßer "viewerDidAuthor": false 2658682da5a0SStefan Eßer } 2659682da5a0SStefan Eßer ], 2660682da5a0SStefan Eßer "createdAt": "2022-04-30T10:20:12Z", 2661682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5I0yHJ", 2662682da5a0SStefan Eßer "isPinned": false, 2663682da5a0SStefan Eßer "labels": [], 2664682da5a0SStefan Eßer "milestone": null, 2665682da5a0SStefan Eßer "number": 52, 2666682da5a0SStefan Eßer "projectCards": [], 2667682da5a0SStefan Eßer "projectItems": [], 2668682da5a0SStefan Eßer "reactionGroups": [], 2669682da5a0SStefan Eßer "state": "CLOSED", 2670682da5a0SStefan Eßer "stateReason": "COMPLETED", 2671682da5a0SStefan Eßer "title": "Release tarballs in `gzip` format", 2672682da5a0SStefan Eßer "updatedAt": "2022-04-30T22:23:08Z", 2673682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/52" 2674682da5a0SStefan Eßer }, 2675682da5a0SStefan Eßer { 2676682da5a0SStefan Eßer "assignees": [], 2677682da5a0SStefan Eßer "author": { 2678682da5a0SStefan Eßer "id": "MDQ6VXNlcjg4MjY0OTc5", 2679682da5a0SStefan Eßer "is_bot": false, 2680682da5a0SStefan Eßer "login": "DelilahHoare", 2681682da5a0SStefan Eßer "name": "Delilah Hoare" 2682682da5a0SStefan Eßer }, 2683682da5a0SStefan Eßer "body": "Comments delimited by `/* */` and spanning multiple lines in files result in `Parse error: comment end cannot be found`. Such comments are accepted into stdin.", 2684682da5a0SStefan Eßer "closed": true, 2685682da5a0SStefan Eßer "closedAt": "2022-03-05T04:53:19Z", 2686682da5a0SStefan Eßer "comments": [ 2687682da5a0SStefan Eßer { 2688682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4_JAlq", 2689682da5a0SStefan Eßer "author": { 2690682da5a0SStefan Eßer "login": "gavinhoward" 2691682da5a0SStefan Eßer }, 2692682da5a0SStefan Eßer "authorAssociation": "OWNER", 2693682da5a0SStefan Eßer "body": "That does sound like a bug.\r\n\r\nCould you send me the output of `bc --version`? Also, could you send me one or more files that cause it to happen?", 2694682da5a0SStefan Eßer "createdAt": "2022-03-04T16:41:15Z", 2695682da5a0SStefan Eßer "includesCreatedEdit": false, 2696682da5a0SStefan Eßer "isMinimized": false, 2697682da5a0SStefan Eßer "minimizedReason": "", 2698682da5a0SStefan Eßer "reactionGroups": [], 2699682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50#issuecomment-1059326314", 2700682da5a0SStefan Eßer "viewerDidAuthor": true 2701682da5a0SStefan Eßer }, 2702682da5a0SStefan Eßer { 2703682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4_KFB6", 2704682da5a0SStefan Eßer "author": { 2705682da5a0SStefan Eßer "login": "DelilahHoare" 2706682da5a0SStefan Eßer }, 2707682da5a0SStefan Eßer "authorAssociation": "NONE", 2708682da5a0SStefan Eßer "body": "I should clarify that this only happens when using the `-f` flag; passing the file as an argument without that flag works.\r\n\r\n```\r\nbc 5.2.2\r\nCopyright (c) 2018-2021 Gavin D. Howard and contributors\r\nReport bugs at: https://git.yzena.com/gavin/bc\r\n\r\nThis is free software with ABSOLUTELY NO WARRANTY.\r\n```\r\n\r\n[testoneline.bc](https://github.com/gavinhoward/bc/files/8189282/testoneline.bc.txt) works,\r\n[testmultiline.bc](https://github.com/gavinhoward/bc/files/8189281/testmultiline.bc.txt) doesn't. \r\n[timeconst.bc](https://github.com/gavinhoward/bc/files/8189283/timeconst.bc.txt) comes from the linux source tree and also doesn't work.\r\n\r\n", 2709682da5a0SStefan Eßer "createdAt": "2022-03-04T23:39:16Z", 2710682da5a0SStefan Eßer "includesCreatedEdit": true, 2711682da5a0SStefan Eßer "isMinimized": false, 2712682da5a0SStefan Eßer "minimizedReason": "", 2713682da5a0SStefan Eßer "reactionGroups": [], 2714682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50#issuecomment-1059606650", 2715682da5a0SStefan Eßer "viewerDidAuthor": false 2716682da5a0SStefan Eßer }, 2717682da5a0SStefan Eßer { 2718682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4_KNpz", 2719682da5a0SStefan Eßer "author": { 2720682da5a0SStefan Eßer "login": "gavinhoward" 2721682da5a0SStefan Eßer }, 2722682da5a0SStefan Eßer "authorAssociation": "OWNER", 2723682da5a0SStefan Eßer "body": "Thank you. I have confirmed the bug, and I'm working on debugging and a fix.", 2724682da5a0SStefan Eßer "createdAt": "2022-03-05T01:30:06Z", 2725682da5a0SStefan Eßer "includesCreatedEdit": false, 2726682da5a0SStefan Eßer "isMinimized": false, 2727682da5a0SStefan Eßer "minimizedReason": "", 2728682da5a0SStefan Eßer "reactionGroups": [], 2729682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50#issuecomment-1059641971", 2730682da5a0SStefan Eßer "viewerDidAuthor": true 2731682da5a0SStefan Eßer }, 2732682da5a0SStefan Eßer { 2733682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4_KWij", 2734682da5a0SStefan Eßer "author": { 2735682da5a0SStefan Eßer "login": "gavinhoward" 2736682da5a0SStefan Eßer }, 2737682da5a0SStefan Eßer "authorAssociation": "OWNER", 2738682da5a0SStefan Eßer "body": "Okay, I have found the problem and have committed a fix in d778d0b9177c75f207dca16b57974edbb5f9e15c and dbc4dc4c4e94712fa1d4800c81e84d6da18f5188.\r\n\r\nCould you pull and test the updated commits for me, to make sure they work for you? In the meantime, I'll prepare a release with the fix.", 2739682da5a0SStefan Eßer "createdAt": "2022-03-05T04:03:17Z", 2740682da5a0SStefan Eßer "includesCreatedEdit": false, 2741682da5a0SStefan Eßer "isMinimized": false, 2742682da5a0SStefan Eßer "minimizedReason": "", 2743682da5a0SStefan Eßer "reactionGroups": [], 2744682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50#issuecomment-1059678371", 2745682da5a0SStefan Eßer "viewerDidAuthor": true 2746682da5a0SStefan Eßer }, 2747682da5a0SStefan Eßer { 2748682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4_KYdX", 2749682da5a0SStefan Eßer "author": { 2750682da5a0SStefan Eßer "login": "DelilahHoare" 2751682da5a0SStefan Eßer }, 2752682da5a0SStefan Eßer "authorAssociation": "NONE", 2753682da5a0SStefan Eßer "body": "It's working, thanks!", 2754682da5a0SStefan Eßer "createdAt": "2022-03-05T04:53:19Z", 2755682da5a0SStefan Eßer "includesCreatedEdit": false, 2756682da5a0SStefan Eßer "isMinimized": false, 2757682da5a0SStefan Eßer "minimizedReason": "", 2758682da5a0SStefan Eßer "reactionGroups": [], 2759682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50#issuecomment-1059686231", 2760682da5a0SStefan Eßer "viewerDidAuthor": false 2761682da5a0SStefan Eßer }, 2762682da5a0SStefan Eßer { 2763682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4_KYmm", 2764682da5a0SStefan Eßer "author": { 2765682da5a0SStefan Eßer "login": "gavinhoward" 2766682da5a0SStefan Eßer }, 2767682da5a0SStefan Eßer "authorAssociation": "OWNER", 2768682da5a0SStefan Eßer "body": "Great! I'll have version `5.2.3` out in a few days.", 2769682da5a0SStefan Eßer "createdAt": "2022-03-05T04:56:48Z", 2770682da5a0SStefan Eßer "includesCreatedEdit": false, 2771682da5a0SStefan Eßer "isMinimized": false, 2772682da5a0SStefan Eßer "minimizedReason": "", 2773682da5a0SStefan Eßer "reactionGroups": [], 2774682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50#issuecomment-1059686822", 2775682da5a0SStefan Eßer "viewerDidAuthor": true 2776682da5a0SStefan Eßer }, 2777682da5a0SStefan Eßer { 2778682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4_QD5x", 2779682da5a0SStefan Eßer "author": { 2780682da5a0SStefan Eßer "login": "gavinhoward" 2781682da5a0SStefan Eßer }, 2782682da5a0SStefan Eßer "authorAssociation": "OWNER", 2783682da5a0SStefan Eßer "body": "`5.2.3` is out!", 2784682da5a0SStefan Eßer "createdAt": "2022-03-07T21:53:42Z", 2785682da5a0SStefan Eßer "includesCreatedEdit": false, 2786682da5a0SStefan Eßer "isMinimized": false, 2787682da5a0SStefan Eßer "minimizedReason": "", 2788682da5a0SStefan Eßer "reactionGroups": [], 2789682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50#issuecomment-1061174897", 2790682da5a0SStefan Eßer "viewerDidAuthor": true 2791682da5a0SStefan Eßer } 2792682da5a0SStefan Eßer ], 2793682da5a0SStefan Eßer "createdAt": "2022-03-04T00:24:45Z", 2794682da5a0SStefan Eßer "id": "I_kwDOCL0xJc5FFokp", 2795682da5a0SStefan Eßer "isPinned": false, 2796682da5a0SStefan Eßer "labels": [], 2797682da5a0SStefan Eßer "milestone": null, 2798682da5a0SStefan Eßer "number": 50, 2799682da5a0SStefan Eßer "projectCards": [], 2800682da5a0SStefan Eßer "projectItems": [], 2801682da5a0SStefan Eßer "reactionGroups": [], 2802682da5a0SStefan Eßer "state": "CLOSED", 2803682da5a0SStefan Eßer "stateReason": "COMPLETED", 2804682da5a0SStefan Eßer "title": "Multi-line comments in files result in parse error", 2805682da5a0SStefan Eßer "updatedAt": "2022-03-07T21:53:42Z", 2806682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/50" 2807682da5a0SStefan Eßer }, 2808682da5a0SStefan Eßer { 2809682da5a0SStefan Eßer "assignees": [], 2810682da5a0SStefan Eßer "author": { 2811682da5a0SStefan Eßer "id": "MDQ6VXNlcjI3OTUyNTcx", 2812682da5a0SStefan Eßer "is_bot": false, 2813682da5a0SStefan Eßer "login": "oguz-ismail", 2814682da5a0SStefan Eßer "name": "" 2815682da5a0SStefan Eßer }, 2816682da5a0SStefan Eßer "body": "Observe:\r\n```\r\n$ bc -s <<x\r\ndefine a(){\r\n}define b(){\r\n}\r\nx\r\n\r\nParse error: bad token\r\n <stdin>:2\r\n\r\n$ bc -s <<x\r\ndefine a(){\r\n};define b(){\r\n}\r\nx\r\n$\r\n```\r\nAs per POSIX, the first one should work fine, and the second should fail as a newline is required after a `semicolon_list` production. No other bc implementation exhibits this behavior except busybox bc, which is a fork of this one if I recall correctly.", 2817682da5a0SStefan Eßer "closed": true, 2818682da5a0SStefan Eßer "closedAt": "2021-11-23T05:42:14Z", 2819682da5a0SStefan Eßer "comments": [ 2820682da5a0SStefan Eßer { 2821682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc46Kepe", 2822682da5a0SStefan Eßer "author": { 2823682da5a0SStefan Eßer "login": "gavinhoward" 2824682da5a0SStefan Eßer }, 2825682da5a0SStefan Eßer "authorAssociation": "OWNER", 2826682da5a0SStefan Eßer "body": "This has (hopefully) been fixed in commits 5b2fe303c8c7d85d299b6576f62c8191e492fdb0, 81f838f657a2b942a76c1240d1107a4d358fd2a2, and 9ffdd5ec6915bc01fa0ceb7f5b5e9e4327615044.\r\n\r\nCould you please pull down those commits and test? If they work, I'll release an update soon.", 2827682da5a0SStefan Eßer "createdAt": "2021-11-22T18:57:57Z", 2828682da5a0SStefan Eßer "includesCreatedEdit": false, 2829682da5a0SStefan Eßer "isMinimized": false, 2830682da5a0SStefan Eßer "minimizedReason": "", 2831682da5a0SStefan Eßer "reactionGroups": [], 2832682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/48#issuecomment-975825502", 2833682da5a0SStefan Eßer "viewerDidAuthor": true 2834682da5a0SStefan Eßer }, 2835682da5a0SStefan Eßer { 2836682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc46KhAF", 2837682da5a0SStefan Eßer "author": { 2838682da5a0SStefan Eßer "login": "gavinhoward" 2839682da5a0SStefan Eßer }, 2840682da5a0SStefan Eßer "authorAssociation": "OWNER", 2841682da5a0SStefan Eßer "body": "Oh, I meant to say that I looked at the standard, and I agree with you on the interpretation of it.", 2842682da5a0SStefan Eßer "createdAt": "2021-11-22T19:09:25Z", 2843682da5a0SStefan Eßer "includesCreatedEdit": false, 2844682da5a0SStefan Eßer "isMinimized": false, 2845682da5a0SStefan Eßer "minimizedReason": "", 2846682da5a0SStefan Eßer "reactionGroups": [], 2847682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/48#issuecomment-975835141", 2848682da5a0SStefan Eßer "viewerDidAuthor": true 2849682da5a0SStefan Eßer }, 2850682da5a0SStefan Eßer { 2851682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc46Kkv8", 2852682da5a0SStefan Eßer "author": { 2853682da5a0SStefan Eßer "login": "oguz-ismail" 2854682da5a0SStefan Eßer }, 2855682da5a0SStefan Eßer "authorAssociation": "NONE", 2856682da5a0SStefan Eßer "body": "@gavinhoward Yeah, it works fine now. Thanks for the fix", 2857682da5a0SStefan Eßer "createdAt": "2021-11-22T19:29:26Z", 2858682da5a0SStefan Eßer "includesCreatedEdit": false, 2859682da5a0SStefan Eßer "isMinimized": false, 2860682da5a0SStefan Eßer "minimizedReason": "", 2861682da5a0SStefan Eßer "reactionGroups": [], 2862682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/48#issuecomment-975850492", 2863682da5a0SStefan Eßer "viewerDidAuthor": false 2864682da5a0SStefan Eßer }, 2865682da5a0SStefan Eßer { 2866682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc46KynT", 2867682da5a0SStefan Eßer "author": { 2868682da5a0SStefan Eßer "login": "gavinhoward" 2869682da5a0SStefan Eßer }, 2870682da5a0SStefan Eßer "authorAssociation": "OWNER", 2871682da5a0SStefan Eßer "body": "Thank you!\r\n\r\nI'll run my release process and put out `5.2.1` as soon as it passes.", 2872682da5a0SStefan Eßer "createdAt": "2021-11-22T20:50:45Z", 2873682da5a0SStefan Eßer "includesCreatedEdit": false, 2874682da5a0SStefan Eßer "isMinimized": false, 2875682da5a0SStefan Eßer "minimizedReason": "", 2876682da5a0SStefan Eßer "reactionGroups": [], 2877682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/48#issuecomment-975907283", 2878682da5a0SStefan Eßer "viewerDidAuthor": true 2879682da5a0SStefan Eßer }, 2880682da5a0SStefan Eßer { 2881682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc46L1uZ", 2882682da5a0SStefan Eßer "author": { 2883682da5a0SStefan Eßer "login": "gavinhoward" 2884682da5a0SStefan Eßer }, 2885682da5a0SStefan Eßer "authorAssociation": "OWNER", 2886682da5a0SStefan Eßer "body": "`5.2.1` is out. I believe that solves this issue, so I am going to close. Feel free to reopen if you need to.\r\n\r\nThank you for your report!", 2887682da5a0SStefan Eßer "createdAt": "2021-11-23T05:42:14Z", 2888682da5a0SStefan Eßer "includesCreatedEdit": false, 2889682da5a0SStefan Eßer "isMinimized": false, 2890682da5a0SStefan Eßer "minimizedReason": "", 2891682da5a0SStefan Eßer "reactionGroups": [ 2892682da5a0SStefan Eßer { 2893682da5a0SStefan Eßer "content": "THUMBS_UP", 2894682da5a0SStefan Eßer "users": { 2895682da5a0SStefan Eßer "totalCount": 1 2896682da5a0SStefan Eßer } 2897682da5a0SStefan Eßer } 2898682da5a0SStefan Eßer ], 2899682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/48#issuecomment-976182169", 2900682da5a0SStefan Eßer "viewerDidAuthor": true 2901682da5a0SStefan Eßer } 2902682da5a0SStefan Eßer ], 2903682da5a0SStefan Eßer "createdAt": "2021-11-22T11:06:32Z", 2904682da5a0SStefan Eßer "id": "I_kwDOCL0xJc4_Ln9A", 2905682da5a0SStefan Eßer "isPinned": false, 2906682da5a0SStefan Eßer "labels": [], 2907682da5a0SStefan Eßer "milestone": null, 2908682da5a0SStefan Eßer "number": 48, 2909682da5a0SStefan Eßer "projectCards": [], 2910682da5a0SStefan Eßer "projectItems": [], 2911682da5a0SStefan Eßer "reactionGroups": [], 2912682da5a0SStefan Eßer "state": "CLOSED", 2913682da5a0SStefan Eßer "stateReason": "COMPLETED", 2914682da5a0SStefan Eßer "title": "Divergence from grammar defined by POSIX", 2915682da5a0SStefan Eßer "updatedAt": "2021-11-23T05:42:15Z", 2916682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/48" 2917682da5a0SStefan Eßer }, 2918682da5a0SStefan Eßer { 2919682da5a0SStefan Eßer "assignees": [], 2920682da5a0SStefan Eßer "author": { 2921682da5a0SStefan Eßer "id": "MDQ6VXNlcjEzNTQxNjk5", 2922682da5a0SStefan Eßer "is_bot": false, 2923682da5a0SStefan Eßer "login": "depler", 2924682da5a0SStefan Eßer "name": "" 2925682da5a0SStefan Eßer }, 2926682da5a0SStefan Eßer "body": "Is there any command line switch to set scale at start, like `bc.exe --scale 100`? If not, could you please implement?", 2927682da5a0SStefan Eßer "closed": true, 2928682da5a0SStefan Eßer "closedAt": "2022-06-10T18:05:26Z", 2929682da5a0SStefan Eßer "comments": [ 2930682da5a0SStefan Eßer { 2931682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc4387LJ", 2932682da5a0SStefan Eßer "author": { 2933682da5a0SStefan Eßer "login": "gavinhoward" 2934682da5a0SStefan Eßer }, 2935682da5a0SStefan Eßer "authorAssociation": "OWNER", 2936682da5a0SStefan Eßer "body": "There is no direct way to do it, but you can do it like this:\r\n\r\n```\r\nbc.exe -e \"scale = 100\" -f-\r\n```\r\n\r\n`-e` is the command-line option to take expressions, and since `bc` exits by default when giving it an expression, you add `-f-` to tell it to also accept input from `stdin`.\r\n\r\nI think next release, I will add the ability to *not* exit by default on expressions for Windows. (FreeBSD wants my `bc` to exit by default.) Once I do that, you will be able to do:\r\n\r\n```\r\nbc.exe -e \"scale = 100\"\r\n```", 2937682da5a0SStefan Eßer "createdAt": "2021-10-08T15:09:39Z", 2938682da5a0SStefan Eßer "includesCreatedEdit": false, 2939682da5a0SStefan Eßer "isMinimized": false, 2940682da5a0SStefan Eßer "minimizedReason": "", 2941682da5a0SStefan Eßer "reactionGroups": [], 2942682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47#issuecomment-938717897", 2943682da5a0SStefan Eßer "viewerDidAuthor": true 2944682da5a0SStefan Eßer }, 2945682da5a0SStefan Eßer { 2946682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc439Fcs", 2947682da5a0SStefan Eßer "author": { 2948682da5a0SStefan Eßer "login": "depler" 2949682da5a0SStefan Eßer }, 2950682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 2951682da5a0SStefan Eßer "body": "Well, this is not really an option for me - I want bc to exit after `-e` switch. The point is to have ability to manipulate of scale value from outside - the only option for now to do it is within a script or command. Anyway, not really a problem. Fell free to close this, if you are not going implement scale switch.", 2952682da5a0SStefan Eßer "createdAt": "2021-10-08T16:09:16Z", 2953682da5a0SStefan Eßer "includesCreatedEdit": true, 2954682da5a0SStefan Eßer "isMinimized": false, 2955682da5a0SStefan Eßer "minimizedReason": "", 2956682da5a0SStefan Eßer "reactionGroups": [], 2957682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47#issuecomment-938759980", 2958682da5a0SStefan Eßer "viewerDidAuthor": false 2959682da5a0SStefan Eßer }, 2960682da5a0SStefan Eßer { 2961682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc439QqT", 2962682da5a0SStefan Eßer "author": { 2963682da5a0SStefan Eßer "login": "gavinhoward" 2964682da5a0SStefan Eßer }, 2965682da5a0SStefan Eßer "authorAssociation": "OWNER", 2966682da5a0SStefan Eßer "body": "Yeah, I'm sorry. It's a little too specialized to do in my opinion.\r\n\r\nThank you for understanding.", 2967682da5a0SStefan Eßer "createdAt": "2021-10-08T16:34:17Z", 2968682da5a0SStefan Eßer "includesCreatedEdit": false, 2969682da5a0SStefan Eßer "isMinimized": false, 2970682da5a0SStefan Eßer "minimizedReason": "", 2971682da5a0SStefan Eßer "reactionGroups": [], 2972682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47#issuecomment-938805907", 2973682da5a0SStefan Eßer "viewerDidAuthor": true 2974682da5a0SStefan Eßer }, 2975682da5a0SStefan Eßer { 2976682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5Dmtyj", 2977682da5a0SStefan Eßer "author": { 2978682da5a0SStefan Eßer "login": "gavinhoward" 2979682da5a0SStefan Eßer }, 2980682da5a0SStefan Eßer "authorAssociation": "OWNER", 2981682da5a0SStefan Eßer "body": "@depler would you still want this? I'm going to do a release soon, and I'm reconsidering it.", 2982682da5a0SStefan Eßer "createdAt": "2022-05-23T06:10:23Z", 2983682da5a0SStefan Eßer "includesCreatedEdit": false, 2984682da5a0SStefan Eßer "isMinimized": false, 2985682da5a0SStefan Eßer "minimizedReason": "", 2986682da5a0SStefan Eßer "reactionGroups": [], 2987682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47#issuecomment-1134222499", 2988682da5a0SStefan Eßer "viewerDidAuthor": true 2989682da5a0SStefan Eßer }, 2990682da5a0SStefan Eßer { 2991682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5EjtT2", 2992682da5a0SStefan Eßer "author": { 2993682da5a0SStefan Eßer "login": "gavinhoward" 2994682da5a0SStefan Eßer }, 2995682da5a0SStefan Eßer "authorAssociation": "OWNER", 2996682da5a0SStefan Eßer "body": "@depler I'm going to implement this.", 2997682da5a0SStefan Eßer "createdAt": "2022-06-08T17:44:03Z", 2998682da5a0SStefan Eßer "includesCreatedEdit": false, 2999682da5a0SStefan Eßer "isMinimized": false, 3000682da5a0SStefan Eßer "minimizedReason": "", 3001682da5a0SStefan Eßer "reactionGroups": [], 3002682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47#issuecomment-1150211318", 3003682da5a0SStefan Eßer "viewerDidAuthor": true 3004682da5a0SStefan Eßer }, 3005682da5a0SStefan Eßer { 3006682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5EksDZ", 3007682da5a0SStefan Eßer "author": { 3008682da5a0SStefan Eßer "login": "gavinhoward" 3009682da5a0SStefan Eßer }, 3010682da5a0SStefan Eßer "authorAssociation": "OWNER", 3011682da5a0SStefan Eßer "body": "It is now implemented in 488d48c87c5b9e02e5c3911918c2d6d7687246e8. The command-line options are `-S`/`--scale`, `-I`/`--ibase`, `-O`/`--obase`, and `-E`/`--seed`.\r\n\r\nIf you could test before I release `5.3.0`, I would appreciate it.\r\n\r\nAlso, history is working on Windows now!", 3012682da5a0SStefan Eßer "createdAt": "2022-06-08T22:15:08Z", 3013682da5a0SStefan Eßer "includesCreatedEdit": false, 3014682da5a0SStefan Eßer "isMinimized": false, 3015682da5a0SStefan Eßer "minimizedReason": "", 3016682da5a0SStefan Eßer "reactionGroups": [], 3017682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47#issuecomment-1150468313", 3018682da5a0SStefan Eßer "viewerDidAuthor": true 3019682da5a0SStefan Eßer }, 3020682da5a0SStefan Eßer { 3021682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc5Es3Dl", 3022682da5a0SStefan Eßer "author": { 3023682da5a0SStefan Eßer "login": "gavinhoward" 3024682da5a0SStefan Eßer }, 3025682da5a0SStefan Eßer "authorAssociation": "OWNER", 3026682da5a0SStefan Eßer "body": "It's been released in `5.3.0`. Hope this helps!", 3027682da5a0SStefan Eßer "createdAt": "2022-06-10T18:05:26Z", 3028682da5a0SStefan Eßer "includesCreatedEdit": false, 3029682da5a0SStefan Eßer "isMinimized": false, 3030682da5a0SStefan Eßer "minimizedReason": "", 3031682da5a0SStefan Eßer "reactionGroups": [], 3032682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47#issuecomment-1152610533", 3033682da5a0SStefan Eßer "viewerDidAuthor": true 3034682da5a0SStefan Eßer } 3035682da5a0SStefan Eßer ], 3036682da5a0SStefan Eßer "createdAt": "2021-10-08T11:02:30Z", 3037682da5a0SStefan Eßer "id": "I_kwDOCL0xJc482sjv", 3038682da5a0SStefan Eßer "isPinned": false, 3039682da5a0SStefan Eßer "labels": [], 3040682da5a0SStefan Eßer "milestone": null, 3041682da5a0SStefan Eßer "number": 47, 3042682da5a0SStefan Eßer "projectCards": [], 3043682da5a0SStefan Eßer "projectItems": [], 3044682da5a0SStefan Eßer "reactionGroups": [], 3045682da5a0SStefan Eßer "state": "CLOSED", 3046682da5a0SStefan Eßer "stateReason": "COMPLETED", 3047682da5a0SStefan Eßer "title": "Command switch for scale?", 3048682da5a0SStefan Eßer "updatedAt": "2022-06-10T18:05:27Z", 3049682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/47" 3050682da5a0SStefan Eßer }, 3051682da5a0SStefan Eßer { 3052682da5a0SStefan Eßer "assignees": [], 3053682da5a0SStefan Eßer "author": { 3054682da5a0SStefan Eßer "id": "MDQ6VXNlcjEzNTQxNjk5", 3055682da5a0SStefan Eßer "is_bot": false, 3056682da5a0SStefan Eßer "login": "depler", 3057682da5a0SStefan Eßer "name": "" 3058682da5a0SStefan Eßer }, 3059682da5a0SStefan Eßer "body": "Hi! When are you going to release new version with recent changes?", 3060682da5a0SStefan Eßer "closed": true, 3061682da5a0SStefan Eßer "closedAt": "2021-10-06T20:42:31Z", 3062682da5a0SStefan Eßer "comments": [ 3063682da5a0SStefan Eßer { 3064682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43pTbJ", 3065682da5a0SStefan Eßer "author": { 3066682da5a0SStefan Eßer "login": "gavinhoward" 3067682da5a0SStefan Eßer }, 3068682da5a0SStefan Eßer "authorAssociation": "OWNER", 3069682da5a0SStefan Eßer "body": "Yes. It will be `5.1.0`.\r\n\r\nI have not done so yet because of two things. First, I was not really sure if you would find more bugs, and second, my release process takes a while. (It includes, among other things, building `bc` in every supported configuration and running the test suite for every build, on multiple platforms.)\r\n\r\nI expect that the release will go out sometime today (US time).", 3070682da5a0SStefan Eßer "createdAt": "2021-10-04T15:03:22Z", 3071682da5a0SStefan Eßer "includesCreatedEdit": false, 3072682da5a0SStefan Eßer "isMinimized": false, 3073682da5a0SStefan Eßer "minimizedReason": "", 3074682da5a0SStefan Eßer "reactionGroups": [], 3075682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/46#issuecomment-933574345", 3076682da5a0SStefan Eßer "viewerDidAuthor": true 3077682da5a0SStefan Eßer }, 3078682da5a0SStefan Eßer { 3079682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43p7GT", 3080682da5a0SStefan Eßer "author": { 3081682da5a0SStefan Eßer "login": "gavinhoward" 3082682da5a0SStefan Eßer }, 3083682da5a0SStefan Eßer "authorAssociation": "OWNER", 3084682da5a0SStefan Eßer "body": "Release is out! Thank you for your help.", 3085682da5a0SStefan Eßer "createdAt": "2021-10-04T18:19:40Z", 3086682da5a0SStefan Eßer "includesCreatedEdit": false, 3087682da5a0SStefan Eßer "isMinimized": false, 3088682da5a0SStefan Eßer "minimizedReason": "", 3089682da5a0SStefan Eßer "reactionGroups": [ 3090682da5a0SStefan Eßer { 3091682da5a0SStefan Eßer "content": "THUMBS_UP", 3092682da5a0SStefan Eßer "users": { 3093682da5a0SStefan Eßer "totalCount": 1 3094682da5a0SStefan Eßer } 3095682da5a0SStefan Eßer } 3096682da5a0SStefan Eßer ], 3097682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/46#issuecomment-933736851", 3098682da5a0SStefan Eßer "viewerDidAuthor": true 3099682da5a0SStefan Eßer }, 3100682da5a0SStefan Eßer { 3101682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43qhxQ", 3102682da5a0SStefan Eßer "author": { 3103682da5a0SStefan Eßer "login": "depler" 3104682da5a0SStefan Eßer }, 3105682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 3106682da5a0SStefan Eßer "body": "Thanks! Why did you put project files, debug executables and test files into release archive?", 3107682da5a0SStefan Eßer "createdAt": "2021-10-04T22:11:43Z", 3108682da5a0SStefan Eßer "includesCreatedEdit": true, 3109682da5a0SStefan Eßer "isMinimized": false, 3110682da5a0SStefan Eßer "minimizedReason": "", 3111682da5a0SStefan Eßer "reactionGroups": [], 3112682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/46#issuecomment-933895248", 3113682da5a0SStefan Eßer "viewerDidAuthor": false 3114682da5a0SStefan Eßer }, 3115682da5a0SStefan Eßer { 3116682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43qjSr", 3117682da5a0SStefan Eßer "author": { 3118682da5a0SStefan Eßer "login": "gavinhoward" 3119682da5a0SStefan Eßer }, 3120682da5a0SStefan Eßer "authorAssociation": "OWNER", 3121682da5a0SStefan Eßer "body": "I should not have put the test files (sorry; I'll take them out next release), but I put the others there in case users *want* a debug executable. Basically, I put whatever I thought users might want even if they don't want the full repo. (I know at least Linux distro that builds a debug version of my `bc`.)", 3122682da5a0SStefan Eßer "createdAt": "2021-10-04T22:23:01Z", 3123682da5a0SStefan Eßer "includesCreatedEdit": false, 3124682da5a0SStefan Eßer "isMinimized": false, 3125682da5a0SStefan Eßer "minimizedReason": "", 3126682da5a0SStefan Eßer "reactionGroups": [], 3127682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/46#issuecomment-933901483", 3128682da5a0SStefan Eßer "viewerDidAuthor": true 3129682da5a0SStefan Eßer }, 3130682da5a0SStefan Eßer { 3131682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc432vHa", 3132682da5a0SStefan Eßer "author": { 3133682da5a0SStefan Eßer "login": "gavinhoward" 3134682da5a0SStefan Eßer }, 3135682da5a0SStefan Eßer "authorAssociation": "OWNER", 3136682da5a0SStefan Eßer "body": "The next release is out (there was a bug), and I have implemented your suggestions, except for debug executables. Thank you.\r\n\r\nI will go ahead and close this bug now, but you can reopen if you feel the need.", 3137682da5a0SStefan Eßer "createdAt": "2021-10-06T20:42:31Z", 3138682da5a0SStefan Eßer "includesCreatedEdit": false, 3139682da5a0SStefan Eßer "isMinimized": false, 3140682da5a0SStefan Eßer "minimizedReason": "", 3141682da5a0SStefan Eßer "reactionGroups": [], 3142682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/46#issuecomment-937095642", 3143682da5a0SStefan Eßer "viewerDidAuthor": true 3144682da5a0SStefan Eßer } 3145682da5a0SStefan Eßer ], 3146682da5a0SStefan Eßer "createdAt": "2021-10-04T13:53:49Z", 3147682da5a0SStefan Eßer "id": "I_kwDOCL0xJc48guzb", 3148682da5a0SStefan Eßer "isPinned": false, 3149682da5a0SStefan Eßer "labels": [], 3150682da5a0SStefan Eßer "milestone": null, 3151682da5a0SStefan Eßer "number": 46, 3152682da5a0SStefan Eßer "projectCards": [], 3153682da5a0SStefan Eßer "projectItems": [], 3154682da5a0SStefan Eßer "reactionGroups": [], 3155682da5a0SStefan Eßer "state": "CLOSED", 3156682da5a0SStefan Eßer "stateReason": "COMPLETED", 3157682da5a0SStefan Eßer "title": "New release", 3158682da5a0SStefan Eßer "updatedAt": "2021-10-06T20:42:31Z", 3159682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/46" 3160682da5a0SStefan Eßer }, 3161682da5a0SStefan Eßer { 3162682da5a0SStefan Eßer "assignees": [], 3163682da5a0SStefan Eßer "author": { 3164682da5a0SStefan Eßer "id": "MDQ6VXNlcjMxNzI2ODc=", 3165682da5a0SStefan Eßer "is_bot": false, 3166682da5a0SStefan Eßer "login": "gavinhoward", 3167682da5a0SStefan Eßer "name": "Gavin D. Howard" 3168682da5a0SStefan Eßer }, 3169682da5a0SStefan Eßer "body": "@depler do you know how to get packages into Winget and Chocolatey? I had [someone ask me to do that][1].\r\n\r\n[1]: https://news.ycombinator.com/item?id=28653815", 3170682da5a0SStefan Eßer "closed": true, 3171682da5a0SStefan Eßer "closedAt": "2021-10-01T17:38:41Z", 3172682da5a0SStefan Eßer "comments": [ 3173682da5a0SStefan Eßer { 3174682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43ktg6", 3175682da5a0SStefan Eßer "author": { 3176682da5a0SStefan Eßer "login": "depler" 3177682da5a0SStefan Eßer }, 3178682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 3179682da5a0SStefan Eßer "body": "Sorry, never did this. I prefer portable windows utilities without package manager.", 3180682da5a0SStefan Eßer "createdAt": "2021-10-01T16:20:38Z", 3181682da5a0SStefan Eßer "includesCreatedEdit": false, 3182682da5a0SStefan Eßer "isMinimized": false, 3183682da5a0SStefan Eßer "minimizedReason": "", 3184682da5a0SStefan Eßer "reactionGroups": [], 3185682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/45#issuecomment-932370490", 3186682da5a0SStefan Eßer "viewerDidAuthor": false 3187682da5a0SStefan Eßer }, 3188682da5a0SStefan Eßer { 3189682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43k7w9", 3190682da5a0SStefan Eßer "author": { 3191682da5a0SStefan Eßer "login": "gavinhoward" 3192682da5a0SStefan Eßer }, 3193682da5a0SStefan Eßer "authorAssociation": "OWNER", 3194682da5a0SStefan Eßer "body": ":+1: ", 3195682da5a0SStefan Eßer "createdAt": "2021-10-01T17:38:41Z", 3196682da5a0SStefan Eßer "includesCreatedEdit": false, 3197682da5a0SStefan Eßer "isMinimized": false, 3198682da5a0SStefan Eßer "minimizedReason": "", 3199682da5a0SStefan Eßer "reactionGroups": [], 3200682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/45#issuecomment-932428861", 3201682da5a0SStefan Eßer "viewerDidAuthor": true 3202682da5a0SStefan Eßer } 3203682da5a0SStefan Eßer ], 3204682da5a0SStefan Eßer "createdAt": "2021-10-01T04:59:55Z", 3205682da5a0SStefan Eßer "id": "I_kwDOCL0xJc48X3lM", 3206682da5a0SStefan Eßer "isPinned": false, 3207682da5a0SStefan Eßer "labels": [], 3208682da5a0SStefan Eßer "milestone": null, 3209682da5a0SStefan Eßer "number": 45, 3210682da5a0SStefan Eßer "projectCards": [], 3211682da5a0SStefan Eßer "projectItems": [], 3212682da5a0SStefan Eßer "reactionGroups": [], 3213682da5a0SStefan Eßer "state": "CLOSED", 3214682da5a0SStefan Eßer "stateReason": "COMPLETED", 3215682da5a0SStefan Eßer "title": "Get `bc` into Winget and Chocolatey", 3216682da5a0SStefan Eßer "updatedAt": "2021-10-01T17:38:41Z", 3217682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/45" 3218682da5a0SStefan Eßer }, 3219682da5a0SStefan Eßer { 3220682da5a0SStefan Eßer "assignees": [], 3221682da5a0SStefan Eßer "author": { 3222682da5a0SStefan Eßer "id": "MDQ6VXNlcjEzNTQxNjk5", 3223682da5a0SStefan Eßer "is_bot": false, 3224682da5a0SStefan Eßer "login": "depler", 3225682da5a0SStefan Eßer "name": "" 3226682da5a0SStefan Eßer }, 3227682da5a0SStefan Eßer "body": "Can you please implement some new command line arguments?\r\n\r\n1. Ability to print equation result without line breaks, i.e. just a solid text.\r\n2. Ability to force prepending zero in equation result, i.e. `0.123` instead of current `.123`", 3228682da5a0SStefan Eßer "closed": true, 3229682da5a0SStefan Eßer "closedAt": "2021-09-29T23:02:01Z", 3230682da5a0SStefan Eßer "comments": [ 3231682da5a0SStefan Eßer { 3232682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43UXox", 3233682da5a0SStefan Eßer "author": { 3234682da5a0SStefan Eßer "login": "gavinhoward" 3235682da5a0SStefan Eßer }, 3236682da5a0SStefan Eßer "authorAssociation": "OWNER", 3237682da5a0SStefan Eßer "body": "Those are good ideas.\r\n\r\nFor the first, there is already an environment variable, `BC_LINE_LENGTH`, that can be used to do that. You just set it to a large number. Would that work, or would that still not be convenient (and I use that word for a reason; I do want it to be easy for you) on Windows? Also, if you want a separate option to remove line limits entirely, why?\r\n\r\nFor the second, I think that one might be a *really* good idea. EDIT: However, could this be implemented by something like a function in the math library such that it's not a global option affecting all numbers? Would that be better? Should we have both?\r\n\r\nIn both of these cases, I don't want to just willy-nilly implement something; I want them to be designed correctly. So I'll get started on that, but please feel free to give me your opinions about the design of them.", 3238682da5a0SStefan Eßer "createdAt": "2021-09-27T17:16:40Z", 3239682da5a0SStefan Eßer "includesCreatedEdit": true, 3240682da5a0SStefan Eßer "isMinimized": false, 3241682da5a0SStefan Eßer "minimizedReason": "", 3242682da5a0SStefan Eßer "reactionGroups": [], 3243682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-928086577", 3244682da5a0SStefan Eßer "viewerDidAuthor": true 3245682da5a0SStefan Eßer }, 3246682da5a0SStefan Eßer { 3247682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43UkoZ", 3248682da5a0SStefan Eßer "author": { 3249682da5a0SStefan Eßer "login": "depler" 3250682da5a0SStefan Eßer }, 3251682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 3252682da5a0SStefan Eßer "body": "> Also, if you want a separate option to remove line limits entirely, why?\r\n\r\nThis is exactly what I want - remove line limits entirely. Environment variables are not really useful on Windows unless you heavily use scripts. Usually you just run executable with desired variables to archive functionality (or using some config file as alternative).\r\n\r\n> However, could this be implemented by something like a function in the math library such that it's not a global option affecting all numbers? Would that be better? Should we have both?\r\n\r\nFor exactly my needs global option is preferable - I just want to see all numbers in range `-1 < 0 < 1` with zero.\r\n\r\nSo if you you think that environment variables are needed - feel free to implement both. Personally I don't like to use environment switches, command arguments are more convenient for me.\r\n", 3253682da5a0SStefan Eßer "createdAt": "2021-09-27T18:06:20Z", 3254682da5a0SStefan Eßer "includesCreatedEdit": true, 3255682da5a0SStefan Eßer "isMinimized": false, 3256682da5a0SStefan Eßer "minimizedReason": "", 3257682da5a0SStefan Eßer "reactionGroups": [], 3258682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-928139801", 3259682da5a0SStefan Eßer "viewerDidAuthor": false 3260682da5a0SStefan Eßer }, 3261682da5a0SStefan Eßer { 3262682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43VIy5", 3263682da5a0SStefan Eßer "author": { 3264682da5a0SStefan Eßer "login": "gavinhoward" 3265682da5a0SStefan Eßer }, 3266682da5a0SStefan Eßer "authorAssociation": "OWNER", 3267682da5a0SStefan Eßer "body": "Good to know. Let me get on that and see if I can come up with something that works for you.", 3268682da5a0SStefan Eßer "createdAt": "2021-09-27T21:15:44Z", 3269682da5a0SStefan Eßer "includesCreatedEdit": false, 3270682da5a0SStefan Eßer "isMinimized": false, 3271682da5a0SStefan Eßer "minimizedReason": "", 3272682da5a0SStefan Eßer "reactionGroups": [], 3273682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-928287929", 3274682da5a0SStefan Eßer "viewerDidAuthor": true 3275682da5a0SStefan Eßer }, 3276682da5a0SStefan Eßer { 3277682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43Vnrz", 3278682da5a0SStefan Eßer "author": { 3279682da5a0SStefan Eßer "login": "gavinhoward" 3280682da5a0SStefan Eßer }, 3281682da5a0SStefan Eßer "authorAssociation": "OWNER", 3282682da5a0SStefan Eßer "body": "I have added the two command line arguments (`z` and `C`). Could you please pull and test that they do what you want?\r\n\r\nI'm not done yet, but the rest of the work is not really going to impact what you want. It's a way to query the status of those things so that I can write library functions to print them in different ways.", 3283682da5a0SStefan Eßer "createdAt": "2021-09-27T23:07:11Z", 3284682da5a0SStefan Eßer "includesCreatedEdit": false, 3285682da5a0SStefan Eßer "isMinimized": false, 3286682da5a0SStefan Eßer "minimizedReason": "", 3287682da5a0SStefan Eßer "reactionGroups": [ 3288682da5a0SStefan Eßer { 3289682da5a0SStefan Eßer "content": "THUMBS_UP", 3290682da5a0SStefan Eßer "users": { 3291682da5a0SStefan Eßer "totalCount": 1 3292682da5a0SStefan Eßer } 3293682da5a0SStefan Eßer } 3294682da5a0SStefan Eßer ], 3295682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-928414451", 3296682da5a0SStefan Eßer "viewerDidAuthor": true 3297682da5a0SStefan Eßer }, 3298682da5a0SStefan Eßer { 3299682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43XcED", 3300682da5a0SStefan Eßer "author": { 3301682da5a0SStefan Eßer "login": "gavinhoward" 3302682da5a0SStefan Eßer }, 3303682da5a0SStefan Eßer "authorAssociation": "OWNER", 3304682da5a0SStefan Eßer "body": "I've changed the options to `-z`/`--leading-zeroes` and `-L`/`--no-line-length`.", 3305682da5a0SStefan Eßer "createdAt": "2021-09-28T06:21:27Z", 3306682da5a0SStefan Eßer "includesCreatedEdit": false, 3307682da5a0SStefan Eßer "isMinimized": false, 3308682da5a0SStefan Eßer "minimizedReason": "", 3309682da5a0SStefan Eßer "reactionGroups": [ 3310682da5a0SStefan Eßer { 3311682da5a0SStefan Eßer "content": "THUMBS_UP", 3312682da5a0SStefan Eßer "users": { 3313682da5a0SStefan Eßer "totalCount": 1 3314682da5a0SStefan Eßer } 3315682da5a0SStefan Eßer } 3316682da5a0SStefan Eßer ], 3317682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-928891139", 3318682da5a0SStefan Eßer "viewerDidAuthor": true 3319682da5a0SStefan Eßer }, 3320682da5a0SStefan Eßer { 3321682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43YQUv", 3322682da5a0SStefan Eßer "author": { 3323682da5a0SStefan Eßer "login": "depler" 3324682da5a0SStefan Eßer }, 3325682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 3326682da5a0SStefan Eßer "body": "Working fine, thanks! Can you please add new tests to windows scripts? It is just a new lines with filename of appropriate test in `tests_bc.bat` and `tests_dc.bat`.", 3327682da5a0SStefan Eßer "createdAt": "2021-09-28T11:34:55Z", 3328682da5a0SStefan Eßer "includesCreatedEdit": true, 3329682da5a0SStefan Eßer "isMinimized": false, 3330682da5a0SStefan Eßer "minimizedReason": "", 3331682da5a0SStefan Eßer "reactionGroups": [], 3332682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-929105199", 3333682da5a0SStefan Eßer "viewerDidAuthor": false 3334682da5a0SStefan Eßer }, 3335682da5a0SStefan Eßer { 3336682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43Y4pl", 3337682da5a0SStefan Eßer "author": { 3338682da5a0SStefan Eßer "login": "gavinhoward" 3339682da5a0SStefan Eßer }, 3340682da5a0SStefan Eßer "authorAssociation": "OWNER", 3341682da5a0SStefan Eßer "body": "I'm sorry, I feel stupid, but I'm not sure what tests you want me to add. For these features? Or more tests in general?", 3342682da5a0SStefan Eßer "createdAt": "2021-09-28T14:12:35Z", 3343682da5a0SStefan Eßer "includesCreatedEdit": false, 3344682da5a0SStefan Eßer "isMinimized": false, 3345682da5a0SStefan Eßer "minimizedReason": "", 3346682da5a0SStefan Eßer "reactionGroups": [], 3347682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-929270373", 3348682da5a0SStefan Eßer "viewerDidAuthor": true 3349682da5a0SStefan Eßer }, 3350682da5a0SStefan Eßer { 3351682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43ZFR5", 3352682da5a0SStefan Eßer "author": { 3353682da5a0SStefan Eßer "login": "depler" 3354682da5a0SStefan Eßer }, 3355682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 3356682da5a0SStefan Eßer "body": "You've added this one (and may be something else): https://github.com/gavinhoward/bc/blob/master/tests/bc/leadingzero.txt\r\nWindows script doesn't know about it yet.", 3357682da5a0SStefan Eßer "createdAt": "2021-09-28T15:09:39Z", 3358682da5a0SStefan Eßer "includesCreatedEdit": true, 3359682da5a0SStefan Eßer "isMinimized": false, 3360682da5a0SStefan Eßer "minimizedReason": "", 3361682da5a0SStefan Eßer "reactionGroups": [], 3362682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-929322105", 3363682da5a0SStefan Eßer "viewerDidAuthor": false 3364682da5a0SStefan Eßer }, 3365682da5a0SStefan Eßer { 3366682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43Zugt", 3367682da5a0SStefan Eßer "author": { 3368682da5a0SStefan Eßer "login": "gavinhoward" 3369682da5a0SStefan Eßer }, 3370682da5a0SStefan Eßer "authorAssociation": "OWNER", 3371682da5a0SStefan Eßer "body": "I see. I've added that test to the Windows bat file, but once again, can you pull and test for me? The reason is that it needs to run the test twice, and I want to be sure that works for you.", 3372682da5a0SStefan Eßer "createdAt": "2021-09-28T17:54:31Z", 3373682da5a0SStefan Eßer "includesCreatedEdit": false, 3374682da5a0SStefan Eßer "isMinimized": false, 3375682da5a0SStefan Eßer "minimizedReason": "", 3376682da5a0SStefan Eßer "reactionGroups": [], 3377682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-929490989", 3378682da5a0SStefan Eßer "viewerDidAuthor": true 3379682da5a0SStefan Eßer }, 3380682da5a0SStefan Eßer { 3381682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43btxR", 3382682da5a0SStefan Eßer "author": { 3383682da5a0SStefan Eßer "login": "depler" 3384682da5a0SStefan Eßer }, 3385682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 3386682da5a0SStefan Eßer "body": "A few changes are needed to differ `leadingzero` test from `leadingzero_z` : https://github.com/gavinhoward/bc/pull/44\r\nOtherwise it works fine.", 3387682da5a0SStefan Eßer "createdAt": "2021-09-29T09:35:21Z", 3388682da5a0SStefan Eßer "includesCreatedEdit": true, 3389682da5a0SStefan Eßer "isMinimized": false, 3390682da5a0SStefan Eßer "minimizedReason": "", 3391682da5a0SStefan Eßer "reactionGroups": [], 3392682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-930012241", 3393682da5a0SStefan Eßer "viewerDidAuthor": false 3394682da5a0SStefan Eßer }, 3395682da5a0SStefan Eßer { 3396682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43crqE", 3397682da5a0SStefan Eßer "author": { 3398682da5a0SStefan Eßer "login": "gavinhoward" 3399682da5a0SStefan Eßer }, 3400682da5a0SStefan Eßer "authorAssociation": "OWNER", 3401682da5a0SStefan Eßer "body": "#44 is merged. Is there anything else that needs to change for you?", 3402682da5a0SStefan Eßer "createdAt": "2021-09-29T15:06:22Z", 3403682da5a0SStefan Eßer "includesCreatedEdit": false, 3404682da5a0SStefan Eßer "isMinimized": false, 3405682da5a0SStefan Eßer "minimizedReason": "", 3406682da5a0SStefan Eßer "reactionGroups": [], 3407682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-930265732", 3408682da5a0SStefan Eßer "viewerDidAuthor": true 3409682da5a0SStefan Eßer }, 3410682da5a0SStefan Eßer { 3411682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc43d-9e", 3412682da5a0SStefan Eßer "author": { 3413682da5a0SStefan Eßer "login": "depler" 3414682da5a0SStefan Eßer }, 3415682da5a0SStefan Eßer "authorAssociation": "CONTRIBUTOR", 3416682da5a0SStefan Eßer "body": "Nope. Thanks ", 3417682da5a0SStefan Eßer "createdAt": "2021-09-29T23:02:01Z", 3418682da5a0SStefan Eßer "includesCreatedEdit": false, 3419682da5a0SStefan Eßer "isMinimized": false, 3420682da5a0SStefan Eßer "minimizedReason": "", 3421682da5a0SStefan Eßer "reactionGroups": [], 3422682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43#issuecomment-930606942", 3423682da5a0SStefan Eßer "viewerDidAuthor": false 3424682da5a0SStefan Eßer } 3425682da5a0SStefan Eßer ], 3426682da5a0SStefan Eßer "createdAt": "2021-09-27T15:12:39Z", 3427682da5a0SStefan Eßer "id": "I_kwDOCL0xJc48GQ_o", 3428682da5a0SStefan Eßer "isPinned": false, 3429682da5a0SStefan Eßer "labels": [], 3430682da5a0SStefan Eßer "milestone": null, 3431682da5a0SStefan Eßer "number": 43, 3432682da5a0SStefan Eßer "projectCards": [], 3433682da5a0SStefan Eßer "projectItems": [], 3434682da5a0SStefan Eßer "reactionGroups": [], 3435682da5a0SStefan Eßer "state": "CLOSED", 3436682da5a0SStefan Eßer "stateReason": "COMPLETED", 3437682da5a0SStefan Eßer "title": "Additional arguments", 3438682da5a0SStefan Eßer "updatedAt": "2021-09-29T23:02:02Z", 3439682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/43" 3440682da5a0SStefan Eßer }, 3441682da5a0SStefan Eßer { 3442682da5a0SStefan Eßer "assignees": [], 3443682da5a0SStefan Eßer "author": { 3444682da5a0SStefan Eßer "id": "MDQ6VXNlcjQ2Njg2NTY1", 3445682da5a0SStefan Eßer "is_bot": false, 3446682da5a0SStefan Eßer "login": "rubyFeedback", 3447682da5a0SStefan Eßer "name": "" 3448682da5a0SStefan Eßer }, 3449682da5a0SStefan Eßer "body": "Hey there.\n\nI am using this configure line:\n\n CC=gcc ./configure --prefix=/home/Programs/Bc/7.0.3/ -G -O3 -r\n\nThis is what LFS (Linux from Scratch) recommends, but they use the conventional\n/usr/ prefix.\n\nNow interestingly, when I use the above, I get this result - a warning:\n\n WARNING: Locales will *NOT* be installed in $PREFIX (/home/Programs/Bc/7.0.3/).\n\n This is because they *MUST* be installed at a fixed location to even\n work, and that fixed location is $NLSPATH (/usr/share/locale/%L/%N).\n\n This location is *outside* of $PREFIX. If you do not wish to install\n locales outside of $PREFIX, you must disable NLS with the -N or the\n --disable-nls options.\n\n The author apologizes for the inconvenience, but the need to install\n the locales at a fixed location is mandated by POSIX, and it is not\n possible for the author to change that requirement.\n\nThe warning makes sense on traditional systems that use /usr/ as prefix.\nGoboLinux uses versioned appdirs instead. (I am not using GoboLinux\nright now, as they use /Programs/ dir; I use a slightly modified self-compiled\nvariant instead. At the least currently.)\n\nI do not believe that POSIX mandates that /usr/share/local/ must be in\nthe way described. For instance, I am about 100% certain that symlinks \nare allowed; at the least not forbidden, so I would reason that POSIX\ncan not be cited here. GoboLinux also uses symlinks by the way; they\neven still have /usr/ etc... despite versioned appdirs.\n\nMy question is: is this warning really needed? I can install all glibc-related\nlocales into /home/Programs/Glibc/2.41/share/local/ etc... and I do not\nget any warning about this. I believe the warning has had good intentions,\nbut the explanation is a bit shaky to me, and does not seem to account\nfor e. g. alternative ways to handle a linux system. Does POSIX really\nsay that symlinks are forbidden?\n\n(Also, is it true that locales must be at a fixed location per se? Because in\nprinciple, whatever is searching for the file, could also have another \nlocation. I use the example of symlinks, but even without symlinks we \nhave things such as --libdir and various other flags that allow fine-tuning\nof various things here. Even meson-build systems allow for quite some\nflexibility here.)\n", 3450682da5a0SStefan Eßer "closed": true, 3451682da5a0SStefan Eßer "closedAt": "2025-04-10T16:47:30Z", 3452682da5a0SStefan Eßer "comments": [ 3453682da5a0SStefan Eßer { 3454682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6mkMkS", 3455682da5a0SStefan Eßer "author": { 3456682da5a0SStefan Eßer "login": "gavinhoward" 3457682da5a0SStefan Eßer }, 3458682da5a0SStefan Eßer "authorAssociation": "OWNER", 3459682da5a0SStefan Eßer "body": "Yes, it is necessary. I have had more people ask why locales don't work than people like you asking why there is a warning. In fact, you're the first.\n\nTo remove the warning, set `NLSPATH` on the call to `configure`, like so:\n\n```\nCC=gcc NLSPATH=/home/Programs/Bc/7.0.3/%L/%N \\\n ./configure --prefix=/home/Programs/Bc/7.0.3/ -G -O3 -r\n```\n\nThen yes, you can set up symlinks; POSIX does allow that.", 3460682da5a0SStefan Eßer "createdAt": "2025-04-10T16:47:30Z", 3461682da5a0SStefan Eßer "includesCreatedEdit": false, 3462682da5a0SStefan Eßer "isMinimized": false, 3463682da5a0SStefan Eßer "minimizedReason": "", 3464682da5a0SStefan Eßer "reactionGroups": [], 3465682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/90#issuecomment-2794506514", 3466682da5a0SStefan Eßer "viewerDidAuthor": true 3467682da5a0SStefan Eßer } 3468682da5a0SStefan Eßer ], 3469682da5a0SStefan Eßer "createdAt": "2025-04-10T11:40:10Z", 3470682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6x8Vgk", 3471682da5a0SStefan Eßer "isPinned": false, 3472682da5a0SStefan Eßer "labels": [], 3473682da5a0SStefan Eßer "milestone": null, 3474682da5a0SStefan Eßer "number": 90, 3475682da5a0SStefan Eßer "projectCards": [], 3476682da5a0SStefan Eßer "projectItems": [], 3477682da5a0SStefan Eßer "reactionGroups": [], 3478682da5a0SStefan Eßer "state": "CLOSED", 3479682da5a0SStefan Eßer "stateReason": "COMPLETED", 3480682da5a0SStefan Eßer "title": "locales - is the warning for non-standard prefixes still necessary?", 3481682da5a0SStefan Eßer "updatedAt": "2025-04-10T16:47:30Z", 3482682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/90" 3483682da5a0SStefan Eßer }, 3484682da5a0SStefan Eßer { 3485682da5a0SStefan Eßer "assignees": [], 3486682da5a0SStefan Eßer "author": { 3487682da5a0SStefan Eßer "id": "U_kgDOBxD9gQ", 3488682da5a0SStefan Eßer "is_bot": false, 3489682da5a0SStefan Eßer "login": "tungstengmd", 3490682da5a0SStefan Eßer "name": "harlow foxworthy" 3491682da5a0SStefan Eßer }, 3492682da5a0SStefan Eßer "body": "this might have been excluded for a reason but can you add the \"!\" command back ? only reason being that i wanna clear the screen on certain events", 3493682da5a0SStefan Eßer "closed": true, 3494682da5a0SStefan Eßer "closedAt": "2025-04-18T20:43:24Z", 3495682da5a0SStefan Eßer "comments": [ 3496682da5a0SStefan Eßer { 3497682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6n20Uz", 3498682da5a0SStefan Eßer "author": { 3499682da5a0SStefan Eßer "login": "gavinhoward" 3500682da5a0SStefan Eßer }, 3501682da5a0SStefan Eßer "authorAssociation": "OWNER", 3502682da5a0SStefan Eßer "body": "It was excluded for a reason, and no, I will not add it. Have your shell clear the screen.", 3503682da5a0SStefan Eßer "createdAt": "2025-04-18T20:43:23Z", 3504682da5a0SStefan Eßer "includesCreatedEdit": false, 3505682da5a0SStefan Eßer "isMinimized": false, 3506682da5a0SStefan Eßer "minimizedReason": "", 3507682da5a0SStefan Eßer "reactionGroups": [], 3508682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/91#issuecomment-2816165171", 3509682da5a0SStefan Eßer "viewerDidAuthor": true 3510682da5a0SStefan Eßer }, 3511682da5a0SStefan Eßer { 3512682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6n25O1", 3513682da5a0SStefan Eßer "author": { 3514682da5a0SStefan Eßer "login": "tungstengmd" 3515682da5a0SStefan Eßer }, 3516682da5a0SStefan Eßer "authorAssociation": "NONE", 3517682da5a0SStefan Eßer "body": "had a feeling, and damn you're fast", 3518682da5a0SStefan Eßer "createdAt": "2025-04-18T20:58:15Z", 3519682da5a0SStefan Eßer "includesCreatedEdit": false, 3520682da5a0SStefan Eßer "isMinimized": false, 3521682da5a0SStefan Eßer "minimizedReason": "", 3522682da5a0SStefan Eßer "reactionGroups": [], 3523682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/91#issuecomment-2816185269", 3524682da5a0SStefan Eßer "viewerDidAuthor": false 3525682da5a0SStefan Eßer }, 3526682da5a0SStefan Eßer { 3527682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6n3ljG", 3528682da5a0SStefan Eßer "author": { 3529682da5a0SStefan Eßer "login": "drawkula" 3530682da5a0SStefan Eßer }, 3531682da5a0SStefan Eßer "authorAssociation": "NONE", 3532682da5a0SStefan Eßer "body": "You can hardcode the sequence to clear the screen.\nTo be a bit independent of the terminal, catching what `clear` will send may be the way.\n```\n$ clear | xxd -C -p -u -\n1B5B481B5B324A\n```\nSo this ...\n```\n$ clear | xxd -C -p -u - | dc -e '16i ? P'\n```\n... demonstrates it. Capture the value, in base10 if you prefer.\n\nTBH, I miss `!` too.\n", 3533682da5a0SStefan Eßer "createdAt": "2025-04-18T23:55:14Z", 3534682da5a0SStefan Eßer "includesCreatedEdit": true, 3535682da5a0SStefan Eßer "isMinimized": false, 3536682da5a0SStefan Eßer "minimizedReason": "", 3537682da5a0SStefan Eßer "reactionGroups": [], 3538682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/91#issuecomment-2816366790", 3539682da5a0SStefan Eßer "viewerDidAuthor": false 3540682da5a0SStefan Eßer }, 3541682da5a0SStefan Eßer { 3542682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6n4p5E", 3543682da5a0SStefan Eßer "author": { 3544682da5a0SStefan Eßer "login": "tungstengmd" 3545682da5a0SStefan Eßer }, 3546682da5a0SStefan Eßer "authorAssociation": "NONE", 3547682da5a0SStefan Eßer "body": "oh wait you're onto something", 3548682da5a0SStefan Eßer "createdAt": "2025-04-19T10:18:42Z", 3549682da5a0SStefan Eßer "includesCreatedEdit": false, 3550682da5a0SStefan Eßer "isMinimized": false, 3551682da5a0SStefan Eßer "minimizedReason": "", 3552682da5a0SStefan Eßer "reactionGroups": [], 3553682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/91#issuecomment-2816646724", 3554682da5a0SStefan Eßer "viewerDidAuthor": false 3555682da5a0SStefan Eßer }, 3556682da5a0SStefan Eßer { 3557682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6n5dwl", 3558682da5a0SStefan Eßer "author": { 3559682da5a0SStefan Eßer "login": "tungstengmd" 3560682da5a0SStefan Eßer }, 3561682da5a0SStefan Eßer "authorAssociation": "NONE", 3562682da5a0SStefan Eßer "body": "ok so basically you can just catch command output [as hex form] in xxd and input it to dc with the input radix as 16\ntherefore bypassing the need for `!`\nthanks @drawkula", 3563682da5a0SStefan Eßer "createdAt": "2025-04-19T20:40:25Z", 3564682da5a0SStefan Eßer "includesCreatedEdit": false, 3565682da5a0SStefan Eßer "isMinimized": false, 3566682da5a0SStefan Eßer "minimizedReason": "", 3567682da5a0SStefan Eßer "reactionGroups": [], 3568682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/91#issuecomment-2816859173", 3569682da5a0SStefan Eßer "viewerDidAuthor": false 3570682da5a0SStefan Eßer }, 3571682da5a0SStefan Eßer { 3572682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6n-PJv", 3573682da5a0SStefan Eßer "author": { 3574682da5a0SStefan Eßer "login": "drawkula" 3575682da5a0SStefan Eßer }, 3576682da5a0SStefan Eßer "authorAssociation": "NONE", 3577682da5a0SStefan Eßer "body": "Sure you can read ™somewhere™ which control sequence your `$TERM` will use to clear the screen and then manually turn that into this string alike integer, but you'd have to do that anew everywhere you run your code attached to a differently behaving terminal emulation. So catching the sequence from `clear`, similar `tput` commands or directly looking it up in Terminfo or Termcap terminal definitions makes it portable and I assumed catching the output of `clear` would be the easiest of these alternatives.\n\nUsing `xxd` may limit portability a bit. That's probably the weak spot of this idea. There are alternatives, but if available, `xxd` seems to fit this job best.", 3578682da5a0SStefan Eßer "createdAt": "2025-04-21T10:18:17Z", 3579682da5a0SStefan Eßer "includesCreatedEdit": false, 3580682da5a0SStefan Eßer "isMinimized": false, 3581682da5a0SStefan Eßer "minimizedReason": "", 3582682da5a0SStefan Eßer "reactionGroups": [], 3583682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/91#issuecomment-2818110063", 3584682da5a0SStefan Eßer "viewerDidAuthor": false 3585682da5a0SStefan Eßer } 3586682da5a0SStefan Eßer ], 3587682da5a0SStefan Eßer "createdAt": "2025-04-18T20:41:22Z", 3588682da5a0SStefan Eßer "id": "I_kwDOCL0xJc6zJ4VJ", 3589682da5a0SStefan Eßer "isPinned": false, 3590682da5a0SStefan Eßer "labels": [], 3591682da5a0SStefan Eßer "milestone": null, 3592682da5a0SStefan Eßer "number": 91, 3593682da5a0SStefan Eßer "projectCards": [], 3594682da5a0SStefan Eßer "projectItems": [], 3595682da5a0SStefan Eßer "reactionGroups": [ 3596682da5a0SStefan Eßer { 3597682da5a0SStefan Eßer "content": "THUMBS_UP", 3598682da5a0SStefan Eßer "users": { 3599682da5a0SStefan Eßer "totalCount": 1 3600682da5a0SStefan Eßer } 3601682da5a0SStefan Eßer } 3602682da5a0SStefan Eßer ], 3603682da5a0SStefan Eßer "state": "CLOSED", 3604682da5a0SStefan Eßer "stateReason": "COMPLETED", 3605682da5a0SStefan Eßer "title": "add ! command", 3606682da5a0SStefan Eßer "updatedAt": "2025-04-21T10:18:18Z", 3607682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/91" 3608682da5a0SStefan Eßer }, 3609682da5a0SStefan Eßer { 3610682da5a0SStefan Eßer "assignees": [], 3611682da5a0SStefan Eßer "author": { 3612682da5a0SStefan Eßer "id": "U_kgDOB8YAUQ", 3613682da5a0SStefan Eßer "is_bot": false, 3614682da5a0SStefan Eßer "login": "tkb-github", 3615682da5a0SStefan Eßer "name": "" 3616682da5a0SStefan Eßer }, 3617682da5a0SStefan Eßer "body": "With the release of RHEL 10 and Fedora 42, we’ve tried to build 7.0.3 on both. No issues with Clang.\n\nWith GCC (v14 for RHEL 10, v15 for Fedora 42), though, the build succeeded under the [epel-10-aarch64](https://download.copr.fedorainfracloud.org/results/tkbcopr/bc-gh/epel-10-aarch64/09140402-bc-gh/) chroot but failed with [epel-10-x86_64](https://download.copr.fedorainfracloud.org/results/tkbcopr/bc-gh/epel-10-x86_64/09140402-bc-gh/), [fedora-42-x86_64](https://download.copr.fedorainfracloud.org/results/tkbcopr/bc-gh/fedora-42-x86_64/09140402-bc-gh/) and [fedora-42-aarch64](https://download.copr.fedorainfracloud.org/results/tkbcopr/bc-gh/fedora-42-aarch64/09140402-bc-gh/). Here’s excerpts from the failed builds.\n\nepel-10-x86_64:\n\n```sh\n\ngcc -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=34 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -g -flto ./gen/dc_help.o ./gen/bc_help.o ./gen/lib.o ./gen/lib2.o src/args.o src/bc.o src/bc_lex.o src/bc_parse.o src/data.o src/dc.o src/dc_lex.o src/dc_parse.o src/file.o src/history.o src/lang.o src/lex.o src/main.o src/num.o src/opt.o src/parse.o src/program.o src/rand.o src/read.o src/vector.o src/vm.o -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -o bin/bc\n/usr/bin/ld: /tmp/ccMAotuu.ltrans0.ltrans.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIE\n/usr/bin/ld: failed to set dynamic section sizes: bad value\ncollect2: error: ld returned 1 exit status\nmake: *** [Makefile:241: bin/bc] Error 1\nerror: Bad exit status from /var/tmp/rpm-tmp.G7xvMo (%build)\n\nRPM build errors:\n Bad exit status from /var/tmp/rpm-tmp.G7xvMo (%build)\n\n```\n\nfedora-42-x86_64\n\n```sh\n\ngcc -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=34 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -g -flto -o src/data.o -c ./src/data.c\nIn file included from /usr/lib/gcc/x86_64-redhat-linux/15/include/stdint.h:11,\n from ./include/status.h:46,\n from ./include/args.h:39,\n from ./src/data.c:39:\n./src/data.c:920:29: error: â^@^XfalseULâ^@^Y undeclared here (not in a function)\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~~\n./src/data.c:920:9: note: in expansion of macro â^@^XBC_PARSE_EXPR_ENTRYâ^@^Y\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~~~~~~~~~~~~~~~~\n./src/data.c:920:43: error: â^@^XtrueULâ^@^Y undeclared here (not in a function)\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~\n./src/data.c:920:9: note: in expansion of macro â^@^XBC_PARSE_EXPR_ENTRYâ^@^Y\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~~~~~~~~~~~~~~~~\nmake: *** [Makefile:668: src/data.o] Error 1\ngcc -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=34 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -g -flto -o src/dc.o -c ./src/dc.c\nmake: *** Waiting for unfinished jobs....\ngcc -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -I./include/ -flto -o ./gen/strgen ./gen/strgen.c\ngcc -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=34 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -g -flto -o src/bc_parse.o -c ./src/bc_parse.c\nerror: Bad exit status from /var/tmp/rpm-tmp.hRViel (%build)\n\nRPM build errors:\n Bad exit status from /var/tmp/rpm-tmp.hRViel (%build)\n\n```\n\nfedora-42-aarch64\n\n```sh\n\ngcc -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=34 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -g -flto -o src/data.o -c ./src/data.c\nIn file included from /usr/lib/gcc/aarch64-redhat-linux/15/include/stdint.h:11,\n from ./include/status.h:46,\n from ./include/args.h:39,\n from ./src/data.c:39:\n./src/data.c:920:29: error: â^@^XfalseULâ^@^Y undeclared here (not in a function)\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~~\n./src/data.c:920:9: note: in expansion of macro â^@^XBC_PARSE_EXPR_ENTRYâ^@^Y\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~~~~~~~~~~~~~~~~\n./src/data.c:920:43: error: â^@^XtrueULâ^@^Y undeclared here (not in a function)\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~\n./src/data.c:920:9: note: in expansion of macro â^@^XBC_PARSE_EXPR_ENTRYâ^@^Y\n 920 | BC_PARSE_EXPR_ENTRY(false, false, true, true, true, true, true, true),\n | ^~~~~~~~~~~~~~~~~~~\nmake: *** [Makefile:668: src/data.o] Error 1\nmake: *** Waiting for unfinished jobs....\ngcc -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=34 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -g -flto -o src/dc.o -c ./src/dc.c\ngcc -DBC_ENABLED=1 -DDC_ENABLED=1 -I./include/ -DBUILD_TYPE=A -DEXECPREFIX= -DMAINEXEC=bc -DBC_NUM_KARATSUBA_LEN=34 -DBC_ENABLE_NLS=1 -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_MEMCHECK=0 -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_SIGINT_RESET=1 -DBC_DEFAULT_TTY_MODE=1 -DBC_DEFAULT_PROMPT=1 -DBC_DEFAULT_EXPR_EXIT=1 -DBC_DEFAULT_DIGIT_CLAMP=0 -DDC_DEFAULT_SIGINT_RESET=1 -DDC_DEFAULT_TTY_MODE=0 -DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_EXPR_EXIT=1 -DDC_DEFAULT_DIGIT_CLAMP=0 -DBC_ENABLE_EDITLINE=0 -DBC_ENABLE_READLINE=0 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O3 -g -flto -o src/bc_parse.o -c ./src/bc_parse.c\ngcc -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -I./include/ -flto -o ./gen/strgen ./gen/strgen.c\nerror: Bad exit status from /var/tmp/rpm-tmp.5cLuhE (%build)\n\nRPM build errors:\n Bad exit status from /var/tmp/rpm-tmp.5cLuhE (%build)\n\n```", 3618682da5a0SStefan Eßer "closed": true, 3619682da5a0SStefan Eßer "closedAt": "2025-06-08T22:18:49Z", 3620682da5a0SStefan Eßer "comments": [ 3621682da5a0SStefan Eßer { 3622682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6v8kNF", 3623682da5a0SStefan Eßer "author": { 3624682da5a0SStefan Eßer "login": "gavinhoward" 3625682da5a0SStefan Eßer }, 3626682da5a0SStefan Eßer "authorAssociation": "OWNER", 3627682da5a0SStefan Eßer "body": "For epel-10-x86_64, just add `-fPIE` to the `CFLAGS`, like so:\n\n```\n$ CFLAGS=-fpie ./configure.sh\n$ make\n```\n\nFor the other two, it appears `stdbool.h` does not properly define `false` and `true`.", 3628682da5a0SStefan Eßer "createdAt": "2025-06-07T05:46:33Z", 3629682da5a0SStefan Eßer "includesCreatedEdit": false, 3630682da5a0SStefan Eßer "isMinimized": false, 3631682da5a0SStefan Eßer "minimizedReason": "", 3632682da5a0SStefan Eßer "reactionGroups": [], 3633682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/92#issuecomment-2951889733", 3634682da5a0SStefan Eßer "viewerDidAuthor": true 3635682da5a0SStefan Eßer }, 3636682da5a0SStefan Eßer { 3637682da5a0SStefan Eßer "id": "IC_kwDOCL0xJc6wDPLy", 3638682da5a0SStefan Eßer "author": { 3639682da5a0SStefan Eßer "login": "tkb-github" 3640682da5a0SStefan Eßer }, 3641682da5a0SStefan Eßer "authorAssociation": "NONE", 3642682da5a0SStefan Eßer "body": "Thanks!", 3643682da5a0SStefan Eßer "createdAt": "2025-06-08T06:52:46Z", 3644682da5a0SStefan Eßer "includesCreatedEdit": false, 3645682da5a0SStefan Eßer "isMinimized": false, 3646682da5a0SStefan Eßer "minimizedReason": "", 3647682da5a0SStefan Eßer "reactionGroups": [], 3648682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/92#issuecomment-2953638642", 3649682da5a0SStefan Eßer "viewerDidAuthor": false 3650682da5a0SStefan Eßer } 3651682da5a0SStefan Eßer ], 3652682da5a0SStefan Eßer "createdAt": "2025-06-07T03:51:28Z", 3653682da5a0SStefan Eßer "id": "I_kwDOCL0xJc66WQa1", 3654682da5a0SStefan Eßer "isPinned": false, 3655682da5a0SStefan Eßer "labels": [], 3656682da5a0SStefan Eßer "milestone": null, 3657682da5a0SStefan Eßer "number": 92, 3658682da5a0SStefan Eßer "projectCards": [], 3659682da5a0SStefan Eßer "projectItems": [], 3660682da5a0SStefan Eßer "reactionGroups": [], 3661682da5a0SStefan Eßer "state": "CLOSED", 3662682da5a0SStefan Eßer "stateReason": "COMPLETED", 3663682da5a0SStefan Eßer "title": "Build failures under RHEL 10 & Fedora 42 with GCC", 3664682da5a0SStefan Eßer "updatedAt": "2025-06-08T22:18:49Z", 3665682da5a0SStefan Eßer "url": "https://github.com/gavinhoward/bc/issues/92" 3666682da5a0SStefan Eßer } 3667682da5a0SStefan Eßer] 3668