| 
									
										
										
										
											2017-07-28 20:05:35 -04:00
										 |  |  | { lib }: | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  | let | 
					
						
							| 
									
										
										
										
											2017-07-28 20:05:35 -04:00
										 |  |  |   inherit (lib) lists; | 
					
						
							| 
									
										
										
										
											2018-01-30 22:10:34 -05:00
										 |  |  |   inherit (lib.systems) parse; | 
					
						
							|  |  |  |   inherit (lib.systems.inspect) predicates; | 
					
						
							| 
									
										
										
										
											2017-07-28 20:05:35 -04:00
										 |  |  |   inherit (lib.attrsets) matchAttrs; | 
					
						
							| 
									
										
										
										
											2017-05-21 13:39:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  |   all = [ | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # Cygwin | 
					
						
							|  |  |  |     "i686-cygwin" "x86_64-cygwin" | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # Darwin | 
					
						
							|  |  |  |     "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # FreeBSD | 
					
						
							|  |  |  |     "i686-freebsd" "x86_64-freebsd" | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # Genode | 
					
						
							|  |  |  |     "aarch64-genode" "i686-genode" "x86_64-genode" | 
					
						
							| 
									
										
										
										
											2018-10-16 21:56:58 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # illumos | 
					
						
							|  |  |  |     "x86_64-solaris" | 
					
						
							| 
									
										
										
										
											2019-07-10 14:38:55 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # JS | 
					
						
							|  |  |  |     "js-ghcjs" | 
					
						
							| 
									
										
										
										
											2019-01-29 21:01:24 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # Linux | 
					
						
							|  |  |  |     "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" | 
					
						
							|  |  |  |     "armv7l-linux" "i686-linux" "mipsel-linux" "powerpc64-linux" | 
					
						
							|  |  |  |     "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" | 
					
						
							| 
									
										
										
										
											2019-04-30 11:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # MMIXware | 
					
						
							|  |  |  |     "mmix-mmixware" | 
					
						
							| 
									
										
										
										
											2020-07-21 13:11:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # NetBSD | 
					
						
							| 
									
										
										
										
											2021-04-18 22:53:35 +00:00
										 |  |  |     "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" | 
					
						
							|  |  |  |     "i686-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" | 
					
						
							|  |  |  |     "riscv64-netbsd" "x86_64-netbsd" | 
					
						
							| 
									
										
										
										
											2019-06-04 13:34:40 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # none | 
					
						
							|  |  |  |     "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" "msp430-none" | 
					
						
							|  |  |  |     "or1k-none" "powerpc-none" "riscv32-none" "riscv64-none" "vc4-none" | 
					
						
							|  |  |  |     "x86_64-none" | 
					
						
							| 
									
										
										
										
											2019-06-04 13:34:40 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # OpenBSD | 
					
						
							|  |  |  |     "i686-openbsd" "x86_64-openbsd" | 
					
						
							| 
									
										
										
										
											2019-11-24 23:07:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # Redox | 
					
						
							|  |  |  |     "x86_64-redox" | 
					
						
							| 
									
										
										
										
											2020-11-04 21:13:06 +07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # WASI | 
					
						
							|  |  |  |     "wasm64-wasi" "wasm32-wasi" | 
					
						
							| 
									
										
										
										
											2020-03-24 13:32:18 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 22:25:54 +00:00
										 |  |  |     # Windows | 
					
						
							|  |  |  |     "x86_64-windows" "i686-windows" | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  |   ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   allParsed = map parse.mkSystemFromString all; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   filterDoubles = f: map parse.doubleFromSystem (lists.filter f allParsed); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-13 21:52:01 +00:00
										 |  |  | in { | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  |   inherit all; | 
					
						
							| 
									
										
										
										
											2009-09-23 19:45:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-26 18:53:03 +00:00
										 |  |  |   none = []; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-24 14:35:27 +01:00
										 |  |  |   arm           = filterDoubles predicates.isAarch32; | 
					
						
							|  |  |  |   aarch64       = filterDoubles predicates.isAarch64; | 
					
						
							|  |  |  |   x86           = filterDoubles predicates.isx86; | 
					
						
							|  |  |  |   i686          = filterDoubles predicates.isi686; | 
					
						
							|  |  |  |   x86_64        = filterDoubles predicates.isx86_64; | 
					
						
							|  |  |  |   mips          = filterDoubles predicates.isMips; | 
					
						
							| 
									
										
										
										
											2020-11-04 21:13:06 +07:00
										 |  |  |   mmix          = filterDoubles predicates.isMmix; | 
					
						
							| 
									
										
										
										
											2020-02-24 14:35:27 +01:00
										 |  |  |   riscv         = filterDoubles predicates.isRiscV; | 
					
						
							|  |  |  |   vc4           = filterDoubles predicates.isVc4; | 
					
						
							| 
									
										
										
										
											2020-11-09 15:06:44 -05:00
										 |  |  |   or1k          = filterDoubles predicates.isOr1k; | 
					
						
							| 
									
										
										
										
											2020-02-24 14:35:27 +01:00
										 |  |  |   js            = filterDoubles predicates.isJavaScript; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   bigEndian     = filterDoubles predicates.isBigEndian; | 
					
						
							|  |  |  |   littleEndian  = filterDoubles predicates.isLittleEndian; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   cygwin        = filterDoubles predicates.isCygwin; | 
					
						
							|  |  |  |   darwin        = filterDoubles predicates.isDarwin; | 
					
						
							|  |  |  |   freebsd       = filterDoubles predicates.isFreeBSD; | 
					
						
							| 
									
										
										
										
											2018-08-28 22:17:54 +01:00
										 |  |  |   # Should be better, but MinGW is unclear. | 
					
						
							| 
									
										
										
										
											2021-03-15 19:22:57 -07:00
										 |  |  |   gnu           = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; }); | 
					
						
							| 
									
										
										
										
											2020-02-24 14:35:27 +01:00
										 |  |  |   illumos       = filterDoubles predicates.isSunOS; | 
					
						
							|  |  |  |   linux         = filterDoubles predicates.isLinux; | 
					
						
							|  |  |  |   netbsd        = filterDoubles predicates.isNetBSD; | 
					
						
							|  |  |  |   openbsd       = filterDoubles predicates.isOpenBSD; | 
					
						
							|  |  |  |   unix          = filterDoubles predicates.isUnix; | 
					
						
							|  |  |  |   wasi          = filterDoubles predicates.isWasi; | 
					
						
							|  |  |  |   redox         = filterDoubles predicates.isRedox; | 
					
						
							|  |  |  |   windows       = filterDoubles predicates.isWindows; | 
					
						
							|  |  |  |   genode        = filterDoubles predicates.isGenode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   embedded      = filterDoubles predicates.isNone; | 
					
						
							| 
									
										
										
										
											2019-06-04 14:49:58 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-07 23:48:40 -06:00
										 |  |  |   mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux" "aarch64-darwin"]; | 
					
						
							| 
									
										
										
										
											2009-08-25 08:28:08 +00:00
										 |  |  | } |