Universal Permissive License v1.0

项目介绍

souffle-lang/souffle 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 Universal Permissive License v1.0 许可证,目前获得 1.2k 个 Star、252 次 Fork。

仓库全名
souffle-lang/souffle
开源许可证
Universal Permissive License v1.0
Star 数
1.2k
Fork 数
252
未关闭 Issue
132

README 摘要

Welcome! This is the official repository for the Soufflé language project. The Soufflé language is similar to Datalog (but has terms known as records), and is frequently used as a domain-specific language for analysis problems. Features of Soufflé Efficient translation to parallel C++ of Datalog programs (CAV'16, CC'16) Efficient interpretation using de-specialization techniques (PLDI'21) Specialized data structure…

完整内容见 GitHub 原始 README 或本页 。

常见问题

souffle 用什么语言开发?

主要使用 C++ 编写,采用 Universal Permissive License v1.0 许可证,目前有 1.2k 个 Star。

souffle 可以免费商用吗?

仓库标注的许可证为 Universal Permissive License v1.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 souffle 的源码?

可以直接克隆仓库:git clone https://github.com/souffle-lang/souffle.git,默认分支为 master;安装与运行步骤见仓库 README。

souffle 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 132 个未关闭 Issue;Star 数为 1.2k,可作为社区活跃度的参考。

简要分析

热度分
1737
价值分
788
活跃状态
活跃

语言占比

C
C++
CMake
Java
Lex
Python
SWIG
Shell
Yacc

Release

README

Welcome!

This is the official repository for the Soufflé language project. The Soufflé language is similar to Datalog (but has terms known as records), and is frequently used as a domain-specific language for analysis problems.

License: UPL CI-Tests MSVC-CI-Tests codecov

Features of Soufflé

  • Efficient translation to parallel C++ of Datalog programs (CAV’16, CC’16)

  • Efficient interpretation using de-specialization techniques (PLDI’21)

  • Specialized data structure for relations (PACT’19, PPoPP’19, PMAM’19) with optimal index selection (VLDB’18)

  • Extended semantics of Datalog, e.g., permitting unbounded recursions with numbers and terms

  • Simple component model for Datalog specifications

  • Recursively defined record types/ADTs (aka. constructors) for tuples

  • User-defined functors

  • Strongly-typed types for safety

  • Subsumption

  • Aggregation

  • Choice Construct (APLAS’21)

  • Extended I/O system for relations (including SQLITE3 interfaces)

  • C++/SWIG interfaces

  • Provenance/Debugging (TOPLAS’20)

  • Profiling tools

How to get Soufflé

If you are using Ubuntu, Fedora or Oracle Linux, get a packaged version from the Releases section.

Or use git to obtain the source code of Soufflé.

$ git clone https://github.com/souffle-lang/souffle.git

Build instructions can be found here.

Legacy code

If you have written code for an older version of Souffle, please use the command line flag --legacy. Alternatively, please add the following line to the start of your source-code:

.pragma "legacy"

Issues and Discussions

Use either the issue list for

  • bug reporting

  • enhancements

  • documentation

  • proposals

  • releases

  • compatibility issues

  • refactoring.

or use the discussions bulletin board to engage with other community members and for asking questions you’re wondering about.

How to contribute

Issues and bug reports for Souffle are found in the issue list. This list is also where new contributors may find extensions / bug fixes to work on.

To contribute in this repo, please open a pull request from your fork of this repository. The general workflow is as follows.

  1. Find an issue in the issue list.

  2. Fork the souffle-lang/souffle repo.

  3. Push your changes to a branch in your forked repo.

  4. Submit a pull request to souffle-lang/souffle from your forked repo.

Our continuous integration framework enforces coding guidelines with the help of clang-format and clang-tidy.

For more information on building and developing Souffle, please read the developer tutorial.

Home Page

Documentation

Contributors

Issues

License

For academics

If you use our work, please cite our work. A list of publications can be found here. The main publications are:

  • Herbert Jordan, Bernhard Scholz, Pavle Subotić: Souffle: On Synthesis of Program Analyzers. CAV 2016.
  • Bernhard Scholz, Herbert Jordan, Pavle Subotić, Till Westmann: On fast large-scale program analysis in Datalog. CC 2016: 196-206

评论

暂无评论