CodeTracer Memperkenalkan Nyahpepijat Perjalanan Masa dengan Sokongan Noir, Komuniti Mengharapkan Pengembangan ke Bahasa Arus Perdana

BigGo Editorial Team
CodeTracer Memperkenalkan Nyahpepijat Perjalanan Masa dengan Sokongan Noir, Komuniti Mengharapkan Pengembangan ke Bahasa Arus Perdana

Nyahpepijat perjalanan masa telah lama menjadi impian pembangun, dan kini CodeTracer menjadikannya kenyataan, bermula dengan sokongan untuk bahasa pengaturcaraan Noir. Alat yang baru dikeluarkan ini membolehkan pembangun merakam pelaksanaan program ke dalam fail jejak kendiri yang boleh diperiksa dalam persekitaran GUI, membolehkan pergerakan ke hadapan dan ke belakang melalui pelaksanaan kod.

Maklum Balas Komuniti Menyoroti Keperluan untuk Sokongan Bahasa yang Lebih Luas

Walaupun keluaran awal memberi tumpuan kepada Noir, bahasa khusus domain untuk sistem pembuktian SNARK yang digunakan dalam bukti pengetahuan sifar, komuniti pembangun dengan penuh semangat menantikan sokongan untuk bahasa arus perdana yang lebih meluas. Komen daripada pengguna menunjukkan minat khusus terhadap Python, Ruby, JavaScript/TypeScript, dan bahasa sistem seperti Rust dan C++. Pelan tindakan projek ini termasuk sokongan eksperimental Ruby yang sudah tersedia, dengan rancangan untuk integrasi Python yang sedang berjalan.

Saya memerlukan sambungan VSCode untuk ini. Tetapi malangnya, ia hanya berada dalam pelan tindakan mereka... Tipikal. Saya rasa saya perlu menggulung lengan baju dan membinanya sendiri. Bukan seperti saya tidak cukup sibuk. Sekurang-kurangnya fail jejak mereka dalam format terbuka, jadi tidak mustahil untuk disambungkan ke API nyahpepijat VS Code.

Sebagai respons terhadap sentimen ini, pasukan CodeTracer sedang aktif mencari penyumbang untuk membantu membina sambungan ini, menunjukkan komitmen terhadap penglibatan komuniti dalam evolusi projek.

Sokongan Bahasa Semasa CodeTracer

  • Sokongan Penuh: Noir (bahasa blockchain/ZK)
  • Sokongan Eksperimen: Ruby
  • Dalam Pembangunan: Python
  • Dirancang: Pelbagai bahasa skrip, bahasa sistem melalui integrasi rr

Pendekatan Pelaksanaan

  • Bahasa Skrip/Blockchain: Pendekatan seperti pangkalan data dengan instrumentasi pentafsir
  • Bahasa Sistem: Dibina berdasarkan rakaman Mozilla rr (khusus Linux)

Sokongan Platform

  • Semasa: Linux (utama)
  • Separa: macOS (untuk bahasa skrip/blockchain)
  • Dalam Pembangunan: Windows (untuk bahasa skrip/blockchain)

Pelaksanaan Teknikal Berbeza Mengikut Jenis Bahasa

CodeTracer menggunakan dua pendekatan berbeza untuk merakam pelaksanaan program. Untuk bahasa skrip dan blokchain seperti Noir dan Ruby, ia menggunakan pentafsir dengan API cangkuk tahap tinggi atau tampalan langsung untuk menghasilkan jejak. Untuk bahasa sistem, pasukan ini membina di atas rakaman penyahpepijat rr Mozilla, yang boleh merakam pelbagai proses dalam ruang pengguna.

Pendekatan dual ini mencerminkan cabaran berbeza dalam melaksanakan nyahpepijat perjalanan masa merentasi ekosistem bahasa. Backend bahasa sistem kekal tertutup sumber buat masa ini, walaupun pasukan telah menyatakan minat untuk menjadikannya sumber terbuka jika mereka boleh mencari model perniagaan yang mampan.

Antara muka terminal yang memaparkan kod dan output pelaksanaan berkaitan dengan bahasa pengaturcaraan dan penyahpepijatan, mencerminkan kerumitan teknikal pelaksanaan CodeTracer
Antara muka terminal yang memaparkan kod dan output pelaksanaan berkaitan dengan bahasa pengaturcaraan dan penyahpepijatan, mencerminkan kerumitan teknikal pelaksanaan CodeTracer

Kebimbangan Prestasi dan Kepraktisan

Perbincangan komuniti menyoroti kebimbangan tentang saiz fail jejak dan overhead prestasi, terutamanya untuk program yang berjalan lebih lama. Format jejak berasaskan JSON semasa diakui kurang optimum, dengan pasukan merancang format yang lebih cekap dalam versi akan datang. Beberapa pengomen juga membangkitkan persoalan tentang kepraktisan nyahpepijat perjalanan masa dalam persekitaran pengeluaran, di mana fail jejak boleh berkembang dengan cepat.

Pasukan CodeTracer telah menggariskan rancangan untuk platform pengesanan teragih yang serupa dengan Jaeger dan OpenTelemetry yang akan merakam pelaksanaan secara berterusan merentasi perkhidmatan mikro. Tidak seperti platform sedia ada yang hanya merakam aliran mesej, sistem mereka akan membolehkan main semula tepat kod pemprosesan untuk mengenal pasti punca akar anomali.

Batasan Merentas Platform

Pada masa ini, backend bahasa sistem bergantung pada rr, yang hanya untuk Linux, mewujudkan batasan untuk pengguna macOS dan Windows. Pasukan sedang bekerja untuk sokongan Windows bagi backend bahasa skrip dan blokchain, dengan sokongan macOS kekal sebagai cabaran. Batasan platform ini telah mencetuskan perbincangan tentang isu yang lebih luas mengenai ketersediaan alat nyahpepijat merentasi sistem operasi.

Nyahpepijat perjalanan masa bukanlah sesuatu yang baharu sepenuhnya - beberapa pengomen menunjukkan penyelesaian sedia ada seperti Flowstorm untuk Clojure, Replay.io untuk pelayar, dan Undo untuk Java. Walau bagaimanapun, pendekatan CodeTracer untuk mewujudkan antara muka bersatu merentasi pelbagai bahasa mewakili langkah maju yang bercita-cita tinggi dalam teknologi nyahpepijat.

Seiring dengan evolusi projek ini, keseimbangan antara komponen sumber terbuka dan proprietari berkemungkinan akan membentuk penerimaannya. Pasukan teras, yang termasuk penyumbang terkemuka kepada bahasa pengaturcaraan Nim, telah membina CodeTracer menggunakan kedua-dua Nim dan Rust, menyebut manfaat sokongan metapengaturcaraan Nim dan integrasi ekosistem Rust dengan bahasa blokchain.

Bagi pembangun yang letih membina semula kod dengan pernyataan jejak atau kehilangan konteks apabila melangkah melepasi titik penting dalam sesi nyahpepijat, CodeTracer menawarkan gambaran yang menjanjikan tentang masa depan di mana pepijat, setelah ditangkap, benar-benar boleh dianggap sebagai dibasmi.

Rujukan: CodeTracer: A User-Friendly Time-Traveling Debugger