Re: [Chicken-users] srfi-128 - almost

2018-08-17 Thread Jeremy Steward
Hey Joerg,

I'm the maintainer for that egg. I'd be happy to review the pull request, but 
just haven't had time. I can look it over tomorrow if necessary to get things 
merged in properly.

Regards, 

On August 17, 2018 11:44:17 AM MDT, "Jörg F. Wittenberger" 
 wrote:
>Let's try an example.
>
>I forked the srfi-128 repo here and ported it to chicken 5
>https://github.com/0-8-15/srfi-128
>
>The .release-info still points upstream where the pull request went.
>
>This appears to install and work.
>
>Brings back the question: how would I tell chicken to temporarily
>consult 
>other locations for egg distributions? E.g. I'd like to use
>chicken-install 
>in a fresh location outside the source directory of the egg to check
>that 
>the whole download picks the correct files and all of them. Or maybe I
>just 
>want to install an egg I deem not good enough to release.
>
>Best
>
>/Jörg
>
>
>
>
>___
>Chicken-users mailing list
>Chicken-users@nongnu.org
>https://lists.nongnu.org/mailman/listinfo/chicken-users

-- 
Jeremy Steward 


signature.asc
Description: PGP signature
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] CHICKEN 5.0.0 release candidate 1 available

2018-08-17 Thread Justin Meiners
Operating system: Ubuntu 18.04
Hardware platform: x86-64
C Compiler: GCC 7.3
Installation works?: yes
Tests work?: yes
Installation of eggs works?: no. I just tried installing spiffy and some
srfi's. No matter what eggs I tried it couldn't find anything.

This is a repy to this post:
http://lists.nongnu.org/archive/html/chicken-users/2018-08/msg4.html

(I am not sure how to reply to an old post as I was not on the mailing list
when it was sent.)

Thanks,
- Justin
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] srfi-34 egg

2018-08-17 Thread Jörg F . Wittenberger

there is an srfi-34 egg here

https://raw.githubusercontent.com/0-8-15/srfi-34/master/srfi-34.release-info

https://github.com/0-8-15/srfi-34

which compiles for me with both chicken 4 and chicken 5.

Could go to the coop if it is done well.

Best

/Jörg


___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] C5 Type declaration issue

2018-08-17 Thread Jörg F . Wittenberger

This is an instance of an error I'm getting frequently:

  /home/u/c5/bin/csc -setup-mode -static -I /home/u/traces/srfi-128 
-emit-link-file /home/u/traces/srfi-128/srfi-128.link -host -D 
compiling-extension -c -unit srfi-128 -D compiling-static-extension -C 
-I/home/u/traces/srfi-128 -O3 -d2 /home/u/traces/srfi-128/srfi-128.scm -o 
/home/u/traces/srfi-128/srfi-128.static.o


Warning: at toplevel:
 assignment of value of type `(procedure srfi-128#make-comparator (* * * 
*) (struct srfi-128#comparator))' to toplevel variable 
`srfi-128#make-comparator' does not match declared type `(procedure 
srfi-128#make-comparator ((or true (procedure :type-test: (*) boolean)) (or 
true (procedure :comparison-test: (* *) boolean)) (or false (procedure 
:comparison-test: (* *) boolean)) (or false (procedure :hash-function: (*) 
fixnum))) (struct comparator))'


The relevant code excerpt from https://github.com/0-8-15/srfi-128
file comperators/comperators.scm:

 (define-type :comparator: (struct comparator))
 (define-type :type-test: (procedure (*) boolean))
 (define-type :comparison-test: (procedure (* *) boolean))
 (define-type :hash-code: fixnum)
 (define-type :hash-function: (procedure (*) :hash-code:))

(: make-comparator
  ((or true :type-test:)
   (or true :comparison-test:)
   (or false :comparison-test:)
   (or false :hash-function:)
   --> :comparator:))

(define (make-comparator type-test equality ordering hash)
...

How to deal with this?

Thanks

/Jörg


___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] srfi-128 - almost

2018-08-17 Thread Jörg F . Wittenberger

Let's try an example.

I forked the srfi-128 repo here and ported it to chicken 5
https://github.com/0-8-15/srfi-128

The .release-info still points upstream where the pull request went.

This appears to install and work.

Brings back the question: how would I tell chicken to temporarily consult 
other locations for egg distributions? E.g. I'd like to use chicken-install 
in a fresh location outside the source directory of the egg to check that 
the whole download picks the correct files and all of them. Or maybe I just 
want to install an egg I deem not good enough to release.


Best

/Jörg




___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] porting eggs experiences and questions

2018-08-17 Thread Jörg F . Wittenberger

Thanks Mario and Kristian for your responses.

On Aug 17 2018, Mario Domenech Goulart wrote:


I'm maintaining all my eggs in the same repo, same branch, same
.release-info file and same versioning scheme for both CHICKEN 4 and 5.


That's what I'd want.


In my experience, that's not difficult.


once you know what you're doing ;-)


* Observation: chicken-install does not install dependencies

This is just odd: The .egg file contains (dependencies srfi-18);
chicken-install did the download but not install it. So compilation
failed until I manually did

chicken-install srfi-18


That's weird.  We don't observe this behavior on any of the automated
tests (http://tests.call-cc.org).


It is.  But it seems consistent in my setup.

I tried: `chicken-install srfi-13`: this did the download for srfi-14 
compiled and failed to install srfi-13.


Next I did `chicken-install srfi-14` and it installed from the download 
cache. Then chicken-install srfi-13 succeeded.


Maybe I'm using a weired setup? In order to not confuse c4 and c5 I have no 
chicken in my default path. I cleaned up the $PREFIX ("~/c5") and installed 
c5rc1 there. Then I added ~/c5/bin to $PATH.



* chicken-install -n -test

Fails.  One needs to actually install first, then run the test.

Better at least warn that we test the installed version, not the
current one. (I recall this bite me before.)

Best: just load the version from the working directory.


I think this pretty much depends on how tests are implemented.  If they
import things assuming that the eggs are installed, you have to install
them before running tests.  Or you can hack your tests to load/import
the code from the source directory.


What's your recommended way to load/import from the source directory?

Thanks

/Jörg


___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] porting eggs experiences and questions

2018-08-17 Thread Mario Domenech Goulart
Hi Jörg,

On 17 Aug 2018 12:33:28 +0200 Jörg F. Wittenberger 
 wrote:

> I just ported a first egg. (Pigeon-hole, "simple" mailbox with
> capacity constraint flow control and no timeouts.)
>
> * Question: what's about the .release-info
>
> This https://wiki.call-cc.org/porting-c4-to-c5 was helpful, but does
> not mention the release process.
>
> How would I mark a release for C5?

Basically, you need a .release-info file that points to the tarball of
your egg for CHICKEN 5.

Regarding tagging on the same repo, I don't know exactly what apporach
people are using.  In svn, as eggs for CHICKEN 4 and 5 are in diferent
directories, and there are directories for tags, the versioning scheme
for eggs for CHICKEN 4 and 5 are completely independent.

> Any thought on how to have both a C4 and C5 version in the same repo?
> I'll have to support C4 for quite a while. Now I wonder how best
> reorganize the code to work for both.

I'm maintaining all my eggs in the same repo, same branch, same
.release-info file and same versioning scheme for both CHICKEN 4 and 5.
In my experience, that's not difficult.

I don't intend to maintain multiple repositories/branches for each egg,
and I don't intend to phase out my aggs for CHICKEN 4 anytime soon.

In theory, to make your eggs work with both CHICKEN 4 and 5, you just
need an extra .egg file and some `cond-expand' here and there. In the
extreme case where large portions of your code are CHICKEN
version-specific, you can use `cond-expand' to `include' files that are
specific to some particular CHICKEN version.  I intend to resort to the
`include' trick for salmonella, for example (a significant part of
salmonella for CHICKEN 4 is not compatible with CHICKEN 5, and
vice-versa).

> * Observation: chicken-install does not install dependencies
>
> This is just odd: The .egg file contains (dependencies srfi-18);
> chicken-install did the download but not install it. So compilation
> failed until I manually did
>
> chicken-install srfi-18

That's weird.  We don't observe this behavior on any of the automated
tests (http://tests.call-cc.org).

> * chicken-install -n -test
>
> Fails.  One needs to actually install first, then run the test.
>
> Better at least warn that we test the installed version, not the
> current one. (I recall this bite me before.)
>
> Best: just load the version from the working directory.

I think this pretty much depends on how tests are implemented.  If they
import things assuming that the eggs are installed, you have to install
them before running tests.  Or you can hack your tests to load/import
the code from the source directory.

> Thanks for all the work which went into C5.

All the best.
Mario
-- 
http://parenteses.org/mario

___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] porting eggs experiences and questions

2018-08-17 Thread Kristian Lein-Mathisen
Hi Jörg,


> How would I mark a release for C5?
>
>
Create a new release-info file and let the chicken core team add it to the
CHICKEN 5 coop.
I both in the same repo, eg nanomsg5.release-info for C5 and
nanomsg.release-info for C4.


> Any thought on how to have both a C4 and C5 version in the same repo? I'll
> have to support C4 for quite a while. Now I wonder how best reorganize the
> code to work for both.
>

I've kept C4 support by using cond-expand, like this

:

(import scheme) ;; make sure we have cond-expand
(cond-expand (chicken-5 (import (chicken base) (chicken foreign)))
 (else (import chicken foreign)))


>
> * Observation: chicken-install does not install dependencies
>
> This is just odd: The .egg file contains (dependencies srfi-18);
> chicken-install did the download but not install it. So compilation failed
> until I manually did
>
> chicken-install srfi-18
>
>
That seems like a bug. No error messages after downloading?


> * chicken-install -n -test
>
> Fails.  One needs to actually install first, then run the test.
>
> Better at least warn that we test the installed version, not the
> current one. (I recall this bite me before.)
>
> Best: just load the version from the working directory.
>
> Thanks for all the work which went into C5.
>
> /Jörg
>
>
> ___
> Chicken-users mailing list
> Chicken-users@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] porting eggs experiences and questions

2018-08-17 Thread Jörg F . Wittenberger

Hi,

I just ported a first egg. (Pigeon-hole, "simple" mailbox with capacity 
constraint flow control and no timeouts.)


* Question: what's about the .release-info

This https://wiki.call-cc.org/porting-c4-to-c5 was helpful, but does not 
mention the release process.


How would I mark a release for C5?

Any thought on how to have both a C4 and C5 version in the same repo? I'll 
have to support C4 for quite a while. Now I wonder how best reorganize the 
code to work for both.


* Observation: chicken-install does not install dependencies

This is just odd: The .egg file contains (dependencies srfi-18); 
chicken-install did the download but not install it. So compilation failed 
until I manually did


chicken-install srfi-18

* chicken-install -n -test

Fails.  One needs to actually install first, then run the test.

Better at least warn that we test the installed version, not the
current one. (I recall this bite me before.)

Best: just load the version from the working directory.

Thanks for all the work which went into C5.

/Jörg


___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] chicken-5

2018-08-17 Thread Jörg F . Wittenberger

On Aug 17 2018, Juergen Lorenz wrote:


Hi all,

I've just begun to port my eggs to chicken-5. It's much simpler than I
thought.

The reorganisation of the libraries and egg installation system is great. 
I wish to thank the members of the chicken-team for their excellent job. 
Well done, guys!


One question remains: The .egg file doesn't contain any hints for how to
compile an egg. How does the installer decide, what flags to use?


That's to be found here:
https://wiki.call-cc.org/man/5/Egg%20specification%20format#csc-options



Cheers

Juergen



___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] chicken-5

2018-08-17 Thread Juergen Lorenz
Hi all,

I've just begun to port my eggs to chicken-5. It's much simpler than I
thought.

The reorganisation of the libraries and egg installation system is
great. I wish to thank the members of the chicken-team for their excellent job.
Well done, guys!

One question remains: The .egg file doesn't contain any hints for how to
compile an egg. How does the installer decide, what flags to use?

Cheers

Juergen
-- 

Dr. Juergen Lorenz
Gruener Weg 27
29471 Gartow



signature.asc
Description: PGP signature
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users