{"id":16040277,"url":"https://github.com/oleks/funtask","last_synced_at":"2025-04-05T06:14:33.576Z","repository":{"id":140737369,"uuid":"58029848","full_name":"oleks/FunTask","owner":"oleks","description":"FunTask — Functional Programming with Tasks","archived":false,"fork":false,"pushed_at":"2016-10-25T12:43:03.000Z","size":42,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-10T13:44:10.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oleks.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-04T06:55:42.000Z","updated_at":"2016-10-25T09:52:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb785033-edad-4207-afa7-8f37c0a57734","html_url":"https://github.com/oleks/FunTask","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleks%2FFunTask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleks%2FFunTask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleks%2FFunTask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleks%2FFunTask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oleks","download_url":"https://codeload.github.com/oleks/FunTask/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294570,"owners_count":20915341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T23:10:03.441Z","updated_at":"2025-04-05T06:14:33.564Z","avatar_url":"https://github.com/oleks.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+TITLE: Functional Programming with Tasks\n\nFunTask is a typed, functional command language, intended as an alternative to\ncontemporary, imperative shells.\n\nFunTask draws on ideas from functional programming, to provide a cleaner\nprogramming experience, while retaining a natural command-line interface,\nsimilar to established shells. Although \"functional programming\" may sound\nesoteric, FunTask comes with few changes to fundamental command execution.\nChanges are bound to control structures and interprocess communication.\n\nFunTask revolves around the notion of an operating system \"task\". Classically,\na task is either a thread or a process, depending on the extent to which the\ntask shares system resources with other tasks on the system. The Linux kernel\ntakes this a step further, and allows varying levels of system resource\nsharing.\n\nMany kernel security features rely on the notion of a thread, process, or task.\nFor instance, a task may irrevocably decrease the resource limits for itself\nand its children, irrevocably enter a so-called process control group,\ntemporarily gain capabilities without these capabilities being inheritable by\nthe task's children, etc.\n\nTo make dealing with tasks easier, FunTask is not just an interpreter, but also\na compiler. FunTask compiles scripts to fit the operating system task model and\ngain a range of execution environment features (e.g., wrt. security) by merely\nleveraging the operating system.\n\n[[https://raw.githubusercontent.com/oleks/FunTask/master/LICENSE][https://img.shields.io/badge/license-BSD3-blue.svg]]\n\n** Installation\n\n#+BEGIN_SRC sh\nstack setup\nstack build\nstack install\n#+END_SRC\n\n** Running\n\nIf you've added =$HOME/.local/bin= to your =$PATH=, then you can just:\n\n#+BEGIN_SRC sh\nFunTask\n#+END_SRC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleks%2Ffuntask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foleks%2Ffuntask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleks%2Ffuntask/lists"}