>
> I can now say (in the build directory)
>
> $ ./csi -version
> CHICKEN
> (c) 2008-2022, The CHICKEN Team
> (c) 2000-2007, Felix L. Winkelmann
> Version 5.4.0 (rev 1a1d1495)
> mingw32-windows-gnu-x86-64 [ 64bit dload ptables ]
>
> No further testing so far...
&
t match. If you change the casts in the macro
definitions
for C_u_i_execve and C_u_i_spawnvpe from "const char* const*" to "char *const*",
does the build succeed?
felix
rrently we experience some server problems, once these are solved, we
certainly will add your egg to the coop. Thanks for your contribution!
felix
ld be compatible to older chicken's.
Thanks for reporting this.
felix
>
> Hi,
>
> Installing r7rs does not work for me,
>
> > Error: during expansion of (include ...) - bad argument count - received
> > 2 but expected 1: # > (r7rs-compile-time#expand-toplevel-r7rs-library-forms exps)>
I can reproduce the problem. Stay tuned.
felix
ontaining "unquote" forms, we can transform these by evaluating
them. Bytevectors are already read when seen by quasiquote.
>From my reading, R7RS does not support quasiquoted u8vectors either, the
formal grammer refers to "" which seems to be allowed to
be only a list, a vector or a datum, the latter not being processed any further.
I hope this makes sense.
felix
> Hi Felix,
> It appears there is a way to mix-and-match literals and arbitrary
> expressions using
> quasiquote. Would it be appropriate to support this for srfi-4 vectors too?
>
> #;11> `#u8(1 2 ,(+ 1 2))
> Error: (u8vector-set!) bad argument type: (unquote (+ 1 2))
>
g. So consider the string-notation in literals a convience
feature,
nothing more. Generalizing this to the constructor procedure just invites type
errors and hides mistakes, I think.
felix
evaluated code will be interpreted and thus not run as efficient as
compiled code. But if that's acceptable for your needs, then such an
approach is perfectly fine.
felix
Scheme implementations.
Is the set of globals fixed or can an actor extend this set? Do you want to
compile your code (I assume you do)? Do you want these globals to be fully
equivalent to normal global bindings?
felix
rmission denied". Should we disable this test?
Install + test of pastiche ran fine.
felix
while - we recently updated the docs, but did
not fix the entry in types.db). I will submit a patch, thanks!
felix
is correct.
>
> PPS one small question. Does or not cache files produced by
> chicken-install 5.4.X interfere with chicken-install 5.3.X? Thanks All!
The files should not interfere. Chicken-install will detect if files in the
cache are out of date or belong to a different build.
felix
del: posix
gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1)
All tests work, including pastiche's.
felix
.0-25)
--
OS:
OpenBSD u.my.domain 7.4 GENERIC.MP#1397 amd64
CC:
OpenBSD clang version 13.0.0
Target: amd64-unknown-openbsd7.4
Thread model: posix
InstalledDir: /usr/bin
felix
e sign, just like we
> do after returning from integer_divrem().
>
> I'm sending both patches again for your convenience. The second patch
> has a fix for the aforementioned issue.
>
Appled - thanks!
felix
to dynamically bind a flag that ignores the
sequence
in nested reads. This may need a bit of fiddling, but that is probably the
approach
I would try.
felix
cheme for scientific computing and embedded applications.
The egg sources are usually good examples for how to structure
libraries. Some of these have example programs that you might
want to study. Also, you can look at
http://wiki.call-cc.org/Software
which lists a couple of larger projects that use CHICKEN.
cheers,
felix
the latest git HEAD? Both of
your assumptions are correct, but api.call-cc.org and git master
look correct to me.
felix
I just recall that we added line-number info to evaluated code,
this may also have an impact. You can measure the load-time
(just load a large source file) to check whether this is the case.
Evaluation performance should not have changed much, I think.
felix
test whether the expansion phase is now slower in the
compiler by using the "-A" option (analyze only) and/or "-debug b".
cheers,
felix
27;s stack may be
exhausted as the C code generated from Scheme uses the stack as a first
level heap and so needs a bit of space.
You can also try to run the code with a single native thread for testing
to at least have a base that works and continue by enabling threads
from there.
cheers,
felix
level primitives,
but this applies only to optimizations that the compiler knows about.
For user-defined inlinings, this is currently not possible.
> Thanks for the really informed reply Felix, this was very helpful in
> understanding what's happening with SRFI-143. I can hopefully start
x27;s default behaviour in CHICKEN
> 6, but I don't really know how I would get started having that discussion.
The SRFI-page doesn't seem to specify any behaviour. The runtime system
is compiled with "-fwrapv" in the hope to preserve wrapping semantics for
integer arithmetic, but I'm not sure how reliable that is.
cheers,
felix
ntact
the author of the "procedural-macros" egg?
felix
> I tried your code but I got all kinds of compile errors. Sorry, but it's
> gotten to be too much effort to just open a file.
Indeed, that's understandable. Sorry for not being able to help, but
we are definitely working on improving this situation for the next
major release of CHICKEN.
felix
(fp == NULL) return(0);
C_set_block_item(port, 0, (C_word)fp);
return(1);"))
(define (fopen-utf16 fname mode input?)
(let ((p (##sys#make-port (if input? 1 2) ##sys#stream-port-class name
'stream)))
(if (wfopen fname mode)
p
(error "error opening file" fname mode
the ##sys#make-port thing above creates a proper port to be used in Scheme,
the input? flag is unfortunately needed to distinguish between input and output
ports. Sorry if all this is a bit confusing.
felix
quot;open-input-file*" to convert it into a Scheme port
(Just ask if you need help with this).
Sorry, if this is not overly helpful. We are currently in the process of
improving
the unicode support for the next major version of CHICKEN.
felix
I wish you all a merry christmas and a relaxed and fulfilling 2024.
cheers,
felix
> It fails because TIOCSTI is undefined. OpenBSD removed it for security
> reasons.
>
> How could that egg be modified to allow it to compile on OpenBSD?
Hi! Thanks for reporting this - I have added a dummy definition (ioctl 0.4)
for OpenBSD.
felix
> Would it be possible to mark deprecations with alternatives/documentation
> to point users in the new direction?
Yes, next time, such a warning should mention any replacements.
There is also a DEPRECATED file in the sources that lists recent
deprecations.
Thanks for the suggestion.
felix
moved
> check-errors.egg-info and retried installing base64, the installation of
> base64 would work, but check-errors would still be broken
> (chicken-status and chicken-uninstall would ignore it, for example).
Sure, whatever - feel free to change the message, if you think that makes it
clearer.
felix
> That was it. Thanks. I do have to keep running:
>
> find /software/ -name \*.egg-info -empty -delete -print
>
> as check-errors.egg-info seems to be a pervasive problem. Maybe it would be
> worth it to add a defence against this?
>
>
Sorry - wrong patch, this i
> That was it. Thanks. I do have to keep running:
>
> find /software/ -name \*.egg-info -empty -delete -print
>
> as check-errors.egg-info seems to be a pervasive problem. Maybe it would be
> worth it to add a defence against this?
>
Attached is a patch that catches at lea
so can be imported from modules, renamed, be hidden inside
> local scopes, all that stuff!
>
I guess some macro wizard will come up with a way to do this.
But I still think that keeping an expansion/compile-time registry and
accessing it using procedure macros (via "strip-syntax"ed identifiers
to drop all renaming artifacts) is a possible solution.
felix
pansion time are handled differently in some way.
>
I guess during expansion identifiers are renamed to some internal gensym
and thus not accessible by name (which is the whole point of a hygienic
macro system). Could you not register the "foo" type in a expansion time
hash table?
felix
osition *ui-camera*)
>
> Is there a better way to do this? If not, can hypergiant be updated with
> this change?
Sounds like a working solution. But you better contact the author/maintainer
if you have change requests.
felix
I can't figure out what POINTS are supposed to be. I've tried list
> and vector of (make-point x y z) but I get:
"line-mesh" invokes "make-mesh", check out this page, perhaps it
gives you more information:
https://api.call-cc.org/5/doc/gl-utils/make-mesh
felix
l.
This should give you a static hyperscene build that
csm (hopefully) finds.
felix
;; hyperscene.egg -*- scheme -*-
((synopsis "Scene graph and spatial partitioning")
(author "Alex Charlton")
(maintainer "Adrien (Kooda) Ramos")
(category graphics)
(license &
doesn't work with "-c" (needed to generate an .o
file). Let me think about this...
felix
nsrc/hypergiant-examples' '-static'
> '/home/mrwellan/data/opensrc/hypergiant-examples/simple.scm' '-C'
> '-I/usr/include' '-L' '-L/usr/lib/x86_64-linux-gnu' '-L' '-lepoxy' '-L'
> '-lGL' '-L' '-static' '-L' '-lm' '-L' '-ldl' '-link' 'hyperscene'
>
It seems hyperscene is only build statically ("(linkage dynamic)" in
the hyperscene egg file), so no .o file is found to be linked.
You can try to modify the hyperscene egg to build a static extension
variant, just drop that linkage property.
felix
ink). We could add them in a future version of the core system,
I'd say. Peter, what do you think?
felix
hort
while (but there are cities as well, Göttingen and Kassel are
quite near), only transport is something that has to be solved -
there is a public transport system, but naturally it only provides
the very basic service.
If you need further advice or assistance, please contact me.
felix
Hi!
I have updated the wiki page for the event at
http://wiki.call-cc.org/event/village-chickens-2023
with some info regarding location and travel. Please
contact me if you have any questions or need assistance.
See you in June!
felix
ns. Have you looked at http://api.call-cc.org/5/doc/gochan ?
This model of communication may be more robust and flexible than using
the bare threading facilities. I haven't used it myself, but I believe
the erlang-inspired message passing / actor concept has turned out to be
a pretty good model of writing concurrent code.
felix
e name change + deprecation
was unwise (likely to be caused be me, initially). Now we will have
to stick with it and learn something for the future.
cheers,
felix
ependencies dynamically only.
I think this may require a csc option (to override the
default setting). I can look into this, but currently it
is not supported.
felix
is what I wish to all of you!
cheers,
felix
Hi!
I have added a wiki page for our next CHICKEN meeting:
http://wiki.call-cc.org/event/village-chickens-2023
The page contains some more details. Please make sure to announce
your participation until mid-January, so we can plan the event
accordingly.
cheers,
felix
me a note, giving your name
or nick, so that I get a rough idea about the expected number
of participants, which lets me plan accomodation and food.
The main event will be from 2nd to 4th of June, perhaps stretched
a few days in one or two directions. I'm just in the planning
phase yet.
ch
; ]; do
case "$1" in
-static) sf=-static;;
esac
shift
done
csm -compile-imports $sf
It's a totally mad hack - but, man, do I love to improvise ... :-)
felix
rying to solve and noticed that import
libs are not compiled by default by csm. If you use a custom-build
rule in an egg, it might be required to be able to do this.
I will try to come up with a simple test case and figure out how
to combine custom-build with csm.
felix
be a start. Perhaps we can cover this
particular scenario without too much extra effort.
felix
te. I don't think such a feature belongs
into the core system, but a preprocessor (perhaps by scavenging code
from csm) or a mode for csm to emit egg files might be appropriate.
felix
l search your libraries
before trying to resolve built-in or installed extension modules.
Should there be any problems, don't hesitate to ask for help.
cheers
felix
additions
to the egg-locations file are not synchronized.
felix
>
> ...aaand I've erred once more. Sorry, the following is the correct link for
> srfi-143:
>
> (srfi-143
> "https://git.sr.ht/~dieggsy/srfi-143/blob/master/srfi-143.release-info";)
>
Fixed.
felix
ht/~dieggsy/srfi-160/blob/master/srfi-160.release-info";)
> (srfi-179
> "https://git.sr.ht/~dieggsy/srfi-179/blob/master/srfi-179.release-info";)
> (srfi-197
> "https://git.sr.ht/~dieggsy/srfi-197/blob/master/srfi-197.release-info";)
>
Has been updated.
cheers,
felix
> 1) The SRFI-18 egg has not reached version 1. Which threading egg do you
> recommend for my simple case?
There is really just this one egg for threading. The version number
you should ignore - the code is in production use for ages.
felix
ly
to your case (and the overhead may eat up any performance advantages),
but you might keep this in mind as an idea.
felix
inside
a module (or in "block" mode), or, simpler, redefine your aliases
as macros, that way you can be sure the final code contains
references to the primitives.
felix
nips/yaml_static/yamltest.scm'
> /home/ubuntu/data/buildall/w23-0-ck5.3/lib/chicken/11/yaml.o: In function
> `f_3911':
> yaml.static.c:(.text+0xae1c): undefined reference to `yaml_parser_delete'
> yaml.static.c:(.text+0xae48): undefined reference to `yaml_parser_delete'
Does this egg require an external library to be linked? It looks like it
does. You need to add that.
felix
ic' 'mtargs.o' '-uses' 'mtargs' '/home/mrwellan/data/kvpub/inval.scm'
You are trying to link statically a program that uses the (chicken csi)
module, but there is no such object file for static linking available
(chicken.csi lives in "csi" the interpreter and is not part of libchicken
or the set of statically linkable extensions).
You have to create a shared object and load it into csi to be able to
use exports from the chicken.csi module.
felix
> Dear felix,
>
> after coming back to this function and the associated issues regularly, I
> revised my opinion on integrating"fp+*" into (chicken flonum), given it uses
> the C99-fma function. On the one hand, this operation is so fundamental in
> numerical com
m back will necessarily produce the same results. Therefore,
> any test that depends on that property should be skipped altogether.
>
Very good, thanks for the information.
felix
ly. I'm not too familiar with cygwin, what
should the tests report here? The cond-expand for "windows" should trigger
on cygwin, how is it handling the permission bits (as compared to "raw"
Windows systems)? Does it "fake" the normal UNIX permission bits?
felix
ed, you can find the source code at:
>
> https://github.com/nmeum/edward
>
> By now the editor is largely compatible with the POSIX ed(1)
> specification. As such, I also have a "buffer of lines" abstraction with
> POSIX ed undo support in `lib/buffer.scm`.
>
Brilliant!
felix
e last read operation,
your code will not work. You should read block-wise by using "read-string"
or read byte-wise (as does copy_c in your code).
felix
))
>
> To my suprise the result is "Fred dino Fred barney" instead of "Wilma
> dino Fred barney". What did I miss?
I haven't looked very deep into this, but it seems the replacement
lambda is called with the same match object for every substitution.
You don't seem to distinguish between the different matches in any
way - the result of the lambda will always be the same.
felix
mer: Even though I have almost 20 years of professional coding
> experience, I'm still pretty new to both Scheme and Lisp in general.
> Feedback of any kind is welcome!
The code is about as idiomatic as can get, no need to be modest
about it! :-)
Thanks again.
felix
you want to split up your code into several source files,
use "include" to include the files into a single compilation unit, the
files can include module definitions, if needed.
So if compile-times are not an issue for you, I'd suggest "include",
otherwise the trick suggested seems to me like the only alternative.
felix
Everybody!
I wish all of you a very happy christmas.
felix
n
the documentation as such. We may get there at some stage, and suggestions
would be very welcome.
Have a try with csm, if you like. It is rather new and may need some tweaking,
if you have any problems, please don't hesitate to contact me or this list.
felix
> Hi Felix,
>
> I did not know about csm (or perhaps forgot it's existence?). Anyhow it
> seems like a potentially much better solution than a
> hand-maintained Makefile. I've tried it on a couple code bases and I'm
> running into a few issues, some are just cruf
> Wow, that seems to have fixed it. Thanks!!
Also, I will not tire to point out that "csm" is always a viable alternative!
:-)
felix
ld help getting rid of the seprate *.import units.
felix
> Thanks Felix for looking. Both run with -:d and attached.
>
> I only see the following loading calls in dashboard.log:
>
> ; loading /home/matt/data/buildall/ck5.2/lib/chicken/11/
> chicken.time.import.so ...
> [debug] loading compiled library
> /home/matt/data/build
/11/chicken.time.import.so
> (0x555a9a701260)
> [debug] entering toplevel...
> ; loading ./debugprint.import.scm ...
> ; loading ./mtargs.import.scm ...
> ; loading ./commonmod.import.scm ...
> ; loading ./configfmod.import.scm ...
> ; loading /home/matt/data/buildall/ck5.2/lib/chicken/11/base64.import.so ...
>
Can you run both apps with the debug flags and show their output?
felix
t; and/or "-:d" do you get any information
regarding the loaded files?
felix
> Dear Felix,
>
> Thank you for the patch. I built the current git head with your patch.
> After importing chicken.flonum, I get the following error when calling fp*+:
>
I'm terribly sorry. I'm an ass, I didn't even test it in the interpreter. Please
find attached
inlining of
the fma(3) call.
cheers,
felix
From 0f9c68a2b3954eb7c7d2a6075d6b4dfa3dcfb2a5 Mon Sep 17 00:00:00 2001
From: felix
Date: Sun, 7 Nov 2021 13:48:31 +0100
Subject: [PATCH] Add support for fused-multiply-add
(suggested by Christian Himpe on chicken-users)
---
NEWS
the
noise regarding stack
usage, etc. In straight-line, dumb, cache-friendly C code it may make a
difference, I guess...
I will provide an experimental patch for the new operation. Stay tuned.
felix
iler options
to enable this, see for example:
https://stackoverflow.com/questions/15933100/how-to-use-fused-multiply-add-fma-instructions-with-sse-avx
felix
ou should see comparable performance.
Also, default optimization-levels for C are -Os (pass -v to csc to see what is
passed to the C compiler), so using -O2 instead should make a difference.
felix
.
felix
strictions
regarding stack-allocated floats, so perhaps there is something borked in that
regard. I wouldn't
worry too much about it, though.
felix
ries
are found, resolved and evaluated properly. Once again, I can not help but point
towards "csm"[1], as a natural and convenient (yet, apparently sadly ignored),
tool-based solution to this problem.
cheers,
felix
[1] http://api.call-cc.org/5/doc/csm
S library is
> becoming a de facto standard). You already support (include "...") and
> (cond-expand ...) in a similar manner as R7RS.
Note that include-files and loaded libraries are two different things,
also in CHICKEN, libraries are usually compiled, so the .sld convention
is only partially useful.
felix
S -X R7RS", which is a mouthful, and could be abbreviated, that
doesn't look to me like too much hassle.
Anybody for a "-r7rs" option that does the above?
felix
onfusion, but this mainly comes from
the fact that static linking uses a facility for resolving module toplevel and
initialization code from the whole module and namespacing machinery.
---
BTW, the "csm" utility, provided by the egg of the same name, figures this out
automatically, just put trymod.scm and mymod.scm into an empty directory
and enter
csm -program trymod
or
csm -program trymod -static
Add -d and -v to see what the program is doing and how things are compiled.
felix
solve.
Extensions have to follow certain constraints, but it is unnecessary to impose
these constraints on building more complex applications.
felix
> Exactly what I was looking for!
Feedback is welcome. Should you experience any problems, don't hesitate to
report them.
felix
uot;-w", which may indicate further
problems. I"m not a C++ expert, but there are some rather peculiar coding
choices in there. I'm not keen on digging too much into the codebase, though,
so unless users report genuine bugs, we should wait and watch.
Thanks for the report.
felix
ut will of course still contain bugs and shortcomings. Please send bug reports
or
questions to this list or to me directly.
felix
es 2 modules, I"m not sure chicken-install can detect that the extension
consists of 2 files, with one module for each.
felix
rhaps a import library (and fails and thus
treats
the binary data as source code). Is your CHICKEN setup working properly?
felix
nce. There are a few
parameters than can be tweaked once there exists more experience with
using this database.
Many thanks to Luke K. for inspiration and fruitful discussions regarding
a suitable Scheme API.
felix
isual feedback would give the user some confidence that things
> are proceeding.
>
This should actually be fixed in recent versions CHICKEN. Evan has added a
change addressing exactly this.
felix
.
The results of the event can be found here:
http://wiki.call-cc.org/event/coding-jam-2021-results
Links to talks and presentation videos are included.
See you next time!
felix
Hi, folks!
The CHICKEN Coding Jam 2021 has officially started. Please join
#ChickenCodingJam on irc.freenode.net to participate. Everybody is
welcome!
Visit
http://wiki.call-cc.org/event/coding-jam-2021
for the schedule and up-to-date information about the event.
felix
1 - 100 of 3094 matches
Mail list logo