Skip to content

Commit

Permalink
compiling with haskell
Browse files Browse the repository at this point in the history
  • Loading branch information
mike dupont committed May 30, 2024
1 parent 55fd814 commit 1beddad
Show file tree
Hide file tree
Showing 5 changed files with 342 additions and 0 deletions.
50 changes: 50 additions & 0 deletions Community.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
module Community(community_engagement) where
import Define (define)
-- project_dependencies =
community_engagement=True
-- -- Define community engagement strategies
-- (define (project_dependencies)

-- (define (consider_some_system_packages)
-- (define (consider_documentation))
-- (define (consider_license))
-- (define (consider_transitive_dependencies)
-- (define (consider_license)

-- (define (consider_dicotomy_of_permissions)
-- (define (filter_out_non_open_licenses)
-- -- we will have to make an exception for nvidia, but we can consider that to be a captured node.
-- -- captured node are not free nodes.

-- )

-- )
-- (define (consider_popularity))
-- (define (consider_code)

-- (define (consider_language_scheme))
-- (define (consider_language_nix))
-- (define (consider_language_rust))
-- (define (consider_language_ocaml))
-- (define (consider_language_erlang))
-- (define (consider_language_elixir))
-- (define (consider_language_mojo))

-- (define (consider_language_generically language)

-- (define (find_system_packages_for package))

-- (define (consider_some_system_packages package)

-- -- first recursion,
-- -- get the package for the language and consider that
-- (consider_some_system_packages(find_system_packages_for package))
-- )
-- )
-- )
-- (define (consider_guix_packages))
-- (define (consider_nix_packages))
-- (define (consider_docker_packages))
-- (define (consider_helm_packages))
-- )
-- )))
42 changes: 42 additions & 0 deletions Define.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
module Define(define,
-- community_engagement,
testing_and_deployment,
ooda_loop,
configuration_management,
implementation_driver) where
import Data.IORef

type Name = String
type Value = String

data Scope = Scope {
parent :: Maybe Scope,
bindings :: IORef [(Name, Value)]
}
fixme x= True
observe=(fixme)
orient=fixme
decide=fixme
act=fixme
ooda_loop= [observe , orient, decide, act]
configuration_management=(fixme "Define derivations for system configuration")

--;; Define testing and deployment logic
testing_and_deployment=(fixme "Define testing and deployment procedures")

implementation_driver=(fixme "Define smart contract_driven implementation driver")

newScope :: Maybe Scope -> IO Scope
newScope parent = Scope parent <$> newIORef []

define :: Name -> Value -> Scope -> IO ()
define name value scope = modifyIORef' (bindings scope) ((name, value):)

-- lookup2 :: Name -> Scope -> IO (Maybe Value)
-- lookup2 name scope = do
-- bindings' <- readIORef (bindings scope)
-- case lookup2 name bindings' of
-- Just value -> return (Just value)
-- Nothing -> case parent scope of
-- Just parent' -> lookup2 name parent'
-- Nothing -> return Nothing
173 changes: 173 additions & 0 deletions plan.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
{-# LANGUAGE TemplateHaskell #-}

-- import Language.Haskell.TH

import Define
import Community


-- (use_modules (guix)
-- (gnu)
-- (gnu system)
-- (gnu system activation)
-- (gnu services))



-- (define (ooda_loop)
-- -- ;; Implement the OODA loop for consensus building
-- (define (observe)
-- -- Observe changes and inputs from the environment
-- (extract_details)

-- )

-- (define (orient)
-- -- Orient the system based on observations and inputs
-- )

-- (define (decide)
-- -- Decide on a course of action based on observations and orientation
-- )

-- (define (act)
-- -- Act on the decision made, updating the system accordingly
-- )

-- -- Execute the OODA loop
-- (define (execute_ooda_loop)
-- (observe)
-- (orient)
-- (decide)
-- (act))

-- -- Return the OODA loop execution procedure
-- execute_ooda_loop)

guix_bootstrap_configuration a b c d e = True
guix_bootstrap_service_type = True
service x y = True
operating_system x = True
services x = True
append x = True
list x = True
os x = True
channels x = True
parallel_builds x = True
--substitute_url :: [Char] -> p10
substitute_url x = True
substitute_channels x = True -- :: t9 -> p11
git_service_type = True
git_configuration a b = True -- :: t10 -> t11 -> p13
repos a= True -- :: [Char] -> t10
protocol a = True -- :: t12 -> t11
p2p=True
cuirass_service_type=True
cuirass_configuration a b = True -- :: t13 -> t14 -> p15
source_mirrors a = True -- :: [Char] -> t14
git_checkout a = True -- :: [Char] -> t15
base_services = True
inherit = True

--;; Define the system configuration
guixie =
(operating_system
-- Define system services
(services
(append
-- Guix Bootstrap service
(list (service guix_bootstrap_service_type
(guix_bootstrap_configuration
(os "gnu")
(channels ("guix" "nixpkgs"))
(parallel_builds 4)
(substitute_url "https://ci.guix.gnu.org")
(substitute_channels ("guix" "nixpkgs"))))
-- Self-hosted P2P Git service
(service git_service_type
(git_configuration
(repos ("/srv/git"))
(protocol p2p)))
-- Continuous Integration service
(service cuirass_service_type
(cuirass_configuration
(inherit (guix_bootstrap_service_type))
(source_mirrors ("https://git.example.org")))
(git_checkout "/srv/git/cuirass")))
base_services)))

--;; Include base system services

--;;

-- Define smart contract logic here
--;; Define configuration management with derivations



-- -- ;; Define the plan to execute
execute_plan=
(operating_system
-- Include system services and extensions
(services
(append
(list (implementation_driver)
(Define.configuration_management)
(Define.testing_and_deployment)
(Community.community_engagement)
(
Define.ooda_loop)-- ;; Include the OODA loop
)
%base_services)))

foreach x b = True
lambda a b c d = True
display_services=
(for_each (lambda (service)
(display " _ ")
(display (service_kind service))
(newline))
system_services)

-- ;; Define a procedure to extract details from the code
extract_details=True
-- -- Extract details about the operating system configuration
-- (display "Operating System Configuration:")
-- (newline)
-- -- (let ((system_services (operating_system_services guixie))))
-- -- (display_services)

-- -- Extract details about the procedures for implementation
-- (display "Procedures for Implementation:")
-- (newline)
-- (let ((procedures (implementation_driver
-- configuration_management
-- testing_and_deployment
-- community_engagement
-- ooda_loop)))
-- (for_each (lambda (procedure)
-- (display " _ ")
-- (display (symbol_>string procedure))
-- (newline))
-- procedures))

-- Extract details about the OODA loop integration
-- (display "OODA Loop Integration:")
-- (newline)
-- (let ((ooda_steps (observe orient decide act)))
-- (for_each (lambda (step)
-- (display " _ ")
-- (display (symbol_>string step))
-- (newline))
-- ooda_steps)))
-- ;; Execute the extract_details function


-- ;; Execute the plan




main :: IO ()
main = do
execute_plan
65 changes: 65 additions & 0 deletions stack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# This file was automatically generated by 'stack init'
#
# Some commonly used options have been documented as comments in this file.
# For advanced use and comprehensive documentation of the format, please see:
# https://docs.haskellstack.org/en/stable/yaml_configuration/

# Resolver to choose a 'specific' stackage snapshot or a compiler version.
# A snapshot resolver dictates the compiler version and the set of packages
# to be used for project dependencies. For example:
#
# resolver: lts-3.5
# resolver: nightly-2015-09-21
# resolver: ghc-7.10.2
#
# The location of a snapshot can be provided as a file or url. Stack assumes
# a snapshot provided as a file might change, whereas a url resource does not.
#
# resolver: ./custom-snapshot.yaml
# resolver: https://example.com/snapshots/2018-01-01.yaml
resolver: lts-22.23

# User packages to be built.
# Various formats can be used as shown in the example below.
#
# packages:
# - some-directory
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
# subdirs:
# - auto-update
# - wai
packages: []
# Dependency packages to be pulled from upstream that are not in the resolver.
# These entries can reference officially published versions as well as
# forks / in-progress versions pinned to a git hash. For example:
#
# extra-deps:
# - acme-missiles-0.3
# - git: https://github.com/commercialhaskell/stack.git
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
#
# extra-deps: []

# Override default flag values for local packages and extra-deps
# flags: {}

# Extra package databases containing global packages
# extra-package-dbs: []

# Control whether we use the GHC we find on the path
# system-ghc: true
#
# Require a specific version of stack, using version ranges
# require-stack-version: -any # Default
# require-stack-version: ">=2.3"
#
# Override the architecture used by stack, especially useful on Windows
# arch: i386
# arch: x86_64
#
# Extra directories used by stack for building
# extra-include-dirs: [/path/to/dir]
# extra-lib-dirs: [/path/to/dir]
#
# Allow a newer minor version of GHC than the snapshot specifies
# compiler-check: newer-minor
12 changes: 12 additions & 0 deletions stack.yaml.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# This file was autogenerated by Stack.
# You should not edit this file by hand.
# For more information, please see the documentation at:
# https://docs.haskellstack.org/en/stable/lock_files

packages: []
snapshots:
- completed:
size: 718708
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/23.yaml
sha256: 73ad581de7c5306278aec7706cafaf3b1c2eb7abf4ab586e4d9dc675c6106c4e
original: lts-22.23

0 comments on commit 1beddad

Please sign in to comment.