#
1.5 |
|
19-Oct-2023 |
rillig |
tests/make: clean up, explain and reorganize several tests
|
#
1.4 |
|
19-Jan-2023 |
rillig |
tests/make: remove dependency on expr(1) from a test
This saves 124 calls to the shell.
|
Revision tags: netbsd-10-base
|
#
1.3 |
|
08-May-2022 |
rillig |
tests/make: add test for option '-X', clean up comments
|
#
1.2 |
|
08-Jan-2022 |
rillig |
tests/make: test line numbers in debug output for parsing files
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.1 |
|
03-Oct-2020 |
rillig |
make(1): add test demonstrating the Towers of Hanoi puzzle
It's not the primary task of make to handle procedure calls with parameters, combined with lexical scoping, therefore the code does not look as straight-forward or clean as in other programming languages. It feels more like squeezing a programming problem from the imperative world into the world of declarative dependencies.
A more idiomatic way of implementing this puzzle should be as a dependency graph since that's both the natural structure of the puzzle and the primary domain of make. Something like having a main target "hanoi-5" that depends on intermediate targets of the form "move-1.2.3.4.5-_._._._._-_._._._._", each representing a single configuration of the stacks. These targets could be generated dynamically. A benefit of this implementation would be that the puzzle could be resumed from an arbitrary configuration, just just from the initial configuration.
|
#
1.4 |
|
19-Jan-2023 |
rillig |
tests/make: remove dependency on expr(1) from a test
This saves 124 calls to the shell.
|
Revision tags: netbsd-10-base
|
#
1.3 |
|
08-May-2022 |
rillig |
tests/make: add test for option '-X', clean up comments
|
#
1.2 |
|
08-Jan-2022 |
rillig |
tests/make: test line numbers in debug output for parsing files
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.1 |
|
03-Oct-2020 |
rillig |
make(1): add test demonstrating the Towers of Hanoi puzzle
It's not the primary task of make to handle procedure calls with parameters, combined with lexical scoping, therefore the code does not look as straight-forward or clean as in other programming languages. It feels more like squeezing a programming problem from the imperative world into the world of declarative dependencies.
A more idiomatic way of implementing this puzzle should be as a dependency graph since that's both the natural structure of the puzzle and the primary domain of make. Something like having a main target "hanoi-5" that depends on intermediate targets of the form "move-1.2.3.4.5-_._._._._-_._._._._", each representing a single configuration of the stacks. These targets could be generated dynamically. A benefit of this implementation would be that the puzzle could be resumed from an arbitrary configuration, just just from the initial configuration.
|
#
1.3 |
|
08-May-2022 |
rillig |
tests/make: add test for option '-X', clean up comments
|
#
1.2 |
|
08-Jan-2022 |
rillig |
tests/make: test line numbers in debug output for parsing files
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.1 |
|
03-Oct-2020 |
rillig |
make(1): add test demonstrating the Towers of Hanoi puzzle
It's not the primary task of make to handle procedure calls with parameters, combined with lexical scoping, therefore the code does not look as straight-forward or clean as in other programming languages. It feels more like squeezing a programming problem from the imperative world into the world of declarative dependencies.
A more idiomatic way of implementing this puzzle should be as a dependency graph since that's both the natural structure of the puzzle and the primary domain of make. Something like having a main target "hanoi-5" that depends on intermediate targets of the form "move-1.2.3.4.5-_._._._._-_._._._._", each representing a single configuration of the stacks. These targets could be generated dynamically. A benefit of this implementation would be that the puzzle could be resumed from an arbitrary configuration, just just from the initial configuration.
|
#
1.2 |
|
08-Jan-2022 |
rillig |
tests/make: test line numbers in debug output for parsing files
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.1 |
|
03-Oct-2020 |
rillig |
make(1): add test demonstrating the Towers of Hanoi puzzle
It's not the primary task of make to handle procedure calls with parameters, combined with lexical scoping, therefore the code does not look as straight-forward or clean as in other programming languages. It feels more like squeezing a programming problem from the imperative world into the world of declarative dependencies.
A more idiomatic way of implementing this puzzle should be as a dependency graph since that's both the natural structure of the puzzle and the primary domain of make. Something like having a main target "hanoi-5" that depends on intermediate targets of the form "move-1.2.3.4.5-_._._._._-_._._._._", each representing a single configuration of the stacks. These targets could be generated dynamically. A benefit of this implementation would be that the puzzle could be resumed from an arbitrary configuration, just just from the initial configuration.
|