Sign in Join
Wiki copytemporary

Language related articles/id: what changed

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

OldNewLine
11Kembali ke [[Compiler development articles/id|Artikel pengembangan kompilator]]
22
33## Hal-hal yang saat ini tidak didukung FPC 2.x.x
44
55- Delegasi gaya "implements". Lihat ( <http://info.borland.com/techpubs/delphi/delphi5/oplg/objintrf.html> )
66- dispinterface
77- paket
88- ~~slice (dynarray) <http://www.freepascal.org/bugs/showrec.php3?ID=2856>~~
99
1010## Hal-hal yang sebagian didukung FPC 1.9.x
1111
1212- Dukungan variant lebih maju atau buggy (detail bugs, dukungan variants kustom kurang, masalah vararray masih dalam pengembangan)
1313- saat ini diperlukan dukungan pengujian (ada beberapa pekerjaan yang selesai akhir-akhir ini)
1414- ~~Dynarrays, termasuk fungsi Slice nampaknya bermasalah~~
1515- Reintroduce; hanya dilewati bukan diproses (setidaknya kompilator mengatakan tidak)
1616 - saya sangat yakin bahwa reintroduce telah melewati peringatan dalam Plugwash
1717- [[Widestrings|widestrings]]. Rutin konversi standar untuk ansistring\<\>widestring hanya mengubah karakter dalam ascii jangkauan (poin kode 0-127). Rutin dapat diganti melalui procvars tapi ia didesain dalam cara yang menjadi sia-sia untuk setiap charset lokal yang tidak memiliki pemetaan 1:1 ke unicode.
1818
191902:56, 1 Jan 2005 (CET)
2020
2121Variant besar menggunakan paket DECAL telah ditulis baru-baru ini dan bekerja baik. Maka saya pikir masalah variant banyak yang selesai, dan hanya konversi tipikal yang kurang. (yang biasanya dibetulkan dengan mudah jika anda mengirimkan bug dengan contoh sederhana yang bekerja dalam Delphi dan tidak dalam FPC). Akan tetapi beberapa dukungan RTL (pelapis kelas) banyak yang tidak diimplementasikan
2222
2323## Baru dalam 1.9.x (belum ada dalam docs)
2424
2525- {\$fputype xxx) untuk memilih gaya fpu tertentu atau -Cfxxx pada baris perintah/file cfg
2626 - semua: soft (belum diimplementasikan)
2727 - i386: x87, sse, sse2
2828 - kode terkompilasi dengan sse menggunakan sse untuk melakukan kalkulasi dengan tipe data single. Kode ini hanya berjalan pada Pentium III dan di atasnya dan AthlonXP dan di atasnya
2929 - kode terkompilasi dengan sse2 menggunakan unit sse untuk melakukan kalkulasi dengan tipe data single dan double. Kode ini hanya berjalan pada PentiumIV dan di atasnya dan Athlon64 dan di atasnya
3030 - x86-64: sse64
3131 - powerpc: standar
3232 - arm: libgcc, fpa, fpa10, fpa11, vfp
3333
3434- dukungan properti procedural (properti di luar kelas dengan prosedur normal pengambil/penyetel.
3535- Parameter -Fa yang membolehkan anda MENGGUNAKAN sebuah unit di awal unit dalam setiap unit. Baik untuk misalnya mendefinisikan ulang tipe base dll.
3636- penggunaan ulang kata kunci mengimpor semua impor unit yang dipakai ulang.
3737- reintroduce mengabaikan peringatan mengenai metode tersembunyi
3838- Beberapa ekstensi mac, lihat [[Mode MacPas]].
3939- `system.prefetch(const mem);` tergantung pada target prosesor kompilator membuat petunjuk prefetch pada lokasi memori yang diberikan. Pada iA32 ini adalah instruksi sse prefetchnta yang didukung oleh Pentium3/AthlonXP dan di atasnya. Jika set intruksi, dipilih dengan -Cp (pada iA-32, instruksi prefetch dibuat untuk -Oppentium3 dan di atasnya) tidak mendukung instruksi ini, tidak ada kode yang dibuat untuk prefetch.
4040- Pemilihan tipe antarmuka: saklar baris perintah -SI dan direktif \$interfaces (nilai yang mungkin: corba dan com) membolehkan anda untuk memilih tipe antarmuka yang tidak mempunyai leluhur. Antarmuka dengan turunan leluhur gaya dari leluhurnya mengabaikan tipe antarmuka yang dipilih saat ini.
4141 - antarmuka gaya COM bekerja seperti antarmuka Delphi: menurunkan secara implisit dari IUnknown dan referensi dijumlahkan.
4242 - antarmuka gaya CORBA tidak satupun baik referensi dijumlahkan ataupun diturunkan dari IUnknown.
4343
4444Untuk hal-hal terkait rtl baru silahkan lihat di [[New in the 1.9.x rtl (not yet in the docs)]].
4545
4646### Penggunaan SSE
4747
4848Untuk menentukan set instruksi yang didukung, gunakan is_sse_cpu dan is_sse2_cpu pada unit mmx unit. Karena kode sse biasanya lebih cepat dari kode x87-fpu, direkomendasikan untuk menggunakan saklar ini untuk perhitungan floating point berat. Jika anda ingin aplikasi berjalan pada semua arsitektur fpu, solusi yang mungkin adalah untuk menyimpan kode ke dalam file include dan sertakan file ini ke dalam program anda: sekali dikompilasi misalnya -Cfsse2 dan sekali tanpa itu. Gunakan misalnya variabel is_sse2_cpu untuk memilih kode yang sesuai:\
49-{\$fputype x87}
5049
51-` procedure calc_x87;`\
52-` {$i mymathcode.inc}`
50+``` pascal
51+ {$fputype x87}
52+ procedure calc_x87;
53+ {$i mymathcode.inc}
54+```
5355
54-` {$fputype sse2}`\
55-` procedure calc_sse2;`\
56-` {$i mymathcode.inc}`
56+``` pascal
57+ {$fputype sse2}
58+ procedure calc_sse2;
59+ {$i mymathcode.inc}
60+```
5761
58-` begin `\
59-`   if is_sse2_cpu then`\
60-`     calc_sse2`\
61-`   else`\
62-`     calc_x87;`\
63-` end;`
62+``` pascal
63+ begin
64+ if is_sse2_cpu then
65+ calc_sse2
66+ else
67+ calc_x87;
68+ end;
69+```
6470
6571## Baru dalam 2.0.x
6672
6773### Dukungan UTF-8
6874
6975Dukungan untuk string utf-8 di dalam '...' sudah ditambahkan. Enkode dapat dipilih dengan mengirimkan -Fcutf8 pada baris perintah, menggunakan direktif \$codepage utf8 atau menambahkan tanda utf-8 \$ef \$bb \$bf di awal file. String dengan chars\>=\$80 diubah ke widestrings dan ditangani secara internal sebagai widestrings. Unicode chars \> 65535 tidak bisas disajikan dengan cara ini, ini akan menyebabkan pesan kesalahan.
7076
7177## Baru dalam 2.1.x
7278
7379### Unaligned Keyword
7480
7581Ketika melakukan typecast variabel sebagai "unaligned" anda memberitahu kompilator bahwa variabel ini harus dibaca atau ditulis ke satu byte sekali waktu. Ini berguna pada sistem yang memerlukan akses data aligned. Saat ini hanya diimplementasikan pada arm cpu.
7682
7783## Ide untuk hal baru
7884
7985[[Generics]]
8086
8187[[Modernised Pascal]]
8288
8389[[Mac Local Procedure Parameters]]
8490
8591[[OpenMP support]]
8692
8793---
8894*From the Free Pascal wiki, page "Language related articles/id", as it stood on 2015-07-25 after a change by FTurtle, 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).*
8995Category: Old or unknown pages

Back to history