help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-glpk] script to locate depreciated APIs


From: Robbie Morrison
Subject: [Help-glpk] script to locate depreciated APIs
Date: Thu, 09 Apr 2009 20:30:10 +0200
User-agent: Thunderbird 1.5.0.14ubu (X11/20080306)

Hello API users and Andrew

A bash script, which searches for depreciated API names
in C/C++ code, is appended.  It may be of use to API
users wishing to check and/or upgrade their code.

As a suggestion to Andrew, it could be worth listing
depreciated calls (starting version 4.13?), together
with their current replacements, in the API manual.
Either as a stand-alone table in a new appendix.  Or
provided within the documentation proper, for example:

   Supersedes

   This function replaced 'lpx_stale' in release 4.36.

If need be, I can draft some texinfo (or latex) markup.
Just let me know.

with best regards
Robbie

---

#! /bin/bash

#  Purpose   : match depreciated glpk APIs using hardcoded list
#  Author    : Robbie Morrison <address@hidden>
#  Commenced : 03-Apr-2009
#  Tested    : Ubuntu 6.10 / Linux 2.6.17-12-generic / grep (GNU grep) 2.5.1
#  Status    : working

#  License: This work is in the Public Domain.  To view
#  a copy of the public domain certification, visit
#  http://creativecommons.org/licenses/publicdomain/

#  Version: $Id: show-stale-glpk-apis,v 1.9 2009/04/09 05:16:39 robbie Exp $

#  TYPICAL USAGE
#
#      $ show-stale-glpk-apis *.{h,c}
#      $ show-stale-glpk-apis *.{h,cc}
#      $ show-stale-glpk-apis *.{hpp,cpp}
#      $ show-stale-glpk-apis *
#
#  ISSUES
#
#      - filenames containing space chars must be escaped: space\ char\ name.c
#      - C++ exclusive comment lines are filtered out, that is, all lines 
beginning //
#
#  NOTES
#
#      - any lines ending \ must NOT contain trailing white-space
#      - execute permission must be set: $ chmod u+x show-stale-glpk-apis

#  'STALE_APIS' is a newline-separated list of
#  depreciated GLPK APIs taken from the release notes
#  for versions 4.29 thru 4.37.  You can add to this
#  list as needed.

STALE_APIS="\
lpx_read_mps
lpx_read_freemps
lpx_write_mps
lpx_write_freemps
lpx_read_cpxlp
lpx_write_cpxlp
lpx_scale_prob
lpx_std_basis
lpx_adv_basis
lpx_cpx_basis
lpx_integer
lpx_intopt
lpx_exact
lpx_get_ray_info
lpx_interior
lpx_read_model
lpx_print_sol
lpx_print_ips
lpx_print_mip
lpx_print_prob"

# ---------------------------------
#  preamble
# ---------------------------------

SCRIPT=$(basename "$0")                 # name of this script, used in reporting

files="$*"                              # grab command-line arguments as single 
string

if [ -z "$files" ]                      # empty string
    then
    echo "$SCRIPT: must supply at least one filename"
    exit 1
fi

# ---------------------------------
#  function 'stale_apis'
# ---------------------------------

function stale_apis
{
      local file="$1"                   # rename for convenience
      echo "$file"

      if [ -f "$file" ]                 # file exists and is regular
          then

          cat "$file" | \
              grep --invert-match "^[[:space:]]*//" | \
              grep --line-number --color --fixed-strings "$STALE_APIS"

          ret3=${PIPESTATUS[2]}         # return from third call in call chain
          test $ret3 -eq 1 && echo "  no stale APIs found"
          echo
          return 0
      else
          echo "  file either not regular or not found"
          echo
          return 1
      fi
}

# ---------------------------------
#  main loop
# ---------------------------------

for file in $files
  do
  stale_apis "$file"
done

# ---------------------------------
#  housekeeping
# ---------------------------------

echo "$SCRIPT: script complete"
exit 0

#  end of file

---
Robbie Morrison
PhD student -- policy-oriented energy system simulation
Technical University of Berlin (TU-Berlin), Germany
Webmail (preferred)           : address@hidden
[from IMAP client]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]