Skip to main content

Command Palette

Search for a command to run...

2024년 6월 11일 작업일지

Updated
2 min read

swc_core Regression 수정

제일 수상한 #8986 을 우선 리버트하고 프로덕션 빌드를 돌려봤다. 그랬더니 잘 작동했다. 그래서 revert 한 것 그대로 PR 만들었다.

@swc/core@v1.5.28 배포

SWC Minifier 버그 수정

해결책이 성능적인 측면에서 마음에 들진 않는데, 그래도 일단 간단한 해결책을 사용해서 PR을 만들었다.

swc_core 업데이트 PR 리베이스

SWC: CI 문제 해결

SWC Minifier 버그 디버깅

이전부터 작업하던 이슈인데 난이도가 조금 있어서 기록하면서 디버깅하기로 했다.

t의 값이 이상한 게 문제였다.

m6 12c3.3 0 6-2.7 6-6s-2.7-6-6-6-6 2.7-6 6 2.7 6 6 6z 가 들어간 문자열은 하나밖에 없었다.

입력 파일에서 찾아보니까 property hoisting이 문제인 것 같았다. 근데 minifier에서 직접 UPDATE=1 cargo test를 하니까

                var et = {
                    btn: '<svg class="H_icon" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><g transform="translate(3 2)"><path d="m18 13v7h-18v-7h2v5h2v-2h2v2h2v-3h2v3h2v-2h2v2h2v-5z"></path><path d="m2.3.3c.7 0 1.3.1 1.8.4s.9.6 1.1 1 .4.9.4 1.4c0 .5-.1 1-.3 1.4s-.57 1-1 1.6-1.3 1.3-2.3 2.2h3.9l-.2 1.7h-6.16v-1.6c1.1-1.1 2-2 2.5-2.6s.9-1 1-1.4.3-.8.3-1.2c0-.4-.1-.7-.3-.9s-.5-.3-.9-.3c-.3 0-.6 0-.9.2s-.5.4-.8.7l-1.3-1c.4-.5.9-.9 1.4-1.2s1.2-.4 1.8-.4zm14.4 9.7h-2.3l-.2-3.8c 0-.9-.1-1.7-.1-2.4 0-.5 0-1 0-1.5l-1.5 6.7h-2.2l-1.6-6.7c.1.8.1 1.6.1 2.3 0 .5 0 1.1 0 1.7l-.2 3.8h-2.2l.7-9.7h2.9l1.5 6.6 1.4-6.6h2.9z"></path></g></g></svg>',
                    point: '<svg height="22" viewBox="0 0 12 12" width="22" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m6 12c3.3 0 6-2.7 6-6s-2.7-6-6-6-6 2.7-6 6 2.7 6 6 6z" fill="#fff"></path><path d="m6 10c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4z" fill="#2ed5c9" stroke="#272c36" stroke-width="2"></path></g></svg>'
                };

가 정상적으로 유지됐다. 진짜 이해가 안 돼서

import fs from 'node:fs/promises'
import { minify } from './dist/build/swc/index.js'

const src = await fs.readFile(
  '/Users/kdy1/projects/s/minifier/crates/swc_ecma_minifier/tests/fixture/next/66182/input.js',
  'utf-8'
)

const minified = await minify(src)
console.log(minified.code)

같은 코드를 짜서 돌려봤는데 나온 파일에선 var et가 정상적으로 유지됐다. 테스트용으로 입력을 추출하는 스크립트에 문제가 있나 했는데 이미 SWC 메인 레포지토리와 v15.0.0-canary.12에서는 고쳐진 문제였다. canary.12 에 적용된 swc_core 업데이트가 revert 돼버려서 최신 카나리에서 재현이 가능한 것이었고, 헛수고했지만 그래도 문제는 해결됐다.

SWC 파서 최적화

SWC의 ES파서가 템플릿 리터럴 렉싱할 때 매우 비효율적인 작업을 하고 있었다.

More from this blog

한국의 학벌에 대한 생각

내 블로그의 제목이 kdy1: The way I think 인만큼 앞으로는 내 생각을 더 자주 올리려고 한다. 한국 기준으로, 학벌은 사람을 볼 때 꽤나 유용한 지표이지만, 절대적이지는 않다. 경험적인 얘기일 뿐이지만, 성균관대학교 자퇴생으로서 느낀 것들이 몇 가지 있다. 대학까지 간 사람의 학벌은 학습 능력 x 성실함 에 대체로 비례한다. 그래서 의미가

Apr 3, 20261 min read

인간 지능에 대한 메모장

최종 업데이트: 2026/03/15 지능의 유전 현재 인류 기준으로, 고지능자는 고지능 유전자가 많이 겹친 사람이다. 지능의 유전엔 X 염색체가 매우 중요한 역할을 한다. 그리고 이게 남자와 여자의 지능 분포 차이를 만든다. 극상위권에 여자가 거의 없는 이유가 이것이다. 고지능 X 염색체가 여자한테서 발현되려면 2개가 있어야 한다. 이는 인간의 생

Mar 15, 20262 min read

Ai 코딩 팁 2 (한국어)

발표 자료: https://gamma.app/docs/AI--2a52e7tk3eb1ch1 AI 활용법 관련해서 간단하게 발표를 했다. 발표 자료 앞쪽은 전에 블로그에 올린 글이랑 같은 내용이다. 이 글에서는 기존 글에서 다루지 않은 내용들을 다루겠다. 에러 메시지 및 로깅 구체적 타입 및 스키마 활용 any 타입은 사람에게도 위험하지만, AI에게는 더 위험하다. 마찬가지로, JSON.parse처럼 아무 제약 없는 파싱 느슨한 인터페이스 ...

Jan 30, 20265 min read

kdy1: The way I think

233 posts