AcornHTTP (AcornSSL?) zero pain issue
Rick Murray (539) 13850 posts |
Example fetcher program (hastily thrown together): REM >FetchTest ON ERROR PRINT REPORT$+" at "+STR$(ERL) : END PRINT "Choose host:" PRINT " 1 . . . heyrick.eu (default)" PRINT " 2 . . . <a href="http://www.mangareader.net">www.mangareader.net</a>" PRINT " 3 . . . <a href="http://www.riscosopen.org">www.riscosopen.org</a>" PRINT " 4 . . . <a href="http://www.google.com">www.google.com</a>" h% = GET host$ = "heyrick.eu" : tail$ = "index.html" IF (h% = 50) THEN host$ = "www.mangareader.net" : tail$ = "" IF (h% = 51) THEN host$ = "www.riscosopen.org" : tail$ = "content/" IF (h% = 52) THEN host$ = "www.google.com" : tail$ = "" PRINT PRINT "Connecting to "+host$ buffersize% = 256 DIM buffer% buffersize% HAVE_USERAGENT% = 1 HAVE_BLOCKLEN% = 2 HTTP_GET% = 1 + (2<<8) : REM 2<<8 is a magic value that means "include headers" DIM additional% 32 $additional% = "Host: " + host$ + CHR$(13) + CHR$(10) + CHR$(0) addlen% = LEN( $additional% ) + 1 : REM Because it counts to the <13> SYS "URL_Register" TO , session% SYS "URL_GetURL", %11, session%, HTTP_GET%, "https://" + host$ + "/" + tail$, additional%, addle , "" TO procstatus% REPEAT SYS "URL_ReadData", 0, session%, buffer%, buffersize% TO readstatus%,,,, bytesread%, bytestota SYS "URL_Status", 0, session% TO status%,,reply% IF ((reply% <> 0) AND (reply% <> 200)) THEN PRINT "Unexpected server response "+STR$(reply%)+", aborting." PROCdumpbuffer(bytesread%) SYS "URL_Deregister",, session% END ENDIF IF ( status% AND 16 ) THEN IF (bytesread% > 0) THEN PROCdumpbuffer(bytesread%) ENDIF ENDIF UNTIL status% = 32 PRINT SYS "URL_Deregister",, session% END DEFPROCdumpbuffer(size%) FOR l% = 0 TO (size% - 1) b% = buffer%?l% IF ( (b% < 32) OR (b% = 127) ) THEN IF ( (b% <> 10) AND (b% <> 13) ) THEN b% = 46 ENDIF IF (b% <> 13) THEN PRINT CHR$(b%); IF (b% = 10) THEN PRINT CHR$(13); NEXT ENDPROC On a high vector build with ZeroPain disabled, fetching heyrick.eu works. It takes a short while, to the point where data would be returned. Then one gets: Internal error: abort on data transfer at &2047B3A0 at 290 Interestingly, if you omit Here is the Debugger exception dump. Some of it is stale data, File_ReadLineMunged is from Manga (what I was originally testing to check for ZPP issues). Error block: 80000002 Internal error: abort on data transfer at &2047B3A0 R0 = fa207ddc R1 = 00000000 R2 = 20538c08 R3 = 00000000 R4 = 206cb874 R5 = 206cb8d4 R6 = 20493224 R7 = 00000000 R8 = 206cb92a R9 = 204940dc R10 = fa20021c R11 = fa207df4 R12 = fa207df8 R13 = fa207ddc R14 = 2047b500 R15 = 2047b3a0 CPSR = 60000113 R13_usr = 00407fc8 R14_usr = fc1b0c00 R13_svc = fa207ddc R14_svc = 2047b500 SPSR_svc = 20000113 R13_irq = fa102000 R14_irq = a0000113 SPSR_irq = a0000113 R13_abt = fa301fa8 R14_abt = 2047b3a0 SPSR_abt = 60000113 R13_und = fa402000 R14_und = fc167ae4 SPSR_und = 20000113 OSMem16: 2 = fa100000, 00002000, 00002000 OSMem16: 5 = fa200000, 00008000, 00008000 OSMem16: 8 = fa300000, 00002000, 00002000 OSMem16: 11 = fa400000, 00002000, 00002000 Memory: fa100000 - fa102000 Memory: fa200000 - fa208000 Memory: fa300000 - fa302000 Memory: fa400000 - fa402000 Memory: ffff0108 - ffff010c OSRSI6: 69 = ffff0108 R15 = 2047b3a0 = AcornHTTP +8ec R14_svc = 2047b500 = AcornHTTP +a4c Function call to 2047b398 = AcornHTTP +8e4 SVC stack: fa207ddc : 20540c94 : fa207de0 : 206cb874 : - R4 fa207de4 : 20493224 : | R6 fa207de8 : fa207e08 : | R11 fa207dec : fa207df8 : | R12 fa207df0 : 2047c658 : | R14: 2047c658 : : | = AcornHTTP +1ba4 fa207df4 : 2047b484 : | APCS function: 2047b47c : : | = AcornHTTP +9c8 fa207df8 : 2049323c : | R4 fa207dfc : fa207e44 : | R11 fa207e00 : fa207e0c : | R12 fa207e04 : 2047cec4 : | R14: 2047cec4 : : | = AcornHTTP +2410 fa207e08 : 2047c648 : | APCS function: 2047c640 : : | = AcornHTTP +1b8c fa207e0c : 02f5493b : | fa207e10 : 206cb8e9 : | fa207e14 : 206cb8db : | fa207e18 : 206cb8d4 : | R0 fa207e1c : 206afb94 : | R1 fa207e20 : 206c02f4 : | R2 fa207e24 : 206cb8b4 : | R3 fa207e28 : 206c02f4 : | R4 fa207e2c : 206cb8d4 : | R5 fa207e30 : 206afb94 : | R6 fa207e34 : 206cb8b4 : | R7 fa207e38 : fa207e6c : | R11 fa207e3c : fa207e48 : | R12 fa207e40 : 2047d4d4 : | R14: 2047d4d4 : : | = AcornHTTP +2a20 fa207e44 : 2047cba8 : | APCS function: 2047cba0 : : | = AcornHTTP +20ec fa207e48 : 206afb94 : | R4 fa207e4c : 206cba94 : | R5 fa207e50 : 206cb8d4 : | R6 fa207e54 : 00000301 : | R7 fa207e58 : 206afc68 : | R8 fa207e5c : 00000001 : | R9 fa207e60 : fa207e88 : | R11 fa207e64 : fa207e70 : | R12 fa207e68 : 2047e8bc : | R14: 2047e8bc : : | = AcornHTTP +3e08 fa207e6c : 2047d430 : | APCS function: 2047d428 : : | = AcornHTTP +2974 fa207e70 : 204940dc : | R4 fa207e74 : 206cd074 : | R5 fa207e78 : 206afb94 : | R6 fa207e7c : fa207ed8 : | R11 fa207e80 : fa207e8c : | R12 fa207e84 : 2047f36c : | R14: 2047f36c : : | = AcornHTTP +48b8 fa207e88 : 2047e7ec : | APCS function: 2047e7e4 : : | = AcornHTTP +3d30 fa207e8c : 00000000 : | fa207e90 : 00000000 : | fa207e94 : 00000000 : | fa207e98 : 206cd076 : | fa207e9c : 206afc20 : | fa207ea0 : 206cd078 : | fa207ea4 : 206cd074 : | R0 fa207ea8 : 00000575 : | R1 fa207eac : 206afb94 : | R2 fa207eb0 : fa207f58 : | R3 fa207eb4 : fa207f58 : | R4 fa207eb8 : 206afb94 : | R5 fa207ebc : 00000000 : | R6 fa207ec0 : 00000000 : | R7 fa207ec4 : 20000113 : | R8 fa207ec8 : 00000000 : | R9 fa207ecc : fa207ef4 : | R11 fa207ed0 : fa207edc : | R12 fa207ed4 : 204801b0 : | R14: 204801b0 : : | = AcornHTTP +56fc fa207ed8 : 2047ec00 : | APCS function: 2047ebf8 : : | = AcornHTTP +4144 fa207edc : fa207f58 : | R4 fa207ee0 : 206afb94 : | R5 fa207ee4 : 00000000 : | R6 fa207ee8 : fa207f1c : | R11 fa207eec : fa207ef8 : | R12 fa207ef0 : 20480290 : | R14: 20480290 : : | = AcornHTTP +57dc fa207ef4 : 204800b4 : | APCS function: 204800ac : : | = AcornHTTP +55f8 fa207ef8 : fc043020 : | - fc02b04c return to fc043020? : : | | fc02b04c = UtilityModule +a438 : : | | = Vdu +0 : : | | fc043020 = UtilityModule +2240c : : | | = PMFWrchDirect +20 fa207efc : 206afb94 : | R4 fa207f00 : fa207f58 : | R5 fa207f04 : 00000000 : | R6 fa207f08 : 00000000 : | R7 fa207f0c : 20000113 : | R8 fa207f10 : fa207f38 : | R11 fa207f14 : fa207f20 : | R12 fa207f18 : 204805c4 : | R14: 204805c4 : : | = AcornHTTP +5b10 fa207f1c : 2048026c : | APCS function: 20480264 : : | = AcornHTTP +57b0 fa207f20 : fa207f58 : | R4 fa207f24 : 00009668 : | R5 fa207f28 : 00000100 : | R6 fa207f2c : fa207f54 : | R11 fa207f30 : fa207f3c : | R12 fa207f34 : 2048009c : | R14: 2048009c : : | = AcornHTTP +55e8 fa207f38 : 20480474 : | APCS function: 2048046c : : | = AcornHTTP +59b8 fa207f3c : 24211a44 : | R4 fa207f40 : fff1de90 : | R5 fa207f44 : 00000000 : | R6 fa207f48 : 00000000 : | R11 fa207f4c : fa207f58 : | R12 fa207f50 : 2047addc : | R14: 2047addc : : | = AcornHTTP +328 fa207f54 : 2048007c : | APCS function: 20480074 : : | = AcornHTTP +55c0 fa207f58 : 00000000 : | R0 \ CMHG veneer _kernel_swi_regs? fa207f5c : 206afcb4 : | R1 | fa207f60 : 00009668 : | R2 | fa207f64 : 00000100 : | R3 | fa207f68 : 00000000 : | R4 | fa207f6c : 00000000 : | R5 | fa207f70 : 00000000 : | R6 | fa207f74 : 00000000 : | R7 | fa207f78 : 00000000 : | R8 | fa207f7c : 00000000 : | R9 / fa207f80 : fc0106f0 : - fc018ebc return to fc0106f0? : : | fc018ebc = +18ebc in the Kernel : : | = CallVector +0 : : | fc0106f0 = +106f0 in the Kernel : : | = VectorUserSWI +8 fa207f84 : 60000113 : - PSR? fa207f88 : 000a3f92 : | SWI XHTTP_SecureReadData fa207f8c : fc1a528c : | R14: fc1a528c : : | = SharedCLibrary +31be4 : : | = _kernel_swi +18 fa207f90 : fa20021c : | R10 fa207f94 : 00000000 : | R11 fa207f98 : 000a3f92 : | R12 fa207f9c : fa207fbc : fa207fa0 : 242ed628 : fa207fa4 : 00009118 : fa207fa8 : 00000000 : fa207fac : 00000000 : fa207fb0 : 20000113 : fa207fb4 : 00000000 : fa207fb8 : 20494d00 : - 204953f0 return to 20494d00? : : | 204953f0 = URL_Fetcher +a3c : : | 20494d00 = URL_Fetcher +34c fa207fbc : 00000000 : fa207fc0 : 206afcb4 : fa207fc4 : 00009668 : fa207fc8 : 00000100 : fa207fcc : 00000000 : fa207fd0 : 00000000 : fa207fd4 : 00000000 : fa207fd8 : 00000000 : fa207fdc : 00000000 : fa207fe0 : 00000000 : fa207fe4 : fc0106f0 : - fc018ebc return to fc0106f0? : : | fc018ebc = +18ebc in the Kernel : : | = CallVector +0 : : | fc0106f0 = +106f0 in the Kernel : : | = VectorUserSWI +8 fa207fe8 : 60000110 : - PSR? fa207fec : 00083e03 : | SWI URL_ReadData fa207ff0 : 000086d8 : | R14: 000086d8 : : | = +6d8 in application memory : : | = File_ReadLineMunged +bc fa207ff4 : 000000b8 : | R10 fa207ff8 : 000086d4 : | R11 fa207ffc : 0000931a : | R12 R14_usr = fc1b0c00 = BASIC +8f00 = SYSCALLTO +c USR stack: 00407fc8 : 00000008 : 00407fcc : 00083e03 : 00407fd0 : 000000fd : 00407fd4 : 000092e4 : 00407fd8 : 00000000 : 00407fdc : 00008f00 : 00407fe0 : 00008f00 : 00407fe4 : 00000018 : 00407fe8 : 00000000 : 00407fec : 00000000 : 00407ff0 : fc1aefa0 : - fc1a8ce4 return to fc1aefa0? : : | fc1a8ce4 = BASIC +fe4 : : | = SETFSA +0 : : | fc1aefa0 = BASIC +72a0 : : | = RUNNER +4 00407ff4 : e3510003 : 00407ff8 : 00008700 : - fc1a58f8 return to 00008700? : : | fc1a58f8 = SharedCLibrary +32250 : : | = _kernel_stkovf_split_0frame +0 : : | 00008700 = +700 in application memory : : | = File_ReadLineMunged +e4 00407ffc : 00000002 : 00408000 : 00000000 : 00408004 : 00000000 : 00408008 : 00000000 : 0040800c : 00000000 : 00408010 : 00000000 : 00408014 : 00000000 : 00408018 : 00000000 : 0040801c : 00000000 : 00408020 : 00000000 : 00408024 : 00000000 : 00408028 : 00000000 : 0040802c : 00000000 : 00408030 : 00000000 : 00408034 : 00000000 : 00408038 : 00000000 : 0040803c : 00000000 : 00408040 : 00000000 : 00408044 : 00000000 : 00408048 : 00000000 : 0040804c : 00000000 : 00408050 : 00000000 : 00408054 : 00000000 : 00408058 : 00000000 : 0040805c : 00000000 : 00408060 : 00000000 : 00408064 : 00000000 : 00408068 : 00000000 : 0040806c : 00000000 : 00408070 : 00000000 : 00408074 : 00000000 : 00408078 : 00000000 : 0040807c : 00000000 : 00408080 : 00000000 : 00408084 : 00000000 : 00408088 : 00000000 : 0040808c : 00000000 : 00408090 : 00000000 : 00408094 : 00000000 : 00408098 : 00000000 : 0040809c : 00000000 : 004080a0 : 00000000 : 004080a4 : 00000000 : 004080a8 : 00000000 : 004080ac : 00000000 : 004080b0 : 00000000 : 004080b4 : 00000000 : 004080b8 : 00000000 : 004080bc : 00000000 : 004080c0 : 00000000 : 004080c4 : 00000000 : 004080c8 : 00000000 : 004080cc : 00000000 : 004080d0 : 00000000 : 004080d4 : 00000000 : 004080d8 : 00000000 : 004080dc : 00000000 : 004080e0 : 00000000 : 004080e4 : 00000000 : 004080e8 : 00000000 : 004080ec : 00000000 : 004080f0 : 00000000 : 004080f4 : 00000000 : 004080f8 : 00000000 : 004080fc : 00000000 : 00408100 : 00000000 : 00408104 : 00000000 : 00408108 : 00000000 : 0040810c : 00000000 : 00408110 : 00000000 : 00408114 : 00000000 : 00408118 : 00000000 : 0040811c : 00000000 : 00408120 : 00000000 : 00408124 : 00000000 : 00408128 : 00000000 : 0040812c : 00000000 : 00408130 : 00000000 : 00408134 : 00000000 : 00408138 : 00000000 : 0040813c : 00000000 : 00408140 : 00000000 : 00408144 : 00000000 : 00408148 : 00000000 : 0040814c : 00000000 : 00408150 : 00000000 : 00408154 : 00000000 : 00408158 : 00000000 : 0040815c : 00000000 : 00408160 : 00000000 : 00408164 : 00000000 : 00408168 : 00000000 : 0040816c : 00000000 : 00408170 : 00000000 : 00408174 : 00000000 : 00408178 : 00000000 : 0040817c : 00000000 : 00408180 : 00000000 : 00408184 : 00000000 : 00408188 : 00000000 : 0040818c : 00000000 : 00408190 : 00000000 : 00408194 : 00000000 : 00408198 : 00000000 : 0040819c : 00000000 : 004081a0 : 00000000 : 004081a4 : 00000000 : 004081a8 : 00000000 : 004081ac : 00000000 : 004081b0 : 00000000 : 004081b4 : 00000000 : 004081b8 : 00000000 : 004081bc : 00000000 : 004081c0 : 00000000 : 004081c4 : 00000000 : 004081c8 : 00000000 : 004081cc : 00000000 : 004081d0 : 00000000 : 004081d4 : 00000000 : 004081d8 : 00000000 : 004081dc : 00000000 : 004081e0 : 00000000 : 004081e4 : 00000000 : 004081e8 : 00000000 : 004081ec : 00000000 : 004081f0 : 00000000 : 004081f4 : 00000000 : 004081f8 : 00000000 : 004081fc : 00000000 : 00408200 : 00000000 : 00408204 : 00000000 : 00408208 : 00000000 : 0040820c : 00000000 : 00408210 : 00000000 : 00408214 : 00000000 : 00408218 : 00000000 : 0040821c : 00000000 : 00408220 : 00000000 : 00408224 : 00000000 : 00408228 : 00000000 : 0040822c : 00000000 : 00408230 : 00000000 : 00408234 : 00000000 : 00408238 : 00000000 : 0040823c : 00000000 : 00408240 : 00000000 : 00408244 : 00000000 : 00408248 : 00000000 : 0040824c : 00000000 : 00408250 : 00000000 : 00408254 : 00000000 : 00408258 : 00000000 : 0040825c : 00000000 : 00408260 : 00000000 : 00408264 : 00000000 : 00408268 : 00000000 : 0040826c : 00000000 : 00408270 : 00000000 : 00408274 : 00000000 : 00408278 : 00000000 : 0040827c : 00000000 : 00408280 : 00000000 : 00408284 : 00000000 : 00408288 : 00000000 : 0040828c : 00000000 : 00408290 : 00000000 : 00408294 : 00000000 : 00408298 : 00000000 : 0040829c : 00000000 : 004082a0 : 00000000 : 004082a4 : 00000000 : 004082a8 : 00000000 : 004082ac : 00000000 : 004082b0 : 00000000 : 004082b4 : 00000000 : 004082b8 : 00000000 : 004082bc : 00000000 : 004082c0 : 00000000 : 004082c4 : 00000000 : 004082c8 : 00000000 : 004082cc : 00000000 : 004082d0 : 00000000 : 004082d4 : 00000000 : 004082d8 : 00000000 : 004082dc : 00000000 : 004082e0 : 00000000 : 004082e4 : 00000000 : 004082e8 : 00000000 : 004082ec : 00000000 : 004082f0 : 00000000 : 004082f4 : 00000000 : 004082f8 : 00000000 : 004082fc : 00000000 : 00408300 : 00000000 : 00408304 : 00000000 : 00408308 : 00000000 : 0040830c : 00000000 : 00408310 : 00000000 : 00408314 : 00000000 : 00408318 : 00000000 : 0040831c : 00000000 : 00408320 : 00000000 : 00408324 : 00000000 : 00408328 : 00000000 : 0040832c : 00000000 : 00408330 : 00000000 : 00408334 : 00000000 : 00408338 : 00000000 : 0040833c : 00000000 : 00408340 : 00000000 : 00408344 : 00000000 : 00408348 : 00000000 : 0040834c : 00000000 : 00408350 : 00000000 : 00408354 : 00000000 : 00408358 : 00000000 : 0040835c : 00000000 : 00408360 : 00000000 : 00408364 : 00000000 : 00408368 : 00000000 : 0040836c : 00000000 : 00408370 : 00000000 : 00408374 : 00000000 : 00408378 : 00000000 : 0040837c : 00000000 : 00408380 : 00000000 : 00408384 : 00000000 : 00408388 : 00000000 : 0040838c : 00000000 : 00408390 : 00000000 : 00408394 : 00000000 : 00408398 : 00000000 : 0040839c : 00000000 : 004083a0 : 00000000 : 004083a4 : 00000000 : 004083a8 : 00000000 : 004083ac : 00000000 : 004083b0 : 00000000 : 004083b4 : 00000000 : 004083b8 : 00000000 : 004083bc : 00000000 : 004083c0 : 00000000 : 004083c4 : 00000000 : End of dump AcornHTTP version 1.03 (6th April 2019). |
Jon Abbott (1421) 2651 posts |
Sounds suspiciously like a buffer has overrun and corrupt a variable. Check your variables before and after URL_ReadData to see if any have changed. |
Rick Murray (539) 13850 posts |
Do you see anything in the code that I posted, because I didn’t spot anything. |
Jon Abbott (1421) 2651 posts |
Buffer not big enough? Should it not work out the string length prior to DIMing a buffer of suitable size? |
Rick Murray (539) 13850 posts |
That’s because the differing URLs was retrofitted to give example URLs (the original just went to google). There are many ZeroPain entries, I presume one for every call to ReadData. They look like this: Time: Sun Aug 18 11:59:24 2019 Location: Offset 000008e4 in module AcornHTTP Current Wimp task: Unknown Last app to start: BASIC -quit "SDFS::RISCOSpi.$.Coding.Projects.Manga.URL.FetchTest" R0 = fa207ddc R1 = 00000000 R2 = 20538c08 R3 = 00000000 R4 = 206e20d4 R5 = 206e2154 R6 = 20493224 R7 = 00000000 R8 = 206e21ec R9 = 204940dc R10 = fa20021c R11 = fa207df4 R12 = fa207df8 R13 = fa207ddc R14 = 2047b500 R15 = 2047b3a0 DFAR = 00000034 Mode SVC32 Flags nZCv if PSR = 60000113 2047b358 : 12451001 : SUBNE R1,R5,#1 2047b35c : 11a00004 : MOVNE R0,R4 2047b360 : 1bffffda : BLNE &2047B2D0 2047b364 : e2855001 : ADD R5,R5,#1 2047b368 : e1a04005 : MOV R4,R5 2047b36c : ea000002 : B &2047B37C 2047b370 : e3540000 : CMP R4,#0 2047b374 : 01a04005 : MOVEQ R4,R5 2047b378 : e2855001 : ADD R5,R5,#1 2047b37c : e5d51000 : LDRB R1,[R5,#0] 2047b380 : e3510000 : CMP R1,#0 2047b384 : 1affffee : BNE &2047B344 2047b388 : e2451001 : SUB R1,R5,#1 2047b38c : e1a00004 : MOV R0,R4 2047b390 : ebffffce : BL &2047B2D0 2047b394 : eaffffdf : B &2047B318 2047b398 * e5912034 * LDR R2,[R1,#52] 2047b39c : e3520000 : CMP R2,#0 2047b3a0 : 15913030 : LDRNE R3,[R1,#48] 2047b3a4 : 15a23030 : STRNE R3,[R2,#48]! 2047b3a8 : e5912030 : LDR R2,[R1,#48] 2047b3ac : e3520000 : CMP R2,#0 2047b3b0 : 15913034 : LDRNE R3,[R1,#52] 2047b3b4 : 15a23034 : STRNE R3,[R2,#52]! 2047b3b8 : e5902000 : LDR R2,[R0,#0] 2047b3bc : e1520001 : CMP R2,R1 2047b3c0 : 05911034 : LDREQ R1,[R1,#52] 2047b3c4 : 05801000 : STREQ R1,[R0,#0] 2047b3c8 : e1a0f00e : MOV PC,R14 2047b3cc : e5912010 : LDR R2,[R1,#16] 2047b3d0 : e3520000 : CMP R2,#0 2047b3d4 : 1591300c : LDRNE R3,[R1,#12] Somewhere between calling URL and URL calling AcornHTTP (¿why not AcornSSL?), it looks as if R1 has been set to zero. As it does a lot of offset reads, I’m guessing R1 is supposed to be some sort of structure? The code in question appears to be at offset +&8E4 in the AcornHTTP module, which is a function called three times (at +&A48, +&AB0, and +&16F8). As there are no function names embedded, that’s about as far as I can help from here… |
Sprow (202) 1158 posts |
Which I took to read as “addlen%” otherwise BASIC complains of a missing variable.
I have AcornSSL version 1.04 (26th January 2019) mbedTLS 2.16.2, maybe your verifier has some fog on the lens? However, all 4 addresses load fine, tried 3 times each, no Zero Pain errors trapped. |
Martin Avison (27) 1494 posts |
I have also tried it here, with 5.24 + module versions above. I also had to mend the source after missing characters at eol and singled quotes. 1, 2 & 3 worked fine, but 4 read the headers then stuck in a loop with This was regardless of ZP being active or not. My AcornSSL is also v1.04 (26 Jan 2019) mbedTLS 2.16.2 |
Rick Murray (539) 13850 posts |
My bad. I actually only looked in the module binary at the version number and date and assumed that they were the same, because nobody that isn’t a massive numpty would release different versions of a module with the same primary version information. I’ve updated my AcornSSL to the apparently later one in the harddisc4 archive; but you guys at ROOL ought to treat versions of things like ISBNs. If it’s different, it’s different. Either in date (like every build of RISC OS) or (preferably, for non OS builds) a version number bump. 1 For everybody’s sanity, I’ll gloss over the this branch other branch fiasco. |
Rick Murray (539) 13850 posts |
Yeah, copying BASIC source to a text file (Ctrl-Copy or something?) seems to truncate bits at the ends of lines. Rather annoying. |
Steve Pampling (1551) 8172 posts |
I think Nemo might chip in to say a few words. If they are all polite it will be a surprise, but he will agree with you.
I don’t think there’s a specific branch that avoids blame. Let’s just say that if anyone, developer or user, can’t distinguish between versions immediately then the author of the code failed. Are people really that afraid of hitting v9.99? |
nemo (145) 2554 posts |
“CDFS was like 4.02: 2.37 (02 Jun 1999) 4.24: 2.54 (07 Sep 2001) 4.33: 2.57 (15 May 2002) 4.37: 2.59 (25 Mar 2003) 4.39: 2.67 (09 Jan 2004) 6.20: 2.70 (15 Feb 2007) when suddenly it was all 5.19: 2.51 (03 Feb 2012) 5.22: 2.61 (15 Aug 2013) 5.24: 2.63 (08 May 2016) which is so, like, random” as I believe the young people are saying.
I’d just like to point out that module numbers are DDDD.DDDD, and I often bump version numbers by 0.001 for small tweaks. |
Rick Murray (539) 13850 posts |
I’m impressed by your mastery of Valley Girl speak. I’m also impressed that you call people in their mid 40s “young”. ;-) |
nemo (145) 2554 posts |
My younger brother just turned 40. Whippersnapper. |
Steve Pampling (1551) 8172 posts |
I think we would all agree that until the 5.2x stream has a CDFS with functions that exceed anything the 4.2x stream has then it shouldn’t claim version numbers higher. Plus the Valley Girl speak was common knowledge when even Nemo was young(ih) |