Prolog adalah bahasa pemrograman logika tujuan umum yang dirilis kembali pada tahun 1972, dengan sangat sedikit update sejak.
Logtalk diciptakan untuk menambahkan fitur yang lebih modern untuk Prolog, terutama peningkatan kinerja, ekspresi lambda, aturan tata bahasa, perbaikan kesalahan compiler dan pelaporan peringatan.
Di atas ini, menambahkan proses instalasi lebih mudah dan Prolog update kompatibilitas compiler.
Hal ini membuat Logtalk lebih baik, alternatif yang lebih cocok untuk Prolog di modern AI dan linguistik komputer skenario, yang jauh lebih kuat bahasa multi-paradigma, cocok untuk acara-driven dan tingkat tinggi multi-threading pemrograman.
sintaks Saat Logtalk meluas sintaks Prolog standar dan Anda dapat menjalankan Logtalk pada kompiler Prolog ini:
B-Prolog
CxProlog
Eclipse
GNU Prolog
Bersandar Prolog
Qu-Prolog
SICStus Prolog
SWI Prolog
XSB
YAP
Apa yang baru di rilis ini:
- PENINGKATAN:
- Perubahan pada tag istilah yang digunakan saat menulis kode dikompilasi untuk membantu memperkecil ukuran file intermediate yang dihasilkan Prolog yang menggunakan tag tersebut untuk memutuskan kapan untuk menghias hal dikompilasi dengan data lokasi sumber (saat ini, hanya SWI-Prolog mengambil keuntungan dari data lokasi).
- TETAP:
- Sebuah file dapat memiliki lebih dari satu file induk.
Apa yang baru dalam versi 3.02.2:
- PENINGKATAN:
- Perubahan pada tag istilah yang digunakan saat menulis kode dikompilasi untuk membantu memperkecil ukuran file intermediate yang dihasilkan Prolog yang menggunakan tag tersebut untuk memutuskan kapan untuk menghias hal dikompilasi dengan data lokasi sumber (saat ini, hanya SWI-Prolog mengambil keuntungan dari data lokasi).
- TETAP:
- Sebuah file dapat memiliki lebih dari satu file induk.
Apa yang baru dalam versi 3.02.1:
- PENINGKATAN:
- Perubahan pada tag istilah yang digunakan saat menulis kode dikompilasi untuk membantu memperkecil ukuran file intermediate yang dihasilkan Prolog yang menggunakan tag tersebut untuk memutuskan kapan untuk menghias hal dikompilasi dengan data lokasi sumber (saat ini, hanya SWI-Prolog mengambil keuntungan dari data lokasi).
- TETAP:
- Sebuah file dapat memiliki lebih dari satu file induk.
Apa yang baru dalam versi 3.00.4:
- PENINGKATAN:
- Perubahan pada tag istilah yang digunakan saat menulis kode dikompilasi untuk membantu memperkecil ukuran file intermediate yang dihasilkan Prolog yang menggunakan tag tersebut untuk memutuskan kapan untuk menghias hal dikompilasi dengan data lokasi sumber (saat ini, hanya SWI-Prolog mengambil keuntungan dari data lokasi).
- TETAP:
- Sebuah file dapat memiliki lebih dari satu file induk.
Apa yang baru dalam versi 3.00.2:
- PENINGKATAN:
- Perubahan pada tag istilah yang digunakan saat menulis kode dikompilasi untuk membantu memperkecil ukuran file intermediate yang dihasilkan Prolog yang menggunakan tag tersebut untuk memutuskan kapan untuk menghias hal dikompilasi dengan data lokasi sumber (saat ini, hanya SWI-Prolog mengambil keuntungan dari data lokasi).
- TETAP:
- Sebuah file dapat memiliki lebih dari satu file induk.
Apa yang baru dalam versi 3.00.1:
- PENINGKATAN:
- Perubahan pada tag istilah yang digunakan saat menulis kode dikompilasi untuk membantu memperkecil ukuran file intermediate yang dihasilkan Prolog yang menggunakan tag tersebut untuk memutuskan kapan untuk menghias hal dikompilasi dengan data lokasi sumber (saat ini, hanya SWI-Prolog mengambil keuntungan dari data lokasi).
- TETAP:
- Sebuah file dapat memiliki lebih dari satu file induk.
Apa yang baru dalam versi 2.44.1:
- Dikoreksi bug dalam penyusunan meta_non_terminal yang / 1 direktif di mana hanya yang pertama meta-argumen akan diproses dengan benar.
- Updated Eclipse file konfigurasi untuk mendeteksi ketika berjalan pada Windows 64 bit sistem dan mengabaikan non-predikat dan non-operator ekspor saat pre-processing lib / 1 arahan.
- Updated rangka uji unit untuk mencetak pesan lebih informatif untuk unit test gagal.
- Ditambahkan predikat membagi / 4 (untuk membelah daftar ke sublists dengan panjang yang diberikan) ke & quot; listp & quot ;, & quot; daftar & quot ;, dan & quot; difflist & quot; entitas perpustakaan.
- Memperbarui & quot; cc & quot; Misalnya dengan definisi untuk shell / 2 predikat CxProlog.
- Berubah nama-nama benda-benda di & quot; mi & quot; Misalnya untuk menghindari konflik nama ketika menjalankan tes unit contoh.
- Dikoreksi bug di installer Windows yang mencegah deteksi YAP 64 bit versi. Terima kasih kepada Stepan Ipatov untuk laporan bug.
Apa yang baru dalam versi 2.44.0:
- mengubah rilis ini semantik melengkapi kategori, memungkinkan penggunaannya untuk menambal kode obyek yang ada, perbaikan dua bug dalam pengolahan meta-panggilan, memungkinkan daftar terbuka terminal dalam tubuh aturan DCG, menambahkan dua contoh baru, dan meningkatkan dukungan untuk editor Vim teks dan untuk ctags riang.
Apa yang baru dalam versi 2.43.3:
- Dikoreksi bug di Logtalk compiler runtime handler mana gagal untuk mendekompilasi pengidentifikasi entitas internal saat melemparkan pengecualian entitas keberadaan.
- Updated Lean Prolog file konfigurasi, menambahkan index / 1 arahan untuk beberapa predikat dinamis yang digunakan oleh tabel Logtalk runtime internal.
- Updated file integrasi SWI-Prolog untuk menguji ketersediaan indeks / 1 direktif, yang sudah ditinggalkan oleh dukungan SWI-Prolog baru eksperimental untuk just-in-time multi-argumen pengindeksan.
- Ditambahkan predikat subsequence / 4 (untuk menghasilkan subsequences dari daftar dengan panjang yang diberikan), menggantikan / 4 (untuk mengganti elemen dalam daftar), dan hamming_distance / 3 ke perpustakaan & quot; listp & quot; dan & quot; daftar & quot; entitas.
- Ditambahkan euclidean_norm / 2, chebyshev_norm / 2, manhattan_norm / 2, euclidean_distance / 3, chebyshev_distance / 3, manhattan_distance / 3, dan scalar_product / 3 predikat ke perpustakaan & quot; numberlistp & quot; dan & quot; numberlist & quot; entitas.
- Perbaikan beberapa bug konyol dalam definisi & quot; karakter & quot; perpustakaan objek predikat is_bin_digit / 1, is_octal_digit / 1, is_dec_digit / 1, dan is_hex_digit / 1.
- Updated perpustakaan & quot; all_loader.lgt & quot; File loader juga memuat & quot; meta_compiler_loader.lgt & quot; File loader.
Apa yang baru dalam versi 2.43.2:
- Dioptimalkan pengolahan deklarasi operator saat kompilasi file sumber dan dinamis menciptakan entitas baru.
- Updated compiler Logtalk untuk menggunakan & quot; modul & quot; compiler bendera ketika pengujian untuk dukungan modul Prolog, sehingga menghindari masalah kompilasi dengan back-end Prolog kompiler yang tidak mendukung sistem modul tapi masih menentukan (:). / 2 sebagai built-in control membangun atau predikat
- dukungan Dihapus untuk & quot; startup_message & quot; compiler bendera & quot; bendera (compact) & quot; dan & quot; bendera (verbose) & quot; nilai-nilai, digantikan oleh nilai tunggal, & quot; bendera & quot ;, yang sesuai dengan lama & quot; bendera (compact) & quot; nilai.
- Dikoreksi bug ketika menggunakan op / 3 arahan dengan create_protocol / 3, create_object / 4, dan create_category / 4 built-in predikat mana deklarasi operator lokal akan terlihat luar entitas baru.
- Dikoreksi bug di mana menciptakan entitas baru yang dinamis pada saat runtime akan menentukan tidak lagi digunakan pembukuan predikat dinamis yang tidak akan dihapuskan ketika entitas dihapuskan.
- Dikoreksi compiler bug di mana & quot; Super & quot; menelepon dari dalam sebuah benda yang hanya instantiates sendiri dan tidak mengkhususkan benda akan melempar pengecualian bukannya gagal.
- Memperbarui & quot; benchmark & quot; Misalnya untuk melindungi terhadap pengecualian aritmatika ketika menghitung jumlah total panggilan per detik untuk setiap tes. Mengurangi jumlah pengulangan uji benchmark saat menjalankan unit test untuk menghindari kali komputasi panjang dengan lambat back-end Prolog kompiler.
Apa yang baru dalam versi 2.43.1:
- Berubah compiler untuk memperhitungkan kegunaan / 2 direktif ketika kompilasi panggilan ke database built-in metode. Perubahan ini meluas semantik penggunaan / 2 direktif dan memungkinkan migrasi mudah dari aplikasi Prolog polos untuk Logtalk.
- Ditambahkan dukungan eksperimental untuk menggunakan template predikat sebagai argumen ke coinductive / 1 direktif. Template ini memungkinkan spesifikasi yang argumen yang bermakna untuk sukses coinductive. Berdasarkan fungsi serupa ditemukan di atas Feliks Kluzniak ini DRA meta-interpreter.
- Peningkatan dukungan untuk debugging predikat coinductive saat menggunakan Logtalk built-in debugger.
- Dihapus dukungan coinduction untuk CxProlog. Versi saat ini dari kompiler ini tidak memiliki soft-cut built-in predikat atau kontrol konstruk, yang sekarang dibutuhkan oleh pelaksanaan coinduction eksperimental.
- Mengangkat batasan lama yang mencegah definisi pengguna predikat pembungkus untuk bagof / 3 dan setof / 3 built-in metode setiap kali argumen tujuan dapat menggunakan ^ / 2 eksistensial quantifier.
- Ditambahkan dukungan untuk & quot; ^ & quot; meta-predikat meta-argumen modus specifier disarankan oleh Jan Wielemaker dan ditemukan di SWI-Prolog 5.11.25. specifier Mode ini berguna ketika mendefinisikan pembungkus untuk bagof / 3 dan setof / 3 built-in metode setiap kali argumen tujuan dapat menggunakan ^ / 2 eksistensial quantifier.
- Tambah & quot; prolog_compiler & quot; dan & quot; prolog_loader & quot; bendera compiler, yang memungkinkan opsi melewati ke back-end Prolog compiler built-in predikat yang mengkompilasi ke disk dan memuat (dikompilasi) Prolog bendera. Nilai default untuk kedua bendera adalah daftar kosong.
- Dikoreksi bug ketika kompilasi panggilan ke Prolog proprietary built-in meta-predikat mana compiler Logtalk bisa mencoba untuk memproses non meta-argumen sebagai tujuan. Bug ini hanya terwujud dengan beberapa back-end Prolog kompiler seperti gerhana.
- Dikoreksi bug dalam pengolahan arahan kompilasi bersyarat.
- Dikoreksi bug yang dicegah lewat alias / 3 arahan pada panggilan ke create_object / 4, create_category / 4, dan create_protocol / 3 built-in predikat.
- Dihapus dari built-in objek & quot; logtalk & quot; metode decompile_predicate_head / 4 dan decompile_predicate_indicator / 4 usang.
- dukungan Dihapus untuk panjang usang Logtalk metapredicate / 1 direktif.
- Dikoreksi bug kinerja ketika caching panggilan untuk kategori predikat mana entri cache bisa lebih spesifik daripada yang diperlukan ketika bekerja dengan kategori parametrik.
- Peningkatan caching & quot; Super & quot; panggilan dari dalam prototipe. Sebelumnya, semua entri cache akan khusus dengan nilai & quot; diri & quot; dalam rangka untuk benar menangani kasus-kasus khusus di mana obyek baik instantiates dan spesialisasi objek lain.
- Updated compiler Logtalk untuk mengaktifkan setiap deklarasi operator ditemukan di arahan lingkup predikat selama kompilasi entitas yang berisi arahan.
- Peningkatan kinerja predikat coinductive saat menggunakan back-end Prolog kompiler seperti SICStus Prolog yang tidak memberikan soft-cut control membangun tapi memberikan soft-cut built-in meta-predikat (jika / 3).
- Dikoreksi bug di mana laporan palsu kompilasi / pemuatan peringatan dapat dicetak ketika file sumber dikompilasi / sarat dengan bendera compiler & quot; laporan & quot; dimatikan.
- Ditambahkan & quot; streamvars & quot; perpustakaan objek, berasal dari quot ada &; assignvars & quot; kategori perpustakaan, menampilkan dukungan untuk menambah dan mengambil hal (yang mungkin variabel) dari & quot; aliran & quot; variabel.
- Memperbarui & quot; coinduction & quot; Misalnya, mengambil keuntungan dari peningkatan coinductive / 1 direktif dan memperluas jumlah contoh individu yang dapat dijalankan menggunakan SICStus Prolog. Ditambahkan model memeriksa contoh, menggunakan coinduction, coroutining, dan kendala.
- Memperbarui & quot; metapredicates & quot; Misalnya dengan kode contoh yang menggambarkan bagaimana mendefinisikan pembungkus untuk bagof / 3 dan setof / 3 built-in metode ketika meta-argumen mungkin berisi variabel yang memenuhi syarat eksistensial.
- Memperbarui & quot; cc & quot; Misalnya, mengoreksi definisi predikat selama beberapa back-end Prolog kompiler dan menambahkan beberapa tes unit dasar.
- Memperbarui & quot; pengkodean & quot; Misalnya dengan dukungan terbatas untuk Ramping Prolog.
- Ditambahkan entri yang hilang untuk meta_non_terminal / 1 direktif dan untuk panggilan // N non-terminal ke & quot; membantu & quot; misalnya.
- Ditambahkan parser untuk PDDL 3.0 file, disumbangkan oleh Robert Sasak.
- kode Ditambahkan lipat dukungan untuk editor teks SubEthaEdit. Kode menambahkan dukungan untuk blok kompilasi bersyarat kepada editor teks Kate, Vim, dan TextMate lipat.
- Updated script integrasi untuk memuat jalur perpustakaan file sebelum memuat Logtalk compiler / runtime. Perubahan ini bertujuan untuk menyederhanakan pemuatan perpustakaan dan contoh file dari file pengaturan. Selain itu, juga mencari direktori instalasi Logtalk di $ HOME / saham ketika variabel lingkungan LOGTALKHOME tidak didefinisikan.
- Updated installer Windows untuk mendukung Bersandar Prolog dan mendeteksi YAP 64 bit versi.
Apa yang baru dalam versi 2.43.0:.
- Ditambahkan dukungan eksperimental untuk Bersandar Prolog
- Dihapus pembatasan Logtalk compiler yang memaksa ation / 1 dan dinamis / 1 arahan mendahului panggilan ke predikat dinyatakan.
- Peningkatan laporan Logtalk compiler panggilan salah eja untuk non-terminal dalam aturan tata bahasa.
- Izinkan penggunaan:. / 1 kontrol membangun pada tubuh aturan tata bahasa
- Ketika debugging pesan yang ditentukan dalam penggunaan / 2 arahan, pesan sekarang dicetak secara implisit berkualitas seperti dalam kode sumber yang ditulis oleh pengguna.
- Berubah predikat internal yang digunakan dalam pelaksanaan built-in predikat multi-threading untuk memfasilitasi integrasi dengan alat debugging tingkat tinggi yang memerlukan decompilation kode Prolog yang dihasilkan.
- Dikoreksi bug dalam dukungan perpustakaan untuk tes unit, & quot;. Lgtunit & quot ;, di mana pengujian untuk pengecualian akan menerima jangka pengecualian sebagai sesuai dengan spesifikasi unit uji
- Memperbarui & quot; cc & quot; Misalnya dengan perbaikan bug dan perbaikan untuk Eclipse disumbangkan oleh Joachim Schimpf, dengan memperbaiki bug untuk pelaksanaan SWI-Prolog dari expand_path / 2 predikat (yang dihasilkan dari perubahan terbaru ke SWI-Prolog absolute_file_name / 3 built-in predikat), dan dengan definisi untuk command_line_arguments / 1 predikat B-Prolog.
- Memperbarui & quot; coinduction & quot; Misalnya, menambahkan beberapa contoh yang lebih individual.
- Memperbarui & quot; xml_parser & quot; kontribusi dalam rangka untuk solusi masalah portabilitas dengan GNU Prolog.
- Benar bug di beberapa skrip shell di mana & quot; # / bin / bash & quot; digunakan sebagai pengganti & quot; #! / bin / bash & quot ;. Berkat Yiorgos Adamopoulos untuk laporan bug.
- Diperbarui Inno Setup GUI installer Windows skrip untuk memungkinkan instalasi penuh oleh pengguna non-admin.
- Ditambahkan sintaks mewarnai dukungan untuk direktif ISO Prolog mencakup / 1 untuk semua editor teks didukung dan stabilo sintaks.
- Perbaikan beberapa bug pada tab memicu untuk potongan Gedit Logtalk yang mencegah penggunaannya.
- Berubah kembali menggunakan XEP bukan FOP saat membuat versi PDF dari Pengguna dan Referensi manual sebagai FOP memotong isi dari beberapa halaman.
Apa yang baru dalam versi 2.42.4:
- Ditambahkan entity_prefix / 2 predikat dan dua set predikat utilitas, decompile_predicate_heads / 2-4 dan decompile_predicate_indicators / 2-4, ke & quot; logtalk & quot; built-in objek. Menandai decompile_predicate_head / 4 dan decompile_predicate_indicator / 4 sebagai usang.
- Ditambahkan dukungan untuk melestarikan informasi lingkup untuk operator dideklarasikan menggunakan lingkup arahan selama waktu kompilasi. Informasi ditambahkan pada entitas menyatakan operator ke XML mendokumentasikan file. Diperbarui teks, PDF, dan (X) skrip konversi HTML untuk mencetak informasi operator.
- Terapan beberapa optimasi tingkat rendah ke Logtalk compiler / runtime.
- Pindah predikat internal yang membangun dan mengakses konteks eksekusi predikat dari compiler ke Prolog file konfigurasi untuk mendukung kinerja tuning baik yang Prolog compiler tergantung.
- Updated pelaksanaan ulir / 1 multi-threading built-in predikat untuk menggunakan optimasi kinerja kecil berdasarkan term_variables / 2 built-in predikat disarankan oleh Timon Van Overveldt. optimasi ini bertujuan untuk mengurangi copy yang tidak perlu dan penyatuan hal. Selain itu, mengganti penggunaan setup_call_cleanup / 3 built-in predikat dengan menangkap / 3 built-in predikat dengan menyederhanakan penanganan kedua master dan slave benang, yang juga meningkatkan kinerja.
- Dikoreksi bug dalam pelaksanaan ulir / 1 multi-threading built-in predikat mana kegagalan oleh pengguna untuk menentukan tujuan independen ketika mencoba menggunakan independen dan-paralelisme akan menghasilkan benang zombie.
- terkecuali hal lebih informatif ketika mencoba untuk menyatakan predikat disinkronisasi sebagai dinamis atau predikat dinamis sebagai disinkronkan.
- Diperbarui XSB file konfigurasi untuk mendukung penyusunan modul sebagai objek. Ditambahkan definisi untuk setup_call_catcher_cleanup / 4 built-in predikat hilang. XSB 3.3 (atau versi) kini diperlukan untuk kompatibilitas dengan Logtalk.
- Diperbarui SWI-Prolog file konfigurasi dalam rangka memberikan dukungan terbatas untuk arithmetic_function / 1 direktif proprietary (fungsi aritmatika yang mengkompilasi sebagai global bukan sebagai lokal ke objek atau kategori mendefinisikan mereka).
- Diperbarui YAP file konfigurasi untuk mengabaikan style_check / 1 direktif dan menafsirkan yap_flag / 2 direktif sebagai set_prolog_flag / 2 direktif.
- Berubah default XSL-FO prosesor (yang digunakan untuk menghasilkan versi PDF dari Pengguna dan Referensi manual) dari XEP ke FOP.
- Memperbarui & quot; xml_parser & quot; kontribusi dalam rangka untuk solusi masalah portabilitas dengan Qu-Prolog, SICStus Prolog, dan XSB.
- Memperbarui & quot; pengkodean & quot; Misalnya dalam rangka untuk memastikan bahwa tidak ada spasi sebelum encoding / 1 direktif.
- Memperbarui & quot; attvars & quot; Misalnya dalam rangka mendukung B-Prolog dan XSB. Juga menambahkan dukungan untuk menggunakan variabel dikaitkan dalam Logtalk objek parametrik dan kategori parametrik. Berkat Jan Wielemaker, aktifator Santos Costa, dan Bart Demoen untuk umpan balik dan implementasi saran.
- Memperbarui & quot; profiler & quot; Misalnya dengan dukungan awal untuk perubahan profil eksekusi di SICStus Prolog 4.2 versi.
- Memperbarui & quot; ekspansi & quot; Misalnya dengan contoh kode lebih lanjut tentang cara untuk menggabungkan term dan definisi tujuan ekspansi dari kait objek yang berbeda.
- Memperbarui & quot; coinduction & quot; Misalnya, menambahkan eksperimental keysort / 2 coinductive predikat. Terima kasih kepada Jan Burse untuk saran.
- Memperbarui & quot; Tak & quot; multi-threading contoh di mana potongan yang hilang akan mengakibatkan cepat melelahkan tumpukan setempat bila menggunakan SWI-Prolog karena penciptaan jumlah yang sangat besar dari titik pilihan yang tidak perlu.
- Memperbarui & quot; mtbatch & quot; multi-threading misalnya dalam rangka memberikan benchmarking diperluas dari & quot; Tak & quot; misalnya.
- Diperbarui portfile MacPorts dan script yang update itu dalam rangka untuk menghapus perhitungan checksum MD5, yang sedang dihapus oleh MacPorts.
- Diperbarui Inno Setup GUI installer Windows skrip dalam rangka untuk solusi bug di installer SWI-Prolog Windows dimana prosedur uninstall gagal untuk menghapus kunci SWI-Prolog dari registry Windows.
Apa yang baru dalam versi 2.42.3:
- Izinkan predikat dinamis dinyatakan dalam kategori disebut di & quot; ini & quot; dari dalam kategori. Pada versi sebelumnya, panggilan tersebut akan mengakibatkan kesalahan saat kompilasi, memaksa predikat ini disebut dalam & quot; diri & quot; (Menggunakan pesan :: / 1 mengirim kontrol konstruk).
- Ditambahkan Logtalk dukungan compiler untuk kepala klausul pre-compiled (menggunakan {} / 1 kontrol construct). Fitur ini sebagian besar berguna ketika menggunakan mekanisme jangka ekspansi.
- Dikoreksi bug pada kode yang menyederhanakan klausa predikat yang dihasilkan oleh kompilasi aturan tata bahasa. Kode akan loop ketika aturan tata bahasa berisi meta-variabel, yang Logtalk compiler harus (tapi saat ini tidak) Laporan ilegal (panggilan / 1 kontrol membangun harus digunakan hanya pada kasus ini).
- Sederhana kompilasi panggilan dalam konteks pseudo-objek & quot; pengguna & quot;.
- Ditambahkan perintah debugger & quot; p & quot; ke Logtalk built-in debugger. Perintah ini mencetak gol saat menggunakan cetak / 1 predikat bila tersedia. Berganti nama perintah debugger & quot; q & quot; & quot; Q & quot ;. Dikoreksi bug di mana perintah debugger & quot; w & quot; tidak akan diakui. Berubah perintah debugger & quot; d & quot; mengutip istilah bila diperlukan.
- Ditambahkan implementasi parsial dari ISO Prolog predicate_property / 2 predikat untuk Eclipse file konfigurasi.
- Diperbarui SWI-Prolog file konfigurasi untuk menghapus deklarasi yang salah tentang meta-predikat perpustakaan dde_register_service / 2, waktu / 1, dan ketika / 2 sebagai built-in meta-predikat.
- Diterapkan bug fix untuk & quot; bendera & quot; kontribusi yang disediakan oleh penulisnya, Theofrastos Mantadelis. Solusi masalah kompatibilitas dengan GNU Prolog.
- Ditambahkan memberchk / 2 predikat ke perpustakaan & quot; setp & quot; protokol dan & quot; diatur & quot; obyek. predikat menambahkan is_control / 1, is_newline / 1, dan is_end_of_line / 1 ke perpustakaan & quot; characterp & quot; dan & quot; karakter & quot; entitas.
- Ditambahkan contoh eksperimental menggunakan variabel dikaitkan dalam Logtalk objek dan kategori. Saat ini membutuhkan penggunaan YAP atau SWI-Prolog sebagai back-end Prolog compiler.
- Ditambahkan dukungan untuk indexicals ke & quot; kendala / sicstus & quot; misalnya.
- Diperpanjang & quot; delegasi & quot; Misalnya dengan contoh implementasi dari delegator menggunakan objek parametrik.
- Diperpanjang & quot; dynpred & quot; Misalnya untuk menggambarkan bagaimana mendefinisikan kategori predikat yang menangani predikat dinamis dalam konteks & quot; ini & quot; dan dalam konteks & quot; diri & quot;.
- Ditambahkan wall_time / 1 predikat ke & quot; cc & quot; misalnya.
- Updated sintaks menyoroti file tes, menambahkan hilang true / 0 dan gagal / 0 konstruksi control.
Apa yang baru dalam versi 2.42.2:
- Updated compiler Logtalk untuk memungkinkan memeriksa modul properti predikat tanpa memerlukan mengimpor predikat menjadi & quot; pengguna & quot; (Catatan, bagaimanapun, bahwa modul masih harus dimuat sebelum kompilasi file sumber menyebut predikat modul).
- Updated compiler Logtalk untuk memeriksa kompilasi-waktu argumen penutupan dipakai pada tujuan panggilan / 2-N untuk kesalahan pemrograman umum.
- Updated compiler Logtalk untuk menghasilkan peringatan untuk ekspresi lambda dengan variabel yang tidak dinyatakan sebagai baik variabel bebas atau parameter lambda atau dengan variabel yang dinyatakan sebagai kedua variabel bebas dan parameter lambda. Terima kasih kepada Jan Burse untuk menyarankan pemeriksaan kewarasan ini.
- Updated runtime Logtalk dalam rangka mendukung menggunakan & # x3c; & # x3c; / 2 kontrol membangun penutupan meta-argumen dari meta-predikat .
- Ditambahkan dukungan untuk kompilasi Gratis / Goal panggilan ekspresi lambda (dengan secara otomatis menghasilkan sebuah predikat tambahan bila memungkinkan).
- Ditambahkan compile_aux_clauses / 1 metode umum, berdasarkan predikat dengan nama yang sama di SWI-Prolog, dengan built-in objek & quot; logtalk & quot ;. Metode ini biasanya disebut dari goal_expansion / 2 kait untuk mengkompilasi klausa tambahan yang dihasilkan untuk mendukung tujuan diperluas.
- Ditambahkan meta-predikat mengabaikan / 1, dilaksanakan oleh beberapa kompiler Prolog sebagai predikat built-in, seperti built-in metode Logtalk.
- Diperbarui SWI-Prolog file konfigurasi untuk mencegah auto-loading dari perpustakaan modul saat query sifat predikat dari Logtalk.
- Updated Qu-Prolog, SICStus Prolog, dan XSB file konfigurasi untuk membuat tersedia predikat term_variables / 2 sebagai built-in predikat ISO.
- Updated script integrasi Qu-Prolog untuk melipatgandakan nilai ukuran tumpukan untuk menyusun Logtalk compiler / runtime, memecahkan kecelakaan startup.
- Pulih MacOS X perintah-file untuk GNU Prolog (pindah dari & quot; script / macosx / command_files / tidak didukung & quot; folder).
- Ditambahkan predikat findall_member / 4-5 ke perpustakaan objek & quot; meta & quot; (Berdasarkan rancangan Prolog usulan perpustakaan Richard O'Keefe). Dihapus deklarasi dan definisi dari predikat callable / 1 dan mengabaikan / 1 dari entitas perpustakaan & quot; metap & quot; dan & quot; meta & quot; (Callable / 1 adalah built-in predikat dalam semua kompiler Prolog didukung; mengabaikan / 1 sekarang menjadi Logtalk built-in metode) .
- Ditambahkan perpustakaan objek, & quot; meta_compiler & quot ;, yang dapat digunakan sebagai objek kait untuk memperluas panggilan ke meta-predikat didefinisikan dalam perpustakaan objek & quot; meta & quot; untuk menghindari overhead meta-call. Pada kasus-kasus di mana panggilan meta-predikat tidak dapat dioptimalkan, definisi default pada & quot; meta & quot; objek digunakan. Menggunakan konstruksi kontrol sebagai meta-argumen tidak (belum) didukung. Pekerjaan yang sedang berjalan.
- Ditambahkan protokol, & quot; loggingp & quot ;, dan kategori dan objek implementasi, & quot; logging & quot; dan & quot;. logger & quot ;, menyatakan dan mendefinisikan fungsi dasar untuk penebangan acara untuk file ke perpustakaan
- Ditambahkan protokol, & quot; intervalp & quot ;, dan objek, & quot; Interval & quot ;, menyatakan dan mendefinisikan hubungan selang sementara dasar untuk perpustakaan (berdasarkan pada karya James F. Allen Interval Aljabar) .
- Ditambahkan kategori menerapkan counter bernama integer, & quot;. Counters & quot ;, ke perpustakaan
- predikat Ditambahkan proper_prefix / 2 dan proper_suffix / 2 ke entitas perpustakaan & quot; listp & quot ;, & quot; daftar & quot ;, dan & quot; difflist & quot;.
- Ditambahkan predikat transpos / 2 ke perpustakaan objek & quot; pasang & quot;.
- Ditambahkan dua pseudo-contoh untuk tujuan pengujian, & quot; lambdas_compiled & quot; dan & quot; metapredicates_compiled & quot ;, yang memanfaatkan perpustakaan objek baru
- & quot; meta_compiler & quot;.
- Memperbarui & quot; ekspansi & quot; Misalnya untuk menggambarkan bagaimana mendefinisikan dan menggabungkan objek kail.
- Ditambahkan dukungan untuk menggunakan paket SyntaxHighlighter (versi 3.0.83 atau yang lebih baru) dengan Alex Gorbatchev dengan kode sumber Logtalk.
- Ditambahkan pewarnaan sintaks yang hilang dari yang lain / 0 kondisional kompilasi direktif untuk dukungan GNU Sumber-highlight stabilo.
- Ditambahkan catatan pada teks dukungan editing Logtalk tersedia pada editor teks MacOS X Kod gratis.
- Ditambahkan dukungan pewarnaan sintaks untuk yang baru mengabaikan / 1 built-in metode untuk semua editor teks didukung dan stabilo sintaks.
Apa yang baru dalam versi 2.42.1:
- Ditambahkan dukungan untuk compiler Logtalk untuk mendeteksi dan melaporkan hilang dinamis / 1 dan ation / 1 predikat arahan.
- Ditambahkan bendera serat baru, & quot; missing_directives & quot ;, dengan nilai default & quot; peringatan & quot ;, ke semua file konfigurasi. Bendera ini memungkinkan pencetakan peringatan compiler untuk hilang dinamis / 1, ation / 1, dan multifile / 1 predikat arahan.
- Ditambahkan dukungan untuk indikator modus meta-predikat template baru: (/) untuk indikator predikat, [/] untuk daftar indikator predikat, dan [0] untuk daftar tujuan .
- Dikoreksi bug di compiler Logtalk ketika memeriksa klausul kepala meta-predikat untuk kesalahan di mana & quot; :: & quot; Indikator modus meta-argumen masih sedang ditafsirkan sebagai & quot; 0 & quot;.
- Dikoreksi bug dalam penanganan penutupan (di meta-panggilan) yang digunakan untuk membangun panggilan untuk mengontrol konstruksi atau built-in predikat yang dapat mengakibatkan memanggil beberapa meta-argumen dalam konteks yang salah. Terima kasih kepada Ulrich Neumerkel untuk contoh yang menggambarkan dalam mailing list SWI-Prolog.
- Updated compiler Logtalk untuk menghindari peringatan pencetakan tentang referensi ke & quot hilang; quot berkembang &; dan & quot; monitoring & quot; built-in protokol saat kompilasi modul sebagai obyek.
- Dikembalikan perubahan dalam versi 2.39.2 yang memungkinkan pseudo-objek & quot; pengguna & quot; untuk hampir mengandung definisi semua Prolog built-in predikat. Hal ini bisa mengakibatkan hasil yang berbeda tergantung pada back-end Prolog compiler, khususnya saat memanggil meta-predikat dalam konteks & quot; pengguna & quot;.
- Dikoreksi bug di SWI-Prolog & quot; swihooks.lgt & quot; File yang mengakibatkan pesan error palsu tentang bendera Logtalk tidak valid ketika konsultasi file Prolog ketika ada file sumber Logtalk dengan nama yang sama di direktori yang sama.
- Ditambahkan dukungan yang hilang untuk proprietary built-in meta-predikat ke B-Prolog, SICStus Prolog, SWI-Prolog, XSB, dan file YAP config.
- Diperbarui SICStus Prolog, SWI-Prolog, dan file YAP config untuk menimpa template meta-predikat untuk berkonsultasi / 1 dan load_files / 2 built-in predikat.
- Ditambahkan implementasi dari map_reduce / 5 meta-predikat ke perpustakaan objek & quot; meta & quot;.
- Ditambahkan implementasi dari command_line_arguments / 1 predikat ke & quot; cc & quot; misalnya.
- Memperbarui & quot; lambdas & quot; dan & quot; metapredicates & quot; contoh, menggambarkan bagaimana menghitung angka Fibonacci menggunakan flip kiri meta-predikat. Memperbarui & quot; metapredicates & quot; Misalnya dengan contoh penggunaan dari map_reduce / 5 meta-predikat.
- Memperbarui & quot; problog & quot; Misalnya, menambahkan dukungan persiapan untuk sintaks disjunctions dijelaskan baru.
- Ditambahkan & quot; magic & quot; elemen ke Logtalk mime-jenis file untuk freedesktop.org database bersama mime-info.
Apa yang baru dalam versi 2.42.0:.
- Ditambahkan pelaksanaan bendera objek terus-menerus
- Ditambahkan sepasang baru built-in predikat, conforms_to_protocol / 2-3, melaksanakan penutupan transitif dari pelaksanaan protokol hubungan.
- Ditambahkan direktif eksperimental, penjelasan / 1, untuk mendukung integrasi Logtalk dengan bahasa lain seperti ProbLog dan CHR.
Komentar tidak ditemukan