]> gitweb.factorcode.org Git - factor.git/blob - extra/benchmark/dispatch3/dispatch3.factor
Fixing everything for mandatory stack effects
[factor.git] / extra / benchmark / dispatch3 / dispatch3.factor
1 USING: sequences math mirrors splitting kernel namespaces
2 assocs alien.syntax columns ;
3 IN: benchmark.dispatch3
4
5 GENERIC: g ( obj -- str )
6
7 M: assoc g drop "assoc" ;
8
9 M: sequence g drop "sequence" ;
10
11 M: virtual-sequence g drop "virtual-sequence" ;
12
13 M: number g drop "number" ;
14
15 M: object g drop "object" ;
16
17 : objects ( -- seq )
18     [
19         H{ } ,
20         \ + <mirror> ,
21         V{ 2 3 } ,
22         1 ,
23         10 >bignum ,
24         { 1 2 3 } ,
25         "hello world" ,
26         SBUF" sbuf world" ,
27         V{ "a" "b" "c" } ,
28         F{ 1.0 2.0 3.0 } ,
29         "hello world" 4 tail-slice ,
30         10 f <repetition> ,
31         100 2 <sliced-groups> ,
32         "hello" <reversed> ,
33         f ,
34         { { 1 2 } { 3 4 } } 0 <column> ,
35         ?{ t f t } ,
36         B{ 1 2 3 } ,
37         [ "a" "b" "c" ] ,
38         1 [ + ] curry ,
39         123.456 ,
40         1/6 ,
41         C{ 1 2 } ,
42         ALIEN: 1234 ,
43     ] { } make ;
44
45 : dispatch-test ( -- )
46     2000000 objects [ [ g drop ] each ] curry times ;
47
48 MAIN: dispatch-test