콘텐츠로 이동

3.5.0 이후의 모든 버전

3.5.0

Added

  • q:GetOrCreate(key, build) — 모듈 인스턴스마다의 결과 캐시. 처음 부를 때 build(q)를 돌려 값을 기억하고, 같은 열쇠로 다시 부르면 그 값을 돌려줍니다. 컴포넌트 킷처럼 q를 넘겨받아 쓰는 코드가 모듈을 q의 팩토리로 만들 때 씁니다(require("./Common")(q)가 같은 q에서 한 벌만 만들어짐). 캐시는 인스턴스와 함께 수거되고, 만드는 중인 열쇠를 다시 부르면 에러입니다.
  • q:AssertProvider(name, versionPattern) — 받은 q에 필요한 백엔드가 맞는 버전으로 설치돼 있는지 확인하고, 아니면 “설정 모듈에서 UseProvider를 먼저”라고 알리며 던집니다. 프로바이더 함수가 아니라 이름과 버전으로 비교하므로 패키지 사본이 달라도 같은 백엔드로 알아봅니다.
  • q.Backend.provider — 프로바이더가 자기 이름과 버전({ name, version })을 적는 자리. quad-roblox는 설치 때 { name = "quad-roblox", version = <자기 버전> }을 적습니다. 직접 만든 프로바이더도 AssertProvider로 확인받으려면 여기에 적으세요.
  • QuadTypes.SlotCtx<Item, UD, T> — slot:List·slot:Single의 updateFn이 받는 ctx의 타입 이름(항목, 사용자 데이터, 원소 타입). 파일마다 같은 레코드를 다시 적던 자리를 type RowCtx = QuadTypes.SlotCtx<Row, nil, Instance> 한 줄로 쓸 수 있습니다.

Changed

  • quad(quad-base·quad-roblox)의 q.debug 진단 줄이 모두 [quad debug] 로 시작합니다 — Studio 출력에서 자기 print와 구분됩니다. 진단 문구를 통째로 비교하던 테스트는 접두를 넣거나 부분 일치로 바꾸세요.
  • Quad0076: 숫자 키 자리에 함수가 오면({ q.Elem "Frame" }처럼 호출을 빠뜨린 경우) 프로바이더 설정을 의심하라는 꼬리 대신 “호출하지 않은 생성자나 컴포넌트”를 묻는 꼬리를 붙입니다.
  • Quad0109·Quad0110·Quad0113(Observer): 메시지가 “콜백 안에서”뿐 아니라 “콜백이 앞서 던진 뒤”인 경우도 말합니다 — 던진 콜백은 실행 중 표시를 남깁니다.

4.0.0 Latest

Changed

  • 3.x 안정화 구간을 닫습니다. 이제 호환이 깨지는 변경은 메이저 버전에만 싣습니다 — 설치 줄은 ~3.5.0 대신 ^4.0.0으로 적으세요. q:AssertProvider나 커스텀 프로바이더에 3.x 패턴을 적어 둔 코드는 Quad0289·Quad0228로 막히니 4.0^.0^류로 바꾸세요. quad_error와 type_version_check는 이 릴리즈 뒤로 각자의 번호로 올라갑니다. 공식 킷 둘(qwreey/quad_kit_roblox_devui·qwreey/quad_kit_roblox_material)이 4.0.0으로 처음 게시됩니다.
  • BREAKING 에러 번호를 실수 단위로 합쳤습니다 — 같은 규칙을 어기면 경로·q.debug·Effect/Observer 차이와 상관없이 같은 번호입니다. 이제 어떤 실수가 어느 번호로 보고되는지는 계약이고(바꾸면 메이저), 메시지 문구는 계약이 아닙니다. 옮기는 법: 번호로 분기하던 코드가 있으면 아래 표대로 새 번호로 바꾸세요. 폐기된 번호는 레퍼런스 각 페이지 끝의 접힌 목록에 남아 새 번호를 가리키고 다른 뜻으로 재사용되지 않습니다.
폐기 새 번호
Quad0003 · Quad0006 · Quad0013 Quad0001
Quad0005 · Quad0009 Quad0004
Quad0043 · Quad0123 · Quad0252 Quad0018
Quad0158 · Quad0162 Quad0020
Quad0064 Quad0057
Quad0264 Quad0063
Quad0097 · Quad0116 · Quad0137 · Quad0274 · Quad0277 Quad0068
Quad0109 Quad0087
Quad0090 · Quad0110 · Quad0113 Quad0088
Quad0091 · Quad0111 · Quad0114 Quad0089
Quad0112 Quad0092
Quad0115 Quad0093
Quad0164 · Quad0165 · Quad0242 Quad0140
Quad0151 Quad0142
Quad0160 · Quad0172 Quad0156
Quad0171 Quad0170
Quad0182 · Quad0185 Quad0181
Quad0204 · Quad0237 Quad0200
Quad0211 Quad0209
Quad0241 Quad0219
Quad0231 · Quad0234 · Quad0235 Quad0230
Quad0233 Quad0232
Quad0245 Quad0244
  • Tween의 콜백 셋(Started·Completed·Cancelled), tween:Wrapped와 tween:Mapped의 wrap, q.ForClasses와 타입 함수가 계산하는 표면의 세부를 unstable로 표시했습니다 — SemVer 보증 밖이고, 바뀌면 이 파일의 Changed에 (unstable)을 달아 알립니다. 동작 변경은 없습니다.
  • Completed의 정의를 문서에 못 박았습니다 — 끝났는지는 Completed가 나왔는가로만 정하고, 프로퍼티가 목표에 닿았는지는 묻지 않습니다. Completed 전에 교체되거나 철거되면 언제나 Cancelled입니다. 그래서 엔진이 목표에 닿았지만 통지가 아직인 트윈을 교체하면 전에는 Completed였고 이제 Cancelled입니다(unstable — 실측에서 사용자 코드가 그 사이에 끼어든 경우는 없었습니다).