ChangeLog-2003   [plain text]

2003-12-12  Huang Chun <>

	* intrinsics/string_intrinsics.c (string_index): Fix logics thinko.

2003-12-05  Melvin Hadasht  <>

	* io/transfer.c (data_transfer_init): Give a runtime error for list
	formatted reads and writes from/to files opened for unformatted IO.

2003-11-30  Paul Brook  <>

	* runtime/memory.c (push_context): Remove.
	(pop_context): Remove.
	* libgfortran.h: Remove prototypes.

2003-11-27  Paul Brook  <>

	* runtime/memory.c (deallocate): Nullify pointer after freeing.

2003-11-27  Paul Brook  <>

	* intrinsics/string_intrinsics.c: Use new memory allocation interface.
	* libgfortran.h: Ditto.
	* m4/in_pack.m4: Ditto.
	* runtime/in_pack_generic.c: Ditto.
	* runtime/memory.c: Ditto.

2003-11-26  Richard Henderson  <>

	* m4/exponent.m4, m4/fraction.m4: New.
	* m4/nearest.m4, m4/set_exponent.m4: New.
	* generated/*: Update.
	* Add them.
	(AM_CFLAGS): New.  Use -std=gnu99.
	* Regenerate.

2003-11-08  Paul Brook  <>

	PR fortran/12704
	* m4/maxloc0.m4: Use default value of 1. Handle zero sized arrays.
	* m4/maxloc1.m4: Ditto.
	* m4/minloc0.m4: Ditto.
	* m4/minloc1.m4: Ditto.
	* m4/ifunction.m4: Set return value for zero sized arrays.
	* m4/iforeach.m4: Ditto.
	* m4/all.m4, m4/any.m4, m4/count.m4, m4/maxloc1.m4, m4/minloc1.m4,
	m4/mxaval.m4, m4/minval.m4, m4/product.m4, m4/sum.m4: Ditto.
	* generated/*: Update.

2003-10-30  Toon Moene  <>

	PR fortran/12702
	* io/list_read.c (eat_spaces): Treat tab as space.

2003-10-30  Lars Segerlund  <>

	* intrinsics/random.c: Add reference to paper containing algorithm.
	(random_seed): Extra error checking and proper handling of arrays.
	(arandom_r4, arandom_r8): Implement.

2003-10-29  Toon Moene  <>

	PR fortran/12703
	* runtime/memory.c (allocate_size): Allow allocation
	of zero-sized objects.

2003-10-29  Toon Moene  <>

	PR fortran/12701
	* open.c (new_unit): Open without a file name opens
	a file with name fort.<unit>.

2003-10-12  Feng Wang  <>

	* intrinsics/cshift0.c: New file.
	* m4/cshift1.m4: New file
	* generated/cshift*.c: New files.
	* Add them.
	* Regenerate.

2003-10-12  XiaoQiang Zhang  <>

	* io/list_read.c (read_character): Remove unwanted call to free_saved.

2003-10-11  Huang Chun  <>

	* intrinsics/string_intrinsics.c (string_trim): New function.
	(string_repeat): New function.

2003-10-11  Paul Brook  <>

	* intrinsics/dprod_r8.f90: New file.
	* (gfor_specific_src): Add it.
	(gfor_built_specific_src): Rename from gfor_build_specific_c.
	Add new intrinsics.
	(gfor_specific2_src): Rename from gfor_built_specific2_c.
	Add new intrinsics.
	* Regenerate.
	* generated/_aint_*.f90: New files.
	* generated/_anint*.f90: New files.
	* generated/_atan2*.f90: New files.
	* generated/_mod*.f90: New files.

2003-09-20  Kejia Zhao  <>

	* intrinsics/selected_kind.f90: New file.
	* Add it.
	* regenerate.

2003-09-19  Lars Segerlund  <>
	Paul Brook  <>

	* intrinsics/random.c: New file.
	* (gfor_hemper_src): Add it.
	(gfor_specific_c): Fix typo.

2003-09-19  Paul Brook  <>

	* All: rename g95->gfc.

2003-09-18  XiaoQiang Zhang  <>

	* io/write.c (output_float): Fix bug of FMT_E, Add comments.

2003-09-09  XiaoQiang Zhang  <>

	* io/write.c (write_float): Dectection of positive infinite number,
	Not a Number(NaN) and negative infinite number.
	(ioutput_float): Bug fix for FMT_E and FMT_D processing to
	output a very_very small number ( < 0.1e-100 ).

2003-09-07  XiaoQiang Zhang  <>

	* libgfortran.h (xtoa, itoa): Parameter modified.
	* io/io.h (namelist_info): Declaration to support namelist I/O
	(st_parameter): Add namelist related component
	(ionml, empty_internal_buffer, st_set_nml_var_int,
	st_set_nml_var_float, st_set_nml_var_char, st_set_nml_var_complex,
	st_set_nml_var_log): Declaration
	(set_integer, set_integer): Parameter changed
	* io/format.c (free_nodes): Fix annoying bug of lefting "deallocated"
	(parse_format_list): Fix bug about FMT_SLASH
	* io/list_read.c (push_char): Totally clear old saved_string, zeroize
	newly allocated saved_string
	(next_char): Add detection of End_Of_Line support
	(convert_integer): Now can process 64 bits interger
	(read_real): Bug fixed
	(init_at_eol, find_nml_node, match_namelist_name): Add new functions
	(match_namelist_name): New implemention
	* io/lock.c (ionml): New global variable
	(library_end): Free memory in ionml
	* io/open.c (st_open): Variable initializtion
	* io/read.c (max_value): 64 bits interger support
	(convert_precsion_real): New procedure to replace "strtod" with more
	(read_f, read_radix): Input bug fix
	* io/transfer.c: (sf_seen_eor): New static variable
	(read_sf): Zeroize base buffer; fix bugs: single read statement can
	not get input in mutli line when read from stdin
	(formatted_transfer): Fix bug of FMT_O, FMT_B, FMT_Z for INTEGER type
	(data_transfer_init): Clear internal buffer for Internel File I/O.
	Internal File now worked. Detect some error condition for namelist.
	Some minor bug fix
	(next_record_w): Internal file and Namelist I/O support.
	(st_set_nml_var, st_set_nml_var_float, st_set_nml_var_char,
	st_set_nml_var_complex, st_set_nml_var_log): Implemention.
	* io/unit.c (implicit_unit): Deletion
	(get_unit): Now cannot open a unit implicitly.
	* io/unix.c (mmap_alloc): Fix fatal error in calculating the length of
	mapped buffer.
	(mem_alloc_r_at): Internal file I/O support added
	(empty_internal_buffer): New function
	* io/write.c (extract_int): Support 64 bits interger processing
	(output_float): Varibale initialization
	(write_float): Infinite real number detection.
	(write_int): 64 bits integer I/O support
	(write_decimal): New function to output decimal number
	(otoa, btoa): Better implemention and 64 bits interger support
	(namelist_write): New function
	* runtime/error.c (itoa, xtoa): Better implemention and 64 bits
	interger support

2003-08-15  Arnaud Desitter  <>

	* libgfortran.h (os_error, runtime_error,internal_error, sys_exit,
	get_mem ): Add attribute.
	* intrinsics/spread_generic.c (__spread): Fix spelling.
	* io/inquire.c (inquire_via_filename): Add const.
	* io/io.h (sys_exit): Add attribute.
	* io/io.h (move_pos_offset): Add move_pos_offset.
	* io/io.h (compare_file_filename, inquire_sequential, inquire_direct,
	inquire_formatted, inquire_unformatted, inquire_read, inquire_write,
	inquire_readwrite, convert_real, write_a, write_b, write_d, write_e,
	write_en, write_es, write_f, write_i, write_l, write_o, write_x,
	write_z): Add const.
	* io/read.c (convert_real): Add const.
	* io/transfer.c (type_name): Add const.
	* io/unix.c (unpack_filename, compare_file_filename,inquire_sequential,
	inquire_direct, inquire_formatted, inquire_unformatted, inquire_access,
	inquire_read, inquire_write, inquire_readwrite): Add const.
	* io/write.c (output_float): Remove unused variable.
	* io/write.c (write_a, extract_int, extract_real, output_float,
	write_float, write_int, write_i, write_b, write_o, write_z, write_d,
	write_e, write_f, write_en, write_es, write_logical, write_integer,
	write_character, write_real, write_complex): Add const.
	* runtime/error.c (rtoa): Remove unused variable.
	* runtime/select.c (select_string): Add const.
	* runtime/stop.c (stop_string): Add const.

2003-08-10  Paul Brook  <>

	* (gfor_helper_src): Add intrinsics/abort.c.
	(FFLAGS): Add -fno-underscoring.
	* Regenerate.
	* intrinsics/abort.c: New file.

2003-08-10  Erik Schnetter  <>

	* fmain.c (main): Do not call init and cleanup; call set_args instead.
	* libgfortran.h (init, cleanup): Remove declarations.
	(set_args): Add declaration.
	* runtime/main.c (init, cleanup): Make them static, and give them
	the constructor and destructor attributes.
	(set_args): New	function.

2003-08-10  Paul Brook  <>

	* intrinsics/strinf_intrinsics.c (compare_string): Return value based
	on which string is longest.

2003-08-10  Paul Brook  <>

	* (EXTRA_DIST): Remove old files.
	* Regenerate.

2003-07-26  Paul Brook  <>

	Rename library to libgfortran.
	* libgfortran.h: Change prefix to _libgfortran_.

2003-07-24  Paul Brook  <>

	* Don't pull in system libtool.  Use toplevel
	auxiliary files.

2003-07-22  Paul Brook  <>

	Regenerate all configury files.

2003-07-09  Chun Huang  <>

	* intrinsics/string_intrinsic.c (string_scan): New function.
	(string_verify): New function.

2003-06-25  Paul Brook  <>

	* io/unix.c (mem_alloc_r_at, mem_alloc_w_at): Advance logical_offset.
	(mem_seek): Don't bother setting physical_offset.

2003-06-20  Paul Brook  <>

	* libgfor.h (stop_numeric): Declare.
	* runtime/pause.c: New file.
	* Add it.

2003-06-08  Paul Brook  <>

	* m4/cexp.m4 (cabs): Use correct typed version.
	(csqrt): New function.

2003-06-07  Canqun Yang  <>

	Spotted by Benjamin and Tobias:
	* io/list_read.c: Add Separator '\t'.
	(parse_real, read_real): Accept real values starting with an optional
	sign follows a decimal point.

2003-06-06  Steven Bosscher  <>

	* Don't put cmath objects in subdir.
	* Rename MATHOBJ to MATH_OBJ.

2003-06-02  Kejia Zhao  <>

	* intrinsics/associated.c: New file.
	* Add it. Regenerate
	* libgfor.h: Define g95_array_void, G95_DESCRIPTOR_DATA, and

2003-06-01  Canqun Yang  <>

	* io/write.c (calcuate_exp): Rewrite it to avoid overflow.
	(calculate_G_format): Rewrite it to eliminate an infinte loop and set
	the scale_factor to 0 for F editing.

2003-05-11  Tobias Schlter  <>

	* libgfor.h: Only include stdint.h if it exists.

2003-05-07  Paul Brook  <>

	* libgfor.h: Use stdint.h types.
	* intrinsics/ishift.c: Ditto.
	* runtime/memory.c (malloc_t): Reorder fields for better alignment.

2003-05-05  Steven Bosscher  <>

	* libgfor.h (offsetof): Define if nobody else does.
	* runtime/memory.c (HEADER_SIZE): Use it.

2003-05-01  Tobias Schlter  <>

	* Require autoconf 2.54.

2003-04-28  Tobias Schlter  <>
	Paul Brook  <>

	* intrinsics/reshape_generic.c: Copy the whole element, not just the
	first byte.
	* m4/transpose.m4: New file.
	* Add them.
	Regenerate generated files.

2003-04-18  Steven Bosscher  <>

	* io/format.c (parse_format_list): Allow 'X' without integer
	prefix.  This is an extension.  Interpretation is '1X'.

2003-04-18  Tobias Schlter  <>

	* io/format.c (parse_format_list): Allow '0P'.

2003-04-18  Steven Bosscher  <>

	* Re-regenerate for automake 1.7.3.

2003-04-18  Canqun Yang  <>

	Port implementation for CHARACTER SELECT from Andy's tree.
	* runtime/select.c: New file
	* Add it.
	* Regenerate.

2003-04-17  Xiaoqiang Zhang <>

	* io/transfer.c (formatted_transfer): Modified
	* io/unix.c (move_pos_offset): New Function.
	* io/format.c (parse_format_list): Modified.

2003-04-15  Xiaoqiang Zhang <>

	* io/write.c (write_float,write_real): New implemention of
	FMT_G and default float editing.
	(calculate_exp,calculate_G_format,output_float): New Function.
	(write_float,write_real,write_logical): Modified
	* libgfor.h (default_rtoa): Remove Declaration.
	* runtime/error.c (default_rtoa): Remove Function.

2003-04-15  Steven Bosscher  <>

	Spotted by Yang:
	* io/write.c (extract_real): Add missing break statement.

2003-04-13  Steven Bosscher  <>

	* cpu_time.c: Make sure we have a definition of HZ.  Don't
	rely on CLOCKS_PER_SEC, it is always 1000000, on any system.

2003-04-13  Steven Bosscher  <>
	    Paul Brook  <>

	* Check for process time headers and GETTIMEOFDAY.
	* Add intrinsics/cpu_time.c.
	* acinclude.m4: New file.
	* intrinsics/cpu_time.c: New file.
	* m4/dotprodl.m4: Fix typo.
	Regenerate generated files.

2003-04-11  Xiaoqiang Zhang <>

	* io/write.c (extract_real): Ouput floating point value.
	(write_float): New Function.
	(write_e, write_f, write_en, write_es): Modified
	* io/transfer.c (formatted_transfer): Modified.
	* libgfor.h (default_rtoa): Declaration.
	(rtoa): Declaration.
	* runtime/error.c (default_rtoa): New Function.
	(rtoa): New Function.

2003-04-05  Paul Brook  <>

	* intrinsics/spread_generic.c: New file.
	* Add it. Regenerate

2003-03-29  Paul Brook  <>

	* intrinsics/pack_generic.c: New file.
	* intrinsics/unpack_generic.c: New file.
	* Add them. Regenerate

2003-03-25  Paul Brook  <>

	* intrinsics/eoshift0.c: New file.
	* intrinsics/eoshift2.c: New file.
	* m4/eoshift1.m4: New file.
	* m4/eoshift3.m4: New file.
	* Add them.
	* in_unpack_generic.c: Initialize src.
	Regenerate generated files.

2003-03-14  Paul Brook  <>

	* m4/shape.m4: Work properly with array temporaries.
	* m4/in_pack.m4: Skip redundant checks for array temporaries.
	* runtime/in_pack_generic.c: Ditto.

2003-03-12  Paul Brook  <>

	* m4/shape.m4: Work properly with noncontiguous arrays.

2003-03-08  Paul Brook  <>

	* m4/in_pack.m4: Correctly handle zero sized and assumed size arrays.
	* runtime/in_pack_generic.c: Ditto.

2003-02-08  Paul Brook  <>

	* intrinsics/reshape_generic.c: Use runtime_error to report errors.
	* io/close.c (st_close): Return void.
	* io/open.c (st_open): Return void.
	* libgfor.h (g95_array_char): Declare.
	(internal_malloc_size): Ditto.
	(internal_pack*, internal_unpack*): Ditto.
	* m4/in_pack.m4: Allocate storage if neccessary.  Fix logic for packed
	* m4/in_unpack.m4: Include file fixes.
	* m4/reshape.m4: Increment the correct source pointer.
	* (maxloc): Fix typo.
	* runtime/in_pack_generic.c: Call optimized functions. Allocate
	storage if neccessary. Fix logic for packed arrays.
	* runtime/in_unpack_generic.c: Call optimized functions.
	* runtime/main.c: Use runtime_error to report errors.
	* memory.c (internal_malloc_size): Make non-static.

2003-02-02  Arnaud Desitter  <>

	* reshape_packed.c, lock.c: Add #include <string.h>.
	* libgfor.h, format.c, inquire.c, io.h, transfer.c, unix.c,
	environ.c, error.c, memory.c, string.c: Add const.
	* error.c (show_locus): Add void.

2003-02-21  Paul Brook  <>

	* m4/in_pack.m4: Avoid returning const * parameter.
	* Only regenerate files in maintainer mode.

2003-02-20  Paul Brook  <>

	Add array repacking support functions.
	* m4/in_pack.m4, m4/in_unpack.m4: New files.
	* runtime/in_pack_generic.c, runtime/in_unpack_generic.c: New files.
	* Build them.  Regenerate configury files.
	* generated/: New directory for generated files (need to move
	everything else there).

2003-02-07  Tobias Schlueter  <>

	* m4/cexp.m4: Fix typo.

2003-01-26  Paul Brook  <>

	* intrinsics/: Add missing generated files.

2003-01-26  Paul Brook  <>

	* Put -I before the filename.

2003-01-24  Paul Brook  <>


2003-01-23  Paul Brook  <>

	*, Modify to work with unmodified autoconf
	and auotmake.
	Also regenerate other configury files.

2003-01-21  Paul Brook  <>

	* io/read.c: Don't use stdint.h, it doesn't exist on cygwin.

2003-01-20  Steven Bosscher  <>

	* io/read.c (read_f): Don't use alloca, but safe get_mem instead.
	Don't include "alloca.h".

2003-01-20  Steven Bosscher  <>

	* intrinsics/string.c: Rename to intrinsics/string_intrinsics.c.
	* Adjust file name.
	* Regenerate.
	* gfortypes.h: Kill, include everything in...
	* libgfor.h:  Include config.h
	* fmain.c, intrinsics/ishftc.c, intrinsic/reshape_generic.c,
	intrinsics/reshape_i4.c, intrinsics/reshape_i8.c,
	intrinsics/reshape_packed.c, intrinsics/size.c,
	m4/reshape.m4, runtime/main.c, runtime/memory.c: Use macro
	for prefix for all functions instead of hardcoded.

2003-01-19  Steven Bosscher  <>

	* io/lock.c (library_end): Propagate library return

2003-01-19  Steven Bosscher  <>

	Port fixes from Andy's tree:
	* io/read.c (read_decimal): Reverse sense of overflow
	comparison during integer reads.
	* io/format.c (revert): Fix comment.
	(next_format): Fix format revision.
	* io/unix.c: Fix and simplify mmap version of stream

2003-01-11  Paul Brook  <>

	* configure, Regenerate.

2003-01-11  Paul Brook  <>

	* runtime/stop.c: Rewrite.

2003-01-08  Paul Brook  <>

	* configure, Regenerate.

2003-01-05  Paul Brook  <>

	* (*.m4) Move to m4/.
	* intrinsics/string.c (_gfor_string_index): New Function.