Add the programs ␀ and pack
[minish.git] / Devember / log20.txt
blob299a6418ccfe87cae51743d0aa9bf76f6bee5eb4
1 Today I have done a little refactoring and fixed a few bugs.
2 Command substitution works.
3 Each file is short, simple, and sensible.
4 I am happy with what I have done.
6 I forgot to commit the devlog yesterday.
7 I used “commit --amend” to add it to yesterday's commit,
8 which I have already pushed.
9 Then I checked out into the mob branch and try to merge that commit,
10 but I could not, because the amended commit was still in.
11 So I reset with “reset HEAD~1” and then I tried to merge,
12 but I still could not because I had not commited changes.
13 So I cheated.
14 I copied the files with uncommited changes in another directory,
15 checked out those files, and merged mob with master.
16 Then, I tried to push my changes and failed,
17 because origin still had the unamended commit.
18 So I cheated again, and used “push --force”.
19 The moral of the story is this:
20 do not try to rewrite history you have already pushed,
21 especially if you, like me, do not know what you are doing.
23 I spent a few days trying to make minish-eval work,
24 without adding any functionality to minish,
25 but I still think it was worth it.
26 It is not really for modularity:
27 if someone wants to change minish-eval,
28 they might as well implement their own shell.
29 The existence of minish-eval is itself a functionality.
30 If a program has a string and wants to evaluate it with minish,
31 it can just fork() and execv() into minish-eval,
32 passing the string to execv,
33 where before they had to also establish a pipe and writing into it.
34 That is why sh has the “-c” option.
36 Enough for today.
38 Suggested readings:
39 https://softwareengineering.stackexchange.com/questions/151541/
40 https://landley.net/notes-2014.html#23-04-2014