#emc-devel | Logs for 2008-11-22

[00:00:57] <jepler_> (A) it's happening in linux, so it shouldn't (B) but if you have measurements I won't argue with you
[00:01:12] <SWPadnos> I don't have measurements
[00:01:24] <jepler_> oh I see -- "why ain't it there" is the question?
[00:01:27] <jepler_> * jepler_ reads his e-mail
[00:01:34] <SWPadnos> but I do have experience with other filesystem-related things causing problems (notably kjournald)
[00:01:55] <SWPadnos> heh, yeah - I'm assuming it was left out for no apparent reason
[00:02:09] <SWPadnos> "less cluttered/bloated" and all
[00:03:46] <jepler_> I assume it was an accidental omission
[00:04:11] <SWPadnos> yeah, not one I'd expect us to be concerned about
[00:04:41] <SWPadnos> I'm not sure I'd add it to our RT kernel, but he can certainly compile his own if he likes :)
[01:42:41] <CIA-38> EMC: 03cmorley 07TRUNK * 10emc2/src/hal/classicladder/classicladder_gtk.c: Add cofirmation box before quitting
[01:45:02] <CIA-38> EMC: 03cmorley 07v2_2_branch * 10emc2/src/hal/classicladder/classicladder_gtk.c: Add confirmation box before quitting
[01:51:33] <jepler_> jepler_ is now known as jepler
[03:33:24] <cradek> hi ray!
[03:33:32] <cradek> how's it going up north?
[03:34:56] <cradek> my crazy cat is trying to eat the mouse pointer.
[03:50:40] <SWPadnos> jmkasunich, you don't need to re-sort the name list for aliases
[03:51:07] <SWPadnos> keep the alias list sorted, and do an on-the-fly merge sort when you traverse the list
[03:52:41] <SWPadnos> the only snag there is that you skip any item in the pin list which has an alias (for list, show, and save anyway)
[04:00:40] <jmkasunich> that won't work - you need data from the pin list, like the signal linked to, or the value
[04:00:57] <jmkasunich> duh, it will work, there are links both ways
[04:00:58] <SWPadnos> the alias list has an owner pointer, no?
[04:01:00] <SWPadnos> heh
[04:01:37] <jmkasunich> that idea has a lot going for it
[04:01:44] <SWPadnos> I should have said you need to skip pin list items with aliases, since they'll be seen from the aliases list
[04:01:49] <jmkasunich> right
[04:02:11] <jmkasunich> one ptr to pin list, one to alias list, compare the names, and do whichever is first in sort order
[04:02:21] <jmkasunich> when advancing the pin pointer, skip any pin with an alias
[04:02:25] <SWPadnos> right
[04:02:31] <jmkasunich> excellent ;-)
[04:02:37] <SWPadnos> there will need to be another method though
[04:02:43] <jmkasunich> for what?
[04:02:58] <SWPadnos> for find_pin_by_name, you want to match either the alias or original name
[04:03:09] <SWPadnos> so you don't want to skip pin list items with aliases
[04:03:20] <jmkasunich> find_pin_by_name doesnt' care about order, and doesn't need to traverse the alias list at all
[04:03:23] <SWPadnos> (or you just go through the pin list and compare both)
[04:03:29] <jmkasunich> exactly
[04:04:09] <jmkasunich> it slightly bugs me that find_pin_by_name is O(n) instead of say O(log(n)), but it's been that way all along
[04:04:17] <SWPadnos> heh
[04:04:37] <jmkasunich> if we ever start seeing speed issues, then I'll make the jump to AVL trees instead of linear lists
[04:05:15] <SWPadnos> I wonder if there are suitable routines in the kernel already
[04:06:05] <jmkasunich> they'd have to be available in both kernel and user space, with the same API
[04:06:13] <SWPadnos> hmmm. that's true
[04:06:26] <jmkasunich> the actual AVL code isn't the issue - I wrote some AVL code a couple years ago
[04:06:45] <jmkasunich> the work would be integrating it into all the existing code and structs
[04:07:38] <SWPadnos> yep, and dealing with the various functions (mostly (all?) in halcmd) that do their own list traversal
[04:07:45] <jmkasunich> yep
[04:08:04] <jmkasunich> thats why it can wait till we actually see a speed problem
[04:08:13] <jmkasunich> and then, we profile before assuming the cause
[04:08:22] <SWPadnos> heh
[04:08:58] <SWPadnos> and then, we divide the problem by a lot by (a) hashing names or (b) using a hierarchy or (c) making a bunch of head pointers (one for each character, for example) ...
[04:09:05] <SWPadnos> many many ways to optimize
[04:09:26] <jmkasunich> yeah
[04:09:43] <jmkasunich> I think the reasoning behind the AVL was to avoid having halcmd and such doing their own traversal
[04:09:50] <SWPadnos> though algorithmic optimization (like switching from flat to tree) is usually the best
[04:09:54] <jmkasunich> have a hal_lib api that is "get_next(name)"
[04:10:13] <SWPadnos> right, add get list functions and stuff
[04:10:43] <SWPadnos> the trouble is that I think that requires a lock on hal_data
[04:10:44] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/src/emc/usr_intf/axis/extensions/togl.c: fix a segfault
[04:10:55] <SWPadnos> that's from coverity :)
[04:11:07] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/src/hal/user_comps/vcp/tokenizer.h: note that tf_get_token() returns NULL on error
[04:11:09] <jmkasunich> traversing a linear list with get_next is O(n^2), but with AVL it is O(n*log(n))
[04:11:21] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/src/hal/user_comps/vcp/vcp_main.c: dont leak memory
[04:11:42] <jmkasunich> I wonder if seb realizes that vcp is deprecated?
[04:11:43] <SWPadnos> it should only be O(n)
[04:11:49] <jmkasunich> guess a bug is a bug
[04:12:06] <jmkasunich> SWPadnos: nope, not if you aren't holding a lock the entire time
[04:12:20] <SWPadnos> if you're assuming that you have to find the last known entry again N times, you're still subject to that entry going away
[04:12:39] <jmkasunich> given a name, you have to find it ( On or OlogN depending on the struct), then get the next (O1)
[04:12:39] <SWPadnos> though you can still find the first entry greater than the last one returned
[04:13:01] <jmkasunich> exactly, you don't search for ==, search for >
[04:13:03] <cradek> wonder how many of these 'return null' just move the error up
[04:13:21] <SWPadnos> yeah, I was wondering whether the fixes are all correct or not
[04:13:36] <SWPadnos> some of them are simple - if (a==NULL) don't deference a
[04:13:50] <cradek> apparently we don't trigger them (often?) anyway
[04:13:50] <SWPadnos> but return instead may or may not be correct
[04:14:01] <cradek> most are unusual error conditions
[04:14:06] <SWPadnos> (that's why I haven't done anything other than mark one "false")
[04:15:22] <SWPadnos> huh. the fix(es) in vcp_main.c look wrong
[04:16:07] <SWPadnos> if item_name has already been incremented to the end of an entry (a "}" character), then freeing it shouldn't work since it no longer points to the beginning of the allocated block
[04:16:17] <jmkasunich> hmm
[04:16:23] <jmkasunich> (still updating here)
[04:16:30] <SWPadnos> I'm just reading the commit mesasge
[04:17:03] <SWPadnos> ah, ok. "}" may be returned as a token
[04:20:26] <jmkasunich> yeah, I don't see anyplace where item_name is advanced
[04:20:54] <SWPadnos> nope - my bad. looking at the whole file is better than the few context lines in the commit message :)
[04:21:00] <jmkasunich> heh
[04:21:32] <jmkasunich> tokenizer.h says 'tf_get_token()' returns the next token from the file. It is returned as a malloc'ed string, and should be freed when the program is done with it.
[04:21:59] <SWPadnos> right, and the tokenizer only runs once anyway
[04:22:17] <SWPadnos> well, the file is parsed once anyway
[04:22:57] <jmkasunich> not true
[04:23:17] <SWPadnos> really?
[04:23:31] <jmkasunich> tf_open only opens the file and stashes some data (like the list of delimiters, etc)
[04:24:07] <jmkasunich> tf_get_token() parses one token and updates a pointer to the current location in the file
[04:24:32] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/src/hal/drivers/mesa-hostmot2/firmware/src/regmap: This looks like a big diff, but all it does is remove all the ^M characters.
[04:26:00] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/src/hal/drivers/mesa-hostmot2/firmware/src/regmap: new regmap from Peter
[04:26:17] <SWPadnos> ?
[04:27:09] <jmkasunich> he probably noted that the new regmap has no ^M, and that diff would be both huge and contain some real changes
[04:27:22] <jmkasunich> so he did one diff with the ^M removal, and then another with the real changes
[04:27:33] <SWPadnos> right - figured it out finally :)
[05:40:37] <CIA-38> EMC: 03cmorley 07TRUNK * 10emc2/src/hal/classicladder/classicladder.c: Add a debug option so all RTAPI messages can be read in the terminal
[12:34:35] <CIA-38> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/hal/opto22.lyx: add a bit more to the opto22 info
[13:23:57] <CIA-38> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/drivers/ (AX5214H.lyx opto22.lyx): add driver files
[16:12:58] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/configs/sim/axis.ini: french translation massive update
[16:12:59] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/common/ (6 files): french translation massive update
[16:13:00] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/ (9 files): french translation massive update
[16:13:02] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/config/ (stepconf_fr.lyx stepper_fr.lyx): french translation massive update
[16:13:10] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/examples/ (gcode_fr.lyx spindle_fr.lyx): french translation massive update
[16:13:11] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/gui/ (12 files): french translation massive update
[16:13:12] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/install/Latency_Test_fr.lyx: french translation massive update
[16:13:22] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/quickstart/stepper_quickstart_fr.lyx: french translation massive update
[16:13:23] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/hal/components_fr.lyx: french translation massive update
[16:13:23] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/src/po/ (fr.po fr_axis.po fr_rs274_err.po): french translation massive update
[16:51:14] <tissf> hi all
[16:51:47] <BigJohnT> hi tissf
[16:54:50] <tissf> BigJohnT: it remains only the doc of Ladder to translate
[16:55:41] <tissf> this is a big piece
[16:57:02] <jepler> tissf: I think you may have missed an image file
[16:57:17] <tissf> ahah ?
[16:57:29] <jepler> +`/home/francis/emc2.TRUNK/docs/src/common/xemc_fr.png', needed by
[16:57:29] <jepler> +`depends/Master_User_fr.d'. Stop.
[16:57:38] <jepler> actually I guess it's a wrong path
[16:57:42] <tissf> it is possible
[16:58:08] <tissf> ok sorry I commit it now
[16:58:25] <jepler> thank you
[17:16:34] <tissf> jepler: bad path ! the image already commited
[17:27:58] <jepler> thanks again
[17:44:00] <tissf> oops I made a mistake with xemc_fr.png and tkemc_fr.png I have to cvs remove :(
[18:49:00] <tissf> rhaaa ! I can't compile anymore the _fr docs! no error message...
[19:47:05] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/src/hal/drivers/mesa-hostmot2/ioport.c: remove a now-unused variable
[19:47:38] <seb_kuzminsky> tissf: are you compiling html docs or pdf docs or both?
[19:51:57] <skunkworks> wow - paul actually gave an example..
[19:56:25] <jepler> yeah but he's still full of shit
[19:57:06] <skunkworks> :)
[20:16:40] <tissf> seb_kuzminsky: both
[20:18:38] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/src/rtapi/rtai_rtapi.c: Made the function match the prototype (to fix a couple of compile warnings).
[20:21:51] <BigJohnT> tissf: when you get your mess fixed you can fix the one I have too :)
[20:22:26] <tissf> John what is your mess ?
[20:22:51] <BigJohnT> I added a directory and a file :?
[20:23:00] <BigJohnT> :/
[20:23:18] <BigJohnT> and I missed something in the submakefile
[20:23:58] <BigJohnT> so I get IOError: [Errno 2] No such file or directory: 'drivers_AX5214H.xml'
[20:24:58] <BigJohnT> I'll work on it in a bit the dog want's to take me out for a walk
[20:25:09] <tissf> :)
[20:25:41] <BigJohnT> be back in a bit
[20:26:11] <tissf> ok
[20:38:47] <tissf> bbl
[21:13:04] <seb_kuzminsky> tissf: looks like your "french translation massive update" commit this morning (2008 Nov 22 16:12 UTC) broke it, though i'm not sure what part was problematic
[21:13:39] <BigJohnT> jepler: gnucash is just what I was looking for thanks
[21:16:11] <BigJohnT> aram needs a link to the help menu :/
[21:24:47] <SWPadnos> BigJohnT, I think he's using tkEMC
[21:25:17] <BigJohnT> does tkEMC have the help menu?
[21:25:21] <SWPadnos> so the cycle start function may be a different key or nonexistent, and the help menu my not give much help
[21:25:26] <SWPadnos> lemme check
[21:26:35] <BigJohnT> yep it is right there
[21:26:51] <SWPadnos> yes, but I don't see anything that specifically talks about cycle start
[21:26:51] <BigJohnT> wow a dro for old farts
[21:27:03] <SWPadnos> there are pause and resume buttons, but I don't know if they're the same
[21:27:03] <BigJohnT> you gotta scroll down a while
[21:27:09] <SWPadnos> did that :)
[21:27:18] <BigJohnT> ok, then I'm confused
[21:28:08] <SWPadnos> I don't see "cycle" anywhere in there, but who knows
[21:28:24] <SWPadnos> it's not exactly easy to search that text (as presented by tkemc)
[21:29:23] <SWPadnos> nope, it's not there
[21:32:45] <BigJohnT> I thought he wanted to resume a program that was stopped with M1?
[21:32:57] <SWPadnos> yes, that's what I thought too
[21:33:16] <SWPadnos> I don't know whether you need to "pause", "run", or something else to do that though
[21:33:33] <BigJohnT> resume program...
[21:33:46] <SWPadnos> well OK then :)
[21:36:47] <BigJohnT> wow, I finally figured out how to make tkEMC run
[21:37:00] <SWPadnos> load sim/tkenmc ??
[21:37:04] <SWPadnos> -n
[21:37:21] <SWPadnos> or do you meant "run a G-code program"?
[21:37:23] <SWPadnos> -t
[21:37:29] <BigJohnT> yea
[21:37:44] <BigJohnT> hmmm it don't stop at M1
[21:38:02] <SWPadnos> that's optional stop, you need to set the correct HAL pin to make it stop
[21:38:34] <BigJohnT> yep the optional stop button did the trick
[21:39:42] <SWPadnos> oh right - I forgot that Alex added that
[21:39:51] <SWPadnos> I guess I shuold have looked at the screen a little more :)
[21:40:01] <SWPadnos> argh. can't type (again)
[21:40:20] <BigJohnT> time to start drinking :)
[22:29:39] <CIA-38> EMC: 03cradek 07TRUNK * 10emc2/configs/sim/axis.ini: I don't think he meant to do this
[22:30:51] <jepler> haha oops
[22:46:21] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/docs/src/gui/ (mini_fr.lyx tkemc_fr.lyx): use relative paths instead of tissf's home dir
[22:47:17] <CIA-38> EMC: 03seb 07TRUNK * 10emc2/docs/src/common/user_intro_fr.lyx:
[22:47:17] <CIA-38> EMC: Even though the included .png file and the .lyx file are both in
[22:47:17] <CIA-38> EMC: docs/src/common/ already, the .lyx file is included in another .lyx
[22:47:17] <CIA-38> EMC: file in docs/src/gui/, so the path to the .png file needs to explicitly
[22:47:17] <CIA-38> EMC: find common/
[22:47:19] <CIA-38> EMC: I think.
[22:50:14] <BigJohnT> seb_kuzminsky: I had that happen before
[22:50:43] <seb_kuzminsky> the include path thing?
[22:51:04] <cradek> neat, looks like chris M fixed save in CL - I'll try it later
[22:51:35] <BigJohnT> yea, hmm it needed to be in the same directory or a subdirectory below the lyx file or something like that
[22:51:49] <BigJohnT> cradek: yep chester fixed it
[22:52:19] <seb_kuzminsky> cradek: hm2 still working well for you?
[22:52:26] <BigJohnT> or lyx I think would put the whole path in there ie your home directory
[22:52:32] <cradek> seb_kuzminsky: yes! I haven't used it much but it is working.
[22:52:38] <seb_kuzminsky> :-)
[22:52:49] <cradek> seb_kuzminsky: I'm anxious for the envoder velocity output now - I always want something don't I?
[22:52:55] <seb_kuzminsky> i'm hoping to do encoder velocity stuff tonight
[22:53:13] <cradek> cool, I will help you test it later then.
[22:53:20] <seb_kuzminsky> yay
[22:53:21] <BigJohnT> don't they use envoders on warp drives :)
[22:53:30] <cradek> will it be safe across an index?
[22:53:41] <seb_kuzminsky> do you want it to be?
[22:53:41] <cradek> (the way I have to do it now freaks out on index)
[22:53:46] <cradek> yes! :-)
[22:53:53] <seb_kuzminsky> ok then yes it will be ;-)
[22:53:56] <cradek> yay
[22:54:33] <cradek> BigJohnT: my cat sits on my left arm, so the letters on the left side of the keyboard are only approximate
[22:54:59] <BigJohnT> ROFLMAO
[22:55:33] <BigJohnT> my last cat would snuggle under my armpit while I watched tv and it weighed 20 lbs
[22:57:14] <BigJohnT> and I don't have any excuse for my typos :)
[22:58:28] <seb_kuzminsky> ok the docs build again, i'm taking off for the afternoon
[22:58:31] <seb_kuzminsky> see y'all tonight
[22:58:34] <cradek> cheers
[23:47:23] <tissf> Thanks Seb
[23:50:39] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/gui/ (tkemc.png tkemc_fr.png tkemc_fr.lyx): french translation fix images wrong path solved by duplicating the images!
[23:50:46] <CIA-38> EMC: 03tissf 07TRUNK * 10emc2/docs/src/common/ (4 files): french translation fix images wrong path solved by duplicating the images!
[23:54:44] <BigJohnT> hey tissf I finally found my typo in the submakefile
[23:55:15] <tissf> good John
[23:55:44] <BigJohnT> have you had a chance to look at asciidoc?
[23:57:00] <tissf> no :( I have them a failure of the Internet for 8 days!
[23:57:52] <BigJohnT> heck it takes me 8 days to download anything out here in the woods
[23:59:59] <tissf> :) finally, a new modem solved my problem