mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2025-07-18 17:32:00 +00:00
Establish basic compiler warnings, and fix a few style issues (#3039)
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
This commit is contained in:
parent
3165e1d5a9
commit
8e3108fe1f
44
common/common.cmake
Normal file
44
common/common.cmake
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
function(gpt4all_add_warning_options target)
|
||||||
|
if (MSVC)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
target_compile_options("${target}" PRIVATE
|
||||||
|
# base options
|
||||||
|
-Wall
|
||||||
|
-Wextra
|
||||||
|
# extra options
|
||||||
|
-Wcast-align
|
||||||
|
-Wextra-semi
|
||||||
|
-Wformat=2
|
||||||
|
-Wmissing-include-dirs
|
||||||
|
-Wnull-dereference
|
||||||
|
-Wstrict-overflow=2
|
||||||
|
-Wvla
|
||||||
|
# errors
|
||||||
|
-Werror=format-security
|
||||||
|
-Werror=init-self
|
||||||
|
-Werror=pointer-arith
|
||||||
|
-Werror=undef
|
||||||
|
# disabled warnings
|
||||||
|
-Wno-sign-compare
|
||||||
|
-Wno-unused-parameter
|
||||||
|
-Wno-unused-function
|
||||||
|
-Wno-unused-variable
|
||||||
|
)
|
||||||
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
|
target_compile_options("${target}" PRIVATE
|
||||||
|
-Wduplicated-branches
|
||||||
|
-Wduplicated-cond
|
||||||
|
-Wlogical-op
|
||||||
|
-Wno-reorder
|
||||||
|
-Wno-null-dereference
|
||||||
|
)
|
||||||
|
elseif (CMAKE_CXX_COMPILER_ID MATCHES "^(Apple)?Clang$")
|
||||||
|
target_compile_options("${target}" PRIVATE
|
||||||
|
-Wunreachable-code-break
|
||||||
|
-Wunreachable-code-return
|
||||||
|
-Werror=pointer-integer-compare
|
||||||
|
-Wno-reorder-ctor
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
@ -1,4 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.23) # for FILE_SET
|
cmake_minimum_required(VERSION 3.23) # for FILE_SET
|
||||||
|
|
||||||
|
include(../common/common.cmake)
|
||||||
|
|
||||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
@ -94,8 +97,6 @@ if (LLMODEL_ROCM)
|
|||||||
list(APPEND BUILD_VARIANTS rocm rocm-avxonly)
|
list(APPEND BUILD_VARIANTS rocm rocm-avxonly)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
||||||
|
|
||||||
# Go through each build variant
|
# Go through each build variant
|
||||||
foreach(BUILD_VARIANT IN LISTS BUILD_VARIANTS)
|
foreach(BUILD_VARIANT IN LISTS BUILD_VARIANTS)
|
||||||
# Determine flags
|
# Determine flags
|
||||||
@ -151,6 +152,7 @@ foreach(BUILD_VARIANT IN LISTS BUILD_VARIANTS)
|
|||||||
# Add each individual implementations
|
# Add each individual implementations
|
||||||
add_library(llamamodel-mainline-${BUILD_VARIANT} SHARED
|
add_library(llamamodel-mainline-${BUILD_VARIANT} SHARED
|
||||||
src/llamamodel.cpp src/llmodel_shared.cpp)
|
src/llamamodel.cpp src/llmodel_shared.cpp)
|
||||||
|
gpt4all_add_warning_options(llamamodel-mainline-${BUILD_VARIANT})
|
||||||
target_compile_definitions(llamamodel-mainline-${BUILD_VARIANT} PRIVATE
|
target_compile_definitions(llamamodel-mainline-${BUILD_VARIANT} PRIVATE
|
||||||
LLAMA_VERSIONS=>=3 LLAMA_DATE=999999)
|
LLAMA_VERSIONS=>=3 LLAMA_DATE=999999)
|
||||||
target_include_directories(llamamodel-mainline-${BUILD_VARIANT} PRIVATE
|
target_include_directories(llamamodel-mainline-${BUILD_VARIANT} PRIVATE
|
||||||
@ -169,6 +171,7 @@ add_library(llmodel
|
|||||||
src/llmodel_c.cpp
|
src/llmodel_c.cpp
|
||||||
src/llmodel_shared.cpp
|
src/llmodel_shared.cpp
|
||||||
)
|
)
|
||||||
|
gpt4all_add_warning_options(llmodel)
|
||||||
target_sources(llmodel PUBLIC
|
target_sources(llmodel PUBLIC
|
||||||
FILE_SET public_headers TYPE HEADERS BASE_DIRS include
|
FILE_SET public_headers TYPE HEADERS BASE_DIRS include
|
||||||
FILES include/gpt4all-backend/llmodel.h
|
FILES include/gpt4all-backend/llmodel.h
|
||||||
|
@ -146,7 +146,7 @@ public:
|
|||||||
virtual bool supportsEmbedding() const = 0;
|
virtual bool supportsEmbedding() const = 0;
|
||||||
virtual bool supportsCompletion() const = 0;
|
virtual bool supportsCompletion() const = 0;
|
||||||
virtual bool loadModel(const std::string &modelPath, int n_ctx, int ngl) = 0;
|
virtual bool loadModel(const std::string &modelPath, int n_ctx, int ngl) = 0;
|
||||||
virtual bool isModelBlacklisted(const std::string &modelPath) const { (void)modelPath; return false; };
|
virtual bool isModelBlacklisted(const std::string &modelPath) const { (void)modelPath; return false; }
|
||||||
virtual bool isEmbeddingModel(const std::string &modelPath) const { (void)modelPath; return false; }
|
virtual bool isEmbeddingModel(const std::string &modelPath) const { (void)modelPath; return false; }
|
||||||
virtual bool isModelLoaded() const = 0;
|
virtual bool isModelLoaded() const = 0;
|
||||||
virtual size_t requiredMem(const std::string &modelPath, int n_ctx, int ngl) = 0;
|
virtual size_t requiredMem(const std::string &modelPath, int n_ctx, int ngl) = 0;
|
||||||
|
@ -260,7 +260,7 @@ void LLModel::generateResponse(std::function<bool(int32_t, const std::string&)>
|
|||||||
cachedTokens.push_back(new_tok.value());
|
cachedTokens.push_back(new_tok.value());
|
||||||
cachedResponse += new_piece;
|
cachedResponse += new_piece;
|
||||||
|
|
||||||
auto accept = [this, &promptCtx, &cachedTokens, &new_tok, allowContextShift]() -> bool {
|
auto accept = [this, &promptCtx, &new_tok, allowContextShift]() -> bool {
|
||||||
// Shift context if out of space
|
// Shift context if out of space
|
||||||
if (promptCtx.n_past >= promptCtx.n_ctx) {
|
if (promptCtx.n_past >= promptCtx.n_ctx) {
|
||||||
(void)allowContextShift;
|
(void)allowContextShift;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.25) # for try_compile SOURCE_FROM_VAR
|
cmake_minimum_required(VERSION 3.25) # for try_compile SOURCE_FROM_VAR
|
||||||
|
|
||||||
|
include(../common/common.cmake)
|
||||||
|
|
||||||
set(APP_VERSION_MAJOR 3)
|
set(APP_VERSION_MAJOR 3)
|
||||||
set(APP_VERSION_MINOR 4)
|
set(APP_VERSION_MINOR 4)
|
||||||
set(APP_VERSION_PATCH 1)
|
set(APP_VERSION_PATCH 1)
|
||||||
@ -157,6 +159,7 @@ qt_add_executable(chat
|
|||||||
src/xlsxtomd.cpp src/xlsxtomd.h
|
src/xlsxtomd.cpp src/xlsxtomd.h
|
||||||
${CHAT_EXE_RESOURCES}
|
${CHAT_EXE_RESOURCES}
|
||||||
)
|
)
|
||||||
|
gpt4all_add_warning_options(chat)
|
||||||
|
|
||||||
qt_add_qml_module(chat
|
qt_add_qml_module(chat
|
||||||
URI gpt4all
|
URI gpt4all
|
||||||
|
@ -33,7 +33,7 @@ class Chat : public QObject
|
|||||||
Q_PROPERTY(ResponseState responseState READ responseState NOTIFY responseStateChanged)
|
Q_PROPERTY(ResponseState responseState READ responseState NOTIFY responseStateChanged)
|
||||||
Q_PROPERTY(QList<QString> collectionList READ collectionList NOTIFY collectionListChanged)
|
Q_PROPERTY(QList<QString> collectionList READ collectionList NOTIFY collectionListChanged)
|
||||||
Q_PROPERTY(QString modelLoadingError READ modelLoadingError NOTIFY modelLoadingErrorChanged)
|
Q_PROPERTY(QString modelLoadingError READ modelLoadingError NOTIFY modelLoadingErrorChanged)
|
||||||
Q_PROPERTY(QString tokenSpeed READ tokenSpeed NOTIFY tokenSpeedChanged);
|
Q_PROPERTY(QString tokenSpeed READ tokenSpeed NOTIFY tokenSpeedChanged)
|
||||||
Q_PROPERTY(QString deviceBackend READ deviceBackend NOTIFY loadedModelInfoChanged)
|
Q_PROPERTY(QString deviceBackend READ deviceBackend NOTIFY loadedModelInfoChanged)
|
||||||
Q_PROPERTY(QString device READ device NOTIFY loadedModelInfoChanged)
|
Q_PROPERTY(QString device READ device NOTIFY loadedModelInfoChanged)
|
||||||
Q_PROPERTY(QString fallbackReason READ fallbackReason NOTIFY loadedModelInfoChanged)
|
Q_PROPERTY(QString fallbackReason READ fallbackReason NOTIFY loadedModelInfoChanged)
|
||||||
|
@ -585,7 +585,7 @@ bool ChatLLM::loadNewModel(const ModelInfo &modelInfo, QVariantMap &modelLoadPro
|
|||||||
|
|
||||||
modelLoadProps.insert("$duration", modelLoadTimer.elapsed() / 1000.);
|
modelLoadProps.insert("$duration", modelLoadTimer.elapsed() / 1000.);
|
||||||
return true;
|
return true;
|
||||||
};
|
}
|
||||||
|
|
||||||
bool ChatLLM::isModelLoaded() const
|
bool ChatLLM::isModelLoaded() const
|
||||||
{
|
{
|
||||||
|
@ -65,8 +65,8 @@ struct ChatItem
|
|||||||
Q_PROPERTY(bool thumbsDownState MEMBER thumbsDownState)
|
Q_PROPERTY(bool thumbsDownState MEMBER thumbsDownState)
|
||||||
Q_PROPERTY(QList<ResultInfo> sources MEMBER sources)
|
Q_PROPERTY(QList<ResultInfo> sources MEMBER sources)
|
||||||
Q_PROPERTY(QList<ResultInfo> consolidatedSources MEMBER consolidatedSources)
|
Q_PROPERTY(QList<ResultInfo> consolidatedSources MEMBER consolidatedSources)
|
||||||
Q_PROPERTY(QList<PromptAttachment> promptAttachments MEMBER promptAttachments);
|
Q_PROPERTY(QList<PromptAttachment> promptAttachments MEMBER promptAttachments)
|
||||||
Q_PROPERTY(QString promptPlusAttachments READ promptPlusAttachments);
|
Q_PROPERTY(QString promptPlusAttachments READ promptPlusAttachments)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QString promptPlusAttachments() const
|
QString promptPlusAttachments() const
|
||||||
|
@ -296,8 +296,10 @@ static bool selectAllUncompletedChunks(QSqlQuery &q, QHash<IncompleteChunk, QStr
|
|||||||
while (q.next()) {
|
while (q.next()) {
|
||||||
QString collection = q.value(0).toString();
|
QString collection = q.value(0).toString();
|
||||||
IncompleteChunk ic {
|
IncompleteChunk ic {
|
||||||
/*embedding_model =*/ q.value(1).toString(),
|
/*EmbeddingKey*/ {
|
||||||
/*chunk_id =*/ q.value(2).toInt(),
|
.embedding_model = q.value(1).toString(),
|
||||||
|
.chunk_id = q.value(2).toInt(),
|
||||||
|
},
|
||||||
/*folder_id =*/ q.value(3).toInt(),
|
/*folder_id =*/ q.value(3).toInt(),
|
||||||
/*text =*/ q.value(4).toString(),
|
/*text =*/ q.value(4).toString(),
|
||||||
};
|
};
|
||||||
@ -1659,7 +1661,7 @@ void Database::scanQueue()
|
|||||||
if (info.isPdf()) {
|
if (info.isPdf()) {
|
||||||
QPdfDocument doc;
|
QPdfDocument doc;
|
||||||
if (doc.load(document_path) != QPdfDocument::Error::None) {
|
if (doc.load(document_path) != QPdfDocument::Error::None) {
|
||||||
qWarning() << "ERROR: Could not load pdf" << document_id << document_path;;
|
qWarning() << "ERROR: Could not load pdf" << document_id << document_path;
|
||||||
return updateFolderToIndex(folder_id, countForFolder);
|
return updateFolderToIndex(folder_id, countForFolder);
|
||||||
}
|
}
|
||||||
title = doc.metaData(QPdfDocument::MetaDataField::Title).toString();
|
title = doc.metaData(QPdfDocument::MetaDataField::Title).toString();
|
||||||
|
@ -176,7 +176,6 @@ private:
|
|||||||
QString m_author;
|
QString m_author;
|
||||||
QString m_subject;
|
QString m_subject;
|
||||||
QString m_keywords;
|
QString m_keywords;
|
||||||
bool m_atStart;
|
|
||||||
|
|
||||||
// working state
|
// working state
|
||||||
QString m_chunk; // has a trailing space for convenience
|
QString m_chunk; // has a trailing space for convenience
|
||||||
|
@ -504,7 +504,7 @@ ModelList::ModelList()
|
|||||||
connect(MySettings::globalInstance(), &MySettings::contextLengthChanged, this, &ModelList::updateDataForSettings);
|
connect(MySettings::globalInstance(), &MySettings::contextLengthChanged, this, &ModelList::updateDataForSettings);
|
||||||
connect(MySettings::globalInstance(), &MySettings::gpuLayersChanged, this, &ModelList::updateDataForSettings);
|
connect(MySettings::globalInstance(), &MySettings::gpuLayersChanged, this, &ModelList::updateDataForSettings);
|
||||||
connect(MySettings::globalInstance(), &MySettings::repeatPenaltyChanged, this, &ModelList::updateDataForSettings);
|
connect(MySettings::globalInstance(), &MySettings::repeatPenaltyChanged, this, &ModelList::updateDataForSettings);
|
||||||
connect(MySettings::globalInstance(), &MySettings::repeatPenaltyTokensChanged, this, &ModelList::updateDataForSettings);;
|
connect(MySettings::globalInstance(), &MySettings::repeatPenaltyTokensChanged, this, &ModelList::updateDataForSettings);
|
||||||
connect(MySettings::globalInstance(), &MySettings::promptTemplateChanged, this, &ModelList::updateDataForSettings);
|
connect(MySettings::globalInstance(), &MySettings::promptTemplateChanged, this, &ModelList::updateDataForSettings);
|
||||||
connect(MySettings::globalInstance(), &MySettings::systemPromptChanged, this, &ModelList::updateDataForSettings);
|
connect(MySettings::globalInstance(), &MySettings::systemPromptChanged, this, &ModelList::updateDataForSettings);
|
||||||
connect(&m_networkManager, &QNetworkAccessManager::sslErrors, this, &ModelList::handleSslErrors);
|
connect(&m_networkManager, &QNetworkAccessManager::sslErrors, this, &ModelList::handleSslErrors);
|
||||||
@ -520,12 +520,12 @@ QString ModelList::compatibleModelNameHash(QUrl baseUrl, QString modelName) {
|
|||||||
QCryptographicHash sha256(QCryptographicHash::Sha256);
|
QCryptographicHash sha256(QCryptographicHash::Sha256);
|
||||||
sha256.addData((baseUrl.toString() + "_" + modelName).toUtf8());
|
sha256.addData((baseUrl.toString() + "_" + modelName).toUtf8());
|
||||||
return sha256.result().toHex();
|
return sha256.result().toHex();
|
||||||
};
|
}
|
||||||
|
|
||||||
QString ModelList::compatibleModelFilename(QUrl baseUrl, QString modelName) {
|
QString ModelList::compatibleModelFilename(QUrl baseUrl, QString modelName) {
|
||||||
QString hash(compatibleModelNameHash(baseUrl, modelName));
|
QString hash(compatibleModelNameHash(baseUrl, modelName));
|
||||||
return QString(u"gpt4all-%1-capi.rmodel"_s).arg(hash);
|
return QString(u"gpt4all-%1-capi.rmodel"_s).arg(hash);
|
||||||
};
|
}
|
||||||
|
|
||||||
bool ModelList::eventFilter(QObject *obj, QEvent *ev)
|
bool ModelList::eventFilter(QObject *obj, QEvent *ev)
|
||||||
{
|
{
|
||||||
@ -2103,7 +2103,7 @@ void ModelList::parseDiscoveryJsonFile(const QByteArray &jsonData)
|
|||||||
emit discoverProgressChanged();
|
emit discoverProgressChanged();
|
||||||
if (!m_discoverNumberOfResults) {
|
if (!m_discoverNumberOfResults) {
|
||||||
m_discoverInProgress = false;
|
m_discoverInProgress = false;
|
||||||
emit discoverInProgressChanged();;
|
emit discoverInProgressChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2180,7 +2180,7 @@ void ModelList::handleDiscoveryItemFinished()
|
|||||||
|
|
||||||
if (discoverProgress() >= 1.0) {
|
if (discoverProgress() >= 1.0) {
|
||||||
m_discoverInProgress = false;
|
m_discoverInProgress = false;
|
||||||
emit discoverInProgressChanged();;
|
emit discoverInProgressChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
|
@ -186,7 +186,7 @@ void MySettings::restoreModelDefaults(const ModelInfo &info)
|
|||||||
setModelTemperature(info, info.m_temperature);
|
setModelTemperature(info, info.m_temperature);
|
||||||
setModelTopP(info, info.m_topP);
|
setModelTopP(info, info.m_topP);
|
||||||
setModelMinP(info, info.m_minP);
|
setModelMinP(info, info.m_minP);
|
||||||
setModelTopK(info, info.m_topK);;
|
setModelTopK(info, info.m_topK);
|
||||||
setModelMaxLength(info, info.m_maxLength);
|
setModelMaxLength(info, info.m_maxLength);
|
||||||
setModelPromptBatchSize(info, info.m_promptBatchSize);
|
setModelPromptBatchSize(info, info.m_promptBatchSize);
|
||||||
setModelContextLength(info, info.m_contextLength);
|
setModelContextLength(info, info.m_contextLength);
|
||||||
|
Loading…
Reference in New Issue
Block a user