As they develop, different implementations will certainly be in different states of readiness with respect to the test suite, so in order for the various implementations to track their progress independently, we've established a mechanism for fudging the tests in a kind of failsoft fashion. To pass a test officially, an implementation must be able to run a test file unmodified, but an implementation may (temporarily) skip tests or mark them as "todo" via the fudging mechanism, which is implemented via the fudge preprocessor. Individual implementations are not allowed to modify the actual test code, but may insert line comments before each actual test (or block of tests) that changes how those tests are to be treated for this platform. The fudge preprocessor pays attention only to the comments that belong to the current implementation and ignores all the rest. If your implementation is named "rakudo" then your special comment lines look like: When applied to a subsequent sub definition, fudge registers the sub name as doing that many tests when called. Note, however, that any skipping is done at the point of the call, not within the subroutine, so the count may not refer to any parameter of the sub. When you run the fudge preprocessor, if it decides the test needs fudging, it returns the new fudged filename; otherwise it returns the original filename. (Generally you don't run fudge directly, but your test harness runs the fudgeall program for you; see below.) If there is already a fudged program in the directory that is newer than the unfudged version, fudge just returns the fudged version without regenerating it. If the fudged version is older, it removes it and then decides anew whether to regenerate it based on the internal fudge comments. Program fudgeall will use the fudge program to translate any fudged files to a new file where the extension is not .t but instead is .rakudo to indicate the implementation dependency. It also returns the fudged list of filenames to run, where unfudged tests are just passed through unchanged as .t . Each test comes through as either fudged or not, but never both. The test harness then runs the selected test files as it normally would (it shouldn't care whether they are named .t or .rakudo ). In cases where the current working directory makes a difference, the tests assume that the working directory is the root of the test suite, so that the relative path to itself is t/spec/S d d-$section/$filename . fudgeandrun does not assume any particular implementation but guesses by running perl6 to look at special variables like $ PERL . See fudgeandrun usage to specify a different implementation and other options. This repository contains Test::Util module with helper routines you can use when writing tests. See POD documentation included at the end of the module's source code. To include the module, in your test file, you need to add use lib line to your test file. The APPENDICES directory contains advisory tests implentations may optionally choose to follow. See the README included in that directory for more information.
Raku,原名Perl 6,系perl程式語言家族的成員之一,通用程序设计语言,支持多重编程范式,。Raku主要設計者為拉里·沃尔。作為Perl的後繼者,在2000年開始發展,由于接續在Perl 5之後,称为Perl 6,在2019年10月更名为Raku。Raku语言在语法與Perl 5不同,被视为一种新的程式語言,但提供Perl 5的兼容模式。 Raku拥有丰富的现代程序语言特征,重新定义了正規表達式和增加函數式程式語言的特征,成为可演化的语言。为保证Raku和Perl社区的持续稳定发展,Raku编译器使用Raku来重写。为保证Perl语言原有函式庫的重用,编译器提供同Perl 5语言的兼容模式。 2010年7月,的Rakudo Star,作为主要版本的发布。这一发布让人们有一个可实用的编译器,方便编写程序和反映需求(Perl6的规范尚未冻结,以期根据人们的使用体验以及编译器的实现等来增补某些特性)。
Abstract from DBpedia / Wikipedia · CC BY-SA
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).
Excerpt from the source-code README · 6,776 chars · not written by Vinony
via Wikidata · CC0
via Wikidata sitelinks · CC0