added a configure option to disable isocline

This commit is contained in:
2025-09-17 22:51:43 +09:00
parent 0da9721c9f
commit 8c54c12ea7
8 changed files with 151 additions and 73 deletions

View File

@ -125,11 +125,23 @@ class[#b] B (a b) {
}
fun print() {
printf "%d %d\n" self.a self.b
printf "A: %d B: %d\n" self.a self.b
}
}
x := (B:new)
class[#b] C: B (c) {
fun[#ci] new() {
super:new
self.c := 77
}
fun print() {
super:print
printf "C: %d\n" self.c
}
}
x := (C:new)
x:print
```

View File

@ -17,6 +17,7 @@ LIBADD_COMMON =
# BUNDLED LIBRARIES
##################################################
if ENABLE_ISOCLINE
noinst_LIBRARIES = libisocline.a
noinst_HEADERS = \
isocline/include/isocline.h \
@ -52,6 +53,7 @@ libisocline_a_SOURCES = \
isocline/src/tty_esc.c \
isocline/src/undo.c \
isocline/src/wcwidth.c
endif
##################################################
# MAIN BINARIES
@ -65,9 +67,14 @@ endif
bin_PROGRAMS = hak
hak_SOURCES = hak.c
hak_CPPFLAGS = $(CPPFLAGS_COMMON) -I$(srcdir)/isocline/include -DHAVE_ISOCLINE_H -DHAVE_ISOCLINE_LIB
hak_CPPFLAGS = $(CPPFLAGS_COMMON)
hak_LDFLAGS = $(LDFLAGS_COMMON)
hak_LDADD = ../lib/libhak.la $(LIBADD_COMMON) ./libisocline.a
hak_LDADD = ../lib/libhak.la $(LIBADD_COMMON)
if ENABLE_ISOCLINE
hak_CPPFLAGS += -I$(srcdir)/isocline/include -DHAVE_ISOCLINE_H -DHAVE_ISOCLINE_LIB
hak_LDADD += ./libisocline.a
endif
if ENABLE_HAKX

View File

@ -99,7 +99,9 @@ host_triplet = @host@
@ENABLE_LIBLTDL_TRUE@am__append_1 = $(LTDL_LIBS)
@ENABLE_LIBLTDL_FALSE@am__append_2 = $(DL_LIBS)
bin_PROGRAMS = hak$(EXEEXT) $(am__EXEEXT_1)
@ENABLE_HAKX_TRUE@am__append_3 = hakx
@ENABLE_ISOCLINE_TRUE@am__append_3 = -I$(srcdir)/isocline/include -DHAVE_ISOCLINE_H -DHAVE_ISOCLINE_LIB
@ENABLE_ISOCLINE_TRUE@am__append_4 = ./libisocline.a
@ENABLE_HAKX_TRUE@am__append_5 = hakx
subdir = bin
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
@ -109,7 +111,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
DIST_COMMON = $(srcdir)/Makefile.am $(am__noinst_HEADERS_DIST) \
$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/hak-cfg.h
@ -127,19 +129,32 @@ am__v_AR_1 =
libisocline_a_AR = $(AR) $(ARFLAGS)
libisocline_a_RANLIB = $(RANLIB)
libisocline_a_LIBADD =
am__libisocline_a_SOURCES_DIST = isocline/src/attr.c \
isocline/src/bbcode.c isocline/src/bbcode_colors.c \
isocline/src/common.c isocline/src/completers.c \
isocline/src/completions.c isocline/src/editline.c \
isocline/src/highlight.c isocline/src/history.c \
isocline/src/isocline.c isocline/src/stringbuf.c \
isocline/src/term.c isocline/src/tty.c isocline/src/tty_esc.c \
isocline/src/undo.c isocline/src/wcwidth.c
am__dirstamp = $(am__leading_dot)dirstamp
am_libisocline_a_OBJECTS = isocline/src/attr.$(OBJEXT) \
isocline/src/bbcode.$(OBJEXT) \
isocline/src/bbcode_colors.$(OBJEXT) \
isocline/src/common.$(OBJEXT) \
isocline/src/completers.$(OBJEXT) \
isocline/src/completions.$(OBJEXT) \
isocline/src/editline.$(OBJEXT) \
isocline/src/highlight.$(OBJEXT) \
isocline/src/history.$(OBJEXT) isocline/src/isocline.$(OBJEXT) \
isocline/src/stringbuf.$(OBJEXT) isocline/src/term.$(OBJEXT) \
isocline/src/tty.$(OBJEXT) isocline/src/tty_esc.$(OBJEXT) \
isocline/src/undo.$(OBJEXT) isocline/src/wcwidth.$(OBJEXT)
@ENABLE_ISOCLINE_TRUE@am_libisocline_a_OBJECTS = \
@ENABLE_ISOCLINE_TRUE@ isocline/src/attr.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/bbcode.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/bbcode_colors.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/common.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/completers.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/completions.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/editline.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/highlight.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/history.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/isocline.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/stringbuf.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/term.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/tty.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/tty_esc.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/undo.$(OBJEXT) \
@ENABLE_ISOCLINE_TRUE@ isocline/src/wcwidth.$(OBJEXT)
libisocline_a_OBJECTS = $(am_libisocline_a_OBJECTS)
am_hak_OBJECTS = hak-hak.$(OBJEXT)
hak_OBJECTS = $(am_hak_OBJECTS)
@ -148,7 +163,7 @@ am__DEPENDENCIES_1 =
@ENABLE_LIBLTDL_FALSE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
am__DEPENDENCIES_4 = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
hak_DEPENDENCIES = ../lib/libhak.la $(am__DEPENDENCIES_4) \
./libisocline.a
$(am__append_4)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
@ -215,13 +230,22 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libisocline_a_SOURCES) $(hak_SOURCES) $(hakx_SOURCES)
DIST_SOURCES = $(libisocline_a_SOURCES) $(hak_SOURCES) \
DIST_SOURCES = $(am__libisocline_a_SOURCES_DIST) $(hak_SOURCES) \
$(am__hakx_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__noinst_HEADERS_DIST = isocline/include/isocline.h \
isocline/src/attr.h isocline/src/bbcode.h \
isocline/src/common.h isocline/src/completions.h \
isocline/src/env.h isocline/src/highlight.h \
isocline/src/history.h isocline/src/stringbuf.h \
isocline/src/term.h isocline/src/tty.h isocline/src/undo.h \
isocline/src/editline_completion.c \
isocline/src/editline_help.c isocline/src/editline_history.c \
isocline/src/term_color.c
HEADERS = $(noinst_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
@ -400,47 +424,47 @@ LIBADD_COMMON = $(am__append_1) $(am__append_2)
##################################################
# BUNDLED LIBRARIES
##################################################
noinst_LIBRARIES = libisocline.a
noinst_HEADERS = \
isocline/include/isocline.h \
isocline/src/attr.h \
isocline/src/bbcode.h \
isocline/src/common.h \
isocline/src/completions.h \
isocline/src/env.h \
isocline/src/highlight.h \
isocline/src/history.h \
isocline/src/stringbuf.h \
isocline/src/term.h \
isocline/src/tty.h \
isocline/src/undo.h \
isocline/src/editline_completion.c \
isocline/src/editline_help.c \
isocline/src/editline_history.c \
isocline/src/term_color.c
@ENABLE_ISOCLINE_TRUE@noinst_LIBRARIES = libisocline.a
@ENABLE_ISOCLINE_TRUE@noinst_HEADERS = \
@ENABLE_ISOCLINE_TRUE@ isocline/include/isocline.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/attr.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/bbcode.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/common.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/completions.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/env.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/highlight.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/history.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/stringbuf.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/term.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/tty.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/undo.h \
@ENABLE_ISOCLINE_TRUE@ isocline/src/editline_completion.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/editline_help.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/editline_history.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/term_color.c
libisocline_a_SOURCES = \
isocline/src/attr.c \
isocline/src/bbcode.c \
isocline/src/bbcode_colors.c \
isocline/src/common.c \
isocline/src/completers.c \
isocline/src/completions.c \
isocline/src/editline.c \
isocline/src/highlight.c \
isocline/src/history.c \
isocline/src/isocline.c \
isocline/src/stringbuf.c \
isocline/src/term.c \
isocline/src/tty.c \
isocline/src/tty_esc.c \
isocline/src/undo.c \
isocline/src/wcwidth.c
@ENABLE_ISOCLINE_TRUE@libisocline_a_SOURCES = \
@ENABLE_ISOCLINE_TRUE@ isocline/src/attr.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/bbcode.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/bbcode_colors.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/common.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/completers.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/completions.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/editline.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/highlight.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/history.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/isocline.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/stringbuf.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/term.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/tty.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/tty_esc.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/undo.c \
@ENABLE_ISOCLINE_TRUE@ isocline/src/wcwidth.c
hak_SOURCES = hak.c
hak_CPPFLAGS = $(CPPFLAGS_COMMON) -I$(srcdir)/isocline/include -DHAVE_ISOCLINE_H -DHAVE_ISOCLINE_LIB
hak_CPPFLAGS = $(CPPFLAGS_COMMON) $(am__append_3)
hak_LDFLAGS = $(LDFLAGS_COMMON)
hak_LDADD = ../lib/libhak.la $(LIBADD_COMMON) ./libisocline.a
hak_LDADD = ../lib/libhak.la $(LIBADD_COMMON) $(am__append_4)
@ENABLE_HAKX_TRUE@hakx_SOURCES = hakx.c
@ENABLE_HAKX_TRUE@hakx_CPPFLAGS = $(CPPFLAGS_COMMON)
@ENABLE_HAKX_TRUE@hakx_LDFLAGS = $(LDFLAGS_COMMON)

27
configure vendored
View File

@ -668,6 +668,8 @@ ENABLE_LIBUNWIND_FALSE
ENABLE_LIBUNWIND_TRUE
ENABLE_LIBLTDL_FALSE
ENABLE_LIBLTDL_TRUE
ENABLE_ISOCLINE_FALSE
ENABLE_ISOCLINE_TRUE
ENABLE_SHARED_FALSE
ENABLE_SHARED_TRUE
ENABLE_STATIC_FALSE
@ -836,6 +838,7 @@ enable_wide_char
enable_full_liw
enable_dynamic_module
enable_static_module
enable_isocline
enable_libltdl
enable_libunwind
enable_pthread_flags
@ -1504,6 +1507,7 @@ Optional Features:
--enable-dynamic-module enable dynamic module capability(default. yes)
--enable-static-module build modules statically into the main
library(default. no)
--enable-isocline use isocline(default. yes)
--enable-libltdl use libltdl(default. no)
--enable-libunwind use libunwind(default. no)
--enable-pthread-flags add thread flags to CFLAGS, LIBS(default. yes)
@ -20041,6 +20045,25 @@ else
fi
# Check whether --enable-isocline was given.
if test ${enable_isocline+y}
then :
enableval=$enable_isocline; enable_isocline=$enableval
else case e in #(
e) enable_isocline=yes
;;
esac
fi
if test "x${enable_isocline}" = "xyes"; then
ENABLE_ISOCLINE_TRUE=
ENABLE_ISOCLINE_FALSE='#'
else
ENABLE_ISOCLINE_TRUE='#'
ENABLE_ISOCLINE_FALSE=
fi
# Check whether --enable-libltdl was given.
if test ${enable_libltdl+y}
then :
@ -20359,6 +20382,10 @@ if test -z "${ENABLE_SHARED_TRUE}" && test -z "${ENABLE_SHARED_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_SHARED\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_ISOCLINE_TRUE}" && test -z "${ENABLE_ISOCLINE_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_ISOCLINE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_LIBLTDL_TRUE}" && test -z "${ENABLE_LIBLTDL_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_LIBLTDL\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5

View File

@ -622,6 +622,14 @@ dnl ===== conditionals - ENABLE_STATIC and ENABLE_SHARED =====
AM_CONDITIONAL(ENABLE_STATIC, test "x${enable_static}" = "xyes")
AM_CONDITIONAL(ENABLE_SHARED, test "x${enable_shared}" = "xyes")
dnl ==== enable-isocline ====
AC_ARG_ENABLE([isocline],
[AS_HELP_STRING([--enable-isocline],[use isocline(default. yes)])],
enable_isocline=$enableval,
enable_isocline=yes
)
AM_CONDITIONAL(ENABLE_ISOCLINE, test "x${enable_isocline}" = "xyes")
dnl ===== enable-libltdl =====
AC_ARG_ENABLE([libltdl],
[AS_HELP_STRING([--enable-libltdl],[use libltdl(default. no)])],

View File

@ -20,7 +20,7 @@ class IndexedCollection: Collection {
}
class FixedSizedCollection: IndexedCollection {
fun(#class) new(size) {
fun[#class] new(size) {
| obj iv |
obj := (core.basicNew self size)
if (self:respondsTo "initValue") { ## TODO: change "initValue" to a symbol once supported
@ -28,34 +28,34 @@ class FixedSizedCollection: IndexedCollection {
iv := (self:initValue)
while (< i size) { ## TODO: change to i < size after having implemented these methods on integer/smallintger
core.basicAtPut obj i iv
i := (+ i 1) ## TODO: change to i + 1 ## TODO: change to i < size after having implemented these methods on integer/smallintger
i := (i + 1) ## TODO: change to i + 1 ## TODO: change to i < size after having implemented these methods on integer/smallintger
}
}
return obj
}
##fun ::initValue() {
##fun[#class] initValue() {
## return nil
##}
}
class(#varying) Array: FixedSizedCollection {
class[#varying] Array: FixedSizedCollection {
}
class(#char #varying) String: FixedSizedCollection {
fun(#class) initValue() {
class[#char #varying] String: FixedSizedCollection {
fun[#class] initValue() {
##return '\0'
return ' '
}
}
class SequenceableCollection: Collection {
fun iterate (action) {
fun iterate(action) {
| i x |
i := 0; x := (self:size)
while (i < x) {
action:value (self:at i)
i := (+ i 1)
i := (i + 1)
}
}
}

View File

@ -6,7 +6,7 @@ class Magnitude: Object {
fun >= (oprnd) { return ((self < oprnd):not) }
}
class(#limited) Number: Magnitude {
class[#limited] Number: Magnitude {
fun + (oprnd) { return (+ self oprnd) }
fun - (oprnd) { return (- self oprnd) }
fun * (oprnd) { return (* self oprnd) }

View File

@ -2,11 +2,11 @@ class Apex {
fun isNil?() { return false }
fun notNil?() { return true }
fun(#class) basicNew(size) {
fun[#class] basicNew(size) {
return (core.basicNew self size)
}
fun(#class) respondsTo(mth) {
fun[#class] respondsTo(mth) {
return (core.classRespondsTo self mth)
}
@ -40,7 +40,7 @@ class Apex {
## TODO: fun perform(name ...) {}
}
class(#uncopyable #varying #limited #final) Class: Apex [
class[#uncopyable #varying #limited #final] Class: Apex (
_name
_mdic
_spec
@ -50,7 +50,7 @@ class(#uncopyable #varying #limited #final) Class: Apex [
_ibrand
_ivarnames
_cvarnames
] {
) {
fun name() {
##return (core.className self)
return _class
@ -136,8 +136,8 @@ printf "----------------------------------------\n"
k := #[1 2 3]
printf "%O\n" (k:basicAt 2)
class (#varying) Z: Object [ a b c ] {
fun(#classinst) new() {
class [#varying] Z: Object (a b c) {
fun[#classinst] new() {
self.a := 10
self.b := 20
self.c := 30
@ -153,7 +153,7 @@ fun Z:abc() {
}
class Q {
fun(#class) k () {
fun[#class] k () {
k := (Z:basicNew 10) ## #varying is really required? what is the big deal even if you allow it regardless?
##k := (Z:new) ## no way to add extra fields.
k:basicAtPut 2 "hello"