This repository has been archived by the owner on May 13, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathTODO.txt
106 lines (85 loc) · 6.25 KB
/
TODO.txt
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
TO-DO (before next version)
NON-CRITICAL
Figure out how to do a github release!
Installation instructions into README
Fix the help text in the readme to not have 'Nothing here yet'
Get 'where' to find libpython!! (Polymorphesize this function to be awesome)
where (identifier, start=None, isexec, isfile, isdir)
CRITICAL
GENERAL
Look how Cython builds the commands on xubuntu and figure out what you are missing
What is the use of the vcruntime140.dll on windows installations? Does it need to be included?
ORDERED
Figure out how to minimally represent an instruction (what is necessary once extraneous info is processed??)
Make sure that an 'Instruction' instance has enough information in the baseline info to work with dependencies and other instructions
Finish setDefaults() of Instruction once Instruction baseline info is known
Now Instruction is done, work on InstructionManager
Integrate the generateBatches command into it
What do we go to after this is done? Do we compile commands then and there??
MAINTAIN
Keep __all__ up to date with all the useful functions
Have an __all__ for each module
Privatize all objects not in __all__
Comment and properly docstring everything
Keep the -h following all the other common -h practices
Make sure that the -h is up to date, including all the version info of all the external features (gcc/Cython)
Make sure that you constantly search for the assumptions cyther makes
Make my getIncludeAndRuntime() function is up to date with build_ext in distutils
Any name cool badges to add? Make sure you got all the recent and useful ones (http://shields.io/)
Make sure the test file is updated to include the latest features
FUTURE UPDATES
Make the 'make_config' utilities not overwrite the config file if found, or ask smartly instead...
Make utilities to check if the fields in a config file are valid before it is fully loaded and used.
Make 'path' add a pathsep at the end of the path if it is a directory. Safe?
Figure out how to include a C file AS A DATA FILE
Travis OSX tests are not working. It seems to be their issue. Keep an eye on it.
Make CytherError only apply if the error was the user's fault
Where can we find a reliable source of code in build_ext (getIncludeandRuntime())
Have cyther's help text print its version! (Its needs to know its own version)
Update Cyther's github page to be a full tutorial (make readme readable by formatting)
Theres an odd bug where "INSTALL_REQUIRES = ['cython']" will install the non-latest version of cython.
Find and follow as many conventions as possible in the bookmarks set
Make sure a new window doesnt get spawned on the subprocess calls (on some systems it does, some it doesnt)
Fix this stupid line: platform.platform().strip().lower().startswith('windows')
Incorporate the format of '----- >> watch stats << ------' into watch
Get cyther to modify distutils imported at runtime to compile everything instead of distutils
Make 'path(root='.')' work
Q) Cache the results of 'find' when compiling without a config file?
Q) Include an entry point that sits outside of 'cyther/' that is a simple argparse starter (called cyther_manual.py or something)
Q) What to do about type checking in non-user functions!
Q) Can I use the Python source code from PSF to literally figure out where the include/runtime dirs were installed?
Q) Even bother getting Cyther to work with python 2 or pypy(3)?
Q) Whats up with pypi version badge doing '?.?.?'
Q) Can ar recompile static libraries? (http://www.linux.org/threads/gnu-binutils.6544/)
Q) Any other commands to `entry_points` other than `console-script`?
Q) What do the platform names even look like? Is their structure reliable? Does it need to be?
Q) Is it necessary to make sure that os.pardir will never be a problem??
Q) What is the difference between os.name and sys.platform and platform.platform?
Q) Can error info be sent automatically in bytes?
Q) C interpreter for cyther to check if a file is C? Probably not...
BEFORE DEPLOY (for me)
Make sure that the version specified makes sense (major.minor.patch)
Make sure that the README reflects the new interface changes
Make sure that the CHANGELOG is up to date and includes the current version change
Delete the comments that are no longer needed. Any junk or temporary commented code should be extracted
Update testing script to cover any new features
BIG QUESTIONS
Is it useful at all to always back up the previous compile?
Erase Cyther's usage of distutils entirely?
What about packaging the libraries with cyther?? Is cross compiling possible / a good idea?
Find the best format for the docstrings that is the most universal (What does sphinx use?)
SORT THESE CHANGES
Have the CYTHER_CONFIG_FILE hold the paths to the compiler executables!
Then, it may be ok to not have gcc in the path, and thus a seperate and private gcc can be used
So for this ^ we need a massive function to search through the drive as far as possible and implement regex patterns
BUT HOW TO THE INDIVIDUAL CYTHER OPTIONS FIT INTO THE MAKEFILE SYSTEM?
Make something like an 'instance' object to create independantly of core, THEN pass to core
What it will do it be an object holding the attribute values of the different arg_parse flags.
Get the arguments of run(timer=True) to work properly, or be automatic, like IPython
Instead of the include option, have the system automatically detect the python {}.get_include() modules
Say the search for the directories necessary for the runtime compilation fails, and returns nothing. Then run the
crawl algorithm over the whole DRIVE to find a lib file that matches the REGEX definition
Make cyther able to use the microsoft compiler cl; to mesh well with the windows system
However, we need a powerful searching algorithm to find all the correct executables...
Make the example_file.pyx a prototype for the SuperObject system. Implementing live testing of it?
DLLTOOL regex algorithm launched in a separate thread