Path: ...!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Mild Shock Newsgroups: comp.lang.java.programmer Subject: Re: ANN: Dogelog Player 1.1.6 (HTTP Client) Date: Sun, 10 Mar 2024 23:49:16 +0100 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 10 Mar 2024 22:49:15 -0000 (UTC) Injection-Info: solani.org; logging-data="1265078"; mail-complaints-to="abuse@news.solani.org" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.18.1 Cancel-Lock: sha1:tnDvC+WJ+jpW8GbxsJnEne7jcaY= In-Reply-To: X-User-ID: eJwNyMEBwCAIA8CViBjAcQrC/iPYex7VYOXbaJvDGXPKzcKFdvTfCkV/sbKXVuGk1lAkXCaQKieSMk4r2D4PS+wUzQ== Bytes: 4123 Lines: 82 Small implementation node about the new HTTP client in Dogelog Player for JavaScript. I am using fetch() everywhere. No need to get help from libraries such as: > Axios is a promise-based HTTP Client for node.js > and the browser. It is isomorphic (= it can run in > the browser and nodejs with the same codebase). > On the server-side it uses the native node.js http > module, while on the client (browser) it uses XMLHttpRequests. https://axios-http.com/docs/intro First of all XMLHttpRequests is deprecated in the browser, use fetch() instead. And nodejs has fetch() since release 21.x.x as well. So they have become isomorphic making AXIOS obsolete: > Notable Changes - Oct 17, 2023 > The recent update to Node.js, version 21, includes > an important change to the fetch module as well as > WebStreams . Both modules were marked as stable > after a recent update. https://nodejs.org/en/blog/announcements/v21-release-announce Mild Shock schrieb: > > Dogelog Player is a Prolog system that is 100% written > in Prolog itself. It is avsailable for the JavaScript, > Python and Java platform. We show how the stable > ordering of Prolog variables in Dogelog Player allows > highly efficient constraint solving approaches. > > We convert the undirected graph into a directed graph > and create adjacency lists. This inequality graph doesn’t > have the same delayed evaluation overhead than > (#=)/2 and dif/2. We demonstrate map coloring and > sudoku solving. Further improvements in a > subsequent article. > > See also: > > Map Coloring and Sudoku Solving > https://twitter.com/dogelogch/status/1766885890712883276 > > Map Coloring and Sudoku Solving > https://www.facebook.com/groups/dogelog > > Mild Shock schrieb: >> Dear All, >> >> We are happy to announce a new edition >> of the Dogelog player: >> >> - Enhanced '$YIELD'/1: >>    Previously the '$YIELD'/1 instruction was hard coded >> to understand an integer for sleep/1 and an atom for >> native library loading. The implementation has been >> change to accept a Promise object, known from >> JavaScript. Emulations were made available for >> Java and Python. >> >> - Async I/O: >>    Based on the new '$YIELD'/1 and a buffer fast path >> idea, the console reading, file property and file >> reading have been asyncified. There is no change in >> the Prolog API, files are still to be opened via the >> ISO core open/3 and accessed via ISO core get_code/2 >> respectively ISO core peek_code/2. But input can now >> be executed quasi-parallel by multiple tasks. >> >> - HTTP client: >>    The ISO core open/4 has been moved to the library(spin). >> The support of the HTTP and HTTPS protocol in open/3 >> and open/4, has been extended from the JavaScript >> browser to the JavaScript command line (by means of >> new fetch in nodejs >21). Further supported targets >> are now Python and Java (by means of new HTTP client >> in JDK >21). >> >> Have Fun! >> >> Jan Burse, http://www.xlog.ch/ , 07.03.2024 >