Path: blob/main/contrib/bc/project/github_prs.json
39482 views
[1{2"additions": 8,3"assignees": [],4"author": {5"id": "MDQ6VXNlcjM5MjUwOQ==",6"is_bot": false,7"login": "bolknote",8"name": "Evgeny Stepanischev"9},10"autoMergeRequest": null,11"baseRefName": "master",12"baseRefOid": "9f34d2427d3f13c8e95b8485f5a6041789ffe400",13"body": "Code:\r\n`define a(*t[], t[]) {}`\r\n\r\nExpected result:\r\nParse error: function parameter or auto \"t[]\" already exists\r\n\r\nActual result:\r\nParses successfully (incorrect)\r\n\r\nThe interpreter now correctly rejects functions with duplicate parameter names, even when one is a reference array (*t[]).",14"changedFiles": 3,15"closed": true,16"closedAt": "2025-03-25T04:55:24Z",17"comments": [18{19"id": "IC_kwDOCL0xJc6j52QL",20"author": {21"login": "gavinhoward"22},23"authorAssociation": "OWNER",24"body": "Oh, and another thing you could get credit for: if you create `tests/bc/errors/39.txt` and put your reproducer into it, I would accept that too.",25"createdAt": "2025-03-25T02:01:13Z",26"includesCreatedEdit": false,27"isMinimized": false,28"minimizedReason": "",29"reactionGroups": [],30"url": "https://github.com/gavinhoward/bc/pull/89#issuecomment-2749850635",31"viewerDidAuthor": true32},33{34"id": "IC_kwDOCL0xJc6j6h5M",35"author": {36"login": "bolknote"37},38"authorAssociation": "CONTRIBUTOR",39"body": "Yes, no problem! I hope I’ve managed to cover everything needed. If something isn’t quite right, please let me know!",40"createdAt": "2025-03-25T04:16:09Z",41"includesCreatedEdit": false,42"isMinimized": false,43"minimizedReason": "",44"reactionGroups": [],45"url": "https://github.com/gavinhoward/bc/pull/89#issuecomment-2750029388",46"viewerDidAuthor": false47},48{49"id": "IC_kwDOCL0xJc6j6uej",50"author": {51"login": "gavinhoward"52},53"authorAssociation": "OWNER",54"body": "Looks good!",55"createdAt": "2025-03-25T04:55:31Z",56"includesCreatedEdit": false,57"isMinimized": false,58"minimizedReason": "",59"reactionGroups": [],60"url": "https://github.com/gavinhoward/bc/pull/89#issuecomment-2750080931",61"viewerDidAuthor": true62}63],64"commits": [65{66"authoredDate": "2025-03-24T22:31:38Z",67"authors": [68{69"email": "[email protected]",70"id": "MDQ6VXNlcjM5MjUwOQ==",71"login": "bolknote",72"name": "Evgeny Stepanischev"73}74],75"committedDate": "2025-03-24T22:31:38Z",76"messageBody": "",77"messageHeadline": "Fix duplicate param check for ref arrays",78"oid": "97756f3dc17b74c2a9c31488e8680a03f2f016eb"79},80{81"authoredDate": "2025-03-25T04:07:25Z",82"authors": [83{84"email": "[email protected]",85"id": "MDQ6VXNlcjM5MjUwOQ==",86"login": "bolknote",87"name": "Evgeny Stepanischev"88}89],90"committedDate": "2025-03-25T04:07:25Z",91"messageBody": "",92"messageHeadline": "Fix coding style",93"oid": "facbd16ceecdd72015abe21f6f4fe4d686b8e66b"94},95{96"authoredDate": "2025-03-25T04:10:52Z",97"authors": [98{99"email": "[email protected]",100"id": "MDQ6VXNlcjM5MjUwOQ==",101"login": "bolknote",102"name": "Evgeny Stepanischev"103}104],105"committedDate": "2025-03-25T04:10:52Z",106"messageBody": "This test ensures the interpreter correctly rejects functions with\nduplicate parameter names, even when one is a reference array (*t[]).",107"messageHeadline": "Add test for duplicate ref array parameters",108"oid": "a10b2fd6a2b77325dc981a8ce296d1c22c47ba0a"109}110],111"createdAt": "2025-03-24T22:35:24Z",112"deletions": 2,113"files": [114{115"path": "include/lang.h",116"additions": 4,117"deletions": 0118},119{120"path": "src/lang.c",121"additions": 3,122"deletions": 2123},124{125"path": "tests/bc/errors/39.txt",126"additions": 1,127"deletions": 0128}129],130"fullDatabaseId": "2414968976",131"headRefName": "master",132"headRefOid": "a10b2fd6a2b77325dc981a8ce296d1c22c47ba0a",133"headRepository": {134"id": "R_kgDOOARsdw",135"name": "bc"136},137"headRepositoryOwner": {138"id": "MDQ6VXNlcjM5MjUwOQ==",139"name": "Evgeny Stepanischev",140"login": "bolknote"141},142"id": "PR_kwDOCL0xJc6P8YCQ",143"isCrossRepository": true,144"isDraft": false,145"labels": [],146"latestReviews": [147{148"id": "",149"author": {150"login": "gavinhoward"151},152"authorAssociation": "OWNER",153"body": "I'll be upfront: I have accepted this because it passes the tests, and yes, it is a bug.\r\n\r\nHowever, if you run `./scripts/format.sh` on the repo before I do that, I won't have to adjust the style, which would hide your contribution for the `if` statement in `src/lang.c`.\r\n\r\nIf you could do that, I'd appreciate it, and you would get to keep your credit. If not, no problem; just tell me.",154"submittedAt": "2025-03-25T01:55:21Z",155"includesCreatedEdit": false,156"reactionGroups": [],157"state": "CHANGES_REQUESTED",158"commit": {159"oid": ""160}161}162],163"maintainerCanModify": false,164"mergeCommit": {165"oid": "0013dbee105fad63633ffe11240b18deb3d4bf9e"166},167"mergeStateStatus": "UNKNOWN",168"mergeable": "UNKNOWN",169"mergedAt": "2025-03-25T04:55:24Z",170"mergedBy": {171"id": "MDQ6VXNlcjMxNzI2ODc=",172"is_bot": false,173"login": "gavinhoward",174"name": "Gavin D. Howard"175},176"milestone": null,177"number": 89,178"potentialMergeCommit": null,179"projectCards": [],180"projectItems": [],181"reactionGroups": [],182"reviewDecision": "CHANGES_REQUESTED",183"reviewRequests": [],184"reviews": [185{186"id": "PRR_kwDOCL0xJc6hpxI0",187"author": {188"login": "gavinhoward"189},190"authorAssociation": "OWNER",191"body": "I'll be upfront: I have accepted this because it passes the tests, and yes, it is a bug.\r\n\r\nHowever, if you run `./scripts/format.sh` on the repo before I do that, I won't have to adjust the style, which would hide your contribution for the `if` statement in `src/lang.c`.\r\n\r\nIf you could do that, I'd appreciate it, and you would get to keep your credit. If not, no problem; just tell me.",192"submittedAt": "2025-03-25T01:55:21Z",193"includesCreatedEdit": false,194"reactionGroups": [],195"state": "CHANGES_REQUESTED",196"commit": {197"oid": "97756f3dc17b74c2a9c31488e8680a03f2f016eb"198}199}200],201"state": "MERGED",202"statusCheckRollup": [],203"title": "Fix duplicate param check for ref arrays",204"updatedAt": "2025-03-25T04:55:32Z",205"url": "https://github.com/gavinhoward/bc/pull/89"206},207{208"additions": 21,209"assignees": [],210"author": {211"id": "MDQ6VXNlcjM5MjUwOQ==",212"is_bot": false,213"login": "bolknote",214"name": "Evgeny Stepanischev"215},216"autoMergeRequest": null,217"baseRefName": "master",218"baseRefOid": "79d5bffaa1c74888d62c47342e5b99a96797a8b5",219"body": "```\r\nsrand = 10\r\n\r\nfor (i = 0; i < 1000000; i++) {\r\n\ta = irand(100000000)\r\n\tb = irand(100000000)\r\n\r\n\t. = new_band(a, b)\r\n}\r\n```\r\n\r\ntime bc -l band.bc\r\n\r\nreal\t0m12.768s\r\nuser\t0m12.735s\r\nsys\t0m0.030s\r\n\r\n```\r\nsrand = 10\r\n\r\nfor (i = 0; i < 1000000; i++) {\r\n\ta = irand(100000000)\r\n\tb = irand(100000000)\r\n\r\n\t. = band(a, b)\r\n}\r\n```\r\ntime bc -l band.bc\r\n\r\nreal\t0m25.416s\r\nuser\t0m25.270s\r\nsys\t0m0.119s",220"changedFiles": 1,221"closed": true,222"closedAt": "2025-03-01T05:22:26Z",223"comments": [224{225"id": "IC_kwDOCL0xJc6gdBpI",226"author": {227"login": "gavinhoward"228},229"authorAssociation": "OWNER",230"body": "After convincing myself that your changes are correct, I accept them.\r\n\r\nHowever, I *am* going to adjust the style; the lib2 file gets put into the executable as a string, and I want to eliminate useless characters.",231"createdAt": "2025-03-01T05:22:29Z",232"includesCreatedEdit": false,233"isMinimized": false,234"minimizedReason": "",235"reactionGroups": [],236"url": "https://github.com/gavinhoward/bc/pull/88#issuecomment-2691963464",237"viewerDidAuthor": true238}239],240"commits": [241{242"authoredDate": "2025-02-27T06:55:52Z",243"authors": [244{245"email": "[email protected]",246"id": "MDQ6VXNlcjM5MjUwOQ==",247"login": "bolknote",248"name": "Evgeny Stepanischev"249}250],251"committedDate": "2025-02-27T06:55:52Z",252"messageBody": "",253"messageHeadline": "The band() function has been accelerated almost 2x",254"oid": "4112814ae6456dd8d0455a1a6b1d06f7ab78d59a"255}256],257"createdAt": "2025-02-27T07:03:09Z",258"deletions": 19,259"files": [260{261"path": "gen/lib2.bc",262"additions": 21,263"deletions": 19264}265],266"fullDatabaseId": "2361404896",267"headRefName": "master",268"headRefOid": "4112814ae6456dd8d0455a1a6b1d06f7ab78d59a",269"headRepository": {270"id": "R_kgDOOARsdw",271"name": "bc"272},273"headRepositoryOwner": {274"id": "MDQ6VXNlcjM5MjUwOQ==",275"name": "Evgeny Stepanischev",276"login": "bolknote"277},278"id": "PR_kwDOCL0xJc6MwC3g",279"isCrossRepository": true,280"isDraft": false,281"labels": [],282"latestReviews": [],283"maintainerCanModify": false,284"mergeCommit": {285"oid": "6c12610da98b69e873702479e49218e2944437da"286},287"mergeStateStatus": "UNKNOWN",288"mergeable": "UNKNOWN",289"mergedAt": "2025-03-01T05:22:26Z",290"mergedBy": {291"id": "MDQ6VXNlcjMxNzI2ODc=",292"is_bot": false,293"login": "gavinhoward",294"name": "Gavin D. Howard"295},296"milestone": null,297"number": 88,298"potentialMergeCommit": null,299"projectCards": [],300"projectItems": [],301"reactionGroups": [],302"reviewDecision": "",303"reviewRequests": [],304"reviews": [],305"state": "MERGED",306"statusCheckRollup": [],307"title": "The band() function has been accelerated almost 2x",308"updatedAt": "2025-03-01T05:22:30Z",309"url": "https://github.com/gavinhoward/bc/pull/88"310},311{312"additions": 8,313"assignees": [],314"author": {315"id": "MDQ6VXNlcjQ5NzIxNTU=",316"is_bot": false,317"login": "dag-erling",318"name": "Dag-Erling Smørgrav"319},320"autoMergeRequest": null,321"baseRefName": "master",322"baseRefOid": "ca389548763c40852040e5c028b0869b47a3710f",323"body": "Previously, we would catch `SIGWINCH` and call `el_resize()` from the signal handler. This is unsafe and led to strange behavior such as terminating on second resize. The simplest solution is to let libedit handle `SIGWINCH` itself.\r\n\r\nThis reverts 56bb18255a24 and 89d6c3451a60 and removes all traces of `SIGWINCH` from bc itself, and instead sets the `EL_SIGNAL` flag on the editline context, which causes libedit to detect and handle terminal size changes internally.",324"changedFiles": 5,325"closed": true,326"closedAt": "2025-01-09T03:21:56Z",327"comments": [328{329"id": "IC_kwDOCL0xJc6UKjDG",330"author": {331"login": "gavinhoward"332},333"authorAssociation": "OWNER",334"body": "Thank you for your contribution.\r\n\r\nHowever, I cannot accept it. The man page for libedit says that it installs its own signal handler for a set of signals, one of which is `SIGINT`, which `bc` needs to treat specially. So I cannot use `EL_SIGNAL`. If libedit only handled `SIGWINCH`, this would work.",335"createdAt": "2024-11-19T13:57:00Z",336"includesCreatedEdit": false,337"isMinimized": false,338"minimizedReason": "",339"reactionGroups": [],340"url": "https://github.com/gavinhoward/bc/pull/86#issuecomment-2485792966",341"viewerDidAuthor": true342},343{344"id": "IC_kwDOCL0xJc6UKzkD",345"author": {346"login": "dag-erling"347},348"authorAssociation": "CONTRIBUTOR",349"body": "Did you even test my patch? It works just fine, because (except for `SIGWINCH` and `SIGCONT`) libedit restores the previous signal handler and re-posts the signal after cleaning up.",350"createdAt": "2024-11-19T14:24:15Z",351"includesCreatedEdit": false,352"isMinimized": false,353"minimizedReason": "",354"reactionGroups": [],355"url": "https://github.com/gavinhoward/bc/pull/86#issuecomment-2485860611",356"viewerDidAuthor": false357},358{359"id": "IC_kwDOCL0xJc6ULIip",360"author": {361"login": "gavinhoward"362},363"authorAssociation": "OWNER",364"body": "I tested it on macOS. It did not work with `SIGINT`. I do not have access to a Linux machine, but I will later in the day.\r\n\r\nBut I do not like depending on that behavior. Signals are finicky, and that could expose platform differences.",365"createdAt": "2024-11-19T14:56:46Z",366"includesCreatedEdit": false,367"isMinimized": false,368"minimizedReason": "",369"reactionGroups": [],370"url": "https://github.com/gavinhoward/bc/pull/86#issuecomment-2485946537",371"viewerDidAuthor": true372},373{374"id": "IC_kwDOCL0xJc6ULaEs",375"author": {376"login": "dag-erling"377},378"authorAssociation": "CONTRIBUTOR",379"body": "I developed the patch on macOS, it works perfectly fine there and on FreeBSD. If you have an issue with it, perhaps you can describe the symptoms so I can help you figure it out instead of dismissing it out of hand?",380"createdAt": "2024-11-19T15:22:57Z",381"includesCreatedEdit": false,382"isMinimized": false,383"minimizedReason": "",384"reactionGroups": [],385"url": "https://github.com/gavinhoward/bc/pull/86#issuecomment-2486018348",386"viewerDidAuthor": false387},388{389"id": "IC_kwDOCL0xJc6UMfC7",390"author": {391"login": "gavinhoward"392},393"authorAssociation": "OWNER",394"body": "Please give me some leniency. Testing it is not dismissing it out of hand. I am wary of making changes that may break things. And I have little time.\r\n\r\nHowever, in this case, I decided to test my code as well and found that it had the same problem: that multiple interrupts would not be handled. I found the fix, and it works for your code.\r\n\r\nIt make still take me time to test on Linux and FreeBSD, but this patch may still be viable.",395"createdAt": "2024-11-19T17:16:46Z",396"includesCreatedEdit": false,397"isMinimized": false,398"minimizedReason": "",399"reactionGroups": [],400"url": "https://github.com/gavinhoward/bc/pull/86#issuecomment-2486300859",401"viewerDidAuthor": true402},403{404"id": "IC_kwDOCL0xJc6Zugh4",405"author": {406"login": "gavinhoward"407},408"authorAssociation": "OWNER",409"body": "Tested on Linux, FreeBSD, and macOS. With my fix, it works. There should be a release out soon-ish.\r\n\r\nThank you for your patience.",410"createdAt": "2025-01-09T03:22:42Z",411"includesCreatedEdit": false,412"isMinimized": false,413"minimizedReason": "",414"reactionGroups": [],415"url": "https://github.com/gavinhoward/bc/pull/86#issuecomment-2579105912",416"viewerDidAuthor": true417},418{419"id": "IC_kwDOCL0xJc6aDHFg",420"author": {421"login": "dag-erling"422},423"authorAssociation": "CONTRIBUTOR",424"body": "Thank you!",425"createdAt": "2025-01-10T22:18:03Z",426"includesCreatedEdit": false,427"isMinimized": false,428"minimizedReason": "",429"reactionGroups": [],430"url": "https://github.com/gavinhoward/bc/pull/86#issuecomment-2584506720",431"viewerDidAuthor": false432}433],434"commits": [435{436"authoredDate": "2024-11-12T11:50:39Z",437"authors": [438{439"email": "[email protected]",440"id": "MDQ6VXNlcjQ5NzIxNTU=",441"login": "dag-erling",442"name": "Dag-Erling Smørgrav"443}444],445"committedDate": "2024-11-12T11:59:50Z",446"messageBody": "Previously, we would catch SIGWINCH and call el_resize() from the signal handler. This is unsafe and led to strange behavior such as terminating on second resize. The simplest solution is to let libedit handle SIGWINCH itself.\n\nThis reverts 56bb18255a24 and 89d6c3451a60 and removes all traces of SIGWINCH from bc itself, and instead sets the EL_SIGNAL flag on the editline context, which causes libedit to detect and handle terminal size changes internally.",447"messageHeadline": "Let libedit handle terminal size changes.",448"oid": "e671399e9dc92181219da87e3aa02d44a0b4a4c3"449}450],451"createdAt": "2024-11-12T12:02:29Z",452"deletions": 79,453"files": [454{455"path": "include/history.h",456"additions": 0,457"deletions": 24458},459{460"path": "include/status.h",461"additions": 0,462"deletions": 5463},464{465"path": "src/history.c",466"additions": 2,467"deletions": 12468},469{470"path": "src/read.c",471"additions": 6,472"deletions": 12473},474{475"path": "src/vm.c",476"additions": 0,477"deletions": 26478}479],480"fullDatabaseId": "2174734014",481"headRefName": "des/sigwinch",482"headRefOid": "e671399e9dc92181219da87e3aa02d44a0b4a4c3",483"headRepository": {484"id": "R_kgDONOIgRA",485"name": "bc"486},487"headRepositoryOwner": {488"id": "MDQ6VXNlcjQ5NzIxNTU=",489"name": "Dag-Erling Smørgrav",490"login": "dag-erling"491},492"id": "PR_kwDOCL0xJc6Bn86-",493"isCrossRepository": true,494"isDraft": false,495"labels": [],496"latestReviews": [],497"maintainerCanModify": false,498"mergeCommit": {499"oid": "79d5bffaa1c74888d62c47342e5b99a96797a8b5"500},501"mergeStateStatus": "UNKNOWN",502"mergeable": "UNKNOWN",503"mergedAt": "2025-01-09T03:21:55Z",504"mergedBy": {505"id": "MDQ6VXNlcjMxNzI2ODc=",506"is_bot": false,507"login": "gavinhoward",508"name": "Gavin D. Howard"509},510"milestone": null,511"number": 86,512"potentialMergeCommit": null,513"projectCards": [],514"projectItems": [],515"reactionGroups": [],516"reviewDecision": "",517"reviewRequests": [],518"reviews": [],519"state": "MERGED",520"statusCheckRollup": [],521"title": "Let libedit handle terminal size changes.",522"updatedAt": "2025-01-10T22:18:04Z",523"url": "https://github.com/gavinhoward/bc/pull/86"524},525{526"additions": 12,527"assignees": [],528"author": {529"id": "U_kgDOCgjy1g",530"is_bot": false,531"login": "henke9600",532"name": ""533},534"autoMergeRequest": null,535"baseRefName": "master",536"baseRefOid": "c5b7724ee07daa729f0123c6024223b834de42e3",537"body": "It's possible that the warning being ignored wasn't enabled in the first place, so always enabling it again is wrong.\r\n\r\nIn practice, this resulted in unexpected -Wdisabled-macro-expansion warnings when compiling against musl libc.",538"changedFiles": 3,539"closed": true,540"closedAt": "2024-09-21T19:14:25Z",541"comments": [542{543"id": "IC_kwDOCL0xJc6M-4FI",544"author": {545"login": "gavinhoward"546},547"authorAssociation": "OWNER",548"body": "I have no comments. You followed style, and I agree that this was a problem. In fact, I had been intending to fix it, but I kept forgetting.\r\n\r\nThe question now is whether I should release. Do you know of any musl-based distros that use this `bc`? If not, I may not worry about releasing.",549"createdAt": "2024-09-21T19:15:47Z",550"includesCreatedEdit": false,551"isMinimized": false,552"minimizedReason": "",553"reactionGroups": [],554"url": "https://github.com/gavinhoward/bc/pull/84#issuecomment-2365292872",555"viewerDidAuthor": true556},557{558"id": "IC_kwDOCL0xJc6M-6p8",559"author": {560"login": "henke9600"561},562"authorAssociation": "CONTRIBUTOR",563"body": "Not sure. I use it in my hobby distro, but i can live with the warning :slightly_smiling_face: ",564"createdAt": "2024-09-21T19:57:46Z",565"includesCreatedEdit": false,566"isMinimized": false,567"minimizedReason": "",568"reactionGroups": [],569"url": "https://github.com/gavinhoward/bc/pull/84#issuecomment-2365303420",570"viewerDidAuthor": false571},572{573"id": "IC_kwDOCL0xJc6M_b08",574"author": {575"login": "gavinhoward"576},577"authorAssociation": "OWNER",578"body": ":)\r\n\r\nI think I'll do a release soonish for Gentoo's sake; technically, Gentoo users can use musl.",579"createdAt": "2024-09-22T03:16:02Z",580"includesCreatedEdit": false,581"isMinimized": false,582"minimizedReason": "",583"reactionGroups": [],584"url": "https://github.com/gavinhoward/bc/pull/84#issuecomment-2365439292",585"viewerDidAuthor": true586},587{588"id": "IC_kwDOCL0xJc6NRQWz",589"author": {590"login": "gavinhoward"591},592"authorAssociation": "OWNER",593"body": "`7.0.3` is out. I hope it works for you.",594"createdAt": "2024-09-24T04:12:15Z",595"includesCreatedEdit": false,596"isMinimized": false,597"minimizedReason": "",598"reactionGroups": [],599"url": "https://github.com/gavinhoward/bc/pull/84#issuecomment-2370110899",600"viewerDidAuthor": true601}602],603"commits": [604{605"authoredDate": "2024-09-21T15:30:32Z",606"authors": [607{608"email": "[email protected]",609"id": "U_kgDOCgjy1g",610"login": "henke9600",611"name": "Henrik Lindström"612}613],614"committedDate": "2024-09-21T15:47:44Z",615"messageBody": "It's possible that the warning being ignored wasn't enabled in the first\nplace, so always enabling it again is wrong.\n\nIn practice, this resulted in unexpected -Wdisabled-macro-expansion warnings\nwhen compiling against musl libc.\n\nSigned-off-by: Henrik Lindström <[email protected]>",616"messageHeadline": "Don't unconditionally enable warnings after ignoring them",617"oid": "16c4f913ed0935a878ce2644aab2ccc0da05c8d0"618}619],620"createdAt": "2024-09-21T15:49:45Z",621"deletions": 6,622"files": [623{624"path": "src/file.c",625"additions": 2,626"deletions": 1627},628{629"path": "src/program.c",630"additions": 8,631"deletions": 4632},633{634"path": "src/vm.c",635"additions": 2,636"deletions": 1637}638],639"fullDatabaseId": "2084576864",640"headRefName": "master",641"headRefOid": "16c4f913ed0935a878ce2644aab2ccc0da05c8d0",642"headRepository": {643"id": "R_kgDOL0az5w",644"name": "bc"645},646"headRepositoryOwner": {647"id": "U_kgDOCgjy1g",648"login": "henke9600"649},650"id": "PR_kwDOCL0xJc58QB5g",651"isCrossRepository": true,652"isDraft": false,653"labels": [],654"latestReviews": [],655"maintainerCanModify": false,656"mergeCommit": {657"oid": "e5d675785383ce6142116243aa63d21e5afb54f7"658},659"mergeStateStatus": "UNKNOWN",660"mergeable": "UNKNOWN",661"mergedAt": "2024-09-21T19:14:25Z",662"mergedBy": {663"id": "MDQ6VXNlcjMxNzI2ODc=",664"is_bot": false,665"login": "gavinhoward",666"name": "Gavin D. Howard"667},668"milestone": null,669"number": 84,670"potentialMergeCommit": null,671"projectCards": [],672"projectItems": [],673"reactionGroups": [],674"reviewDecision": "",675"reviewRequests": [],676"reviews": [],677"state": "MERGED",678"statusCheckRollup": [],679"title": "Don't unconditionally enable warnings after ignoring them",680"updatedAt": "2024-09-24T04:12:15Z",681"url": "https://github.com/gavinhoward/bc/pull/84"682},683{684"additions": 1,685"assignees": [],686"author": {687"id": "U_kgDOBqIXaQ",688"is_bot": false,689"login": "GregTonoski",690"name": "Greg Tonoski"691},692"autoMergeRequest": null,693"baseRefName": "master",694"baseRefOid": "324c30985c0d3d6f918fe81f2d8750c0bd1c78b1",695"body": "",696"changedFiles": 1,697"closed": true,698"closedAt": "2024-08-31T18:15:37Z",699"comments": [700{701"id": "IC_kwDOCL0xJc6KdjgL",702"author": {703"login": "gavinhoward"704},705"authorAssociation": "OWNER",706"body": "Thank you for catching that!\r\n\r\nUnfortunately, `A.1.md` is actually generated from `bc.1.md.in`. I edited `bc.1.md.in` instead and regenerated the manpages.\r\n\r\nI wasn't able to set you as the author of the commit because I don't know your email address, but I will if you want.",707"createdAt": "2024-08-31T18:16:53Z",708"includesCreatedEdit": false,709"isMinimized": false,710"minimizedReason": "",711"reactionGroups": [712{713"content": "THUMBS_UP",714"users": {715"totalCount": 1716}717}718],719"url": "https://github.com/gavinhoward/bc/pull/81#issuecomment-2323003403",720"viewerDidAuthor": true721}722],723"commits": [724{725"authoredDate": "2024-08-31T07:52:27Z",726"authors": [727{728"email": "[email protected]",729"id": "U_kgDOBqIXaQ",730"login": "GregTonoski",731"name": "Greg Tonoski"732}733],734"committedDate": "2024-08-31T07:52:27Z",735"messageBody": "",736"messageHeadline": "Update A.1.md minor correction - number instead of integer",737"oid": "8269063d303979de8188f4810a1c6b070494e025"738}739],740"createdAt": "2024-08-31T07:52:34Z",741"deletions": 1,742"files": [743{744"path": "manuals/bc/A.1.md",745"additions": 1,746"deletions": 1747}748],749"fullDatabaseId": "2047601609",750"headRefName": "patch-1",751"headRefOid": "8269063d303979de8188f4810a1c6b070494e025",752"headRepository": {753"id": "R_kgDOMq13Zg",754"name": "bc"755},756"headRepositoryOwner": {757"id": "U_kgDOBqIXaQ",758"name": "Greg Tonoski",759"login": "GregTonoski"760},761"id": "PR_kwDOCL0xJc56C-vJ",762"isCrossRepository": true,763"isDraft": false,764"labels": [],765"latestReviews": [],766"maintainerCanModify": false,767"mergeCommit": null,768"mergeStateStatus": "UNKNOWN",769"mergeable": "UNKNOWN",770"mergedAt": null,771"mergedBy": null,772"milestone": null,773"number": 81,774"potentialMergeCommit": null,775"projectCards": [],776"projectItems": [],777"reactionGroups": [],778"reviewDecision": "",779"reviewRequests": [],780"reviews": [],781"state": "CLOSED",782"statusCheckRollup": [],783"title": "Update A.1.md minor correction - number instead of integer",784"updatedAt": "2024-08-31T18:16:54Z",785"url": "https://github.com/gavinhoward/bc/pull/81"786},787{788"additions": 1,789"assignees": [],790"author": {791"id": "U_kgDOCgjy1g",792"is_bot": false,793"login": "henke9600",794"name": ""795},796"autoMergeRequest": null,797"baseRefName": "master",798"baseRefOid": "3278daef0079c20ccaed3a8666457c531dbe576b",799"body": "This avoids the `./configure.sh: 1693: [: unexpected operator` error when using dash.",800"changedFiles": 1,801"closed": true,802"closedAt": "2024-04-30T01:57:03Z",803"comments": [804{805"id": "IC_kwDOCL0xJc58OZbM",806"author": {807"login": "gavinhoward"808},809"authorAssociation": "OWNER",810"body": "Sorry for the wait.\r\n\r\nYes, you are correct that that is a bug. Yes, your fix is correct. Accepted without comment!\r\n\r\nThank you for your contribution!",811"createdAt": "2024-04-30T01:57:40Z",812"includesCreatedEdit": false,813"isMinimized": false,814"minimizedReason": "",815"reactionGroups": [],816"url": "https://github.com/gavinhoward/bc/pull/76#issuecomment-2084148940",817"viewerDidAuthor": true818}819],820"commits": [821{822"authoredDate": "2024-04-28T16:12:24Z",823"authors": [824{825"email": "[email protected]",826"id": "U_kgDOCgjy1g",827"login": "henke9600",828"name": "Henrik Lindström"829}830],831"committedDate": "2024-04-28T16:12:24Z",832"messageBody": "",833"messageHeadline": "Make configure.sh posix compliant",834"oid": "938fc2cbcace3fb1fb353a5befff1b4a81180350"835}836],837"createdAt": "2024-04-28T16:25:19Z",838"deletions": 1,839"files": [840{841"path": "configure.sh",842"additions": 1,843"deletions": 1844}845],846"fullDatabaseId": "1844494404",847"headRefName": "master",848"headRefOid": "938fc2cbcace3fb1fb353a5befff1b4a81180350",849"headRepository": {850"id": "R_kgDOL0az5w",851"name": "bc"852},853"headRepositoryOwner": {854"id": "U_kgDOCgjy1g",855"login": "henke9600"856},857"id": "PR_kwDOCL0xJc5t8MBE",858"isCrossRepository": true,859"isDraft": false,860"labels": [],861"latestReviews": [],862"maintainerCanModify": false,863"mergeCommit": {864"oid": "59cf3b86eb4cafb6d7aa164d988a8c14c287e7f8"865},866"mergeStateStatus": "UNKNOWN",867"mergeable": "UNKNOWN",868"mergedAt": "2024-04-30T01:57:03Z",869"mergedBy": {870"id": "MDQ6VXNlcjMxNzI2ODc=",871"is_bot": false,872"login": "gavinhoward",873"name": "Gavin D. Howard"874},875"milestone": null,876"number": 76,877"potentialMergeCommit": null,878"projectCards": [],879"projectItems": [],880"reactionGroups": [],881"reviewDecision": "",882"reviewRequests": [],883"reviews": [],884"state": "MERGED",885"statusCheckRollup": [],886"title": "Make configure.sh posix compliant",887"updatedAt": "2024-04-30T01:57:41Z",888"url": "https://github.com/gavinhoward/bc/pull/76"889},890{891"additions": 1,892"assignees": [],893"author": {894"id": "U_kgDOB2enHg",895"is_bot": false,896"login": "naggamura",897"name": ""898},899"autoMergeRequest": null,900"baseRefName": "master",901"baseRefOid": "1a381d61b079fc3548d3e4dee3a8ccd9200a3f87",902"body": "Found a printing error.\r\nTry obase=2; 2^99; 2^100; 2^105; you'll get it right away.",903"changedFiles": 1,904"closed": true,905"closedAt": "2023-12-22T15:38:08Z",906"comments": [907{908"id": "IC_kwDOCL0xJc5vVPQZ",909"author": {910"login": "gavinhoward"911},912"authorAssociation": "OWNER",913"body": "You are correct; that is a bug.\r\n\r\nYour fix is correct; I got the condition backwards. Accepted without comment.\r\n\r\nSorry for taking so long, I struggle to read my own code; this is why I put in so many \"useless\" comments!\r\n\r\nAlso, I can think of another place that this *could have been* a problem and quickly tested it.\r\n\r\nThe problem is in printing in bases above base 16, where multiple characters may be printed for one digit.\r\n\r\nGuess what? I tested your fix after accepting it (I wanted your name in the Contributors list regardless), and your fix works for that too!\r\n\r\nTry this:\r\n\r\n```\r\n$ BC_LINE_LENGTH=77 bc\r\n>>> obase=128\r\n>>> 2^126\r\n 001 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000\r\n>>> quit\r\n```\r\n\r\nThat's what it is with the fix. Without, the bug shows:\r\n\r\n```\r\n$ BC_LINE_LENGTH=77 bc\r\n>>> obase=128\r\n>>> 2^126\r\n 001 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 00\\\r\n0\r\n>>> quit\r\n```\r\n\r\nI checked your fix with `BC_LINE_LENGTH=78` and `BC_LINE_LENGTH=76`, and your fix properly handles both.\r\n\r\nI am confident in your fix.\r\n\r\nAnyway, I'll start my release process and put out a release with your fix ASAP.",914"createdAt": "2023-12-22T15:53:14Z",915"includesCreatedEdit": false,916"isMinimized": false,917"minimizedReason": "",918"reactionGroups": [],919"url": "https://github.com/gavinhoward/bc/pull/74#issuecomment-1867838489",920"viewerDidAuthor": true921},922{923"id": "IC_kwDOCL0xJc5vWpvU",924"author": {925"login": "naggamura"926},927"authorAssociation": "CONTRIBUTOR",928"body": "Oh I helped... ^^; I'm happy.\r\nI'm Jonathan Kim",929"createdAt": "2023-12-23T05:14:48Z",930"includesCreatedEdit": false,931"isMinimized": false,932"minimizedReason": "",933"reactionGroups": [],934"url": "https://github.com/gavinhoward/bc/pull/74#issuecomment-1868209108",935"viewerDidAuthor": false936},937{938"id": "IC_kwDOCL0xJc5vWqt8",939"author": {940"login": "gavinhoward"941},942"authorAssociation": "OWNER",943"body": "Yes, you did! And your fix has now passed the release process untouched.\r\n\r\nPlease don't think I'm a jerk for your previous PR; I try to not be.\r\n\r\nI just have ridiculously high standards and personal weaknesses in programming. And an eccentric style.\r\n\r\nIn fact, I [don't accept contributions at all][1] in my [next project][2]. Nothing against people, but I really struggle with patches. It's so bad that I actually can't get a programming job because of that. If you work in the industry, you're doing better than me.\r\n\r\nAnd nice to meet you. :)\r\n\r\n[1]: https://git.yzena.com/Yzena/Yc#user-content-open-source-not-open-contribution\r\n[2]: https://git.yzena.com/Yzena/Yc",944"createdAt": "2023-12-23T05:37:53Z",945"includesCreatedEdit": false,946"isMinimized": false,947"minimizedReason": "",948"reactionGroups": [],949"url": "https://github.com/gavinhoward/bc/pull/74#issuecomment-1868213116",950"viewerDidAuthor": true951}952],953"commits": [954{955"authoredDate": "2023-12-22T13:22:27Z",956"authors": [957{958"email": "[email protected]",959"id": "U_kgDOB2enHg",960"login": "naggamura",961"name": "jonathan"962}963],964"committedDate": "2023-12-22T13:22:27Z",965"messageBody": "Try obase=2; 2^105;",966"messageHeadline": "Fixed printing error.",967"oid": "930cb2fd56d7851ecc1af3de16b4b7357b0b5ba8"968}969],970"createdAt": "2023-12-22T13:25:36Z",971"deletions": 1,972"files": [973{974"path": "src/num.c",975"additions": 1,976"deletions": 1977}978],979"fullDatabaseId": "1655098845",980"headRefName": "master",981"headRefOid": "930cb2fd56d7851ecc1af3de16b4b7357b0b5ba8",982"headRepository": null,983"headRepositoryOwner": {984"id": "U_kgDOB2enHg",985"login": "naggamura"986},987"id": "PR_kwDOCL0xJc5ips3d",988"isCrossRepository": true,989"isDraft": false,990"labels": [],991"latestReviews": [],992"maintainerCanModify": false,993"mergeCommit": {994"oid": "39bd2c5622167a3c092ca9e2c38886ff288ba508"995},996"mergeStateStatus": "UNKNOWN",997"mergeable": "UNKNOWN",998"mergedAt": "2023-12-22T15:38:08Z",999"mergedBy": {1000"id": "MDQ6VXNlcjMxNzI2ODc=",1001"is_bot": false,1002"login": "gavinhoward",1003"name": "Gavin D. Howard"1004},1005"milestone": null,1006"number": 74,1007"potentialMergeCommit": null,1008"projectCards": [],1009"projectItems": [],1010"reactionGroups": [],1011"reviewDecision": "",1012"reviewRequests": [],1013"reviews": [],1014"state": "MERGED",1015"statusCheckRollup": [],1016"title": "Fixed printing error.",1017"updatedAt": "2023-12-23T05:37:55Z",1018"url": "https://github.com/gavinhoward/bc/pull/74"1019},1020{1021"additions": 657,1022"assignees": [],1023"author": {1024"id": "U_kgDOB2enHg",1025"is_bot": false,1026"login": "naggamura",1027"name": ""1028},1029"autoMergeRequest": null,1030"baseRefName": "master",1031"baseRefOid": "fcbe9d68ccc964fda12457ebbf687a27f57ff31f",1032"body": "I'm sorry I missed many things on last PR.\r\nI followed your instructions step by step.\r\n\r\nImproved SQRT needs no long division in iteration.\r\nOnly one long division is needed for compose an initial estimation.\r\n\r\nNo meaningful difference for small input.\r\n\r\nFor large input, about 2.4 times faster, no meaningful difference in memory usage.\r\n\r\nHere is the result for large input.\r\n\r\n( 'CC=clang CFLAGS=-flto ./configure -O3' is used for configuring. )\r\n[stat_c1.txt](https://github.com/gavinhoward/bc/files/13696239/stat_c1.txt)\r\n[stat_c4.txt](https://github.com/gavinhoward/bc/files/13696240/stat_c4.txt)\r\n\r\nsqrt1_large.txt : by your code.\r\nsqrt2_large.txt : by my code.\r\n\r\n---------------------------------\r\n\r\nElapsed time for large input.\r\n\r\nx ../../sqrt1_large.txt\r\n+ ../../sqrt2_large.txt\r\n+--------------------------------------------------------------------------------+\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x |\r\n| + x x|\r\n| ++ x xx|\r\n|+++ x xx|\r\n|+++ x xx|\r\n|+++ xxxx|\r\n|+++ xxxx|\r\n|+++ x xxxx|\r\n|+++ x xxxx|\r\n|+++ x xxxx|\r\n|++++ x xxxx|\r\n| A| |_A| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 87.84 91.81 90.215 90.3572 1.0769137\r\n+ 50 36.96 38.71 37.805 37.8088 0.44755408\r\nDifference at 99.5% confidence\r\n -52.5484 +/- 0.523644\r\n -58.1563% +/- 0.315605%\r\n (Student's t, pooled s = 0.824636)\r\n\r\n\r\n----------------------\r\n\r\n\r\nMemory for large input.\r\n\r\nx ../../sqrt1_large.txt\r\n+ ../../sqrt2_large.txt\r\n+--------------------------------------------------------------------------------+\r\n| + |\r\n| + x |\r\n| + x |\r\n| + + x x x |\r\n| + + + x x x |\r\n| + + ++ ++ xx x x x x x |\r\n|+ ++++ +++++ + +++ x xx x x x xx xxx xx|\r\n|+ + +++++++++++++++++ * + * x xxxxxxxxx xxxx xxxx xx|\r\n| |_______AM_______| |______M__A_________| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 5376 5596 5494 5508.96 51.80535\r\n+ 50 5184 5412 5302 5301.12 44.115174\r\nDifference at 99.5% confidence\r\n -207.84 +/- 30.5525\r\n -3.77276% +/- 0.542566%\r\n (Student's t, pooled s = 48.1141)\r\n\r\n\r\n- END -",1033"changedFiles": 3,1034"closed": true,1035"closedAt": "2023-12-20T01:50:17Z",1036"comments": [1037{1038"id": "IC_kwDOCL0xJc5u0b9I",1039"author": {1040"login": "gavinhoward"1041},1042"authorAssociation": "OWNER",1043"body": "Unfortunately, you still did not check everything. That's probably my fault because I didn't tell you everything.\r\n\r\nNevertheless, this is what I found this time:\r\n\r\n* `CC=clang ./configure -pDBG; make`, my standard debug build, failed to build.\r\n* `CC=clang ./configure -gO0; make; make test`, a less strict debug build, failed the test suite.\r\n* `CC=clang ./configure -pGDH; make`, my standard release build for myself, failed to build.\r\n* `CC=clang ./configure -pGNU; make; make test`, the standard release build for Linux, failed the test suite.\r\n* `CC=gcc ./configure -pGNU; make; make test`, the same standard Linux build but with `gcc`, also failed the test suite.\r\n* `CC=clang ./configure -pBSD; make; make test`, the standard release build for FreeBSD and friends, failed the test suite.\r\n* `CC=gcc ./configure -pBSD; make; make test`, the same standard FreeBSD build but with `gcc`, also failed the test suite.\r\n\r\nIn addition, what failed on the test suite was off by a lot; the result I got for all cases was:\r\n\r\n```\r\nRunning bc sqrt...FAIL!!!\r\n12c12\r\n< .0000000000000035071355833500363\r\n---\r\n> .8915580480000035071355833500363\r\nbc failed test sqrt\r\n```\r\n\r\nAs you can see, the numbers are the same, except at the beginning, which means that answer was about as far off as it could be.\r\n\r\nIn addition, when I ran this:\r\n\r\n```\r\n$ ./configure -gO0 -v\r\n$ make\r\n$ make test\r\n```\r\n\r\nwhich is a Valgrind-enabled build, I got this:\r\n\r\n```\r\nRunning bc sqrt...==47836== Memcheck, a memory error detector\r\n==47836== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.\r\n==47836== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info\r\n==47836== Command: bin/bc -lqc ./tests/bc/sqrt.txt\r\n==47836==\r\n==47836== Invalid write of size 8\r\n==47836== at 0x484C96E: memset (vg_replace_strmem.c:1386)\r\n==47836== by 0x12A28F: bc_int_elementary_mul (num.c:4274)\r\n==47836== by 0x1253AA: bc_int_k_mul (num.c:4327)\r\n==47836== by 0x124972: bc_num_sqrt (num.c:4636)\r\n==47836== by 0x13156F: bc_program_builtin (program.c:1990)\r\n==47836== by 0x12DB0C: bc_program_exec (program.c:3332)\r\n==47836== by 0x13D623: bc_vm_process (vm.c:1046)\r\n==47836== by 0x13CCA5: bc_vm_file (vm.c:1103)\r\n==47836== by 0x13C117: bc_vm_exec (vm.c:1498)\r\n==47836== by 0x13B4E1: bc_vm_boot (vm.c:1718)\r\n==47836== by 0x10C0CC: bc_main (bc.c:62)\r\n==47836== by 0x119995: main (main.c:108)\r\n==47836== Address 0x4aa2270 is 32 bytes inside a block of size 36 alloc'd\r\n==47836== at 0x4840784: malloc (vg_replace_malloc.c:442)\r\n==47836== by 0x13A4C3: bc_vm_malloc (vm.c:810)\r\n==47836== by 0x11BA76: bc_num_init (num.c:3368)\r\n==47836== by 0x1244B1: bc_num_sqrt (num.c:4567)\r\n==47836== by 0x13156F: bc_program_builtin (program.c:1990)\r\n==47836== by 0x12DB0C: bc_program_exec (program.c:3332)\r\n==47836== by 0x13D623: bc_vm_process (vm.c:1046)\r\n==47836== by 0x13CCA5: bc_vm_file (vm.c:1103)\r\n==47836== by 0x13C117: bc_vm_exec (vm.c:1498)\r\n==47836== by 0x13B4E1: bc_vm_boot (vm.c:1718)\r\n==47836== by 0x10C0CC: bc_main (bc.c:62)\r\n==47836== by 0x119995: main (main.c:108)\r\n==47836==\r\n==47836==\r\n==47836== HEAP SUMMARY:\r\n==47836== in use at exit: 0 bytes in 0 blocks\r\n==47836== total heap usage: 1,633 allocs, 1,633 frees, 331,419 bytes allocated\r\n==47836==\r\n==47836== All heap blocks were freed -- no leaks are possible\r\n==47836==\r\n==47836== For lists of detected and suppressed errors, rerun with: -s\r\n==47836== ERROR SUMMARY: 8 errors from 1 contexts (suppressed: 0 from 0)\r\nFAIL!!!\r\nbc failed test 'sqrt' with error code 100\r\n```\r\n\r\nThat needs to be fixed, both the out-of-bounds write and the unaligned write.\r\n\r\nIf you're wondering how much testing I do, do this:\r\n\r\n* Create two clones of your branch in separate directories, which I will call `bc1/` and `bc2/`.\r\n* In `bc1/`, run `scripts/release.sh 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1`.\r\n* In `bc2/`, run `scripts/release.sh 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1`.\r\n* Run them both in separate terminals and at the same time.\r\n* Leave it overnight.\r\n\r\nYep, you heard that last bit right: my full test run is an overnight thing. And I run both because one does `clang`, and one does `gcc`.\r\n\r\nMoving on to benchmarks, I ran\r\n\r\n```\r\n$ CC=clang CFLAGS=-flto ./configure -O3\r\n$ make\r\n```\r\n\r\nin both branches. Then I ran\r\n\r\n```\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_sqrt_small > ../sqrt2_small.txt\r\n```\r\n\r\nin your branch, copied `benchmarks/bc/newton_raphson_sqrt_small.txt` to my branch and ran\r\n\r\n```\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_sqrt_small > ../sqrt1_small.txt\r\n```\r\n\r\nThese are my results:\r\n\r\n```\r\n$ ./scripts/ministat -w 80 -c99.5 -C1 ../sqrt1_small.txt ../sqrt2_small.txt\r\nx ../sqrt1_small.txt\r\n+ ../sqrt2_small.txt\r\n+--------------------------------------------------------------------------------+\r\n| + x |\r\n| + x x |\r\n| + x x |\r\n| + + + x x |\r\n| + + + x x x |\r\n| + + + + x x x |\r\n| + + + + x x x |\r\n| + + + + x x x |\r\n| + + + + x x x |\r\n| + + + + + x x x x x x |\r\n| + + + + + + x x x x x x x |\r\n| + + + + + + x x x x x x x |\r\n|+ + + + + + + * x x x x x x x|\r\n| |________A_M_____| |________MA________| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 1.45 1.52 1.48 1.4806 0.016463937\r\n+ 50 1.38 1.45 1.42 1.4164 0.015220824\r\nDifference at 99.5% confidence\r\n -0.0642 +/- 0.0100677\r\n -4.33608% +/- 0.664237%\r\n (Student's t, pooled s = 0.0158546)\r\n$ ./scripts/ministat -w 80 -c99.5 -C4 ../sqrt1_small.txt ../sqrt2_small.txt\r\nx ../sqrt1_small.txt\r\n+ ../sqrt2_small.txt\r\n+--------------------------------------------------------------------------------+\r\n| + |\r\n| + |\r\n| x + |\r\n| x x + |\r\n| x x + + |\r\n| x x +x + + + |\r\n| x + xx +x + x + + |\r\n| x *+ xx *x++ xx + + + |\r\n| xx +*+xxxx x**++ xx + + + |\r\n|x x xx +*+xxxx x***++xx*x+++++ + ++|\r\n| |__________A_|_______M|A_________| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 18956 19244 19168 19168.16 57.880722\r\n+ 50 19144 19376 19224 19232.88 54.73373\r\nDifference at 99.5% confidence\r\n 64.72 +/- 35.769\r\n 0.337643% +/- 0.186939%\r\n (Student's t, pooled s = 56.3292)\r\n```\r\n\r\nYours was slightly faster and used slightly more memory.\r\n\r\nI ran the same benchmark for large, but only for one sample each, and my numbers say that yours are accurate for that benchmark.\r\n\r\nHowever, I cannot accept code that fails tests or has memory bugs. In addition, because of the test failures, you can expect that I will run a lot more tests on your code before I accept.\r\n\r\nSo I won't close this PR, but you need to fix the problems above (by running that `release.sh` script both ways and fixing every problem) before I'll look at it again.\r\n\r\nAlso, I can't understand `sqrt_2.png`. I can follow `sqrt_1.png`, but I need you to redo `sqrt_2.png` because I also won't accept the code if I don't understand it.",1044"createdAt": "2023-12-17T18:09:30Z",1045"includesCreatedEdit": false,1046"isMinimized": false,1047"minimizedReason": "",1048"reactionGroups": [],1049"url": "https://github.com/gavinhoward/bc/pull/73#issuecomment-1859239752",1050"viewerDidAuthor": true1051},1052{1053"id": "IC_kwDOCL0xJc5u10BR",1054"author": {1055"login": "naggamura"1056},1057"authorAssociation": "CONTRIBUTOR",1058"body": "BcNum.len is managed as tight as possible. So clearing upper digits is needed for like sqrt(0.000...000xyz...) \r\nPassed 'make test'\r\n---",1059"createdAt": "2023-12-18T05:52:00Z",1060"includesCreatedEdit": false,1061"isMinimized": false,1062"minimizedReason": "",1063"reactionGroups": [],1064"url": "https://github.com/gavinhoward/bc/pull/73#issuecomment-1859600465",1065"viewerDidAuthor": false1066},1067{1068"id": "IC_kwDOCL0xJc5u12rZ",1069"author": {1070"login": "naggamura"1071},1072"authorAssociation": "CONTRIBUTOR",1073"body": "Last push was not the latest version. Pushed again.\r\n\r\nAnyway, test again and passed all tests.\r\n\r\n...\r\n==5965== \r\n==5965== HEAP SUMMARY:\r\n==5965== in use at exit: 0 bytes in 0 blocks\r\n==5965== total heap usage: 1,520 allocs, 1,520 frees, 205,685 bytes allocated\r\n==5965== \r\n==5965== All heap blocks were freed -- no leaks are possible\r\n==5965== \r\n==5965== For counts of detected and suppressed errors, rerun with: -v\r\n==5965== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)\r\npass\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\n\r\nAll bc tests passed.\r\n\r\n...\r\n...\r\n\r\n==6927== \r\n==6927== HEAP SUMMARY:\r\n==6927== in use at exit: 0 bytes in 0 blocks\r\n==6927== total heap usage: 73 allocs, 73 frees, 37,886 bytes allocated\r\n==6927== \r\n==6927== All heap blocks were freed -- no leaks are possible\r\n==6927== \r\n==6927== For counts of detected and suppressed errors, rerun with: -v\r\n==6927== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)\r\npass\r\nRunning dc directory test...pass\r\nRunning dc binary file test...pass\r\nRunning dc binary stdin test...pass\r\n\r\nAll dc tests passed.\r\n\r\n***********************************************************************\r\n\r\n----",1074"createdAt": "2023-12-18T06:05:29Z",1075"includesCreatedEdit": true,1076"isMinimized": false,1077"minimizedReason": "",1078"reactionGroups": [],1079"url": "https://github.com/gavinhoward/bc/pull/73#issuecomment-1859611353",1080"viewerDidAuthor": false1081},1082{1083"id": "IC_kwDOCL0xJc5u3LdX",1084"author": {1085"login": "naggamura"1086},1087"authorAssociation": "CONTRIBUTOR",1088"body": "Doing scripts/release.sh test...",1089"createdAt": "2023-12-18T09:47:53Z",1090"includesCreatedEdit": false,1091"isMinimized": false,1092"minimizedReason": "",1093"reactionGroups": [],1094"url": "https://github.com/gavinhoward/bc/pull/73#issuecomment-1859958615",1095"viewerDidAuthor": false1096},1097{1098"id": "IC_kwDOCL0xJc5u_Gjj",1099"author": {1100"login": "naggamura"1101},1102"authorAssociation": "CONTRIBUTOR",1103"body": "Passed the tests.\r\n\r\nBenchmarks\r\n\r\n[stat_small_c1.txt](https://github.com/gavinhoward/bc/files/13712108/stat_small_c1.txt)\r\n[stat_small_c4.txt](https://github.com/gavinhoward/bc/files/13712109/stat_small_c4.txt)\r\n[stat_large_c1.txt](https://github.com/gavinhoward/bc/files/13712110/stat_large_c1.txt)\r\n[stat_large_c4.txt](https://github.com/gavinhoward/bc/files/13712111/stat_large_c4.txt)\r\n",1104"createdAt": "2023-12-19T03:09:54Z",1105"includesCreatedEdit": true,1106"isMinimized": false,1107"minimizedReason": "",1108"reactionGroups": [],1109"url": "https://github.com/gavinhoward/bc/pull/73#issuecomment-1862035683",1110"viewerDidAuthor": false1111},1112{1113"id": "IC_kwDOCL0xJc5vCDYq",1114"author": {1115"login": "naggamura"1116},1117"authorAssociation": "CONTRIBUTOR",1118"body": "sqrt_2.png updated.",1119"createdAt": "2023-12-19T13:58:49Z",1120"includesCreatedEdit": false,1121"isMinimized": false,1122"minimizedReason": "",1123"reactionGroups": [],1124"url": "https://github.com/gavinhoward/bc/pull/73#issuecomment-1862809130",1125"viewerDidAuthor": false1126},1127{1128"id": "IC_kwDOCL0xJc5vFhZX",1129"author": {1130"login": "gavinhoward"1131},1132"authorAssociation": "OWNER",1133"body": "I have spent two full days on this since the last time I sent a message. I cannot spend any more time on this; I have a project to finish and a hard deadline.\r\n\r\nSo I have to make a final decision, which is to reject this. Thank you for your contribution, but I guess I don't want it.\r\n\r\nThere are several reasons why:\r\n\r\n* Your code still contains debug code.\r\n* You created your own functions to do things when functions to do those things already exist, which shows lack of research again. And duplication.\r\n* Your proof looks wrong to me, or I still can't understand it.\r\n* Your code passes the test suite, but it did not pass another set of tests I threw at it.\r\n* This is purely a performance PR, which is not really important to me right now.\r\n\r\nBut most of all, and this is nothing against you, I just can't read other people's code. I am unable to build a theory of mind, and this extends to reading code written by other people.\r\n\r\nThere is a reason I tend to do things by myself; I can't work on the code otherwise.\r\n\r\nSo I'm afraid I have run out of time and desire. Sorry.",1134"createdAt": "2023-12-20T01:50:17Z",1135"includesCreatedEdit": false,1136"isMinimized": false,1137"minimizedReason": "",1138"reactionGroups": [],1139"url": "https://github.com/gavinhoward/bc/pull/73#issuecomment-1863718487",1140"viewerDidAuthor": true1141}1142],1143"commits": [1144{1145"authoredDate": "2023-12-17T12:30:19Z",1146"authors": [1147{1148"email": "[email protected]",1149"id": "U_kgDOB2enHg",1150"login": "naggamura",1151"name": "jonathan"1152}1153],1154"committedDate": "2023-12-17T12:30:19Z",1155"messageBody": "",1156"messageHeadline": "New bc_num_sqrt function needs only one long division.",1157"oid": "a8821844d9f05df15fde8bed92332226e147b151"1158},1159{1160"authoredDate": "2023-12-18T02:46:18Z",1161"authors": [1162{1163"email": "[email protected]",1164"id": "U_kgDOB2enHg",1165"login": "naggamura",1166"name": "jonathan"1167}1168],1169"committedDate": "2023-12-18T02:46:18Z",1170"messageBody": "Passed 'sqrt test'",1171"messageHeadline": "SQRT fix: post process for numbers like 0.000000...000000xyz...",1172"oid": "a4e27bb46a0fc9dc59e51ba5de153b6f2fe55f5d"1173},1174{1175"authoredDate": "2023-12-18T05:46:38Z",1176"authors": [1177{1178"email": "[email protected]",1179"id": "U_kgDOB2enHg",1180"login": "naggamura",1181"name": "jonathan"1182}1183],1184"committedDate": "2023-12-18T05:46:38Z",1185"messageBody": "",1186"messageHeadline": "SQRT: fixed memory bug. passed 'make test'",1187"oid": "f4f8cf72d513f2986bb477d10bcd0fcb520a0e7e"1188},1189{1190"authoredDate": "2023-12-18T06:01:30Z",1191"authors": [1192{1193"email": "[email protected]",1194"id": "U_kgDOB2enHg",1195"login": "naggamura",1196"name": "jonathan"1197}1198],1199"committedDate": "2023-12-18T06:01:30Z",1200"messageBody": "",1201"messageHeadline": "Commit missed!!! fix again.",1202"oid": "1faa1296390f5e689d78c28fa9b434516f47c15d"1203},1204{1205"authoredDate": "2023-12-18T09:22:18Z",1206"authors": [1207{1208"email": "[email protected]",1209"id": "U_kgDOB2enHg",1210"login": "naggamura",1211"name": "jonathan"1212}1213],1214"committedDate": "2023-12-18T09:22:18Z",1215"messageBody": "…r running release.sh",1216"messageHeadline": "Removed unused variables, explicit type conversion in assignments, fo…",1217"oid": "fb9d7b88c60ecdb7ce8bdfe8a11e23d09b2342fb"1218},1219{1220"authoredDate": "2023-12-18T13:17:09Z",1221"authors": [1222{1223"email": "[email protected]",1224"id": "U_kgDOB2enHg",1225"login": "naggamura",1226"name": "jonathan"1227}1228],1229"committedDate": "2023-12-18T13:17:09Z",1230"messageBody": "…unning release.sh.\n\nRunning release.sh for this commit now...",1231"messageHeadline": "Fixed memory warning(passing NULL with zero length to memcpy) while r…",1232"oid": "9f171378fe38619d032107d388eef06519dde4a7"1233},1234{1235"authoredDate": "2023-12-19T03:08:34Z",1236"authors": [1237{1238"email": "[email protected]",1239"id": "U_kgDOB2enHg",1240"login": "naggamura",1241"name": "jonathan"1242}1243],1244"committedDate": "2023-12-19T03:08:34Z",1245"messageBody": "…old one!)\n\n2. Passed Valgrind memory test.\n./configure -gO0 -v\nmake\nmake test\n\n3. Passed\nscripts/release.sh 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1\non Ubuntu 18.04.2 LTS",1246"messageHeadline": "1. Simple multiplication modified based on Gavin's (much better than …",1247"oid": "2b3616586454f315a5014360f7f7d5d36f10bd9a"1248},1249{1250"authoredDate": "2023-12-19T13:57:21Z",1251"authors": [1252{1253"email": "[email protected]",1254"id": "U_kgDOB2enHg",1255"login": "naggamura",1256"name": "jonathan"1257}1258],1259"committedDate": "2023-12-19T13:57:21Z",1260"messageBody": "",1261"messageHeadline": "Proof related to sqrt approximation updated.",1262"oid": "2d7b8fe4efe528076a568b0f174c35a53e47ae93"1263}1264],1265"createdAt": "2023-12-17T13:16:03Z",1266"deletions": 72,1267"files": [1268{1269"path": "sqrt_1.png",1270"additions": 0,1271"deletions": 01272},1273{1274"path": "sqrt_2.png",1275"additions": 0,1276"deletions": 01277},1278{1279"path": "src/num.c",1280"additions": 657,1281"deletions": 721282}1283],1284"fullDatabaseId": "1647316989",1285"headRefName": "master",1286"headRefOid": "2d7b8fe4efe528076a568b0f174c35a53e47ae93",1287"headRepository": null,1288"headRepositoryOwner": {1289"id": "U_kgDOB2enHg",1290"login": "naggamura"1291},1292"id": "PR_kwDOCL0xJc5iMA_9",1293"isCrossRepository": true,1294"isDraft": false,1295"labels": [],1296"latestReviews": [],1297"maintainerCanModify": false,1298"mergeCommit": null,1299"mergeStateStatus": "UNKNOWN",1300"mergeable": "UNKNOWN",1301"mergedAt": null,1302"mergedBy": null,1303"milestone": null,1304"number": 73,1305"potentialMergeCommit": null,1306"projectCards": [],1307"projectItems": [],1308"reactionGroups": [],1309"reviewDecision": "",1310"reviewRequests": [],1311"reviews": [],1312"state": "CLOSED",1313"statusCheckRollup": [],1314"title": "New bc_num_sqrt function needs only one long division.",1315"updatedAt": "2023-12-20T01:50:17Z",1316"url": "https://github.com/gavinhoward/bc/pull/73"1317},1318{1319"additions": 831,1320"assignees": [],1321"author": {1322"id": "U_kgDOB2enHg",1323"is_bot": false,1324"login": "naggamura",1325"name": ""1326},1327"autoMergeRequest": null,1328"baseRefName": "master",1329"baseRefOid": "5ee6a05918bd8341a7ed97d6594862ad5d713557",1330"body": "Newton-Raphson approximation is applied to division and sqrt.\r\nTry 5^1000000 / 2^1000000 and sort(5^999999)\r\n",1331"changedFiles": 3,1332"closed": true,1333"closedAt": "2023-12-14T04:47:11Z",1334"comments": [1335{1336"id": "IC_kwDOCL0xJc5uku2Q",1337"author": {1338"login": "gavinhoward"1339},1340"authorAssociation": "OWNER",1341"body": "Thank you for your PR. I have some comments.\r\n\r\n* If you run `CC=clang ./configure.sh -pDBG; make`, my regular debug build, the build fails.\r\n* If you run `CC=clang ./configure.sh -pGDH; make`, my regular release build, the build fails.\r\n* If you run `CC=gcc CFLAGS=\"-pedantic -Wextra -Werror\" ./configure -O3; make`, the build fails.\r\n* If you run `CC=clang ./configure -gO3; make; make test`, a release build with debug information, the build succeeds, but the test suite fails on an assert.\r\n* You have functions that have reserved names (names that begin with an underscore); using those names is undefined behavior.\r\n* You did not follow my style even though there is a script (`scripts/format.sh`) that will style the code for you.\r\n\r\nIn addition, I can unfortunately tell that you did no research into my `bc`. If you had, you would know that [I already use Newton-Raphson for `sqrt()`][1].\r\n\r\nHowever, all of that could be safely discarded if the code shows promise. So I wrote [benchmarks to test your new code][2].\r\n\r\nI ran these commands with my code:\r\n\r\n```\r\n$ CC=clang CFLAGS=-flto ./configure -O3\r\n$ make\r\n```\r\n\r\nThen I ran the benchmarks as follows:\r\n\r\n```\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_div_small > ../div1_small.txt\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_div_large > ../div1_large.txt\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_sqrt_small > ../sqrt1_small.txt\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_sqrt_large > ../sqrt1_large.txt\r\n```\r\n\r\nThen I repeated the steps with your code:\r\n\r\n```\r\n$ CC=clang CFLAGS=-flto ./configure -O3\r\n$ make\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_div_small > ../div2_small.txt\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_div_large > ../div2_large.txt\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_sqrt_small > ../sqrt2_small.txt\r\n$ ./scripts/benchmark.sh -p1 -n50 bc newton_raphson_sqrt_large > ../sqrt2_large.txt\r\n```\r\n\r\nThe `small` benchmarks test the operation on \"small\" numbers (below `2^64`), and the `large` benchmarks test the operation on large numbers (a small number to a power up to 1,000,000).\r\n\r\nTo test how your code did, I used `ministat` in the repo, so I ran this:\r\n\r\n```\r\n$ make ministat\r\n```\r\n\r\nThen to test the time difference on `div_small`, I ran the following:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c95 -C1 ../div1_small.txt ../div2_small.txt\r\nx ../div1_small.txt\r\n+ ../div2_small.txt\r\n+--------------------------------------------------------------------------------+\r\n| + x |\r\n| + + x * |\r\n| + + * * x |\r\n| + * * * x |\r\n| + * * * x |\r\n| + * * * x |\r\n| * * * * x + |\r\n| * * * * * x + x |\r\n|* * * * * * x * + x |\r\n|* * * * * * * * * x x + +|\r\n||____|____M_AA______|___| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 3.41 3.52 3.45 3.4504 0.024071323\r\n+ 50 3.41 3.67 3.44 3.4484 0.039967334\r\nNo difference proven at 95.0% confidence\r\n```\r\n\r\nAs you can tell, there's no difference at the lowest confidence I can accept.\r\n\r\nTo test the memory difference (max RSS) for `div_small`, I ran the following:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c95 -C4 ../div1_small.txt ../div2_small.txt\r\nx ../div1_small.txt\r\n+ ../div2_small.txt\r\n+--------------------------------------------------------------------------------+\r\n| x x x+ + + x +xx xx ++ |\r\n| x x + x * x+ +++ ++ x x *+ +xx xx ++ + x + |\r\n|xx x +++ + + x x*x x* *++ ++ x x +x ** +** ** x++ +* +x + +xx ++|\r\n| |_____|_____________A____A_M___________|___| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 34792 35000 34912 34896.88 55.262136\r\n+ 50 34808 35016 34916 34910 52.956663\r\nNo difference proven at 95.0% confidence\r\n```\r\n\r\nNo memory difference. Cool.\r\n\r\nFor the elapsed time for `div_large`:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c99.5 -C1 ../div1_large.txt ../div2_large.txt\r\nx ../div1_large.txt\r\n+ ../div2_large.txt\r\n+--------------------------------------------------------------------------------+\r\n| x + |\r\n| x ++ |\r\n| x ++ |\r\n| x ++ |\r\n| x ++ |\r\n| x ++ |\r\n| x ++ |\r\n| x ++ |\r\n| x ++ |\r\n| x ++ |\r\n| xx ++ |\r\n| xx ++ |\r\n| xx ++ |\r\n| xx ++ |\r\n| xx ++ |\r\n| xx +++ |\r\n| xx ++++ |\r\n| xx ++++ |\r\n| xxx ++++ |\r\n| xxx x ++++++|\r\n||____MA_____| |A| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 13.72 21.71 13.845 14.013 1.1141964\r\n+ 50 26.7 27.64 27.005 27.0158 0.17722452\r\nDifference at 99.5% confidence\r\n 13.0028 +/- 0.506578\r\n 92.791% +/- 6.90636%\r\n (Student's t, pooled s = 0.79776)\r\n```\r\n\r\nAs you can see, there *is* a difference, with *99.5% confidence*, but in favor of the *old code*. In fact, if not for the one outlier, your code would be twice as slow.\r\n\r\nAnd if we look at the max RSS difference for `div_large`:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c99.5 -C4 ../div1_large.txt ../div2_large.txt\r\nx ../div1_large.txt\r\n+ ../div2_large.txt\r\n+--------------------------------------------------------------------------------+\r\n| + |\r\n| + |\r\n| + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| xx + |\r\n| xx ++|\r\n| xx +++|\r\n|xxx +++|\r\n|xxx +++|\r\n|xxx +++|\r\n|xxx +++|\r\n|xxx +++|\r\n|xxx +++|\r\n|xxx x +++|\r\n|xxxxx +++|\r\n||A| |A||\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 8716 8968 8796 8802.72 57.549638\r\n+ 50 13812 13960 13888 13890.08 41.837314\r\nDifference at 99.5% confidence\r\n 5087.36 +/- 31.9473\r\n 57.793% +/- 0.51%\r\n (Student's t, pooled s = 50.3106)\r\n```\r\n\r\nYour code uses 50% more memory, with 99.5% confidence.\r\n\r\nMoving onto `sqrt_small`, for elapsed time, I got this:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c99.5 -C1 ../sqrt1_small.txt ../sqrt2_small.txt\r\nx ../sqrt1_small.txt\r\n+ ../sqrt2_small.txt\r\n+--------------------------------------------------------------------------------+\r\n| x + |\r\n| xx + |\r\n| xx + |\r\n| xx + |\r\n| xx + + |\r\n| xx ++++ |\r\n| xx ++++ |\r\n|xxx ++++ |\r\n|xxx ++++ |\r\n|xxxx +++++ |\r\n|xxxx +++++ |\r\n|xxxx +++++ |\r\n|xxxxx +++++ |\r\n|xxxxx x +++++++ +|\r\n| MA| |_A_| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 1.47 1.6 1.5 1.5072 0.023822473\r\n+ 50 3.07 3.26 3.14 3.1452 0.036153866\r\nDifference at 99.5% confidence\r\n 1.638 +/- 0.0194408\r\n 108.678% +/- 1.83123%\r\n (Student's t, pooled s = 0.0306155)\r\n```\r\n\r\nYour code is twice as slow with 99.5% confidence.\r\n\r\nFor memory on `sqrt_small`, I got this:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c99.5 -C4 ../sqrt1_small.txt ../sqrt2_small.txt\r\nx ../sqrt1_small.txt\r\n+ ../sqrt2_small.txt\r\n+--------------------------------------------------------------------------------+\r\n| xx + x |\r\n| x xx + x x ++ |\r\n| x x x xx + + x x ++ |\r\n| x xxxx x xxx++ + x x +x x +++ ++ + |\r\n|xx + x x + + xxxxx + + +* *xx***+++ x+xx++***++++ ++++ ++++|\r\n| |_____________|__M__________|A_M____________| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 18964 19252 19176 19160.4 68.353224\r\n+ 50 19004 19344 19242 19231.68 71.990203\r\nDifference at 99.5% confidence\r\n 71.28 +/- 44.574\r\n 0.372017% +/- 0.233047%\r\n (Student's t, pooled s = 70.1953)\r\n```\r\n\r\nSo there's a small increase of memory in your code, even at 99.5% confidence, but that's small enough that I can ignore it.\r\n\r\nFor time on `sqrt_large`, I got this:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c99.5 -C1 ../sqrt1_large.txt ../sqrt2_large.txt\r\nx ../sqrt1_large.txt\r\n+ ../sqrt2_large.txt\r\n+--------------------------------------------------------------------------------+\r\n| xx + |\r\n| xx ++ |\r\n| xx +++ |\r\n| xx +++ |\r\n| xx +++ |\r\n| xx +++ |\r\n| xx ++++ |\r\n| xx ++++ |\r\n| xxx +++++ |\r\n|xxxx +++++ |\r\n|xxxx +++++ |\r\n|xxxx +++++ |\r\n|xxxxx +++++++|\r\n| |A| |A_| |\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 176.9 184.63 180.565 180.403 1.6383681\r\n+ 50 327.42 339.26 331.24 331.3832 2.8256482\r\nDifference at 99.5% confidence\r\n 150.98 +/- 1.4666\r\n 83.6905% +/- 1.02747%\r\n (Student's t, pooled s = 2.3096)\r\n```\r\n\r\nYour code is *almost* twice as slow at 99.5% confidence.\r\n\r\nFor memory on `sqrt_large`, I got this:\r\n\r\n```\r\n$ ./scripts/ministat -w80 -c99.5 -C4 ../sqrt1_large.txt ../sqrt2_large.txt\r\nx ../sqrt1_large.txt\r\n+ ../sqrt2_large.txt\r\n+--------------------------------------------------------------------------------+\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x + |\r\n| x ++|\r\n| x ++|\r\n| x ++|\r\n| x ++|\r\n| x ++|\r\n| x ++|\r\n| x ++|\r\n|xx ++|\r\n|xx ++|\r\n|xx ++|\r\n|xx ++|\r\n|xx ++|\r\n|xxx ++|\r\n|xxx ++|\r\n||A A||\r\n+--------------------------------------------------------------------------------+\r\n N Min Max Median Avg Stddev\r\nx 50 6952 7156 7044 7046.48 42.561955\r\n+ 50 15412 15568 15496 15485.84 51.175313\r\nDifference at 99.5% confidence\r\n 8439.36 +/- 29.887\r\n 119.767% +/- 0.679408%\r\n (Student's t, pooled s = 47.0661)\r\n```\r\n\r\nYour code uses twice as much memory at 99.5% confidence.\r\n\r\nSo on average, your code is twice as slow and uses more memory.\r\n\r\nUnfortunately, based on the poor performance of your code compared to what already exists, I can't say that it shows promise.\r\n\r\nCombined with the problems I mentioned at the beginning, I'm afraid I must reject this PR completely. Sorry.\r\n\r\n[1]: https://github.com/gavinhoward/bc/blob/master/manuals/algorithms.md#square-root\r\n[2]: https://github.com/gavinhoward/bc/commit/fcbe9d68ccc964fda12457ebbf687a27f57ff31f",1342"createdAt": "2023-12-14T04:47:11Z",1343"includesCreatedEdit": false,1344"isMinimized": false,1345"minimizedReason": "",1346"reactionGroups": [1347{1348"content": "THUMBS_UP",1349"users": {1350"totalCount": 11351}1352},1353{1354"content": "EYES",1355"users": {1356"totalCount": 11357}1358}1359],1360"url": "https://github.com/gavinhoward/bc/pull/72#issuecomment-1855122832",1361"viewerDidAuthor": true1362}1363],1364"commits": [1365{1366"authoredDate": "2023-12-11T20:27:06Z",1367"authors": [1368{1369"email": "[email protected]",1370"id": "U_kgDOB2enHg",1371"login": "naggamura",1372"name": "jonathan"1373}1374],1375"committedDate": "2023-12-11T20:27:06Z",1376"messageBody": "",1377"messageHeadline": "div, sqrt improved using Newton-Raphson algorithm.",1378"oid": "d6e0849220eea59ff7b380dfc779a43a33a234d1"1379},1380{1381"authoredDate": "2023-12-12T11:49:47Z",1382"authors": [1383{1384"email": "[email protected]",1385"id": "U_kgDOB2enHg",1386"login": "naggamura",1387"name": "jonathan"1388}1389],1390"committedDate": "2023-12-12T11:49:47Z",1391"messageBody": "",1392"messageHeadline": "Make secure more",1393"oid": "7a1cd5f7667308300e7f9db46b1827fbc1dc2703"1394},1395{1396"authoredDate": "2023-12-13T13:53:11Z",1397"authors": [1398{1399"email": "[email protected]",1400"id": "U_kgDOB2enHg",1401"login": "naggamura",1402"name": "jonathan"1403}1404],1405"committedDate": "2023-12-13T13:53:11Z",1406"messageBody": "",1407"messageHeadline": "markdown test",1408"oid": "1f0cce37b56205fbc24db847d184ce452bfdb8fa"1409},1410{1411"authoredDate": "2023-12-13T16:30:08Z",1412"authors": [1413{1414"email": "[email protected]",1415"id": "U_kgDOB2enHg",1416"login": "naggamura",1417"name": "jonathan"1418}1419],1420"committedDate": "2023-12-13T16:30:08Z",1421"messageBody": "",1422"messageHeadline": "Newton-Raphson div, sqrt",1423"oid": "248e3b9b34cf4893f6440c169584592fc78f6090"1424}1425],1426"createdAt": "2023-12-13T16:38:28Z",1427"deletions": 50,1428"files": [1429{1430"path": "newton-raphson-div.png",1431"additions": 0,1432"deletions": 01433},1434{1435"path": "newton-raphson-sqrt.png",1436"additions": 0,1437"deletions": 01438},1439{1440"path": "src/num.c",1441"additions": 831,1442"deletions": 501443}1444],1445"fullDatabaseId": "1642781993",1446"headRefName": "newton-raphson",1447"headRefOid": "248e3b9b34cf4893f6440c169584592fc78f6090",1448"headRepository": null,1449"headRepositoryOwner": {1450"id": "U_kgDOB2enHg",1451"login": "naggamura"1452},1453"id": "PR_kwDOCL0xJc5h6t0p",1454"isCrossRepository": true,1455"isDraft": false,1456"labels": [],1457"latestReviews": [],1458"maintainerCanModify": false,1459"mergeCommit": null,1460"mergeStateStatus": "UNKNOWN",1461"mergeable": "UNKNOWN",1462"mergedAt": null,1463"mergedBy": null,1464"milestone": null,1465"number": 72,1466"potentialMergeCommit": null,1467"projectCards": [],1468"projectItems": [],1469"reactionGroups": [],1470"reviewDecision": "",1471"reviewRequests": [],1472"reviews": [],1473"state": "CLOSED",1474"statusCheckRollup": [],1475"title": "Newton-Raphson divison, sqrt",1476"updatedAt": "2023-12-14T04:47:11Z",1477"url": "https://github.com/gavinhoward/bc/pull/72"1478},1479{1480"additions": 337,1481"assignees": [],1482"author": {1483"id": "MDQ6VXNlcjgwNzU4MA==",1484"is_bot": false,1485"login": "SamuelMarks",1486"name": "Samuel Marks"1487},1488"autoMergeRequest": null,1489"baseRefName": "master",1490"baseRefOid": "3f4c8cc5f86092fa4a8d59bc99d8f10ad2894cf0",1491"body": "WiP\r\n\r\nCan finish if you like. Can also send you a PR on your own website, just make me an account",1492"changedFiles": 19,1493"closed": true,1494"closedAt": "2025-03-25T05:20:50Z",1495"comments": [1496{1497"id": "IC_kwDOCL0xJc5kTkGI",1498"author": {1499"login": "gavinhoward"1500},1501"authorAssociation": "OWNER",1502"body": "Thank you for the PR!\r\n\r\nAllow me to I apologize upfront. Usually, I do not question user requests; after all, there is a user, and they have a request, so obviously, there is a need or a want.\r\n\r\n*However*, personally, [I ***hate*** CMake][1]. I hate it so much that I have spent *three years* designing and implementing a build system to remove it from my [other project][2], a build system that would allow building on Windows, Mac OSX, Linux, the BSD's, etc. And I was going to add support for that build system to `bc`, which I hoped would remove any need for people to use CMake to build `bc` cross-platform.\r\n\r\nSo, I apologize because I can tell you put a lot of work into this, but for once, I am asking you to provide justification. I won't ask for much; I just need to know why CMake is necessary and why you believe that keeping a fork would not serve. (Since a separate build system won't touch the code, it seems like an easy fork to keep.)\r\n\r\nAgain, I'm sorry.\r\n\r\nAlso, if I do decide to merge, I'm going to need you to explain the more complicated bits; I've tried to avoid complicated CMake as much as possible. But I need to be able to maintain the CMake code without your help.\r\n\r\n[1]: https://news.ycombinator.com/item?id=36469860\r\n[2]: https://git.yzena.com/Yzena/Yc",1503"createdAt": "2023-08-17T19:34:43Z",1504"includesCreatedEdit": false,1505"isMinimized": false,1506"minimizedReason": "",1507"reactionGroups": [],1508"url": "https://github.com/gavinhoward/bc/pull/68#issuecomment-1682850184",1509"viewerDidAuthor": true1510},1511{1512"id": "IC_kwDOCL0xJc5kVWMk",1513"author": {1514"login": "SamuelMarks"1515},1516"authorAssociation": "NONE",1517"body": "@gavinhoward I'm obsessed with interoperability. CMake is one way to achieve this. Open to your build system also, where I plan on taking `bc` to:\r\n- Windows (different MSVC versions);\r\n- MinGW (x86, x64, …)\r\n- DOS (via OpenWatcom and maybe via early MSVC versions)\r\n- Cygwin\r\n- Linux\r\n- macOS\r\n- iOS\r\n- Android\r\n- SunOS (Solaris→OpenSolaris→illumos→OpenIndiana)\r\n- *BSD (FreeBSD, OpenBSD, …)\r\n\r\n…and yes I know you support some of these targets already.\r\n\r\nThere are some other nice advantages like CPack and CTest, but honestly there are a number of other nice build generators out there and I tend to choose CMake just because it's the most popular and has a good number of generators.",1518"createdAt": "2023-08-18T04:01:35Z",1519"includesCreatedEdit": false,1520"isMinimized": false,1521"minimizedReason": "",1522"reactionGroups": [],1523"url": "https://github.com/gavinhoward/bc/pull/68#issuecomment-1683317540",1524"viewerDidAuthor": false1525},1526{1527"id": "IC_kwDOCL0xJc5kVpyv",1528"author": {1529"login": "gavinhoward"1530},1531"authorAssociation": "OWNER",1532"body": "Okay, interoperability is something I can understand. But oh boy, I would love it if my build system could do all that.\r\n\r\nThat said, my build system (named Rig, by the way) won't be able to cross-compile in the first release, so some of those targets may not be possible in the first release of Rig. (OpenWatcom is the one that makes me most nervous.)\r\n\r\nSo I'll make you a deal. I'll do these things:\r\n\r\n1. Merge your PR,\r\n2. Set up Rig in my `bc` once it's ready,\r\n3. Write you a tutorial on how to use Rig for `bc`, and\r\n4. Help you understand the new build scripts,\r\n\r\nas long as you'll do the following:\r\n\r\n1. Give me your contact info because this is a pretty big commitment, and I want to be able to ask you questions, if at all possible (you can use the info at <https://gavinhoward.com/contact/> to send me that info privately),\r\n2. Point me to material that will help me set up environments for all of those platforms (so I can test `bc` and CMake on them myself),\r\n3. Explain to me any CMake code I don't understand (I'll make them reviews in the PR),\r\n4. Learn how to use Rig for `bc` once it's ready (I don't care if you use it for anything else), and\r\n5. At that point, give me your honest opinion if Rig can fully replace the CMake build.\r\n\r\nIf it can, I'd ***really*** like to remove the CMake then. If it can't, well, it can't, and CMake will stay in perpetuity.\r\n\r\nIn other words, I'll add CMake now if you'll give Rig a fair shake later.\r\n\r\nOh, and point number 2 is crucial; if I can't test `bc` on those platforms with CMake, I won't merge the PR because I would basically be committing to supporting those platforms by merging the PR, and I can't do that without the ability to test.\r\n\r\nBy the way, I only need to know how to set up environments for:\r\n\r\n* Windows (specifically different MSVC versions because I can already compile on the latest Windows 10);\r\n* MinGW\r\n* DOS (via OpenWatcom and maybe via early MSVC versions)\r\n* Cygwin\r\n* iOS (do I need a Mac computer?)\r\n* Android\r\n* SunOS (Solaris, OpenSolaris, illumos, OpenIndiana)\r\n\r\nI have the capability for the rest.",1533"createdAt": "2023-08-18T06:04:29Z",1534"includesCreatedEdit": false,1535"isMinimized": false,1536"minimizedReason": "",1537"reactionGroups": [],1538"url": "https://github.com/gavinhoward/bc/pull/68#issuecomment-1683397807",1539"viewerDidAuthor": true1540},1541{1542"id": "IC_kwDOCL0xJc5kX99Z",1543"author": {1544"login": "SamuelMarks"1545},1546"authorAssociation": "NONE",1547"body": "Great yeah sure I'll give it a shot. No guaranteed time commitments (because of everything going on in my life); but I'll see what I can do.\r\n\r\nMy email is samuel` `at symbol offscale.io; or you can use myfirstname mylastname` `at symbol gmail.com.\r\n\r\nI wrote some Windows Batch scripts for building on these different targets, and lots of things can run in a good CI/CD environment (e.g., GitHub Actions, Cirrus CI, &etc.): https://github.com/offscale/win-cmake-multi-build\r\n\r\nObviously still a ways to go to support all the different targets I'm interested in. But yeah something clean like your `bc` might be just complicated enough to test out my interoperability",1548"createdAt": "2023-08-18T14:29:25Z",1549"includesCreatedEdit": false,1550"isMinimized": false,1551"minimizedReason": "",1552"reactionGroups": [],1553"url": "https://github.com/gavinhoward/bc/pull/68#issuecomment-1684004697",1554"viewerDidAuthor": false1555},1556{1557"id": "IC_kwDOCL0xJc5kcbRH",1558"author": {1559"login": "gavinhoward"1560},1561"authorAssociation": "OWNER",1562"body": "Okay. Thank you.\r\n\r\nPlease let me know when this PR is not WIP.",1563"createdAt": "2023-08-20T04:29:28Z",1564"includesCreatedEdit": false,1565"isMinimized": false,1566"minimizedReason": "",1567"reactionGroups": [],1568"url": "https://github.com/gavinhoward/bc/pull/68#issuecomment-1685173319",1569"viewerDidAuthor": true1570},1571{1572"id": "IC_kwDOCL0xJc5kc7km",1573"author": {1574"login": "SamuelMarks"1575},1576"authorAssociation": "NONE",1577"body": "Sure thing, I'll see if I can get to it later in the week. Last remaining errors:\r\n```\r\nbc.c.obj : error LNK2001: unresolved external symbol _bc_help\r\nvm.c.obj : error LNK2001: unresolved external symbol _bc_lib\r\nvm.c.obj : error LNK2001: unresolved external symbol _bc_lib_name\r\nvm.c.obj : error LNK2001: unresolved external symbol _bc_lib2\r\nvm.c.obj : error LNK2001: unresolved external symbol _bc_lib2_name\r\n```\r\n\r\nWhich should be defined in an object file that you define in your existent configure script:\r\n```sh\r\ncontents=$(replace \"$contents\" \"BC_HELP_O\" \"$bc_help\")\r\n```\r\n\r\nSo I just need to reverse-engineer it into CMake and we should be good to go™.",1578"createdAt": "2023-08-20T14:58:39Z",1579"includesCreatedEdit": false,1580"isMinimized": false,1581"minimizedReason": "",1582"reactionGroups": [],1583"url": "https://github.com/gavinhoward/bc/pull/68#issuecomment-1685305638",1584"viewerDidAuthor": false1585},1586{1587"id": "IC_kwDOCL0xJc6j64Rc",1588"author": {1589"login": "gavinhoward"1590},1591"authorAssociation": "OWNER",1592"body": "It's been a year and a half, unfortunately, with no word since then.\r\n\r\nHowever, I have not stood still. I have [added][1] [Rig][2] [to `bc`][3], and I have [implemented the entire test suite in Rig][4].\r\n\r\nIn addition, Rig has the ability to cross compile now, and it will deactivate the tests under those conditions.\r\n\r\nSo because no progress has been made with CMake, and Rig is now working (except on Windows, but the only thing left is getting itself to bootstrap itself), I am rejecting this PR in favor of Rig.\r\n\r\n[1]: https://github.com/gavinhoward/bc/blob/master/build.gaml\r\n[2]: https://github.com/gavinhoward/bc/blob/master/build.rig\r\n[3]: https://github.com/gavinhoward/bc/blob/master/build.pkg.rig\r\n[4]: https://github.com/gavinhoward/bc/commit/77fcd66898f754cb1dbce262c6c0efd0879f855c",1593"createdAt": "2025-03-25T05:20:50Z",1594"includesCreatedEdit": false,1595"isMinimized": false,1596"minimizedReason": "",1597"reactionGroups": [],1598"url": "https://github.com/gavinhoward/bc/pull/68#issuecomment-2750121052",1599"viewerDidAuthor": true1600}1601],1602"commits": [1603{1604"authoredDate": "2023-08-17T18:47:20Z",1605"authors": [1606{1607"email": "[email protected]",1608"id": "MDQ6VXNlcjgwNzU4MA==",1609"login": "SamuelMarks",1610"name": "Samuel Marks"1611}1612],1613"committedDate": "2023-08-17T18:47:20Z",1614"messageBody": "",1615"messageHeadline": "CMake support (initial)",1616"oid": "4256fe30a6eee88983bbe39b606a793a47b96ec0"1617},1618{1619"authoredDate": "2023-08-17T20:06:53Z",1620"authors": [1621{1622"email": "[email protected]",1623"id": "MDQ6VXNlcjgwNzU4MA==",1624"login": "SamuelMarks",1625"name": "Samuel Marks"1626}1627],1628"committedDate": "2023-08-17T20:06:53Z",1629"messageBody": "",1630"messageHeadline": "Improve CMake suppoprt and remove extraneous code & files",1631"oid": "63e687a593ca72430a23216ab35eb897a4677b36"1632},1633{1634"authoredDate": "2023-08-18T21:02:52Z",1635"authors": [1636{1637"email": "[email protected]",1638"id": "MDQ6VXNlcjgwNzU4MA==",1639"login": "SamuelMarks",1640"name": "Samuel Marks"1641}1642],1643"committedDate": "2023-08-18T21:02:52Z",1644"messageBody": "",1645"messageHeadline": "Improve CMake support",1646"oid": "a2e95a6e697fa9d6557a16c17ad6bf8d048b5bd3"1647},1648{1649"authoredDate": "2023-08-19T00:43:54Z",1650"authors": [1651{1652"email": "[email protected]",1653"id": "MDQ6VXNlcjgwNzU4MA==",1654"login": "SamuelMarks",1655"name": "Samuel Marks"1656}1657],1658"committedDate": "2023-08-19T00:43:54Z",1659"messageBody": "",1660"messageHeadline": "Improve CMake support",1661"oid": "b945314d5edcb660bc286f63e60a5a63697b9ee4"1662}1663],1664"createdAt": "2023-08-17T18:49:48Z",1665"deletions": 17,1666"files": [1667{1668"path": ".gitignore",1669"additions": 3,1670"deletions": 01671},1672{1673"path": "CMakeLists.txt",1674"additions": 123,1675"deletions": 01676},1677{1678"path": "bcl.pc.in",1679"additions": 1,1680"deletions": 11681},1682{1683"path": "cmake/BundleIcon.icns",1684"additions": 0,1685"deletions": 01686},1687{1688"path": "cmake/CTestConfig.cmake",1689"additions": 7,1690"deletions": 01691},1692{1693"path": "cmake/Config.cmake.in",1694"additions": 4,1695"deletions": 01696},1697{1698"path": "cmake/CustomVolumeIcon.icns",1699"additions": 0,1700"deletions": 01701},1702{1703"path": "cmake/Info.plist",1704"additions": 14,1705"deletions": 01706},1707{1708"path": "cmake/MultiCPackConfig.cmake",1709"additions": 6,1710"deletions": 01711},1712{1713"path": "cmake/README.txt",1714"additions": 5,1715"deletions": 01716},1717{1718"path": "cmake/Welcome.txt",1719"additions": 1,1720"deletions": 01721},1722{1723"path": "cmake/config.h.in",1724"additions": 11,1725"deletions": 01726},1727{1728"path": "include/bc.h",1729"additions": 8,1730"deletions": 71731},1732{1733"path": "include/dc.h",1734"additions": 1,1735"deletions": 11736},1737{1738"path": "include/history.h",1739"additions": 6,1740"deletions": 41741},1742{1743"path": "include/read.h",1744"additions": 2,1745"deletions": 11746},1747{1748"path": "include/vm.h",1749"additions": 10,1750"deletions": 21751},1752{1753"path": "src/CMakeLists.txt",1754"additions": 134,1755"deletions": 01756},1757{1758"path": "src/vm.c",1759"additions": 1,1760"deletions": 11761}1762],1763"fullDatabaseId": "1479523420",1764"headRefName": "cmake",1765"headRefOid": "b945314d5edcb660bc286f63e60a5a63697b9ee4",1766"headRepository": {1767"id": "R_kgDOKIWfvQ",1768"name": "bc"1769},1770"headRepositoryOwner": {1771"id": "MDQ6VXNlcjgwNzU4MA==",1772"name": "Samuel Marks",1773"login": "SamuelMarks"1774},1775"id": "PR_kwDOCL0xJc5YL7xc",1776"isCrossRepository": true,1777"isDraft": false,1778"labels": [],1779"latestReviews": [],1780"maintainerCanModify": false,1781"mergeCommit": null,1782"mergeStateStatus": "DIRTY",1783"mergeable": "CONFLICTING",1784"mergedAt": null,1785"mergedBy": null,1786"milestone": null,1787"number": 68,1788"potentialMergeCommit": null,1789"projectCards": [],1790"projectItems": [],1791"reactionGroups": [],1792"reviewDecision": "",1793"reviewRequests": [],1794"reviews": [],1795"state": "CLOSED",1796"statusCheckRollup": [],1797"title": "CMake support",1798"updatedAt": "2025-03-25T05:20:51Z",1799"url": "https://github.com/gavinhoward/bc/pull/68"1800},1801{1802"additions": 5,1803"assignees": [],1804"author": {1805"id": "MDQ6VXNlcjc0MTgyNg==",1806"is_bot": false,1807"login": "dorjechang",1808"name": "alexander naumochkin"1809},1810"autoMergeRequest": null,1811"baseRefName": "master",1812"baseRefOid": "71fa3cd4029d416a5272b262736c4d6ab709b6ce",1813"body": "Casting int -1 to size_t produces SIZE_T_MAX so\r\nBC_NUM_PRINT_WIDTH is used instead of 0",1814"changedFiles": 1,1815"closed": true,1816"closedAt": "2023-03-15T16:06:35Z",1817"comments": [],1818"commits": [1819{1820"authoredDate": "2023-03-15T12:46:29Z",1821"authors": [1822{1823"email": "[email protected]",1824"id": "MDQ6VXNlcjc0MTgyNg==",1825"login": "dorjechang",1826"name": "ash"1827}1828],1829"committedDate": "2023-03-15T12:46:29Z",1830"messageBody": "Casting int -1 to size_t produces SIZE_T_MAX so\nBC_NUM_PRINT_WIDTH is used instead of 0",1831"messageHeadline": "Fix incorrect processing of env:BC_LINE_LENGTH=0",1832"oid": "31042aed8426850187b43d7e639f244354da0d6c"1833}1834],1835"createdAt": "2023-03-15T13:08:07Z",1836"deletions": 2,1837"files": [1838{1839"path": "src/vm.c",1840"additions": 5,1841"deletions": 21842}1843],1844"fullDatabaseId": "1276831340",1845"headRefName": "fix_BC_LINE_LENGTH=0",1846"headRefOid": "31042aed8426850187b43d7e639f244354da0d6c",1847"headRepository": null,1848"headRepositoryOwner": {1849"id": "MDQ6VXNlcjc0MTgyNg==",1850"name": "alexander naumochkin",1851"login": "dorjechang"1852},1853"id": "PR_kwDOCL0xJc5MGuZs",1854"isCrossRepository": true,1855"isDraft": false,1856"labels": [],1857"latestReviews": [],1858"maintainerCanModify": false,1859"mergeCommit": {1860"oid": "0c42c52dfc0735026cb6d2534dc24436ff19778f"1861},1862"mergeStateStatus": "UNKNOWN",1863"mergeable": "UNKNOWN",1864"mergedAt": "2023-03-15T16:06:35Z",1865"mergedBy": {1866"id": "MDQ6VXNlcjMxNzI2ODc=",1867"is_bot": false,1868"login": "gavinhoward",1869"name": "Gavin D. Howard"1870},1871"milestone": null,1872"number": 65,1873"potentialMergeCommit": null,1874"projectCards": [],1875"projectItems": [],1876"reactionGroups": [],1877"reviewDecision": "",1878"reviewRequests": [],1879"reviews": [],1880"state": "MERGED",1881"statusCheckRollup": [],1882"title": "Fix incorrect processing of env:BC_LINE_LENGTH=0",1883"updatedAt": "2023-03-15T16:06:35Z",1884"url": "https://github.com/gavinhoward/bc/pull/65"1885},1886{1887"additions": 16,1888"assignees": [],1889"author": {1890"id": "MDQ6VXNlcjQ2MTYwNzI3",1891"is_bot": false,1892"login": "firasuke",1893"name": "Firas Khalil Khana"1894},1895"autoMergeRequest": null,1896"baseRefName": "master",1897"baseRefOid": "2ed62ba26831b34cae22b9e7b2f1dd2f3a74b541",1898"body": "",1899"changedFiles": 1,1900"closed": true,1901"closedAt": "2022-11-26T15:16:46Z",1902"comments": [],1903"commits": [1904{1905"authoredDate": "2022-11-26T10:30:09Z",1906"authors": [1907{1908"email": "[email protected]",1909"id": "MDQ6VXNlcjQ2MTYwNzI3",1910"login": "firasuke",1911"name": "Firas Khalil Khana"1912}1913],1914"committedDate": "2022-11-26T10:30:09Z",1915"messageBody": "",1916"messageHeadline": "Mention MAN3DIR in build.md",1917"oid": "f62ecdabc44ca2ed32f7f0895a78099919038da9"1918}1919],1920"createdAt": "2022-11-26T10:30:59Z",1921"deletions": 7,1922"files": [1923{1924"path": "manuals/build.md",1925"additions": 16,1926"deletions": 71927}1928],1929"fullDatabaseId": "1136437158",1930"headRefName": "master",1931"headRefOid": "f62ecdabc44ca2ed32f7f0895a78099919038da9",1932"headRepository": null,1933"headRepositoryOwner": {1934"id": "MDQ6VXNlcjQ2MTYwNzI3",1935"name": "Firas Khalil Khana",1936"login": "firasuke"1937},1938"id": "PR_kwDOCL0xJc5DvKem",1939"isCrossRepository": true,1940"isDraft": false,1941"labels": [],1942"latestReviews": [],1943"maintainerCanModify": false,1944"mergeCommit": {1945"oid": "09247332bf9dafef6840864598c93df92ebc0820"1946},1947"mergeStateStatus": "UNKNOWN",1948"mergeable": "UNKNOWN",1949"mergedAt": "2022-11-26T15:16:46Z",1950"mergedBy": {1951"id": "MDQ6VXNlcjMxNzI2ODc=",1952"is_bot": false,1953"login": "gavinhoward",1954"name": "Gavin D. Howard"1955},1956"milestone": null,1957"number": 57,1958"potentialMergeCommit": null,1959"projectCards": [],1960"projectItems": [],1961"reactionGroups": [],1962"reviewDecision": "",1963"reviewRequests": [],1964"reviews": [],1965"state": "MERGED",1966"statusCheckRollup": [],1967"title": "Mention MAN3DIR in build.md",1968"updatedAt": "2022-11-26T15:16:46Z",1969"url": "https://github.com/gavinhoward/bc/pull/57"1970},1971{1972"additions": 1,1973"assignees": [],1974"author": {1975"id": "MDQ6VXNlcjU3MDUxMDY4",1976"is_bot": false,1977"login": "pacordova",1978"name": "Paul Cordova"1979},1980"autoMergeRequest": null,1981"baseRefName": "master",1982"baseRefOid": "4355599e9a59834098ed18e670b90cec2b84120d",1983"body": "On POSIX systems, `find` may have indeterministic output (I believe based on the inode on the filesystem).\r\n`sort` is needed to ensure the output is deterministic.\r\n\r\nIn my builds, this resulted in the build order in the generated `Makefile` changing around.\r\nThus building on a fresh partition made with `mkfs.ext4` would result in the binary being different each time.\r\nThe compiled binary code in the`bc` binary shuffled around depending on which files were built first.\r\nPossibly the build order in the Makefile was affecting the order in which files were linked?\r\n\r\nI added `LC_ALL=C` recommended by reproducible-builds.org. \r\nSee below for reference:\r\n- [https://reproducible-builds.org/docs/archives/](https://reproducible-builds.org/docs/archives/)\r\n- [https://reproducible-builds.org/docs/stable-inputs/](https://reproducible-builds.org/docs/stable-inputs/)",1984"changedFiles": 1,1985"closed": true,1986"closedAt": "2022-08-03T02:35:23Z",1987"comments": [1988{1989"id": "IC_kwDOCL0xJc5Huq4A",1990"author": {1991"login": "gavinhoward"1992},1993"authorAssociation": "OWNER",1994"body": "The only hangup I would have had is if the way you did it was not portable to POSIX `sh`. I consulted the standard, and your solution is portable!\r\n\r\nI agree that reproducible builds are *very* important. So thank you for your contribution! I have accepted it, and it will be in the release out in a day or two. I just have to make sure everything builds correctly.",1995"createdAt": "2022-08-03T02:37:10Z",1996"includesCreatedEdit": false,1997"isMinimized": false,1998"minimizedReason": "",1999"reactionGroups": [],2000"url": "https://github.com/gavinhoward/bc/pull/54#issuecomment-1203416576",2001"viewerDidAuthor": true2002},2003{2004"id": "IC_kwDOCL0xJc5HuvNl",2005"author": {2006"login": "pacordova"2007},2008"authorAssociation": "CONTRIBUTOR",2009"body": "No problem! Thank you for accepting my pull request!\r\nOne additional comment:\r\nWith this change I do get reproducible builds, although I do not use `-flto`\r\nYour recommended optimization of `-O3` I think should be ok, but I do know that Link Time Optimization (LTO) and Profile Guided Optimization (PGO) can both potentially break build determinism.\r\nEither way the end user should be able get reproducible builds if they want it with this change.\r\nThe CFLAGS I was testing with were `CFLAGS='-march=x86-64 -pipe -Os -fstack-protector-strong -fstack-clash-protection'` with GCC 11.2.0.",2010"createdAt": "2022-08-03T03:13:48Z",2011"includesCreatedEdit": true,2012"isMinimized": false,2013"minimizedReason": "",2014"reactionGroups": [],2015"url": "https://github.com/gavinhoward/bc/pull/54#issuecomment-1203434341",2016"viewerDidAuthor": false2017},2018{2019"id": "IC_kwDOCL0xJc5Hwkv2",2020"author": {2021"login": "gavinhoward"2022},2023"authorAssociation": "OWNER",2024"body": "Thank you!",2025"createdAt": "2022-08-03T12:57:26Z",2026"includesCreatedEdit": false,2027"isMinimized": false,2028"minimizedReason": "",2029"reactionGroups": [],2030"url": "https://github.com/gavinhoward/bc/pull/54#issuecomment-1203915766",2031"viewerDidAuthor": true2032}2033],2034"commits": [2035{2036"authoredDate": "2022-08-02T16:49:50Z",2037"authors": [2038{2039"email": "[email protected]",2040"id": "MDQ6VXNlcjU3MDUxMDY4",2041"login": "pacordova",2042"name": "pac"2043}2044],2045"committedDate": "2022-08-02T16:49:50Z",2046"messageBody": "find has indeterministic output based on the inode on the filesystem,\nso sort is needed to ensure the output is deterministic",2047"messageHeadline": "improve reproducibility",2048"oid": "8c7d5fa125dae5049427cb9b0ddc9ee7bbf099b4"2049},2050{2051"authoredDate": "2022-08-02T23:00:34Z",2052"authors": [2053{2054"email": "[email protected]",2055"id": "MDQ6VXNlcjU3MDUxMDY4",2056"login": "pacordova",2057"name": "pac"2058}2059],2060"committedDate": "2022-08-02T23:00:34Z",2061"messageBody": "",2062"messageHeadline": "remove -z",2063"oid": "6ea4d12e2f11e0ce0bed779d991a17230db3a889"2064}2065],2066"createdAt": "2022-08-02T17:17:46Z",2067"deletions": 1,2068"files": [2069{2070"path": "configure.sh",2071"additions": 1,2072"deletions": 12073}2074],2075"fullDatabaseId": "1015375109",2076"headRefName": "reproducible_builds",2077"headRefOid": "6ea4d12e2f11e0ce0bed779d991a17230db3a889",2078"headRepository": null,2079"headRepositoryOwner": {2080"id": "MDQ6VXNlcjU3MDUxMDY4",2081"name": "Paul Cordova",2082"login": "pacordova"2083},2084"id": "PR_kwDOCL0xJc48hWUF",2085"isCrossRepository": true,2086"isDraft": false,2087"labels": [],2088"latestReviews": [],2089"maintainerCanModify": false,2090"mergeCommit": {2091"oid": "71215b0eb1c20aa622bd77e664ad7f099b349e91"2092},2093"mergeStateStatus": "UNKNOWN",2094"mergeable": "UNKNOWN",2095"mergedAt": "2022-08-03T02:35:23Z",2096"mergedBy": {2097"id": "MDQ6VXNlcjMxNzI2ODc=",2098"is_bot": false,2099"login": "gavinhoward",2100"name": "Gavin D. Howard"2101},2102"milestone": null,2103"number": 54,2104"potentialMergeCommit": null,2105"projectCards": [],2106"projectItems": [],2107"reactionGroups": [],2108"reviewDecision": "",2109"reviewRequests": [],2110"reviews": [],2111"state": "MERGED",2112"statusCheckRollup": [],2113"title": "Improve Reproducibility (Reproducible Builds)",2114"updatedAt": "2022-08-03T12:57:26Z",2115"url": "https://github.com/gavinhoward/bc/pull/54"2116},2117{2118"additions": 11,2119"assignees": [],2120"author": {2121"id": "MDQ6VXNlcjQxMzkwMDY=",2122"is_bot": false,2123"login": "bsdimp",2124"name": "Warner Losh"2125},2126"autoMergeRequest": null,2127"baseRefName": "master",2128"baseRefOid": "cad172d8f0962f47b08007beedc8f4637618ffe6",2129"body": "The historic gnu bc behavior was to have ^D be delete next character if\r\nthere were any characters in the input, or end of file if there\r\nweren't. This matches what emacs users expect for editing the command\r\nline. Implement this by assuming end of file if the input is empty, and\r\ndelete forward character if it isn't.\r\n\r\nSigned-off-by: Warner Losh <[email protected]>",2130"changedFiles": 1,2131"closed": true,2132"closedAt": "2022-04-29T14:06:09Z",2133"comments": [2134{2135"id": "IC_kwDOCL0xJc5CTTkH",2136"author": {2137"login": "bsdimp"2138},2139"authorAssociation": "CONTRIBUTOR",2140"body": "I've been using this change in my tree for a while now since FreeBSD merged the Howard bc. If there's a way to write a test case for it, please let me know.\r\n\r\nTo test it out, it's simple: 123^B^D^M should leave you in bc and produce the answer 12. Current behavior is to exit after printing 123.",2141"createdAt": "2022-04-28T15:36:16Z",2142"includesCreatedEdit": true,2143"isMinimized": false,2144"minimizedReason": "",2145"reactionGroups": [],2146"url": "https://github.com/gavinhoward/bc/pull/51#issuecomment-1112357127",2147"viewerDidAuthor": false2148},2149{2150"id": "IC_kwDOCL0xJc5CVMF_",2151"author": {2152"login": "gavinhoward"2153},2154"authorAssociation": "OWNER",2155"body": "Thank you for this submission. I have tested it, and it works as advertised. It does require a tweak to the test suite to get all of the tests to pass.\r\n\r\nHowever, there are two hangups.\r\n\r\nFirst, if I do merge this, I'm not sure it warrants another release by itself; it might be better to wait until some other change comes along.\r\n\r\nSecond, this does change the behavior of `bc` and would require a major version bump. This is also the biggest reason for wanting at least one other change; this is a small change that requires a big version bump, and I'd want something big.\r\n\r\nBut the fact that it changes behavior also gives me pause. I don't know how many people depend on the `^D` behavior for end-of-file, even when there's input, and I hesitate to make this change without knowing the numbers.\r\n\r\nHowever, I would be satisfied with just a survey of FreeBSD users, which should be the biggest portion of my userbase. (Not many Linux distros have my `bc`, and history is not available on Windows.) That is, I would be satisfied if the survey showed that the vast majority of the FreeBSD users who respond either don't care or agree with the change.\r\n\r\nI would also be satisfied with the blessing of my regular FreeBSD contact, Stefan Esser, who I believe has a good handle on what changes would be okay to make.\r\n\r\nIf you can give me either one of those two things, I'll merge. If Stefan even gives a blessing for a release, I'll do that too.",2156"createdAt": "2022-04-29T03:47:48Z",2157"includesCreatedEdit": false,2158"isMinimized": false,2159"minimizedReason": "",2160"reactionGroups": [],2161"url": "https://github.com/gavinhoward/bc/pull/51#issuecomment-1112850815",2162"viewerDidAuthor": true2163},2164{2165"id": "IC_kwDOCL0xJc5CW3df",2166"author": {2167"login": "bsdimp"2168},2169"authorAssociation": "CONTRIBUTOR",2170"body": "Since it's only in the command history editing, I'm having trouble understanding how it would affect tests or other input since that code path appears to be disabled when we aren't reading from a tty.\r\n\r\nAnd even if it didn't, ^D on Unix is only a tty signal of EOF. It's not used at the end of files to signify EOF, which is done by zero read.\r\n\r\nFreeBSD used gnu bc since 1998. It has the behavior I've implemented for the past at least 24 years, so it wouldn't be unreasonable to assume that it's what FreeBSD users that care one way or the other would want. Once you've started to edit the text on the line, you don't want to terminate the program and get an answer for the partially edited line.\r\n\r\nI'd argue that this is a mere bug fix to make things more compatible with bc and isn't such a gross behavior change as to warrant a major release bump, but that's just my sensibilities.\r\n\r\nI'm OK waiting on a release. I'll also chat with Stefan as well about this point.",2171"createdAt": "2022-04-29T13:07:47Z",2172"includesCreatedEdit": false,2173"isMinimized": false,2174"minimizedReason": "",2175"reactionGroups": [],2176"url": "https://github.com/gavinhoward/bc/pull/51#issuecomment-1113290591",2177"viewerDidAuthor": false2178},2179{2180"id": "IC_kwDOCL0xJc5CXG7p",2181"author": {2182"login": "gavinhoward"2183},2184"authorAssociation": "OWNER",2185"body": "I have history tests, but they are only run when you run `make test_history` because they can be...flaky. No worries; I'll make the change to fix them. In fact, I might make a change to test this new behavior.\r\n\r\nYou make a compelling and convincing case that this is merely a bug fix. Stefan seems to agree that it is and that many old Unix users would expect this behavior change.\r\n\r\nIn fact, if old Unix users expect the change, then the fact that no one has said anything is probably a good indicator that no one has been using it, which means I can pull the rug out without making anybody mad.\r\n\r\nSo I'm more than satisfied. I'll make the change, and I'll make it in a bugfix release.",2186"createdAt": "2022-04-29T14:06:00Z",2187"includesCreatedEdit": false,2188"isMinimized": false,2189"minimizedReason": "",2190"reactionGroups": [],2191"url": "https://github.com/gavinhoward/bc/pull/51#issuecomment-1113353961",2192"viewerDidAuthor": true2193},2194{2195"id": "IC_kwDOCL0xJc5CXNGY",2196"author": {2197"login": "gavinhoward"2198},2199"authorAssociation": "OWNER",2200"body": "I do have a question: should I remove the EOF behavior entirely?",2201"createdAt": "2022-04-29T14:22:22Z",2202"includesCreatedEdit": false,2203"isMinimized": false,2204"minimizedReason": "",2205"reactionGroups": [],2206"url": "https://github.com/gavinhoward/bc/pull/51#issuecomment-1113379224",2207"viewerDidAuthor": true2208},2209{2210"id": "IC_kwDOCL0xJc5CXQAy",2211"author": {2212"login": "bsdimp"2213},2214"authorAssociation": "CONTRIBUTOR",2215"body": "> I do have a question: should I remove the EOF behavior entirely?\r\n\r\nNo. The behavior I implemented matches gnu bc's behavior.",2216"createdAt": "2022-04-29T14:28:47Z",2217"includesCreatedEdit": false,2218"isMinimized": false,2219"minimizedReason": "",2220"reactionGroups": [2221{2222"content": "THUMBS_UP",2223"users": {2224"totalCount": 12225}2226}2227],2228"url": "https://github.com/gavinhoward/bc/pull/51#issuecomment-1113391154",2229"viewerDidAuthor": false2230},2231{2232"id": "IC_kwDOCL0xJc5CXkZ_",2233"author": {2234"login": "stesser"2235},2236"authorAssociation": "CONTRIBUTOR",2237"body": " I had sent a reply to Gavin a few hours ago, and I do see that the pull request has already been merged.\r\n\r\nJust a comment regarding compatibility with the previous bc version in FreeBSD:\r\n\r\nWhile GNU bc has the requested behavior, the previous bc in FreeBSD up to 12.x did not:\r\n\r\n$ bc -v\r\nbc (BSD bc) 1.1-FreeBSD\r\n$ bc\r\n12345^B^B^B <- cursor on 3\r\n^D <- bell sound, nothing deleted\r\n<DEL>\r\n1245 <- result after pressing DEL\r\n\r\nIn the FreeBSD bc (which had been obtained from OpenBSD) ^D did only signal EOF if the input line was empty, but it did not delete to the right.\r\n\r\nGNU bc actually has the line editing behavior created by this patch, and thus it is further step towards GNU bc compatibility. (And IIRC, GNU bc had been in the FreeBSD base system, a few decades ago ...)",2238"createdAt": "2022-04-29T15:55:50Z",2239"includesCreatedEdit": false,2240"isMinimized": false,2241"minimizedReason": "",2242"reactionGroups": [2243{2244"content": "THUMBS_UP",2245"users": {2246"totalCount": 12247}2248}2249],2250"url": "https://github.com/gavinhoward/bc/pull/51#issuecomment-1113474687",2251"viewerDidAuthor": false2252}2253],2254"commits": [2255{2256"authoredDate": "2022-04-28T15:30:25Z",2257"authors": [2258{2259"email": "[email protected]",2260"id": "MDQ6VXNlcjQxMzkwMDY=",2261"login": "bsdimp",2262"name": "Warner Losh"2263}2264],2265"committedDate": "2022-04-28T15:35:21Z",2266"messageBody": "The historic gnu bc behavior was to have ^D be delete next character if\nthere were any characters in the input, or end of file if there\nweren't. This matches what emacs users expect for editing the command\nline. Implement this by assuming end of file if the input is empty, and\ndelete forward character if it isn't.\n\nSigned-off-by: Warner Losh <[email protected]>",2267"messageHeadline": "Emacs delete-next-character",2268"oid": "cee56074a8fe669901e0869ee8a6e23106d1634b"2269}2270],2271"createdAt": "2022-04-28T15:35:29Z",2272"deletions": 4,2273"files": [2274{2275"path": "src/history.c",2276"additions": 11,2277"deletions": 42278}2279],2280"fullDatabaseId": "922011328",2281"headRefName": "del-forward",2282"headRefOid": "cee56074a8fe669901e0869ee8a6e23106d1634b",2283"headRepository": {2284"id": "R_kgDOHQG2MA",2285"name": "bc"2286},2287"headRepositoryOwner": {2288"id": "MDQ6VXNlcjQxMzkwMDY=",2289"name": "Warner Losh",2290"login": "bsdimp"2291},2292"id": "PR_kwDOCL0xJc429MbA",2293"isCrossRepository": true,2294"isDraft": false,2295"labels": [],2296"latestReviews": [],2297"maintainerCanModify": false,2298"mergeCommit": {2299"oid": "f8fa6febf7521062f0c4ecb6ca4406c91c125360"2300},2301"mergeStateStatus": "UNKNOWN",2302"mergeable": "UNKNOWN",2303"mergedAt": "2022-04-29T14:06:09Z",2304"mergedBy": {2305"id": "MDQ6VXNlcjMxNzI2ODc=",2306"is_bot": false,2307"login": "gavinhoward",2308"name": "Gavin D. Howard"2309},2310"milestone": null,2311"number": 51,2312"potentialMergeCommit": null,2313"projectCards": [],2314"projectItems": [],2315"reactionGroups": [],2316"reviewDecision": "",2317"reviewRequests": [],2318"reviews": [],2319"state": "MERGED",2320"statusCheckRollup": [],2321"title": "Emacs delete-next-character",2322"updatedAt": "2022-04-29T15:55:50Z",2323"url": "https://github.com/gavinhoward/bc/pull/51"2324},2325{2326"additions": 1,2327"assignees": [],2328"author": {2329"id": "MDQ6VXNlcjQ2MTYwNzI3",2330"is_bot": false,2331"login": "firasuke",2332"name": "Firas Khalil Khana"2333},2334"autoMergeRequest": null,2335"baseRefName": "master",2336"baseRefOid": "c3b2d28b2d615ca2b84ba398d796040348c5f13a",2337"body": "",2338"changedFiles": 1,2339"closed": true,2340"closedAt": "2021-12-26T16:59:58Z",2341"comments": [2342{2343"id": "IC_kwDOCL0xJc47rUun",2344"author": {2345"login": "gavinhoward"2346},2347"authorAssociation": "OWNER",2348"body": "Whoops! Thanks for catching.",2349"createdAt": "2021-12-26T17:00:08Z",2350"includesCreatedEdit": false,2351"isMinimized": false,2352"minimizedReason": "",2353"reactionGroups": [],2354"url": "https://github.com/gavinhoward/bc/pull/49#issuecomment-1001212839",2355"viewerDidAuthor": true2356},2357{2358"id": "IC_kwDOCL0xJc47rVpi",2359"author": {2360"login": "firasuke"2361},2362"authorAssociation": "CONTRIBUTOR",2363"body": "Glad I could help!",2364"createdAt": "2021-12-26T17:27:15Z",2365"includesCreatedEdit": false,2366"isMinimized": false,2367"minimizedReason": "",2368"reactionGroups": [],2369"url": "https://github.com/gavinhoward/bc/pull/49#issuecomment-1001216610",2370"viewerDidAuthor": false2371}2372],2373"commits": [2374{2375"authoredDate": "2021-12-26T16:30:19Z",2376"authors": [2377{2378"email": "[email protected]",2379"id": "MDQ6VXNlcjQ2MTYwNzI3",2380"login": "firasuke",2381"name": "Firas Khalil Khana"2382}2383],2384"committedDate": "2021-12-26T16:30:19Z",2385"messageBody": "",2386"messageHeadline": "Add missing newline character",2387"oid": "ef5412b1bc939c0dbe18c7cf523e05de8561b25f"2388}2389],2390"createdAt": "2021-12-26T16:30:26Z",2391"deletions": 1,2392"files": [2393{2394"path": "configure.sh",2395"additions": 1,2396"deletions": 12397}2398],2399"fullDatabaseId": "810041419",2400"headRefName": "patch-1",2401"headRefOid": "ef5412b1bc939c0dbe18c7cf523e05de8561b25f",2402"headRepository": null,2403"headRepositoryOwner": {2404"id": "MDQ6VXNlcjQ2MTYwNzI3",2405"name": "Firas Khalil Khana",2406"login": "firasuke"2407},2408"id": "PR_kwDOCL0xJc4wSEBL",2409"isCrossRepository": true,2410"isDraft": false,2411"labels": [],2412"latestReviews": [],2413"maintainerCanModify": false,2414"mergeCommit": {2415"oid": "232a12f6870eaf8fed95c12aa33fb3dbd7df8715"2416},2417"mergeStateStatus": "UNKNOWN",2418"mergeable": "UNKNOWN",2419"mergedAt": "2021-12-26T16:59:58Z",2420"mergedBy": {2421"id": "MDQ6VXNlcjMxNzI2ODc=",2422"is_bot": false,2423"login": "gavinhoward",2424"name": "Gavin D. Howard"2425},2426"milestone": null,2427"number": 49,2428"potentialMergeCommit": null,2429"projectCards": [],2430"projectItems": [],2431"reactionGroups": [],2432"reviewDecision": "",2433"reviewRequests": [],2434"reviews": [],2435"state": "MERGED",2436"statusCheckRollup": [],2437"title": "Add missing newline character",2438"updatedAt": "2021-12-26T17:27:19Z",2439"url": "https://github.com/gavinhoward/bc/pull/49"2440},2441{2442"additions": 7,2443"assignees": [],2444"author": {2445"id": "MDQ6VXNlcjEzNTQxNjk5",2446"is_bot": false,2447"login": "depler",2448"name": ""2449},2450"autoMergeRequest": null,2451"baseRefName": "master",2452"baseRefOid": "289ad4a08981c4eaf1328ab9d16f184ee0466a34",2453"body": "",2454"changedFiles": 1,2455"closed": true,2456"closedAt": "2021-09-29T15:05:03Z",2457"comments": [2458{2459"id": "IC_kwDOCL0xJc43crZP",2460"author": {2461"login": "gavinhoward"2462},2463"authorAssociation": "OWNER",2464"body": "Looks good! Thank you!",2465"createdAt": "2021-09-29T15:05:16Z",2466"includesCreatedEdit": false,2467"isMinimized": false,2468"minimizedReason": "",2469"reactionGroups": [],2470"url": "https://github.com/gavinhoward/bc/pull/44#issuecomment-930264655",2471"viewerDidAuthor": true2472}2473],2474"commits": [2475{2476"authoredDate": "2021-09-29T09:33:47Z",2477"authors": [2478{2479"email": "[email protected]",2480"id": "MDQ6VXNlcjEzNTQxNjk5",2481"login": "depler",2482"name": "depler"2483}2484],2485"committedDate": "2021-09-29T09:33:47Z",2486"messageBody": "",2487"messageHeadline": "tests_bc.bat fix",2488"oid": "2d05fde966b12cee7e02220f1466efd7a78a56c4"2489}2490],2491"createdAt": "2021-09-29T09:34:23Z",2492"deletions": 7,2493"files": [2494{2495"path": "vs/tests/tests_bc.bat",2496"additions": 7,2497"deletions": 72498}2499],2500"fullDatabaseId": "745557688",2501"headRefName": "master",2502"headRefOid": "2d05fde966b12cee7e02220f1466efd7a78a56c4",2503"headRepository": null,2504"headRepositoryOwner": {2505"id": "MDQ6VXNlcjEzNTQxNjk5",2506"login": "depler"2507},2508"id": "PR_kwDOCL0xJc4scE64",2509"isCrossRepository": true,2510"isDraft": false,2511"labels": [],2512"latestReviews": [],2513"maintainerCanModify": false,2514"mergeCommit": {2515"oid": "74d55ddfc79df8adeb70cdb2fc81dc05f8bacbde"2516},2517"mergeStateStatus": "UNKNOWN",2518"mergeable": "UNKNOWN",2519"mergedAt": "2021-09-29T15:05:03Z",2520"mergedBy": {2521"id": "MDQ6VXNlcjMxNzI2ODc=",2522"is_bot": false,2523"login": "gavinhoward",2524"name": "Gavin D. Howard"2525},2526"milestone": null,2527"number": 44,2528"potentialMergeCommit": null,2529"projectCards": [],2530"projectItems": [],2531"reactionGroups": [],2532"reviewDecision": "",2533"reviewRequests": [],2534"reviews": [],2535"state": "MERGED",2536"statusCheckRollup": [],2537"title": "tests_bc.bat fix",2538"updatedAt": "2021-09-29T15:05:16Z",2539"url": "https://github.com/gavinhoward/bc/pull/44"2540},2541{2542"additions": 1017,2543"assignees": [],2544"author": {2545"id": "MDQ6VXNlcjEzNTQxNjk5",2546"is_bot": false,2547"login": "depler",2548"name": ""2549},2550"autoMergeRequest": null,2551"baseRefName": "master",2552"baseRefOid": "da29d88f70dca79c8a7e274b1cb5dee3c4bccb6f",2553"body": "Changes:\r\n- projects moved to subfolder `vs`\r\n- projects created from scratch\r\n- fixed release configuration in executable (code optimizations enabled)\r\n- executable is statically linked (should work without any dependencies starting on Vista and newer)\r\n- library contains configurations `ReleaseMD` and `ReleaseMT` (shared and static linkage)\r\n- added 'vs\\tests' subfolder with scripts for windows (uses original test files, see `tests_bc.bat`, `tests_dc.bat`)\r\n\r\nBy the way, did you test binaries on windows? I've found failed test for dc:\r\n\r\n```\r\nc:\\Data\\Sources\\bc\\vs\\tests>tests_dc.bat\r\nPASS: abs\r\nPASS: add\r\nPASS: arctangent\r\nPASS: arrays\r\nPASS: assignments\r\n\r\n...\r\n\r\nParse error: bad character 't'\r\n <stdin>:2\r\n\r\nFAIL_RUNTIME: vars\r\n```\r\n",2554"changedFiles": 15,2555"closed": true,2556"closedAt": "2021-09-25T21:06:56Z",2557"comments": [2558{2559"id": "IC_kwDOCL0xJc43Q7BQ",2560"author": {2561"login": "gavinhoward"2562},2563"authorAssociation": "OWNER",2564"body": "I'm pulling this now because I made the fixes for all issues based on your code.\r\n\r\nI'm probably going to need your help still.",2565"createdAt": "2021-09-25T21:06:52Z",2566"includesCreatedEdit": false,2567"isMinimized": false,2568"minimizedReason": "",2569"reactionGroups": [],2570"url": "https://github.com/gavinhoward/bc/pull/38#issuecomment-927182928",2571"viewerDidAuthor": true2572}2573],2574"commits": [2575{2576"authoredDate": "2021-09-24T22:42:26Z",2577"authors": [2578{2579"email": "[email protected]",2580"id": "MDQ6VXNlcjEzNTQxNjk5",2581"login": "depler",2582"name": "depler"2583}2584],2585"committedDate": "2021-09-24T22:42:26Z",2586"messageBody": "",2587"messageHeadline": "new bc.vcxproj, static linkage, release configuration",2588"oid": "ae20dd7c1fedf9a7534aca4fda9783356cd15f86"2589},2590{2591"authoredDate": "2021-09-25T07:07:19Z",2592"authors": [2593{2594"email": "[email protected]",2595"id": "MDQ6VXNlcjEzNTQxNjk5",2596"login": "depler",2597"name": "depler"2598}2599],2600"committedDate": "2021-09-25T07:07:19Z",2601"messageBody": "",2602"messageHeadline": "bcl project",2603"oid": "1c9479c50217773732f4111e4c3dfbc7e7415c1e"2604},2605{2606"authoredDate": "2021-09-25T07:15:33Z",2607"authors": [2608{2609"email": "[email protected]",2610"id": "MDQ6VXNlcjEzNTQxNjk5",2611"login": "depler",2612"name": "depler"2613}2614],2615"committedDate": "2021-09-25T07:15:33Z",2616"messageBody": "",2617"messageHeadline": "ReleaseMD, ReleaseMT",2618"oid": "99a58fea193b6bcc1bec4adcd02c53522da20c86"2619},2620{2621"authoredDate": "2021-09-25T07:16:06Z",2622"authors": [2623{2624"email": "[email protected]",2625"id": "MDQ6VXNlcjEzNTQxNjk5",2626"login": "depler",2627"name": "depler"2628}2629],2630"committedDate": "2021-09-25T07:16:06Z",2631"messageBody": "",2632"messageHeadline": "cleanup",2633"oid": "2230f31c8d4d53223a1dc13b0b399e374e57999f"2634},2635{2636"authoredDate": "2021-09-25T07:20:11Z",2637"authors": [2638{2639"email": "[email protected]",2640"id": "MDQ6VXNlcjEzNTQxNjk5",2641"login": "depler",2642"name": "depler"2643}2644],2645"committedDate": "2021-09-25T07:20:11Z",2646"messageBody": "",2647"messageHeadline": "fix",2648"oid": "0a08c1a2d382fdf1406eecfc6669d8279810c51a"2649},2650{2651"authoredDate": "2021-09-25T10:48:31Z",2652"authors": [2653{2654"email": "[email protected]",2655"id": "MDQ6VXNlcjEzNTQxNjk5",2656"login": "depler",2657"name": "depler"2658}2659],2660"committedDate": "2021-09-25T10:48:31Z",2661"messageBody": "",2662"messageHeadline": "windows tests",2663"oid": "2aaf6a7c624b441346200126504e713e1e324553"2664}2665],2666"createdAt": "2021-09-25T07:27:03Z",2667"deletions": 760,2668"files": [2669{2670"path": "bc.vcxproj",2671"additions": 0,2672"deletions": 2782673},2674{2675"path": "bc.vcxproj.filters",2676"additions": 0,2677"deletions": 1822678},2679{2680"path": "bcl.sln",2681"additions": 0,2682"deletions": 312683},2684{2685"path": "bcl.vcxproj",2686"additions": 0,2687"deletions": 1612688},2689{2690"path": "bcl.vcxproj.filters",2691"additions": 0,2692"deletions": 962693},2694{2695"path": "src/program.c",2696"additions": 1,2697"deletions": 12698},2699{2700"path": "vs/.gitignore",2701"additions": 7,2702"deletions": 02703},2704{2705"path": "vs/bc.sln",2706"additions": 11,2707"deletions": 112708},2709{2710"path": "vs/bc.vcxproj",2711"additions": 298,2712"deletions": 02713},2714{2715"path": "vs/bc.vcxproj.filters",2716"additions": 173,2717"deletions": 02718},2719{2720"path": "vs/bcl.sln",2721"additions": 37,2722"deletions": 02723},2724{2725"path": "vs/bcl.vcxproj",2726"additions": 259,2727"deletions": 02728},2729{2730"path": "vs/bcl.vcxproj.filters",2731"additions": 90,2732"deletions": 02733},2734{2735"path": "vs/tests/tests_bc.bat",2736"additions": 81,2737"deletions": 02738},2739{2740"path": "vs/tests/tests_dc.bat",2741"additions": 60,2742"deletions": 02743}2744],2745"fullDatabaseId": "742640199",2746"headRefName": "master",2747"headRefOid": "2aaf6a7c624b441346200126504e713e1e324553",2748"headRepository": null,2749"headRepositoryOwner": {2750"id": "MDQ6VXNlcjEzNTQxNjk5",2751"login": "depler"2752},2753"id": "PR_kwDOCL0xJc4sQ8pH",2754"isCrossRepository": true,2755"isDraft": false,2756"labels": [],2757"latestReviews": [],2758"maintainerCanModify": false,2759"mergeCommit": {2760"oid": "d3793fa5a17c198482baeee027464b98a3869270"2761},2762"mergeStateStatus": "UNKNOWN",2763"mergeable": "UNKNOWN",2764"mergedAt": "2021-09-25T21:06:56Z",2765"mergedBy": {2766"id": "MDQ6VXNlcjMxNzI2ODc=",2767"is_bot": false,2768"login": "gavinhoward",2769"name": "Gavin D. Howard"2770},2771"milestone": null,2772"number": 38,2773"potentialMergeCommit": null,2774"projectCards": [],2775"projectItems": [],2776"reactionGroups": [],2777"reviewDecision": "",2778"reviewRequests": [],2779"reviews": [],2780"state": "MERGED",2781"statusCheckRollup": [],2782"title": "Visual Studio projects refactoring",2783"updatedAt": "2021-09-25T21:06:56Z",2784"url": "https://github.com/gavinhoward/bc/pull/38"2785},2786{2787"additions": 1,2788"assignees": [],2789"author": {2790"id": "MDQ6VXNlcjM4ODMzNTE=",2791"is_bot": false,2792"login": "ibara",2793"name": "Brian Callahan"2794},2795"autoMergeRequest": null,2796"baseRefName": "master",2797"baseRefOid": "3317fc9138148ac48beb4886206be45ebac2a838",2798"body": "on => one",2799"changedFiles": 1,2800"closed": true,2801"closedAt": "2020-03-11T17:36:56Z",2802"comments": [2803{2804"id": "MDEyOklzc3VlQ29tbWVudDU5NzcwNjM0Nw==",2805"author": {2806"login": "codecov"2807},2808"authorAssociation": "NONE",2809"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/28?src=pr&el=h1) Report\n> Merging [#28](https://codecov.io/gh/gavinhoward/bc/pull/28?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/3317fc9138148ac48beb4886206be45ebac2a838&el=desc) will **not change** coverage by `%`.\n> The diff coverage is `n/a`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/28?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #28 +/- ##\n=======================================\n Coverage 99.65% 99.65% \n=======================================\n Files 16 16 \n Lines 3497 3497 \n=======================================\n Hits 3485 3485 \n Misses 12 12 \n```\n\n\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/28?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/28?src=pr&el=footer). Last update [3317fc9...24c93ff](https://codecov.io/gh/gavinhoward/bc/pull/28?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",2810"createdAt": "2020-03-11T15:39:52Z",2811"includesCreatedEdit": true,2812"isMinimized": false,2813"minimizedReason": "",2814"reactionGroups": [],2815"url": "https://github.com/gavinhoward/bc/pull/28#issuecomment-597706347",2816"viewerDidAuthor": false2817},2818{2819"id": "MDEyOklzc3VlQ29tbWVudDU5Nzc3MTUwMw==",2820"author": {2821"login": "gavinhoward"2822},2823"authorAssociation": "OWNER",2824"body": "Thank you! Merged.",2825"createdAt": "2020-03-11T17:39:45Z",2826"includesCreatedEdit": false,2827"isMinimized": false,2828"minimizedReason": "",2829"reactionGroups": [],2830"url": "https://github.com/gavinhoward/bc/pull/28#issuecomment-597771503",2831"viewerDidAuthor": true2832}2833],2834"commits": [2835{2836"authoredDate": "2020-03-11T15:37:45Z",2837"authors": [2838{2839"email": "[email protected]",2840"id": "MDQ6VXNlcjM4ODMzNTE=",2841"login": "ibara",2842"name": "Brian Callahan"2843}2844],2845"committedDate": "2020-03-11T15:37:45Z",2846"messageBody": "on => one",2847"messageHeadline": "Fix a typo in build.md",2848"oid": "24c93ffc52bfcae55f3b694e9684b49a105834e7"2849}2850],2851"createdAt": "2020-03-11T15:37:54Z",2852"deletions": 1,2853"files": [2854{2855"path": "manuals/build.md",2856"additions": 1,2857"deletions": 12858}2859],2860"fullDatabaseId": "386765314",2861"headRefName": "patch-1",2862"headRefOid": "24c93ffc52bfcae55f3b694e9684b49a105834e7",2863"headRepository": null,2864"headRepositoryOwner": {2865"id": "MDQ6VXNlcjM4ODMzNTE=",2866"name": "Brian Callahan",2867"login": "ibara"2868},2869"id": "MDExOlB1bGxSZXF1ZXN0Mzg2NzY1MzE0",2870"isCrossRepository": true,2871"isDraft": false,2872"labels": [],2873"latestReviews": [],2874"maintainerCanModify": false,2875"mergeCommit": {2876"oid": "725f14b41767d34e6be02fa07dc2db659fa55b02"2877},2878"mergeStateStatus": "UNKNOWN",2879"mergeable": "UNKNOWN",2880"mergedAt": "2020-03-11T17:36:56Z",2881"mergedBy": {2882"id": "MDQ6VXNlcjMxNzI2ODc=",2883"is_bot": false,2884"login": "gavinhoward",2885"name": "Gavin D. Howard"2886},2887"milestone": null,2888"number": 28,2889"potentialMergeCommit": null,2890"projectCards": [],2891"projectItems": [],2892"reactionGroups": [],2893"reviewDecision": "",2894"reviewRequests": [],2895"reviews": [],2896"state": "MERGED",2897"statusCheckRollup": [],2898"title": "Fix a typo in build.md",2899"updatedAt": "2020-03-11T18:18:12Z",2900"url": "https://github.com/gavinhoward/bc/pull/28"2901},2902{2903"additions": 86,2904"assignees": [],2905"author": {2906"id": "MDQ6VXNlcjMwOTE2NjEz",2907"is_bot": false,2908"login": "zv-io",2909"name": ""2910},2911"autoMergeRequest": null,2912"baseRefName": "master",2913"baseRefOid": "358951d4fa58db3077a5675a6547c44e41101de9",2914"body": "This series addresses some bugs found on Solaris as discussed with the author in IRC earlier today. The following systems have been \"loosely\" tested to compile and pass the non-external-`bc` test suite:\r\n\r\n* Solaris 10 [sun4u] (GCC `5.5.0`) in both 32- and 64- bit modes;\r\n* Solaris 11 [sun4v] (GCC `4.8.2` and `7.5.0`) in both 32- and 64- bit modes;\r\n\r\nNote: Solaris 10 requires aliasing to a POSIX-compliant shell (e.g. `/usr/xpg4/bin/sh`) or modifying the top of any scripts citing `/bin/sh` to this value.",2915"changedFiles": 62,2916"closed": true,2917"closedAt": "2020-01-15T22:33:33Z",2918"comments": [2919{2920"id": "MDEyOklzc3VlQ29tbWVudDU3NDQ5NzI3Mw==",2921"author": {2922"login": "codecov"2923},2924"authorAssociation": "NONE",2925"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/27?src=pr&el=h1) Report\n> Merging [#27](https://codecov.io/gh/gavinhoward/bc/pull/27?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/358951d4fa58db3077a5675a6547c44e41101de9?src=pr&el=desc) will **not change** coverage.\n> The diff coverage is `n/a`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/27?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #27 +/- ##\n=======================================\n Coverage 99.65% 99.65% \n=======================================\n Files 16 16 \n Lines 3496 3496 \n=======================================\n Hits 3484 3484 \n Misses 12 12\n```\n\n\n| [Impacted Files](https://codecov.io/gh/gavinhoward/bc/pull/27?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [src/bc/parse.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL2JjL3BhcnNlLmM=) | `100% <ø> (ø)` | :arrow_up: |\n| [src/parse.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL3BhcnNlLmM=) | `100% <ø> (ø)` | :arrow_up: |\n| [src/read.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL3JlYWQuYw==) | `100% <ø> (ø)` | :arrow_up: |\n| [src/vm.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL3ZtLmM=) | `99.59% <ø> (ø)` | :arrow_up: |\n| [src/main.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL21haW4uYw==) | `100% <ø> (ø)` | :arrow_up: |\n| [src/num.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL251bS5j) | `99.41% <ø> (ø)` | :arrow_up: |\n| [src/lex.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL2xleC5j) | `100% <ø> (ø)` | :arrow_up: |\n| [src/bc/bc.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL2JjL2JjLmM=) | `100% <ø> (ø)` | :arrow_up: |\n| [src/bc/lex.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL2JjL2xleC5j) | `100% <ø> (ø)` | :arrow_up: |\n| [src/lang.c](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree#diff-c3JjL2xhbmcuYw==) | `97.33% <ø> (ø)` | :arrow_up: |\n| ... and [6 more](https://codecov.io/gh/gavinhoward/bc/pull/27/diff?src=pr&el=tree-more) | |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/27?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/27?src=pr&el=footer). Last update [358951d...a756285](https://codecov.io/gh/gavinhoward/bc/pull/27?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",2926"createdAt": "2020-01-15T05:02:18Z",2927"includesCreatedEdit": true,2928"isMinimized": false,2929"minimizedReason": "",2930"reactionGroups": [],2931"url": "https://github.com/gavinhoward/bc/pull/27#issuecomment-574497273",2932"viewerDidAuthor": false2933}2934],2935"commits": [2936{2937"authoredDate": "2020-01-14T21:56:45Z",2938"authors": [2939{2940"email": "[email protected]",2941"id": "MDQ6VXNlcjMwOTE2NjEz",2942"login": "zv-io",2943"name": "Zach van Rijn"2944}2945],2946"committedDate": "2020-01-14T22:17:19Z",2947"messageBody": "",2948"messageHeadline": "Fix bug caused by inconsistent preservation of line endings by 'sed'.",2949"oid": "d3b3813c94d6553caad61752dd7ac99dd860e20c"2950},2951{2952"authoredDate": "2020-01-14T22:03:42Z",2953"authors": [2954{2955"email": "[email protected]",2956"id": "MDQ6VXNlcjMwOTE2NjEz",2957"login": "zv-io",2958"name": "Zach van Rijn"2959}2960],2961"committedDate": "2020-01-14T22:17:26Z",2962"messageBody": "…'ls' command. Improve robustness of test conditions.",2963"messageHeadline": "Switch from POSIX 2008 --> 2001 build flags. Remove use of dangerous …",2964"oid": "72238e589bf7e8cb6a9bb380f367c1a5edcc8b82"2965},2966{2967"authoredDate": "2020-01-14T22:05:02Z",2968"authors": [2969{2970"email": "[email protected]",2971"id": "MDQ6VXNlcjMwOTE2NjEz",2972"login": "zv-io",2973"name": "Zach van Rijn"2974}2975],2976"committedDate": "2020-01-14T22:17:27Z",2977"messageBody": "",2978"messageHeadline": "Update copyright year 2019 --> 2020.",2979"oid": "eb34ee5e9d5607c08e7080d9c44e03d393756493"2980},2981{2982"authoredDate": "2020-01-14T22:24:01Z",2983"authors": [2984{2985"email": "[email protected]",2986"id": "MDQ6VXNlcjMwOTE2NjEz",2987"login": "zv-io",2988"name": "Zach van Rijn"2989}2990],2991"committedDate": "2020-01-14T22:24:01Z",2992"messageBody": "…sions.",2993"messageHeadline": "Explicit '-std=c99' to avoid ambiguity across different compilers/ver…",2994"oid": "a38469fd93c20d1de3f972c982de3c234000116a"2995},2996{2997"authoredDate": "2020-01-14T22:57:04Z",2998"authors": [2999{3000"email": "[email protected]",3001"id": "MDQ6VXNlcjMwOTE2NjEz",3002"login": "zv-io",3003"name": "Zach van Rijn"3004}3005],3006"committedDate": "2020-01-14T22:59:48Z",3007"messageBody": "",3008"messageHeadline": "Update documentation and prepare for release.",3009"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3010},3011{3012"authoredDate": "2020-01-15T13:56:00Z",3013"authors": [3014{3015"email": "[email protected]",3016"id": "MDQ6VXNlcjMwOTE2NjEz",3017"login": "zv-io",3018"name": "Zach van Rijn"3019}3020],3021"committedDate": "2020-01-15T13:56:00Z",3022"messageBody": "…lers/versions.\"\n\nThis reverts commit a38469fd93c20d1de3f972c982de3c234000116a.",3023"messageHeadline": "Revert \"Explicit '-std=c99' to avoid ambiguity across different compi…",3024"oid": "8b83e334177701cd2c05fd10090a1f582bd7e9f8"3025},3026{3027"authoredDate": "2020-01-15T13:57:24Z",3028"authors": [3029{3030"email": "[email protected]",3031"id": "MDQ6VXNlcjMwOTE2NjEz",3032"login": "zv-io",3033"name": "Zach van Rijn"3034}3035],3036"committedDate": "2020-01-15T13:57:24Z",3037"messageBody": "",3038"messageHeadline": "Comply with versioning policy as per author feedback in PR 27.",3039"oid": "a756285f60b2139fc629c3edf230c8b1f9a875ed"3040}3041],3042"createdAt": "2020-01-15T04:59:12Z",3043"deletions": 79,3044"files": [3045{3046"path": "Makefile.in",3047"additions": 3,3048"deletions": 33049},3050{3051"path": "NEWS.md",3052"additions": 6,3053"deletions": 03054},3055{3056"path": "README.md",3057"additions": 3,3058"deletions": 23059},3060{3061"path": "configure.sh",3062"additions": 12,3063"deletions": 123064},3065{3066"path": "functions.sh",3067"additions": 3,3068"deletions": 33069},3070{3071"path": "gen/bc_help.txt",3072"additions": 1,3073"deletions": 13074},3075{3076"path": "gen/dc_help.txt",3077"additions": 1,3078"deletions": 13079},3080{3081"path": "gen/lib.bc",3082"additions": 1,3083"deletions": 13084},3085{3086"path": "gen/lib2.bc",3087"additions": 1,3088"deletions": 13089},3090{3091"path": "gen/strgen.c",3092"additions": 2,3093"deletions": 23094},3095{3096"path": "include/args.h",3097"additions": 1,3098"deletions": 13099},3100{3101"path": "include/bc.h",3102"additions": 1,3103"deletions": 13104},3105{3106"path": "include/dc.h",3107"additions": 1,3108"deletions": 13109},3110{3111"path": "include/history.h",3112"additions": 1,3113"deletions": 13114},3115{3116"path": "include/lang.h",3117"additions": 1,3118"deletions": 13119},3120{3121"path": "include/lex.h",3122"additions": 1,3123"deletions": 13124},3125{3126"path": "include/num.h",3127"additions": 1,3128"deletions": 13129},3130{3131"path": "include/parse.h",3132"additions": 1,3133"deletions": 13134},3135{3136"path": "include/program.h",3137"additions": 1,3138"deletions": 13139},3140{3141"path": "include/read.h",3142"additions": 1,3143"deletions": 13144},3145{3146"path": "include/status.h",3147"additions": 1,3148"deletions": 13149},3150{3151"path": "include/vector.h",3152"additions": 1,3153"deletions": 13154},3155{3156"path": "include/vm.h",3157"additions": 1,3158"deletions": 13159},3160{3161"path": "install.sh",3162"additions": 1,3163"deletions": 13164},3165{3166"path": "karatsuba.py",3167"additions": 1,3168"deletions": 13169},3170{3171"path": "link.sh",3172"additions": 1,3173"deletions": 13174},3175{3176"path": "locale_install.sh",3177"additions": 1,3178"deletions": 13179},3180{3181"path": "locale_uninstall.sh",3182"additions": 1,3183"deletions": 13184},3185{3186"path": "locales/en_US.msg",3187"additions": 1,3188"deletions": 13189},3190{3191"path": "locales/fr_FR.ISO8859-1.msg",3192"additions": 1,3193"deletions": 13194},3195{3196"path": "locales/fr_FR.UTF-8.msg",3197"additions": 1,3198"deletions": 13199},3200{3201"path": "locales/pt_PT.ISO-8859-1.msg",3202"additions": 1,3203"deletions": 13204},3205{3206"path": "locales/pt_PT.UTF-8.msg",3207"additions": 1,3208"deletions": 13209},3210{3211"path": "release.sh",3212"additions": 1,3213"deletions": 13214},3215{3216"path": "src/args.c",3217"additions": 1,3218"deletions": 13219},3220{3221"path": "src/bc/bc.c",3222"additions": 1,3223"deletions": 13224},3225{3226"path": "src/bc/lex.c",3227"additions": 1,3228"deletions": 13229},3230{3231"path": "src/bc/parse.c",3232"additions": 1,3233"deletions": 13234},3235{3236"path": "src/data.c",3237"additions": 2,3238"deletions": 23239},3240{3241"path": "src/dc/dc.c",3242"additions": 1,3243"deletions": 13244},3245{3246"path": "src/dc/lex.c",3247"additions": 1,3248"deletions": 13249},3250{3251"path": "src/dc/parse.c",3252"additions": 1,3253"deletions": 13254},3255{3256"path": "src/history/history.c",3257"additions": 1,3258"deletions": 13259},3260{3261"path": "src/lang.c",3262"additions": 1,3263"deletions": 13264},3265{3266"path": "src/lex.c",3267"additions": 1,3268"deletions": 13269},3270{3271"path": "src/main.c",3272"additions": 1,3273"deletions": 13274},3275{3276"path": "src/num.c",3277"additions": 1,3278"deletions": 13279},3280{3281"path": "src/parse.c",3282"additions": 1,3283"deletions": 13284},3285{3286"path": "src/program.c",3287"additions": 1,3288"deletions": 13289},3290{3291"path": "src/read.c",3292"additions": 1,3293"deletions": 13294},3295{3296"path": "src/vector.c",3297"additions": 1,3298"deletions": 13299},3300{3301"path": "src/vm.c",3302"additions": 1,3303"deletions": 13304},3305{3306"path": "tests/afl.py",3307"additions": 1,3308"deletions": 13309},3310{3311"path": "tests/all.sh",3312"additions": 1,3313"deletions": 13314},3315{3316"path": "tests/bc/timeconst.sh",3317"additions": 1,3318"deletions": 13319},3320{3321"path": "tests/errors.sh",3322"additions": 1,3323"deletions": 13324},3325{3326"path": "tests/randmath.py",3327"additions": 1,3328"deletions": 13329},3330{3331"path": "tests/read.sh",3332"additions": 1,3333"deletions": 13334},3335{3336"path": "tests/script.sh",3337"additions": 1,3338"deletions": 13339},3340{3341"path": "tests/scripts.sh",3342"additions": 1,3343"deletions": 13344},3345{3346"path": "tests/stdin.sh",3347"additions": 1,3348"deletions": 13349},3350{3351"path": "tests/test.sh",3352"additions": 1,3353"deletions": 13354}3355],3356"fullDatabaseId": "362957298",3357"headRefName": "master",3358"headRefOid": "a756285f60b2139fc629c3edf230c8b1f9a875ed",3359"headRepository": null,3360"headRepositoryOwner": {3361"id": "MDQ6VXNlcjMwOTE2NjEz",3362"login": "zv-io"3363},3364"id": "MDExOlB1bGxSZXF1ZXN0MzYyOTU3Mjk4",3365"isCrossRepository": true,3366"isDraft": false,3367"labels": [],3368"latestReviews": [3369{3370"id": "",3371"author": {3372"login": "michaelforney"3373},3374"authorAssociation": "CONTRIBUTOR",3375"body": "",3376"submittedAt": "2020-01-15T06:00:48Z",3377"includesCreatedEdit": false,3378"reactionGroups": [],3379"state": "COMMENTED",3380"commit": {3381"oid": ""3382}3383},3384{3385"id": "",3386"author": {3387"login": "ibara"3388},3389"authorAssociation": "CONTRIBUTOR",3390"body": "",3391"submittedAt": "2020-01-15T20:20:03Z",3392"includesCreatedEdit": false,3393"reactionGroups": [],3394"state": "COMMENTED",3395"commit": {3396"oid": ""3397}3398},3399{3400"id": "",3401"author": {3402"login": "gavinhoward"3403},3404"authorAssociation": "OWNER",3405"body": "",3406"submittedAt": "2020-01-15T22:33:19Z",3407"includesCreatedEdit": false,3408"reactionGroups": [],3409"state": "APPROVED",3410"commit": {3411"oid": ""3412}3413}3414],3415"maintainerCanModify": false,3416"mergeCommit": {3417"oid": "063a155d1ee6c68bfba37733777ad1331810fdf1"3418},3419"mergeStateStatus": "UNKNOWN",3420"mergeable": "UNKNOWN",3421"mergedAt": "2020-01-15T22:33:33Z",3422"mergedBy": {3423"id": "MDQ6VXNlcjMxNzI2ODc=",3424"is_bot": false,3425"login": "gavinhoward",3426"name": "Gavin D. Howard"3427},3428"milestone": null,3429"number": 27,3430"potentialMergeCommit": null,3431"projectCards": [],3432"projectItems": [],3433"reactionGroups": [],3434"reviewDecision": "APPROVED",3435"reviewRequests": [],3436"reviews": [3437{3438"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQyOTk0NDA3",3439"author": {3440"login": "gavinhoward"3441},3442"authorAssociation": "OWNER",3443"body": "Thank you for this PR! Unfortunately, it needs some work before I can accept it. See reviews below.",3444"submittedAt": "2020-01-15T05:32:13Z",3445"includesCreatedEdit": false,3446"reactionGroups": [],3447"state": "CHANGES_REQUESTED",3448"commit": {3449"oid": "d3b3813c94d6553caad61752dd7ac99dd860e20c"3450}3451},3452{3453"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMDAyMDEx",3454"author": {3455"login": "michaelforney"3456},3457"authorAssociation": "CONTRIBUTOR",3458"body": "",3459"submittedAt": "2020-01-15T06:00:48Z",3460"includesCreatedEdit": false,3461"reactionGroups": [],3462"state": "COMMENTED",3463"commit": {3464"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3465}3466},3467{3468"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMDAyNTYx",3469"author": {3470"login": "gavinhoward"3471},3472"authorAssociation": "OWNER",3473"body": "",3474"submittedAt": "2020-01-15T06:02:59Z",3475"includesCreatedEdit": false,3476"reactionGroups": [],3477"state": "COMMENTED",3478"commit": {3479"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3480}3481},3482{3483"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMDEwNjM1",3484"author": {3485"login": "gavinhoward"3486},3487"authorAssociation": "OWNER",3488"body": "",3489"submittedAt": "2020-01-15T06:34:47Z",3490"includesCreatedEdit": false,3491"reactionGroups": [],3492"state": "COMMENTED",3493"commit": {3494"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3495}3496},3497{3498"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMjM5MTU3",3499"author": {3500"login": "zv-io"3501},3502"authorAssociation": "CONTRIBUTOR",3503"body": "",3504"submittedAt": "2020-01-15T14:04:17Z",3505"includesCreatedEdit": false,3506"reactionGroups": [],3507"state": "COMMENTED",3508"commit": {3509"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3510}3511},3512{3513"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMjQ0ODg5",3514"author": {3515"login": "zv-io"3516},3517"authorAssociation": "CONTRIBUTOR",3518"body": "",3519"submittedAt": "2020-01-15T14:12:43Z",3520"includesCreatedEdit": false,3521"reactionGroups": [],3522"state": "COMMENTED",3523"commit": {3524"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3525}3526},3527{3528"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMjU1NTQ0",3529"author": {3530"login": "zv-io"3531},3532"authorAssociation": "CONTRIBUTOR",3533"body": "",3534"submittedAt": "2020-01-15T14:27:10Z",3535"includesCreatedEdit": false,3536"reactionGroups": [],3537"state": "COMMENTED",3538"commit": {3539"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3540}3541},3542{3543"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMjU2MjE0",3544"author": {3545"login": "zv-io"3546},3547"authorAssociation": "CONTRIBUTOR",3548"body": "",3549"submittedAt": "2020-01-15T14:28:02Z",3550"includesCreatedEdit": false,3551"reactionGroups": [],3552"state": "COMMENTED",3553"commit": {3554"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3555}3556},3557{3558"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMjczNTgx",3559"author": {3560"login": "gavinhoward"3561},3562"authorAssociation": "OWNER",3563"body": "",3564"submittedAt": "2020-01-15T14:50:50Z",3565"includesCreatedEdit": false,3566"reactionGroups": [],3567"state": "COMMENTED",3568"commit": {3569"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3570}3571},3572{3573"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzMjc3MTQ4",3574"author": {3575"login": "gavinhoward"3576},3577"authorAssociation": "OWNER",3578"body": "",3579"submittedAt": "2020-01-15T14:55:18Z",3580"includesCreatedEdit": false,3581"reactionGroups": [],3582"state": "COMMENTED",3583"commit": {3584"oid": "f022d5dedc841bb1d23fa2e03fdc97a639de700d"3585}3586},3587{3588"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzNDk1MzQ1",3589"author": {3590"login": "ibara"3591},3592"authorAssociation": "CONTRIBUTOR",3593"body": "",3594"submittedAt": "2020-01-15T20:20:03Z",3595"includesCreatedEdit": false,3596"reactionGroups": [],3597"state": "COMMENTED",3598"commit": {3599"oid": "a756285f60b2139fc629c3edf230c8b1f9a875ed"3600}3601},3602{3603"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzNDk5ODcx",3604"author": {3605"login": "gavinhoward"3606},3607"authorAssociation": "OWNER",3608"body": "",3609"submittedAt": "2020-01-15T20:28:14Z",3610"includesCreatedEdit": false,3611"reactionGroups": [],3612"state": "COMMENTED",3613"commit": {3614"oid": "a756285f60b2139fc629c3edf230c8b1f9a875ed"3615}3616},3617{3618"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzNTY3ODE3",3619"author": {3620"login": "gavinhoward"3621},3622"authorAssociation": "OWNER",3623"body": "",3624"submittedAt": "2020-01-15T22:33:01Z",3625"includesCreatedEdit": false,3626"reactionGroups": [],3627"state": "COMMENTED",3628"commit": {3629"oid": "a756285f60b2139fc629c3edf230c8b1f9a875ed"3630}3631},3632{3633"id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MzQzNTY3OTcx",3634"author": {3635"login": "gavinhoward"3636},3637"authorAssociation": "OWNER",3638"body": "",3639"submittedAt": "2020-01-15T22:33:19Z",3640"includesCreatedEdit": false,3641"reactionGroups": [],3642"state": "APPROVED",3643"commit": {3644"oid": "a756285f60b2139fc629c3edf230c8b1f9a875ed"3645}3646}3647],3648"state": "MERGED",3649"statusCheckRollup": [],3650"title": "Improve portability, enable build on Solaris SPARC.",3651"updatedAt": "2020-01-15T22:33:33Z",3652"url": "https://github.com/gavinhoward/bc/pull/27"3653},3654{3655"additions": 218,3656"assignees": [],3657"author": {3658"id": "MDQ6VXNlcjM5NzU3OTY3",3659"is_bot": false,3660"login": "bugcrazy",3661"name": ""3662},3663"autoMergeRequest": null,3664"baseRefName": "master",3665"baseRefOid": "39b0dc440325511db730ad8fbd7012ba6f3f4b4d",3666"body": "Portuguese Translations pt_PT and pt_BR",3667"changedFiles": 8,3668"closed": true,3669"closedAt": "2020-01-14T15:08:19Z",3670"comments": [3671{3672"id": "MDEyOklzc3VlQ29tbWVudDU3NDAyODE2Nw==",3673"author": {3674"login": "codecov"3675},3676"authorAssociation": "NONE",3677"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/26?src=pr&el=h1) Report\n> Merging [#26](https://codecov.io/gh/gavinhoward/bc/pull/26?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/39b0dc440325511db730ad8fbd7012ba6f3f4b4d?src=pr&el=desc) will **not change** coverage.\n> The diff coverage is `n/a`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/26?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #26 +/- ##\n=======================================\n Coverage 99.65% 99.65% \n=======================================\n Files 16 16 \n Lines 3496 3496 \n=======================================\n Hits 3484 3484 \n Misses 12 12\n```\n\n\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/26?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/26?src=pr&el=footer). Last update [39b0dc4...2572333](https://codecov.io/gh/gavinhoward/bc/pull/26?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",3678"createdAt": "2020-01-14T06:43:10Z",3679"includesCreatedEdit": true,3680"isMinimized": false,3681"minimizedReason": "",3682"reactionGroups": [],3683"url": "https://github.com/gavinhoward/bc/pull/26#issuecomment-574028167",3684"viewerDidAuthor": false3685},3686{3687"id": "MDEyOklzc3VlQ29tbWVudDU3NDIxOTEzMg==",3688"author": {3689"login": "gavinhoward"3690},3691"authorAssociation": "OWNER",3692"body": "Thank you for your translations! They look good. Release of Version `2.5.0` with the translations will happen in a few minutes.",3693"createdAt": "2020-01-14T15:09:22Z",3694"includesCreatedEdit": false,3695"isMinimized": false,3696"minimizedReason": "",3697"reactionGroups": [],3698"url": "https://github.com/gavinhoward/bc/pull/26#issuecomment-574219132",3699"viewerDidAuthor": true3700},3701{3702"id": "MDEyOklzc3VlQ29tbWVudDU3NDIyMzU0Mw==",3703"author": {3704"login": "gavinhoward"3705},3706"authorAssociation": "OWNER",3707"body": "Version `2.5.0` is out with your translations. Thank you!",3708"createdAt": "2020-01-14T15:17:19Z",3709"includesCreatedEdit": false,3710"isMinimized": false,3711"minimizedReason": "",3712"reactionGroups": [3713{3714"content": "THUMBS_UP",3715"users": {3716"totalCount": 13717}3718}3719],3720"url": "https://github.com/gavinhoward/bc/pull/26#issuecomment-574223543",3721"viewerDidAuthor": true3722},3723{3724"id": "MDEyOklzc3VlQ29tbWVudDU3NDI0MTA2Mw==",3725"author": {3726"login": "bugcrazy"3727},3728"authorAssociation": "CONTRIBUTOR",3729"body": "Thank you!",3730"createdAt": "2020-01-14T15:52:18Z",3731"includesCreatedEdit": false,3732"isMinimized": false,3733"minimizedReason": "",3734"reactionGroups": [],3735"url": "https://github.com/gavinhoward/bc/pull/26#issuecomment-574241063",3736"viewerDidAuthor": false3737}3738],3739"commits": [3740{3741"authoredDate": "2020-01-14T06:32:59Z",3742"authors": [3743{3744"email": "[email protected]",3745"id": "MDQ6VXNlcjM5NzU3OTY3",3746"login": "bugcrazy",3747"name": "bugcrazy"3748}3749],3750"committedDate": "2020-01-14T06:32:59Z",3751"messageBody": "Portuguese Translations pt_PT and pt_BR",3752"messageHeadline": "Portuguese Translations",3753"oid": "25723337b998ced4976dc5beae8717d81056dc5f"3754}3755],3756"createdAt": "2020-01-14T06:40:25Z",3757"deletions": 0,3758"files": [3759{3760"path": "locales/pt_BR.ISO-8859-1.msg",3761"additions": 1,3762"deletions": 03763},3764{3765"path": "locales/pt_BR.ISO-8859-15.msg",3766"additions": 1,3767"deletions": 03768},3769{3770"path": "locales/pt_BR.UTF-8.msg",3771"additions": 1,3772"deletions": 03773},3774{3775"path": "locales/pt_BR.utf8.msg",3776"additions": 1,3777"deletions": 03778},3779{3780"path": "locales/pt_PT.ISO-8859-1.msg",3781"additions": 106,3782"deletions": 03783},3784{3785"path": "locales/pt_PT.ISO-8859-15.msg",3786"additions": 1,3787"deletions": 03788},3789{3790"path": "locales/pt_PT.UTF-8.msg",3791"additions": 106,3792"deletions": 03793},3794{3795"path": "locales/pt_PT.utf8.msg",3796"additions": 1,3797"deletions": 03798}3799],3800"fullDatabaseId": "362470901",3801"headRefName": "master",3802"headRefOid": "25723337b998ced4976dc5beae8717d81056dc5f",3803"headRepository": {3804"id": "MDEwOlJlcG9zaXRvcnkyMzM3NjI4NjY=",3805"name": "bc"3806},3807"headRepositoryOwner": {3808"id": "MDQ6VXNlcjM5NzU3OTY3",3809"login": "bugcrazy"3810},3811"id": "MDExOlB1bGxSZXF1ZXN0MzYyNDcwOTAx",3812"isCrossRepository": true,3813"isDraft": false,3814"labels": [],3815"latestReviews": [],3816"maintainerCanModify": false,3817"mergeCommit": {3818"oid": "c322c80e62415e69c8d65c69904a0e1ea37f4da3"3819},3820"mergeStateStatus": "UNKNOWN",3821"mergeable": "UNKNOWN",3822"mergedAt": "2020-01-14T15:08:19Z",3823"mergedBy": {3824"id": "MDQ6VXNlcjMxNzI2ODc=",3825"is_bot": false,3826"login": "gavinhoward",3827"name": "Gavin D. Howard"3828},3829"milestone": null,3830"number": 26,3831"potentialMergeCommit": null,3832"projectCards": [],3833"projectItems": [],3834"reactionGroups": [],3835"reviewDecision": "",3836"reviewRequests": [],3837"reviews": [],3838"state": "MERGED",3839"statusCheckRollup": [],3840"title": "Portuguese Translations",3841"updatedAt": "2020-01-14T15:52:18Z",3842"url": "https://github.com/gavinhoward/bc/pull/26"3843},3844{3845"additions": 6,3846"assignees": [],3847"author": {3848"id": "MDQ6VXNlcjIyMjk2NzA2",3849"is_bot": false,3850"login": "eg15",3851"name": "Eugene Gladchenko"3852},3853"autoMergeRequest": null,3854"baseRefName": "master",3855"baseRefOid": "38cc5145cb66ba9f1706630d5f987d60a46fb1b1",3856"body": "Looks like I found a bug.\r\n\"-1000000000 < -1\" returns 0 (false) on my machine which is obviously wrong.\r\nThe fix will follow.",3857"changedFiles": 4,3858"closed": true,3859"closedAt": "2019-11-22T04:42:08Z",3860"comments": [3861{3862"id": "MDEyOklzc3VlQ29tbWVudDU1NzE0ODY4Mw==",3863"author": {3864"login": "codecov"3865},3866"authorAssociation": "NONE",3867"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/25?src=pr&el=h1) Report\n> Merging [#25](https://codecov.io/gh/gavinhoward/bc/pull/25?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/38cc5145cb66ba9f1706630d5f987d60a46fb1b1?src=pr&el=desc) will **not change** coverage.\n> The diff coverage is `100%`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/25?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #25 +/- ##\n=======================================\n Coverage 99.71% 99.71% \n=======================================\n Files 16 16 \n Lines 3478 3478 \n=======================================\n Hits 3468 3468 \n Misses 10 10\n```\n\n\n| [Impacted Files](https://codecov.io/gh/gavinhoward/bc/pull/25?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [src/num.c](https://codecov.io/gh/gavinhoward/bc/pull/25/diff?src=pr&el=tree#diff-c3JjL251bS5j) | `99.41% <100%> (ø)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/25?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/25?src=pr&el=footer). Last update [38cc514...96518d8](https://codecov.io/gh/gavinhoward/bc/pull/25?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",3868"createdAt": "2019-11-21T15:56:12Z",3869"includesCreatedEdit": true,3870"isMinimized": false,3871"minimizedReason": "",3872"reactionGroups": [],3873"url": "https://github.com/gavinhoward/bc/pull/25#issuecomment-557148683",3874"viewerDidAuthor": false3875},3876{3877"id": "MDEyOklzc3VlQ29tbWVudDU1NzE2MDgyMg==",3878"author": {3879"login": "gavinhoward"3880},3881"authorAssociation": "OWNER",3882"body": "Yes, you did find a bug.\r\n\r\nYour fix looks great, and your tests do as well. I just have two requests:\r\n\r\n1. Move your tests and results into files called `comp.txt` and `comp_results.txt`.\r\n2. Change the name in `tests/bc/all.txt`.\r\n\r\nI want you to do this because I am going to write a more comprehensive set of tests for comparisons in general to make sure I did not miss anything else.\r\n\r\nIf you don't have the time to do this, I could always pull it and do the change myself.",3883"createdAt": "2019-11-21T16:22:26Z",3884"includesCreatedEdit": false,3885"isMinimized": false,3886"minimizedReason": "",3887"reactionGroups": [],3888"url": "https://github.com/gavinhoward/bc/pull/25#issuecomment-557160822",3889"viewerDidAuthor": true3890},3891{3892"id": "MDEyOklzc3VlQ29tbWVudDU1NzIwNjQwNw==",3893"author": {3894"login": "eg15"3895},3896"authorAssociation": "CONTRIBUTOR",3897"body": "Just finished, thank you.\r\n\r\nBTW it looks like busybox guys took your code and kept the bug in their modified version.\r\nJust fixed it there as well: https://bugs.busybox.net/show_bug.cgi?id=12336\r\n\r\nThen it should be fixed in Alpine (that's where I encountered it this morning).",3898"createdAt": "2019-11-21T18:10:24Z",3899"includesCreatedEdit": true,3900"isMinimized": false,3901"minimizedReason": "",3902"reactionGroups": [],3903"url": "https://github.com/gavinhoward/bc/pull/25#issuecomment-557206407",3904"viewerDidAuthor": false3905},3906{3907"id": "MDEyOklzc3VlQ29tbWVudDU1NzIzMDk2NA==",3908"author": {3909"login": "gavinhoward"3910},3911"authorAssociation": "OWNER",3912"body": "`busybox` didn't exactly take my code; I gave them my code, when it had a lot more bugs as well. Unfortunately, they decided to go their own way with it, so I don't really contribute back. (They added even more bugs.)\r\n\r\nI will merge this when I get home from work. I should have a release out after testing, which could take up to a week. I don't expect this to take that long to test, since it's so small, but I may find other problems.",3913"createdAt": "2019-11-21T19:14:33Z",3914"includesCreatedEdit": false,3915"isMinimized": false,3916"minimizedReason": "",3917"reactionGroups": [],3918"url": "https://github.com/gavinhoward/bc/pull/25#issuecomment-557230964",3919"viewerDidAuthor": true3920},3921{3922"id": "MDEyOklzc3VlQ29tbWVudDU1NzM4NjYzOQ==",3923"author": {3924"login": "gavinhoward"3925},3926"authorAssociation": "OWNER",3927"body": "I pulled manually. Thank you for your help!",3928"createdAt": "2019-11-22T04:44:22Z",3929"includesCreatedEdit": false,3930"isMinimized": false,3931"minimizedReason": "",3932"reactionGroups": [3933{3934"content": "THUMBS_UP",3935"users": {3936"totalCount": 13937}3938}3939],3940"url": "https://github.com/gavinhoward/bc/pull/25#issuecomment-557386639",3941"viewerDidAuthor": true3942}3943],3944"commits": [3945{3946"authoredDate": "2019-11-21T15:31:00Z",3947"authors": [3948{3949"email": "[email protected]",3950"id": "MDQ6VXNlcjIyMjk2NzA2",3951"login": "eg15",3952"name": "Eugene Gladchenko"3953}3954],3955"committedDate": "2019-11-21T15:31:00Z",3956"messageBody": "",3957"messageHeadline": "Add a test to compare negative numbers",3958"oid": "888c422c21b558d3778d4ad215fd54f9387a137b"3959},3960{3961"authoredDate": "2019-11-21T16:00:43Z",3962"authors": [3963{3964"email": "[email protected]",3965"id": "MDQ6VXNlcjIyMjk2NzA2",3966"login": "eg15",3967"name": "Eugene Gladchenko"3968}3969],3970"committedDate": "2019-11-21T16:00:43Z",3971"messageBody": "",3972"messageHeadline": "Fix a bug in comparing negative numbers",3973"oid": "ddbecaa0601375b86dffb525973148cdd0dda8f7"3974},3975{3976"authoredDate": "2019-11-21T18:05:15Z",3977"authors": [3978{3979"email": "[email protected]",3980"id": "MDQ6VXNlcjIyMjk2NzA2",3981"login": "eg15",3982"name": "Eugene Gladchenko"3983}3984],3985"committedDate": "2019-11-21T18:05:15Z",3986"messageBody": "",3987"messageHeadline": "The name of the test file changed",3988"oid": "96518d8fd63fca1d01b82ac78a42251844f39201"3989}3990],3991"createdAt": "2019-11-21T15:52:02Z",3992"deletions": 1,3993"files": [3994{3995"path": "src/num.c",3996"additions": 1,3997"deletions": 13998},3999{4000"path": "tests/bc/all.txt",4001"additions": 1,4002"deletions": 04003},4004{4005"path": "tests/bc/comp.txt",4006"additions": 2,4007"deletions": 04008},4009{4010"path": "tests/bc/comp_results.txt",4011"additions": 2,4012"deletions": 04013}4014],4015"fullDatabaseId": "344102387",4016"headRefName": "master",4017"headRefOid": "96518d8fd63fca1d01b82ac78a42251844f39201",4018"headRepository": {4019"id": "MDEwOlJlcG9zaXRvcnkyMjMyMDIxNDg=",4020"name": "bc"4021},4022"headRepositoryOwner": {4023"id": "MDQ6VXNlcjIyMjk2NzA2",4024"name": "Eugene Gladchenko",4025"login": "eg15"4026},4027"id": "MDExOlB1bGxSZXF1ZXN0MzQ0MTAyMzg3",4028"isCrossRepository": true,4029"isDraft": false,4030"labels": [],4031"latestReviews": [],4032"maintainerCanModify": false,4033"mergeCommit": {4034"oid": "96518d8fd63fca1d01b82ac78a42251844f39201"4035},4036"mergeStateStatus": "UNKNOWN",4037"mergeable": "UNKNOWN",4038"mergedAt": "2019-11-22T04:42:07Z",4039"mergedBy": {4040"id": "MDQ6VXNlcjMxNzI2ODc=",4041"is_bot": false,4042"login": "gavinhoward",4043"name": "Gavin D. Howard"4044},4045"milestone": null,4046"number": 25,4047"potentialMergeCommit": null,4048"projectCards": [],4049"projectItems": [],4050"reactionGroups": [],4051"reviewDecision": "",4052"reviewRequests": [],4053"reviews": [],4054"state": "MERGED",4055"statusCheckRollup": [],4056"title": "Add a test to compare negative numbers",4057"updatedAt": "2019-11-22T04:44:22Z",4058"url": "https://github.com/gavinhoward/bc/pull/25"4059},4060{4061"additions": 43,4062"assignees": [],4063"author": {4064"id": "MDQ6VXNlcjYyNjQ1NDY=",4065"is_bot": false,4066"login": "stesser",4067"name": "Stefan Eßer"4068},4069"autoMergeRequest": null,4070"baseRefName": "master",4071"baseRefOid": "b6cc5efba0e127c5a344c25505c807865494cc66",4072"body": "I do not know how to restrict the pull request to just the two commits I consider relevant (probably is the GIT way to create a temporary branch for that purpose?)\r\n\r\nThe relevant commits are: \r\n\r\nca56e06\r\n684e3f6",4073"changedFiles": 3,4074"closed": true,4075"closedAt": "2019-06-14T01:43:15Z",4076"comments": [4077{4078"id": "MDEyOklzc3VlQ29tbWVudDUwMTgzMTY1Ng==",4079"author": {4080"login": "codecov"4081},4082"authorAssociation": "NONE",4083"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/24?src=pr&el=h1) Report\n> Merging [#24](https://codecov.io/gh/gavinhoward/bc/pull/24?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/b6cc5efba0e127c5a344c25505c807865494cc66?src=pr&el=desc) will **increase** coverage by `<.01%`.\n> The diff coverage is `100%`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/24?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #24 +/- ##\n==========================================\n+ Coverage 99.73% 99.73% +<.01% \n==========================================\n Files 16 16 \n Lines 3431 3435 +4 \n==========================================\n+ Hits 3422 3426 +4 \n Misses 9 9\n```\n\n\n| [Impacted Files](https://codecov.io/gh/gavinhoward/bc/pull/24?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [src/bc/parse.c](https://codecov.io/gh/gavinhoward/bc/pull/24/diff?src=pr&el=tree#diff-c3JjL2JjL3BhcnNlLmM=) | `100% <ø> (ø)` | :arrow_up: |\n| [src/program.c](https://codecov.io/gh/gavinhoward/bc/pull/24/diff?src=pr&el=tree#diff-c3JjL3Byb2dyYW0uYw==) | `99.73% <100%> (ø)` | :arrow_up: |\n| [src/num.c](https://codecov.io/gh/gavinhoward/bc/pull/24/diff?src=pr&el=tree#diff-c3JjL251bS5j) | `99.8% <100%> (ø)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/24?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/24?src=pr&el=footer). Last update [b6cc5ef...ca56e06](https://codecov.io/gh/gavinhoward/bc/pull/24?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",4084"createdAt": "2019-06-13T18:43:42Z",4085"includesCreatedEdit": true,4086"isMinimized": false,4087"minimizedReason": "",4088"reactionGroups": [],4089"url": "https://github.com/gavinhoward/bc/pull/24#issuecomment-501831656",4090"viewerDidAuthor": false4091},4092{4093"id": "MDEyOklzc3VlQ29tbWVudDUwMTg1MDQyMQ==",4094"author": {4095"login": "gavinhoward"4096},4097"authorAssociation": "OWNER",4098"body": "I have already made these changes in my local branch. I just haven't pushed them yet. I will push them when I get home from work, and I will close this then to remind me.\r\n\r\nThank you.",4099"createdAt": "2019-06-13T19:39:54Z",4100"includesCreatedEdit": false,4101"isMinimized": false,4102"minimizedReason": "",4103"reactionGroups": [],4104"url": "https://github.com/gavinhoward/bc/pull/24#issuecomment-501850421",4105"viewerDidAuthor": true4106},4107{4108"id": "MDEyOklzc3VlQ29tbWVudDUwMTkzNzA0Ng==",4109"author": {4110"login": "gavinhoward"4111},4112"authorAssociation": "OWNER",4113"body": "Changes are pushed.",4114"createdAt": "2019-06-14T01:43:15Z",4115"includesCreatedEdit": false,4116"isMinimized": false,4117"minimizedReason": "",4118"reactionGroups": [],4119"url": "https://github.com/gavinhoward/bc/pull/24#issuecomment-501937046",4120"viewerDidAuthor": true4121}4122],4123"commits": [4124{4125"authoredDate": "2019-06-09T11:10:39Z",4126"authors": [4127{4128"email": "[email protected]",4129"id": "MDQ6VXNlcjYyNjQ1NDY=",4130"login": "stesser",4131"name": "Stefan Esser"4132}4133],4134"committedDate": "2019-06-09T11:10:39Z",4135"messageBody": "",4136"messageHeadline": "Small optimization: no data to copy for BC_RESULT_ONE or _LAST",4137"oid": "b32b26ca8a533480155a427906025cbe9a0c061c"4138},4139{4140"authoredDate": "2019-06-10T21:15:49Z",4141"authors": [4142{4143"email": "[email protected]",4144"id": "MDQ6VXNlcjYyNjQ1NDY=",4145"login": "stesser",4146"name": "Stefan Esser"4147}4148],4149"committedDate": "2019-06-10T21:15:49Z",4150"messageBody": "",4151"messageHeadline": "Make limit for extension of division results depend on BC_BASE_DIGS",4152"oid": "1846088a5d37f02e608228e4214ed76464abdd05"4153},4154{4155"authoredDate": "2019-06-10T21:17:33Z",4156"authors": [4157{4158"email": "[email protected]",4159"id": "MDQ6VXNlcjYyNjQ1NDY=",4160"login": "stesser",4161"name": "Stefan Esser"4162}4163],4164"committedDate": "2019-06-10T21:17:33Z",4165"messageBody": "",4166"messageHeadline": "Simplify and speed up parsing of decimal numbers",4167"oid": "5954930eb013ed5e10bea2599735f06b05b89caa"4168},4169{4170"authoredDate": "2019-06-12T10:16:50Z",4171"authors": [4172{4173"email": "[email protected]",4174"id": "MDQ6VXNlcjYyNjQ1NDY=",4175"login": "stesser",4176"name": "Stefan Esser"4177}4178],4179"committedDate": "2019-06-12T10:16:50Z",4180"messageBody": "Do not allocate one BcDig per character of the string passed in.\nFor ibase between 11 and 26 (decimal) more than one BcDig may be\nneeded to store the value expressed by BC_BASE_DIGS characters.\n\nTesting for that case will probably cause more overhead than just\napplying a fudge factor (not verified - special casing the ibase\nrange that needs this factor and using a factor of 1.5 instead of\n2 might be worth the extra code complexity).",4181"messageHeadline": "Fix allocation size for parsed number",4182"oid": "c2dc7941ee0115ba8e820685021d70ab2ab13a91"4183},4184{4185"authoredDate": "2019-06-12T10:25:11Z",4186"authors": [4187{4188"email": "[email protected]",4189"id": "MDQ6VXNlcjYyNjQ1NDY=",4190"login": "stesser",4191"name": "Stefan Esser"4192}4193],4194"committedDate": "2019-06-12T10:25:11Z",4195"messageBody": "",4196"messageHeadline": "Merge branch 'master' of https://github.com/gavinhoward/bc",4197"oid": "036b112a9d04b56b98ba3697e1641afa6352bbeb"4198},4199{4200"authoredDate": "2019-06-12T12:00:07Z",4201"authors": [4202{4203"email": "[email protected]",4204"id": "MDQ6VXNlcjYyNjQ1NDY=",4205"login": "stesser",4206"name": "Stefan Esser"4207}4208],4209"committedDate": "2019-06-12T12:00:07Z",4210"messageBody": "This change improves \"make test\" performance by more than 2%.",4211"messageHeadline": "Better estimate of the number of BcDigs required to store a constant",4212"oid": "43caceec40e4265edc8244b092bd39ba483361c5"4213},4214{4215"authoredDate": "2019-06-12T21:43:54Z",4216"authors": [4217{4218"email": "[email protected]",4219"id": "MDQ6VXNlcjYyNjQ1NDY=",4220"login": "stesser",4221"name": "Stefan Esser"4222}4223],4224"committedDate": "2019-06-12T21:43:54Z",4225"messageBody": "This implementation is not optimized for speed, yet. I have plans to\nadd copy-on-write semantics for BcNums (i.e. add a reference count and\ncopy the BcNum only if its refcount is > 1 it is about to be\nmodified).\n\nThis version fails in the bc/stdin test, but diagnosing this problem\nwill have to wait for tomorrow ...",4226"messageHeadline": "Implement caching of numeric constants in vectors of BcNums",4227"oid": "515dfe44886667eb9fbea48c214b559549d69417"4228},4229{4230"authoredDate": "2019-06-13T08:23:45Z",4231"authors": [4232{4233"email": "[email protected]",4234"id": "MDQ6VXNlcjYyNjQ1NDY=",4235"login": "stesser",4236"name": "Stefan Esser"4237}4238],4239"committedDate": "2019-06-13T08:23:45Z",4240"messageBody": "Beyond the changes performed by the automatic merge, remove references\nto the constvals field in struct BcFunc.",4241"messageHeadline": "Merge branch 'master' of https://github.com/gavinhoward/bc",4242"oid": "cd30020d2fe2d4cef802b2e65299f4e0e1a3972f"4243},4244{4245"authoredDate": "2019-06-13T08:33:21Z",4246"authors": [4247{4248"email": "[email protected]",4249"id": "MDQ6VXNlcjYyNjQ1NDY=",4250"login": "stesser",4251"name": "Stefan Esser"4252}4253],4254"committedDate": "2019-06-13T08:33:21Z",4255"messageBody": "",4256"messageHeadline": "Merge more changes from upstream",4257"oid": "21e4395740342aa65e728d02e1a5d658a9a15bc0"4258},4259{4260"authoredDate": "2019-06-13T08:49:54Z",4261"authors": [4262{4263"email": "[email protected]",4264"id": "MDQ6VXNlcjYyNjQ1NDY=",4265"login": "stesser",4266"name": "Stefan Esser"4267}4268],4269"committedDate": "2019-06-13T08:49:54Z",4270"messageBody": "",4271"messageHeadline": "Adjust whitespace and use value of \"base\" instead of fetching it again",4272"oid": "684e3f6f8a7dd8efb5b49211ef20948710cf6457"4273},4274{4275"authoredDate": "2019-06-13T09:14:04Z",4276"authors": [4277{4278"email": "[email protected]",4279"id": "MDQ6VXNlcjYyNjQ1NDY=",4280"login": "stesser",4281"name": "Stefan Esser"4282}4283],4284"committedDate": "2019-06-13T09:14:04Z",4285"messageBody": "",4286"messageHeadline": "Fix for failing scale(0.0000000000000000000) test case",4287"oid": "25799a6fa21c69cb7f9e77e53329d3b735564c9b"4288},4289{4290"authoredDate": "2019-06-13T11:05:20Z",4291"authors": [4292{4293"email": "[email protected]",4294"id": "MDQ6VXNlcjYyNjQ1NDY=",4295"login": "stesser",4296"name": "Stefan Esser"4297}4298],4299"committedDate": "2019-06-13T11:05:20Z",4300"messageBody": "FreeBSD uses strict checks for base system components and the build\nfailed due to the compiler warnings being treated as errors in base.",4301"messageHeadline": "Remove unused local variable declarations (fix build in FreeBSD)",4302"oid": "ca56e060a471ed5476a78b38c1b2d0584777d693"4303}4304],4305"createdAt": "2019-06-13T18:39:56Z",4306"deletions": 49,4307"files": [4308{4309"path": "src/bc/parse.c",4310"additions": 0,4311"deletions": 24312},4313{4314"path": "src/num.c",4315"additions": 37,4316"deletions": 394317},4318{4319"path": "src/program.c",4320"additions": 6,4321"deletions": 84322}4323],4324"fullDatabaseId": "288048911",4325"headRefName": "master",4326"headRefOid": "ca56e060a471ed5476a78b38c1b2d0584777d693",4327"headRepository": {4328"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",4329"name": "bc"4330},4331"headRepositoryOwner": {4332"id": "MDQ6VXNlcjYyNjQ1NDY=",4333"name": "Stefan Eßer",4334"login": "stesser"4335},4336"id": "MDExOlB1bGxSZXF1ZXN0Mjg4MDQ4OTEx",4337"isCrossRepository": true,4338"isDraft": false,4339"labels": [],4340"latestReviews": [],4341"maintainerCanModify": false,4342"mergeCommit": null,4343"mergeStateStatus": "DIRTY",4344"mergeable": "CONFLICTING",4345"mergedAt": null,4346"mergedBy": null,4347"milestone": null,4348"number": 24,4349"potentialMergeCommit": null,4350"projectCards": [],4351"projectItems": [],4352"reactionGroups": [],4353"reviewDecision": "",4354"reviewRequests": [],4355"reviews": [],4356"state": "CLOSED",4357"statusCheckRollup": [],4358"title": "Whitespace adjustment and removal of some unused variables",4359"updatedAt": "2019-06-14T01:43:15Z",4360"url": "https://github.com/gavinhoward/bc/pull/24"4361},4362{4363"additions": 1,4364"assignees": [],4365"author": {4366"id": "MDQ6VXNlcjYyNjQ1NDY=",4367"is_bot": false,4368"login": "stesser",4369"name": "Stefan Eßer"4370},4371"autoMergeRequest": null,4372"baseRefName": "master",4373"baseRefOid": "f555270c99e7d354704071628486df0870968286",4374"body": "Benchmarks show a small but significant speed-up of \"make test\" if the\r\nlimit for the shifting of operands is made more strict. Many operands\r\nwill require a second iteration of the inner loop anyway, and shifting\r\nof the operands uses cycles for no gain, then.\r\n\r\nTo my surprise, BC_BASE_DIGS=4 and =9 seem to have near identical\r\nperformance after this change. Some operations (multiplication and\r\npower) ought to be faster with larger BcDigs, but at least for the\r\nperformance of \"make test\" on my system this does not seem to affect\r\nthe run-time by a significant amount.",4375"changedFiles": 1,4376"closed": true,4377"closedAt": "2019-06-07T13:25:25Z",4378"comments": [4379{4380"id": "MDEyOklzc3VlQ29tbWVudDQ5OTg4MzYwNQ==",4381"author": {4382"login": "gavinhoward"4383},4384"authorAssociation": "OWNER",4385"body": "I am not planning on future releases, except for bug fixes. I will merge this now.",4386"createdAt": "2019-06-07T13:25:27Z",4387"includesCreatedEdit": false,4388"isMinimized": false,4389"minimizedReason": "",4390"reactionGroups": [],4391"url": "https://github.com/gavinhoward/bc/pull/23#issuecomment-499883605",4392"viewerDidAuthor": true4393}4394],4395"commits": [4396{4397"authoredDate": "2019-06-07T07:33:26Z",4398"authors": [4399{4400"email": "[email protected]",4401"id": "MDQ6VXNlcjYyNjQ1NDY=",4402"login": "stesser",4403"name": "Stefan Esser"4404}4405],4406"committedDate": "2019-06-07T07:33:26Z",4407"messageBody": "Benchmarks show a small but significant speed-up of \"make test\" if the\nlimit for the shifting of operands is made more strict. Many operands\nwill require a second iteration of the inner loop anyway, and shifting\nof the operands uses cycles for no gain, then.\n\nTo my surprise, BC_BASE_DIGS=4 and =9 seem to have near identical\nperformance after this change. Some operations (multiplication and\npower) ought to be faster with larger BcDigs, but at least for the\nperformance of \"make test\" on my system this does not seem to affect\nthe run-time by a significant amount.",4408"messageHeadline": "Small performance optimization",4409"oid": "d8526df195150f9f20ed4e8430dff3457e5d2913"4410}4411],4412"createdAt": "2019-06-07T08:28:48Z",4413"deletions": 1,4414"files": [4415{4416"path": "src/num.c",4417"additions": 1,4418"deletions": 14419}4420],4421"fullDatabaseId": "286093193",4422"headRefName": "master",4423"headRefOid": "d8526df195150f9f20ed4e8430dff3457e5d2913",4424"headRepository": {4425"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",4426"name": "bc"4427},4428"headRepositoryOwner": {4429"id": "MDQ6VXNlcjYyNjQ1NDY=",4430"name": "Stefan Eßer",4431"login": "stesser"4432},4433"id": "MDExOlB1bGxSZXF1ZXN0Mjg2MDkzMTkz",4434"isCrossRepository": true,4435"isDraft": false,4436"labels": [],4437"latestReviews": [],4438"maintainerCanModify": false,4439"mergeCommit": {4440"oid": "6f662190645f8fb84b36a513b1369a8bf61e215e"4441},4442"mergeStateStatus": "UNKNOWN",4443"mergeable": "UNKNOWN",4444"mergedAt": "2019-06-07T13:25:25Z",4445"mergedBy": {4446"id": "MDQ6VXNlcjMxNzI2ODc=",4447"is_bot": false,4448"login": "gavinhoward",4449"name": "Gavin D. Howard"4450},4451"milestone": null,4452"number": 23,4453"potentialMergeCommit": null,4454"projectCards": [],4455"projectItems": [],4456"reactionGroups": [],4457"reviewDecision": "",4458"reviewRequests": [],4459"reviews": [],4460"state": "MERGED",4461"statusCheckRollup": [],4462"title": "Small performance optimization (perhaps for the next following release?)",4463"updatedAt": "2019-06-07T13:25:28Z",4464"url": "https://github.com/gavinhoward/bc/pull/23"4465},4466{4467"additions": 38,4468"assignees": [],4469"author": {4470"id": "MDQ6VXNlcjYyNjQ1NDY=",4471"is_bot": false,4472"login": "stesser",4473"name": "Stefan Eßer"4474},4475"autoMergeRequest": null,4476"baseRefName": "master",4477"baseRefOid": "7373e5f89c9ce873eb1a84f129c1f9be3b1ec400",4478"body": "",4479"changedFiles": 1,4480"closed": true,4481"closedAt": "2019-06-07T04:04:59Z",4482"comments": [4483{4484"id": "MDEyOklzc3VlQ29tbWVudDQ5OTY2Nzc4Nw==",4485"author": {4486"login": "codecov"4487},4488"authorAssociation": "NONE",4489"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/22?src=pr&el=h1) Report\n> Merging [#22](https://codecov.io/gh/gavinhoward/bc/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/7373e5f89c9ce873eb1a84f129c1f9be3b1ec400?src=pr&el=desc) will **increase** coverage by `<.01%`.\n> The diff coverage is `100%`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/22?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #22 +/- ##\n==========================================\n+ Coverage 99.73% 99.73% +<.01% \n==========================================\n Files 16 16 \n Lines 3392 3409 +17 \n==========================================\n+ Hits 3383 3400 +17 \n Misses 9 9\n```\n\n\n| [Impacted Files](https://codecov.io/gh/gavinhoward/bc/pull/22?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [src/num.c](https://codecov.io/gh/gavinhoward/bc/pull/22/diff?src=pr&el=tree#diff-c3JjL251bS5j) | `99.8% <100%> (ø)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/22?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/22?src=pr&el=footer). Last update [7373e5f...98719ee](https://codecov.io/gh/gavinhoward/bc/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",4490"createdAt": "2019-06-06T21:06:55Z",4491"includesCreatedEdit": true,4492"isMinimized": false,4493"minimizedReason": "",4494"reactionGroups": [],4495"url": "https://github.com/gavinhoward/bc/pull/22#issuecomment-499667787",4496"viewerDidAuthor": false4497},4498{4499"id": "MDEyOklzc3VlQ29tbWVudDQ5OTc0OTQ5MQ==",4500"author": {4501"login": "gavinhoward"4502},4503"authorAssociation": "OWNER",4504"body": "Merging...for now. If it passes (which I think it will), it will stay.",4505"createdAt": "2019-06-07T04:05:18Z",4506"includesCreatedEdit": false,4507"isMinimized": false,4508"minimizedReason": "",4509"reactionGroups": [],4510"url": "https://github.com/gavinhoward/bc/pull/22#issuecomment-499749491",4511"viewerDidAuthor": true4512}4513],4514"commits": [4515{4516"authoredDate": "2019-06-06T05:13:40Z",4517"authors": [4518{4519"email": "[email protected]",4520"id": "MDQ6VXNlcjYyNjQ1NDY=",4521"login": "stesser",4522"name": "Stefan Esser"4523}4524],4525"committedDate": "2019-06-06T05:13:40Z",4526"messageBody": "Since stdout is not affected by this debug print function, nchars\nshould not be modified, or printing of large numbers will be broken.",4527"messageHeadline": "Resetting of nchars after printing to stderr corrupts the output",4528"oid": "76794442357318437574ec8c0aa3f71903ec419a"4529},4530{4531"authoredDate": "2019-06-06T06:14:43Z",4532"authors": [4533{4534"email": "[email protected]",4535"id": "MDQ6VXNlcjYyNjQ1NDY=",4536"login": "stesser",4537"name": "Stefan Esser"4538}4539],4540"committedDate": "2019-06-06T06:14:43Z",4541"messageBody": "If the top-most BcDig contains a small value and there are lower\nnon-zero BcDigs, the integer divisor is incremented to prevent\ndivision results that do not fit into a BcDig (are > BC_BASE_POW).\n\nE.g. for 1000 / 1.1 the integer divisor will become 2 and the first\nestimate of the result will be 1000 / 2 = 500, giving a reminder of\n1000 - 500 * 1.1 = 450. The next estimate will be 700 = 500 + 450 / 2\nand so on with the reminder slowly decreasing in each iteration.\n\nSince the relative error due to the approximation of the full division\nby an integer division becomes significant for small integer divisors,\nit makes sense to extend the divisor if it i ssmall. In fact, it seems\nto pay off for all divisors that are < BC_BASE_POW / 10.",4542"messageHeadline": "Fix pathological behavior in case integer is rounded up a lot",4543"oid": "035ace7d24afd722ce9a3325c90213d36772e5bd"4544},4545{4546"authoredDate": "2019-06-06T06:25:29Z",4547"authors": [4548{4549"email": "[email protected]",4550"id": "MDQ6VXNlcjYyNjQ1NDY=",4551"login": "stesser",4552"name": "Stefan Esser"4553}4554],4555"committedDate": "2019-06-06T06:25:29Z",4556"messageBody": "",4557"messageHeadline": "Merge branch 'div'",4558"oid": "c1e655b2dd38ea27668b3a0c5b7c86ef06a8dd88"4559},4560{4561"authoredDate": "2019-06-06T08:21:51Z",4562"authors": [4563{4564"email": "[email protected]",4565"id": "MDQ6VXNlcjYyNjQ1NDY=",4566"login": "stesser",4567"name": "Stefan Esser"4568}4569],4570"committedDate": "2019-06-06T08:21:51Z",4571"messageBody": "If there was a new-line character in the string, then strrchr will\nreturn a pointer to that character. If the length of the string\nstarting at the new-line position is 1, then no text follows on the\nnew line and nchars should be set to 0,not 2.",4572"messageHeadline": "Fix calculation of nchars",4573"oid": "54e3cd86494fd1e2c817ea3fa49c357738da5f82"4574},4575{4576"authoredDate": "2019-06-06T11:32:50Z",4577"authors": [4578{4579"email": "[email protected]",4580"id": "MDQ6VXNlcjYyNjQ1NDY=",4581"login": "stesser",4582"name": "Stefan Esser"4583}4584],4585"committedDate": "2019-06-06T11:32:50Z",4586"messageBody": "This reverts commit 54e3cd86494fd1e2c817ea3fa49c357738da5f82.\n\nI had misread the code (thought the + 1 was outside the brackets).",4587"messageHeadline": "Revert \"Fix calculation of nchars\"",4588"oid": "210d9c5863215d0c371f0ec68a0fda2f601920f3"4589},4590{4591"authoredDate": "2019-06-06T20:07:20Z",4592"authors": [4593{4594"email": "[email protected]",4595"id": "MDQ6VXNlcjYyNjQ1NDY=",4596"login": "stesser",4597"name": "Stefan Esser"4598}4599],4600"committedDate": "2019-06-06T20:07:20Z",4601"messageBody": "This version does not pass all tests (hangs in divide.bc).\nI'm commiting anyway, to have a basis that is ismilar to the upstream\nrepo for further testing.",4602"messageHeadline": "Merge latest upstream version.",4603"oid": "94fb480d06c4e082a635d2f4866682d4f6a7b6bb"4604},4605{4606"authoredDate": "2019-06-06T20:50:44Z",4607"authors": [4608{4609"email": "[email protected]",4610"id": "MDQ6VXNlcjYyNjQ1NDY=",4611"login": "stesser",4612"name": "Stefan Esser"4613}4614],4615"committedDate": "2019-06-06T20:50:44Z",4616"messageBody": "",4617"messageHeadline": "Remove debug dump of operands and intermediate results",4618"oid": "59e2953c61615ff5f3deecd181f15c5249fe0bb4"4619},4620{4621"authoredDate": "2019-06-06T20:59:42Z",4622"authors": [4623{4624"email": "[email protected]",4625"id": "MDQ6VXNlcjYyNjQ1NDY=",4626"login": "stesser",4627"name": "Stefan Esser"4628}4629],4630"committedDate": "2019-06-06T20:59:42Z",4631"messageBody": "",4632"messageHeadline": "Merge branch 'master' of https://github.com/gavinhoward/bc",4633"oid": "6fe9b2fba0e7359152598d4e38ff93020b24b8e7"4634},4635{4636"authoredDate": "2019-06-06T21:01:19Z",4637"authors": [4638{4639"email": "[email protected]",4640"id": "MDQ6VXNlcjYyNjQ1NDY=",4641"login": "stesser",4642"name": "Stefan Esser"4643}4644],4645"committedDate": "2019-06-06T21:01:19Z",4646"messageBody": "",4647"messageHeadline": "Reduce whitespace diff relative to upstream",4648"oid": "595d84e4792bffa63ece31aa146ea7ccfc87ea4b"4649},4650{4651"authoredDate": "2019-06-06T21:03:03Z",4652"authors": [4653{4654"email": "[email protected]",4655"id": "MDQ6VXNlcjYyNjQ1NDY=",4656"login": "stesser",4657"name": "Stefan Esser"4658}4659],4660"committedDate": "2019-06-06T21:03:03Z",4661"messageBody": "",4662"messageHeadline": "Fix lines that resulted from a mis-merge of upstream",4663"oid": "98719eecc5f599365f5d2c3aa042a9cb7cdb6d6c"4664}4665],4666"createdAt": "2019-06-06T20:53:49Z",4667"deletions": 6,4668"files": [4669{4670"path": "src/num.c",4671"additions": 38,4672"deletions": 64673}4674],4675"fullDatabaseId": "285965666",4676"headRefName": "master",4677"headRefOid": "98719eecc5f599365f5d2c3aa042a9cb7cdb6d6c",4678"headRepository": {4679"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",4680"name": "bc"4681},4682"headRepositoryOwner": {4683"id": "MDQ6VXNlcjYyNjQ1NDY=",4684"name": "Stefan Eßer",4685"login": "stesser"4686},4687"id": "MDExOlB1bGxSZXF1ZXN0Mjg1OTY1NjY2",4688"isCrossRepository": true,4689"isDraft": false,4690"labels": [],4691"latestReviews": [],4692"maintainerCanModify": false,4693"mergeCommit": {4694"oid": "016a5eed2e5cc0d7e65cea785e609a0bb8a0fa70"4695},4696"mergeStateStatus": "UNKNOWN",4697"mergeable": "UNKNOWN",4698"mergedAt": "2019-06-07T04:04:59Z",4699"mergedBy": {4700"id": "MDQ6VXNlcjMxNzI2ODc=",4701"is_bot": false,4702"login": "gavinhoward",4703"name": "Gavin D. Howard"4704},4705"milestone": null,4706"number": 22,4707"potentialMergeCommit": null,4708"projectCards": [],4709"projectItems": [],4710"reactionGroups": [],4711"reviewDecision": "",4712"reviewRequests": [],4713"reviews": [],4714"state": "MERGED",4715"statusCheckRollup": [],4716"title": "This version completes all tests on my system",4717"updatedAt": "2019-06-07T04:05:18Z",4718"url": "https://github.com/gavinhoward/bc/pull/22"4719},4720{4721"additions": 30,4722"assignees": [],4723"author": {4724"id": "MDQ6VXNlcjYyNjQ1NDY=",4725"is_bot": false,4726"login": "stesser",4727"name": "Stefan Eßer"4728},4729"autoMergeRequest": null,4730"baseRefName": "master",4731"baseRefOid": "81eb6fba565695dfe054e0b3f651fa5fa089b605",4732"body": "Reduce the number of iterations required for cases where the top-most BcDig of the divisor is a small value and there are lower non-zero BcDigs. This makes the performance of the division more even for all types of operands of a given length and speeds up \"make test\" by about 3% on my system. The worst case performance of the division is improved by about a factor of 20 (estimated, not measured) for operations like 1/1.000000001.",4733"changedFiles": 1,4734"closed": true,4735"closedAt": "2019-06-06T15:34:13Z",4736"comments": [4737{4738"id": "MDEyOklzc3VlQ29tbWVudDQ5OTM5OTU1Nw==",4739"author": {4740"login": "stesser"4741},4742"authorAssociation": "CONTRIBUTOR",4743"body": "While here, fix calculation of vm->nchars in 2 places ...",4744"createdAt": "2019-06-06T08:27:09Z",4745"includesCreatedEdit": false,4746"isMinimized": false,4747"minimizedReason": "",4748"reactionGroups": [],4749"url": "https://github.com/gavinhoward/bc/pull/21#issuecomment-499399557",4750"viewerDidAuthor": false4751},4752{4753"id": "MDEyOklzc3VlQ29tbWVudDQ5OTU0NzEzMA==",4754"author": {4755"login": "gavinhoward"4756},4757"authorAssociation": "OWNER",4758"body": "Rejected for reasons stated in an email.",4759"createdAt": "2019-06-06T15:34:13Z",4760"includesCreatedEdit": false,4761"isMinimized": false,4762"minimizedReason": "",4763"reactionGroups": [],4764"url": "https://github.com/gavinhoward/bc/pull/21#issuecomment-499547130",4765"viewerDidAuthor": true4766}4767],4768"commits": [4769{4770"authoredDate": "2019-06-06T05:13:40Z",4771"authors": [4772{4773"email": "[email protected]",4774"id": "MDQ6VXNlcjYyNjQ1NDY=",4775"login": "stesser",4776"name": "Stefan Esser"4777}4778],4779"committedDate": "2019-06-06T05:13:40Z",4780"messageBody": "Since stdout is not affected by this debug print function, nchars\nshould not be modified, or printing of large numbers will be broken.",4781"messageHeadline": "Resetting of nchars after printing to stderr corrupts the output",4782"oid": "76794442357318437574ec8c0aa3f71903ec419a"4783},4784{4785"authoredDate": "2019-06-06T06:14:43Z",4786"authors": [4787{4788"email": "[email protected]",4789"id": "MDQ6VXNlcjYyNjQ1NDY=",4790"login": "stesser",4791"name": "Stefan Esser"4792}4793],4794"committedDate": "2019-06-06T06:14:43Z",4795"messageBody": "If the top-most BcDig contains a small value and there are lower\nnon-zero BcDigs, the integer divisor is incremented to prevent\ndivision results that do not fit into a BcDig (are > BC_BASE_POW).\n\nE.g. for 1000 / 1.1 the integer divisor will become 2 and the first\nestimate of the result will be 1000 / 2 = 500, giving a reminder of\n1000 - 500 * 1.1 = 450. The next estimate will be 700 = 500 + 450 / 2\nand so on with the reminder slowly decreasing in each iteration.\n\nSince the relative error due to the approximation of the full division\nby an integer division becomes significant for small integer divisors,\nit makes sense to extend the divisor if it i ssmall. In fact, it seems\nto pay off for all divisors that are < BC_BASE_POW / 10.",4796"messageHeadline": "Fix pathological behavior in case integer is rounded up a lot",4797"oid": "035ace7d24afd722ce9a3325c90213d36772e5bd"4798},4799{4800"authoredDate": "2019-06-06T06:25:29Z",4801"authors": [4802{4803"email": "[email protected]",4804"id": "MDQ6VXNlcjYyNjQ1NDY=",4805"login": "stesser",4806"name": "Stefan Esser"4807}4808],4809"committedDate": "2019-06-06T06:25:29Z",4810"messageBody": "",4811"messageHeadline": "Merge branch 'div'",4812"oid": "c1e655b2dd38ea27668b3a0c5b7c86ef06a8dd88"4813},4814{4815"authoredDate": "2019-06-06T08:21:51Z",4816"authors": [4817{4818"email": "[email protected]",4819"id": "MDQ6VXNlcjYyNjQ1NDY=",4820"login": "stesser",4821"name": "Stefan Esser"4822}4823],4824"committedDate": "2019-06-06T08:21:51Z",4825"messageBody": "If there was a new-line character in the string, then strrchr will\nreturn a pointer to that character. If the length of the string\nstarting at the new-line position is 1, then no text follows on the\nnew line and nchars should be set to 0,not 2.",4826"messageHeadline": "Fix calculation of nchars",4827"oid": "54e3cd86494fd1e2c817ea3fa49c357738da5f82"4828},4829{4830"authoredDate": "2019-06-06T11:32:50Z",4831"authors": [4832{4833"email": "[email protected]",4834"id": "MDQ6VXNlcjYyNjQ1NDY=",4835"login": "stesser",4836"name": "Stefan Esser"4837}4838],4839"committedDate": "2019-06-06T11:32:50Z",4840"messageBody": "This reverts commit 54e3cd86494fd1e2c817ea3fa49c357738da5f82.\n\nI had misread the code (thought the + 1 was outside the brackets).",4841"messageHeadline": "Revert \"Fix calculation of nchars\"",4842"oid": "210d9c5863215d0c371f0ec68a0fda2f601920f3"4843}4844],4845"createdAt": "2019-06-06T06:53:09Z",4846"deletions": 8,4847"files": [4848{4849"path": "src/num.c",4850"additions": 30,4851"deletions": 84852}4853],4854"fullDatabaseId": "285665970",4855"headRefName": "master",4856"headRefOid": "210d9c5863215d0c371f0ec68a0fda2f601920f3",4857"headRepository": {4858"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",4859"name": "bc"4860},4861"headRepositoryOwner": {4862"id": "MDQ6VXNlcjYyNjQ1NDY=",4863"name": "Stefan Eßer",4864"login": "stesser"4865},4866"id": "MDExOlB1bGxSZXF1ZXN0Mjg1NjY1OTcw",4867"isCrossRepository": true,4868"isDraft": false,4869"labels": [],4870"latestReviews": [],4871"maintainerCanModify": false,4872"mergeCommit": null,4873"mergeStateStatus": "DIRTY",4874"mergeable": "CONFLICTING",4875"mergedAt": null,4876"mergedBy": null,4877"milestone": null,4878"number": 21,4879"potentialMergeCommit": null,4880"projectCards": [],4881"projectItems": [],4882"reactionGroups": [],4883"reviewDecision": "",4884"reviewRequests": [],4885"reviews": [],4886"state": "CLOSED",4887"statusCheckRollup": [],4888"title": "Improve worst case behavior of the division",4889"updatedAt": "2019-06-06T15:34:14Z",4890"url": "https://github.com/gavinhoward/bc/pull/21"4891},4892{4893"additions": 91,4894"assignees": [],4895"author": {4896"id": "MDQ6VXNlcjYyNjQ1NDY=",4897"is_bot": false,4898"login": "stesser",4899"name": "Stefan Eßer"4900},4901"autoMergeRequest": null,4902"baseRefName": "master",4903"baseRefOid": "7be2294e3a91ae4f93bf4db1888d89a6c0d4537b",4904"body": "I had not fully understood the current division algorithm when I suggested to \"overshoot\" subtractions and to attempt convergence from both sides.\r\n\r\nAfter analysis of the current implementation I have noticed that it can be significantly simplified and at the same time sped-up (by a factor of about 2 in my tests). The run-time of \"make test\" is reduced by some 15% on my system.",4905"changedFiles": 1,4906"closed": true,4907"closedAt": "2019-06-06T00:26:39Z",4908"comments": [4909{4910"id": "MDEyOklzc3VlQ29tbWVudDQ5OTIyMjQ0Mw==",4911"author": {4912"login": "codecov"4913},4914"authorAssociation": "NONE",4915"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/20?src=pr&el=h1) Report\n> Merging [#20](https://codecov.io/gh/gavinhoward/bc/pull/20?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/7be2294e3a91ae4f93bf4db1888d89a6c0d4537b?src=pr&el=desc) will **not change** coverage.\n> The diff coverage is `100%`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/20?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #20 +/- ##\n=======================================\n Coverage 99.73% 99.73% \n=======================================\n Files 16 16 \n Lines 3405 3405 \n=======================================\n Hits 3396 3396 \n Misses 9 9\n```\n\n\n| [Impacted Files](https://codecov.io/gh/gavinhoward/bc/pull/20?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [src/num.c](https://codecov.io/gh/gavinhoward/bc/pull/20/diff?src=pr&el=tree#diff-c3JjL251bS5j) | `99.8% <100%> (ø)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/20?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/20?src=pr&el=footer). Last update [7be2294...45edd42](https://codecov.io/gh/gavinhoward/bc/pull/20?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",4916"createdAt": "2019-06-05T19:28:56Z",4917"includesCreatedEdit": true,4918"isMinimized": false,4919"minimizedReason": "",4920"reactionGroups": [],4921"url": "https://github.com/gavinhoward/bc/pull/20#issuecomment-499222443",4922"viewerDidAuthor": false4923},4924{4925"id": "MDEyOklzc3VlQ29tbWVudDQ5OTIzNzA4NA==",4926"author": {4927"login": "gavinhoward"4928},4929"authorAssociation": "OWNER",4930"body": "Can you send me your tests?",4931"createdAt": "2019-06-05T20:12:45Z",4932"includesCreatedEdit": false,4933"isMinimized": false,4934"minimizedReason": "",4935"reactionGroups": [],4936"url": "https://github.com/gavinhoward/bc/pull/20#issuecomment-499237084",4937"viewerDidAuthor": true4938}4939],4940"commits": [4941{4942"authoredDate": "2019-05-20T11:00:48Z",4943"authors": [4944{4945"email": "[email protected]",4946"id": "MDQ6VXNlcjYyNjQ1NDY=",4947"login": "stesser",4948"name": "Stefan Esser"4949}4950],4951"committedDate": "2019-05-20T11:00:48Z",4952"messageBody": "…mod per BcDig\n\nIn the last iteration of the per BcDig print loop, acc is known to be less than\npow, therefore the last div and mod operations can be skipped, resulting in a\nspeed-up of about 2% in my tests.",4953"messageHeadline": "Slightly speed up printing for the obase!=10 case by skipping one div…",4954"oid": "b2c2fe4f75bff27e183db6e8b4211e8f602b0e68"4955},4956{4957"authoredDate": "2019-06-05T10:06:38Z",4958"authors": [4959{4960"email": "[email protected]",4961"id": "MDQ6VXNlcjYyNjQ1NDY=",4962"login": "stesser",4963"name": "Stefan Esser"4964}4965],4966"committedDate": "2019-06-05T10:06:38Z",4967"messageBody": "",4968"messageHeadline": "Merge branch 'master' of github.com:stesser/bc",4969"oid": "caf977797a95fecc39e78b35ef964e69d7851e8a"4970},4971{4972"authoredDate": "2019-06-05T19:04:42Z",4973"authors": [4974{4975"email": "[email protected]",4976"id": "MDQ6VXNlcjYyNjQ1NDY=",4977"login": "stesser",4978"name": "Stefan Esser"4979}4980],4981"committedDate": "2019-06-05T19:04:42Z",4982"messageBody": "The run-time of \"make test\" is reduced by some 15% on my system.",4983"messageHeadline": "Implement faster and simpler division algorithm",4984"oid": "45edd42ef28c52287e664e2d00b5b7de31a30e22"4985}4986],4987"createdAt": "2019-06-05T19:25:44Z",4988"deletions": 99,4989"files": [4990{4991"path": "src/num.c",4992"additions": 91,4993"deletions": 994994}4995],4996"fullDatabaseId": "285517299",4997"headRefName": "master",4998"headRefOid": "45edd42ef28c52287e664e2d00b5b7de31a30e22",4999"headRepository": {5000"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",5001"name": "bc"5002},5003"headRepositoryOwner": {5004"id": "MDQ6VXNlcjYyNjQ1NDY=",5005"name": "Stefan Eßer",5006"login": "stesser"5007},5008"id": "MDExOlB1bGxSZXF1ZXN0Mjg1NTE3Mjk5",5009"isCrossRepository": true,5010"isDraft": false,5011"labels": [],5012"latestReviews": [],5013"maintainerCanModify": false,5014"mergeCommit": {5015"oid": "8904602cd9be7d6433f9ed6c2caab0f9c745dd9c"5016},5017"mergeStateStatus": "UNKNOWN",5018"mergeable": "UNKNOWN",5019"mergedAt": "2019-06-06T00:26:39Z",5020"mergedBy": {5021"id": "MDQ6VXNlcjMxNzI2ODc=",5022"is_bot": false,5023"login": "gavinhoward",5024"name": "Gavin D. Howard"5025},5026"milestone": null,5027"number": 20,5028"potentialMergeCommit": null,5029"projectCards": [],5030"projectItems": [],5031"reactionGroups": [],5032"reviewDecision": "",5033"reviewRequests": [],5034"reviews": [],5035"state": "MERGED",5036"statusCheckRollup": [],5037"title": "Speed up and simplify division",5038"updatedAt": "2019-06-06T00:26:40Z",5039"url": "https://github.com/gavinhoward/bc/pull/20"5040},5041{5042"additions": 10,5043"assignees": [],5044"author": {5045"id": "MDQ6VXNlcjYyNjQ1NDY=",5046"is_bot": false,5047"login": "stesser",5048"name": "Stefan Eßer"5049},5050"autoMergeRequest": null,5051"baseRefName": "master",5052"baseRefOid": "e318529d852cee9ce40c06f1a91f0063d8e0bd62",5053"body": "In the last iteration of the per BcDig print loop, \"acc\" is known to be less than \"pow\", therefore the last div and mod operations can be skipped, resulting in a speed-up of about 2% in my tests.",5054"changedFiles": 1,5055"closed": true,5056"closedAt": "2019-05-20T14:08:11Z",5057"comments": [5058{5059"id": "MDEyOklzc3VlQ29tbWVudDQ5Mzk1ODQwMw==",5060"author": {5061"login": "codecov"5062},5063"authorAssociation": "NONE",5064"body": "# [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/19?src=pr&el=h1) Report\n> Merging [#19](https://codecov.io/gh/gavinhoward/bc/pull/19?src=pr&el=desc) into [master](https://codecov.io/gh/gavinhoward/bc/commit/e318529d852cee9ce40c06f1a91f0063d8e0bd62?src=pr&el=desc) will **increase** coverage by `<.01%`.\n> The diff coverage is `100%`.\n\n[](https://codecov.io/gh/gavinhoward/bc/pull/19?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## master #19 +/- ##\n==========================================\n+ Coverage 99.88% 99.88% +<.01% \n==========================================\n Files 16 16 \n Lines 3409 3411 +2 \n==========================================\n+ Hits 3405 3407 +2 \n Misses 4 4\n```\n\n\n| [Impacted Files](https://codecov.io/gh/gavinhoward/bc/pull/19?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [src/num.c](https://codecov.io/gh/gavinhoward/bc/pull/19/diff?src=pr&el=tree#diff-c3JjL251bS5j) | `99.8% <100%> (ø)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/gavinhoward/bc/pull/19?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/gavinhoward/bc/pull/19?src=pr&el=footer). Last update [e318529...b2c2fe4](https://codecov.io/gh/gavinhoward/bc/pull/19?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n",5065"createdAt": "2019-05-20T12:05:10Z",5066"includesCreatedEdit": true,5067"isMinimized": false,5068"minimizedReason": "",5069"reactionGroups": [],5070"url": "https://github.com/gavinhoward/bc/pull/19#issuecomment-493958403",5071"viewerDidAuthor": false5072},5073{5074"id": "MDEyOklzc3VlQ29tbWVudDQ5NDAwMjk1MQ==",5075"author": {5076"login": "gavinhoward"5077},5078"authorAssociation": "OWNER",5079"body": "Oh whoops. I did not notice this PR; I merged in the patch instead, though I did list you as the author of the commit. I hope that is okay.\r\n\r\nClosing since the code is already merged.",5080"createdAt": "2019-05-20T14:08:11Z",5081"includesCreatedEdit": false,5082"isMinimized": false,5083"minimizedReason": "",5084"reactionGroups": [],5085"url": "https://github.com/gavinhoward/bc/pull/19#issuecomment-494002951",5086"viewerDidAuthor": true5087}5088],5089"commits": [5090{5091"authoredDate": "2019-05-20T11:00:48Z",5092"authors": [5093{5094"email": "[email protected]",5095"id": "MDQ6VXNlcjYyNjQ1NDY=",5096"login": "stesser",5097"name": "Stefan Esser"5098}5099],5100"committedDate": "2019-05-20T11:00:48Z",5101"messageBody": "…mod per BcDig\n\nIn the last iteration of the per BcDig print loop, acc is known to be less than\npow, therefore the last div and mod operations can be skipped, resulting in a\nspeed-up of about 2% in my tests.",5102"messageHeadline": "Slightly speed up printing for the obase!=10 case by skipping one div…",5103"oid": "b2c2fe4f75bff27e183db6e8b4211e8f602b0e68"5104}5105],5106"createdAt": "2019-05-20T12:00:46Z",5107"deletions": 4,5108"files": [5109{5110"path": "src/num.c",5111"additions": 10,5112"deletions": 45113}5114],5115"fullDatabaseId": "280360533",5116"headRefName": "d9",5117"headRefOid": "b2c2fe4f75bff27e183db6e8b4211e8f602b0e68",5118"headRepository": {5119"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",5120"name": "bc"5121},5122"headRepositoryOwner": {5123"id": "MDQ6VXNlcjYyNjQ1NDY=",5124"name": "Stefan Eßer",5125"login": "stesser"5126},5127"id": "MDExOlB1bGxSZXF1ZXN0MjgwMzYwNTMz",5128"isCrossRepository": true,5129"isDraft": false,5130"labels": [],5131"latestReviews": [],5132"maintainerCanModify": false,5133"mergeCommit": null,5134"mergeStateStatus": "DIRTY",5135"mergeable": "CONFLICTING",5136"mergedAt": null,5137"mergedBy": null,5138"milestone": null,5139"number": 19,5140"potentialMergeCommit": null,5141"projectCards": [],5142"projectItems": [],5143"reactionGroups": [],5144"reviewDecision": "",5145"reviewRequests": [],5146"reviews": [],5147"state": "CLOSED",5148"statusCheckRollup": [],5149"title": "Slightly speed up printing for the obase!=10 case",5150"updatedAt": "2019-06-02T10:54:35Z",5151"url": "https://github.com/gavinhoward/bc/pull/19"5152},5153{5154"additions": 11813,5155"assignees": [],5156"author": {5157"id": "MDQ6VXNlcjYyNjQ1NDY=",5158"is_bot": false,5159"login": "stesser",5160"name": "Stefan Eßer"5161},5162"autoMergeRequest": null,5163"baseRefName": "master",5164"baseRefOid": "b3ba59502ee5cc81e2019a724b94b648a35d7897",5165"body": "All division and modulo test cases pass with this version.\r\n\r\nMaybe the scale could be reduced (for better performance) in parts of the algorithm, but for now the functionality is there. I have optimized the pow10 function by use of a look-up table. This table will be cached and the indexing faster than repetitive multiplication, IMHO. (Should be tested, but will not be significant in the overall picture, I guess.)\r\n\r\nI have introduced a function that rounds to a given precision. This was necessary to get the division match previous results to the last relevant digit. Just cutting off excess digits gives small errors in division and modulo results.\r\n\r\nAnother new function normalizes its argument to make len == rdx (i.e. to give a value strictly less than 1 but without 0 in the uppermost BcDig of num[]). This was required for the division, which operates on \"normalized\" values and adjusts the position of the decimal point as a final step.\r\n\r\nNeither of these functions has been added to num.h, since I was not sure about your policy with regard to having all static functions in num.c declared therein).",5166"changedFiles": 17,5167"closed": true,5168"closedAt": "2019-05-06T13:42:00Z",5169"comments": [5170{5171"id": "MDEyOklzc3VlQ29tbWVudDQ4NzU3MzUyNA==",5172"author": {5173"login": "stesser"5174},5175"authorAssociation": "CONTRIBUTOR",5176"body": "The power has been fixed and passes all tests.\r\nThe sqrt operator gives results that do not pass the tests but differ only in the number of decimals or the precision of the calculation.",5177"createdAt": "2019-04-29T13:11:00Z",5178"includesCreatedEdit": false,5179"isMinimized": false,5180"minimizedReason": "",5181"reactionGroups": [],5182"url": "https://github.com/gavinhoward/bc/pull/18#issuecomment-487573524",5183"viewerDidAuthor": false5184}5185],5186"commits": [5187{5188"authoredDate": "2019-04-19T08:06:46Z",5189"authors": [5190{5191"email": "[email protected]",5192"id": "MDQ6VXNlcjYyNjQ1NDY=",5193"login": "stesser",5194"name": "Stefan Esser"5195}5196],5197"committedDate": "2019-04-19T08:06:46Z",5198"messageBody": "…ot found.",5199"messageHeadline": "The test should use the same file name as is created if the file is n…",5200"oid": "d9bda13740c6d4f67c1d69955a4ea8e3477bad4f"5201},5202{5203"authoredDate": "2019-04-19T14:09:03Z",5204"authors": [5205{5206"email": "[email protected]",5207"id": "MDQ6VXNlcjYyNjQ1NDY=",5208"login": "stesser",5209"name": "Stefan Esser"5210}5211],5212"committedDate": "2019-04-19T14:09:03Z",5213"messageBody": "The output has been verified to be identical to that of the C language\nversion for all files in this project by comparing the resulting .o files.",5214"messageHeadline": "Provide shell version of strgen.c to allow use without compilation.",5215"oid": "7d9fb3e6ffb7008afec4c7168498751366213b0f"5216},5217{5218"authoredDate": "2019-04-19T14:11:23Z",5219"authors": [5220{5221"email": "[email protected]",5222"id": "MDQ6VXNlcjYyNjQ1NDY=",5223"login": "stesser",5224"name": "Stefan Esser"5225}5226],5227"committedDate": "2019-04-19T14:11:23Z",5228"messageBody": "",5229"messageHeadline": "Merge branch 'master' of https://github.com/gavinhoward/bc",5230"oid": "fddcd0f53021d8f3164f5618ba952ab36932d8fc"5231},5232{5233"authoredDate": "2019-04-19T18:39:00Z",5234"authors": [5235{5236"email": "[email protected]",5237"id": "MDQ6VXNlcjYyNjQ1NDY=",5238"login": "stesser",5239"name": "Stefan Esser"5240}5241],5242"committedDate": "2019-04-19T18:39:00Z",5243"messageBody": "…nature.",5244"messageHeadline": "Change parameter from char* to char** as required by the function sig…",5245"oid": "a010b3e82408024f12e34030591349c4a344465b"5246},5247{5248"authoredDate": "2019-04-19T18:41:07Z",5249"authors": [5250{5251"email": "[email protected]",5252"id": "MDQ6VXNlcjYyNjQ1NDY=",5253"login": "stesser",5254"name": "Stefan Esser"5255}5256],5257"committedDate": "2019-04-19T18:41:07Z",5258"messageBody": "",5259"messageHeadline": "Fix test to work if empty or null string is passed.",5260"oid": "22fd1e9277a34ead069e9dd64942ed3cd55c2ac6"5261},5262{5263"authoredDate": "2019-04-20T08:34:13Z",5264"authors": [5265{5266"email": "[email protected]",5267"id": "MDQ6VXNlcjYyNjQ1NDY=",5268"login": "stesser",5269"name": "Stefan Esser"5270}5271],5272"committedDate": "2019-04-20T08:34:13Z",5273"messageBody": "",5274"messageHeadline": "Merge branch 'master' of https://github.com/gavinhoward/bc",5275"oid": "461c523fcbb8ff4c758ddb6ba2d9cfcf71a0a412"5276},5277{5278"authoredDate": "2019-04-20T08:35:20Z",5279"authors": [5280{5281"email": "[email protected]",5282"id": "MDQ6VXNlcjYyNjQ1NDY=",5283"login": "stesser",5284"name": "Stefan Esser"5285}5286],5287"committedDate": "2019-04-20T08:35:20Z",5288"messageBody": "…e was broken,",5289"messageHeadline": "Change reference to v.v to use bc_vec_item(&v, 0) - my previous chang…",5290"oid": "52b52a81ea9ea993d9835900398ee48d6e1dc1ad"5291},5292{5293"authoredDate": "2019-04-20T08:37:07Z",5294"authors": [5295{5296"email": "[email protected]",5297"id": "MDQ6VXNlcjYyNjQ1NDY=",5298"login": "stesser",5299"name": "Stefan Esser"5300}5301],5302"committedDate": "2019-04-20T08:37:07Z",5303"messageBody": "…nset",5304"messageHeadline": "Split test into two parts to prevent parse error if the variable is u…",5305"oid": "04ddff0bd1de2bde9c1af167cd59488a8fa3800c"5306},5307{5308"authoredDate": "2019-04-20T15:11:30Z",5309"authors": [5310{5311"email": "[email protected]",5312"id": "MDQ6VXNlcjYyNjQ1NDY=",5313"login": "stesser",5314"name": "Stefan Esser"5315}5316],5317"committedDate": "2019-04-20T15:11:30Z",5318"messageBody": "",5319"messageHeadline": "Merge branch 'master' of https://github.com/gavinhoward/bc",5320"oid": "eb62a6521bcdaea48a8a69a346facf14a46604be"5321},5322{5323"authoredDate": "2019-04-20T16:14:00Z",5324"authors": [5325{5326"email": "[email protected]",5327"id": "MDQ6VXNlcjYyNjQ1NDY=",5328"login": "stesser",5329"name": "Stefan Esser"5330}5331],5332"committedDate": "2019-04-20T16:14:00Z",5333"messageBody": "",5334"messageHeadline": "Add information about recently added message catalogs.",5335"oid": "b2950329c49de32e8dccf39ad3a64c3d210c9a46"5336},5337{5338"authoredDate": "2019-04-20T16:16:06Z",5339"authors": [5340{5341"email": "[email protected]",5342"id": "MDQ6VXNlcjYyNjQ1NDY=",5343"login": "stesser",5344"name": "Stefan Esser"5345}5346],5347"committedDate": "2019-04-20T16:16:06Z",5348"messageBody": "",5349"messageHeadline": "Add quotes around fr_CA and fr_CH.",5350"oid": "eaf8bc5fa067eb2c55c96d14ad21ba952e83f6c5"5351},5352{5353"authoredDate": "2019-04-20T16:17:04Z",5354"authors": [5355{5356"email": "[email protected]",5357"id": "MDQ6VXNlcjYyNjQ1NDY=",5358"login": "stesser",5359"name": "Stefan Esser"5360}5361],5362"committedDate": "2019-04-20T16:17:04Z",5363"messageBody": "",5364"messageHeadline": "Fix quotes around fr_CA and fr_CH.",5365"oid": "7c87d5892205451fcabb38edf42ca4c948427dd7"5366},5367{5368"authoredDate": "2019-04-20T16:18:07Z",5369"authors": [5370{5371"email": "[email protected]",5372"id": "MDQ6VXNlcjYyNjQ1NDY=",5373"login": "stesser",5374"name": "Stefan Esser"5375}5376],5377"committedDate": "2019-04-20T16:18:07Z",5378"messageBody": "Anyway, I'm no native speaker of English and therefore the change is only\na crude example for what might be added ... ;-)",5379"messageHeadline": "I think \"for\" is better than \"in\", here.",5380"oid": "ecd6481f5aeabf178cc0fc7614840f08d74473b0"5381},5382{5383"authoredDate": "2019-04-24T09:16:49Z",5384"authors": [5385{5386"email": "[email protected]",5387"id": "MDQ6VXNlcjYyNjQ1NDY=",5388"login": "stesser",5389"name": "Stefan Esser"5390}5391],5392"committedDate": "2019-04-24T09:16:49Z",5393"messageBody": "",5394"messageHeadline": "Merge branch 'master' of https://github.com/gavinhoward/bc",5395"oid": "004ad884ed95213a1a14cc7a5b05353ff91fcceb"5396},5397{5398"authoredDate": "2019-04-24T21:28:32Z",5399"authors": [5400{5401"email": "[email protected]",5402"id": "MDQ6VXNlcjYyNjQ1NDY=",5403"login": "stesser",5404"name": "Stefan Esser"5405}5406],5407"committedDate": "2019-04-24T21:28:32Z",5408"messageBody": "…esent numbers\n\nThis code has been tested with add/sub, multiplicaton and power of integer values.\nNo tests have been performed for division and square root, yet.\n\nNumbers with fractional parts are not supported due to the missing scaling of the\n\"scale\" parameter.",5409"messageHeadline": "Initial support for 32 bit integers instead of decimal digits to repr…",5410"oid": "a299ffc466db2360d0cd21f8e872a4b9ccac8f0b"5411},5412{5413"authoredDate": "2019-04-24T23:23:08Z",5414"authors": [5415{5416"email": "[email protected]",5417"id": "MDQ6VXNlcjYyNjQ1NDY=",5418"login": "stesser",5419"name": "Stefan Eßer"5420}5421],5422"committedDate": "2019-04-24T23:23:08Z",5423"messageBody": "This patch starts a branch exploring the possibility of using a more\npacked representation of digits in BcNum's. I am not sure this will work\nout, but it can't hurt to try, especially since Stefan was so kind to\ncome up with a patch and send it.\n\nAs of right now, the things that are known to be broken:\n\n* Printing decimal numbers\n* Power (seg fault)",5424"messageHeadline": "Commit an adjusted patch sent to me by Stefan Eßer",5425"oid": "4b111c28c02ac4c999ad62de5a448eb21e01489b"5426},5427{5428"authoredDate": "2019-04-24T23:31:23Z",5429"authors": [5430{5431"email": "[email protected]",5432"id": "",5433"login": "",5434"name": "Gavin Howard"5435}5436],5437"committedDate": "2019-04-24T23:31:23Z",5438"messageBody": "",5439"messageHeadline": "Attempt to make Stefan's work more portable",5440"oid": "0700efc9bb2aad8921d035f18bb30e4e211e0115"5441},5442{5443"authoredDate": "2019-04-24T23:33:48Z",5444"authors": [5445{5446"email": "[email protected]",5447"id": "",5448"login": "",5449"name": "Gavin Howard"5450}5451],5452"committedDate": "2019-04-24T23:33:48Z",5453"messageBody": "",5454"messageHeadline": "Fix a bit of code that is not portable to 8-bit arches",5455"oid": "d7e4d6e8e6e0c46c3ab378c8066ceedf02fe2784"5456},5457{5458"authoredDate": "2019-04-25T04:33:10Z",5459"authors": [5460{5461"email": "[email protected]",5462"id": "MDQ6VXNlcjYyNjQ1NDY=",5463"login": "stesser",5464"name": "Stefan Esser"5465}5466],5467"committedDate": "2019-04-25T04:33:10Z",5468"messageBody": "… of BcDig",5469"messageHeadline": "Introduce 3 function to perform memcpy, memmove, and memset on arrays…",5470"oid": "394a516fb6d95a9314783e4b920f9078b8d6217b"5471},5472{5473"authoredDate": "2019-04-25T05:05:24Z",5474"authors": [5475{5476"email": "[email protected]",5477"id": "MDQ6VXNlcjYyNjQ1NDY=",5478"login": "stesser",5479"name": "Stefan Esser"5480}5481],5482"committedDate": "2019-04-25T05:05:24Z",5483"messageBody": "",5484"messageHeadline": "Modify malloc and realloc functions to operate on BcDig arrays",5485"oid": "5fd43a372b887cae774309dae0482410eaa64344"5486},5487{5488"authoredDate": "2019-04-25T05:14:54Z",5489"authors": [5490{5491"email": "[email protected]",5492"id": "MDQ6VXNlcjYyNjQ1NDY=",5493"login": "stesser",5494"name": "Stefan Esser"5495}5496],5497"committedDate": "2019-04-25T05:14:54Z",5498"messageBody": "…ctions for use in vector.c",5499"messageHeadline": "Add BcDig alloc functions to header and re-enable the plain alloc fun…",5500"oid": "ca5a74eedef9edea724f90c386cf13322a972511"5501},5502{5503"authoredDate": "2019-04-25T05:42:03Z",5504"authors": [5505{5506"email": "[email protected]",5507"id": "MDQ6VXNlcjYyNjQ1NDY=",5508"login": "stesser",5509"name": "Stefan Esser"5510}5511],5512"committedDate": "2019-04-25T05:42:03Z",5513"messageBody": "",5514"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",5515"oid": "14eff4647371265957e125e44ca8666cc845b54f"5516},5517{5518"authoredDate": "2019-04-25T05:56:10Z",5519"authors": [5520{5521"email": "[email protected]",5522"id": "MDQ6VXNlcjYyNjQ1NDY=",5523"login": "stesser",5524"name": "Stefan Esser"5525}5526],5527"committedDate": "2019-04-25T05:56:10Z",5528"messageBody": "",5529"messageHeadline": "Use bc_num_set instead of memset in merged code",5530"oid": "887d6b9b2fb148490d373f60cc13f42fb3a47102"5531},5532{5533"authoredDate": "2019-04-25T06:01:03Z",5534"authors": [5535{5536"email": "[email protected]",5537"id": "MDQ6VXNlcjYyNjQ1NDY=",5538"login": "stesser",5539"name": "Stefan Esser"5540}5541],5542"committedDate": "2019-04-25T06:01:03Z",5543"messageBody": "",5544"messageHeadline": "Allow passing of -DBC_DEBUG_CODE on the command line",5545"oid": "010dd2a01af69462ee1c94053e9f82cde65f171d"5546},5547{5548"authoredDate": "2019-04-25T06:09:13Z",5549"authors": [5550{5551"email": "[email protected]",5552"id": "MDQ6VXNlcjYyNjQ1NDY=",5553"login": "stesser",5554"name": "Stefan Esser"5555}5556],5557"committedDate": "2019-04-25T06:09:13Z",5558"messageBody": "",5559"messageHeadline": "Remove duplicate definitioon of DUMP_NUM",5560"oid": "a3430556302146f917be5266b7c6021ecd2e1133"5561},5562{5563"authoredDate": "2019-04-25T09:25:17Z",5564"authors": [5565{5566"email": "[email protected]",5567"id": "MDQ6VXNlcjYyNjQ1NDY=",5568"login": "stesser",5569"name": "Stefan Esser"5570}5571],5572"committedDate": "2019-04-25T09:25:17Z",5573"messageBody": "",5574"messageHeadline": "Remove obsolete local variables",5575"oid": "bf3b1b206e6e6a88c7ffc6ca7e10388f3fb1eb4a"5576},5577{5578"authoredDate": "2019-04-25T09:50:39Z",5579"authors": [5580{5581"email": "[email protected]",5582"id": "MDQ6VXNlcjYyNjQ1NDY=",5583"login": "stesser",5584"name": "Stefan Esser"5585}5586],5587"committedDate": "2019-04-25T09:50:39Z",5588"messageBody": "",5589"messageHeadline": "Fix printing of the decimal point (occured multiple times)",5590"oid": "610a8ee9e89626f9789ba63a3e5692adc19a46ef"5591},5592{5593"authoredDate": "2019-04-25T10:25:15Z",5594"authors": [5595{5596"email": "[email protected]",5597"id": "MDQ6VXNlcjYyNjQ1NDY=",5598"login": "stesser",5599"name": "Stefan Esser"5600}5601],5602"committedDate": "2019-04-25T10:25:15Z",5603"messageBody": "",5604"messageHeadline": "Suppress printing of trailing zeroes of fractional parts of a result",5605"oid": "0da1775703abdbd337f024a4b46208976b08508a"5606},5607{5608"authoredDate": "2019-04-25T17:33:54Z",5609"authors": [5610{5611"email": "[email protected]",5612"id": "",5613"login": "",5614"name": "Gavin Howard"5615}5616],5617"committedDate": "2019-04-25T17:33:54Z",5618"messageBody": "",5619"messageHeadline": "Fix a problem I introduced",5620"oid": "b53a994e74fd2f226bac7756063b557dfd03f172"5621},5622{5623"authoredDate": "2019-04-25T21:18:49Z",5624"authors": [5625{5626"email": "[email protected]",5627"id": "",5628"login": "",5629"name": "Gavin D. Howard"5630}5631],5632"committedDate": "2019-04-25T21:18:49Z",5633"messageBody": "A number of fixes and improvements ...",5634"messageHeadline": "Merge pull request #15 from stesser/d9",5635"oid": "7daf7e6cf26a6b3b11eeddd9d6bcc38bd52da3dc"5636},5637{5638"authoredDate": "2019-04-26T01:35:41Z",5639"authors": [5640{5641"email": "[email protected]",5642"id": "",5643"login": "",5644"name": "Gavin Howard"5645}5646],5647"committedDate": "2019-04-26T01:35:41Z",5648"messageBody": "",5649"messageHeadline": "Fix some style",5650"oid": "af107d94c9352b37d4bf31815663fd68effa55b6"5651},5652{5653"authoredDate": "2019-04-26T01:43:49Z",5654"authors": [5655{5656"email": "[email protected]",5657"id": "",5658"login": "",5659"name": "Gavin Howard"5660}5661],5662"committedDate": "2019-04-26T01:43:49Z",5663"messageBody": "",5664"messageHeadline": "Fix some more style",5665"oid": "f49fdaa396f2cda25379b056cf7ca9fffb0a68d6"5666},5667{5668"authoredDate": "2019-04-26T02:12:19Z",5669"authors": [5670{5671"email": "[email protected]",5672"id": "",5673"login": "",5674"name": "Gavin Howard"5675}5676],5677"committedDate": "2019-04-26T02:12:19Z",5678"messageBody": "",5679"messageHeadline": "Make some changes and mark functions that need work",5680"oid": "fcf290110df0d7b09b5f89798888f05b8b371484"5681},5682{5683"authoredDate": "2019-04-26T03:13:54Z",5684"authors": [5685{5686"email": "[email protected]",5687"id": "",5688"login": "",5689"name": "Gavin Howard"5690}5691],5692"committedDate": "2019-04-26T03:13:54Z",5693"messageBody": "There is still one bug: it allows in an extra 0 in the most significant\nspot if there is one, but it does produce the right numbers.",5694"messageHeadline": "Make decimal parsing work",5695"oid": "d43ec37d48c69660ba7098c88a8ef3002a49636d"5696},5697{5698"authoredDate": "2019-04-26T14:48:19Z",5699"authors": [5700{5701"email": "[email protected]",5702"id": "",5703"login": "",5704"name": "Gavin Howard"5705}5706],5707"committedDate": "2019-04-26T14:48:19Z",5708"messageBody": "",5709"messageHeadline": "Fix the definitions for BcDig",5710"oid": "2eaeebffdce7fcd52b3a62d1537002b3580b6e28"5711},5712{5713"authoredDate": "2019-04-26T14:48:44Z",5714"authors": [5715{5716"email": "[email protected]",5717"id": "",5718"login": "",5719"name": "Gavin Howard"5720}5721],5722"committedDate": "2019-04-26T14:48:44Z",5723"messageBody": "",5724"messageHeadline": "Add more decimal tests",5725"oid": "a0e90f3e79ef5b619b801753877d94992f6bdc95"5726},5727{5728"authoredDate": "2019-04-26T14:49:05Z",5729"authors": [5730{5731"email": "[email protected]",5732"id": "",5733"login": "",5734"name": "Gavin Howard"5735}5736],5737"committedDate": "2019-04-26T14:49:05Z",5738"messageBody": "",5739"messageHeadline": "Fix a warning",5740"oid": "f196fbe426ea69bcf4fb3046cc4fedffd7fc54b7"5741},5742{5743"authoredDate": "2019-04-26T14:49:17Z",5744"authors": [5745{5746"email": "[email protected]",5747"id": "",5748"login": "",5749"name": "Gavin Howard"5750}5751],5752"committedDate": "2019-04-26T14:49:17Z",5753"messageBody": "",5754"messageHeadline": "Make parsing decimal work",5755"oid": "3b60abb028266f4ff0e1aa3bdf42f440eae646c5"5756},5757{5758"authoredDate": "2019-04-26T15:46:29Z",5759"authors": [5760{5761"email": "[email protected]",5762"id": "",5763"login": "",5764"name": "Gavin Howard"5765}5766],5767"committedDate": "2019-04-26T15:46:29Z",5768"messageBody": "",5769"messageHeadline": "Fix a test result file",5770"oid": "de5fcf3618c6a9ca342ed749459f395783de28d7"5771},5772{5773"authoredDate": "2019-04-26T15:47:50Z",5774"authors": [5775{5776"email": "[email protected]",5777"id": "",5778"login": "",5779"name": "Gavin Howard"5780}5781],5782"committedDate": "2019-04-26T15:47:50Z",5783"messageBody": "",5784"messageHeadline": "Fix another bug in the parse decimal procedure",5785"oid": "6076dbb54bf4503abefeab22ee2a3edf6075e2e6"5786},5787{5788"authoredDate": "2019-04-26T15:48:12Z",5789"authors": [5790{5791"email": "[email protected]",5792"id": "",5793"login": "",5794"name": "Gavin Howard"5795}5796],5797"committedDate": "2019-04-26T15:48:25Z",5798"messageBody": "This still uses an idea from Stefan Eßer and some code, mainly the\nbuffer for calculating the numbers. Other than that, I did it my way.\n\nThe reason for this is because I *really* want to make sure the radix is\non a BcDig boundary.",5799"messageHeadline": "Make printing decimal numbers work",5800"oid": "51cd7ea27608359bf4298766cbf1579da9c35242"5801},5802{5803"authoredDate": "2019-04-26T15:50:35Z",5804"authors": [5805{5806"email": "[email protected]",5807"id": "",5808"login": "",5809"name": "Gavin Howard"5810}5811],5812"committedDate": "2019-04-26T15:50:35Z",5813"messageBody": "",5814"messageHeadline": "Remove some TODO comments that are done",5815"oid": "9cf865f8396f76015b63d5f719e1ba4f0504a629"5816},5817{5818"authoredDate": "2019-04-26T16:07:21Z",5819"authors": [5820{5821"email": "[email protected]",5822"id": "",5823"login": "",5824"name": "Gavin Howard"5825}5826],5827"committedDate": "2019-04-26T16:07:21Z",5828"messageBody": "",5829"messageHeadline": "Make add work",5830"oid": "fba50a2a7d78923ffc98e593bff06913f283b9af"5831},5832{5833"authoredDate": "2019-04-26T16:07:45Z",5834"authors": [5835{5836"email": "[email protected]",5837"id": "",5838"login": "",5839"name": "Gavin Howard"5840}5841],5842"committedDate": "2019-04-26T16:07:45Z",5843"messageBody": "",5844"messageHeadline": "Add a useful #define",5845"oid": "1c1697cdc5724c5e2a2969e59fb17059d84b2272"5846},5847{5848"authoredDate": "2019-04-26T16:13:45Z",5849"authors": [5850{5851"email": "[email protected]",5852"id": "",5853"login": "",5854"name": "Gavin Howard"5855}5856],5857"committedDate": "2019-04-26T16:13:45Z",5858"messageBody": "",5859"messageHeadline": "Make subtract work",5860"oid": "e6f326ed2d30c6814fed8a26d57ac6a5847587c6"5861},5862{5863"authoredDate": "2019-04-26T16:17:02Z",5864"authors": [5865{5866"email": "[email protected]",5867"id": "",5868"login": "",5869"name": "Gavin Howard"5870}5871],5872"committedDate": "2019-04-26T16:17:02Z",5873"messageBody": "",5874"messageHeadline": "Get rid of some compiler warnings",5875"oid": "6fccd22b21b7f8cbf7ab2b48af912dd1ffb8bf8c"5876},5877{5878"authoredDate": "2019-04-26T16:17:57Z",5879"authors": [5880{5881"email": "[email protected]",5882"id": "",5883"login": "",5884"name": "Gavin Howard"5885}5886],5887"committedDate": "2019-04-26T16:17:57Z",5888"messageBody": "",5889"messageHeadline": "Remove some done TODO comments",5890"oid": "e2e67ecbda93721e0820a01ce4e5ce660010f7bc"5891},5892{5893"authoredDate": "2019-04-26T16:40:02Z",5894"authors": [5895{5896"email": "[email protected]",5897"id": "",5898"login": "",5899"name": "Gavin Howard"5900}5901],5902"committedDate": "2019-04-26T16:40:02Z",5903"messageBody": "",5904"messageHeadline": "Fix some compiler warnings",5905"oid": "c4783ac369bf46f1fbc894979fee2040e29008eb"5906},5907{5908"authoredDate": "2019-04-26T20:32:07Z",5909"authors": [5910{5911"email": "[email protected]",5912"id": "",5913"login": "",5914"name": "Gavin Howard"5915}5916],5917"committedDate": "2019-04-26T20:32:07Z",5918"messageBody": "",5919"messageHeadline": "Some general cleanup on math",5920"oid": "971a26711ea6c03cbd23fd22bc93d03ead700f14"5921},5922{5923"authoredDate": "2019-04-26T20:32:55Z",5924"authors": [5925{5926"email": "[email protected]",5927"id": "",5928"login": "",5929"name": "Gavin Howard"5930}5931],5932"committedDate": "2019-04-26T20:32:55Z",5933"messageBody": "",5934"messageHeadline": "Make shift work",5935"oid": "b155866dbb923e50d104ec210d095e14083fa372"5936},5937{5938"authoredDate": "2019-04-26T20:33:43Z",5939"authors": [5940{5941"email": "[email protected]",5942"id": "",5943"login": "",5944"name": "Gavin Howard"5945}5946],5947"committedDate": "2019-04-26T20:33:43Z",5948"messageBody": "",5949"messageHeadline": "Remove a compiler warning",5950"oid": "da6b543c1501f01e4b781c7b24d16b950cbf0bd1"5951},5952{5953"authoredDate": "2019-04-26T20:46:52Z",5954"authors": [5955{5956"email": "[email protected]",5957"id": "",5958"login": "",5959"name": "Gavin Howard"5960}5961],5962"committedDate": "2019-04-26T20:46:52Z",5963"messageBody": "",5964"messageHeadline": "Fix truncate and extend",5965"oid": "c9bef2d421dda2b0796a9ccb6198fe98ff56dd34"5966},5967{5968"authoredDate": "2019-04-26T21:39:46Z",5969"authors": [5970{5971"email": "[email protected]",5972"id": "",5973"login": "",5974"name": "Gavin Howard"5975}5976],5977"committedDate": "2019-04-26T21:39:46Z",5978"messageBody": "I don't think it is done, however; power still needs to be tested.",5979"messageHeadline": "Make multiply pass its tests",5980"oid": "48a0e4793be1f58638be5c1b8820944f92afc498"5981},5982{5983"authoredDate": "2019-04-26T21:41:15Z",5984"authors": [5985{5986"email": "[email protected]",5987"id": "",5988"login": "",5989"name": "Gavin Howard"5990}5991],5992"committedDate": "2019-04-26T21:41:15Z",5993"messageBody": "",5994"messageHeadline": "Remove some TODO comments that are done",5995"oid": "74b16c3bc8ec25b8c1e562ce04d68045692e1864"5996},5997{5998"authoredDate": "2019-04-26T21:47:25Z",5999"authors": [6000{6001"email": "[email protected]",6002"id": "",6003"login": "",6004"name": "Gavin Howard"6005}6006],6007"committedDate": "2019-04-26T21:47:25Z",6008"messageBody": "",6009"messageHeadline": "Remove more TODO comments that are done",6010"oid": "a3f260c53adfcdd0fcd01404e08260b65c87e1e7"6011},6012{6013"authoredDate": "2019-04-26T21:59:15Z",6014"authors": [6015{6016"email": "[email protected]",6017"id": "",6018"login": "",6019"name": "Gavin Howard"6020}6021],6022"committedDate": "2019-04-26T21:59:15Z",6023"messageBody": "",6024"messageHeadline": "Clean up some style",6025"oid": "404ece77d2e3e5009511e77a5f9e56d4e1afb3f7"6026},6027{6028"authoredDate": "2019-04-26T21:59:33Z",6029"authors": [6030{6031"email": "[email protected]",6032"id": "",6033"login": "",6034"name": "Gavin Howard"6035}6036],6037"committedDate": "2019-04-26T21:59:33Z",6038"messageBody": "",6039"messageHeadline": "Fix various small issues",6040"oid": "774454354a9354023b6fb7e3aa396b269a5562f7"6041},6042{6043"authoredDate": "2019-04-26T23:29:01Z",6044"authors": [6045{6046"email": "[email protected]",6047"id": "MDQ6VXNlcjYyNjQ1NDY=",6048"login": "stesser",6049"name": "Stefan Esser"6050}6051],6052"committedDate": "2019-04-26T23:29:01Z",6053"messageBody": "",6054"messageHeadline": "Iterative division based on Newton Raphson algorithm",6055"oid": "193f8529ad93306e39914ca7a2aa877669383f6f"6056},6057{6058"authoredDate": "2019-04-27T01:31:31Z",6059"authors": [6060{6061"email": "[email protected]",6062"id": "",6063"login": "",6064"name": "Gavin Howard"6065}6066],6067"committedDate": "2019-04-27T01:31:31Z",6068"messageBody": "",6069"messageHeadline": "Change some code back to what it was (with adjustments)",6070"oid": "c25fd61637390cc993c91258dda2c01404b37147"6071},6072{6073"authoredDate": "2019-04-27T07:16:26Z",6074"authors": [6075{6076"email": "[email protected]",6077"id": "MDQ6VXNlcjYyNjQ1NDY=",6078"login": "stesser",6079"name": "Stefan Esser"6080}6081],6082"committedDate": "2019-04-27T07:16:26Z",6083"messageBody": "",6084"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",6085"oid": "87c27b5715646eb4deec4a6795c17b4c5facc408"6086},6087{6088"authoredDate": "2019-04-27T08:39:00Z",6089"authors": [6090{6091"email": "[email protected]",6092"id": "MDQ6VXNlcjYyNjQ1NDY=",6093"login": "stesser",6094"name": "Stefan Esser"6095}6096],6097"committedDate": "2019-04-27T08:39:00Z",6098"messageBody": "",6099"messageHeadline": "Fix mismerge regarding nBcDig vs. places",6100"oid": "70f118574077b6e61cae08bd576ca7fccc167786"6101},6102{6103"authoredDate": "2019-04-27T08:40:14Z",6104"authors": [6105{6106"email": "[email protected]",6107"id": "MDQ6VXNlcjYyNjQ1NDY=",6108"login": "stesser",6109"name": "Stefan Esser"6110}6111],6112"committedDate": "2019-04-27T08:40:14Z",6113"messageBody": "…e current rdx",6114"messageHeadline": "Fix segmentation fault that occurs if the target rdx is lower than th…",6115"oid": "6189d95036f123d48d505bf4d4a49ba11ca30aee"6116},6117{6118"authoredDate": "2019-04-27T08:42:00Z",6119"authors": [6120{6121"email": "[email protected]",6122"id": "MDQ6VXNlcjYyNjQ1NDY=",6123"login": "stesser",6124"name": "Stefan Esser"6125}6126],6127"committedDate": "2019-04-27T08:42:00Z",6128"messageBody": "",6129"messageHeadline": "Add simple debug print macro",6130"oid": "cdda6e99974b8f9551ad1bc184b3c735afac6f4a"6131},6132{6133"authoredDate": "2019-04-27T11:47:09Z",6134"authors": [6135{6136"email": "[email protected]",6137"id": "",6138"login": "",6139"name": "Charlie Root"6140}6141],6142"committedDate": "2019-04-27T11:47:09Z",6143"messageBody": "",6144"messageHeadline": "Fix calculation of scale in multiplications",6145"oid": "ac244bdb3ebe6e6a2693f3d5c2ae13d7723b3517"6146},6147{6148"authoredDate": "2019-04-27T12:36:28Z",6149"authors": [6150{6151"email": "[email protected]",6152"id": "",6153"login": "",6154"name": "Gavin Howard"6155}6156],6157"committedDate": "2019-04-27T12:36:28Z",6158"messageBody": "",6159"messageHeadline": "Fix seg fault in bc_num_shiftLeft()",6160"oid": "b1d29c24cb4bfa07f3bc3e665811ab8b100b0b5e"6161},6162{6163"authoredDate": "2019-04-27T12:40:58Z",6164"authors": [6165{6166"email": "[email protected]",6167"id": "",6168"login": "",6169"name": "Gavin D. Howard"6170}6171],6172"committedDate": "2019-04-27T12:40:58Z",6173"messageBody": "Newton-Raphson based division",6174"messageHeadline": "Merge pull request #16 from stesser/d9",6175"oid": "769fcbed7a3a0005a60254c0ed5203406b533ae3"6176},6177{6178"authoredDate": "2019-04-27T12:41:58Z",6179"authors": [6180{6181"email": "[email protected]",6182"id": "",6183"login": "",6184"name": "Gavin Howard"6185}6186],6187"committedDate": "2019-04-27T12:41:58Z",6188"messageBody": "",6189"messageHeadline": "Fix some style",6190"oid": "2e736dee1ae4ddadbe4305296fc98ecc9a917e45"6191},6192{6193"authoredDate": "2019-04-27T12:43:57Z",6194"authors": [6195{6196"email": "[email protected]",6197"id": "",6198"login": "",6199"name": "Gavin Howard"6200}6201],6202"committedDate": "2019-04-27T12:43:57Z",6203"messageBody": "",6204"messageHeadline": "Fix the multiplication scale back",6205"oid": "cf9f246919f39e50c911c6552d9b16f05a0fc2cf"6206},6207{6208"authoredDate": "2019-04-27T12:51:33Z",6209"authors": [6210{6211"email": "[email protected]",6212"id": "",6213"login": "",6214"name": "Gavin Howard"6215}6216],6217"committedDate": "2019-04-27T12:51:33Z",6218"messageBody": "",6219"messageHeadline": "Merge branch 'master' into base9",6220"oid": "5de0bd695347a0ef5bde2d526472a2a3ba6d2a17"6221},6222{6223"authoredDate": "2019-04-27T13:26:35Z",6224"authors": [6225{6226"email": "[email protected]",6227"id": "",6228"login": "",6229"name": "Gavin Howard"6230}6231],6232"committedDate": "2019-04-27T13:26:35Z",6233"messageBody": "",6234"messageHeadline": "Add another print debug function",6235"oid": "5b40e402dc37897052129db14441695a25bd86f8"6236},6237{6238"authoredDate": "2019-04-27T13:28:24Z",6239"authors": [6240{6241"email": "[email protected]",6242"id": "",6243"login": "",6244"name": "Gavin Howard"6245}6246],6247"committedDate": "2019-04-27T13:28:24Z",6248"messageBody": "",6249"messageHeadline": "Change bc_num_printDigs() a bit",6250"oid": "37118f4c4f26f64bb4becb0caa55149659ca8ac3"6251},6252{6253"authoredDate": "2019-04-27T13:28:45Z",6254"authors": [6255{6256"email": "[email protected]",6257"id": "",6258"login": "",6259"name": "Gavin Howard"6260}6261],6262"committedDate": "2019-04-27T13:28:45Z",6263"messageBody": "",6264"messageHeadline": "Fix a divide by 0",6265"oid": "edd9d9dd1459746a4bb2012194a3d3c831414c68"6266},6267{6268"authoredDate": "2019-04-27T13:28:56Z",6269"authors": [6270{6271"email": "[email protected]",6272"id": "",6273"login": "",6274"name": "Gavin Howard"6275}6276],6277"committedDate": "2019-04-27T13:28:56Z",6278"messageBody": "",6279"messageHeadline": "Fix some style",6280"oid": "034b5b9e16e57becf5121ed60ae1dac8b8dc4ece"6281},6282{6283"authoredDate": "2019-04-27T13:33:16Z",6284"authors": [6285{6286"email": "[email protected]",6287"id": "",6288"login": "",6289"name": "Gavin Howard"6290}6291],6292"committedDate": "2019-04-27T13:33:16Z",6293"messageBody": "",6294"messageHeadline": "Fix more style",6295"oid": "c88e5231008923290d1ead34ff987fb2e17043c5"6296},6297{6298"authoredDate": "2019-04-27T13:34:13Z",6299"authors": [6300{6301"email": "[email protected]",6302"id": "",6303"login": "",6304"name": "Gavin Howard"6305}6306],6307"committedDate": "2019-04-27T13:34:13Z",6308"messageBody": "",6309"messageHeadline": "Fix even more style",6310"oid": "20afaeab2ffca9a32e1fa65feeb33050d9c4e204"6311},6312{6313"authoredDate": "2019-04-27T13:53:23Z",6314"authors": [6315{6316"email": "[email protected]",6317"id": "",6318"login": "",6319"name": "Gavin Howard"6320}6321],6322"committedDate": "2019-04-27T13:53:23Z",6323"messageBody": "",6324"messageHeadline": "Move an item",6325"oid": "948b639a0674f3ce836fe3ba843e2253ef798cd8"6326},6327{6328"authoredDate": "2019-04-27T13:53:36Z",6329"authors": [6330{6331"email": "[email protected]",6332"id": "",6333"login": "",6334"name": "Gavin Howard"6335}6336],6337"committedDate": "2019-04-27T13:53:36Z",6338"messageBody": "",6339"messageHeadline": "Remove two unused functions",6340"oid": "2316cb42fdff7b768debf3d9c65b73c9c8fc6137"6341},6342{6343"authoredDate": "2019-04-27T14:09:32Z",6344"authors": [6345{6346"email": "[email protected]",6347"id": "",6348"login": "",6349"name": "Gavin Howard"6350}6351],6352"committedDate": "2019-04-27T14:09:32Z",6353"messageBody": "",6354"messageHeadline": "Add length and scale tests",6355"oid": "805328cdb9342eb249dc398b4569190d7ca78747"6356},6357{6358"authoredDate": "2019-04-27T14:30:10Z",6359"authors": [6360{6361"email": "[email protected]",6362"id": "",6363"login": "",6364"name": "Gavin Howard"6365}6366],6367"committedDate": "2019-04-27T14:30:10Z",6368"messageBody": "",6369"messageHeadline": "Make length work",6370"oid": "b41483b364bf8fe8841e8875febeb4d58743e32f"6371},6372{6373"authoredDate": "2019-04-27T21:33:08Z",6374"authors": [6375{6376"email": "[email protected]",6377"id": "MDQ6VXNlcjYyNjQ1NDY=",6378"login": "stesser",6379"name": "Stefan Esser"6380}6381],6382"committedDate": "2019-04-27T21:33:08Z",6383"messageBody": "…upstream changes",6384"messageHeadline": "Updated implementation of Newton-Raphson division algorithm to match …",6385"oid": "b5aeb445a556de9d9b41a7b2d196b59bcaca90ae"6386},6387{6388"authoredDate": "2019-04-27T21:41:21Z",6389"authors": [6390{6391"email": "[email protected]",6392"id": "MDQ6VXNlcjYyNjQ1NDY=",6393"login": "stesser",6394"name": "Stefan Esser"6395}6396],6397"committedDate": "2019-04-27T21:41:21Z",6398"messageBody": "",6399"messageHeadline": "Small optimization of the division function",6400"oid": "6e129fc621b358d219036e6e4d01f572adb133ff"6401},6402{6403"authoredDate": "2019-04-27T21:43:02Z",6404"authors": [6405{6406"email": "[email protected]",6407"id": "MDQ6VXNlcjYyNjQ1NDY=",6408"login": "stesser",6409"name": "Stefan Esser"6410}6411],6412"committedDate": "2019-04-27T21:43:02Z",6413"messageBody": "",6414"messageHeadline": "Small optimization of the division function",6415"oid": "217379d6199e6bb8b586716b382731882c6096fe"6416},6417{6418"authoredDate": "2019-04-27T21:45:48Z",6419"authors": [6420{6421"email": "[email protected]",6422"id": "MDQ6VXNlcjYyNjQ1NDY=",6423"login": "stesser",6424"name": "Stefan Esser"6425}6426],6427"committedDate": "2019-04-27T21:45:48Z",6428"messageBody": "",6429"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",6430"oid": "45a56123c3c6ede3cf157419e56427a01ff48e2a"6431},6432{6433"authoredDate": "2019-04-28T00:04:02Z",6434"authors": [6435{6436"email": "[email protected]",6437"id": "MDQ6VXNlcjYyNjQ1NDY=",6438"login": "stesser",6439"name": "Stefan Eßer"6440}6441],6442"committedDate": "2019-04-28T00:04:02Z",6443"messageBody": "He says that he made division work. Cool.",6444"messageHeadline": "Import more code from Stefan",6445"oid": "daaaaa795095115e813ad7c7afbae0937a046246"6446},6447{6448"authoredDate": "2019-04-28T10:30:47Z",6449"authors": [6450{6451"email": "[email protected]",6452"id": "MDQ6VXNlcjYyNjQ1NDY=",6453"login": "stesser",6454"name": "Stefan Esser"6455}6456],6457"committedDate": "2019-04-28T10:30:47Z",6458"messageBody": "I had missed to set scsale values in the parameters passed in by the divide\nfunction and thus got results that had 0 fractional digits.",6459"messageHeadline": "Undo change to scale calculation in bc_num_m",6460"oid": "d793fa5c3a03370627e45d5f03968039b10f34c6"6461},6462{6463"authoredDate": "2019-04-28T12:58:58Z",6464"authors": [6465{6466"email": "[email protected]",6467"id": "MDQ6VXNlcjYyNjQ1NDY=",6468"login": "stesser",6469"name": "Stefan Esser"6470}6471],6472"committedDate": "2019-04-28T12:58:58Z",6473"messageBody": "This function will be used in the division algorithm.",6474"messageHeadline": "Add function to round number to a given number of decimal places",6475"oid": "db970636e68f62f41c17c6053e5ccc242161e5a0"6476},6477{6478"authoredDate": "2019-04-28T13:50:14Z",6479"authors": [6480{6481"email": "[email protected]",6482"id": "MDQ6VXNlcjYyNjQ1NDY=",6483"login": "stesser",6484"name": "Stefan Esser"6485}6486],6487"committedDate": "2019-04-28T13:50:14Z",6488"messageBody": "I had a local change that made bc_num_invert implicily extend this variable,\nbut noticed with that change reverted that the precision of the calculation\nwas reduced to BC_BASE_POWER decimals, leading to imprecise division results.",6489"messageHeadline": "Fix division: Extend variable to required number of decimal places",6490"oid": "70997150a28b4df49639924431cb0706a403207f"6491},6492{6493"authoredDate": "2019-04-28T15:21:34Z",6494"authors": [6495{6496"email": "[email protected]",6497"id": "MDQ6VXNlcjYyNjQ1NDY=",6498"login": "stesser",6499"name": "Stefan Esser"6500}6501],6502"committedDate": "2019-04-28T15:21:34Z",6503"messageBody": "For now, keep the Newton-Raphson algorithm in an #if 0 block for reference and to\nallow to compare them in further tests.\n\nI have noticed segmentation faults when dividing very large numbers, which probably\nare due to missing calls of bc_num_extend() for destination variables of arithmetic\noperations. I'll try to fix the length calculations, but I do not know the exact\nsemantics of a number of low level calls.",6504"messageHeadline": "Replace Newton-Raphson algorithm by Goldschmidt algorithm.",6505"oid": "154b473a9c65f081d673556ce163c50754cf75de"6506},6507{6508"authoredDate": "2019-04-28T18:19:51Z",6509"authors": [6510{6511"email": "[email protected]",6512"id": "MDQ6VXNlcjYyNjQ1NDY=",6513"login": "stesser",6514"name": "Stefan Esser"6515}6516],6517"committedDate": "2019-04-28T18:19:51Z",6518"messageBody": "",6519"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",6520"oid": "307ce024f26a0433460a84ad5ad22bd3ac6f094f"6521},6522{6523"authoredDate": "2019-04-28T19:32:13Z",6524"authors": [6525{6526"email": "[email protected]",6527"id": "MDQ6VXNlcjYyNjQ1NDY=",6528"login": "stesser",6529"name": "Stefan Esser"6530}6531],6532"committedDate": "2019-04-28T19:32:13Z",6533"messageBody": "",6534"messageHeadline": "Optimize bc_num_pow10",6535"oid": "72109f49b8cd1e877c4b4252652d73f21d0ad689"6536},6537{6538"authoredDate": "2019-04-28T22:59:32Z",6539"authors": [6540{6541"email": "[email protected]",6542"id": "MDQ6VXNlcjYyNjQ1NDY=",6543"login": "stesser",6544"name": "Stefan Esser"6545}6546],6547"committedDate": "2019-04-28T22:59:32Z",6548"messageBody": "This makes bc complete the tests without crash, but with a result that\nhas too few digits printed. This will need to be debugged next ...",6549"messageHeadline": "Fix scale parameters and remove bogus bc_num_extend calls",6550"oid": "4c1e43af931618094a761dff7d1e4b0374e7576d"6551},6552{6553"authoredDate": "2019-04-29T10:56:32Z",6554"authors": [6555{6556"email": "[email protected]",6557"id": "MDQ6VXNlcjYyNjQ1NDY=",6558"login": "stesser",6559"name": "Stefan Esser"6560}6561],6562"committedDate": "2019-04-29T10:56:32Z",6563"messageBody": "Now all division and multiplication tests pass.",6564"messageHeadline": "Fix position of decimal point when dividing by a very small number.",6565"oid": "40b53d23eb92b69a9d079ead59def298cb089370"6566},6567{6568"authoredDate": "2019-04-29T11:00:23Z",6569"authors": [6570{6571"email": "[email protected]",6572"id": "MDQ6VXNlcjYyNjQ1NDY=",6573"login": "stesser",6574"name": "Stefan Esser"6575}6576],6577"committedDate": "2019-04-29T11:00:23Z",6578"messageBody": "",6579"messageHeadline": "Improve format of dumped BcNum values in debug traces",6580"oid": "33a1c689f4d5cf2026c92a954c36a50f6e772c8e"6581},6582{6583"authoredDate": "2019-04-29T12:24:31Z",6584"authors": [6585{6586"email": "[email protected]",6587"id": "MDQ6VXNlcjYyNjQ1NDY=",6588"login": "stesser",6589"name": "Stefan Esser"6590}6591],6592"committedDate": "2019-04-29T12:24:31Z",6593"messageBody": "There were 4 places where \"rdx\" had to be replaced by \"scale\".\nThis version passes all tests.",6594"messageHeadline": "Fix \"power\" operator (bc_num_p).",6595"oid": "c66e44871c84fc81a3595d21d9174082b62da1d3"6596},6597{6598"authoredDate": "2019-04-29T13:06:00Z",6599"authors": [6600{6601"email": "[email protected]",6602"id": "MDQ6VXNlcjYyNjQ1NDY=",6603"login": "stesser",6604"name": "Stefan Esser"6605}6606],6607"committedDate": "2019-04-29T13:06:00Z",6608"messageBody": "Results seem to be correct except for the number of decimals calculated and returned.\nThe tests still fail for that reason, but show results that are near to what is expected.",6609"messageHeadline": "Mostly fix the sqrt operation.",6610"oid": "627693667ff6b0bc70f4a636bd282423af74df62"6611},6612{6613"authoredDate": "2019-04-29T13:36:46Z",6614"authors": [6615{6616"email": "[email protected]",6617"id": "",6618"login": "",6619"name": "Gavin Howard"6620}6621],6622"committedDate": "2019-04-29T13:36:46Z",6623"messageBody": "",6624"messageHeadline": "Start building Goldschmidt",6625"oid": "fdbcd063e2eab65ca07be9f62bdd10cc965a220d"6626},6627{6628"authoredDate": "2019-04-29T13:56:04Z",6629"authors": [6630{6631"email": "[email protected]",6632"id": "",6633"login": "",6634"name": "Gavin Howard"6635}6636],6637"committedDate": "2019-04-29T13:56:04Z",6638"messageBody": "",6639"messageHeadline": "Add a useful function",6640"oid": "08f7856b38ca730b120e450dea482d0e18fd2232"6641},6642{6643"authoredDate": "2019-04-29T15:10:43Z",6644"authors": [6645{6646"email": "[email protected]",6647"id": "MDQ6VXNlcjYyNjQ1NDY=",6648"login": "stesser",6649"name": "Stefan Esser"6650}6651],6652"committedDate": "2019-04-29T15:10:43Z",6653"messageBody": "…orithm\n\nIntroduce and use a function bc_num_int_digits() that counts the number of digits\nto the left of the decimalpoint.",6654"messageHeadline": "Fix and improve the calculation of the initial value for the sqrt alg…",6655"oid": "cc7cd938dadfd8ecbaf61e79f7fba8060ff7194c"6656},6657{6658"authoredDate": "2019-04-29T16:14:21Z",6659"authors": [6660{6661"email": "[email protected]",6662"id": "",6663"login": "",6664"name": "Gavin Howard"6665}6666],6667"committedDate": "2019-04-29T16:14:21Z",6668"messageBody": "There are still some cases that fail, but this is mostly working, and I\nwould like to save my progress.",6669"messageHeadline": "Make most of divide work",6670"oid": "36ec987c22af5d7ccc3b8aef0fe9758ce85c56a0"6671},6672{6673"authoredDate": "2019-04-29T16:28:33Z",6674"authors": [6675{6676"email": "[email protected]",6677"id": "",6678"login": "",6679"name": "Gavin Howard"6680}6681],6682"committedDate": "2019-04-29T16:28:33Z",6683"messageBody": "",6684"messageHeadline": "Make divide work",6685"oid": "cef0397c810152aed4116fdc56dcf920d20eda32"6686}6687],6688"createdAt": "2019-04-29T11:21:03Z",6689"deletions": 234,6690"files": [6691{6692"path": "include/num.h",6693"additions": 71,6694"deletions": 46695},6696{6697"path": "include/status.h",6698"additions": 2,6699"deletions": 06700},6701{6702"path": "include/vm.h",6703"additions": 0,6704"deletions": 26705},6706{6707"path": "src/num.c",6708"additions": 838,6709"deletions": 2236710},6711{6712"path": "src/program.c",6713"additions": 2,6714"deletions": 26715},6716{6717"path": "tests/all.sh",6718"additions": 1,6719"deletions": 16720},6721{6722"path": "tests/bc/all.txt",6723"additions": 4,6724"deletions": 26725},6726{6727"path": "tests/bc/decimal.txt",6728"additions": 23,6729"deletions": 06730},6731{6732"path": "tests/bc/decimal_results.txt",6733"additions": 23,6734"deletions": 06735},6736{6737"path": "tests/bc/divide.txt",6738"additions": 31,6739"deletions": 06740},6741{6742"path": "tests/bc/divide_results.txt",6743"additions": 30,6744"deletions": 06745},6746{6747"path": "tests/bc/length.txt",6748"additions": 59,6749"deletions": 06750},6751{6752"path": "tests/bc/length_results.txt",6753"additions": 57,6754"deletions": 06755},6756{6757"path": "tests/bc/scale.txt",6758"additions": 56,6759"deletions": 06760},6761{6762"path": "tests/bc/scale_results.txt",6763"additions": 56,6764"deletions": 06765},6766{6767"path": "tests/bc/shift.txt",6768"additions": 5280,6769"deletions": 06770},6771{6772"path": "tests/bc/shift_results.txt",6773"additions": 5280,6774"deletions": 06775}6776],6777"fullDatabaseId": "274334078",6778"headRefName": "d9",6779"headRefOid": "914a7f66807b3567fa438c8d668a040e9d2bcc4a",6780"headRepository": {6781"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",6782"name": "bc"6783},6784"headRepositoryOwner": {6785"id": "MDQ6VXNlcjYyNjQ1NDY=",6786"name": "Stefan Eßer",6787"login": "stesser"6788},6789"id": "MDExOlB1bGxSZXF1ZXN0Mjc0MzM0MDc4",6790"isCrossRepository": true,6791"isDraft": false,6792"labels": [],6793"latestReviews": [],6794"maintainerCanModify": false,6795"mergeCommit": {6796"oid": "914a7f66807b3567fa438c8d668a040e9d2bcc4a"6797},6798"mergeStateStatus": "UNKNOWN",6799"mergeable": "UNKNOWN",6800"mergedAt": "2019-05-06T13:42:00Z",6801"mergedBy": {6802"id": "MDQ6VXNlcjMxNzI2ODc=",6803"is_bot": false,6804"login": "gavinhoward",6805"name": "Gavin D. Howard"6806},6807"milestone": null,6808"number": 18,6809"potentialMergeCommit": null,6810"projectCards": [],6811"projectItems": [],6812"reactionGroups": [],6813"reviewDecision": "",6814"reviewRequests": [],6815"reviews": [],6816"state": "MERGED",6817"statusCheckRollup": [],6818"title": "Division and modulo pass all tests",6819"updatedAt": "2019-05-06T13:42:00Z",6820"url": "https://github.com/gavinhoward/bc/pull/18"6821},6822{6823"additions": 295,6824"assignees": [],6825"author": {6826"id": "MDQ6VXNlcjYyNjQ1NDY=",6827"is_bot": false,6828"login": "stesser",6829"name": "Stefan Eßer"6830},6831"autoMergeRequest": null,6832"baseRefName": "base9",6833"baseRefOid": "e396dff5929071da830a84b64405f7a7c8e0113e",6834"body": "I'm still not sure about correct scale values and situations in which bc_num_extend must be called to prepare a BcNum that is to receive the result of an arithmetic operation. This leads to overflow for large values (the algorithm is essentially correct, but variables need to be extended in some cases).",6835"changedFiles": 4,6836"closed": true,6837"closedAt": "2019-05-06T13:42:50Z",6838"comments": [6839{6840"id": "MDEyOklzc3VlQ29tbWVudDQ4NzM5MDI1OA==",6841"author": {6842"login": "gavinhoward"6843},6844"authorAssociation": "OWNER",6845"body": "How does this new algorithm compare to Newton-Raphson performance-wise?",6846"createdAt": "2019-04-28T15:38:21Z",6847"includesCreatedEdit": false,6848"isMinimized": false,6849"minimizedReason": "",6850"reactionGroups": [],6851"url": "https://github.com/gavinhoward/bc/pull/17#issuecomment-487390258",6852"viewerDidAuthor": true6853},6854{6855"id": "MDEyOklzc3VlQ29tbWVudDQ4NzQwNzQ5NA==",6856"author": {6857"login": "gavinhoward"6858},6859"authorAssociation": "OWNER",6860"body": "Also, would it be possible for you to fix the crashes on both algorithms? The test suite crashes on both. It would also be nice if you could put them in a #if 0 #else #endif set so I can test the changes and see which one is faster. Thank you.",6861"createdAt": "2019-04-28T19:14:59Z",6862"includesCreatedEdit": false,6863"isMinimized": false,6864"minimizedReason": "",6865"reactionGroups": [],6866"url": "https://github.com/gavinhoward/bc/pull/17#issuecomment-487407494",6867"viewerDidAuthor": true6868},6869{6870"id": "MDEyOklzc3VlQ29tbWVudDQ4OTYyNTA2NA==",6871"author": {6872"login": "gavinhoward"6873},6874"authorAssociation": "OWNER",6875"body": "Closed by manually merging.",6876"createdAt": "2019-05-06T13:42:50Z",6877"includesCreatedEdit": false,6878"isMinimized": false,6879"minimizedReason": "",6880"reactionGroups": [],6881"url": "https://github.com/gavinhoward/bc/pull/17#issuecomment-489625064",6882"viewerDidAuthor": true6883}6884],6885"commits": [6886{6887"authoredDate": "2019-04-27T21:33:08Z",6888"authors": [6889{6890"email": "[email protected]",6891"id": "MDQ6VXNlcjYyNjQ1NDY=",6892"login": "stesser",6893"name": "Stefan Esser"6894}6895],6896"committedDate": "2019-04-27T21:33:08Z",6897"messageBody": "…upstream changes",6898"messageHeadline": "Updated implementation of Newton-Raphson division algorithm to match …",6899"oid": "b5aeb445a556de9d9b41a7b2d196b59bcaca90ae"6900},6901{6902"authoredDate": "2019-04-27T21:41:21Z",6903"authors": [6904{6905"email": "[email protected]",6906"id": "MDQ6VXNlcjYyNjQ1NDY=",6907"login": "stesser",6908"name": "Stefan Esser"6909}6910],6911"committedDate": "2019-04-27T21:41:21Z",6912"messageBody": "",6913"messageHeadline": "Small optimization of the division function",6914"oid": "6e129fc621b358d219036e6e4d01f572adb133ff"6915},6916{6917"authoredDate": "2019-04-27T21:43:02Z",6918"authors": [6919{6920"email": "[email protected]",6921"id": "MDQ6VXNlcjYyNjQ1NDY=",6922"login": "stesser",6923"name": "Stefan Esser"6924}6925],6926"committedDate": "2019-04-27T21:43:02Z",6927"messageBody": "",6928"messageHeadline": "Small optimization of the division function",6929"oid": "217379d6199e6bb8b586716b382731882c6096fe"6930},6931{6932"authoredDate": "2019-04-27T21:45:48Z",6933"authors": [6934{6935"email": "[email protected]",6936"id": "MDQ6VXNlcjYyNjQ1NDY=",6937"login": "stesser",6938"name": "Stefan Esser"6939}6940],6941"committedDate": "2019-04-27T21:45:48Z",6942"messageBody": "",6943"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",6944"oid": "45a56123c3c6ede3cf157419e56427a01ff48e2a"6945},6946{6947"authoredDate": "2019-04-28T10:30:47Z",6948"authors": [6949{6950"email": "[email protected]",6951"id": "MDQ6VXNlcjYyNjQ1NDY=",6952"login": "stesser",6953"name": "Stefan Esser"6954}6955],6956"committedDate": "2019-04-28T10:30:47Z",6957"messageBody": "I had missed to set scsale values in the parameters passed in by the divide\nfunction and thus got results that had 0 fractional digits.",6958"messageHeadline": "Undo change to scale calculation in bc_num_m",6959"oid": "d793fa5c3a03370627e45d5f03968039b10f34c6"6960},6961{6962"authoredDate": "2019-04-28T12:58:58Z",6963"authors": [6964{6965"email": "[email protected]",6966"id": "MDQ6VXNlcjYyNjQ1NDY=",6967"login": "stesser",6968"name": "Stefan Esser"6969}6970],6971"committedDate": "2019-04-28T12:58:58Z",6972"messageBody": "This function will be used in the division algorithm.",6973"messageHeadline": "Add function to round number to a given number of decimal places",6974"oid": "db970636e68f62f41c17c6053e5ccc242161e5a0"6975},6976{6977"authoredDate": "2019-04-28T13:50:14Z",6978"authors": [6979{6980"email": "[email protected]",6981"id": "MDQ6VXNlcjYyNjQ1NDY=",6982"login": "stesser",6983"name": "Stefan Esser"6984}6985],6986"committedDate": "2019-04-28T13:50:14Z",6987"messageBody": "I had a local change that made bc_num_invert implicily extend this variable,\nbut noticed with that change reverted that the precision of the calculation\nwas reduced to BC_BASE_POWER decimals, leading to imprecise division results.",6988"messageHeadline": "Fix division: Extend variable to required number of decimal places",6989"oid": "70997150a28b4df49639924431cb0706a403207f"6990},6991{6992"authoredDate": "2019-04-28T15:21:34Z",6993"authors": [6994{6995"email": "[email protected]",6996"id": "MDQ6VXNlcjYyNjQ1NDY=",6997"login": "stesser",6998"name": "Stefan Esser"6999}7000],7001"committedDate": "2019-04-28T15:21:34Z",7002"messageBody": "For now, keep the Newton-Raphson algorithm in an #if 0 block for reference and to\nallow to compare them in further tests.\n\nI have noticed segmentation faults when dividing very large numbers, which probably\nare due to missing calls of bc_num_extend() for destination variables of arithmetic\noperations. I'll try to fix the length calculations, but I do not know the exact\nsemantics of a number of low level calls.",7003"messageHeadline": "Replace Newton-Raphson algorithm by Goldschmidt algorithm.",7004"oid": "154b473a9c65f081d673556ce163c50754cf75de"7005},7006{7007"authoredDate": "2019-04-28T18:19:51Z",7008"authors": [7009{7010"email": "[email protected]",7011"id": "MDQ6VXNlcjYyNjQ1NDY=",7012"login": "stesser",7013"name": "Stefan Esser"7014}7015],7016"committedDate": "2019-04-28T18:19:51Z",7017"messageBody": "",7018"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",7019"oid": "307ce024f26a0433460a84ad5ad22bd3ac6f094f"7020},7021{7022"authoredDate": "2019-04-28T19:32:13Z",7023"authors": [7024{7025"email": "[email protected]",7026"id": "MDQ6VXNlcjYyNjQ1NDY=",7027"login": "stesser",7028"name": "Stefan Esser"7029}7030],7031"committedDate": "2019-04-28T19:32:13Z",7032"messageBody": "",7033"messageHeadline": "Optimize bc_num_pow10",7034"oid": "72109f49b8cd1e877c4b4252652d73f21d0ad689"7035},7036{7037"authoredDate": "2019-04-28T22:59:32Z",7038"authors": [7039{7040"email": "[email protected]",7041"id": "MDQ6VXNlcjYyNjQ1NDY=",7042"login": "stesser",7043"name": "Stefan Esser"7044}7045],7046"committedDate": "2019-04-28T22:59:32Z",7047"messageBody": "This makes bc complete the tests without crash, but with a result that\nhas too few digits printed. This will need to be debugged next ...",7048"messageHeadline": "Fix scale parameters and remove bogus bc_num_extend calls",7049"oid": "4c1e43af931618094a761dff7d1e4b0374e7576d"7050},7051{7052"authoredDate": "2019-04-29T10:56:32Z",7053"authors": [7054{7055"email": "[email protected]",7056"id": "MDQ6VXNlcjYyNjQ1NDY=",7057"login": "stesser",7058"name": "Stefan Esser"7059}7060],7061"committedDate": "2019-04-29T10:56:32Z",7062"messageBody": "Now all division and multiplication tests pass.",7063"messageHeadline": "Fix position of decimal point when dividing by a very small number.",7064"oid": "40b53d23eb92b69a9d079ead59def298cb089370"7065},7066{7067"authoredDate": "2019-04-29T11:00:23Z",7068"authors": [7069{7070"email": "[email protected]",7071"id": "MDQ6VXNlcjYyNjQ1NDY=",7072"login": "stesser",7073"name": "Stefan Esser"7074}7075],7076"committedDate": "2019-04-29T11:00:23Z",7077"messageBody": "",7078"messageHeadline": "Improve format of dumped BcNum values in debug traces",7079"oid": "33a1c689f4d5cf2026c92a954c36a50f6e772c8e"7080},7081{7082"authoredDate": "2019-04-29T12:24:31Z",7083"authors": [7084{7085"email": "[email protected]",7086"id": "MDQ6VXNlcjYyNjQ1NDY=",7087"login": "stesser",7088"name": "Stefan Esser"7089}7090],7091"committedDate": "2019-04-29T12:24:31Z",7092"messageBody": "There were 4 places where \"rdx\" had to be replaced by \"scale\".\nThis version passes all tests.",7093"messageHeadline": "Fix \"power\" operator (bc_num_p).",7094"oid": "c66e44871c84fc81a3595d21d9174082b62da1d3"7095},7096{7097"authoredDate": "2019-04-29T13:06:00Z",7098"authors": [7099{7100"email": "[email protected]",7101"id": "MDQ6VXNlcjYyNjQ1NDY=",7102"login": "stesser",7103"name": "Stefan Esser"7104}7105],7106"committedDate": "2019-04-29T13:06:00Z",7107"messageBody": "Results seem to be correct except for the number of decimals calculated and returned.\nThe tests still fail for that reason, but show results that are near to what is expected.",7108"messageHeadline": "Mostly fix the sqrt operation.",7109"oid": "627693667ff6b0bc70f4a636bd282423af74df62"7110},7111{7112"authoredDate": "2019-04-29T15:10:43Z",7113"authors": [7114{7115"email": "[email protected]",7116"id": "MDQ6VXNlcjYyNjQ1NDY=",7117"login": "stesser",7118"name": "Stefan Esser"7119}7120],7121"committedDate": "2019-04-29T15:10:43Z",7122"messageBody": "…orithm\n\nIntroduce and use a function bc_num_int_digits() that counts the number of digits\nto the left of the decimalpoint.",7123"messageHeadline": "Fix and improve the calculation of the initial value for the sqrt alg…",7124"oid": "cc7cd938dadfd8ecbaf61e79f7fba8060ff7194c"7125},7126{7127"authoredDate": "2019-04-29T18:13:51Z",7128"authors": [7129{7130"email": "[email protected]",7131"id": "MDQ6VXNlcjYyNjQ1NDY=",7132"login": "stesser",7133"name": "Stefan Esser"7134}7135],7136"committedDate": "2019-04-29T18:13:51Z",7137"messageBody": "",7138"messageHeadline": "Make more Sqrt tests work",7139"oid": "8f7c5a565c0c8cb4f674982c6fbb3174d6eaeee9"7140},7141{7142"authoredDate": "2019-04-29T18:49:15Z",7143"authors": [7144{7145"email": "[email protected]",7146"id": "MDQ6VXNlcjYyNjQ1NDY=",7147"login": "stesser",7148"name": "Stefan Esser"7149}7150],7151"committedDate": "2019-04-29T18:49:15Z",7152"messageBody": "",7153"messageHeadline": "Make all Sqrt tests work",7154"oid": "1f0f69f0d249d14270fe14a993405926a536ce05"7155},7156{7157"authoredDate": "2019-04-29T19:28:52Z",7158"authors": [7159{7160"email": "[email protected]",7161"id": "MDQ6VXNlcjYyNjQ1NDY=",7162"login": "stesser",7163"name": "Stefan Esser"7164}7165],7166"committedDate": "2019-04-29T19:28:52Z",7167"messageBody": "",7168"messageHeadline": "Apply existing style to my changes - no functional change",7169"oid": "f76f0365e272d675c73fb62dcfa09653960106fc"7170},7171{7172"authoredDate": "2019-04-29T20:10:41Z",7173"authors": [7174{7175"email": "[email protected]",7176"id": "MDQ6VXNlcjYyNjQ1NDY=",7177"login": "stesser",7178"name": "Stefan Esser"7179}7180],7181"committedDate": "2019-04-29T20:10:41Z",7182"messageBody": "",7183"messageHeadline": "Fix debug printing of BcNum variables",7184"oid": "0dea79ffb116b3395b949b18d80473af9e969ced"7185},7186{7187"authoredDate": "2019-04-30T08:47:06Z",7188"authors": [7189{7190"email": "[email protected]",7191"id": "MDQ6VXNlcjYyNjQ1NDY=",7192"login": "stesser",7193"name": "Stefan Esser"7194}7195],7196"committedDate": "2019-04-30T08:47:06Z",7197"messageBody": "…uns easier to decode",7198"messageHeadline": "Make debug printing of BcNum variables use signed values to make over…",7199"oid": "f8610b15aeed384d520d83ba66c964abd828d096"7200},7201{7202"authoredDate": "2019-04-30T09:24:44Z",7203"authors": [7204{7205"email": "[email protected]",7206"id": "MDQ6VXNlcjYyNjQ1NDY=",7207"login": "stesser",7208"name": "Stefan Esser"7209}7210],7211"committedDate": "2019-04-30T09:24:44Z",7212"messageBody": "",7213"messageHeadline": "Fix printing of numbers with obase != 10 (length of fractional part)",7214"oid": "36220832c7341fd267fdfb4010c579c5bc840a60"7215},7216{7217"authoredDate": "2019-05-02T08:43:02Z",7218"authors": [7219{7220"email": "[email protected]",7221"id": "MDQ6VXNlcjYyNjQ1NDY=",7222"login": "stesser",7223"name": "Stefan Esser"7224}7225],7226"committedDate": "2019-05-02T08:43:02Z",7227"messageBody": "",7228"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",7229"oid": "4534283defbcd20faf921666b0b32693633c3ec2"7230},7231{7232"authoredDate": "2019-05-02T08:43:21Z",7233"authors": [7234{7235"email": "[email protected]",7236"id": "MDQ6VXNlcjYyNjQ1NDY=",7237"login": "stesser",7238"name": "Stefan Esser"7239}7240],7241"committedDate": "2019-05-02T08:43:21Z",7242"messageBody": "…results.\n\nThe implementation can be changed back to a macro that accesses the array\nwithout any further computation, if the function should take non-negligible\ntime. But the function will be inlined or optimized away in most cases and\nthus should not have a significant impact on the run-time ...",7243"messageHeadline": "Revert bc_num_pow10 to a function instead of an array that holds the …",7244"oid": "6167e2231df4f606278ca414931612a0e7d595e1"7245},7246{7247"authoredDate": "2019-05-02T08:56:01Z",7248"authors": [7249{7250"email": "[email protected]",7251"id": "MDQ6VXNlcjYyNjQ1NDY=",7252"login": "stesser",7253"name": "Stefan Esser"7254}7255],7256"committedDate": "2019-05-02T08:56:01Z",7257"messageBody": "",7258"messageHeadline": "Add back the forward declaration of bc_num_pow10.",7259"oid": "5b2af58b477230aea07d7f69d401390d500b5a75"7260},7261{7262"authoredDate": "2019-05-02T11:38:00Z",7263"authors": [7264{7265"email": "[email protected]",7266"id": "MDQ6VXNlcjYyNjQ1NDY=",7267"login": "stesser",7268"name": "Stefan Esser"7269}7270],7271"committedDate": "2019-05-02T11:38:00Z",7272"messageBody": "",7273"messageHeadline": "Allow to pass BC_BASE_POWER on the compiler command line",7274"oid": "4d90ccff6ac554b33b5832d79bca935cb8d03fc3"7275},7276{7277"authoredDate": "2019-05-04T07:12:09Z",7278"authors": [7279{7280"email": "[email protected]",7281"id": "MDQ6VXNlcjYyNjQ1NDY=",7282"login": "stesser",7283"name": "Stefan Esser"7284}7285],7286"committedDate": "2019-05-04T07:12:09Z",7287"messageBody": "",7288"messageHeadline": "Fix decoding of BcNum in debug print function",7289"oid": "f28be31518134f169a64d4a8104414c335b5c947"7290},7291{7292"authoredDate": "2019-05-04T07:14:02Z",7293"authors": [7294{7295"email": "[email protected]",7296"id": "MDQ6VXNlcjYyNjQ1NDY=",7297"login": "stesser",7298"name": "Stefan Esser"7299}7300],7301"committedDate": "2019-05-04T07:14:02Z",7302"messageBody": "",7303"messageHeadline": "Fix merge errors in idivision based on Goldschmidt algorithm",7304"oid": "10bca1171455d813a70b60a6bb05538b40831c1a"7305},7306{7307"authoredDate": "2019-05-04T07:24:27Z",7308"authors": [7309{7310"email": "[email protected]",7311"id": "MDQ6VXNlcjYyNjQ1NDY=",7312"login": "stesser",7313"name": "Stefan Esser"7314}7315],7316"committedDate": "2019-05-04T07:24:27Z",7317"messageBody": "\"shift\" operations are used within all arithmetic operations\n\"print\" is a pre-requisite of generating the results file for the \"parse\" test",7318"messageHeadline": "Change order of tests to first test features that later tests depend on",7319"oid": "f213e28e1a70e1ca581f9d137a1498dedcf97095"7320},7321{7322"authoredDate": "2019-05-04T13:58:41Z",7323"authors": [7324{7325"email": "[email protected]",7326"id": "MDQ6VXNlcjYyNjQ1NDY=",7327"login": "stesser",7328"name": "Stefan Esser"7329}7330],7331"committedDate": "2019-05-04T13:58:41Z",7332"messageBody": "…compiler warning",7333"messageHeadline": "Change type of variables in debug print function to int to silence a …",7334"oid": "013aeffa913df9dd96eec9c2dacfb64c9e766868"7335},7336{7337"authoredDate": "2019-05-04T14:19:12Z",7338"authors": [7339{7340"email": "[email protected]",7341"id": "MDQ6VXNlcjYyNjQ1NDY=",7342"login": "stesser",7343"name": "Stefan Esser"7344}7345],7346"committedDate": "2019-05-04T14:19:12Z",7347"messageBody": "The correction is derived from the difference of the input parameter times it inverse.\nThis value could be used for a final Newton-Raphson step (at the cost of an additional\nmultiplication), but since we can assume that the input\tparameter was very near\tto 1.0,\nthe multiplication would only add non-zero digits beyond the current scale range.\n\nThe Goldschmidt\talgorithm is an\tinfinite series\tof ever smaller positive values\tand\nif the series is cut off at some point,\tthe result is known to be exact\tor smaller\nthan the exact value.\n\nThe correction applied is meant\tto compensate for the neglected\tseries elements.\nIf it is found that there are boundary cases where we over-compensate, then the\nNewton-Raphson step could be used to apply a slightly smaller correction.",7348"messageHeadline": "Add correction to result of Goldschmidt\talgorithm",7349"oid": "85f59a665e6b20380accdb7c9f5fbca0d39d693b"7350},7351{7352"authoredDate": "2019-05-04T14:24:40Z",7353"authors": [7354{7355"email": "[email protected]",7356"id": "MDQ6VXNlcjYyNjQ1NDY=",7357"login": "stesser",7358"name": "Stefan Esser"7359}7360],7361"committedDate": "2019-05-04T14:24:40Z",7362"messageBody": "After a correction is applied to the returned reciprocal to account for the finite\nnumber of elements used in teh Goldschmidt algorithm, the result should be correct\nwithout the final rounding step.\n\nWhile here also remove the assignment of 1 to a variable that is not used for the\nspecific case anymore, anyway ...",7363"messageHeadline": "Adapt division algorithm to use the updated bc_num_invert()",7364"oid": "7e21b3cca2b93e7d5509e05dbf3d2076dcffa74d"7365},7366{7367"authoredDate": "2019-05-04T15:01:21Z",7368"authors": [7369{7370"email": "[email protected]",7371"id": "MDQ6VXNlcjYyNjQ1NDY=",7372"login": "stesser",7373"name": "Stefan Esser"7374}7375],7376"committedDate": "2019-05-04T15:01:21Z",7377"messageBody": "",7378"messageHeadline": "Fix width of value printed for base > 17",7379"oid": "017f0c843a3439651ce310cdb6ffc90cc09f6203"7380},7381{7382"authoredDate": "2019-05-04T15:05:12Z",7383"authors": [7384{7385"email": "[email protected]",7386"id": "MDQ6VXNlcjYyNjQ1NDY=",7387"login": "stesser",7388"name": "Stefan Esser"7389}7390],7391"committedDate": "2019-05-04T15:05:12Z",7392"messageBody": "",7393"messageHeadline": "Fix printing of fractional parts for obase > 10",7394"oid": "1a503e62ff9e642740577f8df68e439a1b9e1d10"7395},7396{7397"authoredDate": "2019-05-04T16:02:15Z",7398"authors": [7399{7400"email": "[email protected]",7401"id": "MDQ6VXNlcjYyNjQ1NDY=",7402"login": "stesser",7403"name": "Stefan Esser"7404}7405],7406"committedDate": "2019-05-04T16:02:15Z",7407"messageBody": "It has been found to be too low e.g. when calculating l(256)/l(16) with scale=40.\nThe result is exact with this increased correction applied.",7408"messageHeadline": "Double correction value applied in bc_num_invert()",7409"oid": "b9db23ba3b452798cc5b4ded0125565e5940f3e3"7410},7411{7412"authoredDate": "2019-05-04T18:12:43Z",7413"authors": [7414{7415"email": "[email protected]",7416"id": "MDQ6VXNlcjYyNjQ1NDY=",7417"login": "stesser",7418"name": "Stefan Esser"7419}7420],7421"committedDate": "2019-05-04T18:12:43Z",7422"messageBody": "The locations with these markers should be checked, although the tests seem to\nsucceed wíthiut them.\n\nCurrently test succeed until \"reference.bc2\", which returns zeroes for some of\nthe test arrays. But these marked locations are probably not related to that\ntest failing.",7423"messageHeadline": "Mark a few places where changes might be required with // <se>",7424"oid": "276de8c876ba72f1357dd0ce7cc1ef403902cedf"7425},7426{7427"authoredDate": "2019-05-04T21:48:51Z",7428"authors": [7429{7430"email": "[email protected]",7431"id": "MDQ6VXNlcjYyNjQ1NDY=",7432"login": "stesser",7433"name": "Stefan Esser"7434}7435],7436"committedDate": "2019-05-04T21:48:51Z",7437"messageBody": "This change has been performed due to a source code analysis.\nNo tests failed with the old code (i.e., no test covered this case).",7438"messageHeadline": "Fix length parameter which obviously should be scale not rdx",7439"oid": "e6bd86bdb390d0a74b31aabdde56d5824f38741c"7440},7441{7442"authoredDate": "2019-05-04T21:50:38Z",7443"authors": [7444{7445"email": "[email protected]",7446"id": "MDQ6VXNlcjYyNjQ1NDY=",7447"login": "stesser",7448"name": "Stefan Esser"7449}7450],7451"committedDate": "2019-05-04T21:50:38Z",7452"messageBody": "",7453"messageHeadline": "Add comments to the division based on the Goldschmidt algorithm",7454"oid": "28ffb91991cb5ca2c8687de2ff355161088d5997"7455},7456{7457"authoredDate": "2019-05-05T19:54:54Z",7458"authors": [7459{7460"email": "[email protected]",7461"id": "MDQ6VXNlcjYyNjQ1NDY=",7462"login": "stesser",7463"name": "Stefan Esser"7464}7465],7466"committedDate": "2019-05-05T19:54:54Z",7467"messageBody": "… crashing\n\nThe cut-off value is arbitrary, a significantly lower limit could be applied.",7468"messageHeadline": "Make shiftLeft return an error for too large shift amounts instead of…",7469"oid": "e274dbe523657c7bfc4228ddbf2e6dfbbca36059"7470},7471{7472"authoredDate": "2019-05-05T20:00:21Z",7473"authors": [7474{7475"email": "[email protected]",7476"id": "MDQ6VXNlcjYyNjQ1NDY=",7477"login": "stesser",7478"name": "Stefan Esser"7479}7480],7481"committedDate": "2019-05-05T20:00:21Z",7482"messageBody": "The Goldschmidt algorithm needs larger arguments than supported by the\narray.\n\nA larger array could be used, but a disassembly showed, that the array\naccess was converted to an inlined and rolled out chain of comparisons\nand assignments.",7483"messageHeadline": "Optimize bc_num_pow10() and remove the unused bc_num_pow10 array",7484"oid": "914a7f66807b3567fa438c8d668a040e9d2bcc4a"7485}7486],7487"createdAt": "2019-04-28T15:29:42Z",7488"deletions": 63,7489"files": [7490{7491"path": "include/num.h",7492"additions": 33,7493"deletions": 137494},7495{7496"path": "src/data.c",7497"additions": 0,7498"deletions": 197499},7500{7501"path": "src/num.c",7502"additions": 260,7503"deletions": 297504},7505{7506"path": "tests/bc/all.txt",7507"additions": 2,7508"deletions": 27509}7510],7511"fullDatabaseId": "274187961",7512"headRefName": "d9",7513"headRefOid": "914a7f66807b3567fa438c8d668a040e9d2bcc4a",7514"headRepository": {7515"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",7516"name": "bc"7517},7518"headRepositoryOwner": {7519"id": "MDQ6VXNlcjYyNjQ1NDY=",7520"name": "Stefan Eßer",7521"login": "stesser"7522},7523"id": "MDExOlB1bGxSZXF1ZXN0Mjc0MTg3OTYx",7524"isCrossRepository": true,7525"isDraft": false,7526"labels": [],7527"latestReviews": [],7528"maintainerCanModify": false,7529"mergeCommit": null,7530"mergeStateStatus": "DIRTY",7531"mergeable": "CONFLICTING",7532"mergedAt": null,7533"mergedBy": null,7534"milestone": null,7535"number": 17,7536"potentialMergeCommit": null,7537"projectCards": [],7538"projectItems": [],7539"reactionGroups": [],7540"reviewDecision": "",7541"reviewRequests": [],7542"reviews": [],7543"state": "CLOSED",7544"statusCheckRollup": [],7545"title": "Implementation of an alternate algorithm for reciprocal values",7546"updatedAt": "2019-05-06T13:42:51Z",7547"url": "https://github.com/gavinhoward/bc/pull/17"7548},7549{7550"additions": 147,7551"assignees": [],7552"author": {7553"id": "MDQ6VXNlcjYyNjQ1NDY=",7554"is_bot": false,7555"login": "stesser",7556"name": "Stefan Eßer"7557},7558"autoMergeRequest": null,7559"baseRefName": "base9",7560"baseRefOid": "c25fd61637390cc993c91258dda2c01404b37147",7561"body": "The code is not cleaned up, but since you said your are waiting for it ...",7562"changedFiles": 1,7563"closed": true,7564"closedAt": "2019-04-27T12:40:59Z",7565"comments": [7566{7567"id": "MDEyOklzc3VlQ29tbWVudDQ4NzI4Mjk1Ng==",7568"author": {7569"login": "gavinhoward"7570},7571"authorAssociation": "OWNER",7572"body": "Merged. Will get to work on it now.",7573"createdAt": "2019-04-27T12:41:09Z",7574"includesCreatedEdit": false,7575"isMinimized": false,7576"minimizedReason": "",7577"reactionGroups": [],7578"url": "https://github.com/gavinhoward/bc/pull/16#issuecomment-487282956",7579"viewerDidAuthor": true7580}7581],7582"commits": [7583{7584"authoredDate": "2019-04-26T23:29:01Z",7585"authors": [7586{7587"email": "[email protected]",7588"id": "MDQ6VXNlcjYyNjQ1NDY=",7589"login": "stesser",7590"name": "Stefan Esser"7591}7592],7593"committedDate": "2019-04-26T23:29:01Z",7594"messageBody": "",7595"messageHeadline": "Iterative division based on Newton Raphson algorithm",7596"oid": "193f8529ad93306e39914ca7a2aa877669383f6f"7597},7598{7599"authoredDate": "2019-04-27T07:16:26Z",7600"authors": [7601{7602"email": "[email protected]",7603"id": "MDQ6VXNlcjYyNjQ1NDY=",7604"login": "stesser",7605"name": "Stefan Esser"7606}7607],7608"committedDate": "2019-04-27T07:16:26Z",7609"messageBody": "",7610"messageHeadline": "Merge branch 'base9' of https://github.com/gavinhoward/bc into d9",7611"oid": "87c27b5715646eb4deec4a6795c17b4c5facc408"7612},7613{7614"authoredDate": "2019-04-27T08:39:00Z",7615"authors": [7616{7617"email": "[email protected]",7618"id": "MDQ6VXNlcjYyNjQ1NDY=",7619"login": "stesser",7620"name": "Stefan Esser"7621}7622],7623"committedDate": "2019-04-27T08:39:00Z",7624"messageBody": "",7625"messageHeadline": "Fix mismerge regarding nBcDig vs. places",7626"oid": "70f118574077b6e61cae08bd576ca7fccc167786"7627},7628{7629"authoredDate": "2019-04-27T08:40:14Z",7630"authors": [7631{7632"email": "[email protected]",7633"id": "MDQ6VXNlcjYyNjQ1NDY=",7634"login": "stesser",7635"name": "Stefan Esser"7636}7637],7638"committedDate": "2019-04-27T08:40:14Z",7639"messageBody": "…e current rdx",7640"messageHeadline": "Fix segmentation fault that occurs if the target rdx is lower than th…",7641"oid": "6189d95036f123d48d505bf4d4a49ba11ca30aee"7642},7643{7644"authoredDate": "2019-04-27T08:42:00Z",7645"authors": [7646{7647"email": "[email protected]",7648"id": "MDQ6VXNlcjYyNjQ1NDY=",7649"login": "stesser",7650"name": "Stefan Esser"7651}7652],7653"committedDate": "2019-04-27T08:42:00Z",7654"messageBody": "",7655"messageHeadline": "Add simple debug print macro",7656"oid": "cdda6e99974b8f9551ad1bc184b3c735afac6f4a"7657},7658{7659"authoredDate": "2019-04-27T11:47:09Z",7660"authors": [7661{7662"email": "[email protected]",7663"id": "",7664"login": "",7665"name": "Charlie Root"7666}7667],7668"committedDate": "2019-04-27T11:47:09Z",7669"messageBody": "",7670"messageHeadline": "Fix calculation of scale in multiplications",7671"oid": "ac244bdb3ebe6e6a2693f3d5c2ae13d7723b3517"7672}7673],7674"createdAt": "2019-04-26T23:33:21Z",7675"deletions": 63,7676"files": [7677{7678"path": "src/num.c",7679"additions": 147,7680"deletions": 637681}7682],7683"fullDatabaseId": "274063201",7684"headRefName": "d9",7685"headRefOid": "ac244bdb3ebe6e6a2693f3d5c2ae13d7723b3517",7686"headRepository": {7687"id": "MDEwOlJlcG9zaXRvcnkxODAzNzI3NzY=",7688"name": "bc"7689},7690"headRepositoryOwner": {7691"id": "MDQ6VXNlcjYyNjQ1NDY=",7692"name": "Stefan Eßer",7693"login": "stesser"7694},7695"id": "MDExOlB1bGxSZXF1ZXN0Mjc0MDYzMjAx",7696"isCrossRepository": true,7697"isDraft": false,7698"labels": [],7699"latestReviews": [],7700"maintainerCanModify": false,7701"mergeCommit": {7702"oid": "769fcbed7a3a0005a60254c0ed5203406b533ae3"7703},7704"mergeStateStatus": "DIRTY",7705"mergeable": "CONFLICTING",7706"mergedAt": "2019-04-27T12:40:59Z",7707"mergedBy": {7708"id": "MDQ6VXNlcjMxNzI2ODc=",7709"is_bot": false,7710"login": "gavinhoward",7711"name": "Gavin D. Howard"7712},7713"milestone": null,7714"number": 16,7715"potentialMergeCommit": null,7716"projectCards": [],7717"projectItems": [],7718"reactionGroups": [],7719"reviewDecision": "",7720"reviewRequests": [],7721"reviews": [],7722"state": "MERGED",7723"statusCheckRollup": [],7724"title": "Newton-Raphson based division",7725"updatedAt": "2019-04-27T12:41:09Z",7726"url": "https://github.com/gavinhoward/bc/pull/16"7727}7728]772977307731