Difference between revisions of "Language related articles/id"

From Lazarus wiki
Jump to navigationJump to search
 
(One intermediate revision by one other user not shown)
Line 19: Line 19:
 
Variant 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
 
Variant 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
  
== New in 1.9.x (not yet in the docs) ==
+
== Baru dalam 1.9.x (belum ada dalam docs) ==
* {$fputype xxx) to select a certain fpu style or -Cfxxx on command line/cfg file
+
* {$fputype xxx) untuk memilih gaya fpu tertentu atau -Cfxxx pada baris perintah/file cfg
** all: soft (not yet implemented)
+
** semua: soft (belum diimplementasikan)
 
** i386: x87, sse, sse2
 
** i386: x87, sse, sse2
*** code compiled with sse uses the sse to do calculations with the single data type. This code runs only on Pentium III and above and AthlonXP and above
+
*** 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
*** code compiled with sse2 uses the sse unit to do calculations with the single and double data type. This code runs only on PentiumIV and above and Athlon64 and above
+
*** 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
 
** x86-64: sse64
 
** x86-64: sse64
** powerpc: standard
+
** powerpc: standar
 
** arm: libgcc, fpa, fpa10, fpa11, vfp
 
** arm: libgcc, fpa, fpa10, fpa11, vfp
  
* procedural property support (property outside a class with normal procedures as getters/setters.
+
* dukungan properti procedural (properti di luar kelas dengan prosedur normal pengambil/penyetel.
* A -Fa parameter that lets you USES an unit as first unit in each unit. Great for e.g. redefining base types etc.
+
* Parameter -Fa yang membolehkan anda MENGGUNAKAN sebuah unit di awal unit dalam setiap unit. Baik untuk misalnya mendefinisikan ulang tipe base dll.
* reuse keywords imports all units the reused unit imports.
+
* penggunaan ulang kata kunci mengimpor semua impor unit yang dipakai ulang.
* reintroduce omits warning about hidden methods
+
* reintroduce mengabaikan peringatan mengenai metode tersembunyi
* Some mac pascal extensions, see [[Mode MacPas]].
+
* Beberapa ekstensi mac, lihat [[Mode MacPas]].
* <tt>system.prefetch(const mem);</tt> depending on the target processor the compiler generates a prefetch hint on the given memory location. On iA32 this is the sse instruction prefetchnta which is supported by Pentium3/AthlonXP and above. If the intruction set, selected with -Cp (on iA-32, prefetch instructions are generated for -Oppentium3 and above) doesn't support this instruction, no code is generated for prefetch.
+
* <tt>system.prefetch(const mem);</tt> 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.
* Interface type selection: The commandline switch -SI and the directive $interfaces (possible values: corba and com) allow you to choose the type of interfaces which has no parent. Interfaces with parent inherit the style from their parent regardless of the currently selected interface type.
+
* 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.
** COM style interfaces work like Delphi interfaces: they inherit implicitly from IUnknown and they are reference counted.  
+
** antarmuka gaya COM bekerja seperti antarmuka Delphi: menurunkan secara implisit dari IUnknown dan referensi dijumlahkan.  
** CORBA style interfaces are neither ref. counted nor do they inherit from IUnknown.
+
** antarmuka gaya CORBA tidak satupun baik referensi dijumlahkan ataupun diturunkan dari IUnknown.
  
For new rtl related stuff have a look at [[New in the 1.9.x rtl (not yet in the docs)]].
+
Untuk hal-hal terkait rtl baru silahkan lihat di [[New in the 1.9.x rtl (not yet in the docs)]].
  
 
=== Penggunaan SSE ===
 
=== Penggunaan SSE ===
Line 78: Line 78:
  
 
[[OpenMP support]]
 
[[OpenMP support]]
 +
 +
 +
[[Category:Old or unknown pages]]

Latest revision as of 19:22, 25 July 2015

Kembali ke Artikel pengembangan kompilator

Hal-hal yang saat ini tidak didukung FPC 2.x.x

Hal-hal yang sebagian didukung FPC 1.9.x

  • Dukungan variant lebih maju atau buggy (detail bugs, dukungan variants kustom kurang, masalah vararray masih dalam pengembangan)
  • saat ini diperlukan dukungan pengujian (ada beberapa pekerjaan yang selesai akhir-akhir ini)
  • Dynarrays, termasuk fungsi Slice nampaknya bermasalah
  • Reintroduce; hanya dilewati bukan diproses (setidaknya kompilator mengatakan tidak)
    • saya sangat yakin bahwa reintroduce telah melewati peringatan dalam Plugwash
  • 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.

02:56, 1 Jan 2005 (CET)

Variant 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

Baru dalam 1.9.x (belum ada dalam docs)

  • {$fputype xxx) untuk memilih gaya fpu tertentu atau -Cfxxx pada baris perintah/file cfg
    • semua: soft (belum diimplementasikan)
    • i386: x87, sse, sse2
      • 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
      • 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
    • x86-64: sse64
    • powerpc: standar
    • arm: libgcc, fpa, fpa10, fpa11, vfp
  • dukungan properti procedural (properti di luar kelas dengan prosedur normal pengambil/penyetel.
  • Parameter -Fa yang membolehkan anda MENGGUNAKAN sebuah unit di awal unit dalam setiap unit. Baik untuk misalnya mendefinisikan ulang tipe base dll.
  • penggunaan ulang kata kunci mengimpor semua impor unit yang dipakai ulang.
  • reintroduce mengabaikan peringatan mengenai metode tersembunyi
  • Beberapa ekstensi mac, lihat Mode MacPas.
  • 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.
  • 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.
    • antarmuka gaya COM bekerja seperti antarmuka Delphi: menurunkan secara implisit dari IUnknown dan referensi dijumlahkan.
    • antarmuka gaya CORBA tidak satupun baik referensi dijumlahkan ataupun diturunkan dari IUnknown.

Untuk hal-hal terkait rtl baru silahkan lihat di New in the 1.9.x rtl (not yet in the docs).

Penggunaan SSE

Untuk 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:

 {$fputype x87}
 procedure calc_x87;
 {$i mymathcode.inc}
 {$fputype sse2}
 procedure calc_sse2;
 {$i mymathcode.inc}
 begin 
   if is_sse2_cpu then
     calc_sse2
   else
     calc_x87;
 end;

Baru dalam 2.0.x

Dukungan UTF-8

Dukungan 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.

Baru dalam 2.1.x

Unaligned Keyword

Ketika 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.

Ide untuk hal baru

Generics

Modernised Pascal

Mac Local Procedure Parameters

OpenMP support