pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:13 penk joined 00:21 vixey joined 00:23 viklund` left
meppl good night 00:26
00:29 meppl left
ruoso @tell pmurias, when I implemented new in smop_s1p_scalar other tests started failing. Then I realised that was because we were assuming that Scalar would delegate all calls to its cell. but how do we call Scalar.new? I think we need the opposite, every item supports .FETCH(), which means that everytime you want to operate with a value, you need to do the fetching... 00:32
lambdabot Consider it noted.
ruoso @tell pmurias, I think the '.' operator implies a FETCH()... $*OUT.print would translate to what today is $*OUT.FETCH.print 00:35
lambdabot Consider it noted.
ruoso @tell pmurias, I'm commiting it with a ___UNKNOWN_METHOD___ instead of the delegation in smop_s1p_scalar... it causes breakage, but the delegation is too much fragile... we should avoid it and force the "value context" where appropriate 00:38
lambdabot Consider it noted.
00:40 justatheory left
ruoso TimToady, is it sane to consider the existence of a "value context"? 00:40
pugs_svn r21662 | ruoso++ | [smop] attribute mostly implemented, tests still failing, but the code is there.
r21662 | ruoso++ | Scalar no longer delegates the calls to its cell, there should be an implicit fetch in "value context"
ruoso TimToady, as opposed to "container context"
@tell pmurias, in the end, that will mean that we will not see any explicit FETCH/STORE in the code, they would always be implicit depending on the context ('=' is probably the only STORE case, for the lvalue, but the rvalue still have a implicit FETCH in that case) 00:43
lambdabot Consider it noted.
ruoso I think we reached a very p5-like model... there isn't much sense in a value without a container, considering the features Perl 6 has... What we have different now is that we have the clear distinction of the container and the value, 00:48
but pragmatically, you always have a container, even if it's a read-only scalar container that have itself as the value 00:49
00:51 Lorn_ left 00:53 nipotaway is now known as nipotan
ruoso sleep & 00:58
01:04 penk left 01:05 penk joined 01:27 explorer left 01:30 elmex left 01:32 avar joined 01:40 kanru left 01:45 drbean left 01:58 penk left 01:59 penk joined 02:02 Limbic_Region left 02:06 bacek_ left 02:08 bacek joined 02:10 luqui joined 02:15 wknight8111_ left 02:17 Lorn joined 02:27 simcop2387 left 02:31 penk left, justatheory joined 02:35 penk joined 02:43 justatheory left 03:11 pen1 joined, penk left 03:26 kanru joined 03:29 alester joined 03:30 coumbes joined 03:33 pen1 left 03:34 penk joined 03:48 vixey left, vixey joined 03:49 luqui left 04:01 penk left 04:34 coumbes left 04:45 simcop2387 joined 05:18 Southen_ left 05:19 silug left 05:21 justatheory joined 05:24 luqui joined 05:27 justatheory left 05:40 frobnitz left 05:41 kanru left 05:48 iblechbot joined 05:56 Psyche^ joined 06:10 Patterner left, Psyche^ is now known as Patterner 06:16 kanru joined 06:17 Schwern left 06:44 ashizawa joined 07:00 jan left 07:04 jan joined 07:07 vixey left 07:10 silug joined 07:22 alanhaggai joined
zamanfou is now away: In the rain my tears are forever lost. 07:22
07:26 alester left 07:33 pmurias joined
pmurias ruoso: hi 07:34
the problem with non-delegation is that we will have a lot more method calls 07:40
it should be possible to have the scalar delegate everything, with a VAR() needed to call methods directly on it 07:46
07:46 cosimo joined 07:54 bacek left 07:56 bacek joined 07:58 explorer joined 08:09 zamolxes joined 08:14 masak joined 08:15 bacek left 08:37 zamolxes left
pugs_svn r21663 | fglock++ | [v6.pm] 0.032 08:44
08:46 kanru left 09:02 meteorjay left, meteorjay joined 09:06 fridim_ joined 09:11 explorer left
ruoso pmurias, I know it requires additional method calls... but VAR() only makes sense in a higher level, creating an additional container to allow you calling methods on the variable, because '.' would have an implicit fetch 09:30
pmurias, VAR() doesn't make sense when we are in the level "use v6 blocks" are 09:32
except we have it making all the implicit FETCH calls
ruoso waking up &
09:33 agentzh left, agentz1 joined 09:34 iblechbot left
pmurias "use v6 blocks" are in the top-most level 09:43
09:43 barney joined
pmurias their content is normal p6 09:43
(with the exception of the lexical scope faling back on the C lexical scope) 09:45
09:53 elmex joined 10:01 barney left 10:08 Jedai joined
ruoso pmurias, so in "use v6" blocks you need to add implicit FETCH on the '.' operator and other operators that imply "value context" 10:14
ruoso going to work &
ruoso later &
10:14 ruoso left 10:21 nipotan is now known as nipotaway 10:29 meppl joined 10:45 luqui left, meteorjay left 10:53 lleksah joined 10:57 smtms left 11:03 smtms joined 11:08 alanhaggai_ joined 11:22 ashizawa left, bacek joined 11:24 alanhaggai left
pmurias @tell ruoso what are your objections to the redispatching scheme? We could do it differently, a Scalar would be wrapped in an object which would just redispatch *everything* on the scalars .FETCH and the actual scalar could be retrived using VAR() 11:27
lambdabot Consider it noted.
pugs_svn r21664 | fglock++ | [v6.pm] more tests # 6500
pmurias @tell ruso VAR() could either call an internal method (if we can reserve one) or know the Scalar's RI 11:29
lambdabot Consider it noted.
pmurias @tell ruoso VAR() could either call an internal method (if we can reserve one) or know the Scalar's RI 11:32
lambdabot Consider it noted.
11:32 buubot left
pmurias lunch& 11:37
11:37 pmurias left 11:40 Alias_ joined, bacek left 11:41 buubot joined
pugs_svn r21665 | audreyt++ | * Remove unused third-party modules. 11:49
r21666 | audreyt++ | * Add Cabal, HTTP, zlib and cabal-install to third-party. 11:52
11:52 lleksah left
pugs_svn r21667 | audreyt++ | * Also add Parse::Yapp as a prereq of PCR. 11:53
r21668 | audreyt++ | * Rename Makefile.PL to Makefile.PL.old in preparation of 11:54
r21668 | audreyt++ | the new Makefile.PL overhaul.
r21669 | audreyt++ | * Replace the Pugs.cabal.in with a standalone Pugs.cabal.
r21670 | audreyt++ | * A new Makefile.PL based on cabal-install. 11:58
r21671 | audreyt++ | * Add precompile Prelude.pm and Test.pm to src/cbits/. 11:59
r21672 | audreyt++ | * src/: Delete pretty much everything factored out from Pugs proper.
r21673 | audreyt++ | * Import Pugs 6.2.13.11 from Hackage into our source tree. 12:02
r21673 | audreyt++ | * Highlights:
r21673 | audreyt++ | - Much faster startup time
r21673 | audreyt++ | - Slightly faster compilation time
r21673 | audreyt++ | (mostly due to refactored Pugs.AST.Internals)
r21673 | audreyt++ | - Portable-to-Win32 readline thanks to Haskeline
12:08 sri_work joined
pugs_svn r21674 | fglock++ | [v6.pm] more tests # 6600 12:16
r21675 | audreyt++ | * Delete everything we're not actively using from src/. 12:17
moritz_ perl Makefile.PL says: 12:22
[Pugs Dependencies]
Can't exec "/bin/cabal": No such file or directory at Makefile.PL line 52.
12:23 ruoso joined
moritz_ ah well, lets see which debian package offers cabal.. 12:23
none, on stable 12:24
pugs_svn r21676 | audreyt++ | * Add back Pugs.Embed.Parrot without .hsc
moritz_ well, I'll just build on testing then...
audreyt moritz_: that message should follow by something that installs cabal for you
does it not?
ruoso good to see you around audreyt ;) 12:25
lambdabot ruoso: You have 2 new messages. '/msg lambdabot @messages' to read them.
moritz_ audreyt: nopaste.snit.ch/13713
pugs_svn r21677 | audreyt++ | * Reflect data-dir changes. 12:26
audreyt moritz_: just a sec
moritz_: try 12:27
./Setup -d
what does it say?
moritz_ Setup: No command given (try --help)
audreyt moritz_: that doesn't sound correct 12:28
try 12:29
rm Setup ; rm Setup.hi ; rm Setup.o
ghc --make -O0 -o Setup Setup.lhs
./Setup -d
ruoso @tell pmurias, the problem is that the containers are regular objects that might implement any method they want... but in fact, that brings again the "value context" Ɨ "container context"... we don't have much option except for always calling fetch...
lambdabot Consider it noted.
moritz_ /home/moritz/.cabal 12:30
and there's /home/moritz/.cabal/bin/cabal
audreyt moritz_: so now perl Makefile.PL would succed.
masak svn says "Failed to add file 'X': object of the same name already exists" sometimes. how can it not recognize one of its own files?
ruoso @tell pmurias, my $a = foo(); # in that case, foo() may or may not return a scalar... the only thing we can do is *always* call FETCH when using it as a value, and make values readonly self-containers
lambdabot Consider it noted. 12:31
ruoso @tell pmurias, then we have "container context operators", like ':='
lambdabot Consider it noted.
pugs_svn r21678 | audreyt++ | * Makefile.PL: More robust ~/.cabal detectino thanks to moritz++ 12:32
ruoso so every operator that uses "value context" implies a FETCH()
masak so, if I already have Pugs installed via Cabal, what do I do to install it in this new way?
ruoso $a.b() actually means LexPad.<$a>.FETCH().b();
moritz_ audreyt++ 12:33
audreyt masak: the new way is just automating the steps you do.
masak: so "perl Makefile.PL ; make ; sudo make install" still works
but so should simply "cabal install" from pugs dir
the difference is the first also installs the docs/ stuff and copies pugs to /usr/local/bin/pugs.
masak audreyt: ok, cool 12:34
moritz_ nopaste.snit.ch/13714
audreyt moritz_: r21679. 12:36
pugs_svn r21679 | audreyt++ | * Makefile.PL: configure before build.
masak nopaste.snit.ch/13715 12:38
audreyt masak: you may need a "cabal update". 12:40
pasteling "moritz_" at 89.13.240.3 pasted "'make' output for audreyt++ (again ;)" (22 lines, 494B) at sial.org/pbot/31747
masak audreyt: gotcha.
pugs_svn r21680 | audreyt++ | * Insist on a local cabal-install even if we have a global one. 12:41
audreyt moritz_: rerun Makefile.PL? 12:42
pugs_svn r21681 | audreyt++ | * Add Prelude.hs.
audreyt moritz_: if it doesn't install all deps for you
trace line 59 of Makefile.PL and see if it actually runs. 12:43
moritz_ Resolving dependencies...
cabal: cannot configure regex-pcre-builtin-0.94.2.0.7.7. It requires base
>=3.0
There is no available version of base that satisfies >=3.0
audreyt uhm 12:44
what's your ghc version.
moritz_ 6.6.1-2
probabyl too old? 12:45
audreyt not exactly unworkable
but too messy at the point.
s/the/this/
I'll up the req to 6.8 in inc/.
moritz_ ok
audreyt done. 12:46
pugs_svn r21682 | audreyt++ | * Module::Install::Pugs: We now want GHC 6.8.
r21683 | audreyt++ | * It is okay if the user had no ~/.cabal/. 12:47
r21684 | audreyt++ | * Refer to LICENSE/MIT. 12:54
masak 'cabal update' doesn't seems to actually do anything. 12:56
it downloads the package list and then exits silently
12:58 alanhaggai_ is now known as alanhaggai
audreyt yes, but then the next "caal install" would resolve using new module list 12:58
pugs_svn r21685 | audreyt++ | * Write Pugs.Config. 12:59
r21686 | audreyt++ | * Oops, add a missing "cabal update".
r21687 | audreyt++ | * Add PIR Prelude. 13:01
audreyt Ok, a fresh checkout of Pugs just built correctly on a random linux box 13:02
moritz_ holiday &
audreyt the next step (awaiting dcoutts++ and the cabal-install team)
masak audreyt: I still get 'setup: At least the following dependencies are missing: FindBin -any, haskeline >=0.2.1, pugs-compat >=0.0.5', though
audreyt is to wait for their equivalent of CPAN::Inject / CPAN::Mini
masak: does "cabal install FindBin haskeline pugs-compat" resolve things for you?
masak: the weird thing is that "perl Makefile.PL" is supposed to do that for you
ah, that's because you just did "cabal install" on pugs home dir. 13:03
kolibrie audreyt: perl Makefile.PL says: Setup.lhs:11:31: Not in scope: `autoconfUserHooks' Can't exec "./Setup": No such file or directory at Makefile.PL line 23
do I need to rm Setup ; rm Setup.hi ; rm Setup.o
etc
audreyt kolibrie: aha. a sec. 13:04
pugs_svn r21688 | audreyt++ | * Oops, we need to bootstrap cabal. try again.
kolibrie audreyt: Linking ./Setup ... 13:05
audreyt++
audreyt kolibrie: r21689 should fix it.
xinming audreyt: this time, It works 13:06
pugs_svn r21689 | audreyt++ | * Allow for bootstrapping cabal.
r21690 | audreyt++ | * Final checkin for this batch - Pugs installation should now work 13:07
r21690 | audreyt++ | from scratch checkout with network connection.
r21690 | audreyt++ | Next step: offline.
r21691 | fglock++ | [v6.pm] more tests # 6900 13:08
kolibrie Setup: At least the following dependencies are missing: network -any
that will be in a ghc package?
audreyt oh. hm. 13:09
it normally is
but it is part of the "extra" package
I guess it doesn't hurt to require installation of it
(this is like finding CGI.pm not installed with perl.) 13:10
kolibrie audreyt: perhaps I should install libghc6-network-dev? 13:11
pugs_svn r21692 | audreyt++ | * Also require the "core" libraries to be installed.
audreyt kolibrie: that will do, or r21692 Makefile.PL does that for you
probably try r21692 Makefile.PL first.
kolibrie pulling
no go 13:12
pasteling "kolibrie" at 66.239.158.3 pasted "network -any dependency" (15 lines, 611B) at sial.org/pbot/31748 13:13
pugs_svn r21693 | audreyt++ | * Add back "make smoke" and "make upload-smoke" targets.
audreyt oh. hm.
you need network to install HTTP
which you need to install cabal-install
which you need to install network.
a sec.
that means we need to add network, filepath, parsec to third-party. 13:14
oh, just network and parsec.
ok we do that.
xinming Global symbol "$pugs" requires explicit package name at Makefile.PL line 141. 13:16
:-D
audreyt xinming: sa sec
13:17 Lorn left
xinming I think I can fix it. :-)' 13:17
audreyt then do that :) 13:18
pugs_svn r21694 | audreyt++ | * Add network and parsec to third-party.
13:18 cmarcelo joined
audreyt cmarcelo: hi! I did your work for you :) 13:19
xinming: going to commit soon?
pugs_svn r21695 | yiyihu++ | Fixed
r21695 | yiyihu++ | Global symbol "$pugs" requires explicit package name at Makefile.PL line 141.
r21695 | yiyihu++ | in Makefile.PL
audreyt cool!
xinming audreyt: yes, I think It's fixed, But I am not sure. >_<
kolibrie xinming: that worked for me
audreyt: but I still get the network dependency 13:20
audreyt kolibrie: you need r21696 and perl Makefile.PL
cmarcelo audreyt: hello, how's going? I saw the blog :o)
pugs_svn r21696 | audreyt++ | * Solve the problem reported by kolibrie++ of lacking network and parsec.
audreyt cmarcelo: svn up and "perl Makefile.PL ; make ; make install" should work.
kolibrie audreyt: ok, looks better now 13:21
audreyt cmarcelo: I havn't yet committed the dependenies like MetaObject and HsSyck in
cmarcelo: that'll wait a couple days until the cabal-install people figure out how to make local hackage mirrors work
but otherwise pugs should install fine if you have a working network connection.
cmarcelo great! :-)
kolibrie audreyt: now when I make I get: make: /home/kolibrie/.cabal/bin/cabal: Command not found 13:24
audreyt kolibrie: hm.
kolibrie I see ~/.cabal/ 13:25
but it only has lib and share in it
audreyt that means cabal-install installation somehow failed.
try this
cd third-party/cabal-install
./Setup configure --user
./Setup build
and see what happens?
(and ./Setup install --user)
kolibrie there is no Setup there, jest Setup.hs 13:26
audreyt well then
ghc --make -O0 Setup.hs
first
masak now I get 'gcc-4.0: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags'
audreyt masak: during "make"? nopaste your Pugs.buildinfo? 13:27
kolibrie Setup: At least the following dependencies are missing: zlib >=0.4
masak audreyt: ok, hold on
audreyt kolibrie: that means zlib has failed
do the same for third-party/zlib ?
kolibrie :)
pasteling "masak" at 130.238.45.242 pasted "my Pugs.buildinfo" (6 lines, 1.3K) at sial.org/pbot/31750 13:28
masak audreyt++
audreyt oy, Universal. 13:29
13:30 pmurias joined
audreyt masak: r21697 13:30
masak :)
pugs_svn r21697 | audreyt++ | * Configure.PL: We really can't build universal binaries.
r21697 | audreyt++ | Reported by masak++
masak audreyt: same error... :/ 13:31
oops, hold on 13:32
incomplete svn up
audreyt ok
masak svn is very sensitive to files that already exist in the working copy
audreyt yes, you need to manually rm them
masak why is that? 13:33
audreyt bad design?
masak suppose so
masak has a good mind to report it as a bug to the svn people
audreyt well it's a concious design
masak ...with high severity
audreyt lest other people's file overwrites your precious not-yet-committed-but-same-named file
it could instead just report it as a conflict and offer to resolve interactively, I suppose. 13:34
masak hm
does it still complain if the files are identical>
?
audreyt no idea 13:35
masak now it seems to build, anyway
13:35 TJCRI joined
masak audreyt++ 13:35
13:35 jhorwitz joined
kolibrie audreyt: after installing zlib and cabal-install, I had to perl Makefile.PL, which pulled down the other dependencies. Now it is making 13:36
pugs_svn r21698 | audreyt++ | * Seeing how "svn up" on Pugs.Embed.Parrot causes "identical local file" 13:37
r21698 | audreyt++ | errors, and that Pugs.Embed.Parrot has bitrotten anyway, delete it.
r21699 | audreyt++ | * The logical consequence of r21698. 13:38
pmurias ruoso: the basic difference between your and my ways of handling containers is IMHO that you propose adding a lowlevel FETCH method call, and i assume all lowlevel method calls assume a FETCH 13:39
pugs_svn r21700 | audreyt++ | * More logical consequences.
masak FYI, src/Pugs/CodeGen/PIR, src/Pugs/Prelude.hs, amd Pugs.cabal also caused svn problems
pmurias i rm -fr them, is it ok? 13:40
masak yes
that's what you have to do.
svn-- # design decision
pmurias no big problem there, I was worried something more sinister happend
masak: is there a better way of handling this? 13:41
masak pmurias: git? :)
ruoso pmurias, which is basically the same thing... ;) "use v6" blocks would make the implicit FETCH calls directly
but Scalar would not delegate the calls 13:42
the operators would do the FETCH when needed 13:43
pmurias a ScalarWrapper
pugs_svn r21701 | audreyt++ | * Actually Pugs.cabal is still better named Pugs.cabal.in.
r21701 | audreyt++ | (To accomodate for e.g. svn versions)
pmurias i'm proposing $foo would be a delegating scalar wrapper, and VAR($foo) would be the actual Scalar 13:46
masak audreyt: now I get the multiple -arch error later during make 13:47
kolibrie audreyt++ # my pugs works!
masak namely, after [65 of 89] Compiling Pugs.Run.Perl5
audreyt masak: aw. 13:48
masak: nopaste the "make" log?
13:48 AndyAway is now known as Alester
masak audreyt: oki 13:48
pmurias my $a = foo() would be VAR(LexPad.<$a>).STORE(VAR(foo()).FETCH)
but $a.b would be just LexPad.<$a>.b() 13:49
pugs_svn r21702 | audreyt++ | * Add bytestring to third-party as well.
pasteling "masak" at 130.238.45.242 pasted "make log" (82 lines, 5.5K) at sial.org/pbot/31751
pmurias ruoso: it is slightly more complex but should be faster 13:50
ruoso pmurias, which one is more complex? 13:51
oh wait...
pmurias my proposal
ruoso re-readin 13:52
pmurias re-reading to
o
ruoso pmurias, the problem is that you have foo().bar().baz() where foo, bar and baz might return scalars
so you always have to force "value context"
which means an implicit FETCH anyway
pmurias they would return WrappedScalars which are indistinguishable from their content 13:54
13:54 hercynium joined
pmurias so foo().bar().baz() would work regardless if scalars or values would be returned 13:55
ruoso: i can implement it as i might be describing it wrongly 13:56
ruoso but how do you call a method in the WrappedScalar?> 13:57
(in the low-level)
pmurias you mean a method on the Scalar itself or on the value? 13:58
$foo.foo would be just $foo.foo in the low-level 13:59
ruoso in the scalar itself
on the low-level
if you delegate all calls? how do you do an actual call
rhr audreyt: I got the missing zlib and HTTP when I ran Makefile.PL from r21702. repeatedly re-runnung perl Makefile.PL seems to have solved it.
ruoso the thing is that a higher level language
have implicit FETCH/STORE defined by the syntax 14:00
pmurias it turn it into the Scalar first with VAR, VAR.postcircumfix:<( )>($scalar).scalar_method
ruoso $a = $b; implies "container context" in the lvalue and "value context" in the rvalue
pmurias, but in the low-level?
in the low-level you have just two objects... the scalar and the value 14:01
pmurias three in my scheme
ruoso hmmm.... that looks strange...
pmurias it is a bit strange 14:02
;0
;)
s/;0//
ruoso I think the idea of having ro-self-containers for values is cleaner
which means that every object implements FETCH, even if it returns itself
and every operator that uses "value context" makes an implicit FETCH
and that's all
pmurias it would be impossible to read sm0p with FETCH's 14:03
ruoso we're no longer writing sm0p
we're writing "use v6" blocks
and "use v6" might make that implicit fetch calls
like... 14:04
pmurias i have to read sm0p when debugging elf's smop backend :(
ruoso heh
$a = $b means in low-level LexPad<$a>.STORE(LexPad<$b>.FETCH()) 14:05
pmurias i could try writing everything on paper to reduce debugging
;)
ruoso hehe
14:05 Alester left
ruoso pmurias, so... do we agree? 14:09
pugs_svn r21703 | rhr++ | [INSTALL] howto build Lenny's ghc on Etch: give up 14:10
14:11 alester joined, barney joined
pmurias ruoso: i'm not really sure, i understand how to implement both schemes 14:13
ruoso pmurias, I think delegating is fragile...
pmurias do you have a example where it fails 14:14
ruoso when you want to call the scalar itself
pmurias VAR($foo)
ruoso this is high-level
pmurias we can have a low-level VAR
VAR.($foo) 14:15
ruoso why?
we don't need it
we can have the container and the valeu
value
and that's all
pmurias foo().bar() being foo().FETCH().bar() just feels wrong
it will hinder language interoperability 14:16
ruoso you're confusing high-level and low-level
about language interoperability... I'm not really sure that is possible as it's currently expected... 14:17
14:18 Lorn joined
pmurias ruoso: why? 14:18
ruoso: i'll look how the parrot guys are doing the Scalars 14:20
ruoso pmurias, Perl 6 Object will never be the same as a Java Object
pugs_svn r21704 | audreyt++ | * Pugs.Prelude should no longer be committed in.
14:21 macroron joined
pugs_svn r21705 | audreyt++ | * Makefile.PL: Solve the need-repeat-run-to-install-deps problem 14:23
r21706 | audreyt++ | * Pugs.Run.Perl5: Do without -cpp 14:24
ruoso pmurias, I've asked that question several times... but noone came to me with a clear solution 14:25
pugs_svn r21707 | audreyt++ | * avoid warnings.
ruoso I really think this supposed language interoperability is a major misguiding principle of the Perl 6 development 14:26
pugs_svn r21708 | audreyt++ | * Run "cabal update".
ruoso the important to me is runtime-interopeability
and in that case, SMOP has a better support than parrot
pmurias ruoso: what part of language interoperability do you think is infeasible? 14:29
ruoso the transparent integration of java Vector and Perl 6 list 14:30
there will be always a type-mapping layer
[particle] i don't see this transparency specced. is it?
masak ruoso: Java's Vector is superceded by ArrayList nowadays, btw
pmurias ruoso: a java Vector and a Perl 6 list can be the same thing 14:32
[particle] if a java Vector exposed in a perl 6 program says it does Int, i expect it to
ok, Int was a bad example for Vector
ruoso masak, you still have several List implementations and Set implementations
[particle] Serializable or whatever 14:33
pugs_svn r21709 | audreyt++ | * Sorry. bytestring does not belong in third-party.
ruoso [particle], it's not specced, but it's the general expectation
masak ruoso: yes, definitely.
[particle] stick to the spec :)
it's expected from parrot 14:34
pugs_svn r21710 | audreyt++ | * A better gen_prelude.pl that takes the FFI-based inclusion into account.
ruoso One thing I decided to neglect was this interoperability, and favor runtime-interoperability instead
[particle] that sounds proper to me
pmurias [particle]: how do you do Scalars in parrot?
ruoso which means... I won't have the Perl 6 list to be the same as a Java List... but I will access the JVM objects instead
and allow easier type-mapping implementation than XS 14:35
simply by translating APIs
[particle] pmurias: at what level? PAST::Var() contains PAST::Val() or some other object
pmurias [particle]: i mean like STORE and FETCH 14:36
ruoso [particle], do Scalar delegate the calls to the item? or in "value context" the operators make an implicit FETCH calls?
[particle] ruoso: yes, but there are devils in the details
in perl 6, as i understad, Scalars delegate to the item unless you specify the container, with VAR()
ruoso [particle], yes.. .but that in high level
in the low level you have two objects, the container and the value, right? 14:37
[particle] well... i'm not sure it's done this way in parrot atm
ruoso in the low-level, do you implicitly FETCH()? or you call the method in the scalar and it delegates?
[particle] lemme check the latest
ruoso [particle], about devils in the details... one way I'm trying to exorcise them is by support interoperating runloops with other interpreters.... 14:38
[particle] ruoso, still, you need to translate the api, and there are different interpretations of that mapping 14:40
ruoso oh yeah... that mapping won't be automatic...
pmurias ruoso: isn't it more like summoning than exorcising?
ruoso pmurias, heh... maybe... 14:42
[particle], I just want it to be easier to work with then XS... 14:43
[particle], as it looks now, It will probably be possible to be done in a higher language...
[particle], just like you can do with Java::Import
14:44 cathya left, jdv79 left, jdv79 joined
[particle] yes, well' parrot's nci is much easier than xs, too 14:46
so it's definitely possible
ruoso exactly... I think that's where we can get... I don't think HLL transparent interoperation is actually possible 14:47
pmurias ruoso: isn't the problem with interlanguage interoperability that your application get horrible bloated when you have 10 runtimes?
ruoso well... I don't work with 10 runtimes today even without integration... I don't think I would have a need to integrate that many runtimes 14:48
smop, perl5, python, java, C, C++, any one more? 14:49
pmurias haskell?
audreyt to interop with haskell is to interop with C, basically.
ruoso maybe ruby, but there isn't many libraries implemented in ruby... 14:50
pmurias audreyt: doesn't haskell have a gc?
audreyt there's this swig philosophy that says everybody just interop at the C level... and then there's this lua philosophy that says if you want to interop with someone, get embedded in that someone's runtime...
[particle] lisp 14:51
ruoso and there's the Perl 6 dream of interoperating them in high level...
audreyt and there's also this pugs philosophy that says if you want to interop with someone, emit code targetting that someone's runtime...
ruoso audreyt, that's ok for small languages like lua or javascripts 14:52
pmurias n
sorry
14:52 TJCRI left
audreyt pmurias: yes it does. why? 14:52
ruoso but it doesn't work out when you have languages with native extensions... like perl5 or python...
or with enormous API, like Java 14:53
audreyt there is gcj though.
pmurias audreyt: it has to be taken care of when interoperating so it's not just like with plain c
ruoso audreyt, that looks like "get embedded in that someone's runtime" 14:54
audreyt ruoso: right.
ruoso which is what Java::Import does, actually
one could port java to parrot... it would make the integration easier... but you would still need type mapping 14:55
audreyt pmurias: point taken, though it's largely handled by the typesystem/FFI code and transparent to embedders. 14:56
pmurias audreyt: is there any support for using CPAN from haskell? 14:57
audreyt pmurias: why yes.
hackage.haskell.org/cgi-bin/hackage...ge/HsPerl5
lambdabot Title: HackageDB: HsPerl5-0.0.6, tinyurl.com/5dnzm9
ruoso anyway... we haven't had our answer for the Scalar issue yet... ;) 14:58
ruoso lunch &
pmurias is there a cabal package for debian lenny?
[particle] what i'd like to see is a perl 6 statement that exposes the precise question you're asking.
(re scalar) 14:59
pmurias [particle]: it's mostly an implementation detail
[particle] looks to me like rakudo's src/classes/Scalar.pir answers the question to 'my Scalar $x = 3';
.namespace ['Perl6Scalar'] 15:00
.sub 'infix:=' :method
.param pmc source
$P0 = source.'item'()
assign self, $P0
.return (self)
.end
audreyt it does an implicit FETCH call (except under the name 'item') to its rvalue.
pugs_svn r21711 | fglock++ | [v6.pm] INSTALL update 15:03
15:07 alanhaggai left
[particle] (back from phoneland) .'item'() gets the item context 15:07
it's a fetch, yes
pmurias :/
[particle] but it's not a container vs value thing
pmurias so i assume delegation is done in parrot 15:08
it's the faster choice
[particle] yes 15:09
audreyt pmurias: by delegation you mean $foo.meth gets emitted as $foo.item().meth by the compiler? 15:10
15:10 allbery_b left
[particle] The MutableVAR PMC provides access to the container type of a scalar. This is 15:10
needed as scalar containers forward to their contents.
15:11 Chillance joined
[particle] src/pmc/mutablevar.pmc 15:11
audreyt ah, so in parrot the delegation is done by the runtime (PMC) instead of by the compiler.
pmurias audreyt: by delegation i meant that $foo.foo.bar is emitted as $foo.foo.bar instead as $foo.FETCH.foo.FETCH.bar
audreyt: do you think it's better if it's done by the compiler? 15:13
audreyt pmurias: ok, then yes, I think parrot does exactly that, and VAR($foo) gets emitted as something else that involves a MutableVAR wrapper.
MutableVAR.new($foo).meth, abstractly, in parrot. 15:14
pmurias: pugs-the-runtime handles context propagation automatically, so it knows when to make a fetch call and when not 15:15
that's another alternative.
(the bonus here is you get want() for free)
pmurias: but I suppose the sanest way is to handle it in the compiler as much as you can, then yield to runtime (via either delegation or a runtime "context" pointer) for cases where you cannot decide 15:17
15:17 allbery_b joined
pmurias so it knows when to turn $foo.bar.baz into $foo.bar.FETCH.baz? 15:17
audreyt currently in pugs it knows that (SOMETHING).baz must be in rvalue item context for that something 15:18
so in runtime when evaluating the invocant it does an implicit fetch
15:18 Exodist joined
audreyt which is like what perl5 is doing 15:19
the pp_method_* opcodes first call a 15:20
SvGETMAGIC(sv);
on the invocant
which is akin to calling an implicit fetch.
pmurias thanks, that seems a saner way to do it
audreyt I'd still say that the only really sane way is compile time analysis :) 15:21
pmurias the context propagation that is
audreyt but runtime rich context propagation is something unavoidable with perl
esp. when you have things like (want.arity > 2) 15:22
so maintaining a cheap context pointer somewhere in the main runtime is probably a sane thing to do anyway.
15:22 rhr_ joined
pmurias it should be possible to maintaing multiple copies of a method and just call the one compiled for the right context? 15:23
audreyt (cxstack in perl5, envContext in pugs)
sure, for the major contexts 15:24
that'd be a wise choice
(void, item, list)
but you can always do 15:25
($x, $y, $z, $w) := your_sub();
($x, *@y) := your_sub();
but optimizing for the common contexts seems like a win. 15:26
(or you can always choose to wrap the return value into a Capture structure) 15:33
15:33 rhr left
audreyt and do a calling-Signature-vs-returning-Capture packing/unpacking at the end of a call 15:34
but that assumes a very lightweight Capture/Signature/matching implementation.
[particle] good luck with that :) 15:35
audreyt indeed. not saying it's particularly easy or attractive. 15:36
15:37 alanhaggai joined, rhr_ is now known as rhr 15:40 barney left, wknight8111 joined
avar audreyt: welcome back! 15:43
audreyt thanks :) 15:45
(but I really should go offline to write my rƩsumƩ and prepare for $interview.)
laters & 15:47
15:53 Jedai left, Jedai joined
masak audreyt: best wishes 16:03
shell 16:09
oops, sry
16:11 justatheory joined 16:23 iblechbot joined 16:39 jan left
pmurias ruoso: do you know how will we implement contexts? 16:45
16:46 rafl joined 16:55 iblechbot left 16:58 jan joined 17:00 sri_work left 17:07 kanru joined 17:34 sri_work joined 17:36 masak left 17:39 apeiron left 17:41 jhorwitz left 17:48 miketinte joined
miketinte who Tene 17:48
17:48 miketinte left 18:02 cotto-work joined
ruoso pmurias, re contexts: I'm not sure how to do that except by having implicit method calls depending on the expected context 18:09
with special casing optimizable situations
eventually we might have a context stack as an optimization... 18:13
for instance... 18:14
if (foo()) asks for boolean context... the lazy way of doing it is having foo().bool()
and a smart way would be having information on the calling of foo() about the desired context and foo() returning a boolean value in advance... 18:15
pmurias s/on/during/ 18:17
?
ruoso one could argue that this information could be added to the capture 18:18
(in that case, on the calling)
pmurias ruoso: it has to be avalible somehow
ruoso in slime, I thought it to have a "context" property 18:19
for each node
in the end I think I missed it
18:19 meppl left
ruoso but it really makes sense for it to be a part of the capture 18:19
just like the signature contains the return type 18:20
but most importantly...
pmurias ruoso: you read how audreyt thinks our Scalar problem can be solved?
ruoso as I read, the two alternatives are viable...
but it looks she agrees with me ;) 18:21
18:21 Schwern joined
ruoso having the implicit calls defined by the compiler 18:21
and trying to optimize it with run-time context information
pmurias falling back on run-time context information 18:22
18:23 meppl joined
ruoso but that still doesn't seem entirely related to value Ɨ container 18:23
but for different value types... i.e.: int in bool context
it seems to me that container Ɨ value is entirely syntatical 18:24
$a = $b Ɨ $a := $b
and completely possible to delegate to the compiler 18:25
pmurias the unicode x being vs.?
ruoso yes
;)
and remember that every variable is a container that have a container of a specific type that have a value 18:26
pmurias what exactly is entirely syntactical?
ruoso when to .FETCH()
pmurias s/have/has 18:27
18:27 peeps[work] joined
pmurias yes, but in $foo.foo.bar it is compiled as $foo.FETCH.foo.bar 18:27
ruoso actually $foo.FETCH.foo.FETCH.bar, because the '.' operator implies 'container context\
'value context' 18:28
s/'container context//
pmurias you just made this up ;)
ruoso heh... maybe... but that's what I've been saying for a while... 18:29
18:29 macroron left
ruoso as welll as '=' implies container context on the lvalue and value context on the rvalue 18:29
it might not be the most optimized option... but it does fit on every case I could think of 18:31
but we also have to remember that $foo is actually LexPad.<$foo>.FETCH ... so ... $foo = $bar = LexPad.<$foo>.FETCH.STORE(LexPad.<$bar>.FETCH) 18:33
hmpf..
$foo = $bar means LexPad.<$foo>.FETCH.STORE(LexPad.<$bar>.FETCH)
pmurias '.' should imply item context
ruoso oh yeah... osrry
$foo = $bar means LexPad.<$foo>.FETCH.STORE(LexPad.<$bar>.FETCH.FETCH)
pmurias, in the case here the code on the right is in a lower level 18:34
(that doesn't have contexts)
$foo := $bar means LexPad.<$foo>.STORE(LexPad.<$bar>.FETCH)
pmurias is %foo<key> := 1 allowed? 18:35
ruoso why not?
pugs: my %foo; %foo<key> := 1;
p6eval pugs: RESULT[{obj:<Scalar::Const:0xb7b6e751>}]
ruoso pugs: my %foo; %foo<key> := 1; %foo<key> = 'bar'; # should brake because it is readonly now 18:36
p6eval pugs: OUTPUT[*** Can't modify constant item: VInt 1ā¤ at /tmp/XIBYhZnWFW line 1, column 26-43ā¤]
18:36 BinGOs left
pmurias my $foo;my %foo;%foo<key> := 7;say $foo; 18:36
ruoso pugs: my $foo;my %foo;%foo<key> := 7;say $foo;
p6eval pugs: OUTPUT[ā¤]
pmurias pugs: my $foo;my %foo;%foo<key> := $foo;%foo<key> = 7;say $foo; 18:37
p6eval pugs: OUTPUT[7ā¤]
pmurias re why not, efficiency
18:38 BinGOs joined
pmurias why isn't $foo = $bar just LexPad<$foo>.STORE(LexPad<$foo>.FETCH) 18:38
and $foo := $bar just LexPad<$foo> := LexPad<$bar> 18:39
not sure what %foo<key> := 1 compiles to in the low-level 18:40
ruoso pmurias, you're confusing low-level and high-level
:= doesn't exist in low-level 18:41
audreyt ruoso: are you aware that lexpad may have immutable (non-rebindable) entries as well? 18:43
pmurias i'm just using high level syntax because i don't know how := will be implemented
ruoso audreyt, that means LexPad<$foo>.STORE will fail
audreyt pugs: constant $pi = 3; $pi := 3.14;
p6eval pugs: OUTPUT[*** Cannot rebind constant: PEConstant {pe_type = (mkType "Scalar::Const"), pe_proto = <Scalar::Const:0xb752a3b1>, pe_flags = MkEntryFlags {ef_isContext = False}}ā¤ at /tmp/F6XatDR3Jx line 1, column 19-30ā¤]
audreyt ruoso: yes, just checking.
pmurias ruoso how are we going to implent %foo<key> := 1? 18:44
18:44 Limbic_Region joined
ruoso LexPad<%foo>.STORE(1) 18:44
(you can save 1.FETCH here, because it would return itself anyway)
ops 18:45
soty
sorry
LexPad<%foo>.FETCH.<key>.STORE(1)
audreyt something like that, yes.
ruoso it's important to realise that print %foo<key> means 18:46
pmurias and %foo<key> = 1 would be LexPad<%foo>.FETCH.<key>.FETCH.STORE(1)?
ruoso yes 18:47
that double-boxing is also important for autovivification of arrays and hashes 18:48
18:49 gaal joined
pmurias you can do array and hash autovivification withought double boxing 18:50
ruoso it is harder to do it without it (including WHENCE support)
pmurias so Array now needs to store a Scalar for every cell :( 18:51
ruoso not really
oh
yes...
yes..
in fact..
that's true...
pmurias lok
* lol 18:52
gaal mooses
ruoso but I mean
you don't need to actually have Array knowing about it
Array just store *things*
in the low-level
you might return a lazy object that will, in the end, if needed, make the actual lookup 18:53
in the low-level the Array doens't need to store a scalar for each cell
but in the high-level it will end up doing so
pmurias does anyone actually need @foo[1] := $foo? 18:54
ruoso I think it's a requirement for $foo := @foo[1] 18:55
pmurias no you just bind the proxy 18:56
audreyt gaal: *hugs* 18:57
ruoso pmurias, not really... bind forces autovivification... you need to "realise" the proxy in that case
audreyt actually I think the spec says for shaped arrays you really don't need to support :=
that is you can assume non-individual-bindability if you have a vector-ish array
but the default Array should support arbitrary rebinding yes. 18:58
ruoso yeah... shaped arrays are special cased...
audreyt pmurias: storing a (potentially lazily instantiaed) Scalar per array cell is exactly what perl5 does. 18:59
to wit:
my @x; tie $x[0], 'main'; sub TIESCALAR {bless \@_}
does exactly that. 19:00
ruoso audreyt, it's important to realize that p5 doesn't really have a difference between container and value
audreyt (and it ends up calling STORE if you do $x[0] = 9, but not for $x[1] = 9)
ruoso you only have containers...
audreyt ruoso: they share the same structure, that's true 19:01
but SvREADONLY things are like values, and things with SvMG for set/get are like containers
or rather, conceptually there are differences, they are just implemented in a tangly fashion for speed.
ruoso in the end, that's the format we're reaching for Perl 6 19:02
everything is potentially a container
even if a readonly-self-container value
audreyt that's one way to think about it. 19:03
ruoso which pragmatically means that every value should support .FETCH()
even if it returns itself
audreyt well, I had it split at .ITEM and .LIST because list-context return is also a common enough case
but the idea is the same, yes.
ruoso maybe fetch is a wrong name anyway.... 19:05
it's just because the specs cite it while talking about rw subs
and list context is actually .[] 19:06
actually that's not what I meant
audreyt yes, abstractly that is the case.
ruoso but a list is only a list when calling list methods
gaal audreyt! mooooose :)
ruoso elsewhere it's just a value
gaal is pulling >1000 revisions
ruoso audreyt, which basically means that a list in scalar context returns itself... 19:08
as any other value
audreyt ruoso: yes.
kolibrie gaal: that's about how many it was for me, too 19:10
gaal hey :)
ruoso so the basic difference between p5 and p6 for that matter is that in p5 containers and values share a structure, in p6 they share an API
audreyt ...the p5 structure also implies an api of sorts... 19:11
but yes.
gaal anyone seen this error? Name does not refer to a filesystem directory: Failure opening '/mirror/pugs/misc/perlhints/data/perl-6.en.dat': '/mirror/pugs/misc/perlhints/data' is not a directory in filesystem '/home/gaal/.svk/local/db 19:12
audreyt no idea... 19:13
ruoso audreyt, btw... what do you think about having the context as part of the capture?
kolibrie nope. svk error?
audreyt gaal: svk sy -s 21644
perhaps
ruoso: the calling side's capture? 19:14
ruoso yes
pmurias why does cabal's Setup build tell me to run Setup configure first instead of doing it?
ruoso the one that is sent in the invocation
audreyt ruoso: and how are you going to access your caller's context?
gaal oh, another "svk pull" seems to've worked.
ruoso you mean the context in which your caller was invoked 19:15
?
audreyt pmurias: because it wants you to think about what flags to pass to configure...
ruoso: yes
ruoso hmm... good question ;)
clkao oh, i did have the bootstrap dump url prop committed for pugs. you can now do svk mirror PUGSURL //mirror/pugs --bootstrap=auto
audreyt ruoso: in pugs it's implicitly stored in a caller chain
ruoso: but smop is stack-free? 19:16
pmurias yes
ruoso audreyt, yes
audreyt then maybe store cxt as part of frame
ruoso that's one of the most hard requirements I set
audreyt and then pass the pointer to your calling frame
so you still get a linked list of callers
but you don't get a stack
ruoso yeah... I have a "back" attribute in the frame
audreyt so just store it in the frame 19:17
ruoso which should point to the outer frame
audreyt each frame have a context for which it was invoked
wow, amazingly enough pugs builds with Parsec 3. 19:18
that means no unsafePerformIO calls anywhere inside the parser.
audreyt benchmarks a bit 19:19
pmurias ruoso: should we revert you no delegation in scalars commit so context support can be added? 19:22
* your
19:22 kanru left
ruoso pmurias, but the contextual thing maintains that change 19:23
audreyt right. having a proper context pointer means your scalar need not to be delegating.
ruoso it means that eventually the runtime can figure out when NOT to fetch 19:24
audreyt yup.
pmurias ruoso i just wanted the test suit to pass ;) 19:25
ruoso heh... fix it then ;););)
you actually just need to fix 'use v6 blocks' to make the implicit FETCH calls 19:26
cmarcelo gaal: (not important, but you may want to take a look at git-svn, you can have similar functionality as svk)
ruoso git-svn++ much simpler
pmurias i suppose we han have unnecessary FETCH's for now 19:28
s/han/can
ruoso yes...
that's why every value is a container (even if a readonly-self-contained-value) 19:29
audreyt "all evil is premature optimization squared"
ruoso heheaheaheah
ruoso actually took 10 seconds to understand the joke 19:30
gaal even imaginary evil? 19:31
audreyt negative evil leads to imaginary optimizations
ruoso hehehe 19:32
audreyt so for your optimizations to be real, you need to be _positively_ evil
</pun>
gaal I thought real evil leads to complex optimizations
audreyt that too
I think we all agree complex optimizations are really evil. 19:33
gaal Me and my imaginary friend here do!
so, make worked without pulling anything from the network.. or was it a silent pull-from-the-network that Just Worked? 19:34
audreyt it worked because you previously installed pugs from hackage?
a pretty recent one at that? 19:35
gaal no :)
audreyt you got really lucky?
hm.
that doesn't seem like likely
gaal hey, maybe i got a version of pugs from the future!
audreyt did you see a lot of compilation for a lot of different modules?
like "1 of 6" "1 of 25" "1 of 83" 19:36
gaal ran out of scrollbuffer -- started the tests on the same window
audreyt if so then it succeeded rather silently
gaal Version: 6.2.13.11, fwiw
audreyt k
then it's not from future
rather, cabal-install Just Worked
gaal woot 19:37
and I'm not root
audreyt yes
gaal so it worked real well
audreyt had to wait 1.5 years for it
gaal someone++
audreyt worth the wait though ;)
gaal :)
audreyt (it only worked that well since, oh, last month.)
gaal so I take it MO and some other stuff is not being compiled from the pugs tree right now? 19:38
audreyt correct
they are from hackage.
pugs_svn r21712 | pmurias++ | [smop] surplus FETCH's 19:41
pmurias pugs compiled for me ;)
19:41 apeiron joined
gaal I think examples/algorithms/lambda-calculus.pl is looping 19:43
ruoso pmurias, but I think that additional FETCHs should be done by elf smop compiler, shouldn't it? 19:45
pugs_svn r21713 | ruoso++ | [smop] test/22 complete... it hangs the compiler... 19:46
ruoso pmurias, could you please take a look at test/22... it hangs the compiler here...
audreyt gaal: good thing that there's Time::Out support in smoke runner 19:47
gaal: except you're not making smoke! fail
maybe add Time::Out support to make test too?
while you're at it, add T::O to Task::Smoke? :D
gaal oh, my, I forgot smoke !~~ test :(
Yes, those are two excellent suggestions 19:48
Also, I'd add a big "O HAI PLS USE MEK SMOK K THX" message to "make test" :)
audreyt meanwhile nukes all unsafePerform* from Pugs.Parser.* 19:49
gaal reminds me of old bofh .cshrc jokes, "alias nice='echo nice? you must mean kill...; kill $*' 19:50
and alias kill='kill -9 ; kill -9 ; kill -9' 19:51
except you're more like, "unsafePerformIO? Surely you mean safely perform this wonderfully pure operation!"
audreyt well no, unsafePerformIO is now just liftIO 19:52
parsec3, you see, is a monad transformer
pmurias ruoso: the surplus ones should not be done at all 19:57
gaal I should read up on it!
pmurias the Var's yes...
ruoso hm?
what do you mean?
gaal would love for a ByteString Parsec
audreyt attoparsec. 19:58
19:58 jhorwitz joined
audreyt also parsec3 is polymorphic to bytestring. 19:58
also the new "binary" parsers are good as well.
lots of choices
pmurias ruoso: FETCH's shouldn't be done for method calls in item context
audreyt gaal: but if performance is of concern and you'd like to maintain parsec api compat, attoparsec makes it ~trivial to part 19:59
*port
pmurias ruoso: re sm0p hanging, i could rewrite sm0p using Parsec 20:00
20:00 hercynium left
ruoso pmurias, the implicit FETCH should be made by the compiler... 20:00
I just added it explicitly because it seems that it's not being done yet...
pmurias, well... you're the author of the sm0p compiler now ;) feel free to rewrite it if you think that's needed ;) 20:01
pmurias sm0p--
slime--
audreyt where is code to mold btw?
gaal interesting! though I think it's possibly more pressing to do the precompilation cache 20:02
audreyt as in www.perlfoundation.org/perl6/index.cgi?smop_mold
lambdabot Title: SMOP Mold / Perl 6
audreyt gaal: also we don't use yaml now, we use Data.Binar
y
which is like storable
gaal yes
audreyt which makes startup like 2x-3x faster
gaal <3
audreyt also we can freely use dons's sqlite3 package
to maintain precompilation cache 20:03
that might be overkill
but might not
Limbic_Region audreyt are you sleeping now?
audreyt at least there's a reliable place to put the cache now
pmurias audreyt: mold is not yet implemented
:( 20:04
audreyt cache <- getDataFileName "cache"
Limbic_Region: yes, why?
gaal wow, lots of new stuff in haskelland
hoogle doesn't know about that though :( 20:05
audreyt getDataFileName?
it's part of Cabal
neilmitchell.blogspot.com/2008/02/a...cabal.html
ruoso audreyt, what there's currently is SLIME
lambdabot Title: Neil Mitchell's Haskell Blog: Adding data files using Cabal, tinyurl.com/364awx
gaal oh
Limbic_Region audreyt - no reason other than it will take a while to get used to the productive audreyt of sleepland versus the productive audreyt of active hacking land
pmurias audreyt: i was waiting for the metamodel bootstrap to have the classes in perl6, btw. why do you ask?
ruoso audreyt, the Smop Lame Interpreter iMplEmentation
audreyt it's like File::ShareDir.
20:06 Chillance left
audreyt pmurias: just reading up on it... I really like what I'm seeing so far on v6/smop/ and so am wondering the logical next interpreter 20:06
how will it turn out to be, etc. 20:07
(bbiab)
ruoso pmurias, but do you have any idea on how to make test/22 to compile?
what's interesting is that it hangs without consuming any CPU or additional memory...
pmurias undefined reference to `__stginit_parseczm2zi1zi0zi0_TextziParserCombinatorsziParsec_' 20:09
ruoso ouch
pmurias parsec.o: In function `smW_info':
ruoso: re test/22 moving code around can solve it ;) 20:10
ruoso what do you mean?
pmurias i have completly no idead why and when it happens, but i encoutered it before and it went away when i rewrote the p6 block 20:11
audreyt pmurias: is my checkout broken or is v6/smop/src/smop_lowlevel.c really truncated? 20:12
ruoso audreyt, that file is compiled from smop_lowlevel.sm0p
just touch src/smop_lowlevel.sm0p
audreyt I see.
ruoso sometimes it stays around... but I don't see why... 20:13
audreyt ah. that reminds me. mac still cannot run ::TRE.
Limbic_Region audreyt - avar hangs out on #perl on this network 20:14
audreyt avar is here actually.
Limbic_Region oh, heh 20:15
well, I stopped hanging out here regularly (and #parrot and perlmonks) and most everywhere else when Alyssa was born
unrefutable proof that having children reduces "free time" - use.perl.org/~Limbic+Region/journal/36996 20:21
lambdabot Title: Journal of Limbic Region (3985)
pugs_svn r21714 | ruoso++ | [smop] uses ___UNKNOWN_METHOD___; in bool. 20:24
r21714 | ruoso++ | move_responder set "false" when the result was NULL (we need a failure object).
r21714 | ruoso++ | test/22 compiles with four lines commented out... I am testing the attribute create_container call, and that is the most important one.
r21715 | audreyt++ | * Path_Pugs: Point to our shared directory even before installing, 20:25
r21715 | audreyt++ | to get consistent ghci/ghc behaviours.
audreyt parsec3 means double the smoke time. not worth the peace-of-mind of ditching unsafePerformIO. sigh 20:26
audreyt scraps that patch and calls it a day &
pugs_svn r21716 | ruoso++ | [smop] mark the commented out lines as todo in the test result 20:28
20:29 Limbic_Region left
pmurias ruoso: do you think doing m0ld in haskell is a sane idea? 20:31
ruoso you mean the runtime itself?
pmurias just the language, emitting only a c file 20:32
language being the sm0p equivalent 20:33
maybe even a bytecode file
20:33 wknight8111 left
pmurias that is emitting a bytecode file 20:33
kolibrie audreyt: thanks for all the work you did today 20:34
&
ruoso pmurias, so you mean the compiler in haskell...
not the runtime support
20:35 Lorn left
ruoso I think for this helper compilers, we should use the tools that helps us most with absolutely no restrictions... 20:35
for the runtime itself, it would be cool if we could have something that doesn't include a complete different runtime
pmurias different from smop? 20:36
i would omit the runtime Mold frame creation/introspection
i meant different from slime
ruoso different from slime is ok... 20:37
but it would be nice if we stay in plain C
instead of adding another runtime infraestructure
i.e. haskell
but that restriction doesn't apply for the compiler...
pmurias i'm not proficient enough with haskell use it as a runtime
ruoso btw... the problem with freezing sm0p is the blocking IO 20:38
I need to re-implement sub preprocess with non-blocking IO... it's blocking waiting for some output of ../../src/perl6 20:40
ruoso home & 20:41
ruoso will backlog, as usual...
20:41 ruoso left
pmurias the parsec error turned up to be my haskell noobines 20:42
i have to add a --make flag to ghc
pugs_svn r21717 | fglock++ | [v6.pm] more tests; 20:47
r21717 | fglock++ | - added script: util/clear_cache.pl - empty the precompilation cache for both v6 and PCR;
r21717 | fglock++ | - svn properties
21:03 wknight8111 joined 21:11 TJCRI joined 21:48 simcop2387 left 21:54 jferrero joined 21:57 TJCRI left 22:03 simcop2387 joined 22:06 pmurias left
pugs_svn r21718 | Auzon++ | [evalbot] I think I finally fixed evalbot's STD.pm. 22:17
22:20 jdv79 left, jdv79 joined 22:25 alester left 22:27 p6eval left, p6eval joined 22:38 rafl_ joined 22:44 peeps[work] left 22:46 simcop2387 left 22:51 rafl left
TimToady std: $a->foo(); 22:54
p6eval std 21665: OUTPUT[parse ok]
22:54 alester joined
TimToady hmm, should complain: Obsolete use of -> to call a method; in Perl 6 please use . instead at line 1: 22:55
22:57 Sebastian_Knapp joined
TimToady std: $foo $bar 22:58
p6eval std 21665: OUTPUT[parse ok]
TimToady std: do { 23:04
p6eval std 21665: OUTPUT[parse ok]
TimToady std seems very accepting these days...
avar audreyt: do you get this error on re::engine::TRE: www.nntp.perl.org/group/perl.cpan.t...50616.html ? 23:09
lambdabot Title: FAIL re-engine-TRE-0.04 darwin-thread-multi-64int-2level 8.10.0 - nntp.perl.org, tinyurl.com/5bfehs
23:13 jferrero left
TimToady I hope to abandon TRE soonish, since it is rather resource intensive on large numbers of alternatives 23:14
23:15 jferrero joined 23:17 alester left, alester joined 23:18 alester left
TimToady I'm now running STD on all of t/ to see how well it does 23:20
23:20 luqui joined
TimToady at first blush looks like there's a lot of old pod5 in there... 23:26
I need to catch that and report it as obsolete, I suppose...
23:29 Exodist left 23:35 drbean joined, BinGOs_ joined, Limbic_Region joined 23:37 jfredett_ is now known as jfredett 23:43 fridim_ left, simcop2387 joined 23:49 BinGOs left