hello,
i'm developing an extension to Scheme
and i need a procedure or macro that define a variable only if it is not
bind and if it is just set! it.
I can not do it in Guile or any Scheme,and i'm desperately searching a way
to do that. I finally conclude that it can be done only by adding it in t
i apologize for my late answer,
i wrote a long draft mail with code yesterday for answering but it is too
long i think to be send and will confuse everyone,
i'm testing a lot of answer,perhaps modifying my goals too!,
and try to summarize all that,not easy.
for now my goal change a little bit,i
(top-level?) variables,not lexically scoped:
scheme@(guile-user)> (if #t (begin {t <§ 57} (+ t 1) ) 'never)
;;; :58:27: warning: possibly unbound variable `t'
$7 = 58
worked!
scheme@(guile-user)> t
$8 = 57
but now the nested variable in conditional branch is global (can be
g. (but note that if <- is called on an already existing
variable of a different scope,upper or global,or top-level, i want ot be
able to set! it)
I want to be able to control the scoping of variables so i can make this
assignment operator the way i want,and also propose different assignment
operat
06 AM William ML Leslie <
william.leslie@gmail.com> wrote:
> You could do it the same way python does it: have `def` be a macro that
> inspects its body for assignments to symbols, and then let-bind them at the
> top of the function.
>
> On Wed, 22 Sep 2021, 6:45 pm Damien
On Wed, Sep 22, 2021 at 11:52 PM William ML Leslie <
william.leslie@gmail.com> wrote:
> On Thu, 23 Sep 2021, 4:51 am Taylan Kammer,
> wrote:
>
>> On 22.09.2021 11:53, Damien Mattei wrote:
>> > i already do it this way for internal defines ,using a recursi
ile/docs/master/guile.html/Syntax-Transformer-Helpers.html
but not at toplevel ???
Scheme Procedure: *syntax-local-binding* *id
[#:resolve-syntax-parameters?=#t]*
Resolve the identifer id, a syntax object, within the current lexical
environment
for this reason i still searching a solution that would
:27 PM Taylan Kammer
wrote:
> On 23.09.2021 19:27, Damien Mattei wrote:
> > yes i know parsing the whole code is the only portable solution, but it
> is slow,even on a few dozen of lines the slowing is visible ,so i can even
> think of that on one thousand lines...
> >
> >
yes i'm using GNU Guile 3.0.7,
https://www.gnu.org/software/guile/docs/master/guile.html/Syntax-Transformer-Helpers.html
i have tested a lot , even define-once again and i choose to use to
assignment operators and portable code because the non-portable function do
not bring more, finally it was no
branch of code the way python do it that can
be seen from the whole procedure.I do not think it is a good idea and
useful. But i hoped to be able to avoid a 'declare' at the top or somewhere
but declaration even in Scheme could be necessary with some typed Scheme or
when using object oriented
seems to be a pretty work, but why there is not a simple example in the doc
about make supervector :-O ? perhaps for you it is evident what is it but
for an outside people to the project it is not.
Damien
On Sat, Oct 2, 2021 at 6:55 PM Stefan Israelsson Tampe <
stefan.ita...@gmail.com> wrote:
> I
hello,
what it is the good place or way to submit or correct errors and typos in
guile documentation?
for example here:
https://www.gnu.org/software/guile/manual/html_node/while-do.html
the result of :
(do ((i 1 (1+ i))
(p 3 (* 3 p)))
((> i 4)
p)
(format #t "3**~s is ~s\n" i p))
ok thanks,
i will try to remember that if a next time
regards,
damien
On Mon, Nov 22, 2021 at 7:31 PM lloda wrote:
>
> Hi,
>
> I just fixed this in git, thanks for the report.
>
> But yeah, if you have more, like Arun says, ideally send it to bug-guile.
> That way if no one gets to it immediatel
gs,see:
https://damien-mattei.github.io/Scheme-PLUS-for-Guile/Scheme+io.html
or:
https://github.com/damien-mattei/Scheme-PLUS-for-Guile/blob/main/README.md
static light HTML page:
https://damien-mattei.github.io/Scheme-PLUS-for-Guile/Scheme+.html
direct link to code and README:
https://gith
t;
> Another thing would be to not use call/cc in the def form. Let/ec is a lot
> faster.
>
> --
> Linus Björnstam
>
> On Mon, 20 Dec 2021, at 01:05, Damien Mattei wrote:
> > Hi,
> > I finished today the first version of Scheme+.
> > Scheme+ is an extension
hello,
why guile array differs from SRFI 25:
make-array syntax :
https://www.gnu.org/software/guile/manual/html_node/Array-Procedures.html
(make-array 'ho 2 3) ⇒ #2((ho ho ho) (ho ho ho))
different than srfi 25:
https://srfi.schemers.org/srfi-25/srfi-25.html
(make-array shape obj)
Returns a
-- Forwarded message -
From: Damien Mattei
Date: Tue, Jan 11, 2022 at 9:34 PM
Subject: Re: guile array different than srfi 25
To: lloda
sorry i have no time for this, perhaps only the creation of array differs
regards
Damien
On Tue, Jan 11, 2022 at 6:22 PM lloda wrote
Hello,
i have released the version 2.0 of Scheme+ for Guile:
https://github.com/damien-mattei/Scheme-PLUS-for-Guile
Scheme+ is an extension of the syntax of the Scheme
<https://en.wikipedia.org/wiki/Scheme_%28programming_language%29> language.
Scheme+ makes it easy the assignment of
GNU Guile 3.0.1
Copyright (C) 1995-2020 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(g
-- Forwarded message -
From: Damien Mattei
Date: Wed, Aug 3, 2022 at 11:51 AM
Subject: Re: string is read-only
To: Thomas Morley
ok
and i suppose it is the standard, i have been confused by other schemes or
racket where my code worked:
CHICKEN
(c) 2008-2019, The CHICKEN Team
(c
#x27;(1 2 3))
scheme@(guile-user)> (set-car! lst 7)
scheme@(guile-user)> lst
(7 2 3)
which seems not logic.(but i recognize the behavior of Scheme of '80 even
if i no more use set-car! and set-cdr!)
Damien
On Wed, Aug 3, 2022 at 11:41 AM Maxime Devos wrote:
>
> On 03-08-2022 1
On Wed, Aug 3, 2022 at 12:59 PM Maxime Devos wrote:
>
> (My unverified hypothesis on why you aren't seeing an error here.)
>
>
> it would be a big change and very strange :-O if the few lines of code
below in scheme returned an error on lists:
but no restrictions with lists in Guile:
scheme@(gu
>
> It's how all Lisps, including guile, works. So, yes, if one is
> interested in these languages, this is interesting knowledge :)
>
Pierpaolo you sense of humour is tickling me :-)
i admit it is not common nowadays to set-car! or set-cdr! and my teachers
at the time i learn it
forbided it and
Hello,
i'm facing sometimes recursively the problem to have definitions in
expression context, which i manage every time by adding an upper empty (let
() my definitions goes here )
the last case i was facing this probleme is defining a 'for macro:
;; scheme@(guile-user)> (for ({i <+ 0} {i < 5} {i
hello Maxime,
On Sat, Aug 27, 2022 at 7:00 PM Maxime Devos wrote:
>
> On 27-08-2022 18:48, Damien Mattei wrote:
>
> My ideas is as it is so easy to cheat the compiler
>
> I don't think it's cheating or abusive.
>
> from seeing the expressio context w
-- Forwarded message -
From: Damien Mattei
Date: Mon, Aug 29, 2022 at 12:09 PM
Subject: Re: expression and definition context in Scheme
To: Maxime Devos
yes , the same with 'while too, i will make it in my Scheme+ to allow inner
'define in those blocks without other
d do as well as in
> derived forms.
>
> --
> Linus Björnstam
>
> On Sat, 27 Aug 2022, at 18:48, Damien Mattei wrote:
> > Hello,
> >
> > i'm facing sometimes recursively the problem to have definitions in
> > expression context, which i manage every time by
On Wed, Aug 31, 2022 at 5:29 PM Maxime Devos wrote:
>
> On 31-08-2022 09:01, Damien Mattei wrote:
> > I always try to keep compatibility with RnRS and in fact except cond
> > none of when, unless, cond, case, while, and do are in standart RnRS
> schem
>
> 'when&
i finalize my ideas about 'controls' and loops (with break and continue, as
while feature them ,even if scheme and macro do not allow ? (if someone
else have idea and solution about it?) implements of 'continue and 'break
because hygiene forbid it)
https://github.com/d
Hello,
i can not find in the scheme community a definition of 'case in term of
macro as for when, unless,while,do... does anyone have it?
thanks,
Damien
uot;step" var step ...)
...))
(loop init ...)))
((do "step" x)
x)
((do "step" x y)
y)))
regards,
Damien
On Mon, Sep 12, 2022 at 9:46 AM Zelphir Kaltstahl <
zelphirkaltst...@posteo.de> wrote:
> Hello Damien,
>
> On 9/12/22
just forget to add , if it is unclear it is 'case of scheme:
https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/if-cond-case.html#if-cond-case
On Mon, Sep 12, 2022 at 10:27 AM Damien Mattei
wrote:
> sorry if my question was unclear , i search the source code if it exist in
>
thanks, if just replaced the 'begin by 'let () to allow internal
definitions but i haven't test it yet (finally no need in my code of define
internal at this point)
regards,
Damien
On Mon, Sep 12, 2022 at 10:47 AM Taylan Kammer
wrote:
> On 12.09.2022 09:42, Damien Mattei wr
Hello,
all is in the title, i test on a approximately 3 element list , i got
9s with map and 3min 30s with par-map on exactly the same piece of code!?
what i change in code is in comments:
{unified-minterms-set-1 <+ (map function-unify-minterms-list minterms-set)}
;;(par-map function-unify-min
was defined at top level and shared by all threads!!! yes
there could have be some mutex but this is not the case, i think even all
function are pure so why is it more slow with // than without?
Damien
On Wed, Oct 12, 2022 at 8:45 PM Maxime Devos wrote:
> On 12-10-2022 19:19, Damien Mattei wr
https://github.com/damien-mattei/library-FunctProg/blob/master/guile/logiki%2B.scm#L1674
i commited the current version of code here with all files but it is
huge :-/
On Wed, Oct 12, 2022 at 10:20 PM Damien Mattei
wrote:
> Mutex? i do not think code has situation where dead lock co
n Wed, Oct 12, 2022 at 11:55 PM Olivier Dion
wrote:
> On Wed, 12 Oct 2022, Damien Mattei wrote:
> > Hello,
> > all is in the title, i test on a approximately 3 element list , i got
> > 9s with map and 3min 30s with par-map on exactly the same piece of
> > code!?
>
ng it
step by step will show where is the bottleneck, let me just a few time and
i will go back to the mailing lists with interesting results i hope
On Thu, Oct 13, 2022 at 9:40 AM Damien Mattei
wrote:
> ok , i think the problem comes both from my code and from guile parmap so.
> Obviou
i trying to use your code but it seems there is a ) mismatch somewhere?
On Wed, Oct 12, 2022 at 11:55 PM Olivier Dion
wrote:
> On Wed, 12 Oct 2022, Damien Mattei wrote:
> > Hello,
> > all is in the title, i test on a approximately 3 element list , i got
> > 9s with
sorry google always do reply to single author...
-- Forwarded message -
From: Damien Mattei
Date: Thu, Oct 13, 2022 at 1:56 PM
Subject: Re: map-par slower than map
To: Olivier Dion
ah just at the end? i had noticed, but i get #unspecifeid ? so my new code
is not good if your
; i rest)
(let ((i (+ i base)))
(vector-set! output i (proc (vector-ref input i
(lp (1+ i)
output
now it works but crash randomly, not even at the same stage, i continue to
test and debug
On Thu, Oct 13, 2022 at 1:57 PM Damien Mattei
wrote:
> sorry google always do reply to sin
i do not see what has changed in your code ?
really strange,even with bad code the moment it crash should be the same,
sometimes works,crash or freeze
On Thu, Oct 13, 2022 at 2:41 PM Olivier Dion
wrote:
> On Thu, 13 Oct 2022, Damien Mattei wrote:
> > the code did not worked
On Thu, Oct 13, 2022 at 4:06 PM Olivier Dion
wrote:
> On Thu, 13 Oct 2022, Damien Mattei wrote:
> > i do not see what has changed in your code ?
>
> Just copy it. Trust me it has changed.
>
really ? :-) i read it 3 times line by line, yes the end is cut ,still no
ending
le 'curly-infix)
;; set current path in load path
(set! %load-path (reverse (cons "." (reverse %load-path
;; other solution is to put this in shell:
;; export GUILE_LOAD_PATH="...:."
On Thu, Oct 13, 2022 at 4:10 PM Damien Mattei
wrote:
>
>
> On Thu, Oct 13, 202
available CPUs or nodes, if i understand well?
Regards,
Damien
On Wed, Oct 12, 2022 at 11:29 PM Zelphir Kaltstahl <
zelphirkaltst...@posteo.de> wrote:
> Hi!
>
> On 10/12/22 22:27, Damien Mattei wrote:
> >
> https://github.com/damien-mattei/library-FunctProg/blob/master/gu
of CPUs (6):
cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
processor : 2
processor : 3
processor : 4
processor : 5
https://github.com/damien-mattei/library-FunctProg/blob/master/guile/logiki%2B.scm#L1900
(declare minterms-vector unified-minterms-vector-1)
(define (funct-unify-mi
;= end} {i <- {i + 1}})
{mtL <+ {minterms-vector[i]}}
(nodebug
(dv mtL))
{unified-minterms-vector-1[i] <- (function-unify-minterms-list
mtL)}))
(declare minterms-vector unified-minterms-vector-1)
https://github.com/damien-mattei/library-FunctProg/blob/master/gu
think futures are easy to use but limited
in solving acute // problems, such as using a global variable like an hash
table...
Damien
On Mon, Oct 17, 2022 at 3:17 PM Damien Mattei
wrote:
> Hello,
>
> sorry for my late answer ( i wrote the code friday but i could only debug
> today
ved to
>> support fine grained parallelism. :-)
>>
>> Best regards,
>> Mikael
>>
>> On Wed, Oct 12, 2022 at 11:30 PM Zelphir Kaltstahl <
>> zelphirkaltst...@posteo.de> wrote:
>>
>>> Hi!
>>>
>>> On 10/12/22 22:27, Dam
thanks,hope it will be in a next stable release of Guile
regards,
damien
On Wed, Nov 9, 2022 at 4:34 PM Linus Björnstam
wrote:
> Hi there!
>
> This commit adds internal definitions to derived conditional forms,
> with-fluids and and-let*. This means the bodies of when, unless and
> with-fluids,
Hello,
i almost never use a debugger but in C as a student.
Never after.
programming in a functional style and if in need print some debug
information, all my program worked and the only hard problem were not due
to implementation but algorithm,and for that the debugger is useless...
http://i-exc
hello,
just trying transducers before using it, i try to understand.
what is wrong with that:
scheme@(guile-user)> (list-transduce (tfilter (λ (x) x))
(tdelete-duplicates) (list 1 2 #f 3 3 4))
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Wrong number of arguments to #
Entering a new pro
i just understood the scheme :-)
scheme@(guile-user)> (list-transduce (compose (tfilter (λ (x) x))
(tdelete-duplicates)) rcons (list 1 2 #f 3 3 4))
$12 = (1 2 3 4)
sorry...
On Thu, Dec 22, 2022 at 3:33 PM Damien Mattei
wrote:
> hello,
> just trying transducers before using it,
:
;; 7'08" MacOS Ventura M1
{unified-minterms-set <+ (list-transduce (compose (tfilter (λ (x) x))
(tdelete-duplicates)) rcons unified-minterms-set-1)}
it is an interesting 15% speed up in my code.
On Thu, Dec 22, 2022 at 3:52 PM Damien Mattei
wrote:
> i just understood th
code
but perheaps my test are not reliable, i can only explain some slow down
now due to CPU overloaded by another process in the system at different
moment in tests. I have no idea how to perform more reliable tests.
On Thu, Dec 22, 2022 at 6:32 PM Damien Mattei
wrote:
> i'm interested with tr
hello,
on Apple M1 i have this error:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48:
note: expanded from macro '__deprecated_msg'
#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
while trying to compile guile 3.0.7 on Apple M1...
On Mon, Dec 26, 2022 at 12:32 AM Damien Mattei
wrote:
> hello,
>
> on Apple M1 i have this error:
>
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h
://github.com/aconchillo/homebrew-guile/tree/master/Formula
>
> Some people dislike Homebrew very much and refuse to install it, so I
> totally understand if that's the case.
>
> Best,
>
> Aleix
>
> On Sun, Dec 25, 2022 at 3:33 PM Damien Mattei
> wrote:
>
&
thanks for your help Dale,anyway readline is a simple option but really
cool...
Damien
-- Forwarded message -
From: Damien Mattei
Date: Mon, Dec 26, 2022 at 3:31 PM
Subject: Re: compilation error on Apple M1
To:
hello Dale,
yes i had to install gsed (gnu sed):
brew install
ut Guile doesn't actually use those symbols. At one time (well
> over 10 years ago) I got Guile to work fine with the Apple readline by
> removing those specific ./configure checks.
>
> But you are probably better off by installing gnu readline.
>
> -Dale
>
>
> ---
Hello,
i can build the *git* version of Guile on a system Ubuntu:
uname -a
Linux moita 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022
x86_64 x86_64 x86_64 GNU/Linux
but i can not build the *stable* version:
configure without options is OK but when after make i got this error:
SNARF
https://github.com/damien-mattei/library-FunctProg/blob/master/guile-openMP.c#L91
the scheme+ code for speed test looks like that (i use collatz function to
make the computation unpredictable for any C compiler optimisations when i
compare with pur C code):
;; only for speed tests
{vtstlen <+ 26422
in memory if
the scm_init_guile() as already been launch for the current thread the
code is running now.
I also put omp_get_max_threads() in a static var as openmp() is called many
times in my codes and the number of available hardware cpus would change
never.
the code is here:
https://github.
i understand the fun thing... :-)
and i did not check the program with Guile but asked a Racket version of
the bouncing ball and it is full of errors even if i try to correct them by
hand...
Welcome to DrRacket, version 8.7 [cs].
Language: racket/gui, with debugging; memory limit: 8192 MB.
. . se
chatGPT is only a "predictor of the next word" ,okay perheaps a bit more
On Fri, Mar 17, 2023 at 8:09 PM Damien Mattei
wrote:
> i understand the fun thing... :-)
>
> and i did not check the program with Guile but asked a Racket version of
> the bouncing ball
chatGPT is using the "static" 2021 free data available on internet ,free
databases,... it knows poorly after 2021 as "they" say.
Without the human intelligence that has create all the data chatGPT can do
nothing.
Now people use chatGPT to create poor quality data stored on the internet
web page
hello,
i noticed that when defining a module and exporting a procedure not
defined this does not cause an error in Guile ( at the opposite to Racket
for example).
example:
(define-module (my_module)
#:export (my_undefined_procedure)
(include-from-path "file.scm"))
in REPL:
(use-modules (my_m
hello Christina,
i just add a #; support in Scheme+ :
https://github.com/damien-mattei/Scheme-PLUS-for-Guile
Scheme+ is an extension syntax to Scheme. It goes in the opposite direction
of Wisp or Rhombus (based on Racket) by keeping the same number of
parenthesis, but they are just differents
On Sat, Jan 20, 2024 at 9:07 PM Dr. Arne Babenhauserheide
wrote:
>
> Damien Mattei writes:
>
>
> > by keeping the same
> > number of parenthesis, but they are just differents : ( ), { }, [ ]
> > and it allow the use of infix expressions.
>
> Is your implement
On Sun, Jan 21, 2024 at 12:24 AM Dr. Arne Babenhauserheide
wrote:
>
>
> > Is your implementation of {} compatible with SRFI-105? (curly infix)
> >
> > yes it is based on SRFI-105
>
> That’s very cool!
>
> While I’m doubtful about your other changes in scheme+, this is an
> improvement that I’d l
Hello,
where is the doc of Wisp? i did not yet install it, as i understand it will
be included in next release of Guile?
what is the exact meaning of : and . ?
any simple examples?
regards,
Damien
On Sat, Jun 1, 2024 at 5:07 PM Dr. Arne Babenhauserheide
wrote:
> Hi Ludo’,
>
> Ludovic Courtès
thank you ,Arne give me some links too.
Damien
On Mon, Jun 10, 2024 at 10:13 AM Maxime Devos
wrote:
>
>
> >where is the doc of Wisp? i did not yet install it, as i understand it
> will be included in next release of Guile?
>
>
>
> Going by the the commit message, it now is in:
>
>
>
> > * doc/re
and how long for this one? 𓄿𓎢𓆑𓇋𓅃𓉔𓇌𓃀𓆓
😂
just my 2 cents...
about moving code from C to Scheme, it seems to be the Racket choice , they
had Racket written in C and now they have a new version based on Chez
Scheme that is mainly written in Scheme, they move a lot of code from C to
Scheme as far as i know...
About breaking backward compat
On Sat, Sep 7, 2024 at 7:52 PM Maxime Devos wrote:
>
>
>
> IIRC doing (set! some-variable some-variable) on the top-level on a
> variable of the module makes the module non-declarative by default, but
> please check the manual for details (there is some information on this, I
> don’t recall the n
75 matches
Mail list logo