Rust: Rust REPL ๊ตฌํ˜„

์— ๋งŒ๋“  2011๋…„ 11์›” 02์ผ  ยท  27์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rust-lang/rust

REPL์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค.

A-runtime E-hard

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? rusti ๋Š” ์ตœ๊ทผ ๋งŽ์€ ์‚ฌ๋ž‘์„ ๋ฐ›์ง€ ๋ชปํ–ˆ๊ณ  ์•„์ฃผ ์˜ค๋ž˜๋œ ๋ฒ„์ „์˜ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด REPL์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  27 ๋Œ“๊ธ€

์‚ฌ์‹ค, REPL์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค!

https://github.com/killerswan/rustx ๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

https://github.com/bleibig/rust-repl ๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

REPL์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. CL์€ ํ˜•ํŽธ์—†์ง€๋งŒ ์ข‹์€ REPL์ด ์—†๋Š” ๋” ๋‚˜์€ ์–ธ์–ด๋ณด๋‹ค ์ฐจ๋ผ๋ฆฌ CL์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

bleibig์˜ REPL์ด ์•ˆ์ •๋  ๋•Œ๊นŒ์ง€ ๋‚ด ์•ˆ์ •์ ์ธ REPL ๊ฐ™์€ ๊ฒƒ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค: https://github.com/bstrie/rust-rustic

(๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๊ฒฐ์ฝ” ์žฅ๊ธฐ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค.)

์—„์ฒญ๋‚œ. ์žฅ๊ธฐ์ ์œผ๋กœ bleibig์˜ repl๊ณผ ๊ฐ™์€ ๊ฒƒ์„ rustc๋กœ ์ ‘์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. --interactive ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค.

--interactive ์ด(๊ฐ€) ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ์•ˆ: argc < 1 ์ผ ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์™€ ๊ฐ™์€ ๋Œ€ํ™”ํ˜•์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

bstrie์˜ ์†Œ๋ฐ•ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ, ์—ฌ๊ธฐ์— ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋‹ต๋ณ€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์ฐจ์ด์ ์€ LLVM์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ–ฅํ›„ repl์ฒ˜๋Ÿผ ๋‹ค์†Œ ํ–‰๋™ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค(์˜ˆ: ๋ช…๋ น๋ฌธ ํ‰๊ฐ€, ๋กœ์ปฌ ์ •์˜, ๊ฐ€์ ธ์˜ค๊ธฐ์— ์˜ํ•œ ๋ช…๋ น๋ฌธ). ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ํ•ดํ‚น์ž…๋‹ˆ๋‹ค. ์ž„์‹œ ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Rustc๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์žฌ๋ฏธ์žˆ๊ณ  ์ง€๊ธˆ ๋ฐ”๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

http://github.com/dbp/rustrepl

์ด๊ฒƒ์€ ํ˜„์žฌ ์กด์žฌํ•˜์ง€๋งŒ(rusti) ์ง€๊ธˆ์€ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: #4407

์ด ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋Š” "REPL ์ƒ์„ฑ"์ด ์ถฉ์กฑ๋ฉ๋‹ˆ๊นŒ?

@kud1ing ์•„๋งˆ. ํ˜„์žฌ REPL ํŒŒ์†์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ์—ด โ€‹โ€‹์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ์‡„.

Rusti๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? #9818

9898

์˜ˆ, ๋ถ€ํƒํ•ฉ๋‹ˆ๋‹ค!! ๋‚˜๋Š” ์ข…์ข… ํ•œ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ๋†€๊ณ  ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@shaleh ๋‹น์‹ ์€ ์ด๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: http://play.rust-lang.org/ ?

ํ•ดํ‚น์ด ๋๋‚˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ์˜ˆ์ œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ๊ฐ„๋‹จํ•˜๋‹ค๋Š” ๋กœ์ปฌ ๋‹ด๋‹น์ž๋ณด๋‹ค ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค(ํ•˜๋‹จ์˜ "๊ณต์œ " ๋ฒ„ํŠผ ์ฐธ์กฐ).

2014๋…„ 7์›” 10์ผ ์˜คํ›„ 3์‹œ 08๋ถ„์— Felix S Klock II๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@shaleh ๋‹น์‹ ์€ ์ด๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: http://play.rust-lang.org/ ?

ํ•ดํ‚น์ด ๋๋‚˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ์˜ˆ์ œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ๊ฐ„๋‹จํ•˜๋‹ค๋Š” ๋กœ์ปฌ ๋‹ด๋‹น์ž๋ณด๋‹ค ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค(ํ•˜๋‹จ์˜ "๊ณต์œ " ๋ฒ„ํŠผ ์ฐธ์กฐ).

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

๋„ค, ๋„คํŠธ์›Œํ‚น์ด ์žˆ๋Š” ๊ณณ์—์„œ๋งŒ ํ•ดํ‚นํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ง‘ ๋ชจ๋‘๊ฐ€ ๊ธฐ์ฐจ, ์ž๋™์ฐจ ๋“ฑ์„ ์ œ์™ธํ•˜๊ณ  ๊ดœ์ฐฎ์€ WIFI๋ฅผ ์–ป๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์˜จ๋ผ์ธ ์žฅ๋‚œ๊ฐ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ถ„๋ช…ํžˆ ์šฐ๋ฆฌ๋Š” ์‰˜์—์„œ ์‹ค์ œ ๋ฒ„์ „์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฑฐ ์žฌ๊ฐœ๋ด‰ ๊ฐ€๋Šฅํ•œ๊ฐ€์š”? ๋‚˜๋Š” ์ข…์ข… REPL์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•˜๊ณ  ์‹ถ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

์•„, #9898์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ํ† ๋ก ์€ ๊ณ„์†๋  ์ˆ˜ ์žˆ์ง€๋งŒ "์ ์ ˆํ•œ" REPL์ด ์•„๋‹ˆ๋”๋ผ๋„ ๊ณง ๋ช…๋ น์ค„์— ๋Œ€ํ•ด rusti ์™€ ๊ฐ™์€ ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ ์Šค๋ ˆ๋“œ๋Š” ๊ทธ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฉฐ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ cling ์— ๋Œ€ํ•ด ์ด๋ ‡๊ฒŒ ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰๊ฐ์ ์ธ ํ”ผ๋“œ๋ฐฑ์€ ๋งค์šฐ ๋งŒ์กฑ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. Java์กฐ์ฐจ๋„ ๋‹ค์Œ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์—์„œ repl์„ ๊ฐ€์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์‹ค์ œ ์ž‘์—…์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? (์™ธ๋ถ€์ผ์ง€๋ผ๋„?) #9818์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด Rusti๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฏ€๋กœ

Rusti๋Š” ์—ฌ๊ธฐ์— ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค https://github.com/murarth/rusti

์ฐธ๊ณ : Julia ์–ธ์–ด์—๋Š” REPL์ด ์žˆ์œผ๋ฉฐ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. https://github.com/iamed2/Rust.jl

Cxx.jl๋กœ C++์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ REPL์—์„œ ๋‘ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋ฅผ ๋Œ€ํ™”์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ(Cxx๊ฐ€ ๋” ๋งค๋„๋Ÿฝ์ง€๋งŒ) Rust ์ฝ”๋“œ๋ฅผ ํŒŒ์ผ์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [Rust๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ์ด๋ฏธ C๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š๊ณ  ๋งค์šฐ ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. GC๊ฐ€ ์•„๋‹Œ ์–ธ์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด Rust๊ฐ€ C๋ณด๋‹ค ์„ ํ˜ธ๋˜๋Š” ๋ณด์™„ ์–ธ์–ด๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.]

์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด AST.jl์ด ๋ณด์ž…๋‹ˆ๋‹ค. Julia์—์„œ Rust ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : https://github.com/iamed2/Rust.jl/blob/master/deps/deps.jl

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? rusti ๋Š” ์ตœ๊ทผ ๋งŽ์€ ์‚ฌ๋ž‘์„ ๋ฐ›์ง€ ๋ชปํ–ˆ๊ณ  ์•„์ฃผ ์˜ค๋ž˜๋œ ๋ฒ„์ „์˜ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด REPL์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

evcxr ์€ ํ˜„์žฌ ์ตœ๊ณ ์˜ REPL ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰