ASCA v0.1.6 - NEW

Substantial postings about constructed languages and constructed worlds in general. Good place to mention your own or evaluate someone else's. Put quick questions in C&C Quickies instead.
Cedh
Sanno
Sanno
Posts: 938
Joined: Tue Nov 14, 2006 10:30 am
Location: Tübingen, Germany
Contact:

Post by Cedh »

One option I would like to see in a sound change applier is referencing geminates in the environment (as distinct from two members of the same variable, which can be done easily by writing the variable twice). So for instance C< should match only pp, tt, kk, mm etc., where CC also matches any other consonant cluster. Specifically, < would match the exact preceding character AFTER having resolved any variables. In the optimal case, it would also be possible to combine this with a negator of some sort, so that one could write statements like "delete unstressed vowels unless they're followed by a geminate consonant".

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Yeah, I can see that being a useful feature, which shouldn't be too difficult to implement. Same with UNLESS statements, especially with the new algorithm.

I'm in the middle of debugging the Optionals (looks like only the first one in a rule works; probably a careless error caused by too much late-night programming).

Everything else seems to work; except for the rules for Grassmann's law, my PIE > Kuma-Koban rules all work, and Grassmann's law is written with optionals. Some of them do work, actually.

I'm hoping to do a provisional release of 0.0.5 tonight.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

ASCA 0.0.5

Newer, much faster algorithm. This program appears to work correctly, at least with the PIE > Kuma-Koban rules. This version is probably much buggier than the last one, and I still need to clean up some of the code to make future programming easier.

Tonight I'll be testing this on Jeff's Proto-Central-Mountain rules to see if I can break something, so we'll see.

Just post away if you have any problems.

User avatar
Lyhoko Leaci
Avisaru
Avisaru
Posts: 716
Joined: Sun Oct 08, 2006 1:20 pm
Location: Not Mariya's road network, thankfully.

Post by Lyhoko Leaci »

Can you make it so the .exe file doesn't automatically exit once the program stops? It makes it hard to see what it says about any problems if there are any.
Zain pazitovcor, sio? Sio, tovcor.
You can't read that, right? Yes, it says that.
Shinali Sishi wrote:"Have I spoken unclearly? I meant electric catfish not electric onions."

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Goza Lesha wrote:Can you make it so the .exe file doesn't automatically exit once the program stops? It makes it hard to see what it says about any problems if there are any.
I have no idea how. Just run in in the terminal.

User avatar
Åge Kruger
Lebom
Lebom
Posts: 169
Joined: Wed Sep 17, 2003 9:33 am
Location: Norway
Contact:

Post by Åge Kruger »

What do the version numbers mean?
[quote="Soviet Russia"]If you can't join them, beat them.[/quote]

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Åge Kruger wrote:What do the version numbers mean?
I'm using a sloppy change-significance / development-stage scheme. v0.0.5 is the fifth major update. But since I wrote a new engine, the next release will probably be 0.1.0, assuming I can diagnose and fix known and new bugs.

User avatar
Boşkoventi
Lebom
Lebom
Posts: 157
Joined: Mon Aug 14, 2006 4:22 pm
Location: Somewhere north of Dixieland

Post by Boşkoventi »

For some reason I haven't been getting notifications about this thread, but I'm still interested. I'm going to try out the latest version on my data / rules and will let you know how it works.
Goza Lesha wrote:Can you make it so the .exe file doesn't automatically exit once the program stops? It makes it hard to see what it says about any problems if there are any.
Sounds like you're running the EXE by opening the folder it's in and clicking on it. Open the command prompt, go to the folder, and run the program by typing "asca5".
Radius Solis wrote:The scientific method! It works, bitches.
Είναι όλα Ελληνικά για μένα.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Boskobènet wrote:For some reason I haven't been getting notifications about this thread, but I'm still interested. I'm going to try out the latest version on my data / rules and will let you know how it works.
Maybe because keep changing the name? Though I would expect the thread-number to be used for reference...

If you downloaded it, I suggest doing it again; I fixed a bug this morning but hadn't uploaded the new package until just now.

User avatar
Boşkoventi
Lebom
Lebom
Posts: 157
Joined: Mon Aug 14, 2006 4:22 pm
Location: Somewhere north of Dixieland

Post by Boşkoventi »

Problems I've run into so far:


if you enter -h option (or --help) it still tries to run (--> error)

***

Optionals don't seem to be working:

@PH > @P / @V@CONS(@CONS)@V_@V
-- only works if there are exactly two consonants

s > z / @V@CONS@V(ɪ)_
s > z / @V@CONS@V{ɪ ʊ 0}_
-- neither works on, e.g. *makas (or *jakʰeɪs)

Would also be nice to have a symbol for "zero/one or more", e.g.
s > z / @V@CONS(@CONS)*@V_

-- will apply if there's *at least* one consonant, not just one (or two)

***

s > z / @V@CONS@V_
-- works on *makas but not on *jakʰeɪs with this def.:

@MT = a aː ɛ e i ɔ o u
@DT = eu eɪ aɪ oʊ aʊ
@V = @MT @ DT

but does work with this:

@V= a aː ɛ e i ɔ o u eu eɪ aɪ oʊ aʊ

Are digraphs allowed in variable definitions like this?

***

eɪ aɪ oʊ aʊ > eɪ̯ aɪ̯ oʊ̯ aʊ̯
-- diacritic shows up twice in output, however "eu > i̯u̯" works
Radius Solis wrote:The scientific method! It works, bitches.
Είναι όλα Ελληνικά για μένα.

User avatar
Nortaneous
Sumerul
Sumerul
Posts: 4544
Joined: Mon Apr 13, 2009 1:52 am
Location: the Imperial Corridor

Post by Nortaneous »

Boskobènet wrote:s > z / @V@CONS@V_
-- works on *makas but not on *jakʰeɪs with this def.:

@MT = a aː ɛ e i ɔ o u
@DT = eu eɪ aɪ oʊ aʊ
@V = @MT @ DT

but does work with this:

@V= a aː ɛ e i ɔ o u eu eɪ aɪ oʊ aʊ
Is the space between @ and DT in the first definition of @V there in the actual file you're running? If it is, take it out and try again; that might be why.
Siöö jandeng raiglin zåbei tandiüłåd;
nää džunnfin kukuch vklaivei sivei tåd.
Chei. Chei. Chei. Chei. Chei. Chei. Chei.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Boskobènet wrote:if you enter -h option (or --help) it still tries to run (--> error)
Yep, looks like I forgot to add a line when I rewrote the help method.
Optionals don't seem to be working:

@PH > @P / @V@CONS(@CONS)@V_@V
-- only works if there are exactly two consonants

s > z / @V@CONS@V(ɪ)_
s > z / @V@CONS@V{ɪ ʊ 0}_
-- neither works on, e.g. *makas (or *jakʰeɪs)
This is interesting. I'll have to look into this.
Would also be nice to have a symbol for "zero/one or more", e.g.
s > z / @V@CONS(@CONS)*@V_
Yeah, this is something I'd like to one of the next versions, probably after I add support for exceptions.
Are digraphs allowed in variable definitions like this?
Hell yeah; that's why I'm using space-delimited lists. But see Nort's comment about that typo. If it isn't present in the original definition, the something bad is going on.
eɪ aɪ oʊ aʊ > eɪ̯ aɪ̯ oʊ̯ aʊ̯
-- diacritic shows up twice in output, however "eu > i̯u̯" works
That's weird; I haven't been using combining diacritics in my test data, actually, so I'll have to look into this further.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Well, I was typing up a response regarding some testing that I did, but the browser ate it.

The verdict is that something is definitely wrong with the way Optionals are being handled. I have a strong suspicion that this error is related only to the first part of the condition, and not the later part.

There was a dumb typo in the code for Optionals which contain Literals, but since fixing this didn't seem to help (much), something else is clearly wrong.

[edit]Ok, I've figured out exactly what the problem is, but now I need to get some sleep

User avatar
Z500
Lebom
Lebom
Posts: 85
Joined: Sun Jan 30, 2005 3:01 pm
Contact:

Post by Z500 »

TheGoatMan wrote:
Goza Lesha wrote:Can you make it so the .exe file doesn't automatically exit once the program stops? It makes it hard to see what it says about any problems if there are any.
I have no idea how. Just run in in the terminal.
just print "hit enter" to the screen or something then input from the keyboard at the end of the program
scientists have discovered a capsule that makes you not a gullible fucktard!

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Azathoth wrote:
TheGoatMan wrote:
Goza Lesha wrote:Can you make it so the .exe file doesn't automatically exit once the program stops? It makes it hard to see what it says about any problems if there are any.
I have no idea how. Just run in in the terminal.
just print "hit enter" to the screen or something then input from the keyboard at the end of the program
Actually, I was thinking too rigidly; I've been using the Java Exception class, but it would be easy to write my own error method. But not as easy as doing nothing, at least not while the rule parser is faulty.

Boskobènet:

The first two problems you are having may or may not be bugs, depending on how you look at it. The rule

Code: Select all

@PH > @P / @V@CONS(@CONS)@V_@V 
won't work as expected, but the rule

Code: Select all

@PH > @P / @V(@CONS)@CONS@V_@V 
actually will. These conditions get checked against the context of the string from the __ character out. What is happening in both cases is that the system is finding valid matches, believe that the Optional is present, and continues on. However, you don't think it should be matching the Optional, but rather the next character.

The reason the change makɪs > makɪz doesn't work is because the rule

Code: Select all

s > z / @V@CONS@V(ɪ)_ 
finds the character ɪ which it knows is in the Optional, and then goes to look or the @V, but what it finds instead is k.

But this is definitely unexpected behavior, which I will need to examine very closely and try to bring closer to our expectations.

[edit]Can't sleep; I think I know an easy way for me to fix this problem, but I won't work on it until I sleep and wake up again.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

ASCA 0.0.9 is now available!

I jumped to 0.0.9 because this is the mostly-tested version of 0.1.0; now that it seems to work, I will try to make the error reporting better, make a few tweaks, and release 0.1.0. After that, I'll start working on adding some of the more advanced rule features.

I fixed the thing with the Optionals, and corrected another bug nobody else noticed. I also restructured the rule-applier algorithm substantially, with some speed improvements.

Also, we can probably guess that ASCA 0.0.9 is almost totally bug-free: I was able to run Vohp's pre-Proto-Central-Mountain > Proto-Central-Mountain rules with no errors. And since those are the hardest rules ever, we should be in good shape from here on out.

User avatar
linguofreak
Lebom
Lebom
Posts: 123
Joined: Mon Jun 13, 2005 10:39 pm
Location: Somewhere
Contact:

Post by linguofreak »

TheGoatMan wrote:
Goza Lesha wrote:Can you make it so the .exe file doesn't automatically exit once the program stops? It makes it hard to see what it says about any problems if there are any.
I have no idea how. Just run in in the terminal.
Well, you can print "Press enter to exit...", read in a line of input, and exit after receiving that line. (Pressing enter will send an empty line to the program).

EDIT: Oops, just realized that somebody had already posted that...
Last edited by linguofreak on Fri Jul 23, 2010 6:03 pm, edited 1 time in total.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

linguofreak wrote:
TheGoatMan wrote:
Goza Lesha wrote:Can you make it so the .exe file doesn't automatically exit once the program stops? It makes it hard to see what it says about any problems if there are any.
I have no idea how. Just run in in the terminal.
Well, you can print "Press enter to exit...", read in a line of input, and exit after receiving that line. (Pressing enter will send an empty line to the program).
Actually, what I really meant to say was "I'm more interested in getting ASCA to run than making it easy for you to get error messages without running the program in the console".

I know how to do it, but improving error reporting is really low on my priorities.

User avatar
linguofreak
Lebom
Lebom
Posts: 123
Joined: Mon Jun 13, 2005 10:39 pm
Location: Somewhere
Contact:

Post by linguofreak »

Well, I just did a little playing around with the program last night, and it works pretty well, but variables with [] don't seem to work (changes don't get applied), though variables with @ do.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

linguofreak wrote:Well, I just did a little playing around with the program last night, and it works pretty well, but variables with [] don't seem to work (changes don't get applied), though variables with @ do.
Yeah, I noticed this too; I thought it was working earlier, but now I think was wrong, and I have a good notion as to why.

[Edit] I remember fixing this problem a week ago; I probably broke something else, rolled back to code to before this fix, and forgot I hadn't changed it again.

User avatar
Boşkoventi
Lebom
Lebom
Posts: 157
Joined: Mon Aug 14, 2006 4:22 pm
Location: Somewhere north of Dixieland

Post by Boşkoventi »

TheGoatMan wrote:I know how to do it, but improving error reporting is really low on my priorities.
I strongly urge you to reconsider this. So far 0.0.9 is working without any bugs (!), but error messages would really be useful. If I write "@ MF" instead of "@MF", or "a/b/_c" instead of "a > b / c" (copying rules from another SCA), or " ̃ > 0 / @NAS" instead of " ̃ > 0 / _@NAS", it doesn't complain, doesn't warn me, just carries on like everything is just fine. Which can leave the user wondering why the hell it isn't doing what it's supposed to.
Radius Solis wrote:The scientific method! It works, bitches.
Είναι όλα Ελληνικά για μένα.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

Boskobènet wrote:
TheGoatMan wrote:I know how to do it, but improving error reporting is really low on my priorities.
I strongly urge you to reconsider this. So far 0.0.9 is working without any bugs (!), but error messages would really be useful. If I write "@ MF" instead of "@MF", or "a/b/_c" instead of "a > b / c" (copying rules from another SCA), or " ̃ > 0 / @NAS" instead of " ̃ > 0 / _@NAS", it doesn't complain, doesn't warn me, just carries on like everything is just fine. Which can leave the user wondering why the hell it isn't doing what it's supposed to.
And I didn't mean that I didn't want to add error-reporting; I already had a system, but people were complaining about the window closing, which I thought was completely trivial. I do have an error system, but I can only catch the errors I can think of, and only if I write the checks correctly. Some of these errors I didn't think of, and others are ones I thought I'd caught but apparently didn't

But this is really moot, since I fixed the only outstanding bug this morning and rebuilt the error system to be more convenient for people not running ASCA in a terminal. Apparently I need to add some checks, and fix portions of the parser.

Unfortunately, I'm having trouble connecting to my server, so I might not be able to do a release; in any event, there will be another version out by tomorrow night.

[EDIT]
N/M I managed to upload the new version; ASCA should catch the errors you mentioned (except for the @ MF thing, but you are no longer limited to how you name variables; i fixed a but that was preventing variables without @ from being recognized), and ASCA will pause after an error until you hit a key.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

I just updated the manual to reflect recent changes to ASCA, and uploaded a new version of the 0.1.0 package - the program is the same, but it includes the new manual.

Since I appear to have fixed all the outstanding bugs (including faults to the error reporting system and a problem with variable names), ASCA 0.1.0 can probably be considered a feature-complete beta; once we have found more bugs, or realized that there are no more bugs, I will start developing the next version with some advanced features (such as character doubling, an iteration mark like the Kleene star * and exceptions to conditions).

I'm using ASCA to do some work with Proto-Kuma-Koban to Kuma sound changes, which may or may not turn up new bugs.

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

No bugs so far, but I decided to try something I thought of a few nights ago:

It looks like you can redefine variables using the variable name itself in the definition:

Code: Select all

C = C X W v
This would mean to add the variables C, X, W, and the literal v to the current definition of C. This way, you don't need to know the contents of a variable to add things to its definition.

[edit]
this is my 1500th post!
[/edit]

User avatar
Morrígan
Avisaru
Avisaru
Posts: 396
Joined: Thu Sep 09, 2004 9:33 am
Location: Wizard Tower

Post by Morrígan »

I may have made some kind of mistake with version control, or I found a bug the day after I uploaded v0.1.0, I'm not really sure.

In any case, there was a problem, and I fixed it (again, with the variable names - I think it was a check on variable names with @ that I forgot to update after I changed name formatting).

Anyway, you can get the new version.

Post Reply