Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

PEP 283 – Python 2.3 릴리스 일정

Author:
Guido van Rossum
Status:
Final
Type:
Informational
Topic:
Release
Created:
27-Feb-2002
Python-Version:
2.3
Post-History:
27-Feb-2002

Table of Contents

번역·라이선스 안내

이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판

초록

이 문서는 Python 2.3의 개발 및 릴리스 일정을 설명합니다. 이 일정은 주로 PEP 규모의 항목을 다룹니다. 작은 기능은 첫 번째 베타 릴리스까지(해당 릴리스 포함) 추가할 수 있습니다. 버그는 최종 릴리스 전까지 수정할 수 있습니다.

알파 릴리스 최소 두 번, 베타 릴리스 최소 두 번, 릴리스 후보 최소 한 번이 있을 예정입니다. 알파 릴리스와 베타 릴리스는 최소 4주 간격을 둡니다(단, 이전 릴리스의 실수를 바로잡기 위해 긴급 릴리스를 내야 하는 경우는 예외이며, 이때 실수를 바로잡는 릴리스는 셈에 넣지 않습니다). 릴리스 후보는 최소 1주 간격을 둡니다(이 경우에도 실수를 바로잡는 릴리스는 예외입니다).

알파 1 2002년 12월 31일
알파 2 2003년 2월 19일
베타 1 2003년 4월 25일
베타 2 2003년 6월 29일
후보 1 2003년 7월 18일
후보 2 2003년 7월 24일
최종 2003년 7월 29일

릴리스 관리자

Barry Warsaw, Jeremy Hylton, Tim Peters

2.3에서 완료된 기능

이 목록은 완전하지 않습니다. 자세한 내용은 CVS의 Doc/whatsnew/whatsnew23.tex를, 전체 목록은 물론 Misc/NEWS를 참조하십시오.

  • Tk 8.4 업데이트.
  • bool 타입과 그 상수인 True와 False (PEP 285).
  • PyMalloc이 크게 개선되었으며 기본적으로 활성화됩니다.
  • 범용 줄바꿈 지원 (PEP 278).
  • PEP 263 Python 소스 코드 인코딩 정의, Lemburg

    구현되었습니다(최소한 1단계는 구현되었으며, 2.3에 계획된 것은 1단계가 전부입니다).

  • 모든 내장 시퀀스에 대한 확장 슬라이스 표기법입니다. Michael Hudson의 패치가 이제 모두 체크인되었습니다.
  • tp_iter를 채우는 것과 그 밖의 조정으로 리스트 이터레이션 속도를 높입니다. https://bugs.python.org/issue560736 을 참조하십시오. xrange와 튜플에도 적용했습니다.
  • 타임아웃 소켓입니다. https://bugs.python.org/issue555085
  • int/long 통합(PEP 237)의 B0 단계입니다. 이는 hex나 oct 변환 또는 왼쪽 시프트가 같은 값의 int와 long에 대해 서로 다른 값을 반환하는 상황에서 FutureWarning을 발생시킨다는 의미입니다. Python 2.3에서는 의미론이 바뀌지 않습니다. 변경은 Python 2.4에서 이루어질 예정입니다.
  • 모든 코드 객체에서 SET_LINENO를 제거합니다(디버거 중단점을 설정하는 다른 방법을 제공합니다). 이로써 pystone 성능이 5% 넘게 향상될 수 있습니다. https://bugs.python.org/issue587993, 이제 체크인되었습니다. (안타깝게도 pystone 성능 향상은 일어나지 않았습니다. 무슨 일이 있었던 것입니까?)
  • 사람들이 자신의 확장 모듈에 함께 넣어 1.5.2부터 2.3까지의 모든 Python에서 2.3 메모리 인터페이스를 사용할 수 있도록 하는 pymemcompat.h를 작성합니다. (Michael Hudson이 Misc/pymemcompat.h를 체크인했습니다.)
  • “보류 중인 폐지(pending deprecation)”라는 새 개념과 이에 연관된 경고 PendingDeprecationWarning을 추가합니다. 이 경고는 보통 억제되지만, 적절한 -W 옵션으로 활성화할 수 있습니다. 현재는 이 경고를 사용하는 곳이 몇 군데뿐입니다.
  • 확장 타입의 tp_compare가 -1, 0, 1 이외의 값을 반환하면 경고합니다. https://bugs.python.org/issue472523
  • (다양한 형태의) None에 대한 대입에 대해 경고합니다.
  • PEP 218 내장 집합 객체 타입 추가, Wilson

    Alex Martelli가 Greg Wilson의 프로토타입을 새 버전으로 만들어 기여했고, 제가 이를 상당히 많이 고쳤습니다. 이제 sets 모듈로 표준 라이브러리에 들어가 있지만, 첫 베타 릴리스 전까지 일부 세부 사항은 여전히 바뀔 수 있습니다. (당분간 이를 내장 타입으로 만들 계획은 없습니다.)

  • PEP 293 코덱 오류 처리 콜백, Dörwald

    완전히 구현되었습니다. 이제 unicode.encode나 str.decode의 오류 처리 방식을 사용자 정의할 수 있습니다.

  • PEP 282 로깅 시스템, Mick

    Vinay Sajip의 구현이 패키지로 구성되어 반입되었습니다. (문서와 단위 테스트는 아직 작업 중입니다.) https://bugs.python.org/issue578494

  • 수정된 MRO(메서드 결정 순서) 알고리즘입니다. C3를 채택해야 한다는 데 합의가 이루어졌습니다. Samuele Pedroni가 C로 작성한 초안 구현을 기여했습니다. https://bugs.python.org/issue619475 를 참조하십시오. 이 구현은 이제 체크인되었습니다.
  • 새로운 명령줄 옵션 파서입니다. Greg Ward의 Optik 패키지(http://optik.sf.net)가 채택되어 optparse라는 이름의 단일 모듈로 변환되었습니다. 다음도 참고하십시오: http://www.python.org/sigs/getopt-sig/
  • 표준 datetime 타입입니다. 이 작업은 위키에서 시작되었습니다: http://www.zope.org/Members/fdrake/DateTimeWiki/FrontPage. 프로토타입은 nondist/sandbox/datetime/에 작성되었습니다. Tim Peters가 C 구현을 완성하여 체크인했습니다.
  • PEP 273 Zip 아카이브에서 모듈 임포트하기, Ahlstrom

    PEP 302 구현 작업의 일환으로 구현되었습니다.

  • PEP 302 새로운 임포트 훅, JvR

    구현되었습니다(다만 2.3a1 릴리스에는 몇 가지 버그가 있었으며, 이는 릴리스 이후에 수정되었습니다).

  • 새로운 피클링 프로토콜입니다. PEP 307을 참고하십시오.
  • PEP 305 (CSV 파일 API, Skip Montanaro 외)가 포함되었습니다. 이것이 csv 모듈입니다.
  • Raymond Hettinger의 itertools 모듈이 포함되었습니다.
  • PEP 311 (확장 모듈을 위한 단순화된 GIL 획득, Mark Hammond)이 베타 1에 포함되었습니다.
  • 새로운 PyArg_Parse*() 형식 코드 두 개가 추가되었습니다. ‘k’는 Python 인자의 하위 LONG_BIT 비트를 받는 unsigned C long int를 반환하며, 범위 검사 없이 잘라냅니다. ‘K’는 하위 LONG_LONG_BIT 비트를 받는 unsigned C long long int를 반환하며, 범위 검사 없이 잘라냅니다. (SF 595026; 이 작업은 Thomas Heller가 수행했습니다.)
  • IDLEfork 프로젝트(http://idlefork.sf.net)에서 새로운 버전의 IDLE을 가져왔습니다. 이제 이 코드는 표준 라이브러리의 idlelib 패키지에 있으며, idle 스크립트는 setup.py가 설치합니다.

2.3에 계획된 기능

여기에서 더 진행하기에는 너무 늦었습니다.

진행 중인 작업

다음은 진행 중인 TO-DO 항목으로, 특정 날짜까지 완료되기를 기대하지 않고 계속 작업을 시도해야 하는 것들입니다.

  • 문서화: 배포 및 설치 매뉴얼을 완성합니다.
  • 문서화: 새 스타일 클래스에 대한 문서를 완성합니다.
  • Demos/ 디렉터리를 살펴보고 필요한 곳을 갱신합니다(Andrew Kuchling이 이 작업을 많이 했습니다)
  • 새로운 테스트를 추가합니다.
  • SF에 등록된 문서 버그를 수정합니다.
  • 코어에서 폐기 예정 기능의 사용을 제거합니다.
  • 폐기 예정 기능을 적절히 문서화합니다.
  • 폐기 예정 C API를 Py_DEPRECATED로 표시합니다.
  • 유지 보수되지 않는 모듈을 폐기 예정으로 지정하거나, ‘Unmaintained’ 모듈이라는 새로운 범주를 만듭니다
  • 전반적으로, 앞으로 나아가기 쉽도록 많은 정리 작업이 이루어졌습니다.

미해결 문제

최종 릴리스 전에(가급적이면 첫 번째 베타 릴리스 전에) 추가 작업이나 검토가 필요할 수 있는 문제가 몇 가지 있습니다: 남은 문제는 없습니다.

Python 2.3에 포함되지 못한 기능

  • 임포트 잠금은 다소 재설계할 필요가 있습니다. (SF 683658.)
  • 집합 API 문제; sets 모듈은 완벽합니까?

    더 폭넓은 사용자 경험이 쌓일 때까지는 다듬는 작업을 멈춰도 될 만큼 충분히 좋다고 생각합니다.

  • (일부 사람들이 보기에) 보기 흉한 “U” 모드 플래그를 대체하는, 텍스트 파일을 여는 더 나은 API. 새로운 내장 타입 textfile(filename, mode, encoding)을 추가하자는 제안이 나와 있습니다. (bufsize 인자도 있어야 하지 않겠습니까?)

    위와 같습니다.

  • Tkinter용 새 위젯???

    이 작업을 할 시간을 낸 사람이 있습니까? Tk 8.4에 새 위젯이 있기는 합니까? 이미 Tix 지원이 개선되었다는 점에 유의하십시오(아직 Windows에서는 아니지만).

  • Fredrik Lundh의 basetime 제안:

    http://effbot.org/ideas/time-type.htm

    이 제안은 이제 폐기된 것으로 생각합니다.

  • PEP 304 (Montanaro의 바이트코드 파일 생성 제어)는 추진력을 잃은 것으로 보입니다.
  • 다른 클래스 안에 정의된 클래스의 경우, __name__은 "outer.inner"여야 하고 피클링도 동작해야 합니다. (SF 633930. 이것이 쉬운지, 심지어 옳은지조차 이제는 확신하지 못합니다.)
  • reST는 Zope3에서 많이 사용될 예정입니다. 표준 라이브러리 모듈이 될 수도 있지 않겠습니까? (reST의 작성자가 아직 너무 불안정하다고 생각하므로, 저는 이를 하지 않는 쪽으로 기울어 있습니다.)
  • (특히 모듈에 대한) 더 명확한 폐지 정책을 정하고 이를 실행하십시오. 우선 Neal Norwitz의 다음 메시지를 참고하십시오: https://mail.python.org/pipermail/python-dev/2002-April/023165.html 이를 체계적으로 더 진전시키는 데 대한 관심이 부족해 보이며, 특별히 중요한 사안도 아닙니다.
  • types 모듈의 일반적인 용도에 대한 대안을 제공하십시오;

    Skip Montanaro가 이 아이디어에 대한 초안 PEP를 게시했습니다: https://mail.python.org/pipermail/python-dev/2002-May/024346.html

    제가 아는 한, 이에 대해서는 아무런 진전이 없었습니다.

  • types 및 string 모듈에 보류 중인 폐지(pending deprecation)를 적용하십시오. 이를 위해서는 아직 다루어지지 않은 부분(예: string.whitespace 및 types.TracebackType)에 대한 대안을 제공해야 합니다. 이에 대해서는 합의를 이룰 수 없는 것으로 보입니다.
  • buffer 객체를 폐지 예정으로 지정하십시오.

    이 문제는 결코 해결되지 않을 것으로 보입니다.

  • PEP 269 Python용 Pgen 모듈, Riehl

    (필요한 변경 사항 일부는 반영되었지만, pgen 모듈 자체는 좀 더 성숙해져야 합니다.)

  • 오랫동안 기다려 온 Python 카탈로그에 대한 지원을 추가합니다. Kapil Thangavelu는 OSCON 2002에서 시연한 Zope 기반 구현을 가지고 있습니다. 이제 필요한 것은 이를 호스팅할 장소와 이를 앞장서서 추진할 사람뿐입니다. (적어도 이를 지원하기 위한 distutils 변경 사항 일부는 반영되었습니다.)
  • PEP 266 전역 변수/속성 접근 최적화, Montanaro

    PEP 267 모듈 네임스페이스에 대한 최적화된 접근, Hylton

    PEP 280 전역 변수 접근 최적화, van Rossum

    이들은 기본적으로 우호적으로 경쟁하는 세 가지 제안입니다. Jeremy가 새 컴파일러 작업에서 약간의 진전을 이루었지만, 진행이 더디며 컴파일러는 첫 단계에 불과합니다. 어쩌면 이번 릴리스에서 컴파일러를 리팩터링할 수 있을지도 모릅니다. 너무 기대하지는 않겠다고 말하고 싶은 심정입니다. 그동안 Oren Tirosh는 딕셔너리 접근을 최적화하고 인라인화하여 전역 변수와 내장 객체에 접근하는 성능을 크게 향상할 수 있는 훨씬 더 간단한 아이디어를 가지고 있습니다: http://tothink.com/python/fastnames/

  • 튜플을 지연 추적하는 것은 어떻습니까?

    그다지 호응이 없는 것으로 알고 있습니다.

  • PEP 286 향상된 인자 튜플, von Loewis

    아직 이를 철저히 검토할 시간이 없었습니다. 깊은 수준의 최적화 꼼수로 보입니다(다만 정확성도 더 잘 보장합니다).

  • ‘as’를 키워드로 만듭니다. 이미 충분히 오랫동안 준키워드였습니다. 신경 쓰기에는 너무 많은 노력이 듭니다.