Sign in Join
Wiki copytemporary

Releasing units without source code/id: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Releasing units without source code/id

OldNewLine
1+Ini dapat berguna untuk merilis unit FreePascal tanpa menerbitkan kode sumbernya:
2+
3+- Kode sumber berisi informasi hak milik.
4+- Dalam pelajaran, karena anda ingin memaksa siswa untuk menggunakan sebuah unit hanya dengan interface (kontrak), dan tidak melihat pada implementasinya.
5+
6+FreePascal membolehkan anda untuk melakukannya dengan cara berikut.
7+
8+**Penyedia** unit (dan pemilik kode sumber) harus:
9+
10+- Mengkompilasi unit secara terpisah; direkomendasikan untuk memakai opsi **-Ur** (*Hasilkan file unit rilis*; lihat *User's Manual* untuk rinciannya)
11+- Menerbitkan baik file ***.ppu** dan ***.o** yang dihasilkan. Juga lihat Seksi 3.3 pada *User's Manual* (*Compiling a unit*).
12+
13+**Pengguna** dari unit yang disediakan harus:
14+
15+- Mengkompilasi program menggunakan (*klien*), agar kompilator dapat menemukan file unit ***.ppu** dan ***.o** (misalnya melalui opsi kompilator **-Fu**).
16+
17+Selanjutnya, ada dua konteks kompilator dalam masalah itu:
18+
19+- Instalasi kompilator dari penyedia
20+- Instalasi kompilator dari pengguna (klien)
21+
22+**Catatan**
23+
24+- Penyedia dan pengguna harus menggunakan **versi kompilator yang sama**. Meskipun kompatibilitas mundur antara unit terkompilasi tidak perna rusak demi keperluan, ini terjadi secara reguler untuk mendukung fitur baru atau pembetulan bug.
25+- **Target OS** dari unit yang disediakan harus sama dengan target OS yang dipakai untuk mengompilasi program klien.
26+- Jika unit yang disediakan tergantung pada unit lain *U*, maka unit *U* dari konteks klien perlu *kompatibel* dengan unit *U* dalam konteks penyedia. Untuk keperluan tersebut, kompilator embed yang menyediakan checksum dari **seksi interface** dari unit *U* dalam file ***.ppu** pada unit yang disediakan. Kompilator klien memeriksa embedded checksum terhadap checksum unit *U* dalam konteks klien. Jika checksums berbeda, maka kompilator klien akan mencoba mengompilasi ulang unit yang disediakan, dan ini akan gagal karena sumber tidak ada. Dengan opsi kompilator **-vu** anda mendapatkan informasi lengkap atas penanganan file unit, dan anda dapat mencari baris yang menyatakan *Recompiling ..., checksum changed for ...*.
27+- Dalam keadaan tertentu, **unit System** dari konteks penyedia harus *kompatibel* dengan unit System dari konteks klien, karena setiap unit secara implisit tergantung pada unit System. Oleh karena itu, direkomendasikan untuk menggunakan *rilis stabel* dari kompilator untuk mengompilasi unit yang disediakan.
28+- Mungkin ada beberapa opsi kompilator lain (selain setelan Target OS):
29+ - **-M** (*Mode*)
30+ - **-C** (*Checking*), seperti **-Cr** (*range checking*), **-Ci** (*i/o checking*), **-Co** (*overflow checking*), **-Ct** (*stack checking*)
31+ - **-Sa** (*Include assert statements in compiled code*)
32+ - **-O** (*Optimization*)
33+ - **-gl** (*Generating lineinfo code*)
34+- Untik versions kompilator FreePascal lebih lama, nama dari file sumber unit yang disediakan semuanya harus dalam huruf kecil. Untuk versi terbaru kompilator, ini tidak lagi menjadi masalah. (*User's Manual* tidak mutakhir pada topik ini, saya kira. **Jika anda mengetahui lebih detail, misalnya dari versi mana ini berubah, maka silahkan taruh di sini.**)
35+
36+---
37+*From the Free Pascal wiki, page "Releasing units without source code/id", as it stood on 2009-04-07 after a change by Swen, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history