02:02.36 |
*** join/#brlcad archivist
(~archivist@host81-149-189-98.in-addr.btopenworld.com) |
03:02.20 |
*** join/#brlcad maths22
(~gcimaths@66-118-151-70.static.sagonet.net) |
05:10.11 |
Notify |
03BRL-CAD:brlcad * 55017
brlcad/trunk/src/libbu/parallel.c: only need to set affinity once,
but record our cpu number before doing anything |
05:12.08 |
Notify |
03BRL-CAD:brlcad * 55018
(brlcad/trunk/src/libbu/affinity.c
brlcad/trunk/src/libbu/parallel.h): pass our cpu number to
parallel_set_affinity() since there's no reason to incur a lookup
cost here (we know the number) and it keeps open the possibility of
reassignment later. |
05:14.51 |
Notify |
03BRL-CAD:brlcad * 55019
brlcad/trunk/src/adrt/librender/camera.c: plan is to turn thread
affinity on for all bu_parallel()-invoked threads, so no need to
request it explicitly |
05:27.39 |
Notify |
03BRL-CAD:brlcad * 55020
brlcad/trunk/src/libbu/thread.cpp: add initial support for
getting/setting the cpu number via thread local storage (TLS) for
pthreads |
05:36.33 |
Notify |
03BRL-CAD:brlcad * 55021
brlcad/trunk/src/libbu/thread.cpp: if we can rely on
__declspec(thread), then the ThreadLocal template won't need to be
conditionalized to anything else anytime soon |
05:54.27 |
Notify |
03BRL-CAD:brlcad * 55022
brlcad/trunk/src/libbu/thread.cpp: use cmake-set type
names |
06:04.34 |
Notify |
03BRL-CAD:brlcad * 55023
brlcad/trunk/CMakeLists.txt: initial attempt at testing for TLS
type specifiers |
06:09.12 |
*** join/#brlcad merzo
(~merzo@37-152-133-95.pool.ukrtel.net) |
06:24.37 |
Notify |
03BRL-CAD:brlcad * 55024
brlcad/trunk/CMakeLists.txt: BRLCAD_TYPE_SIZE() and the built-in
CMAKE_CHECK_TYPE() macros are no good for this purpose since they
try to sizeof(). instead, just try compiling a small custom
snippet. |
06:25.04 |
Notify |
03BRL-CAD:brlcad * 55025
brlcad/trunk/src/libbu/thread.cpp: use the better new names for
detected TLS support |
06:43.06 |
Notify |
03BRL-CAD:brlcad * 55026
brlcad/trunk/src/libbu/thread.cpp: pthread shouldn't take priority
over the intrinsic methods, let it be a fallback |
10:48.51 |
*** join/#brlcad Skriptkid
(~Skriptkid@117.208.167.54) |
11:01.46 |
*** join/#brlcad Skriptkid
(~Skriptkid@117.208.167.54) |
11:03.31 |
*** part/#brlcad Skriptkid
(~Skriptkid@117.208.167.54) |
11:41.53 |
Notify |
03BRL-CAD:bob1961 * 55027
brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl: Modify
ArcherCore::cp to draw and select the new object. |
12:46.43 |
*** join/#brlcad jordisayol
(~jordisayo@unaffiliated/jordisayol) |
13:42.42 |
*** join/#brlcad caen23
(~cezar@109.97.111.14) |
14:02.36 |
Notify |
03BRL-CAD:carlmoore * 55028
(brlcad/trunk/src/anim/chan_add.c
brlcad/trunk/src/anim/chan_mult.c): stdio.h removed because of
bio.h |
15:00.57 |
brlcad |
starseeker: nice work pushing the
merge |
15:20.44 |
Notify |
03BRL-CAD:brlcad * 55029
brlcad/trunk/src/libbu/thread.cpp: need to be careful to not
dereference the specific value for single-threaded contexts.
initialize to cpu 0 so we can always return asane. valueue in
bu_parallel_id(). |
15:34.13 |
Notify |
03BRL-CAD:starseeker * 55030
(brlcad/trunk/NEWS brlcad/trunk/src/other/CMakeLists.txt and 1453
others): Revert Tcl/Tk upgrade - causing problems on 32 bit
Windows. |
15:53.15 |
``Erik |
brlcad: is bu_parallel() going to have a way
to disable the affinity process binding stuff? |
16:06.26 |
*** join/#brlcad caen23
(~cezar@92.81.187.0) |
16:16.11 |
*** join/#brlcad ncsaba
(~ncsaba@p54982FFC.dip.t-dialin.net) |
16:16.43 |
ncsaba |
Hi all |
16:17.25 |
ncsaba |
I'm back with my development environment
questions :-) |
16:18.18 |
ncsaba |
for Java I was using Netbeans, which BTW also
works for C/C++ |
16:19.25 |
ncsaba |
but it has the bad habit of reparsing 100+
files on any change on pipe.c, and generally being a big resource
hog for big projects... |
16:23.00 |
ncsaba |
in turn it has very good code navigation
features, for which I couldn't find yet a good match in the lighter
editors I tried |
16:24.01 |
ncsaba |
so I was wondering, what kind of editor/code
navigation/debugging setup are you using ? |
16:25.40 |
ncsaba |
of course vi/grep/find/cscope/ddd work just
fine, but an integrated one like netbeans/eclipse (or intellij for
just java) is a big help |
16:26.13 |
ncsaba |
is there anything in the C world which matches
netbeans/eclipse ? |
16:46.13 |
caen23 |
why don't you google around for c ides and try
out a few? i've used codeblocks in the past and it seemed pretty
basic, but i don't know if it suits your needs |
16:46.23 |
``Erik |
vim and emacs seem to be the biggies for
BRL-CAD devs |
16:46.34 |
*** join/#brlcad luca79
(~luca@net-188-216-230-48.cust.dsl.vodafone.it) |
16:51.26 |
ncsaba |
well that's what I'm doing (google and try),
but I haven't find anything really satisfactory yet, and I'm
inpatient as you know |
16:52.01 |
ncsaba |
the problem is that I got used to what a real
nice integrated IDE has to offer |
16:52.17 |
ncsaba |
it is just breaking down when the project gets
big... |
16:52.21 |
``Erik |
I started writing an ide back in the lateish
90's because I couldn't find a good linux IDE that compared to
borland or msvc... then I realized that *nix IS the
ide... |
16:53.03 |
ncsaba |
Erik: you're right on that, but have you ever
tried IntelliJ for java ? |
16:53.06 |
``Erik |
ctags/etags can help if you're exploring a
project, though I kinda like cscope |
16:53.11 |
``Erik |
yes, and netbeans, and eclipse |
16:53.33 |
caen23 |
there's a nice series of articles on unix as
ide here http://blog.sanctum.geek.nz/series/unix-as-ide/ |
16:54.16 |
ncsaba |
I prefer netbeans over eclipse - but it it
gets at it's limits with brl-cad on the 2G of RAM I have on my
VM |
16:54.59 |
ncsaba |
caen23: thanks for the link, I'll have a
look |
16:55.33 |
``Erik |
I only use them for java stuff, eclipse for
android and netbeans for dealing with an ugly thing that happens to
use the netbeans framework (wired in with multiple maven poms and
other horrors, just to provide a thin gui on a C library via
bridj) |
16:57.07 |
``Erik |
when I'm doing BRL-CAD work with msvc, I set
up the source on an smb exported share on linux, use vim to edit,
then go to the windows box and hit 'compile', cuz I'm just that
lame O.o |
16:58.36 |
caen23 |
ncsaba: taking the time to learn how to use
vim or emacs is really worth it, so maybe this is a good
opportunity to start looking deeper into them? :-) |
16:59.51 |
ncsaba |
:) |
17:00.26 |
ncsaba |
well I'm just giving one more try to
"codelite" |
17:01.07 |
ncsaba |
it seems to have OK navigation, syntax
highlight and fast enough with the resources I have |
17:01.49 |
ncsaba |
emacs I tried some time ago - too many things
to remember when you want to use it well :-) |
17:02.26 |
ncsaba |
vim I'm using at it's basic capabilities -
anything more makes too emacs-like |
17:02.56 |
``Erik |
both emacs and vim have a fairly steep
learning curve, but once you become familiar with the basics,
they're insanely powerful tools |
17:03.25 |
ncsaba |
Erik: I know, and that's exactly the problem
for an inpatient type like me |
17:03.30 |
ncsaba |
I want it to work _now_ |
17:03.43 |
Notify |
03BRL-CAD Wiki:Modyannuamy * 0
/wiki/User:Modyannuamy: |
17:04.05 |
caen23 |
well it works _now_. only not for you
:P |
17:04.07 |
``Erik |
iirc, someone tried to make netbeans input
mappings to emulate vim and emacs |
17:04.15 |
ncsaba |
yes, right :-) |
17:05.16 |
ncsaba |
well a good IDE has the advantage that the
basic things work visually - then later you can learn the
shortcuts |
17:06.31 |
``Erik |
http://www.tuxfiles.org/linuxhelp/vimcheat.html |
17:06.34 |
``Erik |
http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html |
17:06.39 |
ncsaba |
but if you have to learn some shortcuts to get
editing work - that works for me only when all visual editors die
out ;-) |
17:07.07 |
``Erik |
http://refcards.com/docs/gildeas/gnu-emacs/emacs-refcard-a4.pdf |
17:07.36 |
``Erik |
there's your visual |
17:07.40 |
ncsaba |
well no, that won't work |
17:08.08 |
ncsaba |
it's the same thing why I won't ever learn
10-finger typing |
17:08.45 |
ncsaba |
but this got too off of what I wanted
:-) |
17:09.24 |
caen23 |
ncsaba: first time i got a hang of vim while
going through vimtutor (type that at the prompt). there's also a
game i found out about recently, but i don't know how effective it
is in teaching vim. it's a fun idea nonetheless http://vim-adventures.com |
17:09.29 |
ncsaba |
I took notice that you use vim, emacs, and MS
stuff for brlcad :-) |
17:09.41 |
Notify |
03BRL-CAD Wiki:Gsauerborn * 0
/wiki/User:Gsauerborn: |
17:10.24 |
``Erik |
ncsaba: is this what you're looking for?
http://myeslfriends.com/wordpress/wp-content/uploads/2010/11/computer-easy-button.jpg |
17:10.27 |
brlcad |
ncsaba: you could always turn that feature of
netbeans off |
17:11.32 |
ncsaba |
Erik: :-)) not exactly, but close
:-) |
17:11.51 |
brlcad |
I use eclipse from time to time, but usually
spending most of my productively in emacs |
17:12.02 |
brlcad |
it should work just fine if your machine isn't
too slow |
17:13.39 |
brlcad |
vim and emacs are going to be frustrating if
you're impatient, both have respectable learning curves |
17:13.44 |
ncsaba |
brlcad: codelite seems to work OK so far, so
I'll settle for it for now - if it turns to be too slow again, I
promise I will give a go to emacs :-) |
17:14.00 |
brlcad |
but general rule of thumb holds pretty true,
the steeper the curve, the more productive in the *long*
run |
17:15.54 |
ncsaba |
now about compiling: a "make" after a single
character change in pipe.c takes a few minutes for me, is that
normal ? |
17:16.29 |
``Erik |
pipe.c is part of librt, which is used by a
lot of other components, so lots of relinking |
17:16.57 |
``Erik |
you could just do 'make librt' if the
interface isn't changing |
17:17.24 |
ncsaba |
ok |
17:18.26 |
ncsaba |
I tried "make mged", that's definitely faster
than the whole thing, but then "make install" will still compile
everything :-) |
17:19.59 |
ncsaba |
now if I only "make librt" and have the
"build/bin" on my PATH, will mged pick up the right library if I
also have it installed system-wide ? |
17:20.25 |
``Erik |
d'no, hit it with ldd to see which one it
finds |
17:20.41 |
``Erik |
(or otool -L on mac) |
17:20.41 |
ncsaba |
ok |
17:20.55 |
ncsaba |
ubuntu here :-) |
17:23.20 |
ncsaba |
"make librt" vs "make" is 10s vs 4min on my
box... |
17:24.52 |
ncsaba |
and the "build/bin" version takes the
"build/lib/..." libraries, as confirmed by ldd |
17:25.37 |
ncsaba |
so I have now my fast change/compile/test path
:-) |
17:26.40 |
ncsaba |
apropos testing, is there some logging built
in to brl-cad ? I haven't look for it closer, but I also don't see
anything obvious |
17:28.07 |
ncsaba |
the problem is that I managed to build an
infinite loop into rt_pipe_bbox and logging would be the easiest
way to debug that |
17:28.08 |
brlcad |
ncsaba: if you know what you've modified, you
can just run "make [target]" |
17:28.15 |
ncsaba |
ok |
17:28.50 |
brlcad |
if you want want to relink everything after
changing a source file, you can also run "make
[target]/fast" |
17:28.55 |
brlcad |
e.g., make librt/fast |
17:29.40 |
brlcad |
that will just recompile pipe.c and relink
librt, but not relink anything that uses librt (if it happened to
have static linkage anywhere) |
17:30.22 |
brlcad |
also, you don't need to run "make install" --
your build directory is effectively an install path and you can
test from there |
17:30.27 |
brlcad |
e.g., make rt && bin/rt |
17:30.28 |
ncsaba |
"make librt/fast": 4 sec |
17:30.58 |
brlcad |
if you have multiple cores, make will almost
always run faster with make -j# too |
17:31.15 |
ncsaba |
not sure about the cores, I have a
VM |
17:31.36 |
brlcad |
even if you do, probably doesn't matter
:) |
17:31.56 |
brlcad |
vm IO is a killer |
17:32.11 |
ncsaba |
yes, but that's what I'm stuck with for the
moment |
17:32.17 |
brlcad |
nods |
17:32.34 |
``Erik |
for logging, bu_log() (but it's pretty basic,
no levels or directors or anything) |
17:32.47 |
brlcad |
cat /proc/cpuinfo |
17:33.24 |
ncsaba |
Erik: thanks for the logging hint ! |
17:33.45 |
brlcad |
``Erik: it has levels... |
17:34.31 |
brlcad |
not syslog-style levels, but does do stateful
indentation levels (automatic) |
17:34.46 |
ncsaba |
brlcad: I have only 1 CPU emulated, the host
has 4 - not sure what that means in terms of optimal
threading |
17:34.48 |
``Erik |
O.o ah, I meant the syslog/log4j style levels,
yeh |
17:35.09 |
brlcad |
ncsaba: it means it doesn't matter, -j isn't
useful to you |
17:35.48 |
brlcad |
IF it emulated multiple CPUS and IF the VM
bound those to separate cores, you'd potentially see a (tiny)
gain |
17:35.55 |
ncsaba |
well I only need a printf level for debugging
:-) |
17:36.07 |
ncsaba |
but just a simple printf was not working for
mew |
17:36.18 |
ncsaba |
not sure where that gets intercepted
? |
17:36.19 |
brlcad |
bu_log() is basically a wrapper around
fprintf(stderr, ...) |
17:36.37 |
``Erik |
I'd imagine the tower of file io abstractions
going on would dominate the compile time |
17:36.43 |
brlcad |
we intercept I/O all over the place for a
variety of reasons |
17:37.22 |
brlcad |
mged intercepts I/O for example so it can
print to the text console it displays (even when running a separate
command not internal to mged) |
17:37.24 |
ncsaba |
ok, so where is actually bu_log printing at
the end ? |
17:38.03 |
``Erik |
could try putting an fflush() after your
printf? (might be that it printed right, but was sitting in a
buffer that wasn't getting filled up) |
17:38.45 |
ncsaba |
Erik: that might be the case... |
17:38.46 |
brlcad |
yeah, my bet would have been on not flushing
your buffer if you used printf |
17:39.27 |
brlcad |
bu_log() will work in that case
(auto-flushes) |
17:40.51 |
ncsaba |
but: the code is sitting in an infinite loop,
so any buffers would fill in if I print in the inner
loop... |
17:41.06 |
ncsaba |
ok, I will try bu_log |
17:41.26 |
``Erik |
depends on how fast the loop is, how big the
buffer is, and how impatient you are |
17:41.40 |
ncsaba |
:-) |
17:43.28 |
starseeker |
ncsaba: did anyone suggest trying kdevelop or
qt creator? |
17:45.20 |
ncsaba |
starseeker: not yet |
17:45.34 |
ncsaba |
but for the moment I 'm happy with
codelite |
17:45.44 |
ncsaba |
just discovered it |
17:45.45 |
starseeker |
ncsaba: you may also find the ninja build tool
of interest, as an alternative to make |
17:47.35 |
ncsaba |
starseeker: I will have a look at
ninja |
17:47.45 |
ncsaba |
looks interesting |
17:53.06 |
ncsaba |
ok, bu_log works - now I have the next problem
:-) |
17:54.11 |
ncsaba |
not sure how to explain: the logs come so fast
I can't see them, and if I interrupt the process, the mged terminal
goes away |
17:54.45 |
ncsaba |
id there a way to actually save the logs
somewhere, or interrupt mged so that the current command is
terminated but the terminal stays ? |
18:00.34 |
ncsaba |
ok, I found bu_flog, will try that |
18:25.58 |
*** part/#brlcad jordisayol
(~jordisayo@unaffiliated/jordisayol) |
18:36.13 |
brlcad |
ncsaba: how are you interrupting the
process? |
18:36.20 |
brlcad |
and which process? |
19:20.34 |
*** join/#brlcad ibot
(~ibot@rikers.org) |
19:20.34 |
*** topic/#brlcad is BRL-CAD
|| http://brlcad.org || logs:
http://ibot.rikers.org/%23brlcad/
|| Thanks to all of our GCI participants for their fantastic work!
Join brlcad-news to see when your changes get rolled
out... |
19:59.54 |
brlcad |
ncsaba: curious that you'd actually need a
circular list for something... |
20:00.10 |
ncsaba |
I don't need it circular |
20:00.24 |
brlcad |
the list head must be properly initialized for
a circular list to work |
20:00.25 |
ncsaba |
is there some simply linked ? |
20:00.36 |
ncsaba |
it is properly initialized |
20:00.46 |
brlcad |
if it's infinite-looping, it's not
;) |
20:01.09 |
ncsaba |
ok, what is properly initialized ? |
20:01.11 |
ncsaba |
I use: |
20:01.26 |
ncsaba |
BU_LIST_INIT(head); |
20:01.32 |
ncsaba |
and then: |
20:01.43 |
ncsaba |
BU_LIST_APPEND(crt_l,
&(new_elem->l)); |
20:01.47 |
``Erik |
hm, hearing rumor that disney killed lucasarts
this morning O.o |
20:03.22 |
ncsaba |
brlcad: is what I do not good enough for
initing the list ? |
20:04.11 |
brlcad |
ncsaba: I'd have to see the whole block in
question |
20:04.15 |
brlcad |
but if you don't need circ, it's
moot |
20:04.32 |
brlcad |
try following the example in
include/bu.h:788 |
20:04.43 |
ncsaba |
OK, I'll have a look |
20:05.08 |
brlcad |
it shows how to set up a list and iterate over
it with a while loop |
20:05.33 |
brlcad |
set up that way, BU_LIST_FOR() will work as
well for a for loop iteration |
20:05.44 |
``Erik |
huh, motif went lgpl in 2012 |
20:05.57 |
brlcad |
and if you're in a .cpp file, you can use an
STL container |
20:06.15 |
``Erik |
we can finally go for that 80's look in a pure
open source solution! w00t! |
20:06.23 |
brlcad |
heh, great |
20:07.32 |
``Erik |
http://sourceforge.net/projects/motif/ |
20:09.13 |
ncsaba |
brlcad: but I don't want to dequeue the list -
I want to be able to re-use it |
20:09.46 |
``Erik |
BU_LIST_FOR() doesn't dequeue, it just
iterates |
20:09.52 |
ncsaba |
as a first iteration dequeue would also work
actually |
20:10.37 |
ncsaba |
also the head of my list has no data - I
wonder if the while/for is skipping the head ? |
20:11.46 |
``Erik |
heh... git commit -m "I don't know why this
changed and it scares me" MainView.xib |
20:22.18 |
ncsaba |
brlcad: replacing BU_LIST_FOR_CIRC with
BU_LIST_FOR fixes my infinite loop... |
20:22.46 |
ncsaba |
so probably I simply didn't understand what
the 2 mean |
20:22.54 |
ncsaba |
the list is built OK |
20:30.55 |
ncsaba |
brlcad: I have now code that works - it is the
refactoring of the pipe element calculation so it can be easily
reused |
20:37.55 |
ncsaba |
I will submit the patch tomorrow I
guess |
20:38.06 |
ncsaba |
thanks for your help today ! |
20:38.13 |
ncsaba |
bye |
21:03.11 |
*** join/#brlcad crdueck
(~cdk@24.212.219.10) |
21:10.37 |
*** join/#brlcad merzo
(~merzo@205-115-132-95.pool.ukrtel.net) |
22:26.48 |
*** join/#brlcad hsrai
(~hsrai@202.164.53.116) |