Skip to content

Up for discussion: User-provided commands for reading shell input #178

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 34 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
084f0ac
Small simplification of gc functions
jpco Mar 25, 2025
cec72d5
working (?!) implementation of palloc and friends
jpco Mar 26, 2025
ea81fd3
only scan the necessary pspace pointers while copying into gcspace
jpco Mar 26, 2025
ba9b099
move LOCAL_GETENV logic out of input.c into var.c
jpco Mar 26, 2025
b8b31bd
Pull in %write-history from #65
jpco Mar 26, 2025
2eb69a1
Start shoving readline logic into readline.c
jpco Mar 26, 2025
dd2fef1
Shove yet more readline logic into readline.c
jpco Mar 26, 2025
1a4923b
initial sketch of a $&readline primitive
jpco Mar 26, 2025
288fdd8
Demo user-defineable completion function
jpco Mar 26, 2025
2c05f72
use hook functions for shell input
jpco Mar 26, 2025
ec430cb
Make pseal(NULL) work okay
jpco Mar 27, 2025
b8110e9
Li'l bug fixes
jpco Mar 28, 2025
8c3ae10
Add (and fix) tests for new parser behavior
jpco Mar 31, 2025
a679134
Try to isolate test execution better
jpco Mar 31, 2025
eea5e0c
Small test improvements
jpco Mar 31, 2025
0fae344
fix obvious little segfault bug
jpco Mar 31, 2025
1c00488
Restore previous scanspace logic.
jpco Apr 14, 2025
d3f888f
Merge remote-tracking branch 'upstream/master' into palloc
jpco Apr 22, 2025
e74ac6a
Merge remote-tracking branch 'upstream/master' into palloc
jpco May 3, 2025
cb1f629
Configure our yacc to use "pure" mode.
jpco May 6, 2025
5064cb2
Add "fastread" patch.
jpco May 10, 2025
0feb012
Make most parsing and lexing state per-Input.
jpco May 10, 2025
963a6db
Rough draft - make per-Input pspaces
jpco May 19, 2025
aa4b3d2
Fix configure.ac bug
jpco May 19, 2025
2c74768
Fix per-input pspace.
jpco May 19, 2025
f8a735f
Make fillcmd work with multiple Inputs.
jpco May 20, 2025
147af90
Un-break GCPROTECT with per-Input pspaces.
jpco May 20, 2025
561f58f
Merge remote-tracking branch 'upstream/master' into palloc
jpco May 20, 2025
adf1d08
Move readline completion to demo completion.es file.
jpco May 30, 2025
e226270
Improve completion.es based completion.
jpco Jun 1, 2025
3f1c2a5
Even more thorough tab-completion logic.
jpco Jun 2, 2025
6e21a84
More-robust scanning for beginning of command.
jpco Jun 4, 2025
45cf982
Add hook to control filename completion.
jpco Jun 10, 2025
19a2607
Slightly better behavior for `man a.b` completions
jpco Jun 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ LIBS = @READLINE_LIBS@ @LIBS@ $(ADDLIBS)
HFILES = config.h es.h gc.h input.h prim.h print.h sigmsgs.h \
stdenv.h syntax.h term.h var.h
CFILES = access.c closure.c conv.c dict.c eval.c except.c fd.c gc.c glob.c \
glom.c input.c heredoc.c history.c list.c main.c match.c open.c opt.c \
glom.c input.c heredoc.c list.c main.c match.c open.c opt.c \
prim-ctl.c prim-etc.c prim-io.c prim-sys.c prim.c print.c proc.c \
sigmsgs.c signal.c split.c status.c str.c syntax.c term.c token.c \
tree.c util.c var.c vec.c version.c y.tab.c dump.c
readline.c sigmsgs.c signal.c split.c status.c str.c syntax.c term.c \
token.c tree.c util.c var.c vec.c version.c y.tab.c dump.c
OFILES = access.o closure.o conv.o dict.o eval.o except.o fd.o gc.o glob.o \
glom.o input.o heredoc.o history.o list.o main.o match.o open.o opt.o \
glom.o input.o heredoc.o list.o main.o match.o open.o opt.o \
prim-ctl.o prim-etc.o prim-io.o prim-sys.o prim.o print.o proc.o \
sigmsgs.o signal.o split.o status.o str.o syntax.o term.o token.o \
tree.o util.o var.o vec.o version.o y.tab.o
readline.o sigmsgs.o signal.o split.o status.o str.o syntax.o term.o \
token.o tree.o util.o var.o vec.o version.o y.tab.o
OTHER = Makefile parse.y mksignal
GEN = esdump y.tab.c y.tab.h y.output token.h sigmsgs.c initial.c

Expand Down Expand Up @@ -105,7 +105,7 @@ src :
@echo $(OTHER) $(CFILES) $(HFILES)

y.tab.h : parse.y
$(YACC) -vd $(srcdir)/parse.y
$(YACC) -vd -b y $(srcdir)/parse.y

y.tab.c : y.tab.h

Expand Down Expand Up @@ -134,9 +134,8 @@ fd.o : fd.c es.h config.h stdenv.h
gc.o : gc.c es.h config.h stdenv.h gc.h
glob.o : glob.c es.h config.h stdenv.h gc.h
glom.o : glom.c es.h config.h stdenv.h gc.h
input.o : input.c es.h config.h stdenv.h input.h
heredoc.o : heredoc.c es.h config.h stdenv.h gc.h input.h syntax.h
history.o : history.c es.h config.h stdenv.h gc.h input.h
input.o : input.c es.h config.h stdenv.h input.h token.h
heredoc.o : heredoc.c es.h config.h stdenv.h gc.h input.h syntax.h token.h
list.o : list.c es.h config.h stdenv.h gc.h
main.o : main.c es.h config.h stdenv.h
match.o : match.c es.h config.h stdenv.h
Expand All @@ -146,6 +145,7 @@ prim.o : prim.c es.h config.h stdenv.h prim.h
prim-ctl.o : prim-ctl.c es.h config.h stdenv.h prim.h
prim-etc.o : prim-etc.c es.h config.h stdenv.h prim.h
prim-io.o : prim-io.c es.h config.h stdenv.h gc.h prim.h
readline.o : readline.c es.h config.h stdenv.h prim.h
prim-sys.o : prim-sys.c es.h config.h stdenv.h prim.h
print.o : print.c es.h config.h stdenv.h print.h
proc.o : proc.c es.h config.h stdenv.h prim.h
Expand Down
Loading