#emc-devel | Logs for 2009-01-17

[00:16:34] <skunkworks> jepler: pluto_servo has been running for a good 4 days without problems. :)
[03:45:18] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/share/axis/images/axis-lathe.ngc: make this right-side-up
[05:19:17] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/src/emc/rs274ngc/ (interp_queue.cc interp_convert.cc): this gives the correct paths but was written by a lunatic. in dire need of cleanup.
[05:20:41] <SWPadnos> heh
[05:38:14] <cradek> after wading in the lunacy for a while, and thinking back to jmk's/jepler's/your conversation about which way arcs should go, I suspect I have "left"/"right" compensation reversed on lathe
[05:39:16] <cradek> they appear correct on the screen, but I think they should look backward like arcs
[05:42:33] <SWPadnos> hmmm
[05:43:00] <SWPadnos> yes, I think you need to be right-side up when deciding what's on the left or right
[05:43:15] <SWPadnos> ie, perpendicular axis + pointing out of the screen at you
[05:43:33] <cradek> yeah, I bet it's wrong. dangit.
[05:44:12] <SWPadnos> I wonder if this is a reason to put the tool slide in the back
[05:44:26] <SWPadnos> I think that gives you a right-side-up coordinate system
[05:44:45] <cradek> maybe so, heh
[05:45:59] <cradek> seems silly to design a machine for that reason
[05:46:27] <SWPadnos> I don't think the machine necesasrily cares, but the machinist might :)
[05:47:58] <SWPadnos> if I'm turning an outside profile (the chess pawn say), going toward the headstock like a nice little machinist should (from Z+ toward Z-), I would expect to specify "cutter to left of path" compensation
[05:48:15] <SWPadnos> assuming that the slide is in the front
[05:48:30] <cradek> yeah it seems so natural
[05:48:34] <cradek> I never thought twice about it
[05:48:37] <SWPadnos> right, but matheatically backwards
[05:48:50] <cradek> I bet controls have done it both ways :-/
[05:48:52] <SWPadnos> so I'm not sure what's there is bad, even if it is "wrong"
[05:48:55] <SWPadnos> probably
[05:50:18] <cradek> I wonder if I have enough HNC docs to see which way arcs went on it (it didn't have comp of course)
[05:50:32] <cradek> hey how's yours coming?
[05:50:47] <SWPadnos> it hasn't moved, unfortunately
[05:51:04] <cradek> well, indoors is a start, at least
[05:51:14] <SWPadnos> yeah
[05:51:16] <cradek> you think it would work as-is?
[05:51:45] <SWPadnos> no, too many cut wires
[05:51:52] <cradek> ah, darn
[05:52:02] <cradek> they all plug in. too bad they were cut.
[05:55:06] <SWPadnos> there's ome place where there's a pipe thread visible, with some wires cut off just inside
[05:55:24] <SWPadnos> I don't know if they used a hatchet and then pulled off the little bit of conduit or what
[05:56:00] <cradek> oh on the three conduits
[05:56:13] <SWPadnos> I only noticed it on one of them
[05:56:30] <SWPadnos> I thought it was the main power input, but jmkasunich thought that should be on the other side
[05:56:53] <SWPadnos> it's too bad it got so darned cold
[05:57:04] <cradek> the main power goes in the right side, and runs underneath the lathe and then through one of those three conduits
[05:57:23] <cradek> so you both might be right
[05:57:54] <cradek> only a single phase goes to the control
[05:59:03] <SWPadnos> brrrr
[05:59:45] <SWPadnos> ok, the control box at the tailstock end has two fine looking conduit fittings on it - one on the front and one on the back (of the lathe, not the box)
[06:00:00] <SWPadnos> there are no wires going to those fittings (I opened the cover)
[06:00:32] <cradek> I bet one of those used to be power in
[06:00:34] <SWPadnos> on the other side (headstock end), near the floor, is the bare thread fitting with the 3 or 4 cut wires in it (I didn't look, it's 26 degrees in the garage)
[06:00:43] <cradek> power goes to the obvious place (top of the fuses)
[06:00:55] <SWPadnos> right, and the disconnect
[06:01:38] <cradek> dang, you need some heat in there
[06:01:42] <SWPadnos> yeah
[06:01:51] <SWPadnos> I have a kerosene heater
[06:01:53] <cradek> you can get quite a bit with 240V x 30A
[06:01:57] <SWPadnos> heh
[06:02:06] <cradek> that's what I have - works great
[06:02:07] <SWPadnos> true, I do have a few 200W resistors
[06:02:38] <SWPadnos> but since we're leaving town tomorrow night (oh, tonight), I probably won't get started right now
[06:03:12] <SWPadnos> it figures though. I finally get a lathe, and I think I'll actaully get to it and the mill, and a job I've been trying to get for 5 years finally gets the go-ahead
[06:03:32] <SWPadnos> which is good, since I charge others a lot more than I charge myself for the time :)
[06:03:34] <cradek> ah, figures
[06:06:20] <SWPadnos> it is weird though. I just learned that a friend in Minneapolis is about to lose his house, but I have more work than I can do at the moment
[06:06:31] <SWPadnos> (too bad he doesn't do what I do, or I could send some his way)
[06:06:35] <cradek> yikes
[06:06:58] <cradek> so many people are so screwed right now
[06:07:02] <SWPadnos> yep
[06:07:11] <SWPadnos> I think a lot of people don't even know it
[06:07:14] <SWPadnos> or how bad it is
[07:09:02] <KimK_> KimK_ is now known as KimK
[16:18:47] <jmkasunich> SWPadnos: I was guessing about the power entry, assuming it would go into the cabinet with the disconnect switch
[16:23:59] <cradek> hi jmk
[16:25:20] <cradek> bbl
[16:25:47] <jmkasunich> hibye
[16:28:44] <SWPadnos> yep, I think you were right about it though :)
[16:28:47] <SWPadnos> seeya
[16:29:04] <jmkasunich> the hibye was to cradek, I'm still here
[16:29:11] <SWPadnos> oh, I see
[16:29:42] <jmkasunich> 26 in the garage eh? what is it outside?
[16:30:04] <SWPadnos> it was about -15 last night
[16:30:06] <jmkasunich> last couple days here, the high was 11, low was -11
[16:30:08] <SWPadnos> it's up to +5 now
[16:30:24] <SWPadnos> I found out that our thermometer bottoms out at -30C :)
[16:33:06] <jmkasunich> I sure my garage is even colder than yours (detached, so no heat source at all)
[16:33:13] <jmkasunich> and I have work I need to get done on the mill in there
[16:33:23] <SWPadnos> that is, as they say, teh sukc
[16:33:32] <jmkasunich> yes
[16:33:33] <SWPadnos> time to get out the kereosene heater
[16:33:40] <jmkasunich> no
[16:33:42] <SWPadnos> and go work on stuff tomorrow :)
[16:33:50] <jmkasunich> or the next day, or...
[16:33:53] <SWPadnos> heh
[16:33:57] <jmkasunich> delivery date for this project is end of Feb
[16:34:03] <SWPadnos> after leaving the heater on for 24 hours
[16:34:20] <jmkasunich> unvented combustion heaters and tools are a bad combo
[16:34:22] <archivist> and get condensation on the toys
[16:34:35] <jmkasunich> the moisture from the heater woiuld conde ,,, what he said
[16:34:37] <SWPadnos> well, there are always tradeoffs
[16:35:09] <jmkasunich> I have a 1500W radiant electric heater, I'll use that once the temp gets above single-digits
[16:35:16] <archivist> I hates the cold, I just came back in to find my fingers
[16:35:18] <skunkworks> after about an hour - it will start raining in the garage :)
[16:35:34] <SWPadnos> I was thinking about doing something with a 50-100W light bulb inside each machine, maybe with a temperature switch to turn them on
[16:35:50] <SWPadnos> just to reduce condensation
[16:35:51] <jmkasunich> yeah, I've thought about that, but been too lazy
[16:36:01] <jmkasunich> the van norman doesn't really have an "inside" though
[16:36:23] <jmkasunich> one winter I wired a number of metal cased power resistors in series with a line cord, maybe 20W each x 4
[16:36:57] <jmkasunich> when I wasn't using the mill, sort of clamped them between the table and the underside of the ram
[16:37:38] <jmkasunich> they seemed to do the job, but setting them up and removing them each time was a pain, and I was a bit nervous about safety
[16:38:12] <SWPadnos> I can imagine
[16:38:34] <SWPadnos> I have a similar set of resistors, and they're probably a better idea than the light bulbs (though bulbs do have an indicator that they're on :) )
[16:39:38] <jmkasunich> I've thought about a cartridge heater in a block of aluminum, with a properly strain-reliefed line cord, and a klixon that would turn it off if it got too hot (for example, if it lost thermal contact with the machine)
[16:40:07] <jmkasunich> if I put a couple holes in the block, it would be easy to clamp it to the table
[16:40:40] <archivist> steal the wifes iron
[16:41:36] <jmkasunich> probably too many watts in an iron
[16:41:43] <jmkasunich> besides, no wife (and no iron)
[16:42:44] <archivist> Im wife free and cant remember if there is an iron at home
[16:46:19] <SWPadnos> the hard part is predicting when condensation might happen, so you can turn the heater on ahead of time
[16:46:42] <jmkasunich> you pretty much need to leave it on
[16:46:56] <jmkasunich> which is why a modest power is the goal
[16:46:59] <SWPadnos> yep
[16:47:13] <SWPadnos> I guess just keeping it a couple degrees above ambient is the goal
[16:47:16] <jmkasunich> if you have a ton of iron, the best you can do is keep it a few degrees above air temp
[16:47:35] <jmkasunich> the nasty case is the first spring day when temps rise 30 degrees in 12 hours
[16:47:49] <archivist> small micro measur air and metal and predict the dewpoint
[16:47:50] <jmkasunich> takes a lot of joules to heat 1800 lbs of cast iron 30F in 12 hours
[16:48:02] <jmkasunich> * jmkasunich wonders how many, starts figuring
[16:48:42] <archivist> insulate the room so changes cant happen
[16:48:51] <SWPadnos> heh
[16:48:59] <jmkasunich> cast iron, 0.46 Kj/kg*K
[16:50:07] <SWPadnos> more than your service
[16:50:10] <jmkasunich> 1800 lbs = ~800kg, 30F = ~17C, so 6256 Kj = 1.74 kWh
[16:50:21] <jmkasunich> Kj, not kW
[16:50:25] <SWPadnos> oh, true
[16:50:36] <jmkasunich> given say 8 hours, that would be 217W
[16:50:38] <SWPadnos> 1J/s = 1W
[16:51:22] <SWPadnos> I forgot about the conversion to KwH though, which is a big one :)
[16:51:27] <jmkasunich> heh
[16:52:17] <jmkasunich> 100W of heat plus a semi-permeable cover (to reduce convection loss while not trapping moisture) would probably suffice
[16:52:39] <SWPadnos> I suppose I should get moving. we're headed down to DC this evening
[16:52:53] <SWPadnos> I oughtta eat and pack before we leave
[16:52:55] <jmkasunich> work or fun?
[16:52:58] <SWPadnos> fun
[16:53:01] <jmkasunich> cool
[16:53:03] <SWPadnos> going to the Inauguration
[16:53:31] <SWPadnos> we didn't score tickets, but oh well
[17:14:07] <stustev> I wish I could have been here yesterday afternoon for more of the 'wrapped' axis discussions. I only have about 45 minutes now (life and work interfere with EMC) UGH
[17:14:29] <SWPadnos> darned life and work!
[17:14:58] <stustev> the viper has 'wrapped' axis for both B and C. C is the infinite axis - B is +- 120 degrees
[17:15:30] <stustev> SWPadnos: yes - darned life and work
[17:15:42] <archivist> how would you cut a helical on it then
[17:16:06] <stustev> helical what?
[17:16:21] <SWPadnos> I think jepler mentioned the case where you have an axis that can't physically wrap, but you'd still want to be able to run wrapped G-code on it
[17:16:31] <archivist> helical anything worm etc
[17:16:34] <stustev> it will do anything an "unwrapped" machine will
[17:17:06] <stustev> SWPadnos: you describe the B axis on the Viper
[17:17:48] <stustev> archivist: the program just looks different - the machine capabilities are the same
[17:18:21] <stustev> I think the wrapped axis is easier for program reading
[17:18:28] <SWPadnos> I think the things we stopped on were (a) should there be a G-code to change modes, and (b) should the mode be selectable per axis
[17:18:54] <SWPadnos> there would need to be something in the ini file in either case, and that could be per axis
[17:19:46] <stustev> I have no experience with wrapped and unwrapped on a machine
[17:20:20] <stustev> I have both types of machines but all axes on each machine agree
[17:20:52] <SWPadnos> ok. can you switch modes on a given machine?
[17:20:55] <stustev> the machines that have infinite axes have wrapped rotary motion for all rotary axes
[17:21:32] <stustev> certainly - the parameters allow you to set the machine (per axis) how you want (like the ini file)
[17:21:50] <stustev> I have never tried to mix them - I have never changed one
[17:22:31] <stustev> the machines (like the cinci) that have no infinite rotaries are all unwrapped (linear) axes
[17:23:46] <stustev> my post processor allows me to specify (per axis) how the g code output is formatted
[17:23:56] <stustev> I could post to a machine with mixed mode
[17:24:17] <stustev> to me that would be very confusing to the operator
[17:24:40] <stustev> the programmer, post processor, control and machine will not care
[17:25:18] <stustev> during set up the operator will have to handle the different motion modes (very confusing)
[17:26:29] <stustev> the most pervasive reason to use 'wrapped' mode is during the tape prove out the operator must read the program
[17:27:24] <stustev> in the 'wrapped' mode the sign of the command tells you the direction of motion - you don't have to think about it or compare previous commands
[17:28:51] <jtr> logger_dev: bookmark
[17:28:51] <jtr> Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emcdevel/2009-01-17.txt
[17:29:33] <SWPadnos> stustev, there was a concern about numbers near zero turning into 360 degree moves
[17:29:34] <stustev> this can be confusing at times - eg. when the C axis is at 180 the apparent B axis motion is backward operator
[17:29:52] <stustev> you have that in both modes
[17:29:56] <SWPadnos> since -0 (from 0) means "go around once and stop here)
[17:29:58] <SWPadnos> "
[17:30:23] <SWPadnos> no, in absolute mode, if you're at zero and move to 0, there's no motion
[17:30:45] <archivist> how do you set more than one turn
[17:30:49] <SWPadnos> in wrapped mode, all motion commands result in some motion, so moving "here" means "go around once and stop here"
[17:31:00] <SWPadnos> instead of "stay here"
[17:31:29] <archivist> except 0 I would of thought
[17:31:41] <stustev> -0 and 0 gives no motion either way
[17:31:52] <SWPadnos> ok
[17:32:09] <stustev> archivist: multiturn requires G91 or multiline
[17:32:11] <SWPadnos> I think the spec we have (though I never saw it) says there will always be motion
[17:32:49] <archivist> multiline seems a mess
[17:33:04] <stustev> then use g91
[17:37:04] <stustev> SWPadnos: in all cases g91 x0 y0 z0 a0 b0 z0 u0 v0 w0 results in 'no motion' :)
[17:37:50] <SWPadnos> heh
[17:38:05] <SWPadnos> I really mean it - go nowhere from here!
[17:38:17] <stustev> but if you want to make the machine move one revolution from 0 to -0 that will be fine also
[17:38:19] <stustev> heh
[17:39:09] <SWPadnos> I don't know the specifics of the question, I only remember it coming up last night
[17:39:44] <stustev> I misunderstood your comment about the numbers near zero turning into 360 motion
[17:39:59] <SWPadnos> that was a comment from last night
[17:40:08] <SWPadnos> you have rounding and instability issues
[17:40:31] <stustev> when the B axis approaches zero the C axis solution is sometimes very severe (lots of C axis rotation)
[17:40:32] <SWPadnos> if the position is 0+ and you move +0, that turns into 360- degrees
[17:40:51] <SWPadnos> this would be a problem on a single-axis machine, it has nothing to do with kins
[17:41:49] <stustev> NCL will handle this - just not elegantly
[17:42:11] <stustev> it is not kins it is the calculated solution to the motion
[17:42:18] <SWPadnos> this may be a difference between EMC and other machines - when EMC displays 0.000 as the position, it actually has many more digits that it's not showing. older machines might actually have only 3 or 4 digits of resolution
[17:42:39] <stustev> if you are cuttiing a surface the normals are not 'exactly' consistant
[17:42:44] <archivist> I wonder if the software should make sure 0 numbers are really 0 or consistent (behind the scenes)
[17:43:19] <SWPadnos> archivist, it doesn't matter if it's 0.000 or 10.000
[17:43:53] <stustev> as you approach an axis zero the normals may require a large axis rotation -back and forth- as the tool path interates across the surface
[17:43:53] <SWPadnos> if you're at 10.0000000000001 and get a move to +10, there will be 359.99999999999999 (ish) degrees of motion
[17:43:55] <archivist> Im thinking of the error in a few thousand revs
[17:44:07] <SWPadnos> ssure
[17:44:22] <archivist> I want the wrapped 0 to be 0
[17:44:25] <SWPadnos> you have a singularity if you try to cross the axis of rotation
[17:44:47] <stustev> in my example the machine is irrelevant - you can see it in the gcode
[17:45:44] <SWPadnos> I need to get moving. hopefully some of the people who know the issues will be here soon
[17:45:56] <stustev> see you later
[17:46:02] <stustev> I must go also
[17:46:03] <stustev> thanks
[18:40:43] <cradek> like SWPadnos the numeric instability problem really worries me
[18:41:12] <cradek> even if we don't introduce the error, there are lots of ways position gets quantized (like to encoder resolution)
[18:43:03] <cradek> probing does that, machine off/on does it
[18:45:23] <cradek> within a running program it should be fine I think
[18:45:49] <cradek> and at the beginning of the program the axis will get safely positioned anyway
[18:53:23] <archivist> Im trying to quantify how many revs a pair of axis need to be in sync for
[19:09:19] <CIA-1> EMC: 03flo-h 07TRUNK * 10emc2/src/emc/usr_intf/stepconf/ (stepconf.py stepconf.glade): replaced tabs; added missing shortcut keys; split symlink and shortcut; clean up
[20:00:12] <alex_joni> hmm.. too bad BigJohnT is not around
[20:01:23] <alex_joni> the User pdf has some borken pictures in it, they used to be resized, now they are too big
[20:02:56] <SWPadnos> are they resampled or do (did) they just get the resolution in DPI changed?
[20:03:18] <alex_joni> I think just the lyx foo to resize them to page width is broken
[20:03:42] <SWPadnos> yeah - I'm just wondering how the resize is done
[20:03:55] <alex_joni> I think convert does it
[20:03:59] <SWPadnos> heh
[20:04:03] <alex_joni> at some point across the toolchain
[20:04:07] <SWPadnos> I'm wondering what method is used by convert :)
[20:04:16] <SWPadnos> I'll look it up if I get bored some day :)
[20:04:17] <alex_joni> biqubic :P
[20:04:26] <SWPadnos> ok, that's a bad way
[20:04:32] <SWPadnos> since it implies resampling
[20:04:33] <alex_joni> * alex_joni made something up
[20:04:41] <alex_joni> probably DPI
[20:04:42] <SWPadnos> yeah, and spelled it wrong too
[20:04:50] <alex_joni> I know.. that was on purpose :P
[20:04:53] <SWPadnos> heh
[20:04:56] <alex_joni> no to mix it with bicubic
[20:05:07] <alex_joni> maybe should have said biqubique
[20:05:22] <SWPadnos> byekyoobique
[20:06:00] <alex_joni> hmm.. it's pretty odd to see the only mention of HAL in the User manual is in the glossary
[20:06:21] <SWPadnos> hmmm. maybe there should be a "beginner's guide"
[20:06:33] <SWPadnos> ie, rename the user manual
[20:06:42] <SWPadnos> and rename the advanced one "Users Guide"
[20:07:03] <alex_joni> the integrators manual gently touches some parts of HAL
[20:07:18] <SWPadnos> the average user shouldn't care about HAL actually
[20:07:41] <SWPadnos> in a sense, we have three types of user (but I may discover more as I type):
[20:07:52] <SWPadnos> 1) machine operator
[20:08:11] <SWPadnos> this person doesn't need to know a thing about how to configure EMC2 or HAL
[20:08:16] <archivist> gcode jockey
[20:08:32] <SWPadnos> they only need to know how to run EMC2 (from the desktop or whatever), and how to load files
[20:08:54] <SWPadnos> if the files come from network or removable media, then they also need to know how to deal with those issues
[20:09:05] <alex_joni> maybe they shouldn't :)
[20:09:09] <alex_joni> nfx & co
[20:09:15] <alex_joni> nfs .. darn can't type today
[20:09:45] <SWPadnos> wel,, if they need to mount/unmount disks or browse Windows shares or whatever - that's the kind of thing I'm talking about
[20:09:51] <SWPadnos> s/,/l/
[20:09:52] <alex_joni> btw, there is a very nice instruction on using EMC2 as a diskless client on a german forum
[20:09:58] <SWPadnos> cool
[20:10:18] <alex_joni> too bad it's german, and I don't feel like translating it to english to stick on the wiki :)
[20:10:26] <SWPadnos> user type 1 is probably in a machine shop environment, where someone else (type 2) has set up the machine
[20:10:29] <SWPadnos> heh
[20:10:41] <SWPadnos> type 2 is an integrator
[20:11:06] <SWPadnos> there are two sub-types: people with simple machines (the stepconf crowd) and people with more complex machines (Stuart :) )
[20:11:26] <alex_joni> and probably lots inbetween
[20:11:41] <alex_joni> stuart-class machines, but less clue to set it up
[20:11:46] <alex_joni> no custom kins, ...
[20:11:50] <SWPadnos> simple machine people also don't need to know about HAL (until something goes wrong), but they do need to know how to set up and test the machine, measure performance, etc
[20:12:36] <SWPadnos> well, that's the thing, we don't want manuals for "simple machines", "less simple machines", "kinda complex machines", "big complex machines", and "machines where you have to write your own software"
[20:13:09] <SWPadnos> two is bad enough, and is only necessary because type 2a people get confused when they see information intended for type 2b or type 3 folks
[20:13:29] <SWPadnos> type 3 is people doing "anything more complex" :)
[20:13:43] <SWPadnos> maybe that should be 3 and 4 actually
[20:14:32] <SWPadnos> 3 might be people who need to do something custom, maybe writing a custom component, doing a complex ladder, etc. where they really need to know how to interact with HAL and use it for troubleshooting problems with their logic or machine
[20:15:28] <SWPadnos> type 4 would be people who use HAL-only setups, want to do EMC2 networked workcells, whatever else that can't be written about, since there's no way we can know what the heck they may want ahead of time
[20:16:39] <alex_joni> and if they do it, they should just write the damn docs too
[20:16:46] <SWPadnos> yes
[20:17:59] <alex_joni> EMC2_Integrator_Manual: VCP (page 103) picture off
[20:18:36] <alex_joni> page 120 (section 21.2) text misalignment at the table
[20:19:41] <alex_joni> page 146 (27.1.5) URL too long, move to next line
[20:20:08] <alex_joni> page 163 (30.6.6) picture not resized
[20:20:25] <alex_joni> page 167 (30.7.7) ditto
[20:20:31] <SWPadnos> this is the TRUNK-generated manual?
[20:20:36] <alex_joni> yup
[20:20:47] <SWPadnos> ok. I downloaded from linuxcnc.org and got confused :)
[20:20:51] <alex_joni> I just use the channel as a short-lived todo list, I plan to fix them in a sec
[20:20:58] <alex_joni> SWPadnos: http://www.linuxcnc.org/docs/devel//EMC2_Integrator_Manual.pdf
[20:21:00] <SWPadnos> yep, figured it was a list
[20:21:21] <alex_joni> page 172, 173 (picture 30.9, 30.10): resize
[20:21:39] <alex_joni> page 182 (picture 30.18): ditto
[20:22:27] <alex_joni> page 31 (7.2.9): UNITS .. line too long
[20:22:48] <alex_joni> page 35 (7.3.31): line too long
[20:22:52] <SWPadnos> page 18: the text in section 1.5 should be changed
[20:23:17] <alex_joni> page 37: line too long
[20:23:36] <alex_joni> meh, is it me or is lyx plain stupid with linebreaks?
[20:24:06] <alex_joni> page 42: 8.1.2: motion.servo.overruns: line too long
[20:24:07] <SWPadnos> it should be pretty smart, but there are a lot of options
[20:24:26] <alex_joni> and I don't like 11.2
[20:24:39] <SWPadnos> hmmm. it's possible that section 1.5.x needs to be redone or removed
[20:24:41] <alex_joni> having a list of realtime components.. that's likely to rot
[20:24:53] <SWPadnos> as long as it's a sample listing, it's OK
[20:25:05] <cradek> would someone who knows C++ tell me what http://pastebin.ca/1311080 means please?
[20:25:06] <SWPadnos> if we can auto-generate it, so much the better
[20:25:29] <alex_joni> SWPadnos: I think it's supposed to be the full list, and I doubt it's autogenerated
[20:26:08] <cradek> everything google tells me is about classes and stuff...
[20:26:21] <SWPadnos> New: "insufficient contextual information to determine type" is not a helpful error message
[20:26:23] <SWPadnos> :)
[20:26:31] <SWPadnos> (subject on a mailing list :) )
[20:27:00] <alex_joni> 3519 is that pasted line?
[20:27:02] <jepler> cradek: are the prototypes for convert_straight_comp{1,2} exactly the same?
[20:27:07] <jepler> if not, make them so
[20:27:36] <SWPadnos> which means identical types and ordering for the arguments, and possibly the same names
[20:27:52] <cradek> yes they are identical
[20:28:00] <SWPadnos> same return type?
[20:28:07] <cradek> yes
[20:28:25] <cradek> alex_joni: yes
[20:29:14] <cradek> I can rewrite it with an if, but I think this is clearer (shows that I intend the arguments to be identical)
[20:29:38] <cradek> * parser.c (): Improve error
[20:29:38] <cradek> message for use of overloaded functions on LHS of "." operator.
[20:29:51] <cradek> (from the thread SWPadnos found)
[20:29:56] <alex_joni> maybe you put () before the )
[20:30:07] <alex_joni> maybe you need to put () before the : and )
[20:30:14] <cradek> no no no
[20:30:16] <SWPadnos> no, that would be a call
[20:30:20] <SWPadnos> with no argumeents
[20:30:22] <SWPadnos> -e
[20:30:26] <alex_joni> oh, hmm
[20:30:40] <jepler> class F { int f(int x); int g(int x);
[20:30:40] <jepler> int q(int x) { int status = ((x == 0) ? f : g)(x); } };
[20:30:45] <jepler> this program gives the same error
[20:30:56] <jepler> when 'f' and 'g' are not methods, it doesn't give the error
[20:31:08] <cradek> fffff
[20:31:31] <cradek> so it's one of those things?
[20:31:40] <cradek> I will just break it apart, no big deal
[20:31:44] <SWPadnos> what happens if you put parens around the whole thing?
[20:31:56] <cradek> what whole thing?
[20:31:57] <SWPadnos> other than the semicolon
[20:32:17] <SWPadnos> status=((flag ? a : b)(arguments));
[20:32:44] <cradek> no difference
[20:32:49] <SWPadnos> ok, that's good :)
[20:33:02] <SWPadnos> that was a AGCC 4.0.2 regression, what are you using?
[20:33:09] <SWPadnos> a gcc ...
[20:33:14] <CIA-1> EMC: 03alex_joni 07TRUNK * 10emc2/docs/src/config/stepper.lyx: linkpp should be long gone from configs
[20:33:17] <cradek> uh 4.0.3
[20:33:22] <SWPadnos> heh
[20:33:24] <SWPadnos> ok
[20:33:37] <jepler> 4.2.4 here
[20:33:46] <SWPadnos> so I guess it isn't fixed yet
[20:33:55] <SWPadnos> maybe paul can test 4.3 for us
[20:34:01] <jepler> where did you read that it's a regression?
[20:34:15] <SWPadnos> http://gcc.gnu.org/ml/gcc-bugs/2005-10/msg03571.html
[20:34:32] <SWPadnos> I could have misinterpreted though, I do that sometimes when I'm scanning
[20:34:50] <jepler> heh
[20:35:03] <jepler> according to that, an error message changed for the worse; sounds like the code in question was always an error
[20:36:07] <jepler> and the code in question is quite different from this code
[20:36:10] <SWPadnos> I wonder if it's possible to use a function variable of that type, then call it
[20:36:30] <SWPadnos> f=(flag ? a:b); / f(arguments);
[20:36:43] <jepler> maybe, if you could figure out the type to declare f as
[20:36:53] <cradek> yeah, no kidding
[20:37:07] <cradek> I had the same thought, followed by the same thought
[20:37:48] <SWPadnos> f=(int)(int int float ....) or whatever
[20:37:59] <SWPadnos> (whatever is left as an exercise for the reader :) )
[20:38:17] <cradek> you at least need a * somewhere
[20:38:48] <SWPadnos> I always look back at K&R when I'm declaring function pointers
[20:39:10] <SWPadnos> you shouldn't need a *, the () makes it a function pointer (unless it's time for me to read again)
[20:39:23] <jepler> t.cc: In member function ‘int F::q(int)’:
[20:39:24] <jepler> t.cc:9: internal compiler error: in instantiate_type, at cp/class.c:6081
[20:39:24] <jepler> oooh
[20:39:40] <alex_joni> oopsy ;)
[20:39:40] <jepler> do I win something?
[20:39:43] <SWPadnos> oops, it would have been (int)(arguments) f, *g; anyway
[20:39:54] <alex_joni> cradek: judging by the c++ programming language (second edition) which I'm reading it's not allowed
[20:39:55] <SWPadnos> nice!
[20:40:28] <alex_joni> the compiler needs to evaluate expressions 2 & 3 and check if they are of the same type
[20:40:40] <SWPadnos> there's probably some elegant solution to this, rather than trying to make C++ act like C
[20:40:44] <SWPadnos> but I don't know it
[20:41:12] <alex_joni> SWPadnos: pf = (condition)? *f1:*f2;
[20:41:16] <alex_joni> pf(args);
[20:41:21] <alex_joni> or something like that
[20:41:31] <SWPadnos> yep, that's something like what I was thinking, I think
[20:41:54] <cradek> thanks guys
[20:42:12] <alex_joni> doesn't really help with readability though
[20:44:33] <alex_joni> * alex_joni kicks CIA-1
[20:44:33] <CIA-1> ow
[20:44:39] <alex_joni> CIA-1: you're slow
[20:44:43] <jepler> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37646
[20:44:56] <jepler> (this is my ICE)
[20:45:32] <alex_joni> Fixed for 4.3 and 4.4, not fixing for 4.2.
[20:46:07] <jepler> it's marked as ice-on-invalid-code so presumably if the bug is fixed my code still doesn't compile
[20:51:57] <CIA-1> EMC: 03cmorley 07TRUNK * 10emc2/src/hal/classicladder/emc_mods.c: Update to include float pins and trap other variables
[20:53:39] <jepler> cradek: I was able to make the 'declare a function pointer' variation work; judge for yourself if it's any sort of improvement. http://emergent.unpy.net/index.cgi-files/sandbox/t.cc
[20:54:27] <cradek> thanks jepler
[20:54:46] <cradek> I rewrote with if already. it will be less baffling to the future me.
[20:54:55] <jepler> heh
[21:56:27] <cradek> flo-h: if you must change a lot of whitespace in code or otherwise reformat it, please commit that separately from any substantive changes, and say in the commit message that there is no substantive change in this version. otherwise, it can be very hard to find the real changes.
[21:57:11] <cradek> also, it is best to avoid reformatting whenever possible
[21:57:40] <cradek> and, thanks for cleaning up my C++ the other day.
[21:58:08] <CIA-40> EMC: 03alex_joni 07TRUNK * 10emc2/docs/src/ladder/classic_ladder.lyx: fix image sizes in pdf
[21:58:16] <CIA-40> EMC: 03cmorley 07TRUNK * 10emc2/src/hal/classicladder/config_gtk.c: Update config window to include floats and path name
[22:13:19] <alex_joni> SWPadnos: interesting fact
[22:13:37] <alex_joni> there's a user on a german emc forum that drives his whole emc2 machine over ethercat
[22:13:42] <alex_joni> IO, encoders, PWM
[22:13:52] <alex_joni> using existing hardware from Beckhoff
[22:14:21] <SWPadnos> cool.
[22:14:23] <alex_joni> yup
[22:14:28] <SWPadnos> see you later - time to go catch a plane
[22:14:36] <alex_joni> safe trip
[22:14:58] <skunkworks> SWPadnos: have fun!! You are witnessing history
[22:15:12] <SWPadnos> let's hope I see it as well as people with a TV :)
[22:20:42] <CIA-40> EMC: 03alex_joni 07TRUNK * 10emc2/docs/src/config/ (emc2hal.lyx ini_config.lyx ini_homing.lyx): fix a couple of too long lines, didn't wrap properly in the pdf
[22:37:16] <CIA-40> EMC: 03cmorley 07v2_2_branch * 10emc2/src/hal/classicladder/module_hal.c: Fix error when registering hal S32 pins used hal_bit_t instead of hal_s32_t
[22:50:21] <Martinp23> [Global Notice] Hi all! Just a quick note to say that in about 10 minutes, one of our client servers will go down for some maintenance. The downtime window is one hour. About 700 users will split - if you've had no prior messages about this, you're not on the server which is affected. Sorry for the disruption and thanks for using freenode!
[22:50:35] <flo-h> cradek: ok, i'll keep it in mind
[23:41:04] <Guest519> Guest519 is now known as skunkworks