Logtalk 3.100.0 reelased

0 views
Skip to first unread message

Paulo Moura

unread,
May 14, 2026, 6:35:19 AMMay 14
to SICStus Users
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




Reply all
Reply to author
Forward
0 new messages