Skip to content
 
 

Latest commit

 

History

5,097 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Poly/ML logo

Poly/ML

This fork adds flame graphs. Poly/ML's time profiler returns a flat list of (count, name) pairs, and on macOS/Apple Silicon it did not work at all. This fork records whole call stacks and writes them in the folded format flamegraph.pl and speedscope read, so you can see what was calling a hot function. It is inert unless you set POLY_PROFILE_OUT.

See PROFILING.md — including how to flame-graph a complete HOL4 build, not just one theory at a time.

Poly/ML is a Standard ML implementation originally written in an experimental language called Poly. It has been fully compatible with the ML97 standard since version 4.0. For a full history, see here.

Poly/ML takes a conservative approach to the Standard ML language and avoids incompatible extensions. It has added various library extensions particularly the thread library. Poly/ML's active development and unique features make it an exceptional implementation.

Table of Contents

Features

  • Fast compiler
  • Preferred implementation for large projects such as Isabelle and HOL.
  • Foreign function interface - allows static and dynamic libraries to be loaded in Poly/ML and exposes their functions as Poly/ML functions. See here for an example of static linking.
  • Symbolic debugger
  • Windows programming interface
  • Thread library - provides a simplified version of Posix threads modified for Standard ML and allows Poly/ML programs to make use of multiple cores. The garbage collector is also parallelised.

Basis

The documentation for the Poly/ML Basis library can be found here and includes information on global values and types as well as structures, signatures and functors. More in-depth documentation can be found at the SML Family website here.

Installation

Poly/ML has native support for i386 (32- and 64-bit) and ARM (64-bit only). It will also work on other architectures using a byte-code interpreter. For more information, see the download page.

Mailing List

There is a mailing list for Poly/ML for questions and support.

About

my fork of polyml with some vibe coded extra profiling tools

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages