1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-23 04:23:08 +00:00
freebsd-ports/lang/seed7/Makefile
Pietro Cerutti 83120e0c21 lang/seed7: update to 05_20180601
20180601:
- The library tls.s7i has been improved to support the server_name
  extension and to process handshake messages, that extend over several
  tls message records. Additionally TLS version 1.2 is used now.
- The library x509cert.s7i has been improved to accept a validity with
  times in GeneralizedTime data elements (additionally to times in
  UTCTime data elements).
- The library browser.s7i has been improved to support calling Safari
  under Mac OS X.
- Tests for the functions environment(), getenv() and setenv() have
  been added to chkcmd.sd7.
- A test that checks the sorting of an array of strings has been added
  to chkstr.sd7. This checks the compare() function for strings.
- The compiler s7c has been improved to create better code for the
  option -tf (trace functions). Now the trace functions are added after
  the declarations (such that older C compilers will accept this also).
- In chkflt.sd7 tests for NaN have been grouped together.
- In chkovf.sd7 tests for the binomial coefficient have been split into
  groups.
- The program chkccomp.c has been improved to define the macros
  LIMITED_CSTRI_LITERAL_LEN, LIMITED_ARRAY_LITERAL_LEN,
  DECLARE_OS_ENVIRON, USE_GET_ENVIRONMENT, INITIALIZE_OS_ENVIRON,
  DEFINE_WGETENV, DEFINE_WSETENV, os_environ, os_getenv, os_setenv,
  os_putenv, DELETE_PUTENV_STRING, DEFINE_WSTATI64_EXT,
  DEFINE_STRUCT_STATI64_EXT, DEFINE_FSTATI64_EXT, os_lstat, os_stat,
  os_fstat, os_stat_struct, os_fstat_struct, HAS_SELECT and HAS_MMAP.
- In int_rtl.c the macro DECIMAL_DIGITS has been improved to work with
  unsigned numbers.
- In str_rtl.c the function strCmpGeneric() has been changed back to
  the old behaviour. Now strCmpGeneric() and strCompare() have again
  the same behaviour. It has turned out that sorting an array of
  strings worked wrong, when the program was compiled.
- In pcs_win.c the function prepareCommandLine has been improved and
  the function copyQuotedPart has been added. Now the command line
  created for CreateProcessW() has fewer quoted parameters. Now
  parameters that contain a space or a quotation (") or a control
  character or a character byond ASCII are quoted. All other parameters
  are not quoted.
- Definitions of USE_MMAP, os_environ, os_fstat, DEFINE_WSTATI64_EXT,
  os_lstat, os_stat, os_stat_orig, os_stat_struct, os_fstat_struct,
  DEFINE_WSETENV, os_setenv, os_putenv and USE_DIRENT have been removed
  from the makefiles.
- In several files usages of USE_MMAP have been replaced by usages of
  HAS_MMAP.
- The file read_me.txt has been updated.
- In chkccomp.c the functions checkForLimitedArrayLiteralLength() and
  determineStatFunctions() have been added and the functions
  determineEnvironDefines() and determineBigIntDefines() have been
  improved. Now the test for the GMP library enforces static linking.
- The macros DEFINE_MATHERR_FUNCTION and DEFINE__MATHERR_FUNCTION have
  been improved to define if matherr() or _matherr() should be defined.
- Log functions have been improved in big_gmp.c, big_rtl.c and
  int_rtl.c.

20180513:
- In the manual descriptions of the binomial coefficient and of several
  conversion functions have been improved.
- The bas7.sd7 (basic interpreter) example program has been improved to
  use case statements with strings.
- The operator &:= has been added to the libraries bitsetof.s7i and
  bitset.s7i.
- The function rand() has been added to the library hashsetof.s7i. This
  function returns a random element from a hash set.
- The compiler (s7c) has been improved to generate code that uses
  memcpy or memmove to copy and create arrays of simple value types
  (e.g. array integer). The destruction of arrays of simple value types
  has also been simplified.
- The compiler has been improved to optimize the action SET_RAND.
- The compiler optimizations for the actions SET_DIFF, SET_UNION and
  SET_UNION_ASSIGN has been improved.
- In the compiler (in comp/const.s7i) the actions BLN_ICONV1,
  BLN_ICONV3, CHR_ICONV3 and SET_RAND have been added to the list of
  special actions. The compiler implements functions, which just call
  one of the special actions as inline functions.
- Interpreter and compiler have been improved to support the actions
  HSH_RAND_KEY and SET_INTERSECT_ASSIGN.
- Tests for the functions card() and rand() for the type set of string
  have been added to chkset.sd7.
- Tests for intersection assignments ( &:= ) have been added to
  chkset.sd7.
- In s7c.sd7 the code to call C compiler and linker has been
  refactored.
- The compiler has been improved (in comp/prc_act.s7i) to use the
  function hshIdxDefault0() instead of hshIdxWithDefault() for case
  statements with hashsets.
- The code generation of the compiler has been improved to trigger the
  signal SIGFPE with a call of triggerSigfpe().
- The compiler has been improved to insert diagnostic line information
  (e.g.: #line 64 "logfile.s7i") into code for the actions ARR_CPY,
  BLN_AND, BLN_OR, ITF_CPY, PRC_IF, PRC_IF_ELSIF, PRC_IF_NOOP
- The compiler has been improved to insert diagnostic line information
  for inlined functions.
- The configuration values in cc_conf.s7i have been improved.
  SWITCH_WORKS_FOR_INT64TYPE, CC_OPT_OPTIMIZE_1, CC_OPT_OPTIMIZE_2 and
  CC_OPT_OPTIMIZE_3 have been added. SYSTEM_DB_LIBS has been renamed
  to ADDITIONAL_SYSTEM_LIBS. HAS_SIGACTION, SIGNAL_RESETS_HANDLER and
  DO_SIGFPE_WITH_DIV_BY_ZERO have been removed.
- The program chkccomp.c has been improved. Now it determines the name
  of the NULL device (/dev/null or NUL:), the system socket library
  (unix sockets or winsocket), the method to read directories, the
  bigInteger implementation used (big_rtl.c or big_gmp.c) and the
  support for switch statements with 64-bit values.
- Documentation comments have been added or improved in bigint.s7i,
  integer.s7i, bitsetof.s7i, bitset.s7i, hashsetof.s7i, cc_conf.s7i,
  fil_rtl.c, dir_drv.h, cmd_rtl.c, set_rtl.c, str_rtl.c and striutl.c.
- In set_rtl.c the function setIntersect() has been improved to create
  a smaller intersection result, if possible.
- In set_rtl.c the function setIntersectAssign has been added.
- In setlib.c the function set_intersect_assign has been added.
- In hsh_rtl.c the functions get_helem_elem, get_hash_elem, hshRand
  and hshIdxDefault0 have been added.
- In hshlib.c the functions get_helem_elem, get_hash_elem and
  hsh_rand_key have been added.
- In gkb_x11.c and gkb_win.c the function find_window() has been
  improved to use hshIdxDefault0() instead of hshIdxWithDefault().
- In big_gmp.c the function bigDivRem has been improved to initialize
  the remainder.
- In str_rtl.c and strlib.c the function strelem_memcmp has been
  renamed to memcmp_strelem.
- In str_rtl.c the function strCmpGeneric has been changed to avoid
  calls of memcmp_strelem(), when the string sizes differ. This
  differs from the behaviour of strCompare, but the difference is not
  important, because strCmpGeneric() is only used for string
  comparisons of hash keys (in compiled programs).
- In striutl.c the function conv_to_cstri has been rewritten to return
  the C string, when the function succeeds, and to work without the
  parameter err_info.
- In striutl.c the function stri_to_bstriw has been rewritten to use
  an err_info parameter.
- In striutl.c the functions with loop unrolling inspired by Duff's
  device have been rewritten.
- In striutl.c the loops in conv_to_cstri, stri_to_cstri and
  conv_to_os_stri have been optimized.
- The macro castIntTypeForSwitch has been introduced to support C
  compilers, that do not support switch statements with 64-bit values.
- Definitions of NULL_DEVICE, USE_GETADDRINFO, USE_WINSOCK and
  BIGINT_LIB_DEFINE have been removed from the makefiles.

20180401:
- The new library logfile.s7i has been added. It defines the interface
  logFile. A logFile works like a normal file unless the log file
  has the value STD_NULL. When a logFile has the value STD_NULL string
  expressions written to the logFile are not evaluated. This reduces
  the overhead, when logging is turned off.
- The bas7.sd7 (basic interpreter) example program has been improved.
  The logging is now done via the new logFile type. This improves the
  performance, when no logging is done. Several DATA statements in one
  line are processed correctly now. Support for IF GOSUB and DISPLAY
  statements and for the function COMMAND$ has been added.
- Tests of nested bigInteger for loops have been added to chkbig.sd7.
- A test with the assignment of a hash variable to itself have been
  added to chkhsh.sd7.
- Tests of the replace function have been added to chkstr.sd7.
- In striutl.c the functions conv_from_os_stri, cstri8_to_stri and
  cstri8_buf_to_stri have been improved. Now they call realloc()
  only, when the size has changed. This improves the performance of
  conv_from_os_stri by 32% (measured with gcc and valgrind, when
  reading a directory).
- In str_rtl.c the function strUtf8ToStri has been improved to call
  realloc() only, when the size has changed.
- In cmd_rtl.c the functions add_stri_to_array and
  complete_stri_array have been renamed to addStriToRtlArray and
  completeRtlStriArray respectively. The renamed functions have also
  been improved to work with a simpler parameter list. Together with
  the improvement of conv_from_os_stri this improves the performance
  of cmdLs by 14% (measured with gcc and valgrind, when reading a
  directory).
- In cmdlib.c the function cmd_ls has been rewritten to be based on
  cmdLs. The functions cmp_mem and read_dir have been removed.
- In cmdlib.c the main loop in the function toArrayType has been
  optimized for performance.
- In str_rtl.c the function add_stri_to_array has been renamed to
  addCopiedStriToRtlArray and the function completeRtlStriArray has
  been introduced. The code of addCopiedStriToRtlArray has also been
  improved to work with a simpler parameter list.
- In strlib.c the function add_stri_to_array has been renamed to
  addCopiedStriToArray and the functions freeStriArray and
  completeStriArray have been introduced. The code of
  addCopiedStriToArray has also been improved to work with a simpler
  parameter list.
- The compiler has been improved to optimize the action HSH_CONTAINS,
  when the hash table is constant and contains one element.
- In the compiler (in comp/const.s7i) the actions BLN_ORD, CHR_ICONV1,
  CHR_ORD and INT_ODD have been added to the list of special actions.
  The compiler implements functions, which just call one of the
  special actions as inline functions. This allows optimizations for
  the boolean and char random number generator.
- The compiler (s7c) has been improved (in comp/destr.s7i) to define
  interface destructors, which take all possible implementation
  types into account. Additionally a switch statement is used instead
  of an if-then-else chain. Double entries are also avoided now.
- The function strChRepl has been added to str_rtl.c.
- The compiler has been improved to use strChRepl instead of strRepl,
  to optimize split operations.
- Unnecessary function parameters have been removed in several
  include files of the compiler.
- In flt_rtl.c the function doubleToCharBuffer has been improved to
  determine the integer value of the exponent without calling
  strtol().
- The function freeRtlStriArray has been added to arr_rtl.c.
- Several #define flags in pol_sel.c have been improved.
- The macro CSTRI_LITERAL_TO_STRI has been defined in striutl.h and
  used in analyze.c, arr_rtl.c, cmd_rtl.c, cmd_unx.c, infile.c,
  pcs_unx.c and pcs_win.c.
- Calls of logError have been added to functions in cmd_rtl.c,
  con_inf.c, prclib.c, soc_rtl.c, tim_dos.c, tim_rtl.c, tim_unx.c and
  tim_win.c.
- Documentation comments have been added or improved in cmdlib.c,
  int_rtl.c and tim_rtl.c.
2018-06-04 13:41:59 +00:00

80 lines
2.4 KiB
Makefile

# Created by: gahr
# $FreeBSD$
PORTNAME= seed7
DISTVERSION= 05_20180601
CATEGORIES= lang
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${DISTNAME}/
DISTNAME= ${PORTNAME}_${DISTVERSION}
MAINTAINER= gahr@FreeBSD.org
COMMENT= High-level, extensible programming language
# The language libraries are licensed under the LGPL21 license. Starting from
# version 05_20140601, the compiler libraries are also distributed. These are
# licensed under the GPLv2 and can be found in ${PREFIX}/lib/seed7/lib/comp.
LICENSE= GPLv2 LGPL21
LICENSE_COMB= multi
ONLY_FOR_ARCHS= amd64 i386 sparc64
LIB_DEPENDS= libodbc.so:databases/unixODBC
OPTIONS_DEFINE= DOCS EXAMPLES
USES= mysql:client ncurses pgsql sqlite tar:tgz
USE_XORG= x11
WANT_PGSQL= client
WRKSRC= ${WRKDIR}/${PORTNAME}/src
MAKE_ENV+= S7_LIB_DIR=${S7_LIB_DIR} \
SEED7_LIBRARY=${SEED7_LIBRARY} \
C_COMPILER=${CC} \
CPLUSPLUS_COMPILER=${CPP}
SEED7_LIBRARY= ${PREFIX}/lib/${PORTNAME}/lib
S7_LIB_DIR= ${PREFIX}/lib/${PORTNAME}/bin
S7_LIBS= s7_comp.a s7_con.a s7_draw.a s7_data.a seed7_05.a
PORTEXAMPLES= *
PORTDOCS= *
MAKEFILE= mk_freebsd.mk
post-patch:
${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g;' \
-e 's|^CFLAGS = |CFLAGS = -I${NCURSESINC} |' \
${WRKSRC}/${MAKEFILE}
do-build:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} -f ${MAKEFILE} depend
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} -f ${MAKEFILE} s7 s7c
do-install:
# install interpreter and compiler
${INSTALL_PROGRAM} ${WRKSRC}/../bin/s7 ${STAGEDIR}${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/../prg/s7c ${STAGEDIR}${PREFIX}/bin
# install seed7 library
${INSTALL} -d ${STAGEDIR}${SEED7_LIBRARY}/comp
cd ${WRKSRC}/../lib && ${COPYTREE_SHARE} '*.s7i' ${STAGEDIR}${SEED7_LIBRARY}
cd ${WRKSRC}/../lib/comp && ${COPYTREE_SHARE} '*.s7i' ${STAGEDIR}${SEED7_LIBRARY}/comp
# install static libraries
${INSTALL} -d ${STAGEDIR}${S7_LIB_DIR}
.for s7_lib in ${S7_LIBS}
${INSTALL_DATA} ${WRKSRC}/../bin/${s7_lib} ${STAGEDIR}${S7_LIB_DIR}
.endfor
# install PORTDOCS
${INSTALL} -d ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC}/../doc && ${COPYTREE_SHARE} \* ${STAGEDIR}${DOCSDIR}
# install PORTEXAMPLES
${INSTALL} -d ${STAGEDIR}${EXAMPLESDIR}
cd ${WRKSRC}/../prg && ${COPYTREE_SHARE} '*.dna *.sd7 *.dat *.s7i' ${STAGEDIR}${EXAMPLESDIR}
# insall man pages
${INSTALL_DATA} ${WRKSRC}/../doc/s7.1 ${STAGEDIR}${PREFIX}/man/man1
${INSTALL_DATA} ${WRKSRC}/../doc/s7c.1 ${STAGEDIR}${PREFIX}/man/man1
do-test:
cd ${WRKSRC} && ${MAKE} -f ${MAKEFILE} test
.include <bsd.port.mk>