 0421bac259
			
		
	
	
		0421bac259
		
	
	
	
	
		
			
			Use go/packages instead of x/tools/loader: it allows to work with go modules and speedups loading of packages with the help of build cache. A lot of linters became "fast": they are enabled by --fast now and work in 1-2 seconds. Only unparam, interfacer and megacheck are "slow" linters now. Average project is analyzed 20-40% faster than before if all linters are enabled! If we enable all linters except unparam, interfacer and megacheck analysis is 10-20x faster!
		
			
				
	
	
		
			22 lines
		
	
	
		
			247 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			247 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package cgoexample
 | |
| 
 | |
| /*
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| void myprint(char* s) {
 | |
| 	printf("%d\n", s);
 | |
| }
 | |
| */
 | |
| import "C"
 | |
| 
 | |
| import (
 | |
| 	"unsafe"
 | |
| )
 | |
| 
 | |
| func Example() {
 | |
| 	cs := C.CString("Hello from stdio\n")
 | |
| 	C.myprint(cs)
 | |
| 	C.free(unsafe.Pointer(cs))
 | |
| }
 |