Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								d7ca6f44eb 
								
							 
						 
						
							
							
								
								* Update some comments.  
							
							
							
						 
						
							2010-12-13 13:19:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								542fc69062 
								
							 
						 
						
							
							
								
								* When doing a query (e.g. `nix-store -r --dry-run'), don't make a lot  
							
							... 
							
							
							
							of expensive calls to `nix-store --check-validity'. 
							
						 
						
							2010-12-13 08:39:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								4d57776813 
								
							 
						 
						
							
							
								
								* Use SQLite 3.7.4.  
							
							
							
						 
						
							2010-12-10 11:45:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								e4720b1a79 
								
							 
						 
						
							
							
								
								* Ignore the result of sqlite3_reset().  
							
							
							
						 
						
							2010-12-08 18:19:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								7d0444e244 
								
							 
						 
						
							
							
								
								* Bad things happen when a filehandle has the same name as a module.  
							
							
							
						 
						
							2010-12-07 12:33:42 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								8062d3af30 
								
							 
						 
						
							
							
								
								* `nix-store --verify --check-contents': don't hold the global GC lock  
							
							... 
							
							
							
							while checking the contents, since this operation can take a very
  long time to finish.  Also, fill in missing narSize fields in the DB
  while doing this. 
							
						 
						
							2010-12-06 15:29:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								de79d23f76 
								
							 
						 
						
							
							
								
								* Retry a transaction if SQLite returns SQLITE_BUSY.  This can happen  
							
							... 
							
							
							
							even with a very long busy timeout, because SQLITE_BUSY is also
  returned to resolve deadlocks.  This should get rid of random
  "database is locked" errors.  This is kind of hard to test though.
* Fix a horrible bug in deleteFromStore(): deletePathWrapped() should
  be called after committing the transaction, not before, because the
  commit might not succeed. 
							
						 
						
							2010-12-05 18:23:19 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								365f3028dd 
								
							 
						 
						
							
							
								
								* Use CamelCase for the Perl modules.  
							
							
							
						 
						
							2010-12-05 17:50:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								f42a505ab7 
								
							 
						 
						
							
							
								
								* Add a script `nix-generate-patches'.  
							
							... 
							
							
							
							* Fix the binary patching test. 
							
						 
						
							2010-12-05 17:36:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								77f7a6d591 
								
							 
						 
						
							
							
								
								* Quick hack around one of the pathological cases in bsdiff  
							
							... 
							
							
							
							(namely, when there is a long region of 0s).  On one 86 MiB
  case, this cut patch generation time from 44m to 2m. 
							
						 
						
							2010-11-29 17:07:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								d3bba0c2d8 
								
							 
						 
						
							
							
								
								* Move the patch generator into a module.  
							
							
							
						 
						
							2010-11-29 15:26:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								9737a7eba0 
								
							 
						 
						
							
							
								
								* Don't generate patches if the system type differs.  
							
							
							
						 
						
							2010-11-29 09:26:05 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								bd48fd97f6 
								
							 
						 
						
							
							
								
								* Impose a configurable time limit on patch generation.  This is  
							
							... 
							
							
							
							necessary because bsdiff has some pathological worst-case behaviour,
  e.g. O(n^2) on files consisting only of 0s. 
							
						 
						
							2010-11-29 09:15:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								703e5a2ce2 
								
							 
						 
						
							
							
								
								* Sync with the trunk.  
							
							
							
						 
						
							2010-11-25 14:09:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								812fae424e 
								
							 
						 
						
							
							
								
								* DrvInfo contains pointers to expressions, so DrvInfos should be  
							
							... 
							
							
							
							traced by the garbage collector.  Otherwise "nix-env -u" can crash
  randomly. 
							
						 
						
							2010-11-25 13:47:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								d92ccbf1ac 
								
							 
						 
						
							
							
								
								* Test whether sequences of patches work.  
							
							
							
						 
						
							2010-11-17 18:01:37 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								1a211d812f 
								
							 
						 
						
							
							
								
								* Oops.  
							
							
							
						 
						
							2010-11-17 17:54:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								a4f0365b2d 
								
							 
						 
						
							
							
								
								* When checking whether a patch is applicable, for efficiency, use  
							
							... 
							
							
							
							`nix-store -q --hash' to get the hash of the base path rather than
  `nix-hash'.  However, only do this for estimating the size of a
  download, not for the actual substitution, because sometimes the
  contents of store paths are modified (which they shouldn't, of
  course). 
							
						 
						
							2010-11-17 17:41:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								3d38a49840 
								
							 
						 
						
							
							
								
								* In the download size indication, take binary patches into account.  
							
							... 
							
							
							
							Hopefully this doesn't slow things down too much. 
							
						 
						
							2010-11-17 17:32:25 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								f69626ed3e 
								
							 
						 
						
							
							
								
								 
							
							
							
						 
						
							2010-11-17 15:45:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								a07c68f05e 
								
							 
						 
						
							
							
								
								* Finally, a test for the binary patch functionality.  
							
							
							
						 
						
							2010-11-17 15:30:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								bf658f016f 
								
							 
						 
						
							
							
								
								* Test that download sizes are shown correctly.  
							
							
							
						 
						
							2010-11-17 14:39:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								1e24cbaba3 
								
							 
						 
						
							
							
								
								* Fix the test.  
							
							
							
						 
						
							2010-11-17 14:35:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								bdf089f463 
								
							 
						 
						
							
							
								
								* Before a build, show the disk space that the downloaded store paths  
							
							... 
							
							
							
							will approximately require. 
							
						 
						
							2010-11-17 14:31:42 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								06699d4219 
								
							 
						 
						
							
							
								
								* Store the NAR size in the manifest.  
							
							
							
						 
						
							2010-11-17 12:57:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								5693b8a7e2 
								
							 
						 
						
							
							
								
								* nix-push: no need to compute the NAR hash, since the Nix database  
							
							... 
							
							
							
							already has it (`nix-store -q --hash'). 
							
						 
						
							2010-11-17 12:51:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								e60c962fb8 
								
							 
						 
						
							
							
								
								* Add an operation `nix-store -q --size'.  
							
							
							
						 
						
							2010-11-17 12:40:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								1db6259076 
								
							 
						 
						
							
							
								
								* Implement RemoteStore::queryPathInfo().  
							
							
							
						 
						
							2010-11-17 12:08:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								a3883cbd28 
								
							 
						 
						
							
							
								
								* Store the size of a store path in the database (to be precise, the  
							
							... 
							
							
							
							size of the NAR serialisation of the path, i.e., `nix-store --dump
  PATH').  This is useful for Hydra. 
							
						 
						
							2010-11-16 17:11:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								fb9368b5a0 
								
							 
						 
						
							
							
								
								* Sync with the trunk.  
							
							
							
						 
						
							2010-11-16 12:49:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								4aced7f8d0 
								
							 
						 
						
							
							
								
								* Merge the GC branch.  
							
							
							
						 
						
							2010-10-29 15:04:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								26def5392f 
								
							 
						 
						
							
							
								
								* Document Boehm GC support.  
							
							
							
						 
						
							2010-10-29 14:44:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								3d71c8013e 
								
							 
						 
						
							
							
								
								* Use pkgconfig to locate the Boehm GC (as suggested by Ludo), if  
							
							... 
							
							
							
							--enable-gc is given. 
							
						 
						
							2010-10-29 14:00:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								14fbf85380 
								
							 
						 
						
							
							
								
								* Set libgc's initial heap size to 384 MiB to prevent garbage  
							
							... 
							
							
							
							collection in most cases (and therefore its performance overhead). 
							
						 
						
							2010-10-29 13:11:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								0c4828ea05 
								
							 
						 
						
							
							
								
								* new(UseGC) is inexplicably slower than GC_MALLOC, so prefer the  
							
							... 
							
							
							
							latter. 
							
						 
						
							2010-10-28 12:50:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								e11e6fb1c6 
								
							 
						 
						
							
							
								
								* Handle out of memory condition.  
							
							
							
						 
						
							2010-10-28 12:29:40 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								8a788e38ac 
								
							 
						 
						
							
							
								
								* Install config.h.  
							
							
							
						 
						
							2010-10-26 10:47:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								11ccd44e95 
								
							 
						 
						
							
							
								
								* We need Bison 2.4 now.  
							
							
							
						 
						
							2010-10-24 21:48:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								43535499f3 
								
							 
						 
						
							
							
								
								* When allocating an attribute set, reserve enough space for all  
							
							... 
							
							
							
							elements.  This prevents the vector from having to resize itself. 
							
						 
						
							2010-10-24 20:09:37 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								e0b7fb8f27 
								
							 
						 
						
							
							
								
								* Keep attribute sets in sorted order to speed up attribute lookups.  
							
							... 
							
							
							
							* Simplify the representation of attributes in the AST.
* Change the behaviour of listToAttrs() in case of duplicate names. 
							
						 
						
							2010-10-24 19:52:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								2dc6d50941 
								
							 
						 
						
							
							
								
								* Don't create thunks for variable lookups (if possible).  This  
							
							... 
							
							
							
							significantly reduces the number of values allocated (e.g. from 8.7m
  to 4.9m for the Bittorrent test). 
							
						 
						
							2010-10-24 14:20:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								0b305c534f 
								
							 
						 
						
							
							
								
								* Store attribute sets as a vector instead of a map (i.e. a red-black  
							
							... 
							
							
							
							tree).  This saves a lot of memory.  The vector should be sorted so
  that names can be looked up using binary search, but this is not the
  case yet.  (Surprisingly, looking up attributes using linear search
  doesn't have a big impact on performance.)
  Memory consumption for
    $ nix-instantiate /etc/nixos/nixos/tests -A bittorrent.test --readonly-mode
  on x86_64-linux with GC enabled is now 185 MiB (compared to 946
  MiB on the trunk). 
							
						 
						
							2010-10-24 00:41:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								a247d20604 
								
							 
						 
						
							
							
								
								* Fix compiling without Boehm.  
							
							... 
							
							
							
							* Fix the stats. 
							
						 
						
							2010-10-23 22:58:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								02934b1200 
								
							 
						 
						
							
							
								
								* Regression test for listToAttr's behaviour if an attribute name  
							
							... 
							
							
							
							occurs multiple times. 
							
						 
						
							2010-10-23 22:55:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								b2ba62170c 
								
							 
						 
						
							
							
								
								* Optimise string constants by putting them in the symbol table.  
							
							
							
						 
						
							2010-10-23 21:11:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								8ac06726b9 
								
							 
						 
						
							
							
								
								* Make Value smaller by not storing redundant PrimOp info.  
							
							... 
							
							
							
							* Clear pointers in Values after overwriting them to make sure that no
  objects are kept alive unnecessarily. 
							
						 
						
							2010-10-23 20:07:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								3f66cfb96b 
								
							 
						 
						
							
							
								
								* Remove allocValues().  
							
							
							
						 
						
							2010-10-23 18:18:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								4dee289550 
								
							 
						 
						
							
							
								
								* In environments, store pointers to values rather than values.  This  
							
							... 
							
							
							
							improves GC effectiveness a bit more (because a live value doesn't
  keep other values in the environment plus the parent environments
  alive), and removes the need for copy nodes. 
							
						 
						
							2010-10-22 15:51:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								cf7e645a48 
								
							 
						 
						
							
							
								
								* Regression test for __overrides.  
							
							
							
						 
						
							2010-10-22 15:15:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Eelco Dolstra 
								
							 
						 
						
							
							
							
							
								
							
							
								41c45a9b31 
								
							 
						 
						
							
							
								
								* Store Value nodes outside of attribute sets.  I.e., Attr now stores  
							
							... 
							
							
							
							a pointer to a Value, rather than the Value directly.  This improves
  the effectiveness of garbage collection a lot: if the Value is
  stored inside the set directly, then any live pointer to the Value
  causes all other attributes in the set to be live as well. 
							
						 
						
							2010-10-22 14:47:42 +00:00