wyard: still there?
13:12 < jthornton> wyard: I'm usually on in the mornings (for me) and I'm GMT-6 for time reference. in case you read back on the logs
14:34 < jthornton> wyard: another option to trying to catch me at a computer is to start a topic on the forum in the Documents section http://www.linuxcnc.org/
hm, I notice that the linux kernel parport epp driver does a few things that our epp hardware drivers don't
it sets the ps2 direction register before each transfer, which at least pluto doesn't but ppmc does
and it sets the PARPORT_CONTROL_INIT bit as well
which I'm not aware of any driver of ours doing
seb_kuzminsky: sorry if it sounded like I was yelling at you...
it didn't sound like yelling, you should hear my wife ;-)
I've met her - I don't believe you for a second.
you're right, she's a sweetie
i think i'll follow jeff's suggestion and add argv_split inside a #ifnded
the commit message should have been better, but it was late and i was cold and feeling lazy
the change is not totally frivolous, it fixes a real bug: strsep() modifies the input string
so it breaks if you have to re-parse it later
I didn't mean it as "you should have done better!!" - I have noticed that some people just never thought about it and don't know they should answer "why" instead of "what"
which can happen when you have multiple anyio boards - it tries to apply the first config to the first board found...
cool - if jeff's advice lets you fix the bug for the future but not break compatibility, surely that's the best of all possible worlds
if that fails it tries the first config with the second board, but strsep() broke the first config string...
the real fix is to let the user say which board should get which config string...
by some number in lspci maybe? seems like a pain.
the PCI slot number looks like a good identifier
there's at least a little precedent for that: the BusID used by xorg
for lspci's 0000:01:00.0 VGA compatible controller: nVidia Corporation: Unknown device 0391 (rev a1)
they have the same problem - you can have several video cards of the same or different types, and you have to distinguish
well that sounds good then
seb_kuzminsky: if trying to get my 3x20 firmwares working drags out, maybe you can bring the board down at the end of the month
i'm planning to bring everything :-)
that's the spirit
can you bring an extra day or two too?
no but i can simulate the extra time by substituting sleep for caffeine
which days is it again? I should arrange my vacation.
I've been planning what I should put stuart to work on :-)
I'll arrive the evening of Friday Jan 29, prolly around 7 PM, and leave Sunday late morning
what are you planning for him?
not sure yet...
one thing I've been wanting to do is make a tool holder for the probe. I might ask his advice on that.
(ok I took both the friday and monday off...)
what is the current thinking on params-to-pins modifications for *.comp files?
I bet that's a lot safer than the same change to the ones written in C, since with comp you can't do the trick of not exporting params but using them internally anyway
it will also diagnose at compile time assignment to 'in' parameters.
3 pin in bit in;
6 in = 1;
_.comp:6: error: invalid lvalue in assignment
(incidentally, comp should probably reject "_" as a component name :-P
Owner Type Dir Value Name
32769 bit IN FALSE .0.in
so: if you have a use case and test the change I'd probably accept it
i have a case of using sum2 as an integrator where having the gains as pins makes it easier to reset it.
that looks pretty unproblematic
something about the integ component is unsuitable?
nope -- i just hadn't seen it, i'll use that, thanks
although i think params-to-pins for comps would be a good thing in general
as i can imagine gains (for instance) connected to signals as convenient
somebody needs to write an arithmetic component
loadrt arithmetic function0="in0*in1+in2*in3"
jepler, it makes my skin crawl to consider an infix -> postfix interpreter in the kernel
nothing personal :)
oh, that would be even more useful to the average machinist :)
yep. much wasier than using all those parenthesis ...
actually I think you'd use a bytecode in a shared memory area, and compile the infix expression to bytecode in userspace
yep. maybe have the userspace module automatically load the kernel module, similar to halscope and scope_rt
neat, looks like we're getting a dapper buildbot
seb_kuzminsky: I just saw that hm2_7i43 does the following to set EPP mode: outb(0x94, board[i].port.base_hi + HM2_7I43_ECP_CONTROL_HIGH_OFFSET); // select EPP mode in ECR
do you recall how you arrived at the value 0x94?
huh, I just found a nasty bug by spotting it in the code.
set an X offset, then g0 g53 x1 / g91 g81 r.1 z-1 y1 l5 f60
bits 0x10 and 0x04 are documented as "ECP Interrupt bit" and "ECP DMA Enable Bit" which I don't think are desired
for extra credit, see if you can figure out how it SHOULD work if you then specify x-1 l3 on the next line
micges: all emc versions :-)
heh ok :)
the nist ngc doc doesn't say how this should work
cradek: my expectation the holes should be at the same locations as you'd get from g91 g0 y1 / g0 y1 [l-1 times]
or if you add x-1 then at the same locations as you'd get from g91 g0 x-1 y1 / g0 x-1 y1 [l-1 times]
ok I think I agree
I don't see anything that specifies that x or y are sticky
so, g91 g81 r.1 z-1 y1 l5 f60 / x1 l5 means the second set of holes go right, not diagonally
In addition, at the beginning of the first cycle and each repeat, the following one or two moves are made
1. a straight traverse parallel to the XY-plane to the given XY-position,
do you think they didn't intend that X xor Y can be unspecified?
incidentally, while wikipedia says atan2(0,0) is undefined, the x87 defines atan2(+-0,+-0) as +-0 or +-pi depending on the two signs involved
this is not written in terms of Interp::find_ends because they wanted all the cycle stuff to be plane-agnostic
(more specifically, that's the definition of the FPATAN instruction)
It is an error if:
* X, Y, and Z words are all missing during a canned cycle,
so according to the docs g81 with both x and y missing are ok..
yes I'm pretty sure that just means 'drill here'
100 times ...
yes you can do that with g81 r.1 z-1 l100
ok, I think I know what it should do - now I just have to make it do that
[20:01:19] <jepler> http://blog.makezine.com/archive/2010/01/18/rsz_in-case-of-nuclear-attack.jpg
(step 7: comfort the dying)
then isolate corpses to prevent spread of disease
I always feel better with a newspaper over my head though
cradek, been usint python a lot lately?
SWPadnos: I wrote touchy in python recently
why? what did I do?
ok, just wondering. I noticed that you set those variables to 0., rather than 0 or 0.0 :)
hm, well if I did it the same every time, it'd be boring
which is something I've seen in python a lot, but not so much in C/C++
is 0. a Python thing?
I think I've seen that exclusively in C
oh, funny. I think I've only seen 0 or 0.0 when people are paranoid about preventing conversions
for the last 15-20 years (at least), most compilers would generate the same code for "double x=0
vs. "double x=0.0"
well you should just be thankful that I initialized it at all.
oh, I am
depressing daytime app has 85000 of them, so it may be something local that chris and I have picked up.
that's a lot of initializers
Results 1 - 9 of about 575,000,000 for double x=0.;
(but that's a totally bogus result)
dist = 9.E+99;
well, maybe I need more coffee or something
apropos of decimal points, I remember learning that in Commodore basic, POKE addr,. was just a hair faster than POKE addr,0
of course, daytime app is older than both 20 years and ANSI C
wow, was commodore basic that strange?
I don't remember doing much optimization on those, as I was an Atari man
these macros make me cry
wow was commodore basic really that slow? For 2000 POKEs in a for loop it took 16 seconds for POKE53280,0 and 15 seconds for POKE53280,.
(and so the speed difference isn't that great either)
heh - was that the start of color memory or the start of graphics memory?
I remembered 53279 being something graphics related as well
though I could be thinking of the display list pointer on the Ataris
53279 is the sprite-to-background collision register
ok, I'm thinking of Atari stuff then
I did quite a lot on those (including writing an Asteroids-like game in BASIC on paper, since I didn't have a computer yet)
(ATARI 53279) > This buzzer has a fixed tone and duration. To create a variable duration, one must POKE zero into the speaker register, CONSOL, at location 53279 decimal. The duration is set by the number of times CONSOL is set to zero.
ok, maybe it's time for a brain reboot or somethinf
jepler: probably a bad cut-n-paste from somewhere :-/
seb_kuzminsky: it must work OK
i think the ecp-specific stuff is ignored in epp mode
seb_kuzminsky: I should mention that something in the back of my head tells me that 6.06 won't build packages from master
oh, I think because of the lyx document version
ok thanks, i'll drop it from the master builds if it doesnt behave itself
neat, my smarter polar coords work
jepler: bummer, i was hoping to make the buildbot tell me if i break the build on dapper again in the future
g0 @2 / g91 g81 r.1 z-1 f60 ^45 l8
you can build a realtime rip build and do the runtests
but you can't build a deb
CIA-5: are you dozing?
I bet we have no canned cycles in our test suite...
CIA-5: I pushed the new polar coord code. Would you tell everyone please?
cradek: you didn't say why you did it :P
actually I did
in both commits
oh right.. cia only has the first line on their site
[21:17:01] <alex_joni> http://cia.vc/stats/project/emc
did you see the failed runtest on lenny?
it was after your commit, but I notice it's unrelated
hostmot2 can't be loaded
seb knows about that
the 2 previous builds were successfull
huh, so they were
beats me then
no, the previous build #796 is the one where seb introduced the breakage
#793 must have failed for a different reason
ah, that was when johnt had accidentally pushed the thc stuff which didn't build
yeah my bad
i love build test automation because i'm so sloppy, i need a robot to smack me on the head when i break stuff
but what happens when you break the robot?
the owner smacks you on the head
been there, done that
thank god for mandatory hard-hat rules
* jt-plasma knows about git push --dry-run now
and why it is important not to push from this computer :)
ok i'm done breaking the buildbot for a while
next i'll fix the argv_split() thing...
we now have dapper buildslaves again, for both master and 2.3
is it my turn?
seb_kuzminsky, it may be ugly, but you can always replace the ending NUL with the string separator to rebuild the original string, if you're careful
(careful meaning that you need to be sure you (a) didn't get a null return, and (b) that you aren't screwing up the real end of the string - maybe by using strlen before and after the call)