Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion hook/build.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import 'package:path/path.dart' as path;

import 'package:llamadart/src/hook/native_bundle_config.dart';

const _llamaCppTag = 'b8480';
const _llamaCppTag = 'b8533';
const _nativeRepoSlug = 'leehack/llamadart-native';
const _baseUrl =
'https://github.com/$_nativeRepoSlug/releases/download/$_llamaCppTag';
Expand Down
180 changes: 94 additions & 86 deletions lib/src/backends/llama_cpp/bindings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,14 @@ external ffi.Pointer<llama_model> llama_model_load_from_file(
llama_model_params params,
);

@ffi.Native<
ffi.Pointer<llama_model> Function(ffi.Pointer<FILE>, llama_model_params)
>()
external ffi.Pointer<llama_model> llama_model_load_from_file_ptr(
ffi.Pointer<FILE> file,
llama_model_params params,
);

@ffi.Native<
ffi.Pointer<llama_model> Function(
ffi.Pointer<ffi.Pointer<ffi.Char>>,
Expand Down Expand Up @@ -8646,6 +8654,92 @@ typedef llama_model_set_tensor_data_t =

final class gguf_context extends ffi.Opaque {}

final class _IO_marker extends ffi.Opaque {}

typedef __off_t = ffi.Long;
typedef Dart__off_t = int;
typedef _IO_lock_t = ffi.Void;
typedef Dart_IO_lock_t = void;
typedef __off64_t = ffi.Long;
typedef Dart__off64_t = int;

final class _IO_codecvt extends ffi.Opaque {}

final class _IO_wide_data extends ffi.Opaque {}

final class _IO_FILE extends ffi.Struct {
@ffi.Int()
external int _flags;

external ffi.Pointer<ffi.Char> _IO_read_ptr;

external ffi.Pointer<ffi.Char> _IO_read_end;

external ffi.Pointer<ffi.Char> _IO_read_base;

external ffi.Pointer<ffi.Char> _IO_write_base;

external ffi.Pointer<ffi.Char> _IO_write_ptr;

external ffi.Pointer<ffi.Char> _IO_write_end;

external ffi.Pointer<ffi.Char> _IO_buf_base;

external ffi.Pointer<ffi.Char> _IO_buf_end;

external ffi.Pointer<ffi.Char> _IO_save_base;

external ffi.Pointer<ffi.Char> _IO_backup_base;

external ffi.Pointer<ffi.Char> _IO_save_end;

external ffi.Pointer<_IO_marker> _markers;

external ffi.Pointer<_IO_FILE> _chain;

@ffi.Int()
external int _fileno;

@ffi.Int()
external int _flags2;

@__off_t()
external int _old_offset;

@ffi.UnsignedShort()
external int _cur_column;

@ffi.SignedChar()
external int _vtable_offset;

@ffi.Array.multi([1])
external ffi.Array<ffi.Char> _shortbuf;

external ffi.Pointer<_IO_lock_t> _lock;

@__off64_t()
external int _offset;

external ffi.Pointer<_IO_codecvt> _codecvt;

external ffi.Pointer<_IO_wide_data> _wide_data;

external ffi.Pointer<_IO_FILE> _freeres_list;

external ffi.Pointer<ffi.Void> _freeres_buf;

@ffi.Size()
external int __pad5;

@ffi.Int()
external int _mode;

@ffi.Array.multi([20])
external ffi.Array<ffi.Char> _unused2;
}

typedef FILE = _IO_FILE;

enum llama_params_fit_status {
LLAMA_PARAMS_FIT_STATUS_SUCCESS(0),
LLAMA_PARAMS_FIT_STATUS_FAILURE(1),
Expand Down Expand Up @@ -9110,92 +9204,6 @@ final class ggml_init_params extends ffi.Struct {

typedef ggml_guid_t = ffi.Pointer<ffi.Pointer<ffi.Uint8>>;

final class _IO_marker extends ffi.Opaque {}

typedef __off_t = ffi.Long;
typedef Dart__off_t = int;
typedef _IO_lock_t = ffi.Void;
typedef Dart_IO_lock_t = void;
typedef __off64_t = ffi.Long;
typedef Dart__off64_t = int;

final class _IO_codecvt extends ffi.Opaque {}

final class _IO_wide_data extends ffi.Opaque {}

final class _IO_FILE extends ffi.Struct {
@ffi.Int()
external int _flags;

external ffi.Pointer<ffi.Char> _IO_read_ptr;

external ffi.Pointer<ffi.Char> _IO_read_end;

external ffi.Pointer<ffi.Char> _IO_read_base;

external ffi.Pointer<ffi.Char> _IO_write_base;

external ffi.Pointer<ffi.Char> _IO_write_ptr;

external ffi.Pointer<ffi.Char> _IO_write_end;

external ffi.Pointer<ffi.Char> _IO_buf_base;

external ffi.Pointer<ffi.Char> _IO_buf_end;

external ffi.Pointer<ffi.Char> _IO_save_base;

external ffi.Pointer<ffi.Char> _IO_backup_base;

external ffi.Pointer<ffi.Char> _IO_save_end;

external ffi.Pointer<_IO_marker> _markers;

external ffi.Pointer<_IO_FILE> _chain;

@ffi.Int()
external int _fileno;

@ffi.Int()
external int _flags2;

@__off_t()
external int _old_offset;

@ffi.UnsignedShort()
external int _cur_column;

@ffi.SignedChar()
external int _vtable_offset;

@ffi.Array.multi([1])
external ffi.Array<ffi.Char> _shortbuf;

external ffi.Pointer<_IO_lock_t> _lock;

@__off64_t()
external int _offset;

external ffi.Pointer<_IO_codecvt> _codecvt;

external ffi.Pointer<_IO_wide_data> _wide_data;

external ffi.Pointer<_IO_FILE> _freeres_list;

external ffi.Pointer<ffi.Void> _freeres_buf;

@ffi.Size()
external int __pad5;

@ffi.Int()
external int _mode;

@ffi.Array.multi([20])
external ffi.Array<ffi.Char> _unused2;
}

typedef FILE = _IO_FILE;

enum ggml_op_pool {
GGML_OP_POOL_MAX(0),
GGML_OP_POOL_AVG(1),
Expand Down