Sparse 0.5.0 released

From Sparse Wiki
Jump to: navigation, search
   Subject: Sparse 0.5.0
   From: Christopher Li
   Date: Tue, 1 Apr 2014 09:41:17 -0700

As a lot of you have already noticed. The sparse 0.5.0 has been tagged and upload to the kernel.org for a while.

One of the most noticeable change of the sparse 0.5.0 is the license. The sparse project has finally move to the MIT license. Thanks for the hard work of Dan Carpenter and Franz Schrober, who contact and collect permissions from the sparse developers. We actually manage to get *all* developer's blessing on the MIT license.

This release also has some enhancement matching the latest kernel source annotations. It will reduce the noise level of the sparse warnings.

So there you have it. The official announcement of the sparse 0.5.0.

Chris ---

Al Viro (9):
      Fix handling of __func__
      Fix tab handling in nextchar_slow()
      Fix ,##__VA_ARGS__ kludge
      Gentler handling of bitwise warnings in unary operations
      simplify handling of newline/whitespace flags in expand()
      fix handling of -include
      massage handling of wide string literals/character constants in tokenizer
      switch to delayed handling of escape sequences
      L ## 'a' is valid; so's L ## "a"

Benjamin Herrenschmidt (1):
      sparse, llvm: Fix varargs functions

Christopher Li (19):
      Limit usage of g++ to llvm related programs.
      Merge branch 'sparse-llvm' of git://github.com/penberg/sparse-llvm.git
      Adding default for m64/m32 handle
      Merge branch 'for-chris' of git://github.com/penberg/sparse-llvm
      Merge branch 'llvm/core' of github.com:penberg/sparse-llvm
      remove weak define x86_64
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/sparse into marge
      Clean up some test case error.
      Fix segfault cause by fucntion without ident.
      Get rid of gcc warning about enum values
      Larger buffer size for token concatenation
      Proper variable length array warning
      Allow forced attribute in function argument
      Trivial: Remove redundant Makefile variable
      Merge branch 'llvmcore'
      Merge branch 'Novafora' of
git://git.zytor.com/users/hpa/sparse/sparse into license
      Sparse 0.5.0 rc1
      Fix make dist failure
      Sparse 0.5.0

Emilio G. Cota (1):
      gitignore: add 'version.h'

Ethan Jackson (1):
      sparse: Add 'leaf' to ignored attributes.

Franz Schrober (5):
      Revert "Update the information in README about using the library."
      Revert "Fix mistaken comparison that becomes a no-op."
      sparse: Relicense under the MIT license
      FAQ: Remove outdated sections about the license
      sparse: Also check bit_offset when checking implicit casts

Frederic Crozat (1):
      Add __builtin_stpcpy, __sync_synchronize,
__sync_bool_compare_and_swap to declare_builtin_functions

James Westby (1):
      Update the information in README about using the library.

Jan Pokorný (2):
      unssa: track use of newly added pseudo
      simplify: conservative handling of casts with pointers

Jeff Garzik (15):
      sparse, llvm: if-else code generation
      sparse-llvm: OP_SEL
      sparse-llvm: OP_SWITCH
      sparse-llvm: OP_LOAD
      sparse-llvm OP_PHISOURCE: replace copy with target=src pointer operation
      sparse, llvm: replace FIXME comment with assert(), following
existing style
      sparse, llvm: implement OP_CALL
      sparse, llvm: move OP_PHI code from switch statement to separate function
      sparse, llvm: move OP_CAST code to separate func.  support FP casts.
      sparse, llvm: create helper for obtaining instruction's type
      sparse, llvm: store module-local functions on function reference list
      sparse, llvm: move OP_COPY support to separate function.  Add FP support.
      sparse, llvm: support OP_STORE
      sparse, llvm: Fix loops, by properly handling OP_PHI forward references
      sparse, llvm: add loop testcase

Jeff Layton (1):
      sparse: add __builtin_va_arg_pack() and __builtin_va_arg_pack_len()

Joe Perches (1):
      There's no current way to know the version     of sparse.  Add
--version to see it.

Jonathan Neuschäfer (9):
      FAQ: update the website address and call it Wiki
      ptrlist.c: fix a typo in a comment
      sparse, llvm: 'Verify' the LLVM module before writing it
      sparse, llvm: convert the condition of branch/select to bool
      sparse, llvm: Fix type of loaded values
      sparse, llvm: Fix resulting type of store address calculations
      sparse, llvm: de-duplicate load/store address calculation code
      sparse, llvm: base load/store address type on insn_symbol_type()
      sparse, llvm: add a struct access test case

Josh Triplett (2):
      Define __SIZEOF_POINTER__
      Support #pragma once

KOSAKI Motohiro (2):
      sparse: Add '__vector_size__' to ignored attributes
      sparse: Add 'error' to ignored attributes

Kamil Dudka (2):
      cse: treat PHI-nodes as other instructions
      cse: update PHI users when throwing away an instruction
Kim Phillips (2):
      sparse: add built-in byte swap identifiers
      sparse: add built-in atomic memory access identifiers

Linus Torvalds (1):
      sparse, llvm: Make function declaration accessible to backend

Masatake YAMATO (3):
      Warn about initialization of a char array with a too long
constant C string.
      Test case for -Winit-cstring option
      Add description for -Winit-cstring option

Mauro Dreissig (1):
      Fix wrong array size expression

Pekka Enberg (69):
      sparse, llvm: Initial commit
      sparse, llvm: Fix assert() in sparse code
      sparse, llvm: Fix global variable initialization
      sparse, llvm: Fix 'sparsec' when it's not in PATH
      llvm, sparse: Separate entry and exit basic blocks
      sparse, llvm: Add switch statement to output_insn()
      sparse, llvm: OP_RET/PSEUDO_VAL code generation
      sparse, llvm: Add support for OP_RET/PSEUDO_ARG
      sparse, llvm: Introduce 'struct function' to clean up code
      sparse, llvm: Add output_op_binary() stub
      sparse, llvm: Implement OP_ADD
      sparse, llvm: Add support for more binary ops
      sparse, llvm: Implement some binary comparison ops
      sparse, llvm: Move binop tests to validation/backend
      sparse, llvm: Implement OP_CAST
      sparse, llvm: Floating point support for binops
      sparse, llvm: Reorganize code generation tests
      sparse, llvm: Bitwise not operator codegen
      sparse, llvm: Kill ifdef'd unssa() call
      sparse, llvm: Kill debugging code
      Merge pull request #1 from jgarzik/hacks
      Merge pull request #2 from jgarzik/hacks
      sparse, llvm: Warn the user when we fall back to GCC
      sparse, llvm: Code generation for string constants
      sparse, llvm: Cleanup output_data()
      sparse, llvm: Fix OP_CAST to use zero-extend
      sparse, llvm: Improve sparsec front-end
      sparse, llvm: Fix PSEUDO_OP code generation
      sparse, llvm: Don't redefine module local functions
      Revert "sparse, llvm: Don't redefine module local functions"
      sparse, llvm: Fix code generation for casts
      sparse, llvm: Fix pseudo_type() for PSEUDO_ARG
      Merge pull request #3 from jgarzik/hacks
      Merge branch 'master' of github.com:penberg/sparse-llvm
      llvm, sparse: Fix symbol_is_fp_type() goof
      Merge pull request #4 from jgarzik/hacks
      sparse, llvm: Fix code generation for 'long double' data type
      sparse, llvm: Add support for struct types
      sparse, llvm: Add support for symbol initializers
      sparse: Bump up sizeof(_Bool) to 8 bits
      sparse, llvm: Add support for logical ops
      sparse, llvm: Fix 'void *' pointer code generation
      sparse, llvm: Use new LLVM type system API for structs
      sparse, llvm: Fix struct code generation
      sparse, llvm: Fix symbol_type() for bitfields and enums
      sparse, llvm: Add support for array types
      sparse, llvm: Add support for union types
      sparse, llvm: Make 'sparsec' error handling more robust
      sparse, llvm: Function pointer code generation
      sparse, llvm: Fix symbol initializer code generation
      sparse, llvm: Fix 'extern' symbol code generation
      sparse, llvm: Make llc output to stdout in sparsec
      sparse, llvm: Pointer cast code generation
      sparse, llvm: OP_SET_B and OP_SET_A code generation
      sparse, llvm: More comparison ops code generation
      sparse, llvm: Simplify comparison op code generation
      sparse, llvm: FP comparison op code generation
      Merge pull request #6 from jgarzik/hacks
      sparse, llvm: Don't fail the build if LLVM is too old
      sparse, llvm: Use LLVMInt1Type() in sym_basetype_type()
      sparse, llvm: Add test case for <stdbool.h> type
      Revert "sparse: Bump up sizeof(_Bool) to 8 bits"
      sparse, llvm: Add _Bool to cast validation test
      sparse, llvm: Simplify output_data() type logic
      sparse, llvm: Fix string initializer code generation
      sparse, llvm: Fix global string access code generation
      sparse, llvm: Fix SIGSEGV for extern symbols
      sparse, llvm: Fix 'void' return type code generation
      sparse, llvm: Use LLVM_HOSTTRIPLE

Ramsay Jones (2):
      char.c: Fix parsing of escapes
      symbol.c: Set correct size of array from parenthesized string initializer

Randy Dunlap (1):
      sparse patch v2: add noclone as an ignored attribute

Robert Bedichek (1):
      Novafora license grant using MIT license.

Shakthi Kannan (1):
      I have updated the sparse.1 man page including the __bitwise
relevant content, and created Documentation/sparse.txt with the
complete comparison between __nocast vs __bitwise.

Xi Wang (17):
      compile-i386: fix use-after-free in func_cleanup()
      check missing or duplicate goto labels
      fix casting constant to _Bool
      fix SIGFPE caused by signed division overflow
      sparse, llvm: fix link errors
      sparse, llvm: fix phi generation
      sparse, llvm: simplify function generation
      sparse, llvm: improve pointer arithmetic handling
      sparse, llvm: set target specification
      sparse, llvm: use LLVM_DEFAULT_TARGET_TRIPLE
      sparse, llvm: fix array size
      sparse, llvm: cache symbol_type() result
      sparse, llvm: fix struct name generation
      sparse, llvm: set more data attributes
      sparse, llvm: die if error
      Fix result type of relational and logical operators
      Fix expression type for floating point negation ('!')
Personal tools