Re: announce: guile_llama_cpp 0.1 release

2024-06-02 Thread Nala Ginrut
Thanks for the work!
I've tried a half baked poc but never have time to finish it.
So glad to see someone can finish it!

 Best regards.


On Mon, Jun 3, 2024, 13:46 Andy Tai  wrote:

> # guile_llama_cpp
>
> GNU Guile binding for llama.cpp
>
> This is version 0.1, Copyright 2024 Li-Cheng (Andy) Tai, a...@atai.org
> Available as
> https://codeberg.org/atai/guile_llama_cpp/releases/download/0.1/guile_llama_cpp-0.1.tar.gz
>
>
> Guile_llama_cpp wraps around llama.cpp APIs so llama.cpp can be
> accessed from Guile scripts and programs, in a manner
> similar to llama-cpp-ython allowing the use of llama.cpp in Python
> programs.
>
> Currently a simple Guile script is provided to allow simple "chat"
> with a LLM in gguf format.
>
> ## setup and build
>
> guile_llama_cpp is written in GNU Guile and C++ and requires
>
> Swig 4.0 or later, GNU guile 3.0, and llama.cpp (obviosuly)
>
> installed on your system.
>
> From sources, guile_llama_cpp can be built via the usual GNU convention,
>
> export LLAMA_CFLAGS=-I/include
> export LLAMA_LIBS=-L/lib -lllama
>
> ./configure --prefix=
> make
> make install
>
> Once in the future llama.cpp provides pkg-config support, the first
> two "export" lines can be omitted.
>
> If you are running GNU Guix on your system, you can get a shall with
> all needed dependencies set up with
>
> guix shell -D -f guix.scm
>
> and then use the usual
>
> configure && make && make install
>
> commands to build.
>
> ## run
>
> To use guile_llama_cpp to chat with a LLM (Large Language Model), you
> need to first download a LLM in gguf format.
> See instructions on the web such as
>
> https://stackoverflow.com/questions/67595500/how-to-download-a-model-from-huggingface
>
> As an example, using a "smaller" LLM "Phi-3-mini" from Microsoft; we
> would first download the model in gguf format via wget:
>
> wget
> https://huggingface.co/microsoft/Phi-3-mini-4k-instruct-gguf/resolve/main/Phi-3-mini-4k-instruct-q4.gguf
>
> then you can chat with it, in the build directory:
>
> ./pre-inst-env simple.scm  "What are the planets?"
> Phi-3-mini-4k-instruct-q4.gguf
>
> The general form to do a chat with a model is to invoke the script
> scripts/simple.scm
>
> simple.scm prompt_text model_file_path
>
> in the build directory, pretend the command with
>
> ./pre-inst-env
>
> as it sets up the needed paths and environment variables for proper
> guile invocation.
>
> Currently, the chat supported is limited; you would see the replies
> from the LLM cut of after a sentence or so.
> The outputs length issue will be further addressed in future releases.
>
> ## roadmap
>
> * support for continuous chat, with long replies
> * support for expose the LLM as a web end point, using a web server
> built in Guile, so
>   the LLM can be done via a web interface, to allow chatting with remote
> users
> * support for embedding LLMs in Guile programs for scenarios like LLM
> driven software
>   agents
>
> ## license
>
> Copyright 2024 Li-Cheng (Andy) Tai
> a...@atai.org
>
> This program is licensed under the GNU Lesser General Public License,
> version 3
> or later, as published by the Free Software Foundation. See the license
> text in the file COPYING.
>
> gde_appmenu is distributed in the hope that it will be useful, but
> WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
> General
> Public License for more details.
>
> Hopefully this program is useful.
>
>


Re: custom module loading and compilation

2024-05-13 Thread Nala Ginrut
Hi Paul!
I don't know why you don't use the standard module definition and
import/export interface, but if you do want to play modules with
the introspection functions, here's a hint for you:

---
 (define (export-all-from-module! module-name)
   (let ((mod (resolve-module module-name)))
 (module-for-each (lambda (s m)
(module-add! (current-module) s m)) mod
---

This function can be used to export all symbols from a specified
module-name. You may modify it for your case.

Best regards.

On Sat, May 11, 2024 at 5:03 PM Paul Jarc  wrote:

> Hi.  I'm writing a custom module system that avoids the standard
> search path and list-of-symbols naming scheme.  Instead of using
> use-modules and define-module, I have a roughly similar procedure,
> let's call it my-load, that creates a module with make-module and
> loads a file into it with primitive-load.  I want to make my-load
> automatically available within the modules I load so that they can use
> it to load other modules too.  So my-load adds itself to each new
> module using module-define! before calling primitive-load.
>
> This works when I run Guile with --no-auto-compile, but with
> compilation enabled, I get:
> ;;; Unbound variable: my-load
> How can I make the binding visible to the compiler?
>
> ;;main.scm
> (define (my-load path-to-macros)
>   (let ((new-module (make-module 0 `(,(resolve-interface '(guile))
> (module-define! new-module 'my-load my-load)
> (save-module-excursion
>   (lambda ()
> (set-current-module new-module)
> (primitive-load path-to-macros)))
> (let ((interface '(my-macro)))
>   (for-each (lambda (sym)
>   (module-define! (current-module) sym
>   (module-ref new-module sym)))
> interface
> (eval-when (compile load eval)
>   (my-load "/path/to/macros1.scm"))
> (display (my-macro 5))
> (newline)
>
> ;;macros1.scm
> (eval-when (compile load eval)
>   (my-load "/path/to/macros2.scm"))
> (display (my-macro 3))
> (newline)
>
> ;;macros2.scm
> (define-syntax my-macro
>   (syntax-rules ()
> ((_ x) (+ x x
>
>


Re: guile-xapian 0.4.0 released

2024-05-13 Thread Nala Ginrut
Ricardo!
Thanks for the explanation. It's clear to me now.

Best regards.


On Mon, May 13, 2024, 18:47 Ricardo Wurmus  wrote:

> Nala Ginrut  writes:
>
> > I'm not familiar with Xapian, is it possible to do similar things as
> > VectorDB?
>
> Xapian cannot directly be used to build a vector database.  (I use
> the pg_vector extension to postgresql for that purpose.)
>
> Xapian creates a more traditional index for finding matching documents
> with optimizations for full text and boolean searches.
>
> --
> Ricardo
>


Re: dereferencing C pointer at scheme level

2024-05-12 Thread Nala Ginrut
Hi Andy!
Short answer: dereference-pointer

Longer answer: this post may help
https://nalaginrut.com/archives/2015/03/27/do-some-quick-and-dirty-with-guile-ffi

Best regards.

On Mon, May 13, 2024, 06:53 Andy Tai  wrote:

> Hi, a question on access to C pointer in scheme:
>
> if a C function returning a pointer is wrapped and accessed from scheme
> code,
>
> int64_t * func() {
> int64_t *p = make_new_pointer();
>*p = // something
>
>return p;
> }
>
> in scheme (GNU guile)
> (set! p (func))
>
> it is possible to see that p is now a pointer.  How to dereference the
> pointer to get the value it points to, in guile, on the scheme side?
> Thanks
>
>


Re: guile-xapian 0.4.0 released

2024-05-10 Thread Nala Ginrut
Congrats!
I'm not familiar with Xapian, is it possible to do similar things as
VectorDB?

Best regards.

On Fri, May 10, 2024, 23:56 Arun Isaac  wrote:

>
> Hi all,
>
> guile-xapian 0.4.0 has been released.
>
> guile-xapian provides Guile bindings for Xapian[1], a search engine
> library used in popular applications such as the notmuch email
> system. Xapian is a highly adaptable toolkit which allows developers to
> easily add advanced indexing and search facilities to their own
> applications. It has built-in support for several families of weighting
> models and also supports a rich set of boolean query operators.
>
> [1]: https://xapian.org/
>
> Please find links to the project home page and tarball below. The
> changes in this release are described in the NEWS file in the tarball.
>
> https://guile-xapian.systemreboot.net/
> https://guile-xapian.systemreboot.net/releases/guile-xapian-0.4.0.tar.lz
>
> https://guile-xapian.systemreboot.net/releases/guile-xapian-0.4.0.tar.lz.asc
>
> Cheers!
> Arun
>
>


Third-parties are back to upstream

2024-05-03 Thread Nala Ginrut

Hi folks!
I've removed intergrated guile-redis & guile-json in Artanis, and tweaked the
interfaces, so folks may install their prefered version from upstream.

Artanis become more lightweight now.
And this will also alleviate the pain of the packagers.

The CI tests are passed.
https://gitlab.com/hardenedlinux/artanis/-/pipelines/1278224717

The default tested versions in CI are:
guile-json-4.7.3
guile-redis-2.2.0

Tests and comments are welcome!

Best regards.

-- 
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


GNU Artanis-0.6 released [stable]

2024-04-29 Thread Nala Ginrut

GNU Artanis is a modern web application framework for Scheme.

Features:

GPLv3+ & LGPLv3+
- Very lightweight - easy to hack and learn for newbies.
- Support JSON/CSV/XML/SXML.
- A complete web-server implementation, including an error page handler.
- High concurrent async non-blocking server core based on delimited 
continuations.
- Has a Sinatra-like style route, hence the name "Artanis" ;-)
- Supported databases (through guile-dbi): MySQL/SQLite/PostgreSQL.
- Nice and easy web cache control.
- Efficient HTML template parsing.
- Efficient static file downloading/uploading.

GNU Artanis is both GNU and HardenedLinux official project.

https://artanis.dev

Here are the compressed sources:
http://ftp.gnu.org/gnu/artanis//artanis-0.6.tar.gz   (552KB)
http://ftp.gnu.org/gnu/artanis//artanis-0.6.tar.bz2   (468KB)

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/artanis//artanis-0.6.tar.gz.sig
http://ftp.gnu.org/gnu/artanis//artanis-0.6.tar.bz2.sig

Use a mirror for higher download bandwidth:
http://www.gnu.org/order/ftp.html

Here are the MD5 and SHA1 checksums:

3a706068076f0df4fcc5ecb43f9b881b  artanis-0.6.tar.gz
edafd8a97c8fcb3220320c75306fef6e  artanis-0.6.tar.bz2
b69622b678d5e79ea1c4258da58a9fedc44a2946  artanis-0.6.tar.gz
0f51d3c3305ac583c81080c9a664c2c598f6395a  artanis-0.6.tar.bz2

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

gpg --verify artanis-0.6.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

gpg --keyserver keys.gnupg.net --recv-keys 
F53B4C5695B5E4D56093432484696772846A0058

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
Autoconf 2.69
Guile 3.0.5

NEWS

Changes in 0.6
* Notable changes
- Add (artanis client)
- Fix many bugs in DB operations
- Fix cookie expires

--
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


Re: [ANN] Guile Hoot 0.4.0 released!

2024-04-09 Thread Nala Ginrut
Congrats!
I'm considering to integrate Hoot in Artanis, so that folks may write both
web front/backend with Scheme.

Best regards.

On Tue, Apr 9, 2024, 23:13 Thompson, David  wrote:

> Hey Guilers!
>
> On behalf of the Spritely Institute, I'm happy to announce that Guile
> Hoot v0.4.0 has been released! Hoot is a Scheme to WebAssembly
> compiler backend for Guile, which means you can now run Scheme in the
> browser for real, tail calls and all.
>
> The highlights of this release are:
>
> * Hoot now supports user-defined modules.  Users no longer have to
>   stuff their entire program into one file!
>
> * The standard library is now available as a collection of importable
>   modules.  Hoot provides the R7RS (scheme ...) namespace, as well as
>   its own (hoot ...) namespace.
>
> * An example project was added to the source tree in Git to serve as
>   an easy starting point for new Hoot projects.  This example project
>   also ships with our official release tarballs.  See the template's
>   README [0] for more information.
>
> * More of R7RS-small has been implemented and Hoot can now run 54 out
>   of 57 Scheme benchmarks! [1] (Note that this data is currently just
>   from my machine.  The official benchmark server will need to be
>   capable of running NodeJS 22+, or another V8 distro, before Hoot
>   results could be published there.)
>
> Read the full release notes here:
>
> https://spritely.institute/news/guile-hoot-v040-released.html
>
> If you use Guix then it's easy to try out Hoot:
>
> guix pull
> guix shell guile-next guile-hoot
>
> Happy hooting!
>
> - Dave
>
> [0]
> https://gitlab.com/spritely/guile-hoot/-/blob/main/examples/project-template/README.md?ref_type=heads
>
> [1] https://ecraven.github.io/r7rs-benchmarks
>
>


Re: Screaming-Fist: a JIT framework for Guile

2023-12-05 Thread Nala Ginrut
Hi folks, I confirmed that gcc_jit_context_new_rvalue_from_int is an
abstract for various numbers.

So the number's validation would be added then.

Best regards.

On Tue, Dec 5, 2023, 18:14 Nala Ginrut  wrote:

> Hi Maxime!
>
>
>
> On Tue, Dec 5, 2023, 05:26 Maxime Devos  wrote:
>
>>
>>
>> Op 03-12-2023 om 18:26 schreef Nala Ginrut:
>> > (jit-define (square x)
>> >(:anno: (int) -> int)
>> >(* x x))
>> > (square 5)
>>
>>
>> Potentially-overflowing arithmetic involving ints (not unsigned ints,
>> but ints)? Best document somewhere to what the jit code '(* x x)'
>> evaluates when (not (<= min-int (* x x) max-int))).
>>
>
> There's no type inference in libgccjit, so the high level framework has to
> handle accurate types.
>
> I use "int" here because libgccjit only provides int rvalue constructor,
> yet. It seems lack of rich number types as rvalue in the present
> implementation. Even boolean has to be handled by high level framework and
> cast it to int respectively.
>
> May be we need GCC folks help.
>
>
>> Personally, I'm in favor of explicit long names like
>>
>> */error-on-overflow (<-- maybe on the C-level the function could
>> return a tagged union representing (failure [no value]) / (success [some
>> value], at a slight performance cost)
>> */wrap-around
>> */undefined-on-overflow (<-- like in C, for maximal performance and
>> dragons).
>>
>
> There was such check, but I've removed it. Since even you detect the
> int/short/long exactly, libgccjit only provides int rvalue for all cases of
> numbers. I'm not sure if it's waiting for contribution or intended as an
> unified int abstract.
>
>
>> (Likewise for +, - and unsigned int)
>>
>> Sure, they are a bit verbose, but they are explicit and
>> non-explicitness+undefined behaviour of'*' in C has caused serious
>> issues in the past, so I'd think it's better that the programmer has to
>> choose what, in their situation, are the appropriate semantics.
>>
>
> I see your point :-)
> Yes, it's a bit hard to provide an abstract arithmetic with type inference
> for all cases, providing each for different types will be easier and
> flexible.
>
> Thanks!
> Best regards.
>
>
>>


Re: Screaming-Fist: a JIT framework for Guile

2023-12-05 Thread Nala Ginrut
Hi Maxime!



On Tue, Dec 5, 2023, 05:26 Maxime Devos  wrote:

>
>
> Op 03-12-2023 om 18:26 schreef Nala Ginrut:
> > (jit-define (square x)
> >(:anno: (int) -> int)
> >(* x x))
> > (square 5)
>
>
> Potentially-overflowing arithmetic involving ints (not unsigned ints,
> but ints)? Best document somewhere to what the jit code '(* x x)'
> evaluates when (not (<= min-int (* x x) max-int))).
>

There's no type inference in libgccjit, so the high level framework has to
handle accurate types.

I use "int" here because libgccjit only provides int rvalue constructor,
yet. It seems lack of rich number types as rvalue in the present
implementation. Even boolean has to be handled by high level framework and
cast it to int respectively.

May be we need GCC folks help.


> Personally, I'm in favor of explicit long names like
>
> */error-on-overflow (<-- maybe on the C-level the function could
> return a tagged union representing (failure [no value]) / (success [some
> value], at a slight performance cost)
> */wrap-around
> */undefined-on-overflow (<-- like in C, for maximal performance and
> dragons).
>

There was such check, but I've removed it. Since even you detect the
int/short/long exactly, libgccjit only provides int rvalue for all cases of
numbers. I'm not sure if it's waiting for contribution or intended as an
unified int abstract.


> (Likewise for +, - and unsigned int)
>
> Sure, they are a bit verbose, but they are explicit and
> non-explicitness+undefined behaviour of'*' in C has caused serious
> issues in the past, so I'd think it's better that the programmer has to
> choose what, in their situation, are the appropriate semantics.
>

I see your point :-)
Yes, it's a bit hard to provide an abstract arithmetic with type inference
for all cases, providing each for different types will be easier and
flexible.

Thanks!
Best regards.


>


Re: Screaming-Fist: a JIT framework for Guile

2023-12-05 Thread Nala Ginrut
hi Arne!
Not yet, I'm still working on it before any convincing complex code for
performance evaluation.

The idea is to provide a Scheme like functional IR to make JIT easier to
use. However, the libgccjit IR is imperative based on assignments and
statements. So there are more works to do other than a traditional binding.


Best regards.

On Mon, Dec 4, 2023 at 4:49 AM Dr. Arne Babenhauserheide 
wrote:

>
> Nala Ginrut  writes:
> > Hi Folks!
> > I'd like to introduce our new project named screaming-fist which is a JIT
> > framework based on libgccjit.
> > (import (screaming-fist jit))
> >
> > (jit-define (square x)
> >   (:anno: (int) -> int)
> >   (* x x))
> > (square 5)
>
> That looks interesting!
>
> Do you already have performance data?
>
> Best wishes,
> Arne
> --
> Unpolitisch sein
> heißt politisch sein,
> ohne es zu merken.
> draketo.de
>


Screaming-Fist: a JIT framework for Guile

2023-12-03 Thread Nala Ginrut
Hi Folks!
I'd like to introduce our new project named screaming-fist which is a JIT
framework based on libgccjit.

The project is still preliminary, but the POC could run.

The basic idea is to hide the JIT details and let users write Scheme-like
code for JIT on the fly.

here's the simple code:

(import (screaming-fist jit))

(jit-define (square x)
  (:anno: (int) -> int)
  (* x x))
(square 5)

;; ==> 25
--

And you can dump IR, say, gimple:
--

(import (screaming-fist utils) (screaming-fist jit))
(parameterize ((dump-mode "gimple"))
 (jit-define (square x)
  (:anno: (int) -> int)
  (* x x)))

---


The possible output could be:

--

int square (int x){
  int D.79;

  :
  D.79 = x * x;
  return D.79;}



The branching and looping codegen is still under debugging.

Here's the project page:

https://gitlab.com/SymeCloud/screaming-fist

Happy hacking!


Re: Guile Hoot v0.2.0 released!

2023-11-30 Thread Nala Ginrut
Neat! Congrats!

On Fri, Dec 1, 2023, 04:09 Thompson, David  wrote:

> Hey Guilers!
>
> On behalf of the Spritely Institute, I'm happy to announce that Guile
> Hoot v0.2.0 has been released! Hoot is a Scheme to WebAssembly
> compiler backend for Guile, which means you can now run Scheme in the
> browser for real, tail calls and all.
>
> The highlights of this release are:
>
> * Nearly all of R7RS-small is now implemented! Hoot 0.2.0 is now
> capable of running many more standard Scheme programs than 0.1.0.
>
> * A foreign function interface (FFI) has been added to make it easy to
> declare imported host functions and call them from Scheme.
>
> * User-defined record types, sorely missing from 0.1.0, have been added.
>
> Read the full release notes here:
> https://spritely.institute/news/guile-hoot-v020-released.html
>
> If you use Guix then it's easy to try out Hoot:
>
> guix pull
> guix shell guile-next guile-hoot
>
> But wait, there's more! I've been busy writing up a tutorial for using
> Hoot to make React-like web pages, and that is also available now:
>
>
> https://spritely.institute/news/building-interactive-web-pages-with-guile-hoot.html
>
> If you're curious what it looks like to integrate Scheme with
> JavaScript browser APIs then definitely check out that post.
>
> Okay, that's all for now.  Happy hooting!
>
> - Dave
>
>


Re: TTN

2023-10-18 Thread Nala Ginrut
TTN was a great Guile hacker, I've learned so much from his code. That's
all I know about him. However, after he passed away, I found other
communities' people mentioned him, then I realized that he was such a
comprehensive hacker.

RIP.

Best regards.


On Tue, Oct 17, 2023, 21:11 Mike Gran  wrote:

> I heard that Thien-Thi Nguyen passed away last year. This was
> recently reported on the emacs and gnu-community mailing lists, but
> I don't think it was mentioned here (and apologies if it was already
> mentioned.)
>
> TTN was a bit of a maverick in the Guile world, preferring
> the 1.x series and maintaining libraries for it.
>
> TTN wrote a binding for Guile to SDL 1, maintained a library
> of www and cgi routines for Guile, wrote a
> postgres binding, and for a long time
> maintained his own fork of Guile 1.4.
>
> TTN and I had a few conversations about Guile and we
> collaborated for a moment on GNU Serveez, in which he was
> kind and helpful.
>
> Regards,
> Mike Gran
>
>


Re: Guile Hoot v0.1.0 RELEASED!

2023-10-16 Thread Nala Ginrut
Congrats!
That's really cool!

Is the r7rs macros supported?

Best regards.


On Tue, Oct 17, 2023, 02:55 Christine Lemmer-Webber 
wrote:

> GOOD NEWS!  Spritely's Scheme -> WASM compiler's first release is OUT!
> That's right... Scheme in your browser!!!
>
>   https://spritely.institute/news/guile-hoot-v010-released.html
>
> Docs here: https://spritely.institute/files/docs/guile-hoot/0.1.0
>
> And it's already in Guix
>
>   $ guix pull
>   $ guix shell --pure guile-next guile-hoot
>
> ALSO!  We had an awesome interview over at System Crafters!
>
>   https://www.youtube.com/watch?v=8LuQtoy9NLs
>
> Now go make something cool!  Let's change the web! :)
>
>  - Christine, on behalf of the Spritely Hoot team
>
>


Re: matrix library?

2023-10-04 Thread Nala Ginrut
And I'd mention AIScm which bound tensorflow APIs. It needs more love.

https://wedesoft.github.io/aiscm/


On Wed, Oct 4, 2023, 17:12  wrote:

> On Wed, Oct 04, 2023 at 08:46:02AM +0200, Damien Mattei wrote:
> > hello,
> > does anyone know if it exists a basic matrix library for Guile?
> > just need to multiply a matrix and a vector.
>
> Perhaps this thread from guile-user [1] has something for you
>
> Cheers
>
> [1]
> https://lists.gnu.org/archive/html/guile-user/2018-12/threads.html#00117
>
> --
> t
>


Alexon: the easiest tool for cloud native written in Guile

2023-07-13 Thread Nala Ginrut
Hi folks!
I'm pleased to introduce the tool Alexon. If you ever work with Kubernetes,
then Alexon will be your friend.

Alexon was written with GNU Guile, which is known for its support of
functional programming concepts. As a result, Alexon is influenced by the
functional programming paradigm.

Here's the link for more details: https://alexon.dev

Best regards.


Re: Recommended project structure

2023-06-09 Thread Nala Ginrut
Hi there!
If you just want to get a quick start, I'd recommend guile-hall. And you
may want to install Guix first.

Best regards.

On Fri, Jun 9, 2023, 06:44 wolf  wrote:

> Greetings,
>
> I am starting a small, personal project and I want to write it in GNU
> Guile,
> since I really like it so far.  However, since one of the major goals is
> for
> this to be a learning experience and doing it "the right way", I wanted to
> ask
> about recommended/standard project structure for Guile projects.  I found
> this[0] tutorial, but it is from 2017, which is quite some time back (I
> feel
> old).
>
> So I wanted to ask, does the tutorial describe best practices even in
> 2023?  If
> not, what would be a good reading on this topic?
>
> Thanks,
>
> W.
>
> --
> There are only two hard things in Computer Science:
> cache invalidation, naming things and off-by-one errors.
>


Re: GPT-4 knows Guile! :)

2023-03-19 Thread Nala Ginrut
GPT is interesting, to whom may also interested in, I've tried to use GPT
to generate friend error message for compiler.

https://nalaginrut.com/archives/2023/03/12/use%20chatgpt%20for%20compiler%20error%20regeneration



On Mon, Mar 20, 2023, 07:27 Dr. Arne Babenhauserheide 
wrote:

>
>  writes:
>
> > which has tried to be free (in both senses). For images, there is
> > Stable Diffusion (disclaimer:I don't know much about them). For
> > raw data, there's Common Crawl [3], which is Stable Diffusion's
>
> Stable diffusion has one of the most evil licenses I’ve read till now:
> using its images seems to be allowed for almost all proprietary uses,
> but illegal for free culture use. See the explicit questions about that
> here: https://github.com/CompVis/stable-diffusion/issues/131
>
> A license that makes its output only usable for proprietary creations
> but not for free culture is like the polar opposite of the GPL or CC
> by-sa: making a tool that gives proprietary creations an advantage over
> Free Culture.
>
> Some quotes:
>
> > Does this mean that the CreativeML Open RAIL-M license makes output
> > from the model incompatible with copyleft Free Culture and Free
> > Software licenses, so it would for example be illegal to use any of
> > the output in Wikipedia? Is there legal uncertainty about that?
> …
> > The first thing to say is that this license is about as far away from
> > open source as it could possibly get.
> …
> >> "No use of the output can contravene any provision as stated in the
> License.".
>
> > A Japanese lawyer I know told me that, in general terms, releasing
> > output under the CC-BY could be a violation of the license if such a
> > provision exists. (* He is not familiar with this license and has not
> > reviewed it in detail)
>
> No answer from the developers.
>
> Best wishes,
> Arne
> --
> Unpolitisch sein
> heißt politisch sein,
> ohne es zu merken.
> draketo.de
>


Re: Growing a Networked Garden with Spritely Goblins

2022-12-17 Thread Nala Ginrut
Very interesting, thanks for all the work :-)

On Sun, Dec 18, 2022, 05:13 Christine Lemmer-Webber 
wrote:

> A lovely article by David Thompson:
>
>
> https://spritely.institute/news/growing-a-networked-garden-with-spritely-goblins.html
>
> By the way, David Thompson is well known in Guile-land of course.  But
> he's also now Core Infrastructure Architect at the Spritely Networked
> Communities Institute!
>
>   https://spritely.institute/about/#dave-profile
>
> Welcome, Dave! :)
>
>  - Christine
>
>


Re: [ANN] guile-websocket 0.1 released

2022-11-12 Thread Nala Ginrut
Nice work!

On Sun, Nov 13, 2022, 09:33 Thompson, David 
wrote:

> Hello Guilers,
>
> I'm slightly embarrassed but also pleased to announce the release of
> guile-websocket 0.1!  It's an implementation of both the client and
> server sides of the WebSocket protocol as specified in RFC 6455.
>
> I wrote this code back in 2015 because I actually had time to hack
> back then and also because I realized that the WebSocket spec was very
> readable and not that complex... then I never released it.  A version
> of it built from Git made it into Guix in 2020. Most recently, Aleix
> asked if I'd make a proper release sometime.  That time is now!  It
> seems that a few people have been able to make use of the code over
> the years, so it can't be all that bad!  There's currently no manual,
> but hey it's better than nothing and the API is quite small.
>
> Download links and a little code sample can be found on the project
> home page here: https://dthompson.us/projects/guile-websocket.html
>
> Thanks to Janneke for contributing a bunch of improvements/fixes over
> the past several years and to Aleix for pushing me to release it
> properly.
>
> May all your sockets have webs,
>
> - Dave
>
>


Re: The Spritely Institute publishes A Scheme Primer (the long-requested "Guile tutorial"?)

2022-07-06 Thread Nala Ginrut
Thank you very much!
I'll recommend it to more people!

Best regarts.


On Thu, Jul 7, 2022 at 11:03 AM Aleix Conchillo Flaqué 
wrote:

> Amazing! Congrats!
>
> On Wed, Jul 6, 2022, 12:23 PM Christine Lemmer-Webber <
> cweb...@dustycloud.org> wrote:
>
> > Hello all!
> >
> > I'm thrilled to announce that The Spritely Institute has published A
> > Scheme Primer:
> >
> >
> >
> https://spritely.institute/news/the-spritely-institute-publishes-a-scheme-primer.html
> >   https://spritely.institute/static/papers/scheme-primer.html
> >
> > Source:
> >   https://gitlab.com/spritely/scheme-primer
> >
> > and yes since the source is a .org file, there's a .info export:
> >   https://spritely.institute/static/papers/scheme-primer.info
> >
> > Since our core implementation of Spritely Goblins, and its associated
> > whitepapers, use Guile Scheme (and Racket), we really needed a way for
> > newcomers who *weren't* Schemers to understand the language.  That was
> > the first goal of this document, but it can really be read in two ways:
> >
> >  - As a quick skim, it's a reasonable intro to "how to start programming
> >with Scheme with no prior experience".  Hey, tutorials are useful!
> >
> >  - But also, in less than 30 pages we manage to compress a TON of
> >computer science ideas from SICP, Little Schemer, etc in a way that I
> >think is really, really approachable.
> >
> > But of course I'm biased.  I'd like to know what you think!
> >
> > I've considered making a Guix package of the .info version.  What do
> > people think?  Would that be useful?
> >
> > Happy scheming!
> >  - Christine
> >
> >
>


Re: guile-oauth 1.3.0 released

2022-06-30 Thread Nala Ginrut
Thank you very much!
I'll try to add oauth to Artanis in the next release!

On Thu, Jun 30, 2022, 14:15 Aleix Conchillo Flaqué 
wrote:

> Hi,
>
> I'm happy to announce guile-oauth 1.3.0. This release allows you to use
> other HTTP client libraries to perform HTTP requests. An *http-proc*
> procedure can be specified in all guile-oauth procedures that make HTTP
> requests, it defaults to Guile's (http-request). Thank you Nala Ginrut for
> the suggestion.
>
> https://github.com/aconchillo/guile-oauth/
>
> * About
>
> guile-oauth is an OAuth client module for Guile. It supports the following
> features:
>
> - OAuth 1.0a: HMAC-SHA1 and PLAINTEXT signatures.
> - OAuth 2.0: Authorization Code and Client Credentials grant types.
>
> * Download
>
> Compressed sources and a GPG detached signature[*]:
>
>
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.3.0.tar.gz
>
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.3.0.tar.gz.sig
>
> [*] To verify download both files and then run:
>
>gpg --keyserver keys.openpgp.org \
> --recv-keys 7CEC5511C8D057A9EF17470C54D4CC6FFC7468F4
>
>gpg --verify guile-oauth-1.3.0.tar.gz.sig
>
> * Changes since 1.3.0
>
> https://github.com/aconchillo/guile-oauth/blob/master/NEWS
>
> Bugs and comments can be reported at
> https://github.com/aconchillo/guile-oauth/issues
>
> Happy hacking!
>
> Aleix
>


Re: guile-oauth 1.2.0 released

2022-06-29 Thread Nala Ginrut
Nice work!
Is it possible to support guile-curl for its https client? There is
situation that the system can't install gnutls-guile.

On Wed, Jun 29, 2022, 15:30 Aleix Conchillo Flaqué 
wrote:

> Hi,
>
> I'm pleased to announce guile-oauth 1.2.0. This is a bug fix release that
> fixes an OAuth 2.0 spec compliance issue when obtaining access tokens. Also
> a minor feature for OAuth 1.0a has been added, it is now possible to
> specify where the OAuth protocol parameters are sent ('header, 'query or
> 'body).
>
> https://github.com/aconchillo/guile-oauth/
>
> * About
>
> guile-oauth is an OAuth client module for Guile. It supports the following
> features:
>
> - OAuth 1.0a: HMAC-SHA1 and PLAINTEXT signatures.
> - OAuth 2.0: Authorization Code and Client Credentials grant types.
>
> * Download
>
> Compressed sources and a GPG detached signature[*]:
>
>
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.2.0.tar.gz
>
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.2.0.tar.gz.sig
>
> [*] To verify download both files and then run:
>
>gpg --keyserver keys.openpgp.org \
> --recv-keys 7CEC5511C8D057A9EF17470C54D4CC6FFC7468F4
>
>gpg --verify guile-oauth-1.2.0.tar.gz.sig
>
> * Changes since 1.2.0
>
> https://github.com/aconchillo/guile-oauth/blob/master/NEWS
>
> Bugs and comments can be reported at
> https://github.com/aconchillo/guile-oauth/issues
>
> Happy hacking!
>
> Aleix
>


[guile-dbi] Check finalized-smob properly

2022-06-28 Thread Nala Ginrut
Hi folks!

*The guile-dbi community intended to discuss issues in guile-user mailing
list, so I just put it here.*

I encountered an error:
cut--
In procedure dbi-close: Wrong type argument in position 1: #
-end

My opinion is that the dbi-close doesn't check finalized-smob properly, it
didn't consider it at all.

code-
#define DBI_SMOB_P(obj) ((SCM_NIMP(obj)) &&
(SCM_TYP16(obj)==g_db_handle_tag))
-end--

On the other hand, I'm not sure why the SMOB was finalized before dbi-close.

Anyway, my idea to patch dbi-close is to check if it's already finalized,
if yes then just return. However, I didn't find the predicate to check
finalized-smob.

Comments?

Best regards.


Re: Curiosity: Microkernel implemented in Guile ?

2022-06-26 Thread Nala Ginrut
OK, let's face the issues, I encountered similar problems like what you
described.

1. To avoid the irritating compiling message, I have to use parameters to
rebind current-error-port.

2. Sometimes folks compile the Guile code and installed it in a wrong load
path, so when you run it, it will auto compile everthing again.

3. The debug information seems broken for a long time, it's not good to
trace the error. But I don't think it's because of the design of Guile,
it's broken when Guile had upgraded the VM implementation. It was good
before that.

4. For quick experiment attempt you described, I confess I have no better
idea. But it's good to hear your experiences.

Best regaeds.


On Sat, Jun 25, 2022, 22:36 Jean Abou Samra  wrote:

>
>
> >  Le 24 juin 2022 à 09:45, Dr. Arne Babenhauserheide
> >  a écrit :
> >
> >  
> >  Jean Abou Samra  writes:
> >
> >>>>  Le 24 juin 2022 à 03:13, Nala Ginrut  a
> >>>> écrit :
> >>>
> >>>  Agreed, Guile's design was widened.
> >
> >>  Let’s be honest: it wasn’t widened, but shifted. I don’t
> >> think today’s Guile is a good fit for an extension language.
> >
> >  Why? Which change caused it to not be good as extension language?
>
>
>
> (Also replying to Nala.) On the one hand, you have Guile without
> compiled
> bytecode, which is slow to run, and more importantly painful to use
> because there are no error locations and often no function names in
> error messages. On the other hand, Guile with bytecode takes compilation
> time, which is an impediment in applications where it is merely being
> used as a language that is practical to use for small extensions to an
> existing program, without a need for optimized code. It forces you to
> recompile even if you just touched one file, since otherwise it emits
> ;;; messages about outdated .go files that create noise and/or affect
> correctness. The compilation is impractical to set up when interfacing
> with C if your main function is on the C side since compiling is started
> from the Scheme side. There is no dependency tracking, so you need to
> recompile everything whenever you change one file, which does not
> encourage
> quick experiments. Bytecode is fussy to integrate in installers: when
> the user
> unpacks an archive, you need to ensure that the .go files are unpacked
> after the .scm files, otherwise Guile will consider them outdated. I
> could list more …
>
> As a developer on one of the main applications extended with Guile in
> existence (LilyPond), I would not recommend Guile to anyone looking
> for an extension language for a new application today.
>
> Sorry for not exactly bringing enthusiasm to this otherwise interesting
> thread.
>
> Best regards,
> Jean
>
>
>
>
>
>
>


Re: Curiosity: Microkernel implemented in Guile ?

2022-06-24 Thread Nala Ginrut
Could elaborate on it?

On Fri, Jun 24, 2022, 15:01 Jean Abou Samra  wrote:

>
>
> Let’s be honest: it wasn’t widened, but shifted. I don’t think today’s
> Guile is a good fit for an extension language.
>
> Regards,
> Jean
>
>


Re: Curiosity: Microkernel implemented in Guile ?

2022-06-23 Thread Nala Ginrut
Agreed, Guile's design was widened. But I think we are talking about
different "low-level", for Hurd, Guile can be used to write OS components,
say, filesystem. However, except for GNU Mach, most OS components are
implemented in userland, and Guile is good for that, this is what it's
designed for.
The "low-level" in my mind is to write GNU Mach part, which is not suitable
for Guile.

BTW, I think Hurd people inclined to call Hurd as "multi-server OS", so
when we talk about microkernel, I was thinking about something like GNU
Mach or L4. :-)

Best regards.

On Fri, Jun 24, 2022, 06:08 Dr. Arne Babenhauserheide 
wrote:

>
> Nala Ginrut  writes:
> > Many folks shared great Scheme for lower-level. I think I have to clarify
> > that I agree that Scheme is good for low-level, depends on
> implementation.
> > But we are talking about Guile, and Guile was not designed for that
> > purpose, it's dedicated to extend C program, so the better choice is to
> > extend a C microkernel with Guile. That is what it was designed for,
> > originally.
>
> In recent years the scope of Guile widened in that respect, so it’s very
> suited to implement many more parts of the system than it was with Guile
> 1.x — with Guile 3 it starts to compete in performance.
>
> It might be suitable for many parts of the kernel nowadays.
>
> And the Hurd is a good way to get low level with much fewer risks than
> Linux kernel hacking.
>
> Best wishes,
> Arne
> --
> Unpolitisch sein
> heißt politisch sein,
> ohne es zu merken.
> draketo.de
>


Re: Curiosity: Microkernel implemented in Guile ?

2022-06-23 Thread Nala Ginrut
Many folks shared great Scheme for lower-level. I think I have to clarify
that I agree that Scheme is good for low-level, depends on implementation.
But we are talking about Guile, and Guile was not designed for that
purpose, it's dedicated to extend C program, so the better choice is to
extend a C microkernel with Guile. That is what it was designed for,
originally.


On Thu, Jun 23, 2022, 18:09 Nala Ginrut  wrote:

> Personally, I don't think Guile (as Scheme) is suitable for a system level
> language for low-level programming. But it's a good choice to use Guile to
> extend a C implemented microkernel.
>
> Such a design, is actually the real GNU operating system described in
> imagination. So the question should be: is there any attempt to write GNU
> Hurd binding with Guile, and implement the multi server OS to complete GNU?
>
> I never heard of such a libre project, but I do think it's worth to try.
>
> Best regards.
>
> On Thu, Jun 23, 2022, 14:12 Matias Jose Seco Baccanelli <
> matias_jose_s...@autoproduzioni.net> wrote:
>
>> Good morning Guilers!
>> Being a huge fan of Libre Software and Guile powers, i was having a big
>> curiosity in regards to the kernel languages arena:
>> was ever made an attempt to implement a Microkernel from scratch in
>> Guile language ?
>> Isn't a cool mix the functional approach of Guile and the modular one
>> of Microkernel ? (and loads of more features i suppose!)
>>
>> Feels like a nice recipe for User Empowerment !
>> Just asking as a total beginner on this topic,
>> Happy Hacking!
>> Matias
>>
>>


Re: Curiosity: Microkernel implemented in Guile ?

2022-06-23 Thread Nala Ginrut
Personally, I don't think Guile (as Scheme) is suitable for a system level
language for low-level programming. But it's a good choice to use Guile to
extend a C implemented microkernel.

Such a design, is actually the real GNU operating system described in
imagination. So the question should be: is there any attempt to write GNU
Hurd binding with Guile, and implement the multi server OS to complete GNU?

I never heard of such a libre project, but I do think it's worth to try.

Best regards.

On Thu, Jun 23, 2022, 14:12 Matias Jose Seco Baccanelli <
matias_jose_s...@autoproduzioni.net> wrote:

> Good morning Guilers!
> Being a huge fan of Libre Software and Guile powers, i was having a big
> curiosity in regards to the kernel languages arena:
> was ever made an attempt to implement a Microkernel from scratch in
> Guile language ?
> Isn't a cool mix the functional approach of Guile and the modular one
> of Microkernel ? (and loads of more features i suppose!)
>
> Feels like a nice recipe for User Empowerment !
> Just asking as a total beginner on this topic,
> Happy Hacking!
> Matias
>
>


Re: LSP Server for Scheme (and more ...)

2022-06-11 Thread Nala Ginrut
+1 Good project!
Thanks!

On Sat, Jun 11, 2022, 06:05  wrote:

> Hi Guilers!
>
> I want to share a couple of things I have being working on that you may
> find useful.
>
> 1) I developed an LSP Server for Scheme. For those that don't know the
> Language Server Protocol (LSP), it is meant for adding programming
> language support for IDEs and editors that implement the protocol
> (nowadays most of them support it).
>
> For now I am focusing on Guile 3 and CHICKEN 5. The idea is to write as
> much R7RS for common code as possible (like representing documents,
> fetching word under cursor etc.) and leave implementation specific code
> to dedicated files. So far I managed to implement auto-completion, fetch
> signature, fetch documentation and jump to definition.
>
> Repo: https://codeberg.org/rgherdt/scheme-lsp-server
>
> 2) An LSP server without a client is quite useless, so I'm also sharing
> an emacs-lsp client:
>
> Repo: https://codeberg.org/rgherdt/emacs-lsp-scheme
>
> I will create a PR to melpa for this. Until it is merged, you can clone
> the repo somewhere, 'load' it and follow the instructions in the README
> to activate it.
>
> Usage is based on interaction with the REPL, which is based on Emacs's
> built-in scheme inferior-mode. So you have to load the file (say by
> typing C-c C-l on a buffer) in order to get access to symbols imported
> from other modules.
>
> Note: for daily use you probably should stick to Geiser, since its Guile
> support is obviously much more mature. It can still become useful for
> other Schemes though, and is a good way to develop the LSP server
> without leaving Emacs ;)
>
> 3) The whole idea behind LSP is to improve language support across
> multiple IDEs/editors. So I started a proof of concept in VS Code:
>
> https://codeberg.org/rgherdt/vscode-scheme-lsp
>
> Since I don't use VS Code, I don't expect spending much time on it. I
> also don't know how a lispy LSP client should/could look like in VS
> Code. If you have ideas, or want to contribute/take over this, feel free
> to contact me. It is not documented nor published yet, but already works
> for the functionality mentioned (there are a couple of command to launch
> a REPL and load files on it). I will investigate how to automate
> installation of the LSP server before publishing it and let you know.
>
> Everything is on an early stage of development, and APIs may change. I
> tested it using following software:
> - Guile 3.0.8
> - Emacs 27.1 and 28.1
> - Debian Bullseye and Ubuntu 18.04
>
> Any questions, suggestions, critics and contributions are more than
> welcome. We can also reach me on @libera's #guile, #chicken, #scheme
> channels by the name rgherdt.
>
> Have a nice weekend you all!
>
> Ricardo
>
>
>


Re: Announcing Guile DNS!

2022-05-24 Thread Nala Ginrut
Nice project!

On Tue, May 24, 2022, 23:15 Hugo Hörnquist  wrote:

> Dear Guilers!
>
> I'm happy to announce my new library Guile DNS, a pure scheme library
> for DNS lookups.
>
> https://git.lysator.liu.se/hugo/guile-dns
>
> --
> hugo
>
>


Re: [ANN] Guile-ICS 0.2.1 released

2022-05-10 Thread Nala Ginrut
Nice work!

On Tue, May 10, 2022, 22:01 Artyom V. Poptsov 
wrote:

> Hello Guilers,
>
> I'm pleased to announce Guile-ICS 0.2.1:
>   https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.2.1
>
> See the full list of user-visible changes below.
>
>
> * What is Guile-DSV?
>
> Guile-ICS is an iCalendar format RFC5545 [1] parser for GNU Guile.
>
>
> * List of user visible changes
>
> Here's an excerpt from the NEWS file:
>
> --8<---cut here---start->8---
> * Changes in version 0.2.1 (2022-05-10)
> ** Guile-ICS now uses SRFI-64 that comes with Guile
> ** Guile-ICS now builds with Guile 3.0+
> ** =(ics version)=: New module
> The module contains procedures that allow to get Guile-ICS version in
> various
> forms.
> ** Add a GNU Guix recipe to the repository
> Now the project can be built and installed as follows:
> #+BEGIN_EXAMPLE shell
> guix build -f ./guix.scm
> guix package -f ./guix.scm
> #+END_EXAMPLE
> ** =ics= command now handles =--version= option
> ** Generate a man-page from =ics= output.
> --8<---cut here---end--->8---
>
>
> Thanks and happy hacking!
>
> - Artyom
>
> References:
> 1: https://tools.ietf.org/html/rfc5545
>
> --
> Artyom "avp" Poptsov 
> Home page: https://memory-heap.org/~avp/
> CADR Hackerspace co-founder: https://cadrspace.ru/
> GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F
>


Re: [ANN] Dezyne 2.15.0 released as Free Software

2022-05-06 Thread Nala Ginrut
It's really nice!!

On Fri, May 6, 2022, 21:09 Jan Nieuwenhuizen  wrote:

> We are thrilled to announce Dezyne 2.15: Dezyne is now being released as
> Free Software (FLOSS).
>
> * About
>
> Dezyne[0] is a programming language and a set of tools to specify,
> validate, verify, simulate, document, and implement concurrent control
> software.
>
> The Dezyne language has formal semantics expressed in mCRL2[1] developed at
> the department of Mathematics and Computer Science of the Eindhoven
> University of Technology (TUE[2]).  Dezyne requires that every model is
> finite, deterministic and free of deadlocks, livelocks, and contract
> violations.  This achieved by means of the language itself as well as
> by builtin verification through model checking.  This allows the
> construction of complex systems by assembling independently verified
> components.
>
> * Summary
>
> This release completes full support for blocking: This finally marks
> the Grand Unification into single threaded execution semantics.
>
> The documentation has seen a major rewrite and is available here:
> .
>
> We will evaluate your reports and track them via the
> Gitlab dezyne-issues project[3], see our guide to writing
> helpful bug reports[4].
>
> * What's next?
>
> Verification with system scope and automatically exploring possible
> traces in a system.  Introducing a new keyword `defer' for asynchronous
> behavior and deprecation of `async'.
>
> * Future
>
> Looking beyond the next releases we will introduce implicit interface
> constraints.  Hierarchical behaviors, module-specifications and
> data-interfaces.  Support for Model Based Testing.
>
> Please do not hesitate to forward this announcement to other fora
> interested in formal methods and verification!
>
> Enjoy!
> The Dezyne developers.
>
> * Download
>
>   git clone git://git.savannah.nongnu.org/dezyne.git
>
>   Here are the compressed sources and a GPG detached signature[*]:
> https://dezyne.org/download/dezyne/dezyne-2.15.0.tar.gz
> https://dezyne.org/download/dezyne/dezyne-2.15.0.tar.gz.sig
>
>   Here are the SHA1 and SHA256 checksums:
>
> 395ff05e4f2c17bcee895fd9436d696fb0aab93d  dezyne-2.15.0.tar.gz
> 982d8f7cca9de23225e2f06b4c8524c0b57acfba81beaaff1a0c045c1e6409ea
> dezyne-2.15.0.tar.gz
>
>   [*] Use a .sig file to verify that the corresponding file (without the
>   .sig suffix) is intact.  First, be sure to download both the .sig file
>   and the corresponding tarball.  Then, run a command like this:
>
> gpg --verify dezyne-2.15.0.tar.gz.sig
>
>   If that command fails because you don't have the required public key,
>   then run this command to import it:
>
> gpg --keyserver keys.gnupg.net --recv-keys
> 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
>
>   and rerun the 'gpg --verify' command.
>
>   Alternatively, Dezyne can be installed using GNU Guix[5]:
> guix pull
> guix install dezyne
>
> * NEWS
>
> * Changes in 2.15.0 since 2.14.0
> ** Language
>   - Blocking is now fully supported, it may be used:
> + In non-toplevel components,
> + In a component with multiple provides ports, but see the
>   `Blocking' section in the manual for caveats.
> + A new `blocking' qualifier for ports must be used if a port can
>   block, or block collateraly.
>   - Using unobservable non-determinism in interfaces is no longer
> supported.
>   - An action or function call can now also be used in a return
> expression (#67[5]).  Note that recursive functions still cannot be
> valued.
> ** Commands
>   - The `dzn explore' command has been removed.
> ** Verification
>   - The verifier now supports blocking for components with multiple
> provides ports.
>   - The verifier now detects possible deadlock errors due to a requires
> action blocking collaterally, which could happen when a component
> deeper in the system hierarchy uses blocking.
>   - The option `--no-interface-determinism' has been removed for `dzn
> verify'.
> ** Simulation
>   - The simulator now supports collateral blocking.
>   - In interactive mode:
> + The new `,state' command shows the state (#66[6]),
> + The new `,quit' command exits the session,
> + The simulator does not exit when supplying empty input.
>   - The simulator now detects possible deadlock errors due to a requires
> action blocking collaterally, which could happen when a component
> deeper in the system hierarchy uses blocking.
>   - The simulator now detects livelocks in interfaces at end of trail.
>   - The simulator now detects queue-full errors caused by external at
> end of trail.
>   - The `dzn simulate' command now supports the `-C,--no-compliance',
> `--no-interface-livelock' and `-Q,--no-queue-full' options,
> ** Code
>   - The C++ and C# code generators and runtime now fully support
> collaterally blocking components.
> ** Views
>   - Returns are no longer removed from the state-diagram.  Using the new
> 

Re: A modest Scheme poem ...

2022-04-16 Thread Nala Ginrut
You may use abort-to-prompt to implement yield ;-)

On Sun, Apr 17, 2022, 10:40 Taylan Kammer  wrote:

> On 16.04.2022 18:49, Jean Abou Samra wrote:
> > (let ((be values))
> >   (when values
> > (yield)
> > *unspecified*)
> >   (if values
> >   (do ()
> > (not
> >  (values be quit)
> >
> >
>
> Could not execute.
> Variable 'yield' unbound.
> A missing import?
>
> ;-)
>
>
> (it's a haiku)
>
> --
> Taylan
>
>


Re: guile-redis 2.2.0 released

2022-02-23 Thread Nala Ginrut
Congrats! And thank you!

On Thu, Feb 24, 2022, 13:34 Aleix Conchillo Flaqué 
wrote:

> Hi,
>
> I'm happy to announce guile-redis 2.2.0. This release adds the new commands
> found in the upcoming Redis 7.0.
>
> https://github.com/aconchillo/guile-redis/
>
> * About
>
> guile-redis is a Guile module for the Redis key-value data store. It
> provides
> all commands up to Redis 7.0 and supports multiple commands, pipelining and
> Pub/Sub.
>
> * Download
>
> Compressed sources and a GPG detached signature[*]:
>
>
> https://download.savannah.nongnu.org/releases/guile-redis/guile-redis-2.2.0.tar.gz
>
> https://download.savannah.nongnu.org/releases/guile-redis/guile-redis-2.2.0.tar.gz.sig
>
> [*] To verify download both files and then run:
>
>gpg --keyserver keys.openpgp.org \
> --recv-keys 7CEC5511C8D057A9EF17470C54D4CC6FFC7468F4
>
>gpg --verify guile-redis-2.2.0.tar.gz.sig
>
> * Changes since 2.2.0
>
> https://github.com/aconchillo/guile-redis/blob/master/NEWS
>
> Bugs and comments can be reported at
> https://github.com/aconchillo/guile-redis/issues
>
> Happy hacking!
>
> Aleix
>


Re: guile-oauth 1.1.0 released

2022-02-22 Thread Nala Ginrut
Congrats!

On Wed, Feb 23, 2022, 13:54 Aleix Conchillo Flaqué 
wrote:

> Hi,
>
> I'm happy to announce guile-oauth 1.1.0. This is a minor release that just
> adds a missing #:body keyword argument to OAuth1 and OAuth2 HTTP request
> procedures and improves documentation.
>
> https://github.com/aconchillo/guile-oauth/
>
> * About
>
> guile-oauth is an OAuth client module for Guile. It supports the following
> features:
>
> - OAuth 1.0a: HMAC-SHA1 and PLAINTEXT signatures.
> - OAuth 2.0: Authorization Code and Client Credentials grant types.
>
> * Download
>
> Compressed sources and a GPG detached signature[*]:
>
>
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.1.0.tar.gz
>
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.1.0.tar.gz.sig
>
> [*] To verify download both files and then run:
>
>gpg --keyserver keys.openpgp.org \
> --recv-keys 7CEC5511C8D057A9EF17470C54D4CC6FFC7468F4
>
>gpg --verify guile-oauth-1.1.0.tar.gz.sig
>
> * Changes since 1.1.0
>
> https://github.com/aconchillo/guile-oauth/blob/master/NEWS
>
> Bugs and comments can be reported at
> https://github.com/aconchillo/guile-oauth/issues
>
> Happy hacking!
>
> Aleix
>


[ANN] GNU Artanis-0.5.1 (stable) released!

2021-12-27 Thread Nala Ginrut

GNU Artanis is a web application framework(WAF) written in Guile Scheme.
https://web-artanis.com
Or the alternative domain name:
https://artanis.dev

It is designed to support the development of dynamic websites, web
applications, web services and web resources. Artanis provides several
tools for web development: database access, templating frameworks,
session management, URL-remapping for RESTful, page caching, and so on.

GNU Artanis is under GPLv3+ & LGPLv3+ (dual licenses).

Here are the compressed sources:
  http://ftp.gnu.org/gnu/artanis//artanis-0.5.1.tar.gz   (528KB)
  http://ftp.gnu.org/gnu/artanis//artanis-0.5.1.tar.bz2   (440KB)

Here are the GPG detached signatures[*]:
  http://ftp.gnu.org/gnu/artanis//artanis-0.5.1.tar.gz.sig
  http://ftp.gnu.org/gnu/artanis//artanis-0.5.1.tar.bz2.sig

Use a mirror for higher download bandwidth:
  http://www.gnu.org/order/ftp.html

Here are the MD5 and SHA1 checksums:

2a4f69e1d7ba7be226af5d666c9aec67  artanis-0.5.1.tar.gz
43c996cf7ab0829fc53d4f669626d6ae  artanis-0.5.1.tar.bz2
bc56edb3e6eca37b538d0e635960a320e5df4f7d  artanis-0.5.1.tar.gz
41fce5914071699c57e4e78d07ca1e68814a725c  artanis-0.5.1.tar.bz2

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify artanis-0.5.1.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys 
F53B4C5695B5E4D56093432484696772846A0058

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Guile 3.0.5

NEWS

Changes in 0.5.1
* Notable changes
- Fix cookies
- Fix redirect-to to use host.name if set
- Remove useless valid field in session
- Show 'art create' options in auto complete
- Support js hash


-- 
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


Re: Can guile be implementation independent?

2021-12-16 Thread Nala Ginrut
I'm not sure about the complete incompatibles between Guile and r7rs. To my
experience, the  exception handling is different from r7rs.
I think Scheme community has great progress these years, so many features
are covered by the standard, include FFI(srfi-198),
delimited-continuation(srfi-226), etc.
Guile provides rich features, but people may need to write wrapper for the
standard API.

Best regards.

On Fri, Dec 17, 2021, 11:01 Jacob Hrbek  wrote:

> Looks interesting, are there any known limitations in relation to Guile?
> On 12/17/21 03:53, Nala Ginrut wrote:
>
> Hi Jacob!
> You may take a look at akku.scm
> You can write r7rs code and use Guile as one of the compiler alternatives.
>
> Best regards.
>
>
> On Fri, Dec 17, 2021, 09:43 Jacob Hrbek  wrote:
>
>> I am used to working with common lisp where i can write code that is
>> "implementation independent" meaning that following a specific coding
>> style makes it compatible across multiple interpretators/compilers
>> (sbcl, LispWorks, etc..)
>>
>> Is there a way to do the same on GNU Guile? Like writing a code that can
>> be interpreted by implementations that are following the IEEE 1178-2008
>> or R7RS standard?
>>
>> -- Jacob Hrbek
>>
>> --
> -- Jacob Hrbek
>
>


Re: Can guile be implementation independent?

2021-12-16 Thread Nala Ginrut
Hi Jacob!
You may take a look at akku.scm
You can write r7rs code and use Guile as one of the compiler alternatives.

Best regards.


On Fri, Dec 17, 2021, 09:43 Jacob Hrbek  wrote:

> I am used to working with common lisp where i can write code that is
> "implementation independent" meaning that following a specific coding
> style makes it compatible across multiple interpretators/compilers
> (sbcl, LispWorks, etc..)
>
> Is there a way to do the same on GNU Guile? Like writing a code that can
> be interpreted by implementations that are following the IEEE 1178-2008
> or R7RS standard?
>
> -- Jacob Hrbek
>
>


Re: why I love scheme

2021-12-14 Thread Nala Ginrut
I see your point.
Yes, continuation (CPS) is pretty cool to replace the hidden stack magic
for recursive algorithms. :-)

Best regards.



On Wed, Dec 15, 2021, 07:45 Stefan Israelsson Tampe 
wrote:

> Maybe you think the below program is trivial, but I adore named let's so
> much that I just cannot fathom that when people go functional they totally
> miss this beauty
>
>
> (define (count tree)
>
> ;; s = total sum up to now
>
> ;; t = tree of the type (car = child . cdr = siblings)
>
> ;; cont is the continuation, (cont 10) will continue
>
> ;; the calculation with the sum=10 see how we initiate
>
> ;; with a continuation that evaluates returns it's argument
>
>
> (let loop ((s 0) (t tree) (cont (lambda (s) s)))
>
> (if (pair? t)
>
> (loop s (car t) (lambda (s) (loop s (cdr t) cont)))
>
> (cont (if (number? t) t 0
>


Re: [ANN] Guile-GitLab 0.1.0

2021-11-13 Thread Nala Ginrut
Nice work!

Best regards.

On Sun, Nov 14, 2021, 00:40 Artyom V. Poptsov 
wrote:

> Hello Guilers,
>
> I'm pleased to announce Guile-GitLab 0.1.0 -- the first version of a
> GitLab REST API[1] client for GNU Guile:
>   https://github.com/artyom-poptsov/guile-gitlab/releases/tag/v0.1.0
>
> This project is in the early stages of development and provides limited
> API for Guile programs that allows to fetch GitLab users, projects and
> groups.  It addition it allows to delete GitLab users by IDs.
>
> To provide some background why I started this project: I maintain a
> GitLab instance in a local college and recently I found myself in need
> of regexp-searching users by their emails.  Unfortunately GitLab
> Community Edition does not provide such facility from the web UI.  So I
> decided to write my own Guile library and a console tool to simplify the
> task.
>
> There's a small CLI tool called 'gitlab-cli' that is installed along
> with the library to the system.  Here's an example of fetching users
> that match the specified criteria:
>
> --8<---cut here---start->8---
> $ gitlab-cli user ls \
> --token "" \
> --server "https://gitlab.example.org; \
> --email-not-like ".*changemeplease.*" \
> --print "id,username,email,name" \
> --format csv
> --8<---cut here---end--->8---
>
> Probably this tool can be useful for others too.
>
> Thanks,
>
> - Artyom
>
> References:
> 1. https://docs.gitlab.com/ee/api/
>
> --
> Artyom "avp" Poptsov 
> Home page: https://memory-heap.org/~avp/
> CADR Hackerspace co-founder: https://cadrspace.ru/
> GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F
>


Re: SRFI 106 "basic socket interface" in Guile

2021-10-25 Thread Nala Ginrut
To my experience on implementing the server-core of Artanis with pure
Guile. I think srfi 106 could be mostly covered by the current Guile.
However, I'm not sure about some options as constants.

 Best regards.


On Mon, Oct 25, 2021, 13:57 Tim Lee  wrote:

> I noticed that Guile does not implement SRFI 106 (basic socket interface)
> (https://srfi.schemers.org/srfi-106/srfi-106.html). Is there a
> fundamental reason for the omission? I'm just wondering whether or not
> Guile has all the socket primitives needed to implement SRFI 106.
>
>


Re: Thanks all!

2021-09-18 Thread Nala Ginrut
really cool!


On Sat, Sep 18, 2021, 15:02 paul  wrote:

> Hey guile-users,
>
> I have just made a release of my app [1] which integrates a Guile
> runtime -- since i received invaluable pointers from this mailing
> list, i thought folks might be curious as to what i was building.
>
> The app is called Spotiqueue, and it's a macOS-native client for
> listening to the Spotify music streaming service.  It's intended
> to be keyboard-driven and fast, and now i guess it's arbitrarily
> extensible too!  There's still some work to be done on the Guile
> integration front (e.g., exception handling), but it's already
> quite usable i think.  Feedback welcome!  Although i realise that
> Spotify is an evil walled-garden service and macOS is a non-free
> platform, my app is GPL and i've learned a lot making it, so i'm
> happy to take the risk that tomorrow the quicksand on which i've
> built it might shift and make it unviable.
>
> Cheers,
> p.
>
> 1. Spotiqueue on Github, https://github.com/toothbrush/Spotiqueue
>
>


Re: Demanding Interoperability to Strengthen the Free (Libre) Web: Introducing DISFLUID

2021-07-31 Thread Nala Ginrut
Looks really neat!
I'm still not familiar with Pod.
Is it possible to cooperate with a modern web framework? It seems it
doesn't require JS and browser, so I don't know if http can still work as
usual.

Best regards.

On Fri, Jul 30, 2021, 19:21 Vivien Kraus via General Guile related
discussions  wrote:

> Hello Guile users,
>
> I’m writing a Solid server in guile:
>
> https://disfluid.planete-kraus.eu/
> https://labo.planete-kraus.eu/webid-oidc.git/
>
> The main point of Solid [1] is to separate the web applications from
> the data they use in an interoperable way.
>
> It’s in the spirit of Activitypub, but closer to the current
> architecture of the web. So, whenever you see "Log in with  silo>", you could easily demand that the application let you log in
> with your identity on your Solid pod.
>
> If that takes off, we’ll be able to run any competing web application
> with any data storage ("pod"), because the communication is
> interoperable and the vocabulary used is public. Which means that we
> will be able to easily replace proprietary program with free programs!
> The best thing is, we won’t even need to develop for a web browser.
> That’s a cool solution to the JavaScript trap.
>
> Now, we need to make sure that there is a freedom-respecting way to
> develop applications. This is why I’m writing this project. With a
> clear focus on user freedom, we will maximize our chances to avoid the
> future JS traps. In this regard, disfluid is not Solid.
>
> [1]: https://solidproject.org/
>
>
>


Re: use module does not works in .guile

2021-05-02 Thread Nala Ginrut
It's commented in your code somehow.

On Sun, May 2, 2021, 19:33 Damien Mattei  wrote:

> i have this .guile:
>
> ;; Guile config file
>
>
>
> ;; history
> (use-modules (ice-9 readline)
> ;; does not works:
> ;; guile object oriented programming system
> ;;(oop goops)
> )
>
> (activate-readline)
>
>
> ;; curly infix as in srfi-105
> (read-enable 'curly-infix)
>
> ;; set current path in load path
> ;;(set! %load-path (reverse (cons "." (reverse %load-path
> ;; the above does not work
> ;; solution is to put this in shell:
> ;; export GUILE_LOAD_PATH="...:."
>
> but (oop goops) is not working in REPL i have to issue an :
>
> scheme@(guile-user)> (use-modules (oop goops))
>


Re: How to use guile in a development process

2021-04-28 Thread Nala Ginrut
Hi Anthony!
You may use "guile -L ." to add the current path to the load path, then you
can import the module.

Best regards.

On Thu, Apr 29, 2021, 08:57 Anthony Quizon  wrote:

> Hello,
>
> I'm having trouble finding a good development process with guile.
>
> I have a file foo.scm and I'm trying to load it into the repl.
> However, I couldn't find any documentation on how to easily do this.
> I tried looking up ",help module" in the repl which told me to use ",load
> FILE".
> But when I tried this I got the error "In procedure primitive-load-path:
> Unable to find file "system/repl/foo.scm" in load path"
>
> I don't know where to look to change my load file for the repl.
>
> I read in a forum somewhere to add (add-to-load-path ".") in my .guile file
> but that didn't work.
>
> How do I load a file from the current path that I'm in?
> But more importantly, what is the typical workflow when using guile?
> Do people write files to the filesystem and load them in the repl to try it
> out?
> Or is there a faster way to do things?
>
> Thanks,
>


Re: Python-on-guile

2021-04-27 Thread Nala Ginrut
Nice to know it!
I still don't have time to polish my guile-lua-rebirth. Anyway, it's really
good news to see the transpiler has a good performance on Guile.!

Best regards.


On Fri, Apr 23, 2021 at 11:01 PM Mikael Djurfeldt 
wrote:

> Hi,
>
> Yesterday, Andy committed new code to the compiler, some of which
> concerned skipping some arity checking.
>
> Also, Stefan meanwhile committed something called "reworked object system"
> to his python-on-guile.
>
> Sorry for coming with unspecific information (don't have time to track
> down the details) but I noticed that my benchmark script written in Python,
> and which computes the 20:th Ramanujan number, now runs 60% faster than
> before these changes.
>
> This means that python-on-guile running on guile3 master executes python
> code only 2.6 times slower than the CPython python3 interpreter itself. :-)
>
> Have a nice weekend all,
> Mikael
>
>


Re: env, -l and command line arguments

2021-02-20 Thread Nala Ginrut
Hi Fombi!
I find it's not easy to understand what you want to do, could you give us
an example?

Best regards.

On Sun, Feb 21, 2021 at 7:43 AM Formbi  wrote:

> Hi
>
> I'd like to make a script and be able to jump into the REPL if needed (for
> example if «--repl» is not passed, «(exit)» is run). I also run Guile
> through env -S, because I'm on Guix and I wanna make the script portable.
>
> However, I can't find an easy way to do it. When I use «-l» and pass some
> command-line arguments to the script, Guile crashes because it interprets
> the arguments as files to load. When I use «-l --», it crashes because it
> can't find the «--» file. When I use «-- -l», it doesn't load the file.
> Even weirder to me is the fact that if I just put «(exit)» in the script,
> Guile doesn't crash.
>
> I kinda managed to get the REPL functionality using some Bash shenanigans
> made by someone else, but shouldn't there be an easier way? Or does it
> exist, but I haven't stumbled upon it?
>
>


Re: C extensions

2021-02-20 Thread Nala Ginrut
Hi Tim!
I think you may try these functions:
scm_is_true
scm_is_real_p
scm_geq_p

Best regards.


On Sun, Feb 21, 2021 at 11:57 AM Tim Meehan  wrote:

> I'm trying my hand a writing C extensions.
> I've done this for stuff like Matlab before, and was wondering how you do
> the usual checking of the arguments that are passed in from Guile.
>
> In the manual, 6.13.13.1 "C Support" has a few functions.
> libguile/numbers.h has a bunch more ...
>
> What I have is an extension function, sort of like the bessel function in
> the tutorial:
>
> https://www.gnu.org/software/guile/manual/html_node/A-Sample-Guile-Extension.html
>
> What I would like to do is verify that the first argument is an inexact
> number, larger than 0. How would I go about that? Perhaps some of it could
> be:
> SCM_REALP
> scm_misc_error
>
> Any tips?
>


Re: guile-oauth 1.0.0 released

2021-02-19 Thread Nala Ginrut
OK, at least it solved TLS + oauth2 client for me.
Thanks for the work!


On Sat, Feb 20, 2021 at 1:37 PM Aleix Conchillo Flaqué 
wrote:

> Thanks!
>
> OAuth2 was the biggest feature in this new release. Note that the
> library is only a client, you can't build an OAuth server with it.
>
> Aleix
>
> On Fri, Feb 19, 2021 at 9:15 PM Nala Ginrut  wrote:
> >
> > Congrats!
> > I'm considering adding a new option entry for OAUTH, and guile-oauth
> could
> > be one of the backends.
> > Will you consider supporting OAUTH2?
> >
> > Best regards.
> >
> >
> > On Tue, Feb 16, 2021 at 8:02 PM Zelphir Kaltstahl <
> > zelphirkaltst...@posteo.de> wrote:
> >
> > > Hello Aleix!
> > >
> > > Outstanding work, thank you! It is good to know, that stuff exists, if
> > > one wants to build web things on Guile.
> > >
> > > Best regards,
> > > Zelphir
> > >
> > > On 2/16/21 7:17 AM, Aleix Conchillo Flaqué wrote:
> > > > Hi,
> > > >
> > > > I'm very excited to announce guile-oauth 1.0.0. The biggest addition
> to
> > > > this version is OAuth 2.0 support (authorization code and client
> > > > credentials grants). It comes with a Reddit example. It has also very
> > > minor
> > > > breaking changes for the old OAuth 1.0a API.
> > > >
> > > > https://github.com/aconchillo/guile-oauth/
> > > >
> > > > * About
> > > >
> > > > guile-oauth is an OAuth client module for Guile. It supports the
> > > following
> > > > features:
> > > >
> > > > - OAuth 1.0a: HMAC-SHA1 and PLAINTEXT signatures.
> > > > - OAuth 2.0: Authorization Code and Client Credentials grant types.
> > > >
> > > > * Download
> > > >
> > > > Compressed sources and a GPG detached signature[*]:
> > > >
> > > >
> > >
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.0.0.tar.gz
> > > >
> > >
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.0.0.tar.gz.sig
> > > >
> > > > [*] To verify download both files and then run:
> > > >
> > > >gpg --keyserver keys.openpgp.org \
> > > > --recv-keys 7CEC5511C8D057A9EF17470C54D4CC6FFC7468F4
> > > >
> > > >gpg --verify guile-oauth-1.0.0.tar.gz.sig
> > > >
> > > > * Changes since 1.0.0
> > > >
> > > > https://github.com/aconchillo/guile-oauth/blob/master/NEWS
> > > >
> > > > Bugs and comments can be reported at
> > > > https://github.com/aconchillo/guile-oauth/issues
> > > >
> > > > Happy hacking!
> > > >
> > > > Aleix
> > >
> > > --
> > > repositories: https://notabug.org/ZelphirKaltstahl
> > >
> > >
> > >
>


Re: guile-oauth 1.0.0 released

2021-02-19 Thread Nala Ginrut
Congrats!
I'm considering adding a new option entry for OAUTH, and guile-oauth could
be one of the backends.
Will you consider supporting OAUTH2?

Best regards.


On Tue, Feb 16, 2021 at 8:02 PM Zelphir Kaltstahl <
zelphirkaltst...@posteo.de> wrote:

> Hello Aleix!
>
> Outstanding work, thank you! It is good to know, that stuff exists, if
> one wants to build web things on Guile.
>
> Best regards,
> Zelphir
>
> On 2/16/21 7:17 AM, Aleix Conchillo Flaqué wrote:
> > Hi,
> >
> > I'm very excited to announce guile-oauth 1.0.0. The biggest addition to
> > this version is OAuth 2.0 support (authorization code and client
> > credentials grants). It comes with a Reddit example. It has also very
> minor
> > breaking changes for the old OAuth 1.0a API.
> >
> > https://github.com/aconchillo/guile-oauth/
> >
> > * About
> >
> > guile-oauth is an OAuth client module for Guile. It supports the
> following
> > features:
> >
> > - OAuth 1.0a: HMAC-SHA1 and PLAINTEXT signatures.
> > - OAuth 2.0: Authorization Code and Client Credentials grant types.
> >
> > * Download
> >
> > Compressed sources and a GPG detached signature[*]:
> >
> >
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.0.0.tar.gz
> >
> https://download.savannah.nongnu.org/releases/guile-oauth/guile-oauth-1.0.0.tar.gz.sig
> >
> > [*] To verify download both files and then run:
> >
> >gpg --keyserver keys.openpgp.org \
> > --recv-keys 7CEC5511C8D057A9EF17470C54D4CC6FFC7468F4
> >
> >gpg --verify guile-oauth-1.0.0.tar.gz.sig
> >
> > * Changes since 1.0.0
> >
> > https://github.com/aconchillo/guile-oauth/blob/master/NEWS
> >
> > Bugs and comments can be reported at
> > https://github.com/aconchillo/guile-oauth/issues
> >
> > Happy hacking!
> >
> > Aleix
>
> --
> repositories: https://notabug.org/ZelphirKaltstahl
>
>
>


GNU Artanis-0.5 released!

2021-02-12 Thread Nala Ginrut

I'm pleased to announce artanis-0.5 here.

GNU Artanis is a web application framework(WAF) written in Guile Scheme.
https://web-artanis.com
Or the alternative domain name:
https://artanis.dev

It is designed to support the development of dynamic websites, web
applications, web services and web resources. Artanis provides several
tools for web development: database access, templating frameworks,
session management, URL-remapping for RESTful, page caching, and so on.

GNU Artanis is under GPLv3+ & LGPLv3+ (dual licenses).

GNU Artanis is also the official project of SZDIY community. It's used
to build server side of SZDIY common service. It is offered to GNU
project to make free software better.
http://szdiy.org

Here are the compressed sources:
http://ftp.gnu.org/gnu/artanis//artanis-0.5.tar.gz   (528KB)
http://ftp.gnu.org/gnu/artanis//artanis-0.5.tar.bz2   (440KB)

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/artanis//artanis-0.5.tar.gz.sig
http://ftp.gnu.org/gnu/artanis//artanis-0.5.tar.bz2.sig

Use a mirror for higher download bandwidth:
http://www.gnu.org/order/ftp.html

Here are the MD5 and SHA1 checksums:

59c12c1c37a36059613a6ccee2ebcece  artanis-0.5.tar.gz
358098d37b478723fdbc28394d48016f  artanis-0.5.tar.bz2
dab7737eccbc92901cd7b70f6ac86551a0cd8259  artanis-0.5.tar.gz
a89edb6356b4867bbb685151e9b4dc3bddfa9ca1  artanis-0.5.tar.bz2

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

gpg --verify artanis-0.5.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

gpg --keyserver keys.gnupg.net --recv-keys 
F53B4C5695B5E4D56093432484696772846A0058

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
Autoconf 2.69
Guile 3.0.5

NEWS

Changes in 0.5
* Notable changes
- Support Guile-3
- Use libnss for hash algorithms
- Fix cookies to work
- Fix ssql for SQL standard

--
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


Re: guile-json 4.2.0 released

2020-07-02 Thread Nala Ginrut
srfi-180 +1

On Thu, Jul 2, 2020, 22:56 Bill Markmann  wrote:

> It looks like the surface API is different, but the internal json <-->
> scheme records functionality overlaps... Any thoughts on whether
> guile-json  would serve as the underpinnings of an implementation of
> srfi-180?
>
> https://srfi.schemers.org/srfi-180/srfi-180.html
>
> https://github.com/scheme-requests-for-implementation/srfi-180
>
> - Bill
>
> On Thu, Jul 2, 2020 at 9:08 AM Ludovic Courtès  wrote:
>
> > Hi,
> >
> > Aleix Conchillo Flaqué  skribis:
> >
> > > * Changes since 4.1.0
> > >
> > > https://github.com/aconchillo/guile-json/blob/master/NEWS
> >
> > --8<---cut here---start->8---
> >  - Introduce (define-json-mapping) which allows converting a JSON object
> > into
> > a record type and vice versa. The initial code for this feature was
> > copied
> > from the GNU Guix project.
> > --8<---cut here---end--->8---
> >
> > Nice!  :-)
> >
> > There’s a bidirectional version here, but it’s slightly incompatible:
> >
> >
> >
> https://gitlab.inria.fr/guix-hpc/guix-kernel/-/blob/master/jupyter/json.scm
> >
> > It relies on (guix records), which is not great for Guile-JSON.
> >
> > Ludo’.
> >
> >
> >
>


Re: [ANN] Guile Hall 0.3.0 released

2020-05-18 Thread Nala Ginrut
Thanks for the work!
I'd like to use it in my next project, and introduce it in my new book.

Best regards.


On Sat, May 16, 2020, 23:42 Alex Sassmannshausen <
alex.sassmannshau...@gmail.com> wrote:

> Hello,
>
> I have the pleasure to announce that I have today released Guile Hall
> 0.3.0.
>
> You can get a tarball (that requires autoreconf) at
> https://gitlab.com/a-sassmannshausen/guile-hall/-/releases.
>
> You can also install it with the latest Guix (from a3dfe05285):
> $ guix install guile-hall
>
> You can check the source code, and report issues at
> https://gitlab.com/a-sassmannshausen/guile-hall/.
>
> I would like to thank the following people, who have all contributed
> issues, thougts or code.
>
> Stephen Scheck 
> Jose A. Ortega Ruiz 
> Jack Hill 
> Adriano Peluso 
>
> Release notes below, under * Changes in 0.3 (since 0.2.1).
>
> * From the README file
>
> Hall aims to provide a black box that "just works" (tm), so that you
> can create, develop, build & distribute Guile projects.
>
> With Hall you will be able to:
> - Manage a Guile project hierarchy from one project spec file.
> - Transparently support the GNU build system for maximum portability.
> - Leverage tight coupling to Guix for reliability & confidence.
> - Profit.
>
> This README is all written documentation that currently exists.  The
> project must be considered Alpha software at this stage.
>
> Nonetheless, all commands and arguments are documented, and passing
> the -h flag to any command or sub-command should provide you with some
> guidance.  In addition all procedures in the codebase are documented
> with docstrings.
>
> * Changes in 0.3 (since 0.2.1)
>
> ** Allow adding single files to hall.scm using `hall scan'
>
>`hall scan' now accepts two optional arguments so that you can quickly
> add
>individual files to your hall.scm file, even if your project state is
>dirty.  This is an alternative to running the full auto-magic `hall
> scan'
>command.
>
> ** Emit user friendly error messages for common failures
>
>Hitherto we simply used `throw' to error out of unexpected situations.
>This would happen even in the case of user error or predictable
> situations.
>
>I consider the codebase solid enough to emit more user-friendly error
>messages in predictable situations.
>
> ** Allow use of fully-fledged regexp to --skip files
>
>The `scan' and `clean' subcommands accept a --skip keyword to exclude
>specific (classes of) files from their operation.  So far they had to be
>precise files.  The --skip keyword now expects Guile style regex pattern
>strings for increased flexibility.
>
> ** Add a notes system for giving advice to the user
>
>Hall aims to understand your project and the files it contains, even if
> it
>does not fully support your use case.  To this end, its architecture
>creates a representation of your project in the hall.scm file.
>
>Hall now has a facility for emitting useful commentary when creating or
>manipulating this representation.
>
>A current case in point at present is that we understand that Guile
>projects may include C files — but Hall does not support them in its
> build
>infrastructure.  So we want to allow & support users who include C
> files,
>but we want to warn them about Hall's short-comings in this area.
>
> ** Change the filetype architecture
>
>So far, filetype registration code was spread out over the codebase.
> From
>this version we support a simple  interface.  Supported
> filetypes
>are declared in /hall/spec.scm.
>
>Supporting more filetypes is as easy as adding a simple declaration
> there.
>
>This sets up a further development allowing individual projects to
> specify
>filetypes above and beyond Hall's built-in filetypes.
>
> ** Support XML, C, .log, .trs, .tex, & emacs autosave/backup files
>
>A simple development thanks to the above.
>
> ** Add a default .gitignore file
>
>Hall has strong opinions about development, primarily to stop new
>developers from having to make bewildering choices.  Currently it pushes
>strong git & guix integration, as well as a specific documentation and
>folder structure.  As such we now add a standard .gitignore file that
>should cover the vast majority of use cases.
>
>


Re: FFI arg_types for C array

2020-03-12 Thread Nala Ginrut
BTW, you may realize that the FFI type is platform-dependent, so u32vector
is assuming your platform is x86.
Please take care of these issues when you write product code.

Best regards.


On Thu, Mar 12, 2020 at 4:06 PM Nala Ginrut  wrote:

> Hi Myles!
> In your case, you've announced int array in your C code, so you shouldn't
> use u8vector, the correct one is (u32vector 0 1 2 3 4 5 6 7 8 9)
> Please notice that 0 is the placeholder since your array starts from 1.
>
> On Thu, Mar 12, 2020 at 4:22 AM Myles English 
> wrote:
>
>> Hi Nala,
>>
>> On Tue, 10 Mar 2020, 18:50 Nala Ginrut,  wrote:
>>
>>> If I understand your question correctly,  the arg_type should be (list
>>> int '*)
>>>
>>> On Tue, Mar 10, 2020 at 10:25 PM Myles English 
>>> wrote:
>>>
>> I am trying to call a C function with this signature from Guile:
>>>
>>>>
>>>> void the_test(int n, const int the_array[]);
>>>>
>>>> in pointer->procedure what should arg_types be?
>>>>
>>>
>> Thank you for reply, it does indeed answer my original question.  Now,
>> how do I call the guile procedure to use the C function?  I thought this
>> might work but it doesn't:
>>
>> In file main.scm:
>>
>> (use-modules (system foreign)
>>  (rnrs bytevectors))
>>
>> (define libarray (dynamic-link "/path/to/libarray.so"))
>>
>> (define the-test
>>   (pointer->procedure void
>> (dynamic-func "the_test" libarray)
>> (list int '*)))
>>
>> (define (call-the-test)
>>   (let* ((bv  (u8-list->bytevector '(1 2 3 4 5 6 7 8 9)))
>> (bv_p (bytevector->pointer bv)))
>> (display bv) (newline)
>> (the-test 9 bv_p)))
>>
>> (call-the-test)
>>
>> In file array.c:
>>
>> #include 
>> void the_test(int n, const int the_array[])
>> {
>>   int i, k;
>>   for (k = 1; k <= n; k++)
>> {
>>   i = the_array[k];
>>   printf("the_array [%d] = %d\n", k, i);
>> }
>>   return;
>> }
>>
>> compiled with:
>>
>> gcc -c -Wall -fpic array.c && gcc -shared -o libarray.so array.o
>>
>> This is the result of calling the guile module, (I was hoping to get the
>> numbers 1 to 9):
>>
>> $ guile main.scm
>> #vu8(1 2 3 4 5 6 7 8 9)
>> the_array [1] = 134678021
>> the_array [2] = 9
>> the_array [3] = 0
>> the_array [4] = 0
>> the_array [5] = 0
>> the_array [6] = 0
>> the_array [7] = 0
>> the_array [8] = 27
>> the_array [9] = 0
>>
>> In addition to the main question above, the C function expects a 1-based
>> index for the array, how would the guile procedure accommodate this?
>>
>> Thanks,
>> Myles
>>
>>>


Re: FFI arg_types for C array

2020-03-12 Thread Nala Ginrut
Hi Myles!
In your case, you've announced int array in your C code, so you shouldn't
use u8vector, the correct one is (u32vector 0 1 2 3 4 5 6 7 8 9)
Please notice that 0 is the placeholder since your array starts from 1.

On Thu, Mar 12, 2020 at 4:22 AM Myles English 
wrote:

> Hi Nala,
>
> On Tue, 10 Mar 2020, 18:50 Nala Ginrut,  wrote:
>
>> If I understand your question correctly,  the arg_type should be (list
>> int '*)
>>
>> On Tue, Mar 10, 2020 at 10:25 PM Myles English 
>> wrote:
>>
> I am trying to call a C function with this signature from Guile:
>>
>>>
>>> void the_test(int n, const int the_array[]);
>>>
>>> in pointer->procedure what should arg_types be?
>>>
>>
> Thank you for reply, it does indeed answer my original question.  Now, how
> do I call the guile procedure to use the C function?  I thought this might
> work but it doesn't:
>
> In file main.scm:
>
> (use-modules (system foreign)
>  (rnrs bytevectors))
>
> (define libarray (dynamic-link "/path/to/libarray.so"))
>
> (define the-test
>   (pointer->procedure void
> (dynamic-func "the_test" libarray)
> (list int '*)))
>
> (define (call-the-test)
>   (let* ((bv  (u8-list->bytevector '(1 2 3 4 5 6 7 8 9)))
> (bv_p (bytevector->pointer bv)))
> (display bv) (newline)
> (the-test 9 bv_p)))
>
> (call-the-test)
>
> In file array.c:
>
> #include 
> void the_test(int n, const int the_array[])
> {
>   int i, k;
>   for (k = 1; k <= n; k++)
> {
>   i = the_array[k];
>   printf("the_array [%d] = %d\n", k, i);
> }
>   return;
> }
>
> compiled with:
>
> gcc -c -Wall -fpic array.c && gcc -shared -o libarray.so array.o
>
> This is the result of calling the guile module, (I was hoping to get the
> numbers 1 to 9):
>
> $ guile main.scm
> #vu8(1 2 3 4 5 6 7 8 9)
> the_array [1] = 134678021
> the_array [2] = 9
> the_array [3] = 0
> the_array [4] = 0
> the_array [5] = 0
> the_array [6] = 0
> the_array [7] = 0
> the_array [8] = 27
> the_array [9] = 0
>
> In addition to the main question above, the C function expects a 1-based
> index for the array, how would the guile procedure accommodate this?
>
> Thanks,
> Myles
>
>>


Re: FFI arg_types for C array

2020-03-10 Thread Nala Ginrut
If I understand your question correctly,  the arg_type should be (list int
'*)

On Tue, Mar 10, 2020 at 10:25 PM Myles English 
wrote:

> Hello,
>
> I am trying to call a C function with this signature from Guile:
>
> void the_test(int n, const int the_array[]);
>
> In the description here:
> https://www.gnu.org/software/guile/manual/html_node/Dynamic-FFI.html
> in pointer->procedure what should arg_types be?
>
> Thanks,
> Myles
>


Re: Hosting Guile web applications

2020-01-19 Thread Nala Ginrut
Oh, I forget to promote Guix which should be the preferred way for
installing other useful Guile packages. :-)

On Sun, Jan 19, 2020, 17:03 Ricardo Wurmus  wrote:

>
> Nala Ginrut  writes:
>
> > And you may install it with Docker that may save your lot of time:
> >
> https://nalaginrut.com/archives/2019/09/18/install%20gnu%20artanis%20with%20docker
>
> Or with Guix:
>
>   guix install artanis
>
> --
> Ricardo
>
>


Re: Hosting Guile web applications

2020-01-18 Thread Nala Ginrut
And you may install it with Docker that may save your lot of time:
https://nalaginrut.com/archives/2019/09/18/install%20gnu%20artanis%20with%20docker


On Sun, Jan 19, 2020 at 3:24 AM Nala Ginrut  wrote:

> Hi Jeremy!
> You make take a look at https://artanis.dev
>
> Best regards.
>
>
> On Sat, Jan 18, 2020 at 11:29 PM Jérémy Korwin-Zmijowski <
> jer...@korwin-zmijowski.fr> wrote:
>
>> Hello Guilers !! Hope you are doing well.
>>
>> I would like to know where/how do you host your web applications written
>> in Guile.
>>
>> I would like to start hacking on the web but kind of lack of experience
>> in these field...
>>
>> Thank you in advance !
>> Jeko
>>
>


Re: Hosting Guile web applications

2020-01-18 Thread Nala Ginrut
Hi Jeremy!
You make take a look at https://artanis.dev

Best regards.


On Sat, Jan 18, 2020 at 11:29 PM Jérémy Korwin-Zmijowski <
jer...@korwin-zmijowski.fr> wrote:

> Hello Guilers !! Hope you are doing well.
>
> I would like to know where/how do you host your web applications written
> in Guile.
>
> I would like to start hacking on the web but kind of lack of experience in
> these field...
>
> Thank you in advance !
> Jeko
>


Re: Guile Hall 0.2.1 Released

2020-01-17 Thread Nala Ginrut
nice work!

On Fri, Jan 17, 2020 at 9:44 PM Alex Sassmannshausen <
alex.sassmannshau...@gmail.com> wrote:

> Hello,
>
> I've just released Guile Hall 0.2.1.  It is primarily a maintenance
> release to support Guile 3.0.  This means it should work with Guile 3
> and it should also make any project managed through hall (by using the
> `hall dist` command) work with Guile 3.0.
>
> Beyond this the new release includes a greatly expanded manual, and some
> smaller tweaks and bug fixes.
>
> You can get it with Guix after pulling the latest version with
> $ guix package -i guile-hall
>
> Otherwise you can get the code from
>   https://gitlab.com/a-sassmannshausen/guile-hall/
>
> After installing autoconf, automake, pkg-config and texinfo, you can
> perform the usual
>   autoreconf -vif && ./configure && make && make install
>
> What is Guile Hall?
>
> From the README:
>
> Hall is a command-line application and a set of Guile libraries that
> allow you to quickly create and publish Guile projects.  It allows you
> to transparently support the GNU build system, manage a project
> hierarchy & provides tight coupling to Guix.
>
> It's fundamental aim is to provide a black box that just works (tm)
> for you so you distribute, manage & create guile projects.
>
> This project is part of my overall goal of creating user-friendly basic
> tooling & libraries for Guile to encourage newbies to start building
> with Guile.
>
> Best wishes,
>
> Alex
>
>


Re: configuring guile packages [was: GNU Guile 2.9.8 Released [beta]]

2020-01-08 Thread Nala Ginrut
Well, I shouldn't since autoconf should deal with it automatically. I
remember I did this just because of a workaround, at that time Guile-2.2
has issue to detect the correct version number, and I was hurry to release.
Long time ago, I forget to remove it.

Best regards


On Thu, Jan 9, 2020, 02:24 Jason Earl  wrote:

> On Wed, Jan 08 2020, Nala Ginrut wrote:
>
> > Finally I found the problem is that I left a m4/guile.m4 in Artanis for
> > some reasons. It's solved by remove it.
> >
> > Thanks for all the helps!
> >
> > Best regards
> >
> > On Mon, Jan 6, 2020 at 2:56 PM Nala Ginrut  wrote:
>
> I am far from an expert at Autoconf, and it is entirely possible that I
> am leading you astray by mentioning this, but the Autoconf manual
> actually covers why you might want to include an updated copy of
> guile.m4 in your package instead of removing it entirely.
>
> It even uses guile as an example.
>
> https://www.gnu.org/software/automake/manual/html_node/Local-Macros.html
>
> Long story short, if you would like Artanis to be usable on older
> versions of guile that might include the older version of the guile.m4
> file that doesn't work then including the fancier new guile.m4 file in
> your package will make Artanis potentially work without a guile upgrade.
> That's almost certainly how the guile.m4 file got in your tree in the
> first place.  aclocal --install probably got ran at some point and it
> included it.
>
> In this particular case, it might not be worth it to ship a local
> version of a file that will also be included with guile.  As you have
> already seen local m4 files is a bit of foot gun.  They are easy to
> forget, and although there are tools that will update your development
> files automagically, you have to remember to use the tools.
>
> Plus, that way you don't have to worry about testing to see if Artanis
> actually works with old versions of guile :).
>
> Thanks for your work.
>
> Jason Earl
>


Re: configuring guile packages [was: GNU Guile 2.9.8 Released [beta]]

2020-01-08 Thread Nala Ginrut
Finally I found the problem is that I left a m4/guile.m4 in Artanis for
some reasons. It's solved by remove it.

Thanks for all the helps!

Best regards

On Mon, Jan 6, 2020 at 2:56 PM Nala Ginrut  wrote:

> Hi Matt!
> Thanks for the help.
> However, it seems doesn't work for me. I think your solution is to solve
> mixed guile version detection issue, right?
> I'm building it in docker, a pure clean Debian10 environment. Hmm...
>
> On Sat, Jan 4, 2020 at 7:29 AM Matt Wette  wrote:
>
>>
>>
>> On 1/3/20 10:44 AM, Matt Wette wrote:
>> > On 1/3/20 6:53 AM, Matt Wette wrote:
>> >>>  I am running into other issues, however, when there is a
>> >>> guile in my path that appears before anything else, but a guile-2
>> >>> that appears from another directory.  I am working to add
>> >>> --with-guile to fix that.  I'm having problems checking against
>> >>> 2.0.14, for example.
>> > I have been working on my configures.  I have separate guile-2.0.14,
>> > -2.2.4 and -2.9.8 installs.
>> > To get everything to work I ended up with the following configure.ac
>> > and nyacc.m4.  Not beautiful
>> > but it's working for 2.0.14, 2.2.X and 2.9.8.
>> >
>> > = snip from configure.ac =
>> > m4_include([./pkg.m4])
>> > m4_include([./guile.m4])
>> > m4_include([./nyacc.m4])
>> >
>> > AC_ARG_WITH(guile, [--with-guilepath to binary],
>> > ,with_guile=unspecified)
>> >
>> > if test "_$with_guile" != "_unspecified"; then
>> >   GUILE=$with_guile
>> >   GUILE_EFFECTIVE_VERSION=`$GUILE -c "(display (effective-version))"`
>> >   guile_libdir=`$GUILE -c "(display (assq-ref %guile-build-info
>> > 'libdir))"`
>> >   PKG_CONFIG_LIBDIR=$guile_libdir/pkgconfig
>> >   PKG_CONFIG=pkg-config
>> >   export PKG_CONFIG_LIBDIR
>> > else
>> >   GUILE_PKG([3.2 3.0 2.9 2.2 2.0])
>> >   GUILE_PROGS
>> > fi
>> >
>> > GUILE_SITE_DIR
>> > GUILE_SITE_GO_DIR
>> > GUILE_DATA_DIR
>> >
>> > ==
>>
>> So I changed configure arg from "--with-guile=/path/to/guile" to
>> "GUILE=/path/to/guile"
>> AC_ARG_VAR([GUILE],[path to guile binary])
>> if test "x$ac_env_GUILE_set" = "xset"; then
>>GUILE_EFFECTIVE_VERSION=`$GUILE -c "(display (effective-version))"`
>>guile_libdir=`$GUILE -c "(display (assq-ref %guile-build-info
>> 'libdir))"`
>>PKG_PROG_PKG_CONFIG
>>PKG_CONFIG_LIBDIR=$guile_libdir/pkgconfig
>>export PKG_CONFIG_LIBDIR
>> else
>>GUILE_PKG([3.0 2.9 2.2 2.0])
>>GUILE_PROGS
>> fi
>>
>>
>>
>>
>>
>>
>>


Re: configuring guile packages [was: GNU Guile 2.9.8 Released [beta]]

2020-01-05 Thread Nala Ginrut
Hi Matt!
Thanks for the help.
However, it seems doesn't work for me. I think your solution is to solve
mixed guile version detection issue, right?
I'm building it in docker, a pure clean Debian10 environment. Hmm...

On Sat, Jan 4, 2020 at 7:29 AM Matt Wette  wrote:

>
>
> On 1/3/20 10:44 AM, Matt Wette wrote:
> > On 1/3/20 6:53 AM, Matt Wette wrote:
> >>>  I am running into other issues, however, when there is a
> >>> guile in my path that appears before anything else, but a guile-2
> >>> that appears from another directory.  I am working to add
> >>> --with-guile to fix that.  I'm having problems checking against
> >>> 2.0.14, for example.
> > I have been working on my configures.  I have separate guile-2.0.14,
> > -2.2.4 and -2.9.8 installs.
> > To get everything to work I ended up with the following configure.ac
> > and nyacc.m4.  Not beautiful
> > but it's working for 2.0.14, 2.2.X and 2.9.8.
> >
> > = snip from configure.ac =
> > m4_include([./pkg.m4])
> > m4_include([./guile.m4])
> > m4_include([./nyacc.m4])
> >
> > AC_ARG_WITH(guile, [--with-guilepath to binary],
> > ,with_guile=unspecified)
> >
> > if test "_$with_guile" != "_unspecified"; then
> >   GUILE=$with_guile
> >   GUILE_EFFECTIVE_VERSION=`$GUILE -c "(display (effective-version))"`
> >   guile_libdir=`$GUILE -c "(display (assq-ref %guile-build-info
> > 'libdir))"`
> >   PKG_CONFIG_LIBDIR=$guile_libdir/pkgconfig
> >   PKG_CONFIG=pkg-config
> >   export PKG_CONFIG_LIBDIR
> > else
> >   GUILE_PKG([3.2 3.0 2.9 2.2 2.0])
> >   GUILE_PROGS
> > fi
> >
> > GUILE_SITE_DIR
> > GUILE_SITE_GO_DIR
> > GUILE_DATA_DIR
> >
> > ==
>
> So I changed configure arg from "--with-guile=/path/to/guile" to
> "GUILE=/path/to/guile"
> AC_ARG_VAR([GUILE],[path to guile binary])
> if test "x$ac_env_GUILE_set" = "xset"; then
>GUILE_EFFECTIVE_VERSION=`$GUILE -c "(display (effective-version))"`
>guile_libdir=`$GUILE -c "(display (assq-ref %guile-build-info
> 'libdir))"`
>PKG_PROG_PKG_CONFIG
>PKG_CONFIG_LIBDIR=$guile_libdir/pkgconfig
>export PKG_CONFIG_LIBDIR
> else
>GUILE_PKG([3.0 2.9 2.2 2.0])
>GUILE_PROGS
> fi
>
>
>
>
>
>
>


Re: GNU Guile 2.9.8 Released [beta]

2020-01-02 Thread Nala Ginrut
When I was trying to compile Artanis, the configure threw an error:

checking for Guile version >= 3.0... configure: error: Guile 3.0 required,
but 2.9.8 found


Here's what I put in configure.ac:
GUILE_PKG(2.2 2.3 2.9 3.0)

My question is "what's the correct config here"?

Best regards.



On Thu, Jan 2, 2020 at 9:37 PM Andy Wingo  wrote:

> We are pleased to announce GNU Guile release 2.9.8.  This is the eighth
> and possibly final pre-release of what will eventually become the 3.0
> release series.
>
> Compared to the current stable series (2.2.x), the future Guile 3.0 adds
> support for just-in-time native code generation, speeding up all Guile
> programs.  See the NEWS extract at the end of the mail for full details.
>
> Compared to the previous prerelease (2.9.7), Guile 2.9.8 fixes a bug in
> libguile that caused writes to unmapped memory in some circumstances.
> This problem manifested itself as a failure of Guile to compile itself
> on some systems, notably Ubuntu 18.04 on x86-64.  It also fixes a couple
> warnings related to SRFI-35.
>
> The current plan is to make a 3.0.0 final release on 17 January 2020.
> We may need another prerelease in the interim.  It's a good time to test
> the prereleases to make sure they work on your platform.  Please send
> any build reports (success or failure) to guile-de...@gnu.org, along
> with platform details.  You can file a bug by sending mail to
> bug-gu...@gnu.org.
>
> The Guile web page is located at http://gnu.org/software/guile/, and
> among other things, it contains a copy of the Guile manual and pointers
> to more resources.
>
> Guile is an implementation of the Scheme programming language, with
> support for many SRFIs, packaged for use in a wide variety of
> environments.  In addition to implementing the R5RS Scheme standard,
> Guile includes a module system, full access to POSIX system calls,
> networking support, multiple threads, dynamic linking, a foreign
> function call interface, and powerful string processing.
>
> Guile can run interactively, as a script interpreter, and as a Scheme
> compiler to VM bytecode.  It is also packaged as a library so that
> applications can easily incorporate a complete Scheme interpreter/VM.
> An application can use Guile as an extension language, a clean and
> powerful configuration language, or as multi-purpose "glue" to connect
> primitives provided by the application.  It is easy to call Scheme code
> From C code and vice versa.  Applications can add new functions, data
> types, control structures, and even syntax to Guile, to create a
> domain-specific language tailored to the task at hand.
>
> Guile 2.9.8 can be installed in parallel with Guile 2.2.x; see
>
> http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html
> .
>
> A more detailed NEWS summary follows these details on how to get the
> Guile sources.
>
> Here are the compressed sources:
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.lz   (10MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz   (12MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz   (21MB)
>
> Here are the GPG detached signatures[*]:
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.lz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz.sig
>
> Use a mirror for higher download bandwidth:
>   http://www.gnu.org/order/ftp.html
>
> Here are the SHA256 checksums:
>
>   3ce11e9dca0f475fa944729d99f33c379fe8962e729bd21a99470249624c71d7
> guile-2.9.8.tar.lz
>   4a8cf663b8bfd435168935c74a8ec434328ffad16230322c64f0ac567dda2c26
> guile-2.9.8.tar.xz
>   31c3d458ff9342db130e27c8d82d2a33912da92845e5ee431b6a125971a823d2
> guile-2.9.8.tar.gz
>
> [*] Use a .sig file to verify that the corresponding file (without the
> .sig suffix) is intact.  First, be sure to download both the .sig file
> and the corresponding tarball.  Then, run a command like this:
>
>   gpg --verify guile-2.9.8.tar.gz.sig
>
> If that command fails because you don't have the required public key,
> then run this command to import it:
>
>   gpg --keyserver keys.gnupg.net --recv-keys
> 4FD4D288D445934E0A14F9A5A8803732E4436885
>
> and rerun the 'gpg --verify' command.
>
> This release was bootstrapped with the following tools:
>   Autoconf 2.69
>   Automake 1.16.1
>   Libtool 2.4.6
>   Gnulib v0.1-1157-gb03f418
>   Makeinfo 6.5
>
> An extract from NEWS follows.
>
>
> Changes in alpha 2.9.8 (since alpha 2.9.7):
>
> * Bug fixes
>
> ** Fix bug in which abort_to_prompt used an invalid stack pointer
>
> This bug manifested itself as a bootstrap compile error on some systems,
> notably Ubuntu 18.04 on x86-64, and was due to failing to recalculate a
> local variable after a possible stack relocation.
>
> ** SRFI-35 does a #:re-export-and-replace on `'
> ** SRFI-35 avoids compiler warnings for multiply-defined condition types
>
>
> Changes in alpha 2.9.x (since the stable 2.2 series):
>
> 

Re: [ANN] guile-web-driver

2019-12-27 Thread Nala Ginrut
Hi Michal!
Thanks for working on this. I'm going to integrate it to test GNU Artanis
webapp.

Best regards.


On Fri, Dec 13, 2019 at 10:13 PM Michal Herko 
wrote:

> I am pleased to announce the first relase of guile-web-driver.
>
> guile-web-driver is a client implementation of WebDriver aka Selenium2
> protocol.
> This protocol allows programatic control of a web browser session.
>
> The implementation is not complete,
> but it can alrady be used for automated web server testing.
>
> The git repo, sources and documentation is at
>   https://github.com/her01n/guile-web-driver
>
>
>


GNU Artanis-0.4.1 released [stable]

2019-12-25 Thread Nala Ginrut
I'm pleased to announce the first stable version artanis-0.4.1 here.

GNU Artanis is a web application framework(WAF) written in Guile Scheme.
https://web-artanis.com
Or the alternative domain name:
https://artanis.dev

It is designed to support the development of dynamic websites, web
applications, web services and web resources. Artanis provides several
tools for web development: database access, templating frameworks,
session management, URL-remapping for RESTful, page caching, and so on.

GNU Artanis is under GPLv3+ & LGPLv3+ (dual licenses).

GNU Artanis is also the official project of SZDIY community. It's used
to build server side of SZDIY common service. It is offered to GNU
project to make free software better.
http://szdiy.org

Here are the compressed sources:
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.1.tar.gz   (536KB)
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.1.tar.bz2   (452KB)

Here are the GPG detached signatures[*]:
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.1.tar.gz.sig
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.1.tar.bz2.sig

Use a mirror for higher download bandwidth:
  http://www.gnu.org/order/ftp.html

Here are the MD5 and SHA1 checksums:

2fc1c3ccc8fe51b47858b20c6473a475  artanis-0.4.1.tar.gz
24bceec509e32b096e912ecee19d82d4  artanis-0.4.1.tar.bz2
56ca69e21989eb3deb492bee38189eedcaa411fc  artanis-0.4.1.tar.gz
53ea38908535cf561a1e08c2129bd12f1e37f338  artanis-0.4.1.tar.bz2

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify artanis-0.4.1.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys 
F53B4C5695B5E4D56093432484696772846A0058

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Guile 2.2.4

NEWS

Changes in 0.4.1
* Notable changes
- Add RESTful API generator
- Polish sendmail module
- Refactor command module for better reusing
- Add missing 'art migrate create'

-- 
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


Re: GNU Mes 0.21 released

2019-11-25 Thread Nala Ginrut
Congrats!

On Tue, Nov 26, 2019, 11:11 Brett Gilio  wrote:

> Jan Nieuwenhuizen  writes:
>
> > We are pleased to announce the release of GNU Mes 0.21, representing
> > 54 commits over 10 weeks.
> >
> > Mes has now brought the Reduced Binary Seed bootstrap to Guix (bootstrap
> > a GNU/Linux system without binary GNU toolchain or equivalent).  See
> > https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/
> >
> > This release supports a Scheme-only bootstrap: Mes can now be built with
> > Gash and the experimental Gash Core Utils instead of using GNU Awk, GNU
> > Bash, the GNU Core Utilities, GNU Grep, GNU Gzip, GNU Make, GNU SED, and
> > GNU Tar.  Also, the Mes C Library now supports bootstrapping those.
> > Finally, this release brings Mes as a package to Debian GNU/Linux.
> >
> > We are excited that the Nlnet Foundation[12] is now sponsoring this
> > work!
> >
> > Next targets:
> >
> >  - Introduce the Reduced Binaries Seed bootstrap to NixOS (Debian,
> >Gentoo, ...?)
> >  - Scheme-only bootstrap: use Guile, Gash and Gash Core Utils to remove
> >awk, bash, core utilities, grep, gzip, make, sed, tar, etc. from the
> >Guix bootstrap binaries
> >  - ARM support
> >  - Full Source Bootstrap: compile Mes.c using M2-Planet
> >  - Reduced Binary Seed bootstrap for ARM
> >  - the Hurd
> >
> > Packages are available in Guix master.
> >
> > * About
> >
> >   GNU Mes[0] brings a Reduced Binary Seed bootstrap[1] to GNU Guix[2].
> >   This bootstrap has halved the size of opaque, uninspectable binaries
> >   that were needed to bootstrap Guix.  The final goal is to help create
> >   a full source bootstrap as part of the bootstrappable builds[3] effort
> >   for any interested UNIX-like operating system.
> >
> >   It consists of a mutual self-hosting Scheme interpreter written in
> >   ~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme.
> >   This mes.c is being simplified[4] to be transpiled by M2-Planet[5].
> >
> >   The Scheme interpreter has a Garbage Collector, a library of loadable
> >   Scheme modules-- notably Dominique Boucher's LALR[6], Pre-R6RS
> >   [portable syntax-case[7] with R7RS ellipsis, Matt Wette's Nyacc[8]
> >   --and test suite just enough to support a REPL and a C99 compiler:
> >   MesCC.
> >
> >   Mes+MesCC can compile an only lightly patched TinyCC[9] that is
> >   self-hosting.  Using this tcc and the Mes C library we now have a
> >   Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
> >   binutils-2.20.1, gcc-2.95.3.  This is enough to bootstrap Guix for
> >   i686-linux and x86_64-linux.
> >
> >   Mes is inspired by The Maxwell Equations of Software: LISP-1.5[10] --
> John
> >   McCarthy page 13, GNU Guix's source/binary packaging transparency and
> >   Jeremiah Orians's stage0[11] ~500 byte self-hosting hex assembler.
> >
> > * Download
> >
> >   git clone git://git.savannah.gnu.org/mes.git
> >
> >   Here are the compressed sources and a GPG detached signature[*]:
> > https://ftp.gnu.org/gnu/mes/mes-0.21.tar.gz
> > https://ftp.gnu.org/gnu/mes/mes-0.21.tar.gz.sig
> >
> >   Use a mirror for higher download bandwidth:
> > https://ftpmirror.gnu.org/mes/mes-0.21.tar.gz
> > https://ftpmirror.gnu.org/mes/mes-0.21.tar.gz.sig
> >
> >   Here are the MD5 and SHA1 checksums:
> >
> >   dea43529d2d84fb4b9d81bdd9efcc715  mes-0.21.tar.gz
> >   35721a81feeab6e0d5913b8bf78f18951edbb964  mes-0.21.tar.gz
> >
> >   [*] Use a .sig file to verify that the corresponding file (without the
> >   .sig suffix) is intact.  First, be sure to download both the .sig file
> >   and the corresponding tarball.  Then, run a command like this:
> >
> > gpg --verify mes-0.21.tar.gz.sig
> >
> >   If that command fails because you don't have the required public key,
> >   then run this command to import it:
> >
> > gpg --keyserver keys.gnupg.net --recv-keys
> 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
> >
> >   and rerun the 'gpg --verify' command.
> >
> > * Get informed, get involved
> >
> >   See https://bootstrappable.org
> >   Join #bootstrappable on irc.freenode.net.
> >
> > * Changes in 0.21 since 0.20
> >  ** Core
> >  *** Mes can now be bootstrapped with Gash and Gash Core Utils.
> >  *** Mes now supports a Scheme-only bootstrap.
> >  *** Mes now supports -c EXPR.
> >  ** MesCC
> >  *** Mes C Library now supports bootstrapping GNU Awk, GNU Bash, GNU
> SED, and GNU Tar.
> >  *** Mes C Library now has limited float support in vfprintf, vsnprintf,
> vsscanf.
> >   7 new functions
> >  abtod, atof, creat, dtoab, execlp, isgraph, mknod, readlink, strtod,
> >  symlink.
> >   5 new stubs
> >  getgrgid, getgrnam, getpgid, getpgrp, mktime, setgrent.
> >  ** Noteworthy bug fixes
> >  *** A bug with `mes -c EXPR' has been fixed.
> >  *** The REPL now works again on x86_64.
> >  *** --with-system-libc now works again.
> >
> > Greetings,
> > janneke and Danny.
> >
> > [0] https://www.gnu.org/software/mes
> > [1] 

Re: mailmam, web bridge, forum, p2p

2019-10-26 Thread Nala Ginrut
On Sat, Oct 26, 2019 at 3:49 PM  wrote:

> On Thu, Oct 24, 2019 at 09:39:04PM -0400, Mike Gerwitz wrote:
>
> thanks for your good overview... a question
>
> > Passing session tokens via GET requests is a bad idea, because that
> > leaks the token.
>
> Even in https?
>

I guess he mean query-string with GET.


>
> Cheers
> -- t
>


Re: mailmam, web bridge, forum, p2p (was: Diversification)

2019-10-25 Thread Nala Ginrut
Mikael Djurfeldt  于 2019年10月25日周五 19:30写道:

> It would be nice to be able to run scheme code in the client:
>
> https://github.com/google/schism
>
> They mention "the Webassembly GC proposal". :)
>
> Maybe some day, the Guile compiler could emit WASM? That would mean
> supporting multiple VMs.
>

That's my dream for years, fortunately, it will come true, just the matter
of time. Thanks WASM.
Schism generates WASM binary directly. But actually, we may just generate
standard WAT format which is s-expr, and can be convert to WASM by wat2wasm.
And fortunately, WASM has standard low-level system API spec now, which is
called WASI.
I haven't figured out the continuation in WASM. But I saw somebody raised
the topic.

Best regards.



> Mikael
>
> Den tors 24 okt. 2019 18:16Nala Ginrut  skrev:
>
>> I've ever tried to write a site for our local community without any JS
>> code, all auxiliary features include simple animation are implemented with
>> CSS.
>> However, I have to say it's painful to write a more complex site. I don't
>> know if there's any framework for that. I'm too lazy to write all things
>> manually. But I recommend you try it if you never did. It's interesting.
>>
>> Best regards.
>>
>>
>>  于 2019年10月24日周四 22:58写道:
>>
>> > On Thu, Oct 24, 2019 at 11:35:52AM +0200, Amirouche Boubekki wrote:
>> > > Le jeu. 24 oct. 2019 à 03:01, Nala Ginrut  a
>> > écrit :
>> >
>> > [...]
>> >
>> > > Last time I checked the security requirements for web application that
>> > > do not rely on JavaScript was too complicated. I preferred to forget
>> > > about it.
>> > >
>> > > See
>> >
>> https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html
>> >
>> > Now this is interesting. I still dream of an "application"
>> > which is viable (perhaps with some restrictions) without
>> > any javascript (as Wikipedia and relatives do, BTW). So
>> > I'm interested in such things as above...
>> >
>> > Cheers
>> > -- tomás
>> >
>>
>


Re: mailmam, web bridge, forum, p2p (was: Diversification)

2019-10-25 Thread Nala Ginrut
On Fri, Oct 25, 2019 at 2:08 PM pelzflorian (Florian Pelz) <
pelzflor...@pelzflorian.de> wrote:

> On Fri, Oct 25, 2019 at 07:42:41AM +0800, Nala Ginrut wrote:
> > Yes, you need to login if you change IP, but the last IP keeps session.
>
> Does checking the IP enhance security in any way?  There are some
> (few) reasons IPs may change.
>

We don't chase the effect that one policy solves all problems.
Checking IP can only solve certain general problems. For example, the
stolen token can not be used to login from another machine.


> That is interesting, I did not think of that.  Then again, browsing
> the mailing list would be possible without login, i.e. without token,
> so URLs would be clean for a search engine crawler.  I do not know if
> crawlers should ever have a session on other Artanis sites.
>
>
I'm talking about the general cases since Artanis is not only for
mailing-list browsing.
The purpose is to explain why Artanis choose the policy.
In Artanis, you may use a customized method for that.

Best regards.


Re: mailmam, web bridge, forum, p2p (was: Diversification)

2019-10-24 Thread Nala Ginrut
Yes, you need to login if you change IP, but the last IP keeps session.
BTW, encoding token in URL is bad for SEO.

Zelphir Kaltstahl  于 2019年10月25日周五 01:44写道:

> Hi Nala!
>
> I have a question regarding this IP check.
>
> Does this mean that both, the IP address and (logical and) the cookie
> need to be correct, or is it an inclusive logical or?
>
> I sometimes find myself switching location of the server of the VPN I am
> using. In such a case, would I still be logged in, based on the correct
> cookie, or would I be logged out, because my IP address does not match
> my previous address?
>
> Regards,
>
> Zelphir
>
> On 10/24/19 4:15 PM, Nala Ginrut wrote:
> > On Thu, Oct 24, 2019 at 8:30 PM pelzflorian (Florian Pelz) <
> > pelzflor...@pelzflorian.de> wrote:
> >
> >> Because of login CSRF the Referer header should also be verified for
> >> all links internal to the website (external links should strip the
> >> Referer header via redirect pages similar to what the code attached to
> >> this mail does).
> >>
> >> I do not know what Artanis does currently.  I will check next week.
> >>
> >>
> > The current Artanis will check both session token (from cookies) and the
> > client IP.
> > This method was blamed to be overkilled because some users may be in the
> > same LAN with a unique external IP.
> > But I think IPv6 will cover this world finally, so I think this would be
> > the best way to go.
> > Of course, there's no conflict to add extra verification token. Patches
> or
> > proposals are welcome. ;-)
> >
> > Best regards.
>
>


Re: Use core or SRFIs?

2019-10-24 Thread Nala Ginrut
Personally, I prefer srfi. But sometimes I mix with RnRS.
I think it's better to avoid Guile specific things, however, Guile provides
many good things that the standard doesn't have.

On Thu, Oct 24, 2019 at 11:56 PM Zelphir Kaltstahl <
zelphirkaltst...@posteo.de> wrote:

> Hello Guile Users!
>
> I have a question regarding usage of SRFIs in Guile code.
>
> Sometimes there are core functions, which are also available from an
> SRFI implementation. One example I am currently dealing with are bitwise
> operations for integer numbers. There is SRFI 60 and there are the core
> functions like logand, logior and so on.
>
> Usually I tend to think, that using the SRFI implementation in such
> situation is better, as it is an implementation of a common interface,
> which other Schemes might also have implemented. Using that makes code
> more portable to other Schemes. However, I want to be sure, that this is
> a good way of thinking about it. Are there ever arguments against using
> an SRFI implementation, when an SRFI implementation provides what I need?
>
> Another example are structs. I usually use SRFI 9 to make some structs,
> instead of the core record or struct type.
>
> What do you think?
>
> Best regards,
>
> Zelphir
>
>
>


Re: mailmam, web bridge, forum, p2p (was: Diversification)

2019-10-24 Thread Nala Ginrut
I've ever tried to write a site for our local community without any JS
code, all auxiliary features include simple animation are implemented with
CSS.
However, I have to say it's painful to write a more complex site. I don't
know if there's any framework for that. I'm too lazy to write all things
manually. But I recommend you try it if you never did. It's interesting.

Best regards.


 于 2019年10月24日周四 22:58写道:

> On Thu, Oct 24, 2019 at 11:35:52AM +0200, Amirouche Boubekki wrote:
> > Le jeu. 24 oct. 2019 à 03:01, Nala Ginrut  a
> écrit :
>
> [...]
>
> > Last time I checked the security requirements for web application that
> > do not rely on JavaScript was too complicated. I preferred to forget
> > about it.
> >
> > See
> https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html
>
> Now this is interesting. I still dream of an "application"
> which is viable (perhaps with some restrictions) without
> any javascript (as Wikipedia and relatives do, BTW). So
> I'm interested in such things as above...
>
> Cheers
> -- tomás
>


Re: mailmam, web bridge, forum, p2p (was: Diversification)

2019-10-24 Thread Nala Ginrut
On Thu, Oct 24, 2019 at 8:30 PM pelzflorian (Florian Pelz) <
pelzflor...@pelzflorian.de> wrote:

> Because of login CSRF the Referer header should also be verified for
> all links internal to the website (external links should strip the
> Referer header via redirect pages similar to what the code attached to
> this mail does).
>
> I do not know what Artanis does currently.  I will check next week.
>
>
The current Artanis will check both session token (from cookies) and the
client IP.
This method was blamed to be overkilled because some users may be in the
same LAN with a unique external IP.
But I think IPv6 will cover this world finally, so I think this would be
the best way to go.
Of course, there's no conflict to add extra verification token. Patches or
proposals are welcome. ;-)

Best regards.


Re: Diversification [ branched from Re: conflicts in the gnu project now affect guile]

2019-10-23 Thread Nala Ginrut
Hi folks!
Artanis has been using in product, that is to say, working stable and keep
maintaining. Artanis aims for rapid development just like Ruby on Rails. So
that you may try your different ideas quickly.

If anyone is willing to try Artanis for the modern forum of Guile
community, I'd like to provide free technical support, free as in free
beer. :-)

Best regards.


Zelphir Kaltstahl  于 2019年10月24日周四 05:42写道:

>
> On 10/23/19 2:33 PM, pelzflorian (Florian Pelz) wrote:
> > On Wed, Oct 23, 2019 at 01:25:44PM +0200, pelzflorian (Florian Pelz)
> wrote:
> >> On Wed, 23 Oct 2019 08:48:13 +0200
> >> "pelzflorian (Florian Pelz)"  wrote:
> >>> On Wed, Oct 23, 2019 at 08:16:34AM +0200, Amirouche Boubekki wrote:
> >>> I only know that subscribing to GNOME Discourse required Javascript
> >>> and its mail headers are less pretty compared to mailman.
> >>>
> >> These are the reasons why I do not like Discourse.
> >>
> >>> I am not sure what it is that caused gnome to move from mailman to
> >>> discourse, but I suspect it was to get the more up-to-date feel of a
> web
> >>> interface.
> >> I quote Emmanuele Bassi, <
> https://mail.gnome.org/archives/gtk-devel-list/2019-February/msg1.html
> >:
> >>> Having a better archive search, a better moderation system, and a
> >>> decent web UI are the major selling points for switching to
> >>> Discourse.
> > If there isn’t one already, then I would like to start working on a
> > written in Guile, free software, old-school bulletin board-like
> > interface, perhaps with a more modern UI design, next week.  I do not
> > like Discourse and will need something like this anyway for other
> > projects.  I see there already is guile-email and Mumi.  So far I had
> > no time looking at either.  I would start next week.
> >
> > Regards,
> > Florian
>
> It would be an interesting project, for an example of how to do a Guile
> server side. What kind of library/framework/tool would you use for the
> server side? I think the standard library webserver is still very bare
> bones. So far I've not tried GNU Artanis. Would it be a good idea to use
> that?
>
> I've created some example code for the standard library web server:
>
>
> https://gitlab.com/zelphir-kaltstahl-projects/guile-scheme-tutorials-and-examples/tree/dev/web-development/using-guile-webserver
>
> But it has not progressed very far.
>
> Regards,
> Zelphir
>
>
>


Re: TensorFlow bindings to Guile?

2019-10-23 Thread Nala Ginrut
Hi Arne!
As one of the developers of AIscm, I think MNIST is ready for you.
Currently, most critical things are provided, not only Tensorflow, but also
imagick/ffmpeg/opencv...etc.
However, for real cases, we still need user friendly APIs. Now, most things
are too low level.
I have a plan to write a framework based on AIscm, just like Keras to
Tensorflow.

I just need more time slots.

Best regards.


Arne Babenhauserheide  于 2019年10月24日周四 04:37写道:

> Hi Jan,
>
> Jan Wedekind  writes:
> > Hi Basile,
> > I have implemented Tensorflow bindings for Guile:
> http://wedesoft.github.io/aiscm/
> > Let me know if you have any problems installing it.
>
> Is aiscm already at a stage where I could experiment with using it for
> handwriting recognition even though I don’t have prior experience with
> setting up machine learning pipelines?
>
> Does it work with a simple intel GPU or on CPU?
>
> There’s a project I’ve wanted to start for quite some time now.
>
> Best wishes,
> Arne
> --
> Unpolitisch sein
> heißt politisch sein
> ohne es zu merken
>


Re: Diversification [ branched from Re: conflicts in the gnu project now affect guile]

2019-10-23 Thread Nala Ginrut
On Wed, Oct 23, 2019 at 2:17 PM Amirouche Boubekki <
amirouche.boube...@gmail.com> wrote:

> Regarding the mailling list, many projects (among GNOME) have or will
> adopt https://www.discourse.org/. It has a per-user mailling list mode
> but it can not bridge mailman. My guess is that a discourse instance
> only for GNU Guile and Guix would be overkill, so maybe GNU might
> consider using that software?
>

IIRC there's someone in GNU private mailing-list had mentioned GNOME
discourse, but the later suddenly happened RMS issue had interrupted the
discussion. So that I've no idea where it is now.
Maybe it's a good idea to raise it again.

Best regards.


Re: [gnu-prog-discuss] What's new in GNU Artanis 0.4?

2019-10-18 Thread Nala Ginrut

Hi Jose!

Jose E. Marchesi writes:

> Is there a list of already written modules/applications written on it?

Yes, the blog is written in Artanis, you may check it out:
https://gitlab.com/NalaGinrut/colt/

I haven't released it officially, but I didn't find bug for 1 month
online test for my own blog.

You may lean how to develop webapp from Colt project, and you can also
just use it without any coding work. ;-)

Feel free to give me feed back in GitLab or arta...@gnu.org 

Best regards.


-- 
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


What's new in GNU Artanis 0.4?

2019-10-17 Thread Nala Ginrut

Hi folks!
Here's an article to help you figure out notable features in Artanis 0.4
https://nalaginrut.com/archives/2019/10/17/what%27s%20new%20in%20gnu%20artanis%200.4

Best regards.


-- 
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


[ANN] GNU Artanis 0.4 released!

2019-10-06 Thread Nala Ginrut

I'm pleased to announce the first stable version artanis-0.4 here.

GNU Artanis is a web application framework(WAF) written in Guile Scheme.
https://web-artanis.com
Or the alternative domain name:
https://artanis.dev

It is designed to support the development of dynamic websites, web
applications, web services and web resources. Artanis provides several
tools for web development: database access, templating frameworks,
session management, URL-remapping for RESTful, page caching, and so on.

GNU Artanis is under GPLv3+ & LGPLv3+ (dual licenses).

GNU Artanis is also the official project of SZDIY community. It's used
to build server side of SZDIY common service. It is offered to GNU
project to make free software better.
http://szdiy.org

Here are the compressed sources:
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.tar.gz   (532KB)
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.tar.bz2   (452KB)

Here are the GPG detached signatures[*]:
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.tar.gz.sig
  http://ftp.gnu.org/gnu/artanis//artanis-0.4.tar.bz2.sig

Use a mirror for higher download bandwidth:
  http://www.gnu.org/order/ftp.html

Here are the MD5 and SHA1 checksums:

12e1f5f8ebf4d958de3dbd78fdfbc05c  artanis-0.4.tar.gz
bc23ef76b00e87a334ba1c34fad6731b  artanis-0.4.tar.bz2
2dbc10425287c129b4e666cf47baeeb0b5373253  artanis-0.4.tar.gz
dd0d925defe802c6b4f415cf95050eeeb835ad4e  artanis-0.4.tar.bz2

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify artanis-0.4.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys 
F53B4C5695B5E4D56093432484696772846A0058

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Guile 2.2.4

NEWS

Changes in 0.4
* Notable changes
- New auto authentication shortcut #:with-auth
- Fix bugs in upload module
- Add OPTIONS method
- Add new mode to #:auth to authenticate from POST automatically
- Add drop mode to :session shortcut
- Add --refresh to `work' command
- Fix exception printing to prevent quit
- If the rule didn't initialize the oht then it'll throw exception
- Support mmap file I/O
- Fix wrong methods parsing
- Schedule when parsing big mfds
- Fix wrong 404 status generation
- Fix wrong route.cache generation
- Fix to avoid crash when client was closed suddenly
- Fix the crash bug when very beginning in main-loop a client was closed
- Fix named-pipe missed msg when client was closed
- Support inexclusive websocket named-pipe
- Fix several bugs in websocket module
- Update template render to support FreeJS announcement
- Fix cookies removing
- Fix hostname display
- Fix to use basename of redirect path to avoid 500 error
- Add dynamic sys page rendering
- Fix ssql: SQL string literals should be surrounded by single-quote

-- 
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


Re: Maintainership changes: many thanks to Mark!

2019-09-11 Thread Nala Ginrut
Hi Mark!
Many thanks for all your contributions!
I'm going to say that I've learned too many things from you, and you helped
me to carve my skills.
Do you remember once I said I owe you a beer? ;-)

Best regards.


On Wed, Sep 11, 2019 at 3:57 PM Andy Wingo  wrote:

> Hi all,
>
> After many years working on Guile and more than 5 years in a
> maintainer role, Mark Weaver has decided to step down.  Taking over
> from him and remaining as Guile co-maintainers are Ludovic Courtès and
> Andy Wingo.
>
> On behalf of myself and Ludovic and no doubt all Guile users and
> developers: a heartfelt thanks, Mark, for all of your years of
> service, and see you around the Guile community!
>
> Happy hacking,
>
> Andy and Ludovic
>
>


The proper init script

2019-08-14 Thread Nala Ginrut
Hi folks!
I'm implementing Lua front-end seriously. However, I'd like to make sure
the module is pure without any predefined Scheme procedures. Because the
predefined 'string' object conflicts with 'string' procedure of Scheme.

For Lua script running or compilation, I can set a generator with
#:make-default-environment in language spec.scm. And it works fine.

However, I want to run this code in the REPL when I switch to Lua language.
code---
(set-current-module (define-module* '(lua) #:pure #t))
-end
Of course, I can run it first, then switch to Lua, and it works.
Now my question is, how can it run automatically when I switch the language?

I've tried '.guile`, and it seems useless.
How can I do it properly?

Best regards.


Re: Raising awareness about guile-pfds status

2019-07-15 Thread Nala Ginrut
I'll rewrite a new one when I got time.

Amirouche Boubekki  于 2019年7月16日周二 00:06写道:

> The original maintainer of guile-pfds is sadly not responding to my mails.
>
> Right now, guile-pfds is the goto solution for functional data structures
> in Guile,
> and prolly other Scheme implementations.
>
> At least the hamt has a bug, see https://github.com/ijp/pfds/pull/6/files
>
> I think this is a very important package especially for guile that doesn't
> have a functional hashmaps.
>
> Anyone willing to take ownership of the project?
>
>
> ref: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35518
>
> --
> Amirouche ~ amz3 ~ https://hyper.dev
>


Re: python-on-guile 1.0 and guile-persist 1.0

2019-07-09 Thread Nala Ginrut
Great work! Thanks Stefan!

Stefan Israelsson Tampe  于 2019年7月10日周三 03:19写道:

> With documentation in place and finishing the latest persistant tasks I now
> release python-on-guile 1.0.0 and guile-persist 1.0.0
>
> Source:
> https://gitlab.com/python-on-guile/python-on-guile/
>
> Doc:
> http://www.c-lambda.se/python-on-guile/
>


Re: python-on-guile

2019-06-26 Thread Nala Ginrut
Thanks for the work! I appreciate it!

On Sat, Jun 15, 2019 at 3:05 AM Stefan Israelsson Tampe
 wrote:
>
> python on guile has reached quite far and now compiles a lot of the standard 
> python code base. The speed has not been of importance. Rather to get good 
> coopertion between guile scheme and python programs.
>
> But it also define a scheme interface to the python functionalites and i'm 
> now trying to compile some documentation of this inteface. You can find docs 
> at http://www.c-lambda.se/python-on-guile.
>
> source code is at,
> https://gitlab.com/python-on-guile/python-on-guile/
>
> This is a work in progress.
>
> Happy hacking!!



GNU Artanis-0.3.2 released [stable]

2019-06-10 Thread Nala Ginrut

I'm pleased to announce the first stable version artanis-0.3.2 here.

GNU Artanis is a web application framework(WAF) written in Guile Scheme.
https://web-artanis.com
Or the alternative domain name:
https://artanis.dev

It is designed to support the development of dynamic websites, web
applications, web services and web resources. Artanis provides several
tools for web development: database access, templating frameworks,
session management, URL-remapping for RESTful, page caching, and so on.

GNU Artanis is under GPLv3+ & LGPLv3+ (dual licenses).

GNU Artanis is also the official project of SZDIY community. It's used
to build server side of SZDIY common service. It is offered to GNU
project to make free software better.
http://szdiy.org

Here are the compressed sources:
http://ftp.gnu.org/gnu/artanis//artanis-0.3.2.tar.gz   (520KB)
http://ftp.gnu.org/gnu/artanis//artanis-0.3.2.tar.bz2   (440KB)

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/artanis//artanis-0.3.2.tar.gz.sig
http://ftp.gnu.org/gnu/artanis//artanis-0.3.2.tar.bz2.sig

Use a mirror for higher download bandwidth:
http://www.gnu.org/order/ftp.html

Here are the MD5 and SHA1 checksums:

c0c37700ce4311214ef1f4fa547ddb62  artanis-0.3.2.tar.gz
f0fc942387865f56ddfaee4c855ee691  artanis-0.3.2.tar.bz2
f483519f1c9e002178881fafd56c2ebd6aed4a6f  artanis-0.3.2.tar.gz
0c2d922003c728b1e85dc612454f1420eec321c6  artanis-0.3.2.tar.bz2

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

gpg --verify artanis-0.3.2.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

gpg --keyserver keys.gnupg.net --recv-keys 
F53B4C5695B5E4D56093432484696772846A0058

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
Autoconf 2.69
Guile 2.2.4

NEWS

Changes in 0.3.2
* Notable changes
- redirect-to API supports extra headers
- Fiter null string when generating SQL
- Migration cache was removed since it's useless now
- Fix misc bugs in migration
- Enhanced Models API
- If no models defined then it throws warning
- Boolean option supports `disable'
- Fix socketfile data connection
- Thanks "Christopher Baines "
- Fix wrong length of Websocket frame
- Register default sigint handler before run
- Fixed bugs in upload module
- Fix wrong HEADER in upload client
- Fix file description leaking after the file was uploaded
- Support React + Typescript

--
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058


signature.asc
Description: PGP signature


Re: [ANN] guile-wiredtiger 0.8.0

2019-05-17 Thread Nala Ginrut
Congrats!
Do you think it could be standalone NOSQL database and integrated to Artanis?

On Fri, May 17, 2019 at 6:14 PM Amirouche  wrote:
>
> On 2019-05-16 23:05, Amirouche wrote:
> >
> > - my program leaking memory. I am not sure but it is unlikely that
> > guile
> >   part of the code leaks memory [...] AND I experimented with both Chez
> >   Scheme and Python, they both seems to leak memory. The latter takes
> >   more time but in the end the result is the same. I don't have mongodb
> >   confirmation, to my mind it is again due to a configuration problem.
> >   The default configuration of wiredtiger use one thread for cache
> > eviction.
> >   That is there is a single thread dedicated to fighting the growth of
> > the
> >   cache using some Least Recently Used algorithm IIRC. Anyway, setting
> >   okvs 'eviction-trigger to 85% (aka. triggers eviction when 85% of the
> > cache
> >   is filled) and using 4 threads for eviction itself, allows
> > gotofish.scm
> >   to complete its mission.
>
> Here is memory plot of the run of gotofish:
> https://i.paste.pics/5959b4e53f8197af3253a812e86a43c7.png
>
> Like I try to explain, my understanding is not supposed to sustain a lot
> of write
> for a long period of time.
>
> >
> > The key word is fine-tuning. That is what makes the database works.
> >
>



Re: GNU Shepherd 0.6.1 released

2019-05-14 Thread Nala Ginrut
Thanks Arne!
I'm still trying to find a way to get rid of systemd for a certain
purpose, that's great!

On Tue, May 14, 2019 at 4:19 AM Arne Babenhauserheide  wrote:
>
>
> Hi Nala Ginrut,
>
> Nala Ginrut  writes:
> > I saw it describes that "intended for use on GNU/Hurd", is it still
> > workable on GNU/Linux?
>
> Since that’s where it’s mainly used: definitely yes.
>
> Best wishes,
> Arne
> --
> Unpolitisch sein
> heißt politisch sein
> ohne es zu merken



Re: GNU Shepherd 0.6.1 released

2019-05-13 Thread Nala Ginrut
Hi Ludo!
First, congrats!
I saw it describes that "intended for use on GNU/Hurd", is it still
workable on GNU/Linux?

On Mon, May 13, 2019 at 3:59 PM Ludovic Courtès  wrote:
>
> Hi Arne,
>
> Arne Babenhauserheide  skribis:
>
> > Ludovic Courtès  writes:
>
> [...]
>
> >>   interface.  The GNU Shepherd may also be used by unprivileged users to
> >>   manage per-user daemons (e.g., tor, privoxy, mcron, etc.)
> >
> > Is there a tutorial about using shepherd for per-user daemons? I don’t
> > really know how to start with it, but I would very much like to
> > move services from "just start this in ~/.bashrc" to shepherd.
>
> There’s no tutorial, but the manual has a couple of examples, and I
> think it’s rather easy to get started.
>
> Cheers,
> Ludo’.
>



Re: GNU Guix 1.0.0 released

2019-05-03 Thread Nala Ginrut

Congrats!

Ludovic Courtès writes:

> We are thrilled to announce the release of GNU Guix 1.0.0!
>
> This 1.0 release is a major milestone for Guix.  It represents 7 years
> of hard work with more than 40,000 commits by 260 people, 19 releases,
> and an equally amazing amount of work on documentation, translation,
> artwork, web design, mentoring, outreach, and many other activities that
> together have made it a thriving project.
>
> Read more about today’s announcement at:
>
>   https://gnu.org/software/guix/blog/2019/gnu-guix-1.0.0-released
>
> Whether you’re a software developer, a user, or a free software
> enthusiast, we hope GNUGuix will provide you with the tools to deploy
> and manage software with confidence and ease, qualities that are not
> usually associated with software deployment.  We’d love to hear from you!
>
> • About
>
>   GNUGuix is a transactional package manager and an advanced
>   distribution of the GNU system that respects user freedom.  Guix can
>   be used on top of any system running the kernel Linux, or it can be
>   used as a standalone operating system distribution for i686, x86_64,
>   ARMv7, and AArch64 machines.
>
>   In addition to standard package management features, Guix supports
>   transactional upgrades and roll-backs, unprivileged package
>   management, per-user profiles, and garbage collection.  When used as a
>   standalone GNU/Linux distribution, Guix offers a declarative,
>   stateless approach to operating system configuration management.  Guix
>   is highly customizable and hackable through Guile programming
>   interfaces and extensions to the Scheme language.
>
>   https://www.gnu.org/software/guix/
>
> • Download
>
>   Here are the compressed sources and a GPG detached signature[*]:
> https://ftp.gnu.org/gnu/guix/guix-1.0.0.tar.gz
> https://ftp.gnu.org/gnu/guix/guix-1.0.0.tar.gz.sig
>
>   Here are the bootable USB installation images and their signatures[*]:
> https://ftp.gnu.org/gnu/guix/guix-system-install-1.0.0.i686-linux.iso.xz
> 
> https://ftp.gnu.org/gnu/guix/guix-system-install-1.0.0.i686-linux.iso.xz.sig
> https://ftp.gnu.org/gnu/guix/guix-system-install-1.0.0.x86_64-linux.iso.xz
> 
> https://ftp.gnu.org/gnu/guix/guix-system-install-1.0.0.x86_64-linux.iso.xz.sig
>
>   Here is the QCOW2 virtual machine (VM) image and its signature:
> https://ftp.gnu.org/gnu/guix/guix-system-vm-image-1.0.0.x86_64-linux.xz
> 
> https://ftp.gnu.org/gnu/guix/guix-system-vm-image-1.0.0.x86_64-linux.xz.sig
>
>   Here are the binary tarballs and their signatures[*]:
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.i686-linux.tar.xz
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.i686-linux.tar.xz.sig
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.x86_64-linux.tar.xz
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.x86_64-linux.tar.xz.sig
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.armhf-linux.tar.xz
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.armhf-linux.tar.xz.sig
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.aarch64-linux.tar.xz
> https://ftp.gnu.org/gnu/guix/guix-binary-1.0.0.aarch64-linux.tar.xz.sig
>
>   Use a mirror for higher download bandwidth:
> https://www.gnu.org/order/ftp.html
>
>   Here are the SHA1 checksums:
>
>   fd64cd4347214a4e75d611696c9929cba8995323  guix-1.0.0.tar.gz
>   c17006616782405eee852dbd85292e73a0182d7e  
> guix-binary-1.0.0.aarch64-linux.tar.xz
>   9b168fa2835f911b9f340f2930d28b1287b53004  
> guix-binary-1.0.0.armhf-linux.tar.xz
>   a75a2571cc7aa8dbbb0a355bf1a29f4475c243ff  
> guix-binary-1.0.0.i686-linux.tar.xz
>   6ebfcb5cbed6dcd0c7514b8b3f2406125d30f1a5  
> guix-binary-1.0.0.x86_64-linux.tar.xz
>   c9f67b69b45a0ac4946e4472511e925782129e92  
> guix-system-install-1.0.0.i686-linux.iso.xz
>   802177714b7c96cf83dcab4b24e36f3111ba64b8  
> guix-system-install-1.0.0.x86_64-linux.iso.xz
>   244c3218326a706f495bfa2a7c03fe5f68549a8e  
> guix-system-vm-image-1.0.0.x86_64-linux.xz
>
>   [*] Use a .sig file to verify that the corresponding file (without the
>   .sig suffix) is intact.  First, be sure to download both the .sig file
>   and the corresponding tarball.  Then, run a command like this:
>
> gpg --verify guix-1.0.0.tar.gz.sig
>
>   If that command fails because you don't have the required public key,
>   then run this command to import it:
>
> gpg --keyserver pool.sks-keyservers.net \
> --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
>
>   and rerun the 'gpg --verify' command.
>
>   To install the standalone Guix system, please see “System
>   Installation” in the manual.  To install Guix on a running system, see
>   “Installation” in the manual.
>
> • Changes since version 0.16.0 (excerpt from the NEWS file)
>
>  ** Package management
>  *** New ‘-v’/‘--verbosity’ option for all commands
>  *** Most commands now default to verbosity level 1 (“quiet”)
>  *** New ‘guix package’ aliases: ‘install’, ‘remove’, ‘upgrade’, and ‘search’
>  *** 

Re: Meet Cybo, my personal organizer

2019-03-15 Thread Nala Ginrut
Hi jeremy!

But you think it could be helpful to manipulate the TODO with cybo ?
>

Yes, if I integrate it to PS1 prompt:
PS1="`cybo check`\\$\u@\h \W> ''

Then I can get mention in the terminal. And if I finish one item, I can run
"cybo next" to remove it.




In the first time I can work on :
> - add a task,
> - mark the current priority task as completed.
>
> Cheers,
> Jeko
>
> Le samedi 16 mars 2019 à 01:17 +0800, Nala Ginrut a écrit :
> > Hi jeremy!
> > I realized that your project is very interesting, because I can
> > easily integrate it to my PS1 prompt of bash, so that my terminal can
> > always tell me what to do next.
> > So here are my comments:
> > 1. Could you choose a common format of TODO? Or if you want to design
> > a new one, please provide the spec in the README.
> > 2. Could you provide a script to add new items easily, for example:
> >
> > cybo priority task-description
> >
> > 
> > cybo 1 fix critical bug of XXX
> > 
> >
> > Or support priority key either
> >
> > =
> > cybo top fix the critical bug
> > =
> >
> > Happy hacking!
> >
> >
> >
> >  于 2019年3月16日周六 00:31写道:
> > > Hello guilers !
> > >
> > > I wanted to introduce you to guile-cybo
> > > (https://framagit.org/Jeko/guile-cybo) !
> > >
> > > It is my first toy project in Guile and it aims to be a personal
> > > organizer (actually, just display the next priority task from
> > > todo-list).
> > > Feel free to give me any feedback, advice or even contribute to it.
> > >
> > > I want the source code to be as simple as possible so if you can't
> > > understand the behavior easily, I can problably fix it. Just tell
> > > me !
> > >
> > > I will add auto-tools to the project in short terms, maybe with
> > > help of
> > > guile-hall !
> > >
> > > Cheers,
> > >
> > > Jeko
> > > https://jeko.dev
> > >
>
>


Re: Meet Cybo, my personal organizer

2019-03-15 Thread Nala Ginrut
Hi jeremy!
I realized that your project is very interesting, because I can easily
integrate it to my PS1 prompt of bash, so that my terminal can always tell
me what to do next.
So here are my comments:
1. Could you choose a common format of TODO? Or if you want to design a new
one, please provide the spec in the README.
2. Could you provide a script to add new items easily, for example:

cybo priority task-description


cybo 1 fix critical bug of XXX


Or support priority key either

=
cybo top fix the critical bug
=

Happy hacking!



 于 2019年3月16日周六 00:31写道:

> Hello guilers !
>
> I wanted to introduce you to guile-cybo
> (https://framagit.org/Jeko/guile-cybo) !
>
> It is my first toy project in Guile and it aims to be a personal
> organizer (actually, just display the next priority task from
> todo-list).
> Feel free to give me any feedback, advice or even contribute to it.
>
> I want the source code to be as simple as possible so if you can't
> understand the behavior easily, I can problably fix it. Just tell me !
>
> I will add auto-tools to the project in short terms, maybe with help of
> guile-hall !
>
> Cheers,
>
> Jeko
> https://jeko.dev
>
>


Re: [ANN] Guile Hall Release (v0.2)

2019-02-16 Thread Nala Ginrut
Nice work!
We are moving forward to a bigger community for more contributions now!


Alex Sassmannshausen  于 2019年2月16日周六
21:05写道:

> Hi Neil,
>
> Neil Jerram writes:
>
> > On Fri, 15 Feb 2019 at 16:33, Alex Sassmannshausen
> >  wrote:
> >> [...]
> >> Otherwise you can get the code from
> >> https://gitlab.com/a-sassmannshausen/guile-hall/, and build (hopefully)
> >
> > Hi Alex,
> >
> > It's a bit of a side point, but I noticed that your org-mode README is
> > not properly formatted on the Gitlab site, and it looks like it would
> > be if you named it README.org.  Is that something you're already aware
> > of?
>
> Indeed — the project generates itself, and thus far hall defaulted to
> generating README files in org-mode.
>
> I've just pushed a new set of commits that make hall default to
> generating a REDAME.org file, and a symlink to from README to the
> former.
>
> So now this issue should be resolved for Hall itself too :-)
>
> Thanks for the note!
>
> Alex
>
>


Re: How do you format date-times in RFC 3339 style?

2019-02-12 Thread Nala Ginrut
Sorry for the misleading, what I thought is RFC1123. Please ingnore my
answer. :-(


Re: How do you format date-times in RFC 3339 style?

2019-02-11 Thread Nala Ginrut
Sorry for typo from input corrector:
s/unexpected/unexport

Nala Ginrut  于 2019年2月12日周二 05:39写道:

> Hi there!
> Guile web module has provided an unexpected API for that:
>
> (define write-date (@@ (web http) write-date))
>
> sirgazil  于 2019年2月12日周二 03:18写道:
>
>> Hi,
>>
>> I'm generating atom feeds from SXML that don't validate because of the
>> date-time format I'm using:
>>
>>  > (use-modules (srfi srfi-19))
>>  > (date->string (current-date) "~Y-~m-~dT~H:~M.~S~z")
>> $1 = "2019-02-11T13:42.57-0500"
>>
>> String $1 is close to the RFC 3339 style,¹ which is the required format
>> for atom feeds, but the time zone offset should be -05:00, and Guile's
>> SRFI-19 ~z time zone escape is RFC 822 style, which formats the time
>> zone offset as -0500.
>>
>> What should I do to get the offset in the required format?
>>
>>
>> Thanks,
>>
>>
>> _
>>
>> 1. http://www.faqs.org/rfcs/rfc3339.html
>>
>>
>> --
>> Luis Felipe López Acevedo
>> http://sirgazil.bitbucket.io/
>>
>>
>>
>>


[ANN] GNU Artanis-0.3.1 released!

2018-12-30 Thread Nala Ginrut


<#secure method=pgpmime mode=sign>
I'm pleased to announce the first stable version artanis-0.3.1 here.

GNU Artanis is a web application framework(WAF) written in Guile Scheme.
http://web-artanis.com

It is designed to support the development of dynamic websites, web
applications, web services and web resources. Artanis provides several
tools for web development: database access, templating frameworks,
session management, URL-remapping for RESTful, page caching, and so on.

GNU Artanis is under GPLv3+ & LGPLv3+ (dual licenses).

GNU Artanis is also the official project of SZDIY community. It's used
to build server side of SZDIY common service. It is offered to GNU
project to make free software better.
http://szdiy.org

Here are the compressed sources:
http://ftp.gnu.org/gnu/artanis//artanis-0.3.1.tar.gz   (524KB)
http://ftp.gnu.org/gnu/artanis//artanis-0.3.1.tar.bz2   (440KB)

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/artanis//artanis-0.3.1.tar.gz.sig
http://ftp.gnu.org/gnu/artanis//artanis-0.3.1.tar.bz2.sig

Use a mirror for higher download bandwidth:
http://www.gnu.org/order/ftp.html

Here are the MD5 and SHA1 checksums:

407b7133f148633de2adec732ba41cd2  artanis-0.3.1.tar.gz
3829a650d22b1f2125691cd63de74622  artanis-0.3.1.tar.bz2
b160615fa843442c395fec23411540c42ea86a49  artanis-0.3.1.tar.gz
c17ebb697d2721a10f0c6fc6a9b0f70e52d679cd  artanis-0.3.1.tar.bz2

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

gpg --verify artanis-0.3.1.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

gpg --keyserver keys.gnupg.net --recv-keys 
F53B4C5695B5E4D56093432484696772846A0058

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
Autoconf 2.69
Guile 2.2.3

NEWS

Changes in 0.3.1
* Notable changes
- Support Websocket named-pipe
- Authentication use HMAC
- Support optional third-party server-core
- Support Redis
- Fixed FD leaking in server-core
- Ragnarok will not quit when encountered exceptions
- Support DB timeout reconnecting
- :from-post supports json-mapping
- Added create --upgrade command to upgrade old config to new one with comments
- added inline docs to generated artanis.conf
- Redis as session backend
- Fixed inconsistent design in cookies
- Fixed tons of bugs

--
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058



Re: [ANN] guile-gi v0.0.1 released

2018-11-15 Thread Nala Ginrut
Congrats!

Mike Gran  于 2018年11月15日周四 22:45写道:

> Hello. I am announcing guile-gi v0.0.1.
>
> guile-gi is a library that autogenerates Guile bindings for GObject
> libraries that provide typelib files.  GNU Guile is an implementation
> of Scheme, a Lisp-like language.  GObject is a standard way of writing
> C-language libraries with headers and introspection information that
> are intended to allow them to be used from other languages. Typelib
> files are GObject's standard way to provide that introspection
> information. Among the GObject libraries are GTK3 and WebKitGTK2, two
> popular GUI libraries.
>
> In short, this library hopes to make GTK3 and WebKit2 available to
> Guile.
>
> The git repo is at
>   https://github.com/spk121/guile-gi.git
> The code can be browsed at
>   https://github.com/spk121/guile-gi
> The almost non-existent documentation can be read at
>   https://spk121.github.io/guile-gi/
> A tarball can be downloaded from
>   http://lonelycactus.com/tarball/guile-gi-0.0.1.tar.gz
>
> To read about what this library is supposed to do, check out
>   https://spk121.github.io/guile-gi/Getting-Started.html
>
> To see an example autogenerated library binding, check out
>
> https://raw.githubusercontent.com/spk121/guile-gi/master/test/Gtk_sample.scm
>
> This is pre-alpha code which I am releasing well before it is useful
> or ready, mostly for academic interest.
>
> Regards,
> Mike Gran
>
>


Re: Guile-SDL2 0.3.1 released

2018-10-16 Thread Nala Ginrut
Congrats!
On Tue, Oct 16, 2018 at 8:14 PM Thompson, David
 wrote:
>
> Hello Guilers,
>
> I'm happy to announce that Guile-SDL2 0.3.1 has been released!  This
> is a simple maintenance release that adds support for the upcoming
> Guile 3.0 featuring JIT compilation.  However, one new SDL2 binding
> has snuck in.  Thanks to Eero Leno for wrapping the
> SDL_SetRenderDrawColor function!
>
> tarball: 
>
> signature: 
>
> See the
> Guile-SDL2 project page 
> for more information.
>
> Bug reports, bug fixes, feature requests, and patches are welcomed.
>
> Happy hacking!
>
> - Dave
>



  1   2   3   4   >