Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						246e4f35a6
					 | 
					
						
						
							
							Merge branch 'master' into structs
						
						
						
						
						
						
						
						# Conflicts:
#	codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
#	codeGenIntermediate/src/prog8/codegen/intermediate/ExpressionGen.kt
#	compiler/test/ast/TestConst.kt
#	docs/source/todo.rst
#	examples/test.p8 
						
						
					 | 
					
						2025-05-10 16:36:16 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						99b9370178
					 | 
					
						
						
							
							fix various bugs around word-indexing combined with address-of:  &buffer[2000]
						
						
						
						
						
						
					 | 
					
						2025-05-10 16:22:05 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						40952a788a
					 | 
					
						
						
							
							PtSub: params and returns now as children (in PtSignature node) for easier Ast walking
						
						
						
						
						
						
						
						PtPointerDeref: same but for its start identifier 
						
						
					 | 
					
						2025-05-02 00:41:42 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						59582f5210
					 | 
					
						
						
							
							added -quiet flag to suppres all compiler and assembler messages
						
						
						
						
						
						
					 | 
					
						2025-04-10 21:16:26 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						7668a3c660
					 | 
					
						
						
							
							use kotest tempdir instead of hardcoded output directory
						
						
						
						
						
						
					 | 
					
						2025-03-14 01:18:33 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						80d88b3c61
					 | 
					
						
						
							
							fix many split array issues
						
						
						
						
						
						
					 | 
					
						2024-12-15 17:08:07 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						51a05ec4b7
					 | 
					
						
						
							
							removed BuiltinFunctionCall redundant ast node type
						
						
						
						
						
						
					 | 
					
						2024-11-20 23:22:56 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						484677b4b1
					 | 
					
						
						
							
							Get rid of any() and all() builtin functions.
						
						
						
						
						
						
						
						Replaced by regular subroutines in the anyall module. 
						
						
					 | 
					
						2024-07-06 18:49:03 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						25f25a8767
					 | 
					
						
						
							
							Get rid of sort() and reverse() builtin functions.
						
						
						
						
						
						
						
						Sort() had too many gotchas and reverse() is kinda redundant you can loop in decreasing order through an array too. 
						
						
					 | 
					
						2024-07-06 17:07:58 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						54bffc91ae
					 | 
					
						
						
							
							properly generate PUSH and POP instructions for push() and pop() calls in IR.
						
						
						
						
						
						
						
						Also switch to a fork of shadowJar to avoid Gradle deprecation errors. 
						
						
					 | 
					
						2024-06-25 22:39:20 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						de3d0b40dc
					 | 
					
						
						
							
							fixed vm problem with branching instructions in global init chunk
						
						
						
						
						
						
					 | 
					
						2024-03-17 13:22:17 +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
							
						 
					 | 
					
						
						
							
						
						b0f5b6925d
					 | 
					
						
						
							
							getting rid of pointer[idx] in ast, instead always use @(ptr+idx)
						
						
						
						
						
						
					 | 
					
						2024-02-03 19:22:04 +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
							
						 
					 | 
					
						
						
							
						
						75fd263e85
					 | 
					
						
						
							
							fix expericodegen crash related to shortcircuiting
						
						
						
						
						
						
					 | 
					
						2023-12-31 01:28:17 +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
							
						 
					 | 
					
						
						
							
						
						2eb137618e
					 | 
					
						
						
							
							refactor block options
						
						
						
						
						
						
					 | 
					
						2023-12-26 22:13:08 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						7530f4407b
					 | 
					
						
						
							
							ir tag change INLINEASM->ASM
						
						
						
						
						
						
					 | 
					
						2023-12-26 16:15:19 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						b92e22e4a6
					 | 
					
						
						
							
							IR: fix for loop over range with step
						
						
						
						
						
						
					 | 
					
						2023-08-11 03:05:47 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						d2154f5f2e
					 | 
					
						
						
							
							remove empty when choices, fixes ir compilation error on those
						
						
						
						
						
						
					 | 
					
						2023-07-07 20:34:24 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						07c606bfc9
					 | 
					
						
						
							
							optimizer: don't replace for loop with repeat loop (the loop variable might be used elsewhere!)
						
						
						
						
						
						
					 | 
					
						2023-07-05 21:16:17 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						bb95484c8a
					 | 
					
						
						
							
							uniform symbol prefixing with p8_
						
						
						
						
						
						
					 | 
					
						2023-07-02 06:15:09 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						aac5a4c27f
					 | 
					
						
						
							
							optimize word repeat loop codegen
						
						
						
						
						
						
					 | 
					
						2023-07-02 04:51:22 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						d3f6415387
					 | 
					
						
						
							
							vm: fix repeat 256
						
						
						
						
						
						
					 | 
					
						2023-07-02 02:38:35 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						300e2fe9f8
					 | 
					
						
						
							
							IR: wrong attempt at optimizing register usage by reusing registers inside different code chunks
						
						
						
						
						
						
					 | 
					
						2023-05-18 21:57:21 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						bff3c4f95c
					 | 
					
						
						
							
							IR now converts IRInlineAsmChunk (of type IR) into  regular code chunks directly.
						
						
						
						
						
						
						
						.p8ir files usually won't contain <INLINEASM> nodes any longer 
						
						
					 | 
					
						2023-05-09 21:04:31 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						9b952fbc44
					 | 
					
						
						
							
							tweaking IR instruction set branch instructions
						
						
						
						
						
						
					 | 
					
						2023-04-09 22:17:19 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						c3d74f2ae9
					 | 
					
						
						
							
							fix golden ram area for x16, remove romsub restriction
						
						
						
						
						
						
						
						note: romsubs still won't work in the VM but at least they compile again 
						
						
					 | 
					
						2023-04-08 00:40:52 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						dc316fd7b4
					 | 
					
						
						
							
							IR: more optimal branch instructions for comparisons against zero
						
						
						
						
						
						
					 | 
					
						2023-03-13 23:17:53 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						6aabbffc62
					 | 
					
						
						
							
							some cleanups
						
						
						
						
						
						
					 | 
					
						2023-02-09 02:34:18 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						19a2791c65
					 | 
					
						
						
							
							vm target can't use asmsub at all, give better error for that
						
						
						
						
						
						
					 | 
					
						2023-01-26 01:38:13 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						ded9ada9bc
					 | 
					
						
						
							
							allow "not xx in array" expression in 6502 codegen
						
						
						
						
						
						
						
						fix compiler crash on certain bool to byte casts 
						
						
					 | 
					
						2022-12-23 17:07:34 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						def7e87151
					 | 
					
						
						
							
							fixed silly if-goto expression code in IR codegen where it used too many branching instructions
						
						
						
						
						
						
					 | 
					
						2022-12-12 22:47:15 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						d1d0115aed
					 | 
					
						
						
							
							removed unused option 'keepIR'
						
						
						
						
						
						
					 | 
					
						2022-12-09 18:44:44 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						b8fb391022
					 | 
					
						
						
							
							- ir codegen now allows subroutine having the same name as its block
						
						
						
						
						
						
						
						this is not possible for the 6502 codegen due to 64tass scoping limitation 
						
						
					 | 
					
						2022-11-28 21:54:33 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						e6688f4b9d
					 | 
					
						
						
							
							clearer error for VM limitation cannot load label address as value
						
						
						
						
						
						
					 | 
					
						2022-11-12 13:45:02 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						e67c05c274
					 | 
					
						
						
							
							ir: fix asmsub contents not appearing in IR file
						
						
						
						
						
						
					 | 
					
						2022-11-02 20:50:51 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						b22804efaf
					 | 
					
						
						
							
							ir: fix inlineasm linking
						
						
						
						
						
						
					 | 
					
						2022-10-31 23:59:33 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						5b6569d0f9
					 | 
					
						
						
							
							ir: fix overwriting chunk label
						
						
						
						
						
						
					 | 
					
						2022-10-30 19:03:02 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						0eda7ac498
					 | 
					
						
						
							
							vm: don't crash on empty code chunks
						
						
						
						
						
						
					 | 
					
						2022-10-30 17:05:08 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						a5ef353484
					 | 
					
						
						
							
							ir: fix memory mapped var as for loop counter
						
						
						
						
						
						
					 | 
					
						2022-10-30 14:54:47 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						67a36d8d31
					 | 
					
						
						
							
							more robust 'return' statement checks in subroutines
						
						
						
						
						
						
					 | 
					
						2022-10-30 14:41:28 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						7cc3cc3990
					 | 
					
						
						
							
							ir: fix non-code chunk linkage
						
						
						
						
						
						
					 | 
					
						2022-10-30 12:55:06 +01:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						06cf2e0bd7
					 | 
					
						
						
							
							vm: fix memory slabs (bsieve example)
						
						
						
						
						
						
					 | 
					
						2022-09-27 16:32:44 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						db1aa8fcbd
					 | 
					
						
						
							
							vm: new translation of IRProgram into vm program list
						
						
						
						
						
						
					 | 
					
						2022-09-27 01:50:00 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						0da117efd2
					 | 
					
						
						
							
							vm: get rid of .p8virt file and cruft
						
						
						
						
						
						
					 | 
					
						2022-09-26 19:28:40 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						dda19c29fe
					 | 
					
						
						
							
							vm: fix symbols to be case sensitive properly in p8virt assembler
						
						
						
						
						
						
					 | 
					
						2022-09-25 15:51:50 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						ca41669f4f
					 | 
					
						
						
							
							vm: fix scoped name in address-of inside array
						
						
						
						
						
						
					 | 
					
						2022-09-24 18:26:35 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						0e1886e6bd
					 | 
					
						
						
							
							vm: fix nested label prefixing
						
						
						
						
						
						
					 | 
					
						2022-09-24 16:00:25 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Irmen de Jong
							
						 
					 | 
					
						
						
							
						
						c26e116f0e
					 | 
					
						
						
							
							vm: fix crashes when array contains pointers/strings
						
						
						
						
						
						
					 | 
					
						2022-09-24 14:42:07 +02:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 |