ASCA v0.1.6 - NEW
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".
Blog: audmanh.wordpress.com
Conlangs: Ronc Tyu | Buruya Nzaysa | Doayâu | Tmaśareʔ
Conlangs: Ronc Tyu | Buruya Nzaysa | Doayâu | Tmaśareʔ
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.
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.
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.
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.
- Lyhoko Leaci
- Avisaru
- Posts: 716
- Joined: Sun Oct 08, 2006 1:20 pm
- Location: Not Mariya's road network, thankfully.
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.
You can't read that, right? Yes, it says that.
Shinali Sishi wrote:"Have I spoken unclearly? I meant electric catfish not electric onions."
- Åge Kruger
- Lebom
- Posts: 169
- Joined: Wed Sep 17, 2003 9:33 am
- Location: Norway
- Contact:
- Boşkoventi
- Lebom
- Posts: 157
- Joined: Mon Aug 14, 2006 4:22 pm
- Location: Somewhere north of Dixieland
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.
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".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.
Είναι όλα Ελληνικά για μένα.Radius Solis wrote:The scientific method! It works, bitches.
Maybe because keep changing the name? Though I would expect the thread-number to be used for reference...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.
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.
- Boşkoventi
- Lebom
- Posts: 157
- Joined: Mon Aug 14, 2006 4:22 pm
- Location: Somewhere north of Dixieland
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
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.
- Nortaneous
- Sumerul
- Posts: 4544
- Joined: Mon Apr 13, 2009 1:52 am
- Location: the Imperial Corridor
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.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ʊ
Siöö jandeng raiglin zåbei tandiüłåd;
nää džunnfin kukuch vklaivei sivei tåd.
Chei. Chei. Chei. Chei. Chei. Chei. Chei.
nää džunnfin kukuch vklaivei sivei tåd.
Chei. Chei. Chei. Chei. Chei. Chei. Chei.
Yep, looks like I forgot to add a line when I rewrote the help method.Boskobènet wrote:if you enter -h option (or --help) it still tries to run (--> error)
This is interesting. I'll have to look into this.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)
Yeah, this is something I'd like to one of the next versions, probably after I add support for exceptions.Would also be nice to have a symbol for "zero/one or more", e.g.
s > z / @V@CONS(@CONS)*@V_
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.Are digraphs allowed in variable definitions like this?
That's weird; I haven't been using combining diacritics in my test data, actually, so I'll have to look into this further.eɪ aɪ oʊ aʊ > eɪ̯ aɪ̯ oʊ̯ aʊ̯
-- diacritic shows up twice in output, however "eu > i̯u̯" works
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
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
just print "hit enter" to the screen or something then input from the keyboard at the end of the programTheGoatMan wrote:I have no idea how. Just run in in the terminal.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.
scientists have discovered a capsule that makes you not a gullible fucktard!
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.Azathoth wrote:just print "hit enter" to the screen or something then input from the keyboard at the end of the programTheGoatMan wrote:I have no idea how. Just run in in the terminal.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.
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
Code: Select all
@PH > @P / @V(@CONS)@CONS@V_@V
The reason the change makɪs > makɪz doesn't work is because the rule
Code: Select all
s > z / @V@CONS@V(ɪ)_
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.
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.
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.
- linguofreak
- Lebom
- Posts: 123
- Joined: Mon Jun 13, 2005 10:39 pm
- Location: Somewhere
- Contact:
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).TheGoatMan wrote:I have no idea how. Just run in in the terminal.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.
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.
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".linguofreak wrote: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).TheGoatMan wrote:I have no idea how. Just run in in the terminal.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 know how to do it, but improving error reporting is really low on my priorities.
- linguofreak
- Lebom
- Posts: 123
- Joined: Mon Jun 13, 2005 10:39 pm
- Location: Somewhere
- Contact:
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.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.
[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.
- Boşkoventi
- Lebom
- Posts: 157
- Joined: Mon Aug 14, 2006 4:22 pm
- Location: Somewhere north of Dixieland
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.TheGoatMan wrote:I know how to do it, but improving error reporting is really low on my priorities.
Είναι όλα Ελληνικά για μένα.Radius Solis wrote:The scientific method! It works, bitches.
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'tBoskobènet wrote: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.TheGoatMan wrote:I know how to do it, but improving error reporting is really low on my priorities.
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.
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.
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.
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:
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]
It looks like you can redefine variables using the variable name itself in the definition:
Code: Select all
C = C X W v
[edit]
this is my 1500th post!
[/edit]
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.
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.