00:44.38 |
CIA-48 |
BRL-CAD: 03n_reed * r49211
10/brlcad/trunk/src/libbu/sscanf.c: s/bu_exit/bu_bomb; accept 0 as
a valid width for string conversions |
08:41.27 |
*** join/#brlcad ibot
(~ibot@rikers.org) |
08:41.27 |
*** topic/#brlcad is BRL-CAD
Open Source Solid Modeling || http://brlcad.org || logs: http://ibot.rikers.org/%23brlcad/
|| BRL-CAD release 7.22.0 is forthcoming || fixing all our Coverity
Scan Initiative defects |
08:45.58 |
*** join/#brlcad KimK
(~Kim__@209.248.147.2.nw.nuvox.net) |
09:37.19 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
09:58.41 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
10:20.46 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
10:21.30 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
10:26.29 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
10:39.05 |
*** join/#brlcad hackrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
10:52.16 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
10:59.25 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
11:02.29 |
*** join/#brlcad hackrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
11:20.43 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
11:43.53 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
11:55.18 |
*** join/#brlcad juanman
(~quassel@unaffiliated/juanman) |
12:11.01 |
*** join/#brlcad juan_man
(~quassel@unaffiliated/juanman) |
13:21.10 |
CIA-48 |
BRL-CAD: 03Sean 07http://brlcad.org * r3276
10/wiki/Help:Searching: Reverted edits by
[[Special:Contributions/46.151.43.197|46.151.43.197]] ([[User
talk:46.151.43.197|Talk]]); changed back to last version by
[[User:Sean|Sean]] |
13:21.17 |
CIA-48 |
BRL-CAD: 03Sean 07http://brlcad.org * r0
10/wiki/Special:Log/block: blocked [[User:46.151.43.197]] with an
expiry time of infinite (anonymous users only, account creation
disabled): Spamming links to external sites |
13:43.37 |
*** join/#brlcad juanman
(~quassel@unaffiliated/juanman) |
13:47.53 |
*** join/#brlcad packrat
(~packrator@c-98-209-146-133.hsd1.mi.comcast.net) |
16:35.18 |
CIA-48 |
BRL-CAD: 03starseeker * r49214
10/brlcad/trunk/src/other/re2c/README: |
16:35.18 |
CIA-48 |
BRL-CAD: If we're using the template for the
re2c README file (maybe worthwhile, maybe |
16:35.18 |
CIA-48 |
BRL-CAD: not...) don't stash the generated
output in the src tree. Would need a |
16:35.18 |
CIA-48 |
BRL-CAD: mechanism like that used for our
INSTALL and configure scripts to make that work |
16:35.18 |
CIA-48 |
BRL-CAD: 'properly' |
16:38.53 |
CIA-48 |
BRL-CAD: 03starseeker * r49215
10/brlcad/trunk/src/other/libz/ (CMakeLists.txt zconf.h
zconf.h.in): Enough of the zconf.h.in nonsense. We've already had
to modify zlib anyway. |
16:40.00 |
CIA-48 |
BRL-CAD: 03starseeker * r49216
10/brlcad/trunk/src/other/libz.dist: sync libz.dist |
16:41.51 |
CIA-48 |
BRL-CAD: 03starseeker * r49217
10/brlcad/trunk/src/other/re2c.dist: sync re2c.dist |
16:54.46 |
CIA-48 |
BRL-CAD: 03starseeker * r49218
10/brlcad/trunk/ (8 files in 8 dirs): (log message
trimmed) |
16:54.47 |
CIA-48 |
BRL-CAD: Make a stab at logic to clean out all
files generated by CMake. This is |
16:54.47 |
CIA-48 |
BRL-CAD: currently a bit too aggressive in
that it will completely nuke the bin, lib, and |
16:54.47 |
CIA-48 |
BRL-CAD: share output directories, but it's a
step in the right direction and seems to be |
16:54.47 |
CIA-48 |
BRL-CAD: able to restore a checkout to clean
status after an in-src-dir CMake configure |
16:54.47 |
CIA-48 |
BRL-CAD: (although that's only tested on one
platform and isn't yet portable - assumes |
16:54.48 |
CIA-48 |
BRL-CAD: Makefiles, for example.) Not hooked
into the build proper yet - it generates a |
16:55.40 |
starseeker |
that's getting closer to a "real" distclean
ability, except for also nuking all the "final output"
directories |
16:58.06 |
starseeker |
If most development work these days is taking
place with CMake, we may want to consider removing the svn ignore
property globally. |
16:58.37 |
starseeker |
for myself (most of the time) I want to know
precisely what is in the source tree without ignoring
anything |
17:02.00 |
starseeker |
brlcad: if you can take a look at that
distclean attempt and let me know precisely how you want it to
behave, I can give it a round of polishing, make it portable and
hook it in |
17:03.39 |
starseeker |
I think that approach should be more robust
than the Distclean.cmake approach, although it may require a bit
more logic |
18:45.49 |
brlcad |
starseeker: that file wasn't intended to get
you to spend time on a distclean impl.. :) |
19:07.43 |
brlcad |
there are some aspects to both approaches that
will probably be desireable |
19:07.52 |
brlcad |
that, at least, is my at-a-glance
understanding |
19:09.36 |
brlcad |
like the global list that gets appended to,
just want to make sure the caller only has to specify items cmake
doesn't already know about and doesn't duplicate what the clean
rule already does |
19:11.18 |
brlcad |
the distclean shell script looks like the
only/main turd that I'd do away with |
19:11.37 |
brlcad |
no big deal if you can't time the
distclean |
19:30.58 |
starseeker |
the clean rule removes things generated by
make, not things generated by CMake |
19:31.27 |
starseeker |
the distclean logic as defined is intended to
remove things generated by CMake |
19:33.17 |
starseeker |
the distclean shell script is a temporary
measure - eventually there will be a cmake_distclean.cmake file
generated that will be invoked by a "make distclean"
target |
19:34.33 |
starseeker |
was i wasn't sure of was whether you wanted me
to be able to nuke the files in bin, lib, etc that are produced by
CMake *without* removing the files coming from the actual
build |
19:39.02 |
brlcad |
it's the latter I was referring to, nuking
bin/lib/etc |
19:39.23 |
brlcad |
at most, it could inspect and, if empty,
delete the dir in the distclean portion of the rule |
19:39.42 |
brlcad |
but not nuke it outright since that then makes
lots of assumptions |
19:45.02 |
brlcad |
what's the cmake_distclean.cmake file for?
seems unnecessarily complicated to have a distclean rule writing
out anything |
19:45.40 |
brlcad |
just needs a list of things to delete, the
most important ones being the ones it already knows about |
19:46.24 |
brlcad |
adding the extra files list ability for the
caller becomes the secret sauce that should be sufficient (yet
still simple) |
20:08.31 |
starseeker |
brlcad: I'll play with it a bit and run some
tests |
20:08.46 |
starseeker |
what do you think about nuking the svn:ignore
property? |
20:14.13 |
*** join/#brlcad Yoshi47
(~jan@64.235.102.210) |
20:40.30 |
brlcad |
starseeker: not all of the svn:ignore files
are build-system related, if I recall correctly |
20:40.46 |
brlcad |
so probably not at least without doing a
review of what's there and why |
20:40.47 |
starseeker |
true - some of them relate to ignoring
temporary files from editors |
20:41.11 |
starseeker |
prefers to know when editors
are leaving turds behind too, but that's just
me... |
20:41.13 |
brlcad |
right, I'm not sure there's any value seeing
those listed |
20:42.05 |
brlcad |
I know very well what is left around .. but
having svn tell me provides no useful information |
20:42.24 |
starseeker |
doesn't always know
;-) |
20:42.38 |
brlcad |
on the contrary, can dilute the listing, make
it harder to see important files |
20:43.18 |
starseeker |
must be a workflow difference |
20:43.36 |
starseeker |
prefers to stay close to the
svn tree state, doesn't leave modified or unknown files in the src
tree much |
20:44.23 |
brlcad |
a little workflow, a little difference in
tools perhaps, a little familiarity |
20:44.46 |
brlcad |
if I were working with xcode regularly, I
wouldn't want the xcode build dirs listed for example |
20:44.56 |
brlcad |
they're always there |
20:45.10 |
starseeker |
why is why out-of-dir builds are
good |
20:46.31 |
brlcad |
a benefit sure, but mostly a different case
altogether |
20:47.22 |
brlcad |
just picked xcode out by example, could just
as well be some other random ide that places information with the
input/sources |
20:47.51 |
starseeker |
if the IDE is putting information in the
source tree when the build is not taking place in-src, that's a bug
in the IDE |
20:47.55 |
brlcad |
not uncommon to say the least, point is more
just that there are *some* files that are of no value to have svn
report |
20:48.35 |
brlcad |
i don't think that holds water -- you may be
using an ide that has little or nothing to do with
building |
20:48.52 |
brlcad |
a source indexing browser, for
example |
20:48.57 |
brlcad |
for code reviews |
20:49.07 |
brlcad |
nothing to do with any concept of a build
dir |
20:49.24 |
starseeker |
hmm. OK, I suppose... |
20:53.01 |
starseeker |
would probably try to set
that up such that the index file(s) were stored out of the src dir,
but that's admittedly not something to expect from most
devs |
20:53.42 |
brlcad |
if that's supported by the tool |
20:54.40 |
brlcad |
i've used several indexers over the years that
would write an index for each directory containing
sources |
20:55.05 |
starseeker |
nods. If it weren't I'd set
up two copies of the src tree, but your point remains - it's a
situation that is a reasonable argument for retaining at least some
use of svn:ignore |
20:55.15 |
brlcad |
good ol' ctags comes to mind, though now
there's an output option |
20:55.50 |
brlcad |
still even if you wrote to some other dir,
then you loose the nifty automatic integration that you'd get in
vim, ex, emacs, etc |
20:56.25 |
brlcad |
since they defaulted to the source dir too,
and you'd have to tell it (hopefully it has a way) about that
random other place |
20:57.56 |
starseeker |
nods - yeah, I'd probably end
up having a separate copy of the src for that |
20:58.16 |
brlcad |
it all boils down to usability (and
maintainability) since that's really the only reason svn:ignore
exists |
20:58.48 |
brlcad |
maintainence cost is practically nil now that
build dir is a separate concept |
20:59.20 |
brlcad |
usability of having vs not having entries for
items of no value to "svn status" is then pretty simple |
20:59.23 |
starseeker |
nods - the main annoyance
from my standpoint is when we ignore things like Makefile files,
.tcl files, etc |
21:00.11 |
brlcad |
sure, those items could get yanked |
21:00.15 |
starseeker |
but a comprehensive selective review to get
rid of just those would be a bit time consuming (unless it's
scriptable in some fashion) |
21:02.24 |
brlcad |
*shrug* maybe an hour or two at best.. it's
under 200 props |
21:02.59 |
starseeker |
ok - s/time consuming/mind numbing
;-) |
21:04.06 |
brlcad |
with a workflow going, it'd probably be about
30s per prop, a lil over an hour |
21:04.38 |
brlcad |
I find those are great tasks to do while
watching movies :) |
21:07.34 |
brlcad |
200 "files" is nothing ... |
21:07.46 |
starseeker |
heh |
21:07.48 |
brlcad |
I've done a half-dozen refactorings in the
last 12 months alone that involved 1000+ file edits each (all
unautomatable, hand edits) :) |
21:08.17 |
brlcad |
one category of new build warning hits more
files than that :) |
21:11.22 |
brlcad |
I find it starts to get numbing when you can't
get through the whole list in a single day |
21:11.37 |
brlcad |
12 hours or less ftw .. if it's gonna take
more, that's a real chore |
21:11.49 |
starseeker |
envies brlcad's threshold of
boredom |
21:12.37 |
brlcad |
it's reading code, that can be very rewarding
in itself |
21:13.48 |
brlcad |
when I was just starting to make my way
through brl-cad years ago, I found that to be one of the best and
absolutely fastest ways to become familiarized with what's
there |
21:14.52 |
brlcad |
you start to see the bigger picture of how to
restructure, where there are weaknesses, good and bad practices,
and more... |
21:16.26 |
brlcad |
"oh yeah .. there's already a tool that does
that" |
21:17.03 |
CIA-48 |
BRL-CAD: 03bob1961 * r49219
10/brlcad/trunk/src/tclscripts/archer/ (Archer.tcl ArcherCore.tcl):
Added a preference for display lists. |
22:03.07 |
brlcad |
n_reed: if I've been following the commits, it
looks like you've included functionality akin to ms's
sscanf_s()? |
22:08.41 |
CIA-48 |
BRL-CAD: 03starseeker * r49220
10/brlcad/trunk/ (11 files in 11 dirs): |
22:08.41 |
CIA-48 |
BRL-CAD: Getting closer - this leaves bin, lib
and share in place but they should be |
22:08.41 |
CIA-48 |
BRL-CAD: nothing but a collection of empty
directories for a bare configure. Just need |
22:08.41 |
CIA-48 |
BRL-CAD: to teach distclean to check them for
empty dirs and recursively remove any empty |
22:08.41 |
CIA-48 |
BRL-CAD: dirs until we've whittled it down to
the minimum (for a pure configure with no |
22:08.42 |
CIA-48 |
BRL-CAD: build step on a clean checkout, back
to the checkout configuration.) |
22:13.04 |
brlcad |
starseeker: very minor, but can it be aware of
only the dirs it adds? |
22:13.18 |
brlcad |
so it only potentially deletes ones it added,
not just empty ones |
22:13.26 |
starseeker |
urm... |
22:13.39 |
brlcad |
in case someone happens to mkdir lib/whatever
for example .. |
22:13.51 |
brlcad |
minor and no big deal if it can't |
22:14.25 |
starseeker |
tricky - if it's putting a file into a deep
dir location, it will automatically create all the dirs it needs to
get it there (iirc) |
22:15.24 |
starseeker |
I might be able to get it to track all that -
I have to do something similar for distcheck... |
22:16.13 |
brlcad |
like I said, VERY minor .. just wondering
really |
22:16.17 |
starseeker |
but if it does that and half the dirs listed
in the path are already present and half aren't, that could get
really tricky |
22:16.27 |
starseeker |
in principle - maybe |
22:16.36 |
starseeker |
but probably too hard to justify at this
point |
22:16.53 |
starseeker |
let me get a "make distcheck" target working
first |
22:17.02 |
starseeker |
I should be fairly close now |
22:17.19 |
brlcad |
as long as it's only removing empty dirs
recursively, probably no harm |
22:17.34 |
n_reed |
brlcad: wasn't referencing sscanf_s, but
similar in requiring width for %s and %[...]. |
22:17.44 |
starseeker |
that's the last trick - how to get it to do
the directory removal |
22:17.56 |
starseeker |
I have a few ideas, but need to do some
experimentation |
22:18.36 |
brlcad |
n_reed: what is the width for a %s defined
as? |
22:18.54 |
brlcad |
does it include / require space for the
null? |
22:19.39 |
starseeker |
brlcad: should the "make distclean" target
perform the make clean step too? or just remove the files CMake is
responsible for? |
22:20.20 |
brlcad |
following traditional distclean, yeah -- it
should perform make clean (first) |
22:20.50 |
brlcad |
could separate into a makeclean and distclean
rule |
22:21.41 |
starseeker |
ah, nuts - there's a gotcha - when I remove
the CMakeFiles directories, I'm removing all the object files
too |
22:22.16 |
starseeker |
is that acceptable, or should I try to
introspect into those and leave the .o files? |
22:23.00 |
brlcad |
cmake made them and filled them, so it should
be fine to just remove them .. but then the clean rule already does
that, no? |
22:23.18 |
brlcad |
if so, then distclean can just check if dir is
empty, remove |
22:24.29 |
brlcad |
that'd probably be safer |
22:24.38 |
starseeker |
I'll check - I was under the impression just
the .o files are removed... |
22:25.29 |
starseeker |
if we're always doing clean with distclean it
won't matter, but if we want a "cmake-clean" rule that just removes
CMake's output it get dicey |
22:26.52 |
brlcad |
right, clean just removes the .o, so distclean
itself won't have to |
22:27.13 |
brlcad |
it just checks the dir |
22:29.07 |
starseeker |
(right now) distclean is removing the whole
CMakeFiles directory and all its contents - CMakeFiles directories
hold more files generated by CMake |
22:29.10 |
brlcad |
cmake-clean would be introducing a different
naming scheme, "cmakeclean" or "buildclean" would be more
apropros |
22:29.19 |
brlcad |
where distclean=clean+cmakeclean |
22:29.40 |
starseeker |
or maybe configureclean |
22:30.03 |
brlcad |
configclean? |
22:30.14 |
brlcad |
buildsysteminfrastructureclean ;) |
22:30.37 |
starseeker |
yeah, we may have to live with configclean
nuking the individual object files, unless we want to get smarter
about the structure contained in that directory |
22:31.18 |
brlcad |
probably fine |
22:31.54 |
starseeker |
If a configclean is performed, everything's
getting rebuilt anyway because all the Makefiles will be newer than
the object files anyway |
22:32.11 |
brlcad |
the install dirs are where things get more
interesting, or even the top-level build dir probably being the
most common case |
22:32.38 |
brlcad |
where someone just has datafiles and/or source
snippets being run against uninstalled bin/* tools |
22:33.16 |
starseeker |
uh... I'm not doing anything with the install
dirs - am I supposed to? |
22:33.18 |
brlcad |
configclean would end up nuking the Makefiles,
no? |
22:33.24 |
starseeker |
yep |
22:34.15 |
brlcad |
once you run even a partial distclean
(assuming it gets past the "clean" phase and is working on the
"configclean" phase), it's a point of no return |
22:34.23 |
starseeker |
yep |
22:34.26 |
brlcad |
you have to run cmake again |
22:34.35 |
starseeker |
just like Autotools, iirc |
22:34.38 |
brlcad |
yep |
22:34.41 |
starseeker |
(kinda in the nature of a distclean) |
22:34.56 |
n_reed |
brlcad: %1s means read 1 char max from input;
dest string must be at least 2 chars |
22:35.01 |
n_reed |
is there something i need to fix? |
22:35.50 |
starseeker |
configclean would actually have fairly minimal
utility, except possibly in debugging scenarioes |
22:36.58 |
starseeker |
wonders if there is even a
equalivent to "make clean" in MSVC... |
22:37.16 |
brlcad |
n_reed: just thinking aloud, the reason why
strlcpy exists when there was a strncpy a decade preceding is due
to that size parameter |
22:37.29 |
brlcad |
off-by-one errors due to usability
weakness |
22:39.00 |
brlcad |
I don't think it matters for the %#s case
since that (to me) clearly implies number of chars and the #+1 ==
'\0' seems evident |
22:39.33 |
brlcad |
it may matter more for size parameters, I
think, ala sscanf_s |
22:39.41 |
brlcad |
do you have size parameters? |
22:40.04 |
brlcad |
bu_sscanf("%s", my_string, size) |
22:40.15 |
brlcad |
or did you stick with sscanf's sig |
22:40.15 |
n_reed |
nope |
22:40.34 |
brlcad |
okay, so you're just requiring that if there's
an %s that there must be a %###s in there? |
22:42.46 |
n_reed |
yes. %Vs %Vc %V[...] can handle cases where
size is only known at run-time |
22:43.34 |
brlcad |
V is for vls? |
22:43.43 |
n_reed |
yes |
22:44.03 |
brlcad |
interesting, that's somewhat opposite
bu_log()'s meaning |
22:44.44 |
n_reed |
you can pick any letter you want |
22:45.21 |
brlcad |
V isn't a width specifier to bu_log(), it's
the type (ala %s) |
22:45.27 |
brlcad |
that's all |
22:45.34 |
brlcad |
not sure that it's a problem or not, just
interesting |
22:45.54 |
*** join/#brlcad juanman
(~quassel@unaffiliated/juanman) |
22:46.19 |
brlcad |
so then it handles the unknown "size" by
reading into an unsized/unbounded vls |
22:46.53 |
brlcad |
%Vc means what then? a double-byte char gets
stored into a vls as two bytes? |
22:49.23 |
n_reed |
only tested with ordinary chars. now code
always truncates vls then uses bu_vls_putc |
22:49.33 |
CIA-48 |
BRL-CAD: 03brlcad * r49221
10/brlcad/trunk/src/libged/get_comb.c: a benefit of using
BU_VLS_INIT_ZERO instead of bu_vls_init() is that the compiler can
actually detect an unused vls such as this one |
22:49.51 |
n_reed |
%Vc would copy one char and you'd have a '\0'
after it still, unlike %c |
22:50.03 |
brlcad |
ah, okay |
22:50.14 |
brlcad |
why truncate? |
22:50.32 |
brlcad |
seems you could preserve the read-one-char
behavior while ensuring null termination |
22:51.52 |
brlcad |
so you could do something like
while(bu_sscanf(input, "%Vc", &myvls))) ; to read from input
one char at a time into myvls |
22:53.42 |
brlcad |
probably doesn't matter since it'd be a dumb
thing to do, but I think it's something you can effectively set up
with sscanf() if you're going for parity |
22:56.10 |
CIA-48 |
BRL-CAD: 03brlcad * r49222
10/brlcad/trunk/src/shapes/coil.c: conversion to using
BU_VLS_INIT_ZERO instead of bu_vls_init() where there's simple
local use. detected another unused vls (coil_type). |
22:56.36 |
n_reed |
not sure I understand. I thought always
overwriting vls would be best keeping with sscanf
semantics. |
22:57.05 |
n_reed |
if you want to append a char at a time, just
use %c and concat yourself |
23:00.34 |
brlcad |
right, but that's partially my point
:) |
23:01.16 |
brlcad |
that would take a few lines of code, so making
the semantic meaning append-char-to-vls would turn two steps into
one |
23:01.52 |
brlcad |
whereas for the truncate case, where's the use
case where using a vls saves someone a step over %c to a
char |
23:02.24 |
brlcad |
could be one, haven't thought it through that
exhaustively |
23:04.09 |
brlcad |
could be my own bias too .. I'm maybe
envisioning something I'd expect from %*V and %1V |
23:36.32 |
n_reed |
i don't think |
23:37.41 |
n_reed |
i can't think of that many good use cases
either way; simple enough to change it to append |