- Secara umum, file PDF mudah dianggap sebagai dokumen statis, tetapi sebenarnya memiliki fitur yang mendukung Javascript
- Standar PDF memiliki pustaka standar Javascript tersendiri
- Browser modern seperti Chromium dan Firefox hanya mengimplementasikan API yang sangat terbatas karena alasan keamanan
- Hanya Adobe Acrobat yang mendukung spesifikasi penuh Javascript di dalam PDF, termasuk kemampuan yang sangat luas seperti 3D rendering, permintaan HTTP, dan pendeteksian semua monitor pengguna
- Bahkan dengan API browser yang terbatas, logika komputasi yang diinginkan tetap bisa dijalankan, tetapi bagian IO sangat terbatas
- Kode C dapat dikompilasi menjadi asm.js lalu dijalankan di dalam PDF
- Menggunakan versi lama Emscripten yang mendukung target asm.js (seperti 1.39.20)
- Emulator RISC-V TinyEMU dimodifikasi agar dapat dikompilasi ke asm.js, lalu dijalankan di PDF
- Metode output layar dan input sama seperti yang digunakan di DoomPDF (menjalankan Doom di dalam PDF)
- Layar menggunakan satu bidang teks untuk setiap baris, dan menampilkan status piksel dengan karakter ASCII
- Input meneruskan penekanan tombol ke VM melalui keyboard virtual dan kotak teks
- Masalah performa cukup besar
- Contoh: boot kernel Linux memerlukan sekitar 30–60 detik, dan lebih dari 100 kali lebih lambat dibanding eksekusi normal
- V8 pada mesin PDF Chrome menonaktifkan JIT, sehingga performa turun drastis
- Root filesystem dapat dipilih untuk 64-bit atau 32-bit
- Secara default menggunakan sistem Buildroot 32-bit (asalnya diambil dari contoh TinyEMU)
- Ada juga versi Alpine Linux 64-bit, tetapi umumnya tidak digunakan karena performanya sekitar 2 kali lebih lambat
4 komentar
Tingkat kegilaannya setara Doom, Linux wkwk
Apakah ini romantisme atau kegilaan wkwkwk
wow...
Wah......