Commits for braney
switch to files view, user index
v500_preview to v500_preview2 (2026-06-08 to 2026-06-15) v500
Show details
6701d67860c32b8886b59587c9e32a4f86a8a96d Tue Jun 9 17:13:31 2026 -0700
- masterMindGame: demo bigLolly track rendering a solved game of Mastermind on hg38
Demonstrates the lolly track type by mapping a Mastermind board onto it:
score field is the board row, genomic position is the peg column, itemRgb is
the peg color, and the size field separates the large code pegs from the
small feedback key pegs. Guesses come from a consistent-candidate solver so
the black/white feedback is real. Included alpha-only.
- src/hg/makeDb/doc/hg38/masterMindGame.txt - lines changed 26, context: html, text, full: html, text
- src/hg/makeDb/scripts/masterMindGame/masterMindGame.as - lines changed 15, context: html, text, full: html, text
- src/hg/makeDb/scripts/masterMindGame/masterMindGame.py - lines changed 119, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/masterMindGame.ra - lines changed 17, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/trackDb.ra - lines changed 2, context: html, text, full: html, text
736e788b252ccc94a432bef54ac83321848560b1 Wed Jun 10 06:57:07 2026 -0700
- Revert "masterMindGame: demo bigLolly track rendering a solved game of Mastermind on hg38"
This reverts commit 6701d67860c32b8886b59587c9e32a4f86a8a96d.
- src/hg/makeDb/doc/hg38/masterMindGame.txt - lines changed 26, context: html, text, full: html, text
- src/hg/makeDb/scripts/masterMindGame/masterMindGame.as - lines changed 15, context: html, text, full: html, text
- src/hg/makeDb/scripts/masterMindGame/masterMindGame.py - lines changed 119, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/masterMindGame.ra - lines changed 17, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/trackDb.ra - lines changed 2, context: html, text, full: html, text
7b74ff4b43a459efaadb2dc219026d522252745e Wed Jun 10 07:09:51 2026 -0700
- hgTrackUi: avoid SIGSEGV on duplicate track request not in cart
A request for a dup_-prefixed track name with no matching entry in the
cart passed a NULL dup to dupTdbFrom, causing a null dereference and a
stack dump. This is reachable without a login and was tripped by a bot
during the v499 release. errAbort with a clear message instead.
refs #37743
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- src/hg/hgTrackUi/hgTrackUi.c - lines changed 2, context: html, text, full: html, text
f4acfa770ad691ea4bb4fc08d91d4d9d13b32a7a Fri Jun 12 08:19:18 2026 -0700
- hgConvert: avoid SIGSEGV when position missing from cart
doMiddle() read the position with cartString(), which aborts via
hashMustFindVal when a request arrives with a db but no position in the
cart (e.g. a bot hitting hgConvert with no prior browsing). Set up the
cart and database first, then read the position with the assembly's
default position as a fallback, matching the pattern in hgTracks.
refs #37535
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- src/hg/hgConvert/hgConvert.c - lines changed 6, context: html, text, full: html, text
bb8470a90643b057df7bbf5d0140a5b2bbf9dddd Fri Jun 12 08:44:37 2026 -0700
- quickLift: load genePreds by column name, not a fixed 15-col loader
Lifting a genePred track to another assembly used genePredExtLoad15, a
positional loader that assumes the extended genePred columns. Classic
knownGene-format tables instead carry proteinID and alignID after the ten
core columns, so the loader read proteinID as the integer score field and
aborted with "invalid signed integer" (e.g. "O54946", or "" when empty).
This showed up when lifting from an assembly whose knownGene is the legacy
format, such as mm10 to mm39 or rheMac10.
Add quickLiftGenePreds(), which loads through genePredReader so the actual
set of columns in the table is honored by name (proteinID maps to name2,
score defaults), matching how the tracks load when not lifted. The three
call sites that hardcoded genePredExtLoad15 (hgTracks gene loading and two
hgc detail handlers) now use it. The chain-walking shared with quickLiftSql
is factored into quickLiftLoadChains() and quickLiftChainQueryRange().
refs #37535
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- src/hg/hgTracks/simpleTracks.c - lines changed 4, context: html, text, full: html, text
- src/hg/lib/quickLift.c - lines changed 77, context: html, text, full: html, text
d0d3ac9414a163b759edf2b028a4b50f4057dbc3 Fri Jun 12 09:02:21 2026 -0700
- hgTracks quickLift: use trash-can icon for per-track remove
QA asked for the per-track remove control in a QuickLift group to match the
trash-can icon already used to delete custom tracks, instead of the red 'x',
so the two behave consistently. Factor the trash-can SVG into a shared
printTrashIcon() helper used by both the custom-track delete and the
quickLift remove, and drop the red tint so the quickLift icon matches.
refs #37535
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- src/hg/hgTracks/hgTracks.c - lines changed 36, context: html, text, full: html, text
- src/hg/htdocs/style/HGStyle.css - lines changed 1, context: html, text, full: html, text
a4ac71abc9e7bc32f98fd7c60ff8a48cba1ff056 Fri Jun 12 10:51:15 2026 -0700
- common.mk: default COPT to -O3 instead of -O -g
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
a7d7f0965efb3593fa74de84e7d9265dd8d0b05a Fri Jun 12 11:02:29 2026 -0700
- Revert "common.mk: default COPT to -O3 instead of -O -g"
This reverts commit a4ac71abc9e7bc32f98fd7c60ff8a48cba1ff056.
fb50a1cca3a117bb964c43196671142484b13bf9 Fri Jun 12 12:10:47 2026 -0700
- lib jkOwnLib hg/lib: fix warnings exposed by -O3 build
At -O3 GCC does more inlining and interprocedural range analysis, which
surfaces several warnings that -O -g never triggered. With -Werror these
break the build, so fix them ahead of switching the default to -O3.
- bamFile.c: move setenv() into the else of its NULL guard so it is not
reachable with a NULL argument (-Wnonnull, seen via inlining of bamFetch).
- basicBed.c, wormdna.c, bedDetail.c, customFactory.c, hdb.c, qaSeq.c:
replace strncpy() with safecpy() where the result must be terminated
(-Wstringop-truncation).
- htmshell.c: use memcpy() for the intentional exact-length, non-terminated
copy (-Wstringop-truncation).
- obscure.c: compute the comma groups in sprintLongWithCommas() with % 1000
so the compiler can see each %03lld argument is bounded (-Wformat-overflow).
- crudeali.c: do the endian type-pun through a union so strict-aliasing
analysis no longer reports the value as uninitialized (-Wuninitialized).
- jksql.c: wrap a possibly-NULL database name in naForNull() before passing
it to %s (-Wformat-overflow).
refs #37761
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- src/hg/lib/customFactory.c - lines changed 2, context: html, text, full: html, text
- src/jkOwnLib/crudeali.c - lines changed 5, context: html, text, full: html, text
556a70d62db277decca5aeda7ca157d35b73188b Fri Jun 12 12:11:03 2026 -0700
- common.mk: default COPT to -O3 instead of -O -g
Re-apply now that the -O3 build warnings are fixed (this was reverted in
a7d7f0965ef because the fixes had not landed yet). -O3 renders the
bigSpeedTest1 hgTracks session about 1.5x faster than -O -g.
refs #37761
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
f57fc11d951807e19b20b5960e735fa50eaea279 Fri Jun 12 13:10:00 2026 -0700
- Fix more warnings exposed by -O3 build across hg utils and errAbort
Continuation of the -O3 cleanup: a full clean rebuild surfaced warnings in
many programs whose objects had not been recompiled before. Most are the same
mechanical patterns as the first batch (strncpy -> safecpy/memcpy, sprintf ->
safef), plus a few that needed more thought:
- errAbort.h: mark errAbort/vaErrAbort/errnoAbort/noWarnAbort as noreturn.
They provably never return (longjmp or exit; the existing "to make compiler
happy" exit(-1) in noWarnAbort confirms the intent), and this lets GCC prune
the impossible null paths after an errAbort guard, fixing false-positive
null-deref / overread warnings in mafAddIRows, mafAddIRowsStream and
phyloPlace with no source change to those files.
- altSplice.c (hgGene): real one-element stack buffer overflow. makeGrayShades
writes shadesOfGray[maxShade+1], but the caller declared shadesOfGray[9] with
maxShade=8. Grow the array to [10] (maxShade stays 8); behavior unchanged.
- hgc.c bedPrintPos: ~60 callers pass a track-specific struct cast to
(struct bed *) and read only its bed-compatible leading fields. At -O3
-Warray-bounds flags the casts because the real object is smaller than
struct bed; the reads are safe by the bed-layout convention, so suppress
-Warray-bounds around just that function.
- mafsInRegion.c: chromFromSrc returns strchr(src,'.')+1, which GCC mis-sizes
as a 0-byte region when handed to strcmp via sameString/differentString;
suppress the false-positive -Wstringop-overread around extractMafs.
- sanger22gtf.c, bottleneck.c: put the printf/fprintf in the else of the
NULL guard so -Wformat-overflow (which runs before the noreturn-based
pruning) can see the argument is non-null.
safecpy/memcpy/safef conversions: basicBed already done earlier; here
haplotypes (memcpy of the original pointer pun), gbToFaRa, motifSig,
hgClonePos, featureBits, libScan, hgGoldGapGl, hgSoftPromoter, mafClick,
mafAddQRows, hgc.c, stanToBedAndExpRecs, bedUp, faSplit, trfBig,
splitFaIntoContigs, aladdin, ameme.
A full clean tree now builds with no warnings at -O3.
refs #37761
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- src/aladdin/aladdin/aladdin.c - lines changed 5, context: html, text, full: html, text
- src/hg/cgilib/haplotypes.c - lines changed 6, context: html, text, full: html, text
- src/hg/featureBits/featureBits.c - lines changed 3, context: html, text, full: html, text
- src/hg/gbToFaRa/gbToFaRa.c - lines changed 1, context: html, text, full: html, text
- src/hg/geneBounds/motifSig/motifSig.c - lines changed 1, context: html, text, full: html, text
- src/hg/hgGene/altSplice.c - lines changed 2, context: html, text, full: html, text
- src/hg/makeDb/hgClonePos/hgClonePos.c - lines changed 1, context: html, text, full: html, text
- src/hg/makeDb/hgGoldGapGl/hgGoldGapGl.c - lines changed 1, context: html, text, full: html, text
- src/hg/makeDb/outside/hgSoftPromoter/hgSoftPromoter.c - lines changed 1, context: html, text, full: html, text
- src/hg/makeDb/outside/sanger22gtf/sanger22gtf.c - lines changed 1, context: html, text, full: html, text
- src/hg/mouseStuff/libScan/libScan.c - lines changed 3, context: html, text, full: html, text
- src/hg/nci60/stanToBedAndExpRecs.c - lines changed 1, context: html, text, full: html, text
- src/hg/ratStuff/mafAddQRows/mafAddQRows.c - lines changed 1, context: html, text, full: html, text
- src/hg/ratStuff/mafsInRegion/mafsInRegion.c - lines changed 8, context: html, text, full: html, text
- src/hg/recycleDb/bedUp/bedUp.c - lines changed 2, context: html, text, full: html, text
- src/hg/splitFaIntoContigs/splitFaIntoContigs.c - lines changed 2, context: html, text, full: html, text
- src/utils/faSplit/faSplit.c - lines changed 1, context: html, text, full: html, text
- src/weblet/bottleneck/bottleneck.c - lines changed 1, context: html, text, full: html, text
37ea1c69ef1e3101a3fea67043162744ea57666d Fri Jun 12 14:10:17 2026 -0700
- common.mk: add -fno-strict-aliasing
The tree has long-standing type-punning idioms that violate strict aliasing,
notably the dlList sentinel trick in lib/dlist.c (which overlays struct dlNode
on struct dlList). These were harmless under the old -O -g (-O1) default
because GCC does not enable -fstrict-aliasing until -O2. With the -O3 default
they get miscompiled: blat, which uses dlList for stitching, silently produced
fragmented alignments and failed blat/test until -fno-strict-aliasing was added.
dlist is unlikely to be the only such violation, so disable the optimization
tree-wide rather than patch individual idioms.
refs #37761
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dd59061711dca60f7fe8f430411b8c5eb7559d4a Fri Jun 12 14:48:21 2026 -0700
- lib/tests: fix -O3 format-overflow in mmHashTest
Put the fprintf in the else of the NULL guard so -Wformat-overflow (which
runs before the noreturn-based pruning) sees the value is non-null. Same
pattern as the earlier sanger22gtf/bottleneck fixes.
This surfaced only now because make clean does not clean most test
directories, so the test programs kept reusing stale -O -g objects until a
forced rebuild recompiled them at -O3.
refs #37761
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- src/lib/tests/mmHashTest.c - lines changed 1, context: html, text, full: html, text
switch to files view, user index