Skip to content

Commit

Permalink
port stateless frontend
Browse files Browse the repository at this point in the history
  • Loading branch information
let-def committed Feb 28, 2017
1 parent 26401c3 commit d27a113
Show file tree
Hide file tree
Showing 478 changed files with 6,233 additions and 7,002 deletions.
33 changes: 3 additions & 30 deletions .merlin
Original file line number Diff line number Diff line change
@@ -1,33 +1,6 @@
S src
S src/analysis
S src/config
S src/extend
S src/frontend
S src/kernel
S src/ocaml
S src/ocaml/parsing
S src/ocaml/typing
S src/ocaml/utils
S src/ocaml_aux
S src/sturgeon
S src/utils
S src/**
B src
B src/analysis
B src/config
B src/extend
B src/frontend
B src/kernel
B src/ocaml
B src/ocaml/parsing
B src/ocaml/typing
B src/ocaml/utils
B src/ocaml/tools
B src/ocaml_aux
B src/sturgeon
B src/utils
B src/**
B +threads
PKG findlib
PKG yojson
PKG sturgeon
PKG inuit
PKG ppx_deriving.show
PKG findlib yojson sturgeon inuit ppx_deriving.show
14 changes: 9 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ VIM_DIR := $(DESTDIR)$(VIM_DIR)
OCAMLMAKEFILE= $(MAKE) -f Makefile.ocamlmakefile \
WITH_BIN_ANNOT="$(WITH_BIN_ANNOT)" WITHOUT_DEBUG="$(WITHOUT_DEBUG)"

ifndef VERBOSE
OCAMLMAKEFILE += REALLY_QUIET=1
ifdef VERBOSE
OCAMLMAKEFILE += REALLY_QUIET=0
endif

#### Default rule
Expand All @@ -34,7 +34,7 @@ all: $(TARGET) $(TARGET_EMACS)

#### Check configuration

CONFIG_FILES = src/config/my_config.ml src/ocaml
CONFIG_FILES = src/config/my_config.ml src/ocaml/typer
$(CONFIG_FILES):
@echo "Please run ./configure"
@if [ -d ._d ]; then printf \
Expand All @@ -50,6 +50,10 @@ assert_configured: $(CONFIG_FILES)
$(TARGET): assert_configured
+$(OCAMLMAKEFILE) $@

test: assert_configured
+$(OCAMLMAKEFILE) PROJECT=test
./ocamlmerlin_test

preprocess:
$(MAKE) -f Makefile.preprocess

Expand All @@ -60,9 +64,9 @@ debug: assert_configured
-$(EMACS) --batch --no-init-file -f batch-byte-compile $<

clean:
@rm -f Makefile.config $(CONFIG_FILES)
#@rm -f Makefile.config $(CONFIG_FILES)
@rm -f emacs/merlin.elc
@rm -f src/ocaml_*/*.cmly
@rm -f src/ocaml/*/*/*.cmly
$(MAKE) -f Makefile.preprocess clean
@find src/ -name '*.cm*' -delete
+$(OCAMLMAKEFILE) clean
Expand Down
165 changes: 96 additions & 69 deletions Makefile.ocamlmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ ifndef OVERRIDE_ENV
endif

OCAMLFLAGS += -w -3
REALLY_QUIET ?= 1

ifdef WITH_BIN_ANNOT
OCAMLFLAGS += -bin-annot
Expand All @@ -19,14 +20,13 @@ ifndef WITHOUT_DEBUG
OCAMLLDFLAGS += -g
endif

RESULT = ocamlmerlin$(RESULT_SUFFIX)
TYPER = src/ocaml$(MERLIN_OCAML_VERSION)
TYPER = src/ocaml/typer$(MERLIN_OCAML_VERSION)
STURGEON = src/sturgeon$(MERLIN_STURGEON_VERSION)
THREADS = $(MERLIN_NEED_THREADS)

CONFIG_FILES = src/config/my_config.ml src/ocaml

SOURCES = \
SOURCES_LIB = \
src/config/my_config.ml \
src/platform/fs_case.c \
$(STURGEON)/sturgeon_stub.ml \
Expand All @@ -41,25 +41,29 @@ SOURCES = \
src/utils/local_store.mli \
src/utils/misc.mli \
src/utils/misc.ml \
src/utils/sexp.mli \
src/utils/sexp.ml \
src/utils/file_cache.mli \
src/utils/file_cache.ml \
src/utils/logger.mli \
src/utils/logger.ml \
src/utils/ppxsetup.mli \
src/utils/ppxsetup.ml \
src/utils/identifiable.mli \
src/utils/identifiable.ml \
src/ocaml/support/identifiable.mli \
src/ocaml/support/identifiable.ml \
src/ocaml/support/tbl.mli \
src/ocaml/support/tbl.ml \
$(TYPER)/utils/warnings.mli \
$(TYPER)/utils/warnings.ml \
$(TYPER)/utils/config.mli \
$(TYPER)/utils/config.ml \
src/ocaml_aux/clflags.mli \
src/ocaml_aux/clflags.ml \
src/ocaml/support/clflags.mli \
src/ocaml/support/clflags.ml \
$(TYPER)/parsing/asttypes.mli \
$(TYPER)/parsing/location.mli \
$(TYPER)/parsing/location.ml \
src/ocaml_aux/location_aux.mli \
src/ocaml_aux/location_aux.ml \
src/ocaml/support/location_aux.mli \
src/ocaml/support/location_aux.ml \
$(TYPER)/parsing/attr_helper.mli \
$(TYPER)/parsing/attr_helper.ml \
$(TYPER)/parsing/parsetree.mli \
Expand All @@ -85,7 +89,7 @@ SOURCES = \
$(TYPER)/typing/ident.ml \
$(TYPER)/typing/path.mli \
$(TYPER)/typing/path.ml \
src/ocaml_aux/path_aux.ml \
src/ocaml/support/path_aux.ml \
$(TYPER)/typing/primitive.mli \
$(TYPER)/typing/primitive.ml \
$(TYPER)/typing/types.mli \
Expand All @@ -98,11 +102,9 @@ SOURCES = \
$(TYPER)/typing/predef.ml \
$(TYPER)/typing/datarepr.mli \
$(TYPER)/typing/datarepr.ml \
src/ocaml_aux/tbl.mli \
src/ocaml_aux/tbl.ml \
$(TYPER)/typing/subst.mli \
$(TYPER)/typing/subst.ml \
src/ocaml_aux/cmi_cache.ml \
src/ocaml/support/cmi_cache.ml \
$(TYPER)/utils/consistbl.ml \
$(TYPER)/utils/consistbl.mli \
$(TYPER)/typing/env.mli \
Expand All @@ -115,21 +117,15 @@ SOURCES = \
$(TYPER)/typing/printtyped.ml \
$(TYPER)/typing/untypeast.mli \
$(TYPER)/typing/untypeast.ml \
$(TYPER)/browse_node.mli \
$(TYPER)/browse_node.ml \
$(TYPER)/typing/typedtreeMap.mli \
$(TYPER)/typing/typedtreeMap.ml \
$(TYPER)/typing/tast_mapper.mli \
$(TYPER)/typing/tast_mapper.ml \
$(TYPER)/typing/cmt_format.mli \
$(TYPER)/typing/cmt_format.ml \
$(TYPER)/tail_analysis.mli \
$(TYPER)/tail_analysis.ml \
src/kernel/dot_merlin.mli \
src/kernel/dot_merlin.ml \
$(TYPER)/parsing/syntaxerr.mli \
$(TYPER)/parsing/syntaxerr.ml \
src/ocaml_aux/cmt_cache.ml \
src/ocaml/support/cmt_cache.ml \
$(TYPER)/typing/ctype.mli \
$(TYPER)/typing/ctype.ml \
$(TYPER)/typing/oprint.mli \
Expand All @@ -139,16 +135,18 @@ SOURCES = \
$(TYPER)/raw_compat.ml \
$(TYPER)/saved_parts.mli \
$(TYPER)/saved_parts.ml \
src/ocaml_aux/front_aux.mli \
src/ocaml_aux/front_aux.ml \
$(TYPER)/browse_raw.mli \
$(TYPER)/browse_raw.ml \
$(TYPER)/tail_analysis.mli \
$(TYPER)/tail_analysis.ml \
src/ocaml/support/msupport.mli \
src/ocaml/support/msupport.ml \
$(TYPER)/typing/printtyp.mli \
$(TYPER)/typing/printtyp.ml \
$(TYPER)/typing/includeclass.mli \
$(TYPER)/typing/includeclass.ml \
$(TYPER)/typing/includecore.mli \
$(TYPER)/typing/includecore.ml \
src/kernel/fake.mli \
src/kernel/fake.ml \
src/extend/extend_protocol.ml \
src/extend/extend_helper.mli \
src/extend/extend_helper.ml \
Expand All @@ -164,14 +162,18 @@ SOURCES = \
$(TYPER)/typing/stypes.ml \
$(TYPER)/typing/typetexp.mli \
$(TYPER)/typing/typetexp.ml \
$(TYPER)/typing/typedecl.mli \
$(TYPER)/typing/typedecl.ml \
$(TYPER)/typing/typecore.mli \
$(TYPER)/typing/typecore.ml \
$(TYPER)/typing/typedecl.mli \
$(TYPER)/typing/typedecl.ml \
$(TYPER)/typing/typeclass.mli \
$(TYPER)/typing/typeclass.ml \
$(TYPER)/typing/typemod.mli \
$(TYPER)/typing/typemod.ml \
src/ocaml/support/fake.mli \
src/ocaml/support/fake.ml \
src/ocaml/support/lexer_ident.mli \
src/ocaml/support/lexer_ident.ml \
$(TYPER)/parser_raw.mli \
$(TYPER)/parser_raw.ml \
$(TYPER)/lexer_raw.mli \
Expand All @@ -181,47 +183,42 @@ SOURCES = \
$(TYPER)/parser_recover.mli \
$(TYPER)/parser_recover.ml \
$(TYPER)/parser_explain.ml \
src/ocaml_aux/pparse.mli \
src/ocaml_aux/pparse.ml \
src/kernel/extension.mli \
src/kernel/extension.ml \
src/kernel/merlin_source.ml \
src/kernel/merlin_source.mli \
src/kernel/lexer_ident.mli \
src/kernel/lexer_ident.ml \
src/kernel/merlin_lexer.mli \
src/kernel/merlin_lexer.ml \
src/kernel/merlin_recover.mli \
src/kernel/merlin_recover.ml \
src/kernel/merlin_explain.ml \
src/kernel/merlin_parser.mli \
src/kernel/merlin_parser.ml \
src/kernel/merlin_reader.mli \
src/kernel/merlin_reader.ml \
$(TYPER)/raw_typer.mli \
$(TYPER)/raw_typer.ml \
src/kernel/merlin_browse.mli \
src/kernel/merlin_browse.ml \
src/kernel/merlin_typer.mli \
src/kernel/merlin_typer.ml \
src/frontend/main_args.mli \
src/frontend/main_args.ml \
src/kernel/merlin_project.ml \
src/kernel/merlin_project.mli \
src/kernel/merlin_buffer.ml \
src/kernel/merlin_buffer.mli \
src/kernel/merlin_lib.ml \
src/ocaml_aux/error_report.mli \
src/ocaml_aux/error_report.ml \
src/frontend/protocol.ml \
src/frontend/IO_json.mli \
src/frontend/IO_json.ml \
src/frontend/IO_sexp.mli \
src/frontend/IO_sexp.ml \
src/frontend/IO.mli \
src/frontend/IO.ml \
src/analysis/browseT.mli \
src/analysis/browseT.ml \
src/ocaml/support/pparse.mli \
src/ocaml/support/pparse.ml \
$(TYPER)/typer_raw.mli \
$(TYPER)/typer_raw.ml \
$(TYPER)/tast_helper.ml \
src/utils/marg.mli \
src/utils/marg.ml \
src/kernel/mconfig_dot.mli \
src/kernel/mconfig_dot.ml \
src/kernel/mconfig.mli \
src/kernel/mconfig.ml \
src/kernel/mocaml.mli \
src/kernel/mocaml.ml \
src/kernel/msource.mli \
src/kernel/msource.ml \
src/kernel/mreader_extend.mli \
src/kernel/mreader_extend.ml \
src/kernel/mreader_explain.ml \
src/kernel/mreader_lexer.mli \
src/kernel/mreader_lexer.ml \
src/kernel/mreader_recover.mli \
src/kernel/mreader_recover.ml \
src/kernel/mreader_parser.mli \
src/kernel/mreader_parser.ml \
src/kernel/mreader.mli \
src/kernel/mreader.ml \
src/kernel/mppx.mli \
src/kernel/mppx.ml \
src/kernel/mbrowse.mli \
src/kernel/mbrowse.ml \
src/kernel/mtyper.mli \
src/kernel/mtyper.ml \
src/analysis/browse_tree.mli \
src/analysis/browse_tree.ml \
src/analysis/browse_misc.ml \
src/analysis/type_utils.mli \
src/analysis/type_utils.ml \
Expand All @@ -237,15 +234,45 @@ SOURCES = \
src/analysis/outline.ml \
src/analysis/jump.mli \
src/analysis/jump.ml \
$(TYPER)/tast_helper.ml \
src/analysis/destruct.mli \
src/analysis/destruct.ml \
src/frontend/command.mli \
src/frontend/command.ml \
src/frontend/ocamlmerlin.ml
src/kernel/mpipeline.mli \
src/kernel/mpipeline.ml \
src/frontend/query_protocol.ml \
src/frontend/query_json.ml \
src/frontend/query_commands.mli \
src/frontend/query_commands.ml

SOURCES_OLD = \
src/frontend/old/old_IO.mli \
src/frontend/old/old_IO.ml \
src/frontend/old/old_command.mli \
src/frontend/old/old_command.ml \
src/frontend/old/old_protocol.ml \
src/frontend/old/old_merlin.ml

SOURCES_NEW = \
src/frontend/new/new_commands.mli \
src/frontend/new/new_commands.ml \
src/frontend/new/new_merlin.ml

PACKS = str findlib yojson unix $(MERLIN_STURGEON_PACKAGE)

ifeq ($(PROJECT),test)
RESULT = ocamlmerlin_test

SOURCES = $(SOURCES_LIB) \
src/frontend/test/ocamlmerlin_test.ml
else ifeq ($(PROJECT),newprotocol)

else
RESULT = ocamlmerlin$(MERLIN_OCAML_VERSION)$(RESULT_SUFFIX)

SOURCES = \
$(SOURCES_LIB) $(SOURCES_OLD) $(SOURCES_NEW) \
src/frontend/ocamlmerlin.ml
endif

ifeq "$(NATIVE)" "false"
ocamlmerlin $(RESULT): byte-code
else
Expand Down
10 changes: 5 additions & 5 deletions Makefile.preprocess
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SRC = src
TYPER = $(SRC)/ocaml
KERNEL = $(SRC)/kernel
TYPER = $(SRC)/ocaml/typer
SUPPORT = $(SRC)/ocaml/support

## Settings

Expand All @@ -18,8 +18,8 @@ LEXER_O = $(TYPER)/lexer_raw.ml

### Ident Lexer

ILEXER_I = $(KERNEL)/preprocess/lexer_ident.mll
ILEXER_O = $(KERNEL)/lexer_ident.ml
ILEXER_I = $(SUPPORT)/preprocess/lexer_ident.mll
ILEXER_O = $(SUPPORT)/lexer_ident.ml

### Derived files

Expand Down Expand Up @@ -51,7 +51,7 @@ $(GEN_EXPLAIN): $(GEN_EXPLAIN).ml
### Parser

MENHIR_FLAGS = --infer --inspection --table --cmly \
--ocamlc 'ocamlc.opt -I $(TYPER)/parsing -I $(SRC)/ocaml_aux -I $(KERNEL)'
--ocamlc 'ocamlc.opt -I $(TYPER)/parsing -I $(SRC)/ocaml_aux -I $(SUPPORT)'

$(PARSER_I): $(PARSER_I)p
gcc -E -x c -P $^ > $@
Expand Down
Loading

0 comments on commit d27a113

Please sign in to comment.