OSDN Git Service

Use Python as SHELL in Makefile.
authorsforman <sforman@hushmail.com>
Thu, 27 Jul 2023 17:32:45 +0000 (10:32 -0700)
committersforman <sforman@hushmail.com>
Thu, 27 Jul 2023 17:32:45 +0000 (10:32 -0700)
It's a simple task, but I'm not up on my CLI tools, so I went with
Python instead of sh.  The split command doesn't have '-p' switch on
Ubuntu.  (I'm using Ubuntu on this laptop because it can correctly
configure the WiFi and the laptop has no ethernet port.)

implementations/Python/Makefile
implementations/Python/joy.py [changed mode: 0755->0644]

index d52e7f5..baac542 100644 (file)
@@ -1,8 +1,13 @@
-# split on Ubuntu doesn't have '-p' option!  Wah!
+SHELL != which python
+.ONESHELL:
+
 joy: joy.py ../defs.txt
-       split -p \'\'\'\.splitlines\(\) joy.py joy.py.
-       cat joy.py.aa ../defs.txt joy.py.ab > joy
-       chmod u+x joy
+       from pathlib import Path
+       SPLIT_PATTERN = "'''.splitlines()\n"
+       joy_source = Path('joy.py').read_text()
+       defs_source = Path('../defs.txt').read_text()
+       head, sep, tail = joy_source.partition(SPLIT_PATTERN)
+       joy = Path('joy')
+       joy.write_text(''.join((head, defs_source, sep, tail)))
+       joy.chmod(0o775)
 
-clean:
-       $(RM) -fv joy joy.py.*
old mode 100755 (executable)
new mode 100644 (file)
index 20242bd..9cfab99
@@ -61,138 +61,7 @@ import operator
 
 
 DEFS = '''\
-eq [false] [true] [false] cmp
-gt [true] [false] [false] cmp
-lt [false] [false] [true] cmp
-neq [true] [false] [true] cmp
-le [false] [true] [true] cmp
-ge [true] [true] [false] cmp
--- 1 -
-? dup bool
-and nulco [nullary [false]] dip branch
-++ 1 +
-or nulco [nullary] dip [true] branch
-!- 0 >=
-<{} [] swap
-<<{} [] rollup
-abs dup 0 < [] [neg] branch
-anamorphism [pop []] swap [dip swons] genrec
-app1 grba infrst
-app2 [grba swap grba swap] dip [infrst] cons ii
-app3 3 appN
-appN [grabN] codi map reverse disenstacken
-at drop first
-average [sum] [size] cleave /
-b [i] dip i
-binary unary popd
-ccccons ccons ccons
-ccons cons cons
-clear [] swaack pop
-cleave fork popdd
-clop cleave popdd
-cmp [[>] swap] dipd [ifte] ccons [=] swons ifte
-codi cons dip
-codireco codi reco
-dinfrirst dip infrst
-dipd [dip] codi
-disenstacken swaack pop
-divmod [/] [%] clop
-down_to_zero [0 >] [dup --] while
-drop [rest] times
-dupd [dup] dip
-dupdd [dup] dipd
-dupdip dupd dip
-dupdipd dup dipd
-enstacken stack [clear] dip
-first uncons pop
-flatten <{} [concat] step
-fork [i] app2
-fourth rest third
-gcd true [tuck mod dup 0 >] loop pop
-genrec [[genrec] ccccons] nullary swons concat ifte
-grabN <{} [cons] times
-grba [stack popd] dip
-hypot [sqr] ii + sqrt
-ifte [nullary] dipd swap branch
-ii [dip] dupdip i
-infra swons swaack [i] dip swaack
-infrst infra first
-make_generator [codireco] ccons
-mod %
-neg 0 swap -
-not [true] [false] branch
-nulco [nullary] cons
-null [] concat bool not
-nullary [stack] dinfrirst
-of swap at
-pam [i] map
-pm [+] [-] clop
-popd [pop] dip
-popdd [pop] dipd
-popop pop pop
-popopop pop popop
-popopd [popop] dip
-popopdd [popop] dipd
-product 1 swap [*] step
-quoted [unit] dip
-range [0 <=] [-- dup] anamorphism
-range_to_zero unit [down_to_zero] infra
-reco rest cons
-rest uncons popd
-reverse <{} shunt
-roll> swap swapd
-roll< swapd swap
-rollup roll>
-rolldown roll<
-rrest rest rest
-run <{} infra
-second rest first
-shift uncons [swons] dip
-shunt [swons] step
-size [pop ++] step_zero
-small dup null [rest null] [pop true] branch
-spiral_next [[[abs] ii <=] [[<>] [pop !-] or] and] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte
-split_at [drop] [take] clop
-split_list [take reverse] [drop] clop
-sqr dup mul
-stackd [stack] dip
-step_zero 0 roll> step
-stuncons stack uncons
-sum [+] step_zero
-swapd [swap] dip
-swons swap cons
-swoncat swap concat
-tailrec [i] genrec
-take <<{} [shift] times pop
-ternary binary popd
-third rest second
-tuck dup swapd
-unary nullary popd
-uncons [first] [rest] cleave
-unit [] cons
-unquoted [i] dip
-unstack [[] swaack] dip swoncat swaack pop
-unswons uncons swap
-while swap nulco dupdipd concat loop
-x dup i
-step [_step0] x
-_step0 _step1 [popopop] [_stept] branch
-_step1 [?] dipd roll<
-_stept [uncons] dipd [dupdipd] dip x
-times [_times0] x
-_times0 _times1 [popopop] [_timest] branch
-_times1 [dup 0 >] dipd roll<
-_timest [[--] dip dupdipd] dip x
-map [_map0] cons [[] [_map?] [_mape]] dip tailrec
-_map? pop bool not
-_mape popd reverse
-_map0 [_map1] dipd _map2
-_map1 stackd shift
-_map2 [infrst] cons dipd roll< swons
-_\/_ [not not] [not] branch
-/\ [not not] ii [pop false] [] branch
-\/ [not not] ii [] [pop true] branch'''.splitlines()
-
+'''.splitlines()
 
 
 '''