Logtalk 3.100.0 reelased
Paulo Moura <[email protected]> Thu, 14 May 2026 11:34:47 +0100
| Newsgroups | gmane.comp.gnu.prolog.general |
|---|---|
| Message-ID | <[email protected]> |
Hi, Logtalk 3.100.0 is now available for downloading at: https://logtalk.org/ This is a major library-focused release centered on a broad expansion of = the standard library: machine learning protocols and algorithms, = combinatorics and sequence-processing libraries, = geospatial/orbital/standards/data-format support, interval reasoning, = and hashes/HMAC. It also standardizes classifier naming and export APIs = and includes smaller compiler/runtime, documentation, tooling, examples, = and IDE improvements. ## New libraries by category/area ### Machine learning foundations and algorithms * Category supporting libraries: "clustering_protocols", = "pattern_mining_protocols", "frequent_pattern_mining_protocols", = "sequential_pattern_mining_protocols", "regression_protocols", = "dimension_reduction_protocols", "anomaly_detection_protocols", and = "ranking_protocols" * Support library: "linear_algebra" for numeric vectors and matrices * Clustering: "agglomerative_clusterer", "dbscan_clusterer", = "gaussian_mixture_clusterer", "hdbscan_clusterer", = "hierarchical_clustering", "kcenters_clusterer", "kmeans_clusterer", = "kmedians_clusterer", "kmedoids_clusterer", "kmodes_clusterer", = "kprototypes_clusterer", and "optics_clusterer" * Pattern mining: "apriori_pattern_miner", "eclat_pattern_miner", = "fp_growth_pattern_miner", "prefix_span_pattern_miner", = "clo_span_pattern_miner", "gsp_pattern_miner", and "spade_pattern_miner" * Regression: "bayesian_ridge_regression", = "gradient_boosting_regression", "gaussian_process_regression", = "knn_regression", "linear_regression", "ridge_regression", = "lasso_regression", "elastic_net_regression", "regression_tree", and = "random_forest_regression" * Dimension reduction: "ica_projection", "kernel_pca_projection", = "lda_projection", "nmf_projection", "pca_projection", "pls_projection", = "probabilistic_pca_projection", "random_projection", and = "truncated_svd_projection" * Anomaly detection: "cusum_anomaly_detector", "ewma_anomaly_detector", = "knn_distance_anomaly_detector", "lof_anomaly_detector", = "z_score_anomaly_detector", "modified_z_score_anomaly_detector", and = "iqr_anomaly_detector" * Ranking: "borda_ranker", "bradley_terry_ranker", "colley_ranker", = "copeland_ranker", "elo_ranker", "glicko2_ranker", = "glicko2_periodic_ranker", "hodge_rank", "kemeny_young_ranker", = "massey_ranker", "plackett_luce_ranker", "plackett_luce_last_ranker", = "rank_centrality", "regularized_bradley_terry_ranker", "schulze_ranker", = "ranked_pairs", and "thurstone_mosteller_ranker" * Classification: "logistic_regression_classifier", = "linear_svm_classifier", "gradient_boosting_classifier", = "kernel_svm_classifier", "lda_classifier", "qda_classifier", and = "sgd_classifier" ### Combinatorics / sequences * "arrangements", "cartesian_products", "derangements", "multisets", and = "partitions" ### Geospatial * "crs_projections", "geojson", "nmea", "tle_orbits", "geohash" ### Orbital * "ccsds_frames", "ccsds_link_profiles", "ccsds_packet_services", = "ccsds_packetization", "ccsds_tc_services", "ccsds_time_codes", and = "ccsds_time_fields" ### Binary / data formats * "ieee_754", "hmac", "message_pack", "json_pointer", and "wkt_wkb" ### Standards / identifiers / finance * "iso_639", "iso_3166", "iso_4217", "iso_9362", and "iso_13616" ## Changed libraries by category/area ### Naming / API consistency / migration * "ccsds" renamed to "ccsds_packets" * "classifier_protocols" renamed to "classification_protocols" * "ada_boost", "c45", "knn", "naive_bayes", "nearest_centroid", and = "random_forest" renamed to "adaptive_boosting_classifier", = "c45_classifier", "knn_classifier", "naive_bayes_classifier", = "nearest_centroid_classifier", and "random_forest_classifier" * Classifier export predicates were standardized as = "export_to_clauses/4" and "export_to_file/4" ### Machine learning infrastructure * "classification_protocols" gained "check_classifier/1" and = "valid_classifier/1" plus protected training-dataset validation = predicates * Classifier libraries now support diagnostics and richer metadata = exports and share more code through the new "classifier_common" category * "isolation_forest_anomaly_detector" now depends on = "anomaly_detection_protocols"; the functionality is preserved but = related export and print predicates were renamed accordingly ### Collections / combinatorics / geospatial * Repetition-allowed ordered selections moved from "permutations" to = "arrangements"; the former "cartesian_product/3" predicate is replaced = by "arrangements/3-4" and "arrangement/3-4" * Derangements moved from "permutations" to "derangements" * Repetition-allowed unordered selections moved from "combinations" to = "multisets"; the former replacement predicates are replaced by = "multisets/3-4", "multiset/3-4", and "count_multisets/3" * "combinations" and "permutations" gained new counting, indexing, = sampling, distinct-value, and lexicographic stepping predicates * "geospatial" now uses "geographic(Latitude,Longitude)" terms instead = of "(Latitude,Longitude)" pairs and adds new bounding-box predicates ### Math / hashing / analytics * "hashes" gained keyed digests plus metadata for fixed-size = cryptographic hash objects that are safe to use with HMAC * "types" gained "numberlist::minkowski_distance/4" plus new "natural" = predicates including "bell/2", "catalan/2", "fibonacci/2", "lucas/2", = "multinomial/2", "falling_factorial/3", "rising_factorial/3", = "partition_number/2", "stirling_first/3", "stirling_second/3", and = "subfactorial/2" * "intervals" gained Allen interval relations, relation algebra, and = symbolic interval constraint network functionality with path-consistency = propagation, explanations, and inspection/comparison predicates * "numberlist::softmax/2-3" is now numerically stable ### Performance / portability / cleanup * Tail-recursive rewrites were applied across multiple libraries = including "amqp", "avro", "base58", "hashes", "json_ld", "json_schema", = "graphs", "mime_types", "toml", "toon", "tzif", "url", "yaml", and = several classifier libraries * "json_schema" now reuses "json_pointer", and "avro", "cbor", and = "protobuf" now reuse "ieee_754" * "linda", "tzif", "ulid", "url", and "yaml" now compile all entities in = optimal mode; dead code was removed from "linda", "meta_compiler", = "sockets", "toml", and "validations" * "numberlist::average/2", "median/2", and "softmax/2-3" were fixed to = work around SWI-Prolog returning integers for float operations ## Non-library notable changes * "logtalk_doclet" and "logtalk_tester": new "-z" option in the Bash and = PowerShell scripts to make a sound on completion * Compiler/runtime: added new "logtalk::halt/0-1" public predicates plus = the "logtalk::halt_hook/2" user-defined hook predicate * Documentation: added a Handbook libraries overview grouped by scope = and fixed sequence non-terminals in the grammar section * Examples: added the "eclipse_tests_dsl" example, sped up the = "philosophers" example tests, and fixed the "neo4j" example classpath = scripts and notes for recent Neo4j releases * IDE support: added syntax highlighting support for the Fresh editor = and fixed an incorrect "use_module/1" example in syntax highlighting = test files For details and a complete list of changes, please consult the release = notes at: https://github.com/LogtalkDotOrg/logtalk3/blob/master/RELEASE_NOTES.md Happy logtalking! Paulo ----------------------------------------------------------------- Paulo Moura Logtalk developer