Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2013-12-01

00:02:58 Join itoikenza [0] (uid15992@gateway/web/
00:10:42 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
00:28:59 Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1)
00:34:34***Saving seen data "./dancer.seen"
00:38:29 Quit Bluefoxicy (Ping timeout: 245 seconds)
00:49:48 Quit nosa-j (Excess Flood)
00:49:57 Join nosa-j [0] (~m00k@
00:51:25 Join [Saint] [0] (~saint@rockbox/user/saint)
00:52:39 Quit n1s (Quit: Ex-Chat)
01:15:16 Quit cmhobbs (Ping timeout: 252 seconds)
01:26:50 Join anewussr [0] (anewuser@unaffiliated/anewuser)
01:29:09 Join Bluefoxicy [0] (
01:32:03 Join treaki__ [0] (
01:34:52 Quit treaki_ (Ping timeout: 272 seconds)
01:40:38 Quit Bluefoxicy (Ping timeout: 260 seconds)
01:44:10 Join Bluefoxicy [0] (
01:45:26 Quit ender` (Quit: <apo_> I just built a crontab that builds crontabs on another box, so it can wake up the first box in time for it to run its crontabs :D)
01:48:10 Join SYSTEM_ [0] (
01:48:12 Nick SYSTEM_ is now known as Water (
01:49:01Waterpamaury: Still bisecting battery regression?
01:49:19 Quit Bluefoxicy (Ping timeout: 245 seconds)
01:52:14pamauryWater: I'm doing a final check
01:52:27pamauryto see if the regression was only caused by one commit or several
01:53:22WaterI'm still willing to help, but if you can use me, maybe I should test a build you've already done so we have a... baseline?
01:57:26 Quit pamaury (Ping timeout: 260 seconds)
02:07:10 Join Bluefoxicy [0] (
02:17:50 Quit bertrik (Remote host closed the connection)
02:24:55 Quit Narod ()
02:34:38***Saving seen data "./dancer.seen"
02:44:14 Join cmhobbs [0] (
02:44:14 Quit cmhobbs (Changing host)
02:44:14 Join cmhobbs [0] (~cmhobbs@fsf/member/cmhobbs)
02:45:19 Nick anewussr is now known as anewuser (anewuser@unaffiliated/anewuser)
03:12:39 Quit Bluefoxicy (Ping timeout: 245 seconds)
03:13:41 Join Bluefoxicy [0] (
03:34:58 Quit Bluefoxicy (Ping timeout: 260 seconds)
03:50:40 Join Bluefoxicy [0] (
04:12:50 Join notben [0] (
04:12:59 Quit notben (Client Quit)
04:13:26 Quit Water (Ping timeout: 264 seconds)
04:21:35 Quit itoikenza ()
04:34:42***Saving seen data "./dancer.seen"
04:50:13 Quit pixelma (Disconnected by services)
04:50:13 Join pixelma_ [0] (pixelma@rockbox/staff/pixelma)
04:50:14 Nick pixelma_ is now known as pixelma (pixelma@rockbox/staff/pixelma)
04:50:14 Quit amiconn (Disconnected by services)
04:50:14 Join amiconn_ [0] (quassel@rockbox/developer/amiconn)
04:50:17 Nick amiconn_ is now known as amiconn (quassel@rockbox/developer/amiconn)
04:52:02 Join simonpatapon [0] (~sime@
05:06:33 Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1)
05:40:14 Join shai [0] (
05:41:04 Quit shai (Read error: Connection reset by peer)
05:42:16 Quit Bluefoxicy (Excess Flood)
05:42:41 Join Bluefoxicy [0] (
05:54:37 Quit simonpatapon (Quit: Quitte)
05:57:14 Quit [7] (Disconnected by services)
05:57:27 Join TheSeven [0] (~quassel@rockbox/developer/TheSeven)
06:02:27 Join Strife89 [0] (
06:07:34 Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1)
06:11:40 Join HeRoInA_ToDDy [0] (
06:11:45*HeRoInA_ToDDy ChanServ doi o pe ,1T,7o,1p,5-,3To,9ddy_ ,1T,7o,1p,5-,3To,9ddy_ ,1T,7o,1p,5-,3To,9ddy_ ,1T,7o,1p,5-,3To,9ddy_ ,1T,7o,1p,5-,3To,9ddy_ ,1T,7o,1p,5-,3To,9ddy_
06:16:00 Quit Bluefoxicy (Ping timeout: 245 seconds)
06:20:41 Join Bluefoxicy [0] (
06:24:51[Saint]HeRoInA_ToDDy: If you could go ahead and not do that, that would be just fantastic.
06:26:19 Quit HeRoInA_ToDDy ()
06:28:11[Saint]That works too.
06:34:43***Saving seen data "./dancer.seen"
06:48:04lonoxmontway to continue the stereotype...
07:01:10 Quit dfkt_ (Read error: Connection reset by peer)
07:01:47 Join dfkt [0] (dfkt@unaffiliated/dfkt)
07:07:13 Quit scorche (Ping timeout: 252 seconds)
07:09:49 Join scorche [0] (~scorche@rockbox/administrator/scorche)
07:12:43 Quit scorche|sh (Ping timeout: 272 seconds)
07:33:24 Quit kiwicam (Remote host closed the connection)
07:39:19 Quit solrize (Ping timeout: 265 seconds)
07:51:30 Join kevku [0] (~kevku@2001:470:27:773:0:feed:c0f:fee)
08:04:13 Join kiwicam [0] (~quassel@
08:18:31 Join n1s [0] (~n1s@rockbox/developer/n1s)
08:23:58 Join pretty_function [0] (~sigBART@
08:30:57 Quit pretty_function (Quit: Leaving...)
08:34:44***Saving seen data "./dancer.seen"
08:53:26 Join foolsh [0] (
09:07:19 Join scorche|sh [0] (
09:07:19 Quit scorche|sh (Changing host)
09:07:19 Join scorche|sh [0] (~scorche@rockbox/administrator/scorche)
09:52:51 Join ender` [0] (
10:08:25 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
10:16:05 Join y4n [0] (~y4n@unaffiliated/y4ndexx)
10:16:34 Join rela [0] (~x@pdpc/supporter/active/rela)
10:34:46***Saving seen data "./dancer.seen"
11:15:25 Quit rela (Read error: Connection reset by peer)
11:16:24foolshgevaerts: g#677 has all the updated changes 'and then some' the touchpad works normally without deadzones but..
11:16:27fs-bluebotGerrit review #677 at : Add a deadzone area for fuze+ touchpad buttons by Benjamin Brown (changes/77/677/8)
11:16:35foolshthe deadzone setting doesn't show up in the menu, and...
11:16:44foolshbuilding with a default deadzone in /target/export/config/sasaduzeplus.h results in the touchpad not working at all
11:17:45foolshyesterday I didn't expect the code I wrote to run, I only wanted to learn
11:17:53foolshBut now I expect it should work but doesn't
11:25:27 Quit Strife89 (Read error: Operation timed out)
11:31:59 Join jlbiasini [0] (~metaphysi@
11:35:50foolshpamaury: logs ^
11:36:15 Quit foolsh (Quit: foolsh)
12:02:26 Join Narod [0] (
12:05:21 Join kugel [0] (~kugel@rockbox/developer/kugel)
12:12:34 Quit jlbiasini (Quit: jlbiasini)
12:34:49***Saving seen data "./dancer.seen"
13:13:42 Join solrize [0] (~solrize@
13:13:42 Quit solrize (Changing host)
13:13:42 Join solrize [0] (~solrize@unaffiliated/solrize)
13:46:28 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
13:48:42 Join advx [0] (~quassel@
13:49:06 Nick advx is now known as Guest51674 (~quassel@
13:52:07 Join ikeboy [0] (
13:57:56 Quit Guest51674 (Remote host closed the connection)
14:20:05 Join einhirn [0] (
14:28:53 Join advx_ [0] (~quassel@
14:33:55 Quit ikeboy (Quit: ikeboy)
14:34:51***Saving seen data "./dancer.seen"
14:48:25 Quit advx_ (Read error: Connection reset by peer)
14:49:50 Join foolsh [0] (
16:18:49 Join lebellium [0] (~chatzilla@
16:34:52***Saving seen data "./dancer.seen"
16:36:35foolshgevaerts: pamaury: logs, I got a somewhat working deadzone now, but the setting adjustment menu entry isn't showing up, still.
16:38:29pamauryfoolsh: ok, I'll try it on my other fuze+ in half an hour
16:52:02 Quit krnlyng (Ping timeout: 260 seconds)
16:53:08 Join rela [0] (~x@pdpc/supporter/active/rela)
16:53:08 Join krnlyng [0] (~liar@
16:54:08pamauryfoolsh: is your code on gerrit ?
16:57:54 Quit kugel (Ping timeout: 272 seconds)
17:11:51foolshpamaury: yep
17:12:38 Join amayer [0] (
17:25:17 Quit einhirn (Quit: Miranda IM! Smaller, Faster, Easier.
17:47:58 Quit rela (Read error: Connection reset by peer)
17:57:25 Join krabador [0] (~krabador_@unaffiliated/krabador)
18:09:04 Join kugel [0] (~kugel@rockbox/developer/kugel)
18:16:55 Quit cmhobbs (Ping timeout: 246 seconds)
18:26:24 Join cmhobbs [0] (~cmhobbs@fsf/member/cmhobbs)
18:29:40foolshJust updated g#677 Now the deadzone feels just as good as my static patch did, only the settings menu entry is broken now
18:29:41fs-bluebotGerrit review #677 at : Add a deadzone area for fuze+ touchpad buttons by Benjamin Brown (changes/77/677/11)
18:32:42pamaurythere still are quite a few issues with the code
18:34:25foolshI'm sure :-D
18:34:56***Saving seen data "./dancer.seen"
18:36:56pamauryfoolsh: why a step of 2 ?
18:39:19foolshI though I could not have a decimal for int, odd number times 2.5 gives and value with a decimal
18:39:35foolsha value*
18:41:10pamaurythat's not a good way of doing this
18:41:47pamauryfurthermore you shouldn't have moved so much code in the button driver
18:43:42 Quit kugel (Ping timeout: 246 seconds)
18:50:59foolshpamaury: Are you talking about everything I took from find_button and put at the top of the button-fuzeplus.c? I did this attempting to get it just working, I'll work it back the original way.
18:51:21foolshThanks again :)
18:51:50pamauryI'm working on it, I'll push a new version to gerrit when it's working
18:52:06foolshAlright, awesome thanks
18:53:25 Quit cmhobbs (Ping timeout: 240 seconds)
18:55:26 Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1)
18:58:39gevaertsfoolsh: just to show that we're not only good at providing deep technical feedback but that we like covering all angles, you have unneeded whitespace changes in settings_list.h
18:58:42 Quit krabador (Quit: Sto andando via)
19:00:23foolsh:-[ yeah I'm sorry I suck
19:01:28gevaertsHappens to everyone
19:01:47gevaertsDefinitely not the end of the world
19:03:17pamauryfoolsh: why did you choose 2 and 2.5 as multipliers ?
19:03:41pamauryit doesn't seem logical to see, there should have have the ratio to the width/height
19:07:54foolshOh I see, then can we get rid of one of those X or Y, we only need a maximum value that give ~500 combined deadzone between buttons that use them. I was trying to shave ~250 pixels off each button that was not outside.
19:08:54 Quit JdGordon| (Ping timeout: 246 seconds)
19:10:03pamauryI mean, either you say that the deadone setting should apply the same in both direction and then you pick the same multiplier or you say that the deadzone setting should apply proportionaly to the width/height, but your choice is neither, so I'm puzzled
19:10:21pamaurythe most logical choice to me is that it applies the same in both direction
19:10:54 Join JdGordon| [0] (
19:10:54 Quit JdGordon| (Changing host)
19:10:54 Join JdGordon| [0] (~jonno@rockbox/developer/JdGordon)
19:11:44foolshRight the same for both it can be replaced with one value, a multiplier for the general size we want the deadzones
19:14:11foolshI meant you don't need X and Y multipliers just one multiplier, since you did the width/height ratio already in the button matrix
19:16:04foolshThat could explain some oddities I experienced there for a bit with it
19:20:07bluebrother^ok, so I'd like to see a new release of Rockbox Utility in the next 4 weeks or so
19:20:18bluebrother^are there any open issues I should be aware of?
19:21:22pamaurybluebrother^: on my computer, mount points detection is usually shaky
19:21:43pamauryand I need to edit a few strings on the imx installer which are fuze+ specific and shouldn't be
19:21:57bluebrother^detection is shaky? As in?
19:22:20pamauryhardly correcty: doesn't detect the good mount points and doesn't detect the proper device for them
19:22:31pamauryat least last time I tried
19:22:34lebelliumbluebrother^: just as a reminder before the release, please add H300 v1.31k to the changelog :)
19:23:41bluebrother^lebellium: did that some time ago :)
19:24:09bluebrother^pamaury: have you tried it with the new detection code?
19:24:21pamauryit was like 3 weeks ago
19:24:34pamaurybut I can retry right now if you want
19:25:27lebelliumbluebrother^: arf sorry, I missed that. Thank you :)
19:27:55pamauryfoolsh: I have uploaded a new version of your patch
19:27:59pamaurysee on gerrit
19:32:43pamaurybluebrother^: maybe that was an earlier version then, just tried and it works
19:34:00bluebrother^ok, good to know
19:38:42foolshpamaury: You rock
19:39:24foolshYou too, gevaerts thanks
19:47:44 Join cmhobbs [0] (
19:47:46 Quit cmhobbs (Changing host)
19:47:46 Join cmhobbs [0] (~cmhobbs@fsf/member/cmhobbs)
19:57:59foolshJust built with it very very, nice even at maximum. It's not my code anymore :-P but that's a good thing, now I'm off to find something else to *inflict* with my novice ideals about C, thank you people very much.
20:07:40 Quit foolsh (Quit: foolsh)
20:11:30 Join kugel [0] (
20:11:30 Quit kugel (Changing host)
20:11:30 Join kugel [0] (~kugel@rockbox/developer/kugel)
20:34:58***Saving seen data "./dancer.seen"
20:35:46 Quit nosa-j (Ping timeout: 253 seconds)
20:41:03 Join nosa-j [0] (~m00k@
21:05:33 Join rela [0] (~x@pdpc/supporter/active/rela)
21:13:39shadowsI have several Fuze v1 devices will mail to developers if one is interested in solving the USB mode storage corruption stuff
21:15:13shadowsthe corruption is bad enough that I wish USB in rockbox could be disabled for Fuze v1 builds btw
21:19:37AlexPjust don't use it
21:22:07kugelLadies and Gentlemen :)
21:24:16kugelWe have sound on a Linux system, using a test application with my new playbacklib (codecs+playback engine+playlist) build on native OS threads and kernel primitives
21:26:15kugelthat is, no "legacy GUI" and internals, this lib approach should allow for OS-native UIs
21:26:47AlexPThat sounds cool, congrats
21:27:00AlexPSo is next job knock up a native android ui? :P
21:27:05*gevaerts throws a party
21:29:10kugelAlexP: no, next step is to make this a less of one huge hack
21:29:19AlexPhmmm, alright then :)
21:31:11*gevaerts can't wait!
21:31:26kugels/can't wait!/can help!/
21:33:53kugelwhat I did is basically 1) determine with 50% certainty and 50% hope that the playback core is actually safe for preemptive threads, 2) create a event_queue (our principal inter-thread communication API) implementation for pthreads, 3) hack warble such that it doesn't compile just codecs, 4) comment out (literally) enough code in playlist.c and playback.c to make it compile
21:34:27gevaertskugel: so you have a non-GUI thing that does playlists?
21:34:46kugelyea, absolutely!
21:35:23kugelint main() { for(i=0;i<argc;i++) playlist_add(argv[i]); } :)
21:35:42kugelshould be enough for everybody
21:36:44*lebellium doubts :)
21:37:18shadowskugel: well done!
21:39:59 Join Ward [0] (
21:40:04kugelthe nice thing is be that all of our major and uniquie playback-related features can be retained
21:40:23 Nick Ward is now known as Guest33490 (
21:41:48*gevaerts has been dreaming about a streaming thing controlled over http based on rockbox
21:49:26shadowskugel: so... that would also be filesystem agnostic ya?
21:49:47shadowsdoesn't care what filesystem is there
21:50:33kugelthat's already true for current RaaA
21:54:31 Quit rela (Read error: Connection reset by peer)
21:56:06pamaurykugel: great :)
21:58:12kugelheh, play/pause/next/prev also works
22:04:40 Join wodz [0] (
22:05:08wodzkugel: great achievement
22:07:32 Join bluebrother [0] (~dom@rockbox/developer/bluebrother)
22:09:49 Quit fs-bluebot (Ping timeout: 240 seconds)
22:11:01 Quit bluebrother^ (Ping timeout: 264 seconds)
22:11:41 Join fs-bluebot [0] (
22:15:00kugelalright, now that I have it working in a prototype I can be motivated to go further and cleanup
22:16:39[Saint]That's a lot less ugly than my rbcodec solution.
22:16:48shadowswould be nice to have a player on my Android phone that does Xiph Opus :)
22:17:17[Saint]shadows: you know Rockbox has done Opus for ages, right?
22:17:19kugel g#68{1,2,3}
22:17:21fs-bluebotGerrit review #68 at : by Joshua Simmons (changes/68/68/1)
22:17:48kugel[Saint]: what's your rbcodec solution?
22:19:28 Quit nosa-j (Excess Flood)
22:19:41 Join nosa-j [0] (~m00k@
22:19:48shadows[Saint]: I gave rb for android a try, and there are some integration issues (randomly starts playing when it is installed but not active) ... anyways I'm holding out for a native android UI
22:20:28[Saint]Hey, who would've thought an unusable target had some issues...go figure. ;)
22:20:50shadows[Saint]: rb on my Fuze v1 corrupts the filesystem pretty regularly and aborts, so it doesn't work for me to listen to music in the locker room before ski instructor work.. I don't know, what is a more stable hardware that rb will play opus on?
22:21:29[Saint]I think you're ignoring the lonstanding advice to leave Rockbox USB alone.
22:21:53shadowswell I have to charge it somehow
22:22:05[Saint]...and that's what the OF is for.
22:22:11kugel[Saint]: that's not an official advice
22:22:12[Saint]Additionally, charging != USB connection.
22:22:26shadowshow to disable the USB mode ? I did not see a menu setting for it
22:22:27kugelwe try to have USB work, and if it doesn't it's a bug
22:22:32[Saint]kugel: it pretty much gets thrown at *everyone*
22:22:51kugelit's not a experimental, try-on-your-own-risk feature
22:22:53[Saint]There is absolutely no continued effort to fix it, and we know its broken and still push it.
22:23:08shadowssorry to hit a sore subject
22:23:09[Saint]And when people invariably complain, we tell them not to use it.
22:23:20kugelthere are problems on some targets, it's not universial though
22:23:21[Saint]this has been happening for ages.
22:23:29shadowscan we make it a disabled-by-default feature with a menu setting?
22:23:35[Saint]"USB is broken", "we know, don;t use it"
22:23:37shadowsfor fuzev1 at least
22:23:50AlexPshadows: Hold any key while inserting the USB cable
22:23:52[Saint]shadows: I have suggested this...
22:24:00AlexPYou get charging and not a connection
22:24:00wodz[Saint]: I'd say we TRY to fix usb problems really
22:24:06shadowsAlexP: what if I forget one time? then it corrupts my data?
22:24:16AlexPThis is in the manual I think
22:24:18[Saint]wodz: tried, sure.
22:24:23AlexP(not the corruption)
22:24:25gevaertsI don't remember corruption issirs being reported
22:24:31[Saint]but presently we know its broken and still release it.
22:24:45[Saint]and have done for an age now.
22:24:51[Saint]Because it works for "us".
22:25:06gevaertsshadows: you mean you get corruption even if you're not moving data?
22:25:22wodz[Saint]: I haven't seen your offical proposition to disable usb, you know
22:25:52[Saint]Nor I anyone elses.
22:26:01shadowsbug #12184
22:26:07AlexPBut you seem to be suggesting you think it should be
22:26:36shadowsgevaerts: well the host system does usb automount, depending on what computer I connect to this is not under my control
22:27:10[Saint]AlexP: failing that, I think it should be forced down the users throat that it almost certainly won't work on specific targets.
22:27:20lonoxmontshadows: what about taking a usb cord for it and cutting the data wires?
22:27:22[Saint]My main issue is that users seem to expect it should work.
22:27:28lonoxmontthen its just power only
22:27:36wodzThis actions 'rescue' mode is amusing, It uses at least 3 independent scrambling schemes for various transfers
22:27:43[Saint]lonoxmont: what about just holding a button during USB insert?
22:27:46wodzlonoxmont: or use 'usb condom' :P
22:27:49AlexP[Saint]: I have no real opinion to be honest - I'm just agreeing with wodz that if you think something should change, you need to bring it up on the dev mailing list
22:27:50gevaertsshadows: mount != write
22:28:21lonoxmontusb condom?
22:28:44[Saint]lonoxmont: modifying a USB cable seems a bit excessive when Rockbox has a "don't mount" function itself.
22:28:59shadowsgevaerts: for practical reasons, it is not sensible to allow that to happen if we know that usb access will result in corruption
22:29:05pamaurykugel: by the way, the other day I had a look at buflib because I would like to hack it with virtual memory for debugging purposes, and I was wondering why did you use this single union type (union buflib_data) instead of more explicit typing
22:29:17[Saint]Though, most people probably don't know about that, unless they've read the manual.
22:29:36kugelpamaury: code heritage :)
22:29:49kugelwhat's wrong with it?
22:30:14shadowsgevaerts: I agree it is a bug that needs fixed, I do not understand any part of the bug and only have the hardware target and some guess about how to trigger it some of the time
22:30:37shadowsI did not have corruption problems before usb was enabled by default
22:30:53lonoxmontwodz: lol
22:30:55kugelpamaury: you know, buflib existed before me, for plugins (created by Unhelpful), the union approach is still from these days
22:31:07shadowswhen I patch the code to disable usb by default, I do not have corruption issues
22:31:22 Quit krnlyng (Ping timeout: 246 seconds)
22:31:30shadowswhat the actual mechanism is in rockbox code on my Fuzev1 that corrupts data, I don't understand
22:31:45pamaurykugel: ah ok, because for someone who doesn't know the code, it's very very obscure, basically you can understand the protoype of a function without looking both the code and the callers
22:31:58pamaury*you cannot understand
22:32:00[Saint]Oh, that must be that #include corrupt_user_data_randomly
22:32:05shadowsI just know that it sucks when my music skips or stops playing and the player locks up, and I can later determine that the data is corrupted
22:32:11[Saint]Patch that out and you'll be fine.
22:32:15lonoxmont( ≖‿≖)
22:32:28pamaurykugel: and it's very hard to extend, like add a single field in the metadata
22:32:56pamaurywell not *very* hard but you need to fix quite a few places
22:32:59kugelpamaury: feel free to improve, but be aware that the per-alloc cookie is not constant, the name string is variable length and there's a field after it
22:33:20kugelso you can't just map a known header
22:33:39[Saint]kugel: since you're here and its the topic at hand, what is with the "dealloc" bit of the buflib debug screen?
22:33:45wodzcan't string be moved to the bottom then?
22:33:52pamauryyeah I know, actually I was thinking of "rewriting" it with proper typing. You can still do much better I think
22:33:57[Saint]It seems to be able to make a single deallocation, and then it falls over, printing the same message over and over.
22:34:13pamaurylike doing: |<string>|<metadata>|<data>| instead of |<metadata>|<string>|<data>|
22:34:24[Saint](and yes, I know, debug stuff - I was just wondering what the intention was)
22:34:29 Join saratoga [0] (123e11e0@gateway/web/freenode/ip.
22:35:01***Saving seen data "./dancer.seen"
22:35:27kugelpamaury: walking the allocs must be fast
22:35:50kugelcurrently you can jump to the next alloc using only the first field
22:36:26[Saint]Oh, awesome - that's a fun bug.
22:36:41[Saint]The Shortcuts viewer really doens't like deleting shortcuts too much.
22:36:55kugel[Saint]: that's not a bug, it's workign as intended
22:36:58pamaurykugel: yeah that's true, you could still define the fixed part of the metadata in a struct, that would be much more readable :)
22:37:40kugelthere is a huge comment at the beginning that describes the structure, I hoped it would be helpful enough
22:37:53pamauryyeah it's helpful
22:38:30[Saint]kugel: I'm not arguing, just let me get this clear: You can make a single deallocation, the entry stays in the list, then you cannot make any further deallocations on any other files, and after making the initial dewallocation every user event prints the same messgae...and that's intentional?
22:38:51pamauryit still misses a few things though, for example I had to read the entire code to figure out why is that that the data pointer needs not to be word aligned (because of moving)
22:39:17kugelpamaury: initially I wanted to put the strings into separate memory (thus making the cookie constant) but then it would have introduced an artificial limit
22:39:36pamauryyeah I understand, I thinking putting the strings elsewhere doesn't help
22:39:42pamaury*I think
22:40:03[Saint]I admit I don;t fully understand the intentions, but the way it acts I find it hard to believe the behaviour is intentional.
22:40:03 Join Guest11127 [0] (
22:40:11 Quit Guest11127 (Read error: Connection reset by peer)
22:40:13[Saint]Hard, but not impossible.
22:40:37pamauryanyway, just to say I might someday give it a try at "simplifying" it if you don't mind :)
22:40:39kugel[Saint]: you can only deallocate the very first allocation, which is a debug alloc allocated just for this purpose
22:41:01pamauryah, that's why there is a test allocation ?!
22:41:07pamauryI couldn't find the reason of this one ^^
22:41:31[Saint]Aha, so I guess the "bug" is it allowing you to attempt to deallocate others...I see. Thanks.
22:41:34kugelyea, it allows you to see if things still work after all allocs have been moved
22:42:04kugel[Saint]: this screen is for developers only, not for curious users
22:42:25lonoxmont>implying [Saint] isnt a developer
22:42:46[Saint]I don;t think that was a deliberate asshole move.
22:42:49kugelno, I'm saying the solution isn't designed for usability
22:43:26 Quit solrize (Ping timeout: 260 seconds)
22:43:28pamaurythere are lots of screen in the debug menus that only the person who wrote it understand, not even the others devs ;)
22:43:55pamaurythere are debug screens I need to read the code to remember the meaning, even though I wrote them :D
22:43:56kugelpamaury: the data pointer should be word aligned. it needs to be if you want to cast structs onto it
22:44:15[Saint]I spent a half day or so going through the code to attempt to find out what was happening, I just wanted to understand it, and now I do. So, yay. :)
22:44:30[Saint]Its nice to know that at least one other person has screwed up their eyebrows here.
22:44:33kugelbut if a later buflib_shrink() call changes the alignment buflib doesn't prevent that
22:44:40 Join Cultist_ [0] (
22:44:44pamauryyeah that's what I meant
22:45:12 Quit Cultist (Read error: Connection reset by peer)
22:45:13pamauryfortunately the code is well commented so I finally understood
22:46:36kugel[Saint]: btw, I was asking you what's your rbcodec solution :)
22:46:50 Join krnlyng [0] (~liar@
22:47:14 Quit Cultist_ (Read error: Connection reset by peer)
22:47:33 Join Cultist [0] (
22:48:29pamauryI was thinking about a trick to debug buflib users (having read the code I very hard, I couldn't find any bug so I really think buflib itself is okay): using virtual memory so that any time a buffer moves, its old address is invalidated and a new (virtual) one is used
22:50:45pamaurygood, apparently the charging code of imx233 works on stmp3700 with minimal modification, the ZEN/ZEN X-Fi/Mozaic will finally be able to charge
22:51:13 Quit Cultist (Read error: Connection reset by peer)
22:51:13 Join Cultist_ [0] (
22:51:21kugelpamaury: but they will usually overlap
22:51:45pamaurywhat do you mean overlap ? you mean several in one page ?
22:52:18kugeloh you mean the new address would be very different?
22:52:45kugelI meant that if a 1k alloc is moved down by 0.5k then the upper half overlaps with the old location
22:53:34pamauryyeah, it's only a virtual address trick, the physical addresses would be handled just as they are now. Two contiguous alloc would have very different virtual addresses
22:53:58kugelwould be awesome if VM could assist buflib. but why even move allocs in the first place?
22:54:05saratogasince you have a 32 bit address space you could have allocations just monotonically increase 4KB at a time (or whatever the page size is)
22:54:30pamaurysaratoga: yeah exactly what I plan to do
22:54:37pamauryexcept for a little catch
22:54:38lonoxmontsaratoga: but what happens when you hit the end
22:54:43saratogaloop around
22:54:46saratogabut you never will
22:55:27pamaurysaratoga: in buflib, there might be several alloc per page, so either you force one alloc per page (quite wasteful) or you allow several and then one physical page might be map by several virtual addresses, so you have to be careful with the cache, but that can work
22:55:56pamauryand yeah you'll never run out of addresses
22:56:08saratogawhy not do one alloc per page for debug purposes?
22:56:37kugelproper debug needs to be available in release builds
22:57:06saratogawell i guess doing several virtual pages per physical page is optimal if its not too hard to implement
22:57:15kugelI mean it would be a good start, of course, but we don't get lot of testing through debug builds
22:57:23saratogabut if you just want to see if there are any use after free errors, than a simple 1:1 mapping works fine i think
22:57:30pamauryit's not harder to map several VA to one PA than to map one VA to one PA
22:57:36saratogaah ok
22:57:43saratogathan obviously that is ideal
22:57:45 Quit kevku (Quit: KVIrc 4.3.1 Aria
22:57:51pamauryyou just need to be careful that two alloc don't share a cache line
22:58:01pamauryotherwise funny thing could happen ^^
22:58:05saratogakugel: well i think for most devices you wouldl not want to have VM running in release builds
22:58:09 Quit Narod ()
22:58:29kugelwhy not?
22:58:36saratogagiven how patchy VM support is on older ARM (if it exists at all)
22:58:40 Join Cultist [0] (
22:58:54 Quit Cultist_ (Read error: Connection reset by peer)
22:59:01kugelit need not be enabled on all targets
22:59:05pamauryobviously you only want to use it on targets which can do it
22:59:13kugeljust where it's easy and lightweight
22:59:16saratogayeah arm v5E or newer is probably less of a problem
22:59:24pamauryand non trivial VM requires more memory too
22:59:33saratogaalthough i wonder what the battery life hit is like
22:59:41pamauryyeah good question
22:59:48saratogadoes ARM9E have a TLB or any hardware for doing this efficiently?
23:00:12pamaurythey definitely have a TLB iirc
23:00:26saratogai guess since codecs rarely yield it might not matter much unless the screen is on, and by then the back light dominates
23:01:10saratogaactually how would you even setup VM in rockbox? everythign is basically in one address space
23:01:23pamaurysaratoga: on imx233 I use VM
23:01:32wodzside note: not all v5e cores have mmu ARM7-EJS lacks mmu
23:01:53saratogathe arm7e is probably the weirdest arm core so no surprise
23:02:02pamauryVM is very useful to have a cached, noncached and buffered view of the memory
23:02:32kugelsame on ams
23:02:50saratogaIIUC you can use the MMU to control how things are mapped and cached, but still have a 1:1 and sequential mapping of VA to PA
23:02:58saratogais that what you mean or are you doing something more
23:03:09kugelthere is also a patch somewhere to use it for NX/RO-data protection
23:03:19pamauryand the point of buflib is that you don't control the addresses, buflib does, which makes it perfect to have VM
23:04:55saratogai think it would be great to have the option to use VM on devices where it made sense
23:05:41*[Saint] can't seem to convince warble to compile again
23:06:01[Saint]...what did I do last time, and, why isn;t whatever I did still present? :'(
23:06:09 Quit wodz (Quit: Leaving)
23:07:08pamaurysaratoga: my plan is to use VM for debug/safety purpose though, I don't plan to rewrite buflib to avoid moving stuff around using the MMU
23:07:38pamauryIf it doesn't impact battery life and stability, why not enable it yeah
23:07:38saratogayeah that seems sensible
23:07:41saratogai'm very curious to see what bugs we find
23:07:54*pamaury thinks the theme engines will suffer
23:08:12kugelspeaking of it
23:08:24saratogaalso very interested to see kugel's rework
23:08:25pamauryalthough the most efficient way to debug this is to use buflib + MMU + rockbox in emulator + gdb
23:08:38kugelthere's still a bug that I fixed but did not push
23:09:59pamaurysaratoga: on another subjet, do you know who knows about the audo subsystem and radio in particular ? I pondering what is the best way to implement support for the STFM1000 which is a *digital* radio chip
23:10:10pamaury*audio subsystem
23:10:34kugelplease test
23:11:02saratogapamaury: sorry i've never looked at radio (or even used it)
23:11:45*[Saint] sets about rebasing g#566
23:12:03fs-bluebotGerrit review #566 at : Improve FAT driver. by Michael Sevakis (changes/66/566/3)
23:13:14 Quit n1s (Quit: Ex-Chat)
23:15:04[Saint]kugel: oh, crap - sorry, missed your highlights.
23:15:20saratogawow a lot of new gerrit tasks
23:15:31[Saint]Warble, a raspberrypi, ssh, and some pretty hacky helper scripts.
23:15:35[Saint]kugel: ^
23:15:56[Saint]otherwise known as "very ugly solution to a not so difficut problem"
23:16:30[Saint]I'm trying to get warble to compile again and I have no idea how I did it the first time though.
23:18:17saratogawarble + raspberry pi makes codec optimization so much easier
23:18:27saratogaif i'd had that in 2007, our codecs would be so much further along
23:18:29[Saint]Its a nice combo, yeah.
23:18:38saratogaso many years spent waiting for the e200 database refresh screen
23:19:00[Saint]I just like it for the incredibly low power usage, but I understand that it is useful to you for entirely different reasons.
23:19:37saratogajust being able to make a change and see if it worked (and get debug info on the screen!) in less than 5 minutes is pretty amazing
23:19:38*[Saint] feels rather stupid now.
23:19:47[Saint]Warble is an app target option?!?
23:19:54[Saint]That seems...odd.
23:20:20[Saint]Heh, asking me for screen dimensions.
23:20:59[Saint]Man, that was non-obvious, I only found it by accident updating my desktop player here.
23:21:46 Quit pamaury (Read error: Connection reset by peer)
23:25:07 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
23:27:58 Quit bertrik (Read error: Connection reset by peer)
23:32:24[Saint]WHen I say "ugly", I meant it too - it relies on the fact that console input gets stacked to work.
23:33:27[Saint]So it just dumps a full album or directories worth of audio into a single command and relies on the fact that the second command won;t be processed until the first has finished.
23:33:41[Saint]and so on.
23:34:00[Saint]Occasionally it falls over spectacularly, or paths get mangled.
23:35:25[Saint]JdGordon|: There's a really nice little Shortcuts viewer bug I just found before. If you delete a shortcut and stay in the shortcuts viewer you'll get a garbage entry that will crash the player approximately 50% of the time if you try to launch it.
23:39:08 Quit kugel (Ping timeout: 245 seconds)
23:42:18 Join Cultist_ [0] (
23:42:53 Quit Cultist (Read error: Connection reset by peer)
23:46:05 Nick Cultist_ is now known as Cultist (
23:47:40[Saint]hddscan2.ubi is approximately 1/10 of the way through.
23:47:48[Saint]After 4 days. :-S
23:48:38[Saint]Though, I guess, it would need to be running for years and years to make replacing the disk a more cost effective solution.
23:53:41 Quit pamaury (Quit: No Ping reply in 180 seconds.)
23:54:36 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
23:58:31 Quit pamaury (Client Quit)

Previous day | Next day