00:02:37 | | Quit Natch (Ping timeout: 245 seconds) |
00:05:33 | __builtin | speachy: the latter can be somewhat automated |
00:05:37 | __builtin | for plugins at least |
01:00 |
01:20:43 | *** | Saving seen data "./dancer.seen" |
02:00 |
02:16:00 | | Join lebellium [0] (~lebellium@2a01:cb10:2e:2000:70ba:d034:95fc:d46b) |
03:00 |
03:20:46 | *** | No seen item changed, no save performed. |
04:00 |
04:10:33 | | Quit massiveH (Quit: Leaving) |
05:00 |
05:09:02 | | Join ZincAlloy [0] (~Adium@ip5f5abcae.dynamic.kabel-deutschland.de) |
05:20:50 | *** | Saving seen data "./dancer.seen" |
06:00 |
06:22:33 | | Join Natch [0] (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
07:00 |
07:19:25 | speachy | yep |
07:19:41 | speachy | just takes... time and effort. |
07:20:53 | *** | No seen item changed, no save performed. |
07:29:59 | | Quit Natch (Ping timeout: 268 seconds) |
07:32:29 | | Join Natch [0] (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
08:00 |
08:00:50 | | Join amachronic [0] (~amachroni@user/amachronic) |
08:55:29 | | Join advcomp2019__ [0] (~advcomp20@user/advcomp2019) |
08:56:51 | | Quit _bilgus (Remote host closed the connection) |
08:58:58 | | Quit advcomp2019_ (Ping timeout: 240 seconds) |
08:59:06 | | Join _bilgus [0] (~bilgus@162.154.213.134) |
09:00 |
09:00:50 | amachronic | speachy, i've got the manuals for the m3k/q1 to build and added installation instructions. the rest of it might not be 100% accurate, but can we start building them so we can link to the instructions? |
09:08:38 | _bilgus | braewoods IIRC you end up adding strlcpy to core? |
09:20:54 | *** | Saving seen data "./dancer.seen" |
09:44:36 | rb-bluebot | Build Server message: New build round started. Revision 42ba117952, 303 builds, 9 clients. |
09:44:50 | _bilgus | guess we shall see |
09:48:19 | braewoods | _bilgus: eh? strlcpy was already present. i was just using it. |
09:48:58 | _bilgus | oh? I thought it literally wasn't in at all |
09:49:15 | braewoods | _bilgus: no, just differences in string.h |
09:49:30 | braewoods | it's not present in linux glibc but it is in ours |
09:49:36 | _bilgus | ok cool this should be all good then |
09:50:32 | braewoods | i prefer strlcpy for simple string construction due to the performance advantages over printf |
09:50:49 | braewoods | it's significant |
09:50:55 | braewoods | when you do a lot anyway |
09:52:13 | braewoods | unfortunately snprintf is the only portable option for safe string stuff |
09:52:25 | braewoods | unless you wrap memccpy :D |
09:53:04 | braewoods | i'm surprised posix never adopted strlcpy or strlcat; they have compelling use cases |
09:53:24 | braewoods | strncpy / strncat are kinda crappy options |
09:53:32 | braewoods | i never understood why they exist |
09:54:11 | braewoods | there's situations where they fail to null terminate and they fully write to the unused space |
09:54:17 | braewoods | both of which don't make any sense |
09:55:20 | braewoods | i kinda figured they were leftovers like gets that weren't well thought out |
09:55:41 | braewoods | strcpy/strcat actully do make sense in some cases if you can trust the input |
09:57:17 | rb-bluebot | Build Server message: Build round completed after 759 seconds. |
09:57:19 | rb-bluebot | Build Server message: Revision 42ba117952 result: All green |
09:58:32 | speachy | amachronic: IIRC the only way manuals get built is if the target is marked as "stable" |
10:00 |
10:01:33 | speachy | but I'll hack something in |
10:03:34 | amachronic | ok thanks. just wondering, is missing rockbox utility the only reason to not mark it stable? |
10:03:50 | speachy | manual+rbutil, yeah |
10:04:48 | amachronic | then i'll have to stop procrastinating on rbutil :) |
10:05:32 | speachy | I don't see manual stuffs for the q1 or m3k committed..? |
10:06:11 | amachronic | it's still in gerrit. should I commit it now? |
10:06:28 | speachy | just a sec. |
10:06:44 | speachy | actually go ahead |
10:06:53 | speachy | manuals won't get built until tonight anyway |
10:07:10 | rb-bluebot | Build Server message: New build round started. Revision fde6eaa8e1, 303 builds, 9 clients. |
10:08:20 | speachy | I think you'll need to generate screenshots for the q1 −− nothing else shares its screensize so there's no piggybacking on another target's screenshots |
10:08:45 | amachronic | yeah I know, it's just annoying. |
10:08:53 | speachy | ah, I see that in the commit message. :D |
10:09:13 | speachy | I never did finish generating screenshots for the X3. |
10:09:43 | speachy | but it's high time I finished the manual bits for the X3ii/X20 and ErosQ (hosted) ports too, as they're otherwise stable. |
10:09:46 | speachy | "stable" |
10:10:48 | speachy | and the agptekrocker too.. |
10:14:01 | amachronic | a lot of the screenshots in the manual must be outdated... some of the menus have changed |
10:14:22 | speachy | it's safe to say that the screenshots have only rarely been updated |
10:14:31 | speachy | there's no way to automate 'em, alas |
10:17:27 | rb-bluebot | Build Server message: Build round completed after 616 seconds. |
10:17:29 | rb-bluebot | Build Server message: Revision fde6eaa8e1 result: All green |
10:22:15 | _bilgus | braewoods, TBH I knew of the clunky way ncpy worked but the filling buffer with nulls thing eh thats an important caveat IMO |
10:22:44 | _bilgus | I wasn't aware of that IOW |
10:37:06 | braewoods | _bilgus: i thought everybody who has used C awhile would have known that. it's well specified in the manpage iirc. |
10:37:47 | braewoods | eh |
10:38:10 | braewoods | i guess it makes sense if you want to null terminate the unused portion |
10:38:33 | _bilgus | it would also tend to hide bugs |
10:39:04 | braewoods | i usually don't write to a buffer memory region until i'm ready to use it |
10:39:20 | braewoods | since well written code isn't supposed to use it beyond the known good parts |
10:39:39 | braewoods | performance reasons and all since buffers are usually big |
10:46:53 | | Quit ZincAlloy (Quit: Leaving.) |
10:51:05 | | Join JanC_ [0] (~janc@user/janc) |
10:51:18 | _bilgus | amachronic, there are quite a few intentional fall throughs are you planning on doing a group of them? |
10:53:03 | | Quit JanC (Ping timeout: 252 seconds) |
10:58:26 | amachronic | i can do them in bulk if you want, right now i'm just going through coverity and classifying stuff / fixing minor things |
10:59:26 | _bilgus | https://scan3.coverity.com/reports.htm#v55211/p14259/mergedDefectId=352819 https://github.com/Rockbox/rockbox/commit/9f4bd8712fc122f61ec162c544d613a95c3ca66e#diff-f192f1ab608d8b7fc62f5ae325b7579a41356aeecc3c465450aab2ba23f9ef15R146 |
11:00 |
11:00:31 | _bilgus | that one is a good example of 'stuff' that shouldn't gotten through |
11:01:31 | amachronic | yeah, that whole function is not even remotely structured to handle errors. |
11:02:07 | amachronic | nor can I tell what kind of dummy data should be put in the event of parse failure |
11:03:57 | _bilgus | it looks like its so fragile in that area it makes me think −− maybe thats the point? |
11:11:03 | _bilgus | So I get 60*1000 and 1000 but whats 13? |
11:11:56 | _bilgus | M:S:?? |
11:12:03 | amachronic | wikipedia says it's hh:mm:ff −− last field is frames |
11:12:05 | amachronic | https://en.wikipedia.org/wiki/Cue_sheet_(computing) |
11:12:06 | | Join ZincAlloy [0] (~Adium@ip5f5abcae.dynamic.kabel-deutschland.de) |
11:12:53 | amachronic | but why 13? it's not clear to me |
11:13:08 | speachy | I recall there being a _lot_ of cuesheet variations out there. |
11:13:30 | _bilgus | that is a relief at least there is something of document that it is based on |
11:17:39 | rb-bluebot | Build Server message: New build round started. Revision a0948ddfa1, 303 builds, 9 clients. |
11:18:22 | | Quit ZincAlloy (Quit: Leaving.) |
11:18:41 | speachy | amachronic: ^^ has the bits needed to generate the manuals for the m3k & q1 in the nightly runs |
11:20:58 | *** | Saving seen data "./dancer.seen" |
11:22:25 | _bilgus | Instead we can just skip the source forward by 8 chars |
11:23:12 | _bilgus | that would remove INDEX 01 since it already matches |
11:23:15 | speachy | _bilgus: it's 13 because there are 75 frames per second, and *=13 gives you a close approximation in milliseconds. |
11:23:42 | speachy | 75*13 = 975, which is ~~1000 |
11:23:45 | _bilgus | yeah the wiki made it apparent |
11:26:53 | _bilgus | wonder what atoi does with null input |
11:27:17 | | Quit skipwich_ (Quit: DISCONNECT) |
11:27:59 | _bilgus | no conversion is performed and zero is returned |
11:28:00 | speachy | _bilgus: ours will dereference it |
11:28:25 | _bilgus | Oh? |
11:28:34 | speachy | firmware/libc/atoi.c L30 |
11:29:21 | rb-bluebot | Build Server message: Build round completed after 702 seconds. |
11:29:28 | rb-bluebot | Build Server message: Revision a0948ddfa1 result: All green |
11:29:37 | rb-bluebot | Build Server message: New build round started. Revision f8bbe3352c, 303 builds, 9 clients. |
11:29:45 | _bilgus | damn straight |
11:30:08 | _bilgus | wow |
11:30:17 | speachy | we can't necessarily go based on the POSIX libc spec, as we've reimlpemented a lot of it. |
11:30:25 | speachy | I'll go and add a null check in there |
11:32:24 | speachy | g#3615 |
11:32:26 | rb-bluebot | Gerrit review #3615 at https://gerrit.rockbox.org/r/c/rockbox/+/3615 : libc: atoi() is supposed to return 0 if handed a NULL pointer by Solomon Peachy |
11:33:01 | speachy | heh, this sort of thing is why we have to build with -fno-delete-null-pointer-checks |
11:35:15 | | Join skipwich [0] (~skipwich@user/skipwich) |
11:36:30 | speachy | our str*() routines also don't do null checks. |
11:37:13 | speachy | ditto memcmp/memcpy (though the latter is often overridden with per-arch asm) |
11:38:22 | amachronic | but those don't really need to have null checks? |
11:38:50 | amachronic | like, memcpy into null is probably a bug no matter what |
11:38:58 | amachronic | unless of course the length is 0 |
11:40:02 | speachy | on native targets a read null dereference is usually harmless, but on hosted it'll crash |
11:40:22 | speachy | of course writing to a null dereference.. that's _nearly_ always bad. |
11:40:54 | rb-bluebot | Build Server message: Build round completed after 678 seconds. |
11:40:56 | rb-bluebot | Build Server message: Revision f8bbe3352c result: All green |
11:41:02 | amachronic | the point being, it's a sign of a more serious programming error (either read OR write) and it's better to crash hard. |
11:41:08 | speachy | yeah |
11:41:56 | speachy | but only if there's a way to translate that hard crash into a stack trace or some sort of other diagnostic |
11:42:54 | speachy | I mean, in the bowels of the skin parsing code, there's a lot of places where we're not properly checking to see if malloc() succeeds |
11:44:20 | speachy | realistically if we ever fail to malloc() we're probably toast. |
11:45:19 | amachronic | we do have backtraces on panics for hosted and ARM native, but MIPS native is missing |
11:46:25 | speachy | I started to write one but put it aside when the voices started yelling at each other |
11:47:26 | speachy | due to how the ingenic parts have their mmu set up bad pointers tend to reliably HACF, thankfully. |
11:50:39 | speachy | ok. time to put all of this imaginary software down for a while and take apart the dryer.. |
11:58:35 | | Nick JanC_ is now known as JanC (~janc@user/janc) |
12:00 |
12:06:58 | | Quit amachronic (Ping timeout: 256 seconds) |
12:27:58 | rb-bluebot | Build Server message: New build round started. Revision d0536b8b6b, 303 builds, 9 clients. |
12:38:00 | rb-bluebot | Build Server message: Build round completed after 601 seconds. |
12:38:01 | rb-bluebot | Build Server message: Revision d0536b8b6b result: All green |
12:49:17 | | Join amachronic [0] (~amachroni@user/amachronic) |
12:54:46 | | Quit amachronic (Ping timeout: 272 seconds) |
13:00 |
13:03:33 | | Join ZincAlloy [0] (~Adium@ip5f5abcae.dynamic.kabel-deutschland.de) |
13:21:01 | *** | Saving seen data "./dancer.seen" |
14:00 |
14:21:51 | _bilgus | amachronic looking at the cue sheet code I think a specialized scanf like parser would probably be enough to clean it up |
14:22:54 | _bilgus | If you want to tackle it, it will probably turn out higher quality ;P but I'll look at it this evening |
14:46:42 | | Join amachronic [0] (~amachroni@user/amachronic) |
14:47:25 | amachronic | _bilgus knock yourself out, I don't use cuesheets myself so it's not a big deal for me |
14:50:38 | | Quit amachronic (Client Quit) |
15:00 |
15:21:04 | *** | Saving seen data "./dancer.seen" |
15:35:02 | bluebrother | speachy: depends on what you consider "nice and simple" :) |
15:36:14 | bluebrother | I'm in the middle of playing around with it, and there are obviously a bunch of rough edges. But with some small Sphinx extensions the input could be more readable. At least IMHO. |
15:36:31 | bluebrother | guess I should bring it into a state where I can show it :) |
15:46:43 | speachy | yeah.. |
15:47:25 | speachy | it's just that I worry that by the time everything we need has been rejiggered and extended and whatnot, the result will be just as incomprehensible to $random_people as the current LaTeX mess. |
17:00 |
17:21:06 | *** | No seen item changed, no save performed. |
17:41:10 | | Quit lebellium (Quit: Leaving) |
19:00 |
19:21:08 | *** | Saving seen data "./dancer.seen" |
19:30:43 | braewoods | _bilgus: there's also a few lesser known libc features. strtol, etc, have a special feature if the base is 0. it tries to deduce the base based on the rules of C integer literals. |
19:32:06 | braewoods | it's also common for people to improperly use strtol. since all values are valid return values, you have to set errno to 0 first and then check it after to know if strtol actually failed or not. |
19:32:26 | braewoods | it's why i usually wrap strtol |
19:33:12 | braewoods | why i usually prefer to return output values via pointers and use the RV for an error indicator |
19:33:34 | braewoods | the output values mainly make sense when no errors are possible |
19:33:55 | braewoods | or when pointers are in use... |
19:34:16 | braewoods | integers though, generally have no special value for errros |
19:49:58 | | Quit ZincAlloy (Quit: Leaving.) |
20:00 |
20:54:08 | | Join massiveH [0] (~massiveH@ool-18e4e82f.dyn.optonline.net) |
21:00 |
21:21:10 | *** | Saving seen data "./dancer.seen" |
21:56:51 | | Quit speachy (Quit: WeeChat 3.0.1) |
22:00 |
22:51:26 | | Join dconrad [0] (~dconrad@208.38.228.17) |
23:00 |
23:09:47 | | Quit skipwich (Ping timeout: 268 seconds) |
23:13:25 | | Join rando25892 [0] (~sthk@user/rando25892) |
23:21:12 | *** | Saving seen data "./dancer.seen" |