summary refs log tree commit diff stats
path: root/compiler/msgs.nim
Commit message (Expand)AuthorAgeFilesLines
* compiler/[msgs, suggest]: improve highlighter accuracy (#10496)alaviss2019-02-071-1/+5
* fix #9556 (#10445)Miran2019-01-241-1/+1
* Fixes #10263; [backport]Ico Doornekamp2019-01-231-1/+1
* [error messages, stacktraces] fix #8794 #9270 #9767 #9768 (#9766)Timothee Cour2019-01-081-9/+15
* fix off by 1 error in `col` shown by toFileLineCol (#10138)Timothee Cour2018-12-311-1/+1
* IC: further progressAraq2018-11-221-1/+1
* Fixes #9556 (#9604) [backport]Neelesh Chandola2018-11-021-3/+6
* compiler: show name of instantiating context in error traces (#6763) (#9207)xzfc2018-10-111-11/+17
* added a test for 'nim doc'Andreas Rumpf2018-09-071-2/+2
* compiler refactoring; use typesafe path handing; docgen: render symbols betwe...Andreas Rumpf2018-09-071-27/+30
* fixes #5745Araq2018-09-031-3/+0
* even more strict isNil handling for strings/seqs in order to detect bugsAraq2018-08-221-1/+1
* WIP: disallow 'nil' for strings and seqsAndreas Rumpf2018-08-131-4/+4
* make basic debugging possibleArne Döring2018-06-261-2/+2
* cleanup compiler/prettybase to not use redudant global variablesAndreas Rumpf2018-05-271-19/+18
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-158/+81
* make tests green againAndreas Rumpf2018-05-181-0/+2
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-1/+1
* compiler/ropes.nim has no global error handler anymoreAndreas Rumpf2018-05-171-7/+0
* preparations of making compiler/msgs.nim free of global variablesAndreas Rumpf2018-05-171-31/+24
* make tests green on UnixAndreas Rumpf2018-05-151-4/+0
* options.nim: no global variables anymoreAndreas Rumpf2018-05-131-1/+1
* move more globals into the config objectAndreas Rumpf2018-05-131-33/+32
* move more global variables into ConfigRefAndreas Rumpf2018-05-111-1/+1
* avoid more global variablesAndreas Rumpf2018-05-111-6/+6
* guards.nim does compileAndreas Rumpf2018-05-111-2/+2
* big refactoring: magicsys compiles againAndreas Rumpf2018-05-101-2/+2
* big refactoring: parser compiles againAndreas Rumpf2018-05-101-586/+88
* compiler/msgs.nim: minor code cleanupAndreas Rumpf2018-05-051-105/+105
* warn about inconsistent spacing around binary operators; fixes #7582Andreas Rumpf2018-05-051-2/+4
* compiler: code cleanupAndreas Rumpf2018-05-021-3/+2
* make msgs.nim more robustAndreas Rumpf2018-04-301-0/+4
* remove unused error messagesAraq2018-04-221-10/+5
* new 'var T' error messages with hyperlinks; closes #7373Andreas Rumpf2018-04-221-0/+3
* refactoring: make FileIndex a distinct type; make line information an uint16;...Andreas Rumpf2018-04-211-52/+55
* refs #7586; show surounding source also for hints and warnsingsAndreas Rumpf2018-04-201-1/+1
* allow setting template/macro recursive evaluation limits (#7652)jcosborn2018-04-191-2/+4
* nimpretty: next stepsAraq2018-04-181-2/+16
* further steps in implementing sink parameters; refs #7041Araq2018-03-301-2/+3
* raise the max instruction count for the VM to one billionAraq2018-03-181-1/+3
* symbol files: implemented accurate module dependency trackingAraq2018-02-211-0/+9
* better error messages: use <T1, T2> instead of (T1, T2) in order to prevent c...Araq2018-02-101-1/+1
* improve the error message for thread local variablesAndreas Rumpf2018-02-051-1/+1
* fixes #7080Andreas Rumpf2018-02-041-1/+4
* Implement language feature #6885 (#6954)cooldome2017-12-241-2/+4
* improve the error messages for bug #6692Araq2017-11-051-2/+2
* some progress on the nimpretty tool; still not readyAraq2017-10-161-0/+1
* beginnings of the new nimpretty tool; still unusableAndreas Rumpf2017-10-051-0/+2
* Lineinfo change (#6084)Arne Döring2017-07-171-1/+1
* Ascii character code 127 (DEL) is not printable and must be quoted. (#5984)Markus F.X.J. Oberhumer2017-06-151-1/+1
path in files[a .. min(b, files.high)]: try: removeFile(newName(path)) echo "Optional: ", path except OSError: echo "Warning, couldn't move ", path moveFile(dest=path, source=newName(path)) return false else: for path in files[a .. min(b, files.high)]: echo "Required: ", path moveFile(dest=path, source=newName(path)) if single: whitelist[path] = "found" result = false proc main(dir: string) = # Construct a whitelist of files to not remove var whitelist = newStringTable(modeCaseInsensitive) for e in Essential: whitelist[e] = "found" while true: let oldLen = whitelist.len processIncludes(dir, whitelist) if oldLen == whitelist.len: break # Remove batches of files var nearlyDone = false while true: # Gather files to test var allFiles = newSeq[string]() gatherFiles(dir, whitelist, allFiles) # Determine the initial size of groups to check var maxBucketSize = len(allFiles) bucketSize = 1 # Loop through the list of files, deleting batches var i = 0 while i < allFiles.len: var success = trialDeletion(allFiles, i, i+bucketSize-1, whitelist) inc i, bucketSize # If we aren't on the last pass, adjust the batch size based on success if not nearlyDone: if success: bucketSize = min(bucketSize * 2, maxBucketSize) else: bucketSize = max(bucketSize div 2, 1) echo "Bucket size is now ", bucketSize # After looping through all the files, check if we need to break. if nearlyDone: break if bucketSize == 1: nearlyDone = true while true: var emptyFolders = newSeq[string]() changed = false gatherEmptyFolders(dir, whitelist, emptyFolders) for path in emptyFolders: removeDir(path) if not ccStillWorks(): createDir(path) whitelist[path] = "found" else: changed = true if not changed: break if paramCount() == 1: doAssert ccStillWorks() main(paramStr(1)) else: quit "Usage: trimcc c_compiler_directory", QuitSuccess