<p>μ‘°μ • κ°€λŠ₯ν•œ μ»¨ν…Œμ΄λ„ˆμ—μ„œ display()λ₯Ό ν˜ΈμΆœν•˜λŠ” Mudlet 동결</p>

에 λ§Œλ“  2021λ…„ 01μ›” 10일  Β·  13μ½”λ©˜νŠΈ  Β·  좜처: Mudlet/Mudlet

λ¬Έμ œμ— λŒ€ν•œ κ°„λž΅ν•œ μš”μ•½

잘λͺ»λœ λͺ…령을 μž…λ ₯ν•˜λ©΄ Mudlet이 λͺ‡ 초 λ™μ•ˆ 멈μΆ₯λ‹ˆλ‹€.

문제λ₯Ό μž¬ν˜„ν•˜λŠ” 단계

Discord μ‚¬μš©μž chadλŠ” λ‹€μŒκ³Ό 같이 μ„€λͺ…ν•©λ‹ˆλ‹€.

  1. κ·Έλž˜μ„œ testContainerλΌλŠ” μ‘°μ • κ°€λŠ₯ν•œ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ§Œλ“€λ©΄
    testContainer = Adjustable.Container:new({name = "ARS main window"})
  2. λ‚΄ cmd ν”„λ‘¬ν”„νŠΈμ—μ„œ lua testContainer λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  3. 그것은 mudlet을 λ©ˆμΆ”κ³  λ‚˜μ—κ²Œ λ©”λͺ¨λ¦¬ 였λ₯˜λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€

였λ₯˜ 좜λ ₯

[ERROR:] Objekt:<run lua code> Funktion:<Alias4>
        <not enough memory>

Mudlet 버전, 운영 체제 및 ν•΄κ²°/κ΅¬ν˜„ 방법에 λŒ€ν•œ 아이디어와 같은 μΆ”κ°€ 정보:

그건 λ‚΄ λ…ΈνŠΈλΆμ΄λ‚˜ 1개의 ν”„λ‘œν•„μ—λ§Œ μžˆλŠ” 것이 μ•„λ‹™λ‹ˆλ‹€.
λ‚΄ λ…ΈνŠΈλΆκ³Ό PC에 μžˆμŠ΅λ‹ˆλ‹€(16GB 램)
μƒˆ ν”„λ‘œν•„, 이전 ν”„λ‘œν•„
λ¨Έλ“€λ › 4.10.1

bug high lua only

λͺ¨λ“  13 λŒ“κΈ€

κ·Έ 행동은 μ–΄λ–»κ²Œ λ“  Lua μ½”λ“œμ—μ„œ μΌμ–΄λ‚˜λŠ” λ¬΄ν•œ μž¬κ·€μ™€ μΌμΉ˜ν•©λ‹ˆλ‹€ ...

쒋지 μ•Šμ€ λ™μž‘μœΌλ‘œ 인해 높은 λ ˆμ΄λΈ”μ„ μ§€μ •ν•˜λ©΄ Mudlet이 μ—¬κΈ°μ—μ„œ 더 μž˜ν•  κ²ƒμœΌλ‘œ κΈ°λŒ€ν•©λ‹ˆλ‹€.

이것을 루아 μ „μš© 문제일 κ°€λŠ₯성이 μžˆλŠ” κ²ƒμœΌλ‘œ ν‘œμ‹œν•˜λŠ” 것이 κ³΅μ •ν• κΉŒμš”?

κ·Έ λ™μž‘μ€ _Lua_ μ½”λ“œμ—μ„œ λ°œμƒν•˜λŠ” λ¬΄ν•œ μž¬κ·€μ™€ μΌμΉ˜ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

λ„€, κ·Έ μ΄μœ μž…λ‹ˆλ‹€. κ°„ν—μ²œμ€ 항상 μ»¨ν…Œμ΄λ„ˆ(myGeyserElement.container)에 λΆ€λͺ¨ μ°Έμ‘°λ₯Ό μœ μ§€ν•©λ‹ˆλ‹€.
이것은 λ””μŠ€ν”Œλ ˆμ΄μ˜ μ•Œλ €μ§„ 문제이며 Geyser μ œμž‘μžκ°€ Geyser.display κΈ°λŠ₯을 λ§Œλ“  μ΄μœ μ΄κΈ°λ„ ν•©λ‹ˆλ‹€(11λ…„ μ „ :eyes: ).
https://github.com/Mudlet/Mudlet/blob/d84f0b5b171370feb96db2f1950a3fd6dac1709f/src/mudlet-lua/lua/geyser/GeyserUtil.lua#L35
λ”°λΌμ„œ λ””μŠ€ν”Œλ ˆμ΄λ₯Ό μ‚¬μš©ν•˜λŠ” λŒ€μ‹  ν•΄κ²° 방법은 Geyser.displayλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

κ°„ν—μ²œ 물체가 주어지면 식별할 수 μžˆμŠ΅λ‹ˆκΉŒ? display() 이 경우 μžλ™μœΌλ‘œ ν•΄λ‹Ή ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ””μŠ€ν”Œλ ˆμ΄κ°€ μ΄λŸ¬ν•œ λ¬΄ν•œ 루프λ₯Ό λ‹€μ‹œλŠ” μ‹€ν–‰ν•˜μ§€ μ•Šλ„λ‘ λ„μšΈ 수 μžˆμ„κΉŒμš”?
예λ₯Ό λ“€μ–΄, 이미 ν‘œμ‹œλœ λͺ¨λ“  ν…Œμ΄λΈ”μ˜ λͺ©λ‘μ„ μœ μ§€ν•˜κ³  ν•˜λ‚˜μ˜ 전체 두 번째 버전을 λ‹€μ‹œ ν‘œμ‹œν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

쑰금 νŒŒν—€μΉœ ν›„ λ‚˜λŠ” prettywrite에 λ¬΄ν•œ 루프에 λŒ€ν•œ μ•ˆμ „ μž₯μΉ˜κ°€ μžˆμ§€λ§Œ μ–΄λ–€ κ²½μš°μ—λŠ” κ°„ν—μ²œμ— μ‹€νŒ¨ν•œλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€(μ΄μœ λŠ” ν™•μ‹€ν•˜μ§€ μ•ŠμŒ)
예λ₯Ό λ“€μ–΄:

test = {}
test[1] = test
display(test)

λ¬΄ν•œ 루프λ₯Ό μΌμœΌν‚€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” https://github.com/Mudlet/Mudlet/blob/4042ac7600db8196b219b3ae43a977045d591fdd/src/mudlet-lua/lua/DebugTools.lua#L185 λ₯Ό 주석 μ²˜λ¦¬ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ λ‹€λ₯Έ 것이 μž‘λ™ν•˜λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ¬Έμ œμ™€ 그것이 μ²˜μŒμ— μžˆμ—ˆλ˜ 이유.

이것이 μ΄μœ μž…λ‹ˆλ‹€: https://github.com/lunarmodules/Penlight/pull/38

관련이 μ—†μ§€λ§Œ μΌκ΄€λœ ν‚€ μˆœμ„œμ— λŒ€ν•œ κ°œμ„  사항이 μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. https://github.com/lunarmodules/Penlight/pull/293

더 파고 λ‚œ ν›„ 쀑첩 λ ˆμ΄λΈ”μ΄ μ‚¬μš©λ˜λŠ” 경우 λ¬Έμ œκ°€ 주둜 λ°œμƒν•œλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€(μ‘°μ • κ°€λŠ₯ν•œ μ»¨ν…Œμ΄λ„ˆ 였λ₯Έμͺ½ 클릭 λ©”λ‰΄λŠ” 쀑첩 λ ˆμ΄λΈ”μ„ μ‚¬μš©ν•¨)
μ €λŠ” 개인적으둜 μ—¬μ „νžˆ https://github.com/Mudlet/Mudlet/blob/4042ac7600db8196b219b3ae43a977045d591fdd/src/mudlet-lua/lua/DebugTools.lua#L185 λ₯Ό 주석 μ²˜λ¦¬ν•˜λŠ” 것이 이 λ¬Έμ œμ— λŒ€ν•œ μ‹€ν–‰ κ°€λŠ₯ν•œ μ†”λ£¨μ…˜μ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€.

λ‚˜λŠ” Prettywrite와 λ‹€μ†Œ λ™μΌν•˜κ²Œ μž‘λ™ν•˜λŠ” https://github.com/kikito/inspect.lua λ₯Ό ν…ŒμŠ€νŠΈν–ˆμœΌλ©° λ™μΌν•œ λ°©μ‹μœΌλ‘œ 이 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€(ν…Œμ΄λΈ”[t] 뢀뢄이 주석 처리된 경우). λͺ¨λ“  쀑볡 ν…Œμ΄λΈ”μ΄ 일반 <cycle> λŒ€μ‹  idλ₯Ό μ–»λŠ”λ‹€λŠ” 차이점이 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ Geyser Wiki('mainlabel'이 μžˆλŠ” ν•­λͺ©)의 두 번째 쀑첩 κ°€λŠ₯ν•œ λ ˆμ΄λΈ” 예제λ₯Ό μ‚¬μš©ν•˜μ—¬ μœ μ‚¬ν•œ 문제λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. https://wiki.mudlet.org/index.php?title=Manual:Geyser#Demo -> 'κ·Έ 뢀뢄에 마우슀λ₯Ό κ°€μ Έκ°„ λ‹€μŒ lua display(Geyser) λ₯Ό μ‚¬μš©ν•˜λ©΄ μ—¬μ „νžˆ μŠ€νƒ μ˜€λ²„ν”Œλ‘œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€(검사λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 λ°œμƒν•˜μ§€ μ•ŠμŒ).

μ•„λ§ˆλ„ prettywriteμ—μ„œ inspect둜 μ „ν™˜ν•˜λŠ” 것은 생각해 λ³Ό λ¬Έμ œμž…λ‹ˆλ‹€.

μš°λ¦¬λŠ” ν•˜λ‚˜λ₯Ό κ³ μˆ˜ν•  νŠΉλ³„ν•œ μ΄μœ κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ ν•˜λ‚˜κ°€ 더 λ‚«λ‹€λ©΄ κ°€μž. 두 가지λ₯Ό μ–΄λ–»κ²Œ λΉ„κ΅ν•©λ‹ˆκΉŒ? μ „/ν›„λ₯Ό κ²Œμ‹œν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

μΌκ΄€λœ ν‚€ μˆœμ„œμ™€ κ΄€λ ¨ν•˜μ—¬ 쌍의 μ‚¬μš©μ„ 쌍으둜 λ³€κ²½ν•  수 있으며 λͺ¨λ“  것을 μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이것이 본질적으둜 μ—°κ²°λœ μ½”λ“œ 쑰각이 ν•˜λŠ” λͺ¨λ“  κ²ƒμž…λ‹ˆλ‹€. μš°λ¦¬λŠ” μ–΄λ””μ—μ„œλ‚˜ 쌍으둜 μ‚¬μš©ν•  수 μžˆλ„λ‘ μΆ”μƒν™”ν–ˆμŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” ν•˜λ‚˜λ₯Ό κ³ μˆ˜ν•  νŠΉλ³„ν•œ μ΄μœ κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ ν•˜λ‚˜κ°€ 더 λ‚«λ‹€λ©΄ κ°€μž. 두 가지λ₯Ό μ–΄λ–»κ²Œ λΉ„κ΅ν•©λ‹ˆκΉŒ? μ „/ν›„λ₯Ό κ²Œμ‹œν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

그것은 거의 λ˜‘κ°™μ΄ν•˜κ³  μžˆμ§€λ§Œ 적어도 κ°„ν—μ²œμ—μ„œ μΆ©λŒν•˜μ§€ μ•ŠλŠ” '더 λ‚˜μ€'지 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€ (λ‚΄ μ˜κ²¬μœΌλ‘œλŠ” 더 μ’‹μŠ΅λ‹ˆλ‹€) ;)
PR을 μ—΄κ² μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰