Brunobkr/llama.cpp_AlgMor24_github
ΩFFFΣLLIa • llama.cpp • AlgMor24 ██████╗ ███████╗███████╗███████╗██╗ ██╗ ██╗ █████╗ ██╔═══██╗██╔════╝██╔════╝██╔════╝██║ ██║ ██║██╔══██╗ ██║ ██║█████╗ █████╗ █████╗ ██║ ██║ ██║███████║ ██║ ██║██╔══╝ ██╔══╝ ██╔══╝ ██║ ██║ ██║██╔══██║ ╚██████╔╝██║ ██║ ███████╗███████╗███████╗██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ High-Performance LLM / VLM Inference & Autonomous Agentic Ecosystem… See the full description on the dataset page: https://huggingface.co/datasets/Brunobkr/llama.cpp_AlgMor24_github.
03.1k
1/*2 * Jake JavaScript build tool3 * Copyright 2112 Matthew Eernisse (mde@fleegix.org)4 *5 * Licensed under the Apache License, Version 2.0 (the "License");6 * you may not use this file except in compliance with the License.7 * You may obtain a copy of the License at8 *9 * http://www.apache.org/licenses/LICENSE-2.010 *11 * Unless required by applicable law or agreed to in writing, software12 * distributed under the License is distributed on an "AS IS" BASIS,13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14 * See the License for the specific language governing permissions and15 * limitations under the License.16 *17*/18 19if (!global.jake) {20 21 let EventEmitter = require('events').EventEmitter;22 // And so it begins23 global.jake = new EventEmitter();24 25 let fs = require('fs');26 let pc = require('picocolors');27 let taskNs = require('./task');28 let Task = taskNs.Task;29 let FileTask = taskNs.FileTask;30 let DirectoryTask = taskNs.DirectoryTask;31 let Rule = require('./rule').Rule;32 let Namespace = require('./namespace').Namespace;33 let RootNamespace = require('./namespace').RootNamespace;34 let api = require('./api');35 let utils = require('./utils');36 let Program = require('./program').Program;37 let loader = require('./loader')();38 let pkg = JSON.parse(fs.readFileSync(__dirname + '/../package.json').toString());39 40 const MAX_RULE_RECURSION_LEVEL = 16;41 42 // Globalize jake and top-level API methods (e.g., `task`, `desc`)43 Object.assign(global, api);44 45 // Copy utils onto base jake46 jake.logger = utils.logger;47 jake.exec = utils.exec;48 49 // File utils should be aliased directly on base jake as well50 Object.assign(jake, utils.file);51 52 // Also add top-level API methods to exported object for those who don't want to53 // use the globals (`file` here will overwrite the 'file' utils namespace)54 Object.assign(jake, api);55 56 Object.assign(jake, new (function () {57 58 this._invocationChain = [];59 this._taskTimeout = 30000;60 61 // Public properties62 // =================63 this.version = pkg.version;64 // Used when Jake exits with a specific error-code65 this.errorCode = null;66 // Loads Jakefiles/jakelibdirs67 this.loader = loader;68 // The root of all ... namespaces69 this.rootNamespace = new RootNamespace();70 // Non-namespaced tasks are placed into the default71 this.defaultNamespace = this.rootNamespace;72 // Start in the default73 this.currentNamespace = this.defaultNamespace;74 // Saves the description created by a 'desc' call that prefaces a75 // 'task' call that defines a task.76 this.currentTaskDescription = null;77 this.program = new Program();78 this.FileList = require('filelist').FileList;79 this.PackageTask = require('./package_task').PackageTask;80 this.PublishTask = require('./publish_task').PublishTask;81 this.TestTask = require('./test_task').TestTask;82 this.Task = Task;83 this.FileTask = FileTask;84 this.DirectoryTask = DirectoryTask;85 this.Namespace = Namespace;86 this.Rule = Rule;87 88 this.parseAllTasks = function () {89 let _parseNs = function (ns) {90 let nsTasks = ns.tasks;91 let nsNamespaces = ns.childNamespaces;92 for (let q in nsTasks) {93 let nsTask = nsTasks[q];94 jake.Task[nsTask.fullName] = nsTask;95 }96 for (let p in nsNamespaces) {97 let nsNamespace = nsNamespaces[p];98 _parseNs(nsNamespace);99 }100 };101 _parseNs(jake.defaultNamespace);102 };103 104 /**105 * Displays the list of descriptions available for tasks defined in106 * a Jakefile107 */108 this.showAllTaskDescriptions = function (f) {109 let p;110 let maxTaskNameLength = 0;111 let task;112 let padding;113 let name;114 let descr;115 let filter = typeof f == 'string' ? f : null;116 let taskParams;117 let len;118 119 for (p in jake.Task) {120 if (!Object.prototype.hasOwnProperty.call(jake.Task, p)) {121 continue;122 }123 if (filter && p.indexOf(filter) == -1) {124 continue;125 }126 task = jake.Task[p];127 taskParams = task.params;128 129 // Record the length of the longest task name -- used for130 // pretty alignment of the task descriptions131 if (task.description) {132 len = p.length + taskParams.length;133 maxTaskNameLength = len > maxTaskNameLength ?134 len : maxTaskNameLength;135 }136 }137 138 // Print out each entry with descriptions neatly aligned139 for (p in jake.Task) {140 if (!Object.prototype.hasOwnProperty.call(jake.Task, p)) {141 continue;142 }143 if (filter && p.indexOf(filter) == -1) {144 continue;145 }146 task = jake.Task[p];147 148 taskParams = "";149 if (task.params != "") {150 taskParams = "[" + task.params + "]";151 }152 153 //name = '\033[32m' + p + '\033[39m ';154 name = pc.green(p);155 156 descr = task.description;157 if (descr) {158 descr = pc.gray('# ' + descr);159 160 // Create padding-string with calculated length161 padding = ' '.repeat(maxTaskNameLength - p.length - taskParams.length + 4);162 163 console.log('jake ' + name + taskParams + padding + descr);164 }165 }166 };167 168 this.createTask = function () {169 let args = Array.prototype.slice.call(arguments);170 let arg;171 let obj;172 let task;173 let type;174 let name;175 let action;176 let opts = {};177 let prereqs = [];178 179 type = args.shift();180 181 // name, [deps], [action]182 // Name (string) + deps (array) format183 if (typeof args[0] == 'string') {184 name = args.shift();185 if (Array.isArray(args[0])) {186 prereqs = args.shift();187 }188 }189 // name:deps, [action]190 // Legacy object-literal syntax, e.g.: {'name': ['depA', 'depB']}191 else {192 obj = args.shift();193 for (let p in obj) {194 prereqs = prereqs.concat(obj[p]);195 name = p;196 }197 }198 199 // Optional opts/callback or callback/opts200 while ((arg = args.shift())) {201 if (typeof arg == 'function') {202 action = arg;203 }204 else {205 opts = Object.assign(Object.create(null), arg);206 }207 }208 209 task = jake.currentNamespace.resolveTask(name);210 if (task && !action) {211 // Task already exists and no action, just update prereqs, and return it.212 task.prereqs = task.prereqs.concat(prereqs);213 return task;214 }215 216 switch (type) {217 case 'directory':218 action = function action() {219 jake.mkdirP(name);220 };221 task = new DirectoryTask(name, prereqs, action, opts);222 break;223 case 'file':224 task = new FileTask(name, prereqs, action, opts);225 break;226 default:227 task = new Task(name, prereqs, action, opts);228 }229 230 jake.currentNamespace.addTask(task);231 232 if (jake.currentTaskDescription) {233 task.description = jake.currentTaskDescription;234 jake.currentTaskDescription = null;235 }236 237 // FIXME: Should only need to add a new entry for the current238 // task-definition, not reparse the entire structure239 jake.parseAllTasks();240 241 return task;242 };243 244 this.attemptRule = function (name, ns, level) {245 let prereqRule;246 let prereq;247 if (level > MAX_RULE_RECURSION_LEVEL) {248 return null;249 }250 // Check Rule251 prereqRule = ns.matchRule(name);252 if (prereqRule) {253 prereq = prereqRule.createTask(name, level);254 }255 return prereq || null;256 };257 258 this.createPlaceholderFileTask = function (name, namespace) {259 let parsed = name.split(':');260 let filePath = parsed.pop(); // Strip any namespace261 let task;262 263 task = namespace.resolveTask(name);264 265 // If there's not already an existing dummy FileTask for it,266 // create one267 if (!task) {268 // Create a dummy FileTask only if file actually exists269 if (fs.existsSync(filePath)) {270 task = new jake.FileTask(filePath);271 task.dummy = true;272 let ns;273 if (parsed.length) {274 ns = namespace.resolveNamespace(parsed.join(':'));275 }276 else {277 ns = namespace;278 }279 if (!namespace) {280 throw new Error('Invalid namespace, cannot add FileTask');281 }282 ns.addTask(task);283 // Put this dummy Task in the global Tasks list so284 // modTime will be eval'd correctly285 jake.Task[`${ns.path}:${filePath}`] = task;286 }287 }288 289 return task || null;290 };291 292 293 this.run = function () {294 let args = Array.prototype.slice.call(arguments);295 let program = this.program;296 let loader = this.loader;297 let preempt;298 let opts;299 300 program.parseArgs(args);301 program.init();302 303 preempt = program.firstPreemptiveOption();304 if (preempt) {305 preempt();306 }307 else {308 opts = program.opts;309 // jakefile flag set but no jakefile yet310 if (opts.autocomplete && opts.jakefile === true) {311 process.stdout.write('no-complete');312 return;313 }314 // Load Jakefile and jakelibdir files315 let jakefileLoaded = loader.loadFile(opts.jakefile);316 let jakelibdirLoaded = loader.loadDirectory(opts.jakelibdir);317 318 if(!jakefileLoaded && !jakelibdirLoaded && !opts.autocomplete) {319 fail('No Jakefile. Specify a valid path with -f/--jakefile, ' +320 'or place one in the current directory.');321 }322 323 program.run();324 }325 };326 327 })());328}329 330module.exports = jake;331 