1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
find a way to avoid committing after the parsing/delete stage
let partial parsings commit rather than waiting for all directories to finish successfully
will cp -Rp olddir newdir break everything if olddir already has a bunch of stuff compiled in it? - try --seriously-overwrite-outputfiles flag again? I forget why I didn't finish that.
put dirtree in a list for things like tup_db_select_node_by_flags to avoid callback?
don't continue down re-parse tree unless outputs of the dir have changed.
give user an option to kill an autoupdate updater
tup 'next_dirs' - print out other directories that use files in the current dir?
name_list_entry - pointer to tup_entry?
syntax: color %flags in output
limit variable names: eg: 0-9a-zA-Z_-
when you include a generated file, print path relative to command that was executed? eg: foo/bar.c includes ../blah/baz.c, print it out as ../blah/baz.c
tup show to list the Tupfile as read in the current dir?
read in +/- in order to add/remove worker threads?
rule without a : should be an error?
reverse of tup graph: give it a file, print the dir/command to create it?
sqlite style graphs for parser
cache flags and write out the diff before a commit? eg: no need to add a command to modify (in order to pick up where we left off), then remove it a second later when the command executes.
replace 'tup monitor' with a tup.sh function and wrap it with valgrind
monitor should move deleted files to use dir=-1 instead of actually doing the full node deletion. The full deletion is done at next tup invocation. file should be renamed to avoid unique constraint violation (name=tupid?)
look at gcov, gperf
highlight += differently from = to make it obvious when a var is overridden
spaces in filenames and/or directories?
make all error messages and such pretty print on things other than 80 columns
make 'tup graph .gitignore' or 'tup graph .git/refs/foo' have a better error message
- I was trying to do 'find . -type f | xargs tup graph' to just show files
use auto-unmount for fuse?
output files to a directory other than the current one?
runscr: error message in parser about including generated Tupfiles: suggest using runscr instead
runscr: Supports multi-outputs? eg: javac with inner classes
runscr branch - need to wrap opendir/readdir to give generated files before they are created? Or else scripts won't wildcard properly?
- test: generate *.o in a sub/Tupfile, then use a python script in ./Tupfile to link sub/*.o - make sure ./Tupfile is run first (it should stop running and run sub/Tupfile once it opendirs() on sub/, then readdir() should include the generated list)
after runscr: remove *-chain, <| rules
use runscr to create a file during parsing stage - fail?
use runscr to create a directory during parsing stage - fail?
when doing 'touch foo' without '|> foo', why is it a different error message when 'foo' is already a node or not? (ie: if foo is a ghost, or something)
add Kconfig file
windows builds: Add a 'release' directory for new tags, and an 'experimental' directory for whenever a new set of commits is pushed.
gentoo ebuild
debian/ubuntu package
use setsid() in monitor daemonize (or use daemon(3))
add 'ls' command to show generated files and such in different colors?
separate link table for parser? eg: instead of 'select to_id from link where from_id=? and to_id blah type=TUP_NODE_DIR', maybe we can do 'select to_id from parser_link where from_id=?'
use 'cmdid' field instead of a link to point to outputs?
should TUP_PLATFORM be a $-variable instead of an @-variable? ie: Does it make sense to be able to override it in tup.config, or should it always be static?
use lemon to generate a parser?
- could also use grammar file to generate syntax file per http://code.google.com/p/autohighlight/
tup web: examples: change codec in mplayer / upgrade firefox
tup web: compare parallelism in make to tup
build variants
- default variant has empty tup.config to enforce a standard configuration?
- or allow to disable default variant for out-of-source only build?
- allow variants to interact? Or would this force users to have certain variants installed? eg: Rule that has debug/foo.exe and release/foo.exe as inputs is allowed or not?
- can variants have configs checked in?
- in tree build - disable via config option? Out of tree build uses tup.config for variant?
- variants: Make a mingw variant, and a linux-uses-compat-libs variant, and a debug variant (-g -O -DQUEUE_MACRO_DEBUG)
[ 1/2 ] ./do_stuff.sh b.out
-- write files
update node set mtime=? where id=? [1315168842, 7]
select to_id from link where from_id=? [8]
select to_id from link where from_id=? [8]
- why read from the link table twice?
fuse server: open(Tupfile) adds Tupfile to the read list twice - for getattr and open. Need both?
fuse as a separate process fixes readdir? Ie: it can block and get data from tup
Fix fuse_fs - don't depend on db, but preload the generated file list somehow
remove tup_vardict_init() and just initialize on first use
tup-cpp that replaces macros with @-variables
- also work for busybox and uClibc
https://github.com/gittup/tup/issues/28 (README)
remove TUP_NODE_DIR - any file or ghost (or generated?) can be a directory
- use "Tupfile" as the magic for parser, instead of directories
- can now create directories in rules?
: |> mkdir foo |> foo
: foo |> touch foo/bar |> foo/bar ?
built-in build logging (eg: dump graph before each stage) - instead of using 'mtup' alias to do this. Can be enabled via config option. also timestamp various stages.
: |> cat foo |>
touch "cat foo"
- Separate namespace for commands and files?
tup klee
html: add tup.config example
run script share site/wiki?
gimme_node_or_make_ghost - if(new_dt == 0) block never used?
write_list not needed? Just use mapping list?
- use string_trees instead of read/write/mapping list once all files are full path/canonicalized
check using mmap instead of open/read for reading in files via fslurp? Use madvise to say it's a sequential read?
use strsignal: http://www.cs.utah.edu/dept/old/texinfo/glibc-manual-0.02/library_21.html#SEC343
get_output_tree called for both tup_db_check_actual_inputs and tup_db_check_actual_outputs?
checksum - calculate as file is written out in fuse fs wrapper (can be used to skip future parts of the build if checksums match)
do var replacing in read() in fuse instead of a 'tup preprocess' step? Maybe a ^-flag?
recurse_delete_ghost_tree leaks memory?
- tup_db_change_node only used in monitor?
bin should use string_tree instead of list
html:
proof: no clean target
graphs
- re-use tup_dag_*.png and partial_dag_*.png
- link styles
when Tupfiles are parsed
supported tools / how to use things like ar and ln
files outside of tup are ignored
- hidden files can be written to for testing (result in warnings)
- hidden files cannot be read from
how files are deleted
man pages: tup command line, tup_api
error messages (eg: you get this error message if...)
document !macro.c !macro.o
wc3 validate tup webpages
should be able to checkout, tup init, tup
- or checkout the project as a subdirectory: tup init at a higher level, tup
node-variables:
* trying to store an absolute path in a node var with full_deps on
- currently works if you add the node var after the full deps have been found
|