Irmen de Jong 
							
						 
					 
					
						
						
							
						
						a5110b1f96 
					 
					
						
						
							
							improved De Morgan rewrite rules  
						
						
						
						
					 
					
						2024-03-02 23:19:39 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						f40b7b62bb 
					 
					
						
						
							
							updated unit tests and some basic changes for them  
						
						
						
						
					 
					
						2024-03-02 23:19:20 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						01bbc2234e 
					 
					
						
						
							
							fix absorption law optimization, add 2 additional optimizations  
						
						
						
						
					 
					
						2024-02-14 23:12:54 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						4dc50cb551 
					 
					
						
						
							
							fix unused subroutine removal not removing all unused subs  
						
						
						
						
					 
					
						2024-02-10 21:26:53 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						358215e4dd 
					 
					
						
						
							
							removed postIncrDecr (still allow ++/-- to be parsed into +=1/-=1)  
						
						
						
						
					 
					
						2024-02-06 18:50:08 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						a8c09d6144 
					 
					
						
						
							
							removed a problematic bitshift replacement in the const evaluator  
						
						
						
						
					 
					
						2024-01-21 23:05:51 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						bc3f2db3de 
					 
					
						
						
							
							Fix call graph to no longer mark subroutines unused, that still get their variables referenced somewhere.  
						
						... 
						
						
						
						Revert palette.default_colors_16[] back to palette.set_default16.colors. 
						
						
					 
					
						2024-01-11 22:12:01 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						f8084e7955 
					 
					
						
						
							
							fix const replacement optimization error on memory mapped variable  
						
						
						
						
					 
					
						2024-01-07 18:48:18 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						6d9fccacb1 
					 
					
						
						
							
							boolean not expression tweaks and optimizations  
						
						
						
						
					 
					
						2024-01-05 13:32:16 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						37638e7ed0 
					 
					
						
						
							
							added Absorption laws optimization  
						
						
						
						
					 
					
						2024-01-05 00:36:47 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						8a0e650511 
					 
					
						
						
							
							apply De Morgan's laws for logical not, results in smaller code  
						
						
						
						
					 
					
						2024-01-04 23:45:46 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						56ba24962c 
					 
					
						
						
							
							fixed 'not not x' optimization to just 'x'  
						
						
						
						
					 
					
						2024-01-04 15:02:21 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						8f18b5b8a7 
					 
					
						
						
							
							keep distinction between logical and bitwise boolean operators  
						
						
						
						
					 
					
						2023-12-30 01:08:42 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						d03ff1e4d0 
					 
					
						
						
							
							improved var -> const replacement, now done in constfolding already (fixes some obscure problems later on)  
						
						... 
						
						
						
						Also fixed some directive parenting errors 
						
						
					 
					
						2023-12-29 19:48:40 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						a0594cbce3 
					 
					
						
						
							
							const optimizer now knows about a bunch of library functions, such as math.*  
						
						
						
						
					 
					
						2023-12-28 20:14:13 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						44d82f9190 
					 
					
						
						
							
							add unit tests  
						
						
						
						
					 
					
						2023-12-28 13:30:07 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						09c6cb4d6b 
					 
					
						
						
							
							replace unwritten vars by consts. Improved const eval.  
						
						... 
						
						
						
						Fixed some slight bugs in library code 
						
						
					 
					
						2023-12-28 05:17:15 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						ffdc658dc8 
					 
					
						
						
							
							type error tweaks  
						
						
						
						
					 
					
						2023-12-26 18:49:01 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						6bc079c7b7 
					 
					
						
						
							
							more asm symbol prefixing: variables with p8v_, subroutines with p8s_ etc  
						
						... 
						
						
						
						labels with p8l_ . All this to avoid symbol clashes in the generated assembly code.
Everything got its own distinguishing prefix so we're done with it once and for all and have only 1 breaking change moment. 
						
						
					 
					
						2023-12-20 22:20:59 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						a8be94de6b 
					 
					
						
						
							
							better error message when attempting to cast a float to integer  
						
						
						
						
					 
					
						2023-12-15 22:28:06 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						6ebd4e821f 
					 
					
						
						
							
							improved docs about subroutine scoping, fix possible optimizer crash for inlined sub  
						
						
						
						
					 
					
						2023-12-04 23:23:52 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						88a1aa4f3d 
					 
					
						
						
							
							fix invalid optimization for integers (X/C1)*C2 , only ok for floats because of int rounding  
						
						
						
						
					 
					
						2023-12-01 23:17:49 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						62d3f01948 
					 
					
						
						
							
							fix name check in inline asm  
						
						... 
						
						
						
						this no longer removes a subroutine that is otherwise only called from inlined asm. 
						
						
					 
					
						2023-11-21 01:26:50 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						f21adaa3ef 
					 
					
						
						
							
							fix compiler error caused by removal of string symbol in txt.print() optimization  
						
						
						
						
					 
					
						2023-11-17 19:51:48 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						70a78e74f6 
					 
					
						
						
							
							get rid of binexpr splitter  
						
						
						
						
					 
					
						2023-07-20 01:36:43 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						38efe25c68 
					 
					
						
						
							
							abs() now works on multiple data types including float.  
						
						... 
						
						
						
						no need to use floats.fabs() anymore 
						
						
					 
					
						2023-05-02 01:19:53 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						dc32318cec 
					 
					
						
						
							
							fix possible string error on inlined subroutines  
						
						
						
						
					 
					
						2023-03-12 18:16:48 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						fc253237c9 
					 
					
						
						
							
							fix issues with reporting inlined subroutines as unused  
						
						
						
						
					 
					
						2023-03-07 23:47:14 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						540b3ae2f4 
					 
					
						
						
							
							tweak BinaryExpression splitting  
						
						
						
						
					 
					
						2023-02-28 21:45:38 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						cf3523f49f 
					 
					
						
						
							
							Merge branch 'codegen-on-new-ast'  
						
						
						
						
					 
					
						2023-02-14 22:48:11 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						bceaebe856 
					 
					
						
						
							
							fix crash on sort/reverse unused arrays  
						
						... 
						
						
						
						fixes  #95  
					
						2023-02-14 00:26:29 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						6aabbffc62 
					 
					
						
						
							
							some cleanups  
						
						
						
						
					 
					
						2023-02-09 02:34:18 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						f117805129 
					 
					
						
						
							
							order  
						
						
						
						
					 
					
						2023-02-05 12:36:32 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						81bd5c784e 
					 
					
						
						
							
							don't remove consecutive assigns to IO space location  
						
						
						
						
					 
					
						2022-12-24 18:01:54 +01:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						88cbb6913d 
					 
					
						
						
							
							tweak bool type handling  
						
						
						
						
					 
					
						2022-07-11 14:55:50 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						24d13dd120 
					 
					
						
						
							
							fix problematic optimizations to logical expressions  
						
						
						
						
					 
					
						2022-07-02 00:56:24 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						965340ff90 
					 
					
						
						
							
							logical and/or/xor/not all replaced by bitwise &,|,^,~ (ast, codegens)  
						
						... 
						
						
						
						this also fixed some invalid outcomes of logical expressions! 
						
						
					 
					
						2022-07-02 00:38:17 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						2eb41a8caf 
					 
					
						
						
							
							temporary workaround for code problem around 'not'  
						
						
						
						
					 
					
						2022-07-01 00:38:19 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						97cb0cbd08 
					 
					
						
						
							
							tweak "not" removal/rewriting  
						
						
						
						
					 
					
						2022-06-30 02:16:30 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						dc82a0fc16 
					 
					
						
						
							
							better not(x) replacement by x==0  
						
						
						
						
					 
					
						2022-06-28 23:50:23 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						435d6f6f3f 
					 
					
						
						
							
							vm: and/or/xor/not are all bitwise operations again  
						
						
						
						
					 
					
						2022-06-28 03:17:51 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						ef92451d1a 
					 
					
						
						
							
							fix logical expressions on arbitrary values, for now with boolean() around the operands  
						
						
						
						
					 
					
						2022-06-28 01:18:36 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						c75bd97537 
					 
					
						
						
							
							update kotest  
						
						
						
						
					 
					
						2022-06-26 18:51:03 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						bf9d120081 
					 
					
						
						
							
							logical operators now always return a boolean byte result, instead of sometimes word type as well  
						
						... 
						
						
						
						(preparing for codegen simplifications for these) 
						
						
					 
					
						2022-06-13 01:37:16 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						031f647952 
					 
					
						
						
							
							allow casting negative numbers to unsigned, result = 2's complement  
						
						
						
						
					 
					
						2022-06-05 14:21:10 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						c40cfaa388 
					 
					
						
						
							
							preparing optimizing pointer indexing  
						
						
						
						
					 
					
						2022-06-04 14:23:02 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						dad5b17ac8 
					 
					
						
						
							
							fix regression compiler crash in string comparison  
						
						
						
						
					 
					
						2022-05-08 13:47:24 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						fef52c0112 
					 
					
						
						
							
							automatically convert multi-compare expression (if X==1 or X==2..) to contaiment check if X in [1,2,..]  
						
						
						
						
					 
					
						2022-05-08 13:21:34 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						6f2fdbe447 
					 
					
						
						
							
							added %option merge, also fixed problem with unit test building in newer IntelliJ version  
						
						
						
						
					 
					
						2022-04-15 22:38:32 +02:00 
						 
				 
			
				
					
						
							
							
								Irmen de Jong 
							
						 
					 
					
						
						
							
						
						220246278a 
					 
					
						
						
							
							removed sum(), max(), min().   abs() now always returns uword type.  
						
						... 
						
						
						
						This greatly simplifies internal handling of builtin functions by always having one fixed return type. 
						
						
					 
					
						2022-04-14 00:21:16 +02:00