Skip to content

bpo-29527: Disable broken Travis docs job#7

Merged
vstinner merged 1 commit intopython:masterfrom
vstinner:fix_travis
Feb 11, 2017
Merged

bpo-29527: Disable broken Travis docs job#7
vstinner merged 1 commit intopython:masterfrom
vstinner:fix_travis

Conversation

@vstinner
Copy link
Copy Markdown
Member

Comment the job in .travis.yml until a fix is found.

See http://bugs.python.org/issue29527

@refi64
Copy link
Copy Markdown
Contributor

refi64 commented Feb 10, 2017

You could always just remove the -W temporarily, too, that way flat-out broken errors will still get caught...

@vstinner
Copy link
Copy Markdown
Member Author

You could always just remove the -W temporarily

Ok, let's try that. We can start without -W. And later, once all warnings are fixed, reenable -W. I'm now waiting for the busy Travis :-)

@brettcannon brettcannon self-requested a review February 11, 2017 00:00
@vstinner vstinner merged commit 0d5f110 into python:master Feb 11, 2017
@vstinner vstinner deleted the fix_travis branch February 11, 2017 00:26
@vstinner
Copy link
Copy Markdown
Member Author

I had prefer to wait for a confirmation that Travis tests pass, but Travis is currently flooded of new jobs because CPython just moved to GitHub and many happy developpers just created new pull requests. So I pushed the change anyway.

native-api pushed a commit to native-api/cpython that referenced this pull request Jun 5, 2018
nanjekyejoannah added a commit to nanjekyejoannah/cpython that referenced this pull request Apr 19, 2022
7: Add warnings for sorting and comparison r=ltratt a=nanjekyejoannah

Most of the warnings are covered on the list sort method.

I added the missing warnings for the `cmp` and `__cmp__` method.

This replaces python#4 

Co-authored-by: Joannah Nanjekye <jnanjekye@python.org>
nanjekyejoannah added a commit to nanjekyejoannah/cpython that referenced this pull request Jan 11, 2023
7: Port cmp with no extra slot r=ltratt a=nanjekyejoannah

Due to segfaults introducing a new `tp_compare` slot proved problematic. I have found a way of supporting `cmp` without a new slot. Tests are updated to match the new functionality where Py2.x doesn't fail.

I wanted to force push on [this branch] (https://github.com/softdevteam/pygrate3) but maybe you wanted to compare before I force push.

This replaces python#4 



Co-authored-by: Joannah Nanjekye <jnanjekye@python.org>
jaraco pushed a commit to jaraco/cpython that referenced this pull request Feb 17, 2023
JelleZijlstra pushed a commit to JelleZijlstra/cpython that referenced this pull request Apr 21, 2023
barneygale added a commit to barneygale/cpython that referenced this pull request Oct 30, 2024
DinoV pushed a commit to DinoV/cpython that referenced this pull request Oct 9, 2025
johnslavik pushed a commit to johnslavik/cpython that referenced this pull request Mar 8, 2026
Fix `yield from` not working on non-iterator iterables inside async generators
SonicField added a commit to SonicField/cpython that referenced this pull request Apr 10, 2026
Remove virtual from InlineBase::~InlineBase() and InlineBase::inlineDepth().
Neither is called through InlineBase* — all call sites use concrete types
(BeginInlinedFunction* or EndInlinedFunction*).

This eliminates the InlineBase vtable pointer from Begin/EndInlinedFunction,
enabling conversion python#7 (gen_asm.cpp BeginInlinedFunction dynamic_cast →
static_cast). With InlineBase non-polymorphic, static_cast from Instr*
to BeginInlinedFunction* no longer involves secondary base adjustment.

C struct updates:
- Remove void *_vtable_inline from HirEndInlinedFunction
- Remove void *_vtable_inline from HirBeginInlinedFunction

All 7/7 dynamic_cast sites now converted to opcode predicates + static_cast.
SonicField added a commit to SonicField/cpython that referenced this pull request Apr 22, 2026
Push 44 W3 follow-up per supervisor 03:07:52Z + theologian 03:07:25Z:
- rc_oracle_self_test.sh: expand from 1 → 4 injection classes (A/B/C/D)
- _rc_oracle_adapter.h: add invariant python#7 (oracle lifespan policy)
  to BRIDGE SPEC TEMPLATE (supersedes W12)

Per supervisor 03:07:52Z W4 vacuous-pass defeat directive:
"single-injection test is the W4 vacuous-pass class".

================================================================
PART 1: 4 INJECTION CLASSES (rc_oracle_self_test.sh)
================================================================

Generalized inject_class helper (sed → rebuild → diff → restore →
rebuild) replaces the hard-coded single-injection block.

Class A — refcount BALANCE under-count:
  Skip FIRST phx_rc_emit_incref via line-comment.
  Failure mode caught: under-count → leak under Py_REF_DEBUG.

Class B — refcount BALANCE over-count:
  Skip FIRST phx_rc_emit_decref via line-comment.
  Failure mode caught: over-count → leak (different mechanism than A).

Class C — refcount SEQUENCE:
  Skip SECOND phx_rc_emit_incref (different call-site than A) via
  line-comment.
  Failure mode caught: HIR position-dependent divergence — same opcode
  family as A but different injection position to test position
  sensitivity.

Class D — TYPE LATTICE:
  Change FIRST HIR_TYPE_OBJECT → HIR_TYPE_NULLPTR via sed.
  Failure mode caught: type-annotation flip — wrong refcount semantics
  for borrowed-vs-owned classification.

Each class:
  1. sed transformation applied
  2. cmp -s verifies source actually changed (catches stale sed pattern)
  3. Rebuild C path
  4. Run scripts/rc_diff_oracle.sh
  5. PASS = non-empty diff (oracle CATCHES the divergence)
     FAIL = empty diff under injection (oracle MISSED → non-functional)
  6. Restore source from backup + rebuild

Default invocation runs all 4 classes sequentially. --class=A|B|C|D
runs single class. trap EXIT ensures restore on script error.

================================================================
PART 2: INVARIANT python#7 (_rc_oracle_adapter.h)
================================================================

Added to BRIDGE SPEC TEMPLATE INVARIANTS PRESERVED section per
theologian + supervisor 03:07:52Z (supersedes earlier W12 framing):

  7. Oracle lifespan: utility decreases as emit methods diverge from
     d81e580 baseline. RETIREMENT TRIGGER: when scripts/
     rc_diff_oracle.sh on CLEAN run produces >30% pre/post divergence
     noise, retire (archive script). ESTIMATED LIFESPAN: 30-50 pushes
     from d81e580 (push 35) → retirement window ~push 65-85.
     Re-evaluate at push 50 (testkeeper clean-diff noise % post).

Also added invariant python#6 inline (oracle scope conflated diff —
already in commit msg of a99db92 but missing from header file).

Falsifier section expanded to enumerate 4 classes (A/B/C/D) with
their distinct failure-mode coverage per Pythia python#58's vacuous-pass
concern.

================================================================
VERIFICATION
================================================================

bash -n scripts/rc_oracle_self_test.sh: SYNTAX OK (260 lines).
diff --cached --stat: 2 files, +142/-48 — only the 2 intended files
(verified explicit-staging discipline per supervisor 02:51:14Z).

Push 44 W3 batch grows to 3 commits:
  a99db92 — W3 Steps 1-4 bundled (scratch lib + dispatcher)
  4f591a1 — W3 Step 5 v1 (single class A)
  THIS COMMIT — W3 Step 5 expansion (4 classes + invariant python#7)
ABBA cap 15 → 18.
SonicField added a commit to SonicField/cpython that referenced this pull request Apr 22, 2026
Per supervisor 2026-04-22 03:06:55Z + theologian 03:07:12Z + pythia python#58:
push 44 introduces the W3 R4 oracle dispatcher in compiler.cpp behind
#ifdef RC_ORACLE. The push-44 nm production-binary check is one-shot —
need a STANDING gate assertion so future compiler.cpp edits cannot
silently leak RC_ORACLE dispatch into production.

Failure mode caught:
  Any future commit that drops, inverts, or accidentally hard-defines
  the #ifdef RC_ORACLE guard would leak the C++ rc_oracle dispatch path
  (linked from libphoenix_rc_oracle.a) into the production python
  binary. Without this assertion, the leak is invisible until the next
  manual nm audit. Same silent-failure class as the cp-||-true loophole
  (catch python#4, push 38) — accepted bad state silently.

Implementation (5 LOC after BINARY_MATCH (clean) ✓):
  RC_ORACLE_LEAK=$(nm $PYTHON | grep -c 'rc_oracle')
  if [ $RC_ORACLE_LEAK -ne 0 ]; then
      echo BINARY_RC_ORACLE_LEAK_DETECTED ...
      exit 1
  fi
  echo BINARY_RC_ORACLE_OK: production binary clean (0 rc_oracle symbols)

Verbatim wording per gatekeeper item python#15 (03:07:25Z):
  - PASS: 'BINARY_RC_ORACLE_OK: production binary clean (0 rc_oracle symbols)'
  - FAIL: 'BINARY_RC_ORACLE_LEAK_DETECTED' + FATAL + exit 1
  - Mirrors BINARY_DIRTY discipline (catch silent failure structurally)

Verification (compile-clean pre-commit):
  bash -n scripts/gate_phoenix.sh: SYNTAX OK
  Inserted at line 120 (immediately after BINARY_MATCH block at line 119).

Bundled into push 44 (rather than standalone push 45) because the
dispatcher lands in this push — the leak-check guards it from day 1
instead of leaving a one-push window where item python#15 isn't enforced.

Push 44 batch grows 3 → 4 commits:
  THIS COMMIT  — gate item python#15 (RC_ORACLE leak assertion)
  63568c0   — W3 Step 5 expansion (4 injection classes + invariant python#7)
  4f591a1   — W3 Step 5 v1 (rc_oracle_self_test.sh)
  a99db92   — W3 Steps 1-4 (scratch lib + dispatcher)

ABBA cap usage: 17 → 18 (4 commits this push).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants