Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Example from book fails on freebsd #443

Open
MikHulk opened this issue Jun 18, 2023 · 3 comments
Open

Example from book fails on freebsd #443

MikHulk opened this issue Jun 18, 2023 · 3 comments

Comments

@MikHulk
Copy link

MikHulk commented Jun 18, 2023

Hi !

I am just starting to learn Pure Script.

Examples from the book don't work on FreeBSD 14.0:

$ git clone https://github.com/purescript-contrib/purescript-book.git
Cloning into 'purescript-book'...
remote: Enumerating objects: 5387, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (167/167), done.
remote: Total 5387 (delta 183), reused 228 (delta 126), pack-reused 5088
Receiving objects: 100% (5387/5387), 11.99 MiB | 3.03 MiB/s, done.
Resolving deltas: 100% (3297/3297), done.

./resetSolutions.sh works as expected:

 $ ./scripts/resetSolutions.sh                                        
+ set -e
+ for d in exercises/*
+ '[' -d exercises/LICENSE ']'
+ '[' -d exercises/LICENSE/test/no-peeking ']'
+ for d in exercises/*
+ '[' -d exercises/chapter10 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter10/test/Main.purs
+ '[' -d exercises/chapter10/test/no-peeking ']'
+ mv exercises/chapter10/test/no-peeking exercises/chapter10/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter11 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter11/test/Main.purs
+ '[' -d exercises/chapter11/test/no-peeking ']'
+ mv exercises/chapter11/test/no-peeking exercises/chapter11/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter12 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter12/test/Main.purs
+ '[' -d exercises/chapter12/test/no-peeking ']'
+ for d in exercises/*
+ '[' -d exercises/chapter13 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter13/test/Main.purs
+ '[' -d exercises/chapter13/test/no-peeking ']'
+ for d in exercises/*
+ '[' -d exercises/chapter14 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter14/test/Main.purs
+ '[' -d exercises/chapter14/test/no-peeking ']'
+ for d in exercises/*
+ '[' -d exercises/chapter2 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter2/test/Main.purs
+ '[' -d exercises/chapter2/test/no-peeking ']'
+ mv exercises/chapter2/test/no-peeking exercises/chapter2/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter3 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter3/test/Main.purs
+ '[' -d exercises/chapter3/test/no-peeking ']'
+ mv exercises/chapter3/test/no-peeking exercises/chapter3/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter4 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter4/test/Main.purs
+ '[' -d exercises/chapter4/test/no-peeking ']'
+ mv exercises/chapter4/test/no-peeking exercises/chapter4/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter5 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter5/test/Main.purs
+ '[' -d exercises/chapter5/test/no-peeking ']'
+ mv exercises/chapter5/test/no-peeking exercises/chapter5/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter6 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter6/test/Main.purs
+ '[' -d exercises/chapter6/test/no-peeking ']'
+ mv exercises/chapter6/test/no-peeking exercises/chapter6/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter7 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter7/test/Main.purs
+ '[' -d exercises/chapter7/test/no-peeking ']'
+ mv exercises/chapter7/test/no-peeking exercises/chapter7/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter8 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter8/test/Main.purs
+ '[' -d exercises/chapter8/test/no-peeking ']'
+ mv exercises/chapter8/test/no-peeking exercises/chapter8/no-peeking
+ for d in exercises/*
+ '[' -d exercises/chapter9 ']'
+ perl -ni -e 'print if !/This line should have been automatically deleted/' exercises/chapter9/test/Main.purs
+ '[' -d exercises/chapter9/test/no-peeking ']'
+ mv exercises/chapter9/test/no-peeking exercises/chapter9/no-peeking

but ./scripts/removeAnchors.sh uses gnu-find and need to be adapted:

$ git diff scripts/removeAnchors.sh                                                             
diff --git a/scripts/removeAnchors.sh b/scripts/removeAnchors.sh
index 3e6105c..39fc2fa 100755
--- a/scripts/removeAnchors.sh
+++ b/scripts/removeAnchors.sh
@@ -8,7 +8,7 @@ set -x
 set -e
 
 # All .purs & .js files in the src/ and test/ directories of chapter exercises.
-FILES=$(find . -regextype posix-extended -regex '\./exercises/chapter[0-9]{1,2}/(src|test)/.*\.(purs|js)' -type f)
+FILES=$(gfind . -regextype posix-extended -regex '\./exercises/chapter[0-9]{1,2}/(src|test)/.*\.(purs|js)' -type f)
 
 for f in $FILES; do
   # Delete lines starting with an 'ANCHOR' comment

misc/findutils port must be installed.

Even so, spago test continues to fails:

$ ./scripts/removeAnchors.sh       
+ set -e
++ gfind . -regextype posix-extended -regex '\./exercises/chapter[0-9]{1,2}/(src|test)/.*\.(purs|js)' -type f
+ FILES='./exercises/chapter10/src/Data/AddressBook.purs
./exercises/chapter10/src/Data/AddressBook/Validation.purs
./exercises/chapter10/src/Effect/Alert.js
./exercises/chapter10/src/Effect/Alert.purs
./exercises/chapter10/src/Effect/Storage.js
./exercises/chapter10/src/Effect/Storage.purs
./exercises/chapter10/src/Main.purs
./exercises/chapter10/src/index.js
./exercises/chapter10/test/Examples.js
./exercises/chapter10/test/Examples.purs
./exercises/chapter10/test/Main.purs
./exercises/chapter10/test/MySolutions.js
./exercises/chapter10/test/MySolutions.purs
./exercises/chapter10/test/URI.js
./exercises/chapter10/test/URI.purs
./exercises/chapter11/src/Data/Coords.purs
./exercises/chapter11/src/Data/GameEnvironment.purs
./exercises/chapter11/src/Data/GameItem.purs
./exercises/chapter11/src/Data/GameState.purs
./exercises/chapter11/src/Game.purs
./exercises/chapter11/src/Main.purs
./exercises/chapter11/src/Split.purs
./exercises/chapter11/test/Main.purs
./exercises/chapter11/test/MySolutions.purs
./exercises/chapter12/src/Example/LSystem.purs
./exercises/chapter12/src/Example/Random.purs
./exercises/chapter12/src/Example/Rectangle.purs
./exercises/chapter12/src/Example/Refs.purs
./exercises/chapter12/src/Example/Shapes.purs
./exercises/chapter12/src/Main.purs
./exercises/chapter12/test/Main.purs
./exercises/chapter13/src/Main.purs
./exercises/chapter13/src/Merge.purs
./exercises/chapter13/src/Sorted.purs
./exercises/chapter13/src/Tree.purs
./exercises/chapter13/test/Main.purs
./exercises/chapter14/src/Data/DOM/Free.purs
./exercises/chapter14/src/Data/DOM/Name.purs
./exercises/chapter14/src/Data/DOM/Phantom.purs
./exercises/chapter14/src/Data/DOM/Simple.purs
./exercises/chapter14/src/Data/DOM/Smart.purs
./exercises/chapter14/src/Main.purs
./exercises/chapter14/test/Main.purs
./exercises/chapter2/src/Euler.purs
./exercises/chapter2/src/Main.purs
./exercises/chapter2/test/Main.purs
./exercises/chapter2/test/MySolutions.purs
./exercises/chapter3/src/Data/AddressBook.purs
./exercises/chapter3/src/Main.purs
./exercises/chapter3/test/Main.purs
./exercises/chapter3/test/MySolutions.purs
./exercises/chapter4/src/Data/Path.purs
./exercises/chapter4/src/Main.purs
./exercises/chapter4/test/Examples.purs
./exercises/chapter4/test/Main.purs
./exercises/chapter4/test/MySolutions.purs
./exercises/chapter5/src/ChapterExamples.purs
./exercises/chapter5/src/Data/Person.purs
./exercises/chapter5/src/Data/Picture.purs
./exercises/chapter5/src/Main.purs
./exercises/chapter5/test/Main.purs
./exercises/chapter5/test/MySolutions.purs
./exercises/chapter6/src/Data/Hashable.purs
./exercises/chapter6/src/Main.purs
./exercises/chapter6/test/Main.purs
./exercises/chapter6/test/MySolutions.purs
./exercises/chapter7/src/Data/AddressBook.purs
./exercises/chapter7/src/Data/AddressBook/Validation.purs
./exercises/chapter7/src/Main.purs
./exercises/chapter7/test/Main.purs
./exercises/chapter7/test/MySolutions.purs
./exercises/chapter8/src/Data/AddressBook.purs
./exercises/chapter8/src/Data/AddressBook/Validation.purs
./exercises/chapter8/src/Main.purs
./exercises/chapter8/src/index.js
./exercises/chapter8/test/Examples.purs
./exercises/chapter8/test/Main.purs
./exercises/chapter8/test/MySolutions.purs
./exercises/chapter8/test/Random.purs
./exercises/chapter9/src/Main.purs
./exercises/chapter9/test/Copy.purs
./exercises/chapter9/test/HTTP.purs
./exercises/chapter9/test/Main.purs
./exercises/chapter9/test/MySolutions.purs
./exercises/chapter9/test/ParallelDelay.purs
./exercises/chapter9/test/ParallelFetch.purs'
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/Data/AddressBook.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/Data/AddressBook/Validation.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/Effect/Alert.js
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/Effect/Alert.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/Effect/Storage.js
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/Effect/Storage.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/src/index.js
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/test/Examples.js
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/test/Examples.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/test/MySolutions.js
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/test/URI.js
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter10/test/URI.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/src/Data/Coords.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/src/Data/GameEnvironment.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/src/Data/GameItem.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/src/Data/GameState.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/src/Game.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/src/Split.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter11/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter12/src/Example/LSystem.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter12/src/Example/Random.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter12/src/Example/Rectangle.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter12/src/Example/Refs.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter12/src/Example/Shapes.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter12/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter12/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter13/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter13/src/Merge.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter13/src/Sorted.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter13/src/Tree.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter13/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter14/src/Data/DOM/Free.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter14/src/Data/DOM/Name.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter14/src/Data/DOM/Phantom.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter14/src/Data/DOM/Simple.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter14/src/Data/DOM/Smart.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter14/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter14/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter2/src/Euler.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter2/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter2/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter2/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter3/src/Data/AddressBook.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter3/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter3/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter3/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter4/src/Data/Path.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter4/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter4/test/Examples.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter4/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter4/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter5/src/ChapterExamples.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter5/src/Data/Person.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter5/src/Data/Picture.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter5/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter5/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter5/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter6/src/Data/Hashable.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter6/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter6/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter6/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter7/src/Data/AddressBook.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter7/src/Data/AddressBook/Validation.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter7/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter7/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter7/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/src/Data/AddressBook.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/src/Data/AddressBook/Validation.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/src/index.js
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/test/Examples.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter8/test/Random.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter9/src/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter9/test/Copy.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter9/test/HTTP.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter9/test/Main.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter9/test/MySolutions.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter9/test/ParallelDelay.purs
+ for f in $FILES
+ perl -ni -e 'print if !/^\s*(--|\/\/) ANCHOR/' ./exercises/chapter9/test/ParallelFetch.purs
18-06-23 03:34:58 /home/mik/Dev/purescript/purescript-book
$ git add .                                                          
$ git commit --all --message "Exercises ready to be solved"
[master 388c656] Exercises ready to be solved
 Committer: Mick Mac Cormak <mik@labo.lan>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:

    git config --global --edit

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 49 files changed, 1 insertion(+), 349 deletions(-)
 rename exercises/chapter10/{test => }/no-peeking/Solutions.js (100%)
 rename exercises/chapter10/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter11/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter2/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter3/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter4/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter5/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter6/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter7/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter8/{test => }/no-peeking/Solutions.purs (100%)
 rename exercises/chapter9/{test => }/no-peeking/Solutions.purs (100%)
$ cd exercises/chapter2/                                                                        
$ spago test
[info] Installing 52 dependencies.
[info] Searching for packages cache metadata..
[info] Recent packages cache metadata found, using it..
[info] Installing "bifunctors"
[info] Installing "contravariant"
[info] Installing "datetime"
[info] Installing "control"
[info] Installing "enums"
[info] Installing "either"
[info] Installing "free"
[info] Installing "exists"
[info] Installing "functions"
[info] Installing "distributive"
[info] Installing "functors"
[info] Installing "arrays"
[info] Installing "console"
[info] Installing "exceptions"
[info] Installing "effect"
[info] Installing "foldable-traversable"
[info] Installing "const"
[info] Installing "catenable-lists"
[info] Installing "avar"
[info] Installing "aff"
[error] 
Failed to install dependency "exists"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "functors"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "const"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "functions"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "distributive"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "effect"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "const"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "gen"
[error] 
Failed to install dependency "exceptions"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "exists"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "identity"
[error] 
Failed to install dependency "functors"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "integers"
[error] 
Failed to install dependency "console"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "enums"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "contravariant"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "avar"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "bifunctors"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "functions"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "either"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "invariant"
[error] 
Failed to install dependency "effect"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "js-timers"
[error] 
Failed to install dependency "contravariant"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "lazy"
[error] 
Failed to install dependency "console"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "enums"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "distributive"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "lcg"
[info] Installing "lists"
[info] Installing "maybe"
[error] 
Failed to install dependency "exceptions"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "newtype"
[error] 
Failed to install dependency "datetime"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "avar"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "nonempty"
[error] 
Failed to install dependency "bifunctors"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "numbers"
[error] 
Failed to install dependency "control"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "either"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "ordered-collections"
[error] 
Failed to install dependency "foldable-traversable"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "datetime"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "orders"
[error] 
Failed to install dependency "control"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "aff"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "parallel"
[error] 
Failed to install dependency "foldable-traversable"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "partial"
[error] 
Failed to install dependency "arrays"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "free"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "catenable-lists"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[error] 
Failed to install dependency "arrays"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "prelude"
[error] 
Failed to install dependency "aff"
Git output:

fatal: destination path '.' already exists and is not an empty directory.


Aborting installation..
[info] Installing "profunctor"
[info] Installing "quickcheck"
[info] Installing "random"
[info] Installing "record"
[info] Installing "refs"
[info] Installing "safe-coerce"
[info] Installing "st"
[info] Installing "strings"
[info] Installing "tailrec"
[info] Installing "test-unit"
[info] Installing "transformers"
[info] Installing "tuples"
[info] Installing "type-equality"
[info] Installing "unfoldable"
[info] Installing "unsafe-coerce"
[error] Installation failed
[error] Error:
[error] ExitFailure 1
 $ 
@MikHulk MikHulk changed the title Exmple on book fails on freebsd Example from book fails on freebsd Jun 18, 2023
@milesfrain
Copy link
Member

I'm curious if this works:

mkdir foo
cd foo
spago init
spago build

If that also fails, then that points to a spago issue, rather than a book issue.

Good job fixing removeAnchors.sh. It would be great if we could convert all those shell scripts to purescript for greater cross-platform compatibility. There's some discussion of that in #396 (comment)

@MikHulk
Copy link
Author

MikHulk commented Jun 21, 2023

No it doesn't work indeed. I didn't know this issue thank for sharing. I will look. There is this issue on spago project purescript/spago#894 and this thread on forum where I found some help https://discourse.purescript.org/t/trouble-installing-dependencies/3052/28.

I have opened a bug report related to the freeBSD package:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272064

I am going to try to install the next version from npm I hope this resolve my issue.

Thank you

@MikHulk
Copy link
Author

MikHulk commented Jun 24, 2023

Well it doesn't work with spago@next:

24-06-23 11:38:51 /home/mik/Dev/purescript/purescript-book
mik@labo $ cd exercises/chapter2                                                                         
24-06-23 11:39:10 /home/mik/Dev/purescript/purescript-book/exercises/chapter2
mik@labo $ spago test
Reading Spago workspace configuration...

❌ Couldn't parse Spago config, error:
  Did not find spago.yaml file. Run `spago init` to initialise a new project.

24-06-23 11:39:14 /home/mik/Dev/purescript/purescript-book/exercises/chapter2
mik@labo $ cd -
/home/mik/Dev/purescript/purescript-book
24-06-23 11:39:22 /home/mik/Dev/purescript/purescript-book
mik@labo $ git add .
24-06-23 11:39:26 /home/mik/Dev/purescript/purescript-book
mik@labo $ git commit --all --message "Exercises ready to be solved"
Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'mik@labo.(none)')
24-06-23 11:39:36 /home/mik/Dev/purescript/purescript-book
mik@labo $ git config --global user.email "you@example.com"
24-06-23 11:39:51 /home/mik/Dev/purescript/purescript-book
mik@labo $ git config --global user.name "Your Name"
24-06-23 11:39:56 /home/mik/Dev/purescript/purescript-book
mik@labo $ cd exercises/chapter2/                                                                        
24-06-23 11:40:06 /home/mik/Dev/purescript/purescript-book/exercises/chapter2
mik@labo $ spago test
Reading Spago workspace configuration...

❌ Couldn't parse Spago config, error:
  Did not find spago.yaml file. Run `spago init` to initialise a new project.

I going to try again with legacy spago npm install.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants