GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 06:31:37 JST mcc mcc

    #BabelOfCode 2024
    Week 2
    Language: Forth

    Confidence level: Low

    PREV WEEK: https://mastodon.social/@mcc/113743302074837530
    RULES: https://mastodon.social/@mcc/113676228091546556

    So today's challenge looks *absurdly* easy, to the point I'm mostly just suspicious that part 2 will get hard. I figure this is an okay time to burn Forth.

    I'm wanting to save Fortran for a week I can use the matrix ops. This puzzle looks suspiciously like part 2 will turn into a 2-dimensional array problem.

    In conversation about 4 months ago from mastodon.social permalink

    Attachments

    1. No result found on File_thumbnail lookup.
      mcc (@mcc@mastodon.social)
      from mcc
      #BabelOfCode 2024 Week 1 Language: Applesoft BASIC NEXT WEEK: https://mastodon.social/@mcc/113783248514095140 "Advent of Code" is an online event where you're given 25 two-part code puzzles, which you're supposed to solve in 25 days in December. I was busy so instead I'm doing a slow-motion, 1-puzzle-per-week version over the course of 2025, but with an added restriction: I have to do it in a different language each week. @unjello@mastodon.gamedev.place proposed a hashtag, so maybe there are two of us on this https://mastodon.gamedev.place/@unjello/113690629505083586 (1/2)
    2. No result found on File_thumbnail lookup.
      mcc (@mcc@mastodon.social)
      from mcc
      I have been too busy to do AOC this year and will be all month So I'm thinking I'm going to do AOC 2024, *in 2025*, under the following rules: - One challenge per week. - I don't have to perform a challenge every week. The goal is to finish by the start of December. - I have to do a different programming language every time. - C, C++ and Objective-C are not eligible languages. - If I make an honest attempt at a language and fail, I may retry in Go (but only Go) (I need to learn Go)
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 06:31:36 JST mcc mcc
      in reply to

      I *think* I'm doing this in pforth, for the simple reason that gforth, uh, isn't maintained anymore it seems, and so got dropped out of Debian Testing (which I have now)? I *think* I'd be *happier* using RetroForth, which is a "modern" Forth, but I guess it's better to learn the standardized, ANS Forth first. Even though everyone hates ANS Forth? Including the inventor of Forth…?

      My biggest fear is there appears to be no way to read numbers written in ASCII from a file. We're predating ASCII

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 06:31:36 JST mcc mcc
      in reply to

      First problem I hit is comments don't work. The documentation specifically says text in parenthesis are comments, but it isn't accepted.

      After some staring at the docs, I realize in all the examples, there are spaces. It turns out (Comment) is not a comment, but ( Comment ) is a comment. Because ( isn't a pure operator built in the language, rather there's a FORTH word ( that eats all words until ) is found. Holy crap. I never thought I'd say this but maybe it IS possible to self-host too hard

      In conversation about 4 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/113/783/315/508/606/422/original/bf413922a616b072.png
    • Embed this notice
      clarity flowers (clarity@xoxo.zone)'s status on Tuesday, 07-Jan-2025 06:31:36 JST clarity flowers clarity flowers
      in reply to

      @mcc honestly tho this is my favorite part of forth. You have to wrap your head around building your own ad-hoc compiler as you go along, perfectly tailored to the needs of the specific program.

      In conversation about 4 months ago permalink
    • Embed this notice
      clarity flowers (clarity@xoxo.zone)'s status on Tuesday, 07-Jan-2025 06:33:12 JST clarity flowers clarity flowers
      in reply to

      @mcc there are NO operators built into the language, because forth doesn't have syntax in the first place!

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:35:14 JST mcc mcc
      in reply to

      Okay. So some updates.

      It turns out loops (BEGIN..UNTIL) are a "premium" Forth feature and are only available inside functions. So I need to wrap the whole program in a : function ; . Well not the whole program, not the VARIABLEs, and I don't think you can nest the functions, and… never mind. I do the nest. New code:

      https://github.com/mcclure/aoc2024/tree/85890d80d89ebe82df779e20607f78cd4275f8db

      gforth fails with :

      src/puzzle.f:38: Invalid memory address

      I wrapped my program in a : run [code here] ; run . Line 38 is "run".

      I'm still lost.

      In conversation about 4 months ago permalink

      Attachments


    • Embed this notice
      clarity flowers (clarity@xoxo.zone)'s status on Tuesday, 07-Jan-2025 07:35:14 JST clarity flowers clarity flowers
      in reply to

      @mcc you have `partial TRUE !` and `TRUE partial !`, I forget which, but one of those is wrong (I think the latter is correct)

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:35:15 JST mcc mcc
      in reply to

      More pforth documentation horrors

      - The pforth tutorial is not a tutorial for pforth but rather a general forth tutorial, and therefore hedges itself frequently. For example, notice this section where it explains that "many forths" have a CASE statement. "Many forths"? What about THIS forth I'm reading the documentation to RIGHT NOW?

      - ABORT not documented. The documentation lists it as a reserved word but not what it does

      In conversation about 4 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/113/783/512/292/187/617/original/7d7c75b5b04ffbff.png
      Life is Tetris repeated this.
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:35:15 JST mcc mcc
      in reply to

      Wrote a version 1.0 of my program, testing it. All I've got so far is the character parser, reading the numbers in and decoding ASCII and that's it.

      This is… bad. I would describe this as bad behavior for a programming language interpreter

      In conversation about 4 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/113/783/617/438/081/519/original/fc27b229db620e94.png
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:35:15 JST mcc mcc
      in reply to

      The forth interpreter isn't completely busted, my test.f screenshot above worked. A simple "echo ascii values" program I wrote ( BEGIN KEY DUP . CR 0< UNTIL ) worked. But my 32 line, mildly more sophisticated program just… signal 11s. I do not know how to proceed. I am using "Debian Testing", which is TECHNICALLY a beta OS, so maybe the pforth is broken *subtly*. gforth isn't in dpkg. I don't… I don't know what to do next if the compiler crashes.

      Maybe I ssh into a VPS and run gforth there? :(

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:35:15 JST mcc mcc
      in reply to

      So here's my *current* code, which crashes in pforth:

      https://github.com/mcclure/aoc2024/blob/ec7ac2f3ad500d65e07dfeeee5877bf70a667c17/02-01-nuclear/src/puzzle.f

      I run it in gforth:

      cat "data/sample-2.txt" | gforth src/puzzle.f

      I get:

      in file included from *OS command line*:-1
      src/puzzle.f:13: Interpreting a compile-only word
      >>>BEGIN<<< ( Line )
      Backtrace:
      $7F5C6D55EB30 throw

      Line 13 is indeed the word "BEGIN". According to the tutorial, that is how you open a UNTIL loop.

      fuck the in What?

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:35:16 JST mcc mcc
      in reply to

      So this documentation is kinda very bad!

      Lacunae I have noticed:

      - They define a `KEY` operator for taking a character from STDIN, but don't explain what happens if `KEY` receives an EOF (experimentally: I seem to get a -1?)

      - They explain a special syntax `CHAR n` for inserting the ASCII value of n directly into the code, but don't explain how the fuck you're supposed to represent the ASCII value for a non-character symbol such as a space or newline

      In conversation about 4 months ago permalink
    • Embed this notice
      clarity flowers (clarity@xoxo.zone)'s status on Tuesday, 07-Jan-2025 07:37:50 JST clarity flowers clarity flowers
      in reply to

      @mcc you're starting to see how forth is more of a "way of life" than a programming language. the community convention is that you write your own forth instead of buying one off the shelf, lol

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:37:51 JST mcc mcc
      in reply to

      A thing worth noting here is if you read my posts carefully above, you'll find I successfully executed a BEGIN .. UNTIL program in pforth. So pforth just relaxes the requirements of gforth. I don't think I've hit what is causing pforth to crash yet. I'm just trying to satisfy gforth's requirements for running the software at all. Maybe I should have read gforth's manual instead of assuming pforth's is adequate :(

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Tuesday, 07-Jan-2025 07:37:51 JST mcc mcc
      in reply to

      This raises an interesting problem. I could have used a "nice" Forth like RetroForth or Factor(?) but I wanted to learn ANS Forth before I moved on to specializations. However, now I realize there are *only* specializations. Pforth is apparently giving me all kinds of niceties, the premium DLC is included at the toplevel. And I know for a fact gforth (of course, because that stands for GNU Forth) contains GNU extensions. So there are two standard Forths in Linux, neither actually standard.

      In conversation about 4 months ago permalink
    • Embed this notice
      clarity flowers (clarity@xoxo.zone)'s status on Wednesday, 08-Jan-2025 03:46:50 JST clarity flowers clarity flowers
      in reply to

      @mcc my suggestion with forth is always: consider linked lists as an option

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:51 JST mcc mcc
      in reply to

      *Head in hands after unwisely reading part 2* Part 2 is basically one big chunk of Regular Programming. Hey uh. Does anyone know if there's a way in Forth to copy THE ENTIRE STACK somewhere and then recall it later? I can think of a way to *destructively* back up the stack (move it to the return stack temporarily) but *copying* the stack… I got nothing.

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:51 JST mcc mcc
      in reply to

      UGGGH no i think i can do this with DEPTH CELLS ALLOT ( https://www.forth.com/starting-forth/8-variables-constants-arrays/ ) and then… and then some other nonsense. I think. Okay I absolutely have to stop thinking about this now. This may not have been the wisest of all possible uses of my Monday

      In conversation about 4 months ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: www.forth.com
        8. Variables, Constants, and Arrays
        from Marlin Ouverson
        As we have seen throughout the previous seven chapters, Forth programmers use the stack to store numbers temporarily while they perform calculations or to
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:52 JST mcc mcc
      in reply to

      No, no, I'm sorry. I was fooled by my syntax highlighter. In testing with the actual pforth executable it appears literally all of the above examples are invalid uses of Forth comments except ( You ) .

      ( You can ( not ) nest comments. )

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:52 JST mcc mcc
      in reply to

      Bluh

      https://github.com/mcclure/aoc2024/blob/6d8de2b0517836c3dabcd39d9115de1a7643d8ff/02-01-nuclear/src/puzzle.f

      Well, it didn't take minutes. And it wasn't "a few" lines, it was 48, about the same length as the input code. But I will say once I was doing "forthy things" (pure computation) instead of stuff Forth's bad at (regular programming) it was way quicker, easier. It did occasionally feel like flying. Some of these lines have a real clarity to them.

      It's now very important I don't try to do part 2 tonight. In fact, I shouldn't even read it, so I don't *reads it* dammit

      In conversation about 4 months ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: them.It
        THEM - Life objects
        from Apricot Studio srl
        Them Srl Tel. 0957152431 - info@them.it: Vendita all'ingrosso di articoli da regalo, bomboniere, promozionali n°1 in Italia! Scegli Them per il tuo evento: matrimonio, battesimo, comunione. Ecommerce di bomboniere, promozionali e oggettistica per la casa

      2. https://files.mastodon.social/media_attachments/files/113/785/383/834/172/021/original/eb797e4816d919de.png
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:52 JST mcc mcc
      in reply to

      I have to get up SO early tomorrow, y'all

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:53 JST mcc mcc
      in reply to

      So functions in ANS forth, as far as I can tell, can't have locally-scoped variables…

      …but there's no restrictions on what characters you can put in a variable name, so I can just store the variables in paths *cackles evilly*

      In conversation about 4 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/113/785/005/426/928/053/original/ecc4e76f309fadbe.png
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:53 JST mcc mcc
      in reply to

      Examples of valid comments in ANS Rust:

      ( You )
      ( You can (not) redo )
      ( You (can not) advance )

      Examples of invalid comments in ANS Rust:

      (You)
      ( You can ( not ) redo )
      ( You ( can not ) advance )

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:54 JST mcc mcc
      in reply to

      Should the tutorial have mentioned this? Should the reference manual have? Should the "Starting Forth" book I read a big chunk of, with the friendly cartoons, have mentioned it? Should, for that matter, the spec— which defines separate interpreted and compiled semantics for *many* words, but not CHAR ( https://forth-standard.org/standard/core/CHAR )— have mentioned it? None of them did. I found out by word of mouth on Mastodon that CHAR (and possibly some other stuff?) needs square brackets to act normal. (2/2).

      In conversation about 4 months ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: forth-standard.org
        CHAR - CORE
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:54 JST mcc mcc
      in reply to

      Once I got inside of TRACE, and was watching the code execute word by word, suddenly Forth was the "elegant", clear, mechanically-precise machine I had assumed I would find Forth to be coming in. I understood what each word did, and if something went wrong I understood what. This is interesting, as when working with full programs Forth has felt like sentient jello. (1/2)

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:54 JST mcc mcc
      in reply to

      My takeaway here is that Forth is a chaotic system. Small changes in initial conditions lead to large differences in outcomes. The stack means the meaning of any one statement is dependent on the entire history of the program to that point! That means Forth is precise if you understand exactly what you're doing, but if your understanding is even a *little* off— say, because the documentation for just one keyword in the whole program is unclear— you get chaotic behavior and all is lost. (2/2)

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:54 JST mcc mcc
      in reply to

      Anyway here's my 45-line code for a harness that reads in lines of ASCII numbers and prints and dumps the stack after each.

      https://github.com/mcclure/aoc2024/blob/beba6adc719247e61123ad1be7d2339c4a6f7f22/02-01-nuclear/src/puzzle.f

      It's… awkward in places. It would have helped to have else-if, character literals for whitespace (like '\t' and '\r'), and a better story for complex boolean exps
      (`DUP DUP DUP 9 = SWAP 13 = OR SWAP 32 = OR`. Ouch.) Parts feel nice and parts feel real bad.

      I expect the ACTUAL PROGRAM will be a few lines long, and possibly only take mere minutes.

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:55 JST mcc mcc
      in reply to

      I think what I really need here is some kind of live debugger that steps ONE WORD AT A TIME and prints the stack out after EVERY word executes. I'm trying to put in debug prints, but SOMETHING IS PUTTING JUNK ON MY STACK and I don't know how to tell if it's my debug prints that are creating the stack clutter

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:55 JST mcc mcc
      in reply to

      UPDATE: I have found a Forth debugger of the type I was looking for, but it only runs in DOS

      https://holonforth.com/debugforth.html

      EDIT: Before anyone asks, no, the Compaq Portable III does not help here, it boots but we have no way to get data on or off of it

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:55 JST mcc mcc
      in reply to
      • Brian Campbell

      Alright! Progress.

      While I was on the bus, @unlambda looked it up and pforth *has* a symbol-by-symbol trace (it's called… TRACE). Unlike most things in pforth, *this* feature is well documented. Now it also requires me to use INCLUDE, which *isn't* documented, and which I couldn't get to work, but n/m, I just pasted the whole program into the terminal each time.

      What I found: Remember me not getting `CHAR A` to work, and experimentally finding `CHAR 'A'` as substitute?

      …It's not a substitute.

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:55 JST mcc mcc
      in reply to
      • Brian Campbell

      I jokingly referred to a Forth "premium" mode before. Non-jokingly, this is called "compiled" mode. Inside a function is "compiled"; outside is "interpreted". Apparently running CHAR in compiled mode puts the number 82 on the stack. Why? I don't know. That's ASCII "R". I don't get it. Then 'A' *separately* puts 64 (ASCII A) on the stack.

      @unlambda also found the solution here: I need to say `[CHAR] A`. The brackets mean "use the interpreted-mode version, not the compiled-mode version". (1/2)

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:56 JST mcc mcc
      in reply to

      *kicking and throwing things*

      The tutorial for pforth https://www.softsynth.com/pforth/pf_tut.php#:~:text=if%20you%20want%20to%20find%20the%20ascii%20value%20for%20any%20character says if you want an ASCII constant you write: CHAR A

      I want to print an A. I write CHAR A EMIT. I get:

      A ? - unrecognized word!
      INCLUDE error on line #18 , level = 1
      CHAR A EMIT
      ^^^^^^

      I write CHAR 'A' EMIT. This works. The documentation lies! The documentation lies!!

      I'm getting unexpected results for .S. Wait, what results do I expect? Like ABORT, PFORTH DOCUMENTS .S EXISTS, BUT NOT WHAT IT DOES.

      In conversation about 4 months ago permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        pForth - portable Forth in 'C'
      Charlie Stross repeated this.
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:56 JST mcc mcc
      in reply to

      I cannot work under these conditions. I now see why everyone writes their own Forth interpreter instead of using a prepackaged one. BECAUSE IT'S THE ONLY WAY TO KNOW WHAT ANYTHING DOES.

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:56 JST mcc mcc
      in reply to

      I asked a while back how Forth is for text parsing. I was thinking like… structured text parsing. I did not think that "input a sequence of space-separated ASCII numbers" was going to turn out to be basically a workday and then I wouldn't have it working at the end

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:56 JST mcc mcc
      in reply to

      The number 101 is somehow poisoning my stack. I don't know why but the longer the program run the more instances of the number 101 show up on my stack. I don't know why. Once it begins the logic spirals out of control because 101 shouldn't be there. That's ASCII 'e' but I can't imagine why ASCII 'e' would wind up on my stack. This would be so much easier if I felt COMPLETELY SURE I knew what all the builtin words do, but it's lying to me about CHAR, so what else could it be lying about.

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:57 JST mcc mcc
      in reply to

      Okay. So this explains my segfault! I can now run in pforth.

      https://xoxo.zone/@clarity/113783794022449133

      I accidentally wrote on one line `partial TRUE !` ; correct would be `TRUE partial !`. All variable assignments in Forth are done with pointer dereferences, so the wrong order was like trying to write to memory address TRUE (-1). It is as if C++ allowed you to write "true = x;" by accident instead of "x = true;" and write the address of x to 0x1

      I am unblocked, but still can't do jack shit in gforth

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:57 JST mcc mcc
      in reply to
      • Miguel 🦑 Sternberg

      Sorry, I kinda disappeared in the middle of asking a question. Me and @spookysquid were doing something extremely normal

      In conversation about 4 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/113/783/885/226/061/639/original/66d2f2eb5fd1ff1f.jpg

      2. https://files.mastodon.social/media_attachments/files/113/783/885/421/568/669/original/24fbe0f61ff6550c.jpg

      3. https://files.mastodon.social/media_attachments/files/113/783/885/581/449/087/original/a442764a1e7f9fdb.jpg
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:46:57 JST mcc mcc
      in reply to

      I need a modem so I can hack my N64, and Miguel thought he might have a modem for his old Compaq Portable III, so we're trying to see if the Compaq will boot. You see.

      In conversation about 4 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Wednesday, 08-Jan-2025 03:49:00 JST mcc mcc
      in reply to
      • clarity flowers

      @clarity no primitives for this though, right?

      In conversation about 4 months ago permalink
    • Embed this notice
      clarity flowers (clarity@xoxo.zone)'s status on Wednesday, 08-Jan-2025 03:49:00 JST clarity flowers clarity flowers
      in reply to

      @mcc nope. godspeed

      In conversation about 4 months ago permalink
    • Embed this notice
      Adriano (adriano@lile.cl)'s status on Thursday, 09-Jan-2025 15:03:43 JST Adriano Adriano
      in reply to

      @mcc There you go again, you silly goose, pretending programming is an exact science.

      In conversation about 4 months ago permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.