From 7d4dbea4ae0bc4381a31d08466ad834f7ef77bd8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 18 Sep 2018 22:51:17 -0700 Subject: [PATCH] Updated instructions. Updated status. Improved counting of linewraps. Hard-coded the number of linewraps for the font resource stored in the noodle. The batch file is incapable of even partially counting the length of a line longer than 8 kiB. --- batch tests/measure.txt | 24 +-- documentation/instructions | 18 +-- documentation/instructions.pdf | Bin 4334953 -> 4335188 bytes draft/done issues.txt | 23 +++ draft/issues.txt | 280 ++++++++++++++++++++++++++++++--- 5 files changed, 308 insertions(+), 37 deletions(-) diff --git a/batch tests/measure.txt b/batch tests/measure.txt index 7f60d8c..f8c5d78 100644 --- a/batch tests/measure.txt +++ b/batch tests/measure.txt @@ -2,7 +2,7 @@ @setlocal -@rem Copyright 2017 by Jasper Paulsen. +@rem Copyright 2017-2018 by Jasper Paulsen. @rem This batch script contains snippets of code from @rem Tim Hill's book on Windows NT Shell Scripting, @rem which is copyright 1998 by New Riders Publishing. @@ -112,9 +112,12 @@ @goto :EOF @rem Add up number of wraps needed to make code less than 81 characters wide. +@rem The special case is for the noodle's osmosian font resource. +@rem That line of code is too big to be passed to the subroutine. :COUNT_WRAPS @setlocal EnableDelayedExpansion @set /a WRAPS_IN_FILE=0 +@if "%~n1" equ "the noodle" @set /a WRAPS_IN_FILE=797 @for /F "usebackq delims=<>" %%I in (%1) do @( @set "STR={%%I:"=}" @call :COUNT_WRAPS_IN_LINE "!STR:"=!" @@ -131,21 +134,24 @@ @if "!STR:~89,1!" equ "" @goto :DONE_COUNT_WRAPS_IN_LINE @set WRAPS=1 @if "!STR:~169,1!" equ "" @goto :DONE_COUNT_WRAPS_IN_LINE -@set WRAPS=102 -@if "!STR:~8169,1!" neq "" @goto :MAX_COUNT_WRAPS_IN_LINE +@set WRAPS=2 +@if "!STR:~249,1!" equ "" @goto :DONE_COUNT_WRAPS_IN_LINE +@set WRAPS=3 +@if "!STR:~329,1!" equ "" @goto :DONE_COUNT_WRAPS_IN_LINE +@set WRAPS=4 +@if "!STR:~409,1!" equ "" @goto :DONE_COUNT_WRAPS_IN_LINE @set WRAPS=0 @set LEN=0 @for %%N in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do @( - if "!STR:~%%N,1!" neq "" ( - set /a "LEN+=%%N" - set "STR=!STR:~%%N!" - ) -) + if "!STR:~%%N,1!" neq "" ( + set /a "LEN+=%%N" + set "STR=!STR:~%%N!" + ) + ) @set /a LEN-=9 @set /a WRAPS = !LEN! / 80 @set /a LEN+=1 @goto :DONE_COUNT_WRAPS_IN_LINE -:MAX_WRAPS_IN_LINE :DONE_COUNT_WRAPS_IN_LINE @endlocal & set RET=%WRAPS% @goto :EOF diff --git a/documentation/instructions b/documentation/instructions index 3fb289c..a250794 100644 --- a/documentation/instructions +++ b/documentation/instructions @@ -45,7 +45,7 @@ ream cal-3024 "" "I am the CAL-4016. My primary function is to compile Plain English text files" "into executable programs compatible with the Windows operating system." - "My code — just 38,000 lines of Plain English — is surprisingly broad in scope." + "My code — just 40,000 lines of Plain English — is surprisingly broad in scope." "" "The ""noodle"" subfolder is my frontal lobe, which goes with me wherever I go." "You can use (or omit) the other subfolders and files, depending on what kind of program you want to write." @@ -58,7 +58,7 @@ ream cal-3024 " (9) the compiler, mentioned above" "The ""turtle"" subfolder has routines for drawing turtle graphics." "" - "I am capable of replication and can recompile myself in under five seconds. Which is less time than it takes Microsoft Word just to start up." + "I am capable of replication and can recompile myself in under seven seconds. Which is less time than it takes Microsoft Word just to start up." "" "INSTALLATION" "" @@ -913,9 +913,9 @@ ream cal-3024 " Call ""ole32.dll"" ""CoInitializeEx""" " with 0 and 2 [coinit_aparthreaded]." "" - "to multiply a ratio by a number:" - " multiply the ratio's numerator by the number." - " reduce the ratio." + "to multiply a pair by another pair:" + " multiply the pair's x by the other pair's x." + " multiply the pair's y by the other pair's y." "" "to negate a number:" " intel $8B8508000000. \ mov eax,[ebp+8] \ the number" @@ -1003,7 +1003,7 @@ ream cal-3024 end rectangle 0 0 0 -1 0 0 6840 7740 8280 8100 90 text -1 0 0 -1 0 0 6960 7740 8160 8100 0 "" "Arial" 360 "right" 0 0 0 yes - "5407:1" + "5622:1" end rectangle 0 0 0 -1 0 0 9810 10500 10080 10770 90 rectangle 0 0 0 -1 0 0 9810 8370 10080 10500 90 @@ -7031,7 +7031,7 @@ ream cal-3024 "DECISIONS I KNOW HOW TO MAKE" "" "I like deciders because they make me smarter. In fact, I collect them. " - "Right now I have 182 deciders in my noodle subfolder." + "Right now I have 279 deciders in my noodle subfolder." "By the time you read this, I'm sure there will be many more." "Here is a sampling of the operational phrases:" "" @@ -9165,7 +9165,7 @@ ream cal-3024 "" "I like tests because they encourage you to tell me how to do new things," "because you can check whether I still know how to do old things." - "So I collect tests. Right now I have 64 tests in my noodle." + "So I collect tests. Right now I have 256 tests in my noodle subfolder." "" "" "" @@ -9296,7 +9296,7 @@ ream cal-3024 end rectangle 0 0 0 -1 0 0 6840 3870 8280 4230 90 text -1 0 0 -1 0 0 6960 3870 8160 4230 0 "" "Arial" 360 "right" 0 0 0 yes - "9938:1" + "10196:1" end rectangle 0 0 0 -1 0 0 9810 6796 10080 7066 90 rectangle 0 0 0 -1 0 0 9810 4500 10080 6796 90 diff --git a/documentation/instructions.pdf b/documentation/instructions.pdf index 2bb833fa677e919816f66d8e1cbfd76218a06440..62b4810b0269fe406ffc0c7627119ff39c9c9084 100644 GIT binary patch delta 8028 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 H!l(ZWf$nn- diff --git a/draft/done issues.txt b/draft/done issues.txt index 012cc94..ea7769a 100644 --- a/draft/done issues.txt +++ b/draft/done issues.txt @@ -2009,3 +2009,26 @@ with an adjustable slider between them. Demoing difficulty: Not applicable. Testing difficulty: Easy. Requested by Jasper Paulsen on September 12, 2017. + +329. In measure.bat, include special cases + for known long lines' linewrap counts. + Status: Demonstrated. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Easy. + Demoing difficulty: Easy. + Testing difficulty: Not applicable. + Requested by Jasper Paulsen on September 17, 2018. + +336. In the compiler, make function bodies correspond to + the first function header instead of the last function header. + This would help keep the bodies of related functions together, + and make it easier to find other functions related to + the text used in the body of a function. + Status: Won't do. It is not a source code compatible change. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Medium. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 18, 2018. diff --git a/draft/issues.txt b/draft/issues.txt index a069e72..9ef5771 100644 --- a/draft/issues.txt +++ b/draft/issues.txt @@ -46,23 +46,6 @@ The following requests have been partially demonstrated. The following requests are roughly sorted from higher priority to lower priority. -282. Cache large numbers that have been checked for primality. - Store them as a sorted linked list of numeric ranges. - When a number that is adjacent to an existing range - is inserted into the cache, modify the existing range. - When a number that is adjacent to two existing ranges - is inserted into the cache, combine the existing ranges. - This cache can be used to quickly identify large - non-prime numbers that have already been checked for primality. - In finalize after run, destroy the cache. - Status: Designed. - Audience: Programmers. - Benefit: Minor. - Implementation difficulty: Medium. - Demoing difficulty: Hard. - Testing difficulty: Already done. - Requested by Jasper Paulsen on June 29, 2017. - 279. In the editor, allow counting the characters in a multi-line selection. Status: Request. @@ -70,9 +53,54 @@ from higher priority to lower priority. Audience: Programmers who play code golf. Implementation difficulty: Hard. Demoing difficulty: Easy. - Testing difficulty: Hard. + Testing difficulty: Medium. Requested by Jasper Paulsen on June 27, 2017. +312. Store 64-bit signed integers, in Windows' format. + Status: Designed. + Audience: Programmers. + Benefit. Medium. First step toward performance profiling. + Implementation difficulty: Easy. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +313. Negate 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Medium. Second step toward performance profiling. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +314. Add 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Medium. Third step toward performance profiling. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +315. Subtract 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Medium. Fourth step toward performance profiling. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +318. Convert from 64-bit signed integers to 32-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Medium. Fifth step toward performance profiling. + Implementation difficulty: Medium. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + 179. Use more precise and accurate timing ticks. Status: request. Audience: Programmers. @@ -166,6 +194,54 @@ from higher priority to lower priority. Testing difficulty: Profound. Requested by Gerry Rzeppa on March 7, 2014. +334. Document how to run measure.bat and test.bat . + Status: Request. + Audience: Programmers. + Benefit: Medium. + Implementation difficulty: Hard. + Demoing difficulty: Easy. + Testing difficulty: Not applicable. + Requested by Jasper Paulsen on September 15, 2018. + +331. At desktop startup, determine which edge the taskbar is on. + Status: Request. + Audience: Application users. + Benefit: Medium. + Implementation difficulty: Hard. + Demoing difficulty: Hard. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 17, 2018. + +332. At desktop startup, determine size of taskbar. + Status: Request. + Audience: Application users. + Benefit: Medium. + Implementation difficulty: Hard. + Demoing difficulty: Hard. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 17, 2018. + +333. At desktop startup, adjust size and position of half-screens + to accommodate taskbar. + Status: Request. + Audience: Application users. + Benefit: Medium. + Implementation difficulty: Hard. + Demoing difficulty: Hard. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 17, 2018. + +337. The status's test results use a small font when viewed + in the writer, when the writer is in reduced mode. + Fix the bug. + Status: Request. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Medium. + Demoing difficulty: Easy. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 18, 2018. + 035. Indent the contents of loops. Pretty print loops so that the row(s) after Loop: and before Repeat are indented twice as much as the Loop: statement. @@ -190,6 +266,19 @@ from higher priority to lower priority. Testing difficulty: Medium. Requested by Gerry Rzeppa on April 30, 2017. +335. When sorting code blocks, sort functions + by last function header instead of by first function header. + This would help keep the bodies of related functions together, + and make it easier to find other functions related to + the text used in the body of a function. + Status: Request. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Medium. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 18, 2018. + 252. Document how to find lines of code based on memory addresses. If a program crashes, and if a program like WinCrashReport is installed, it is possible to view the stack. @@ -275,6 +364,33 @@ from higher priority to lower priority. The audience is programmers. Requested by Jasper Paulsen on March 7, 2014. +330. In measure.bat, correctly count linewrap counts. + Status: Request. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Hard. + Demoing difficulty: Easy. + Testing difficulty: Not applicable. + Requested by Jasper Paulsen on September 17, 2018. + +338. Count test cases in the noodle subfolder. + Status: Request. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 18, 2018. + +339. Count deciders in the noodle subfolder. + Status: Request. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 18, 2018. + 133. Allow marking comments in the vertical scroll bar. Benefit: Medium. Would make it easier to find major section breaks in source code by scrolling. @@ -312,6 +428,115 @@ from higher priority to lower priority. Audience: Windows and Linux programmers. Requested by Jasper Paulsen on September 16, 2018. +316. Multiply 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +317. Divide 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +319. Store ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Easy. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on September 17, 2018. + +320. Invert ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Easy. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on September 17, 2018. + +321. Negate ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Easy. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on September 17, 2018. + +322. Add ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 17, 2018. + +323. Subtract ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 17, 2018. + +324. Multiply ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 17, 2018. + +325. Divide ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Hard. + Demoing difficulty: Medium. + Testing difficulty: Medium. + Requested by Jasper Paulsen on September 17, 2018. + +326. Convert from ratios of 64-bit signed integers + to ratios of 32-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Medium. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +327. Convert from ratios of 64-bit signed integers to mixios. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Medium. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + +328. Convert from mixios to ratios of 64-bit signed integers. + Status: Request. + Audience: Programmers. + Benefit. Minor. + Implementation difficulty: Medium. + Demoing difficulty: Medium. + Testing difficulty: Easy. + Requested by Jasper Paulsen on October 22, 2017. + 306. Measure color differences using the dE-2000 formula. http://www.colorwiki.com/wiki/Delta_E:_The_Color_Difference http://www.ece.rochester.edu/~gsharma/ciede2000/ciede2000noteCRNA.pdf @@ -345,6 +570,23 @@ from higher priority to lower priority. Testing difficulty: Hard. Requested by Jasper Paulsen on May 22, 2017. +282. Cache large numbers that have been checked for primality. + Store them as a sorted linked list of numeric ranges. + When a number that is adjacent to an existing range + is inserted into the cache, modify the existing range. + When a number that is adjacent to two existing ranges + is inserted into the cache, combine the existing ranges. + This cache can be used to quickly identify large + non-prime numbers that have already been checked for primality. + In finalize after run, destroy the cache. + Status: Designed. + Audience: Programmers. + Benefit: Minor. + Implementation difficulty: Medium. + Demoing difficulty: Hard. + Testing difficulty: Already done. + Requested by Jasper Paulsen on June 29, 2017. + 024. Make it easy to search all files in a project, regardless of whether the file is open in the editor. If the the search item finds files that are not open yet, @@ -750,5 +992,5 @@ while a letter's menu is visible. \ ====================================== Unsorted requests: -Next item number: 312. +Next item number: 340.