← 返回首页
A few README tweaks by nedbat · Pull Request #73 · python/cpython · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

A few README tweaks#73

Merged
berkerpeksag merged 1 commit into
python:masterfrom
nedbat:readme-tweaks
Feb 13, 2017
Merged

A few README tweaks#73
berkerpeksag merged 1 commit into
python:masterfrom
nedbat:readme-tweaks

Conversation

nedbat commented Feb 13, 2017

Copy link
Copy Markdown
Member
  • Add a paragraph at the top for users, not builders, of Python.

  • No need to list every year individually. Use a range of years in the copyright.

  • Use nicer rst url syntax to avoid borking paragraphs in the plain text.

Copy link
Copy Markdown

Hello, and thanks for your contribution!

I'm a bot set up to make sure that the project can legally accept your contribution by verifying you have signed the PSF contributor agreement (CLA).

Unfortunately we couldn't find an account corresponding to your GitHub username on bugs.python.org (b.p.o) to verify you have signed the CLA. This is necessary for legal reasons before we can look at your contribution. Please follow these steps to help rectify the issue:

  1. If you don't have an account on b.p.o, please create one
  2. Make sure your GitHub username is listed in "Your Details" at b.p.o
  3. If you have not already done so, please sign the PSF contributor agreement
  4. If you just signed the CLA, please wait at least a day and then check "Your Details" on bugs.python.org to see if your account has been marked as having signed the CLA (the delay is due to a person having to manually check your signed CLA)
  5. Reply here saying you have completed the above steps

Thanks again to your contribution and we look forward to looking at it!

berkerpeksag left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality Hide comment

The copyright part of the PR is being discussed in #4. Rest of the PR looks good to me, thanks!

nedbat commented Feb 13, 2017

Copy link
Copy Markdown
Member Author

I just added my GitHub username in my bpo details.

* Add a paragraph at the top for users, not builders, of Python. * Use nicer rst url syntax to avoid borking paragraphs in the plain text.

nedbat commented Feb 13, 2017

Copy link
Copy Markdown
Member Author

OK, removed the date changes.

codecov Bot commented Feb 13, 2017

Copy link
Copy Markdown

Codecov Report

Merging #73 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@ ## master #73 +/- ## ========================================== + Coverage 82.37% 82.37% +<.01% ========================================== Files 1427 1427 Lines 350948 350948 ========================================== + Hits 289081 289089 +8 + Misses 61867 61859 -8

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c9b62b4...e6a6600. Read the comment docs.

berkerpeksag merged commit 3cdbd68 into python:master Feb 13, 2017
Mariatta referenced this pull request in Mariatta/cpython Feb 13, 2017
* Add a paragraph at the top for users, not builders, of Python. * Use nicer rst url syntax to avoid borking paragraphs in the plain text. Contributed by Ned Batchelder @nedbat (cherry picked from commit 3cdbd68)
Mariatta referenced this pull request in Mariatta/cpython Feb 13, 2017
* Add a paragraph at the top for users, not builders, of Python. * Use nicer rst url syntax to avoid borking paragraphs in the plain text. Contributed by Ned Batchelder @nedbat (cherry picked from commit 3cdbd68)
Mariatta added a commit that referenced this pull request Feb 13, 2017
* Add a paragraph at the top for users, not builders, of Python. * Use nicer rst url syntax to avoid borking paragraphs in the plain text. Contributed by Ned Batchelder @nedbat (cherry picked from commit 3cdbd68)
Mariatta added a commit that referenced this pull request Feb 13, 2017
* Add a paragraph at the top for users, not builders, of Python. * Use nicer rst url syntax to avoid borking paragraphs in the plain text. Contributed by Ned Batchelder @nedbat (cherry picked from commit 3cdbd68)
zware added a commit to zware/cpython that referenced this pull request Feb 14, 2017
zware added a commit that referenced this pull request Feb 15, 2017
nedbat deleted the readme-tweaks branch January 1, 2020 03:21
jaraco added a commit to jaraco/cpython that referenced this pull request Feb 17, 2023
lysnikolaou referenced this pull request in lysnikolaou/cpython Apr 30, 2024
Fix cursor position for double-width characters
AA-Turner added a commit to AA-Turner/cpython that referenced this pull request Apr 22, 2025
SonicField added a commit to SonicField/cpython that referenced this pull request Apr 16, 2026
EndInlinedFunction::inline_depth_ defaults to -1 in C++ but calloc gives 0. This was identified as the sole remaining unprotected non-zero default (Pythia python#73, calloc-zero audit D-1776289329). Add hir_c_init_end_inlined() following the same pattern as hir_c_init_deopt (nonce=-1) and hir_c_alloc_instr (bytecode_offset=-1). Any future C factory for EndInlinedFunction must use this init function.
SonicField added a commit to SonicField/cpython that referenced this pull request Apr 22, 2026
Adds Lib/test/test_phoenix_jit_inline_except_closure.py as the regression detector for D-1774910012 (28b4ee1, inline exception handler deopt fix). Original C++ fix shipped without a regression test; project memory notes 'only triggers if closure reaches threshold=1000 (currently doesn't in test suite)'. The C port (push 59 emitInlineExceptionMatch) preserves the same invariant. This test pre-exists the port so push 59's dual-arch gate naturally exercises the falsifier. 3 tests covering theologian's 4-step spec + 2 extensions: - test_load_deref_in_except_basic: closure + LOAD_DEREF in except, WARMUP=1100 - test_load_deref_with_pop_except_chain: nested try/except + exc_info chain integrity (sys.exc_info() must be clean between calls) - test_load_deref_after_pop_except: LOAD_DEREF after POP_EXCEPT verifies Py_None placeholder pop semantics + closure cell mutation correctness Baseline: 3/3 PASS on push 58 binary (8b7b935, pre-port C++ implementation). Test now becomes the regression gate for the C port. scripts/gate_phoenix.sh updated to include the new test in PHOENIX_MODULES gate (was 15 tests, now 16). Per pythia python#73 + theologian + supervisor 14:55:41Z: closes the validation gap before push 59 emitInlineExceptionMatch lands.
SonicField added a commit to SonicField/cpython that referenced this pull request Apr 22, 2026
Convert HIRBuilder::emitInlineExceptionMatch — the largest, most complex method in the original 7-method remaining set (185-line C++ source with inline bytecode dispatch + 5-block + D-1774910012 invariant). Mirrors C++ HIRBuilder::emitInlineExceptionMatch @ builder.cpp:1329 (pre-conversion). Tier 5 milestone: 70.1%. emitInlineExceptionMatch is the FIRST method shipping with both encoding-clean AND invariant-preserved validation per pythia python#73 (chat 14:39:something) gap closure: D-1774910012 falsifier (3 tests, 595734c) landed pre-port and preserved post-port per testkeeper 8-test gate at chat 15:31:50Z. W25-defer-aware A1 stub-heavy bytecode-parse design (theologian chat 14:48:10Z pre-audit): ZERO new bridges. Pre-audit bridge-count gate per supervisor 14:16:55Z policy (>1 → HALT for Option B reconsideration); this method passed at 0 ≤ 1. 5 phases per pre-audit: P1: getitem CallStatic dispatch (pointer pre-resolved by C++ stub via JITRT_DictGetItem vs PyObject_GetItem) P2: exc_tc setup with depth-trim + LoadConst exc_type + JITRT_MatchAndClearException CallStatic + match_block / deopt_block CondBranch P3: match_tc setup + Py_None placeholder push (D-1774910012 PA) + bytecode dispatch loop (10 cases + default) P4: deopt_tc setup with re-push left/right + Snapshot + Deopt P5: ok block — RefineType in-place SSA-rename 3 separate PhxTranslationContext objects (PB): exc_tc copies from tc.frame match_tc copies from EXC_TC.FRAME (depth-trimmed) deopt_tc copies from TC.FRAME (original, NOT exc_tc) Approach: C++ stub iterates info.except_body bytecodes via BytecodeInstruction.nextInstr() and builds an opcode array with pre-resolved const_obj (LOAD_CONST/RETURN_CONST) and jump_target_block (JUMP_BACKWARD*). C body switches on the array. Sibling C emit functions (hir_builder_emit_swap_c / load_fast_c / store_fast_c / binary_op_c) called directly with extern decls. OpcodeArrayEntry struct mirrored on C++ + C side (5 fields per entry: opcode, oparg, base_offset, const_obj, jump_target_block). C++ static_assert on size sanity check. D-1774910012 invariant (PA pitfall): Py_None placeholder pushed on match_tc.frame.stack BEFORE dispatch loop; POP_EXCEPT case pops the placeholder. Mirrors the inline exception handler deopt fix at 28b4ee1 from 2026-04-01. Failure mode: closure LOAD_DEREF in except blocks → deopt stack mismatch → exc_info chain corruption post-threshold (only triggers post-1000 calls). Preserved via the falsifier in test_phoenix_jit_inline_except_closure.py (push 595734c). Bytecode dispatch loop opcodes (10 handled + default): POP_EXCEPT (pops placeholder per PA), POP_TOP (pops TOS), SWAP, LOAD_FAST/_CHECK/_AND_CLEAR (3 cases), LOAD_CONST, STORE_FAST, BINARY_OP, RETURN_CONST, RETURN_VALUE, JUMP_BACKWARD/_NO_INTERRUPT (2 cases), default → deopt Pitfalls addressed inline (theologian chat 14:48:10Z 8 pitfalls): PA: D-1774910012 Py_None placeholder + POP_EXCEPT pops PB: 3-TC frame-copy origins (each from correct source frame) PC: handler.depth depth-trim while-loop in P2 PD: dispatch loop default → deopt (silent path; supervisor chat 15:30:08Z (b) JIT_DCHECK addition deferred to follow-up commit pending design clarification) PE: emitted_terminator semantics replaced by `goto match_loop_done` pattern in C PF: phx_frame_state_destroy on ALL 3 TCs at function end PG: sibling C emit functions take match_tc explicitly PH: stub-built opcode array with 5 fields per entry JITRT_MatchAndClearException pointer passed from C++ stub via void* (vs C-side direct reference) — avoids C-vs-C++ name mangling at link time. Same pattern as getitem_fn. testkeeper iter cycle: iter 1: 5 errors (extern decl signature mismatches on sibling emit functions + arg counts on LOAD_FAST/STORE_FAST) iter 2: 2 errors (binary_op_c PhxTranslationContext* sig + BCOffset→int conversion) iter 3: 1 link error (JITRT_MatchAndClearException name mangling) iter 4: PASS — JIT_BUILD_EXIT=0, full --clean BUILD_EXIT=0, 8-test gate including D-1774910012 falsifier 8/8 PASS W26 gate-hardening not triggered (clean build path). ZERO new bridges held. Per pythia python#74 (chat 15:29:something): PA invariant validated by falsifier; PB-PH rely on theologian's spec + reviewer inspection. Mutation test per supervisor chat 15:30:08Z (a) is gating push 59 PUSH AUTHORIZED — testkeeper to execute before dual-arch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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.

5 participants

Footer

© 2026 GitHub, Inc.